diff --git a/documentation/blog/2021-11-12-issue-tracker-refine.md b/documentation/blog/2021-11-12-issue-tracker-refine.md
index 55601aa826e7e..324b1f6f00cbe 100644
--- a/documentation/blog/2021-11-12-issue-tracker-refine.md
+++ b/documentation/blog/2021-11-12-issue-tracker-refine.md
@@ -127,7 +127,7 @@ Now let's go to the Supabase Table editor and create our constant values.
Let's create a test task to better understand key relation.
-
+
As you can see, since we have defined the ids of our label, status, priority and users tables as references to our tasks table, we can now use their values.
@@ -490,7 +490,7 @@ export default App;
Here we define our login and signup pages. We then use the Refine's [router-provider](https://refine.dev/core/docs/packages/documentation/routers/) and [useNavigaton](https://refine.dev/core/docs/core/hooks/navigation/useNavigation/) hooks to switch between login and signup.
-
+
We can now create supabase users and log in from our Refine interface.
@@ -992,7 +992,7 @@ export const TaskCreate = () => {
};
```
-
+
## Edit Task
@@ -1333,17 +1333,17 @@ Our project is done. Lets see how its look like.
`Overview`
-
+
`Task Filter`
-
+
`Dashboard Page`
-
+
As you can see, we made a simple and short task manager application using Refine on our front end and using its data-provider.
diff --git a/documentation/blog/2021-11-26-refine-vs-react-admin.md b/documentation/blog/2021-11-26-refine-vs-react-admin.md
index 32225fd3ad5d1..4592a5350c497 100644
--- a/documentation/blog/2021-11-26-refine-vs-react-admin.md
+++ b/documentation/blog/2021-11-26-refine-vs-react-admin.md
@@ -264,7 +264,7 @@ Although **Refine** is a newer framework, it is successful in identifying defici
npm create refine-app@latest demo-refine-project -- -b v3
```
-
+
### Features
diff --git a/documentation/blog/2021-11-29-refine-vs-admin-bro.md b/documentation/blog/2021-11-29-refine-vs-admin-bro.md
index 3f2a011f3f350..6b1a648ab8bb5 100644
--- a/documentation/blog/2021-11-29-refine-vs-admin-bro.md
+++ b/documentation/blog/2021-11-29-refine-vs-admin-bro.md
@@ -51,7 +51,7 @@ Although **Refine** is a newer framework, it is successful in identifying defici
npm create refine-app@latest demo-refine-project -- -b v3
```
-
+
### Features
diff --git a/documentation/blog/2021-12-27-multipart-upload.md b/documentation/blog/2021-12-27-multipart-upload.md
index 00c496b98b35b..0d4b93386c1bb 100644
--- a/documentation/blog/2021-12-27-multipart-upload.md
+++ b/documentation/blog/2021-12-27-multipart-upload.md
@@ -114,7 +114,7 @@ As you can see, we have created our multer structure and a simple server to run
The requests we created to send files by JavaScript will now be sent to our local server.
-
+
## How to Multipart Upload with Refine?
diff --git a/documentation/blog/2022-01-18-csv-import.md b/documentation/blog/2022-01-18-csv-import.md
index b06ffcde46e60..59e93070e0dc3 100644
--- a/documentation/blog/2022-01-18-csv-import.md
+++ b/documentation/blog/2022-01-18-csv-import.md
@@ -94,7 +94,7 @@ function App() {
Here, once the user-selected file has been successfully uploaded, we can process and display the file. Now let's load a sample CSV file and see it output on our console.
-
+
As you can see, we can now read a selected CSV file. We can convert this file, which we read as a plain text type, into an Array of Object with JavaScript and place it inside a Table element.
@@ -191,7 +191,7 @@ function App() {
....
```
-
+
We formatted the CSV file that came in plain text format, using Javascript [slice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice) and [split](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split) methods, and created two separate array. Then we converted Header and Rows arrays to Array of Object format as Key, Value.
@@ -215,7 +215,7 @@ The CSV import with **Refine** is very simple and out-of-the-box feature. How to
## Refine CSV Import Usage
-
+
Importing CSV files is simple and fast using the [`useImport`](https://refine.dev/core/docs/core/hooks/import-export/useImport/) hook and [`ImportButton`](https://refine.dev/core/docs/ui-frameworks/antd/components/buttons/import-button/) provided by **Refine**.
diff --git a/documentation/blog/2022-02-21-react-antd-admin.md b/documentation/blog/2022-02-21-react-antd-admin.md
index 6f184d263cedc..4c57df00cf56f 100644
--- a/documentation/blog/2022-02-21-react-antd-admin.md
+++ b/documentation/blog/2022-02-21-react-antd-admin.md
@@ -84,7 +84,7 @@ cd refine-advanced-tutorial
npm run dev
```
-
+
As you have seen, our example project is ready. Now let's examine how the features offered by **Refine** are included in a project and how they are used.
@@ -337,7 +337,7 @@ return (
Now our i18n Provider is ready to use, let's test it together.
-
+
### Use the translation with Table Content
@@ -418,7 +418,7 @@ export const PostList: React.FC = () => {
};
```
-
+
You can add the translation you want and organize your content according to different languages together with the **Refine** i18n Provider.
@@ -808,7 +808,7 @@ export const PostList = () => {
Here, if the selected role is Admin, the 'Hit' section will appear in our Table. We have stated that the Editor role cannot display this section.
-
+
Check out [**Refine** Access Control](https://refine.dev/core/docs/guides-and-concepts/access-control/) Provider for more detailed information and step-by-step guide
diff --git a/documentation/blog/2022-02-22-refine-invoice-generator.md b/documentation/blog/2022-02-22-refine-invoice-generator.md
index ad8c9acae16fc..4b6aae5878579 100644
--- a/documentation/blog/2022-02-22-refine-invoice-generator.md
+++ b/documentation/blog/2022-02-22-refine-invoice-generator.md
@@ -856,7 +856,7 @@ export const ClientList = () => {
We created our `Client` and `Contact` pages. Now, let's create a Client with **Refine** and define contacts for our clients.
-
+
## Example
diff --git a/documentation/blog/2022-03-01-refine-invoice-generator-p2.md b/documentation/blog/2022-03-01-refine-invoice-generator-p2.md
index 5f7c9d43ed4f2..7ce004f66f1b8 100644
--- a/documentation/blog/2022-03-01-refine-invoice-generator-p2.md
+++ b/documentation/blog/2022-03-01-refine-invoice-generator-p2.md
@@ -914,7 +914,7 @@ const styles = StyleSheet.create({
-
+
## Example
diff --git a/documentation/blog/2022-03-22-refine-with-react95.md b/documentation/blog/2022-03-22-refine-with-react95.md
index d5f7ea7d5a13c..6b807969b5a77 100644
--- a/documentation/blog/2022-03-22-refine-with-react95.md
+++ b/documentation/blog/2022-03-22-refine-with-react95.md
@@ -909,7 +909,7 @@ export default App;
-
+
## Create Post CRUD Pages
@@ -1178,7 +1178,7 @@ We used the `useTable` hook to fetch the data for the table. It makes a request
After fetching the data, we used the React95 table components to render the data. We also added delete button and edit button to each row. When the user clicks the delete button, we call the `deletePost` function with the `resource` and `id` parameters. The `deletePost` function is provided by the [`useDelete`](/core/docs/data/hooks/use-delete/) hook. When the user clicks the edit button, we call the `edit` function with the "posts" resource and the post id to navigate to the edit page.
-
+
### Create Page and Edit Page
@@ -1282,7 +1282,7 @@ export const PostCreate: React.FC = () => {
-
+
Now, let's update a `` component in `src/pages/posts/edit.tsx` directory with the following code:
@@ -1377,11 +1377,11 @@ export const PostEdit: React.FC = () => {
Edit and create pages almost look the same. We can use the same form for both pages. [`useForm`](/core/docs/packages/list-of-packages/) hook knows which action we are performing. For example, if we are on the edit page, it will automatically fetch the post data and fill the form with it.
-
+
## Project Overview
-
+
## Live CodeSandbox Example
diff --git a/documentation/blog/2022-03-29-react-hook-form-upload.md b/documentation/blog/2022-03-29-react-hook-form-upload.md
index ba32b0a33bc08..d29a3fd05baa7 100644
--- a/documentation/blog/2022-03-29-react-hook-form-upload.md
+++ b/documentation/blog/2022-03-29-react-hook-form-upload.md
@@ -202,7 +202,7 @@ export default App;
Our project is ready! With React Hook Form, we can now send the selected file to our server in `multipart/form-data` type. Let's test it!
-
+
diff --git a/documentation/blog/2022-07-21-admin-panel-with-materialui-and-strapi.md b/documentation/blog/2022-07-21-admin-panel-with-materialui-and-strapi.md
index aad82d916d5de..64eb2a3f4c451 100644
--- a/documentation/blog/2022-07-21-admin-panel-with-materialui-and-strapi.md
+++ b/documentation/blog/2022-07-21-admin-panel-with-materialui-and-strapi.md
@@ -832,7 +832,7 @@ export const PostList: React.FC = () => {
Now we are able to delete record by clicking delete button and confirmation.
-
+
diff --git a/documentation/blog/2022-08-23-mui-usedatagrid.md b/documentation/blog/2022-08-23-mui-usedatagrid.md
index d83632bad2de9..85775d54de361 100644
--- a/documentation/blog/2022-08-23-mui-usedatagrid.md
+++ b/documentation/blog/2022-08-23-mui-usedatagrid.md
@@ -545,7 +545,7 @@ export default EmployeeList;
Here's a GIF showing the result of the above example.
-
+
You can refer to MU X DataGrid [documentation](https://mui.com/x/react-data-grid/sorting/) for more information on the sorting feature.
diff --git a/documentation/blog/2022-09-01-framer-text-animations.md b/documentation/blog/2022-09-01-framer-text-animations.md
index 15c9514662398..4d3210454da20 100644
--- a/documentation/blog/2022-09-01-framer-text-animations.md
+++ b/documentation/blog/2022-09-01-framer-text-animations.md
@@ -99,7 +99,7 @@ Finally, we use the Framer Motion `transition` prop because every effective anim
The easing shows the scale at which the text animation enters before going to its original scale.
-
+
@@ -234,7 +234,7 @@ The inner carousel will perform the spinning and sliding effects. The framer mot
This will give it a unique spinning effect, as you can see below:
-
+
@@ -269,7 +269,7 @@ function App() {
}
```
-
+
@@ -305,7 +305,7 @@ function App() {
}
```
-
+
diff --git a/documentation/blog/2022-09-27-react-hook-form-validation.md b/documentation/blog/2022-09-27-react-hook-form-validation.md
index fdeddd6bd56f9..04cff4031d2dc 100644
--- a/documentation/blog/2022-09-27-react-hook-form-validation.md
+++ b/documentation/blog/2022-09-27-react-hook-form-validation.md
@@ -1068,7 +1068,7 @@ export default Create;
Now, if you save your progress and go to the browser, the company and role fields should only display when the Employed option is selected.
-
+
@@ -1109,7 +1109,7 @@ Lastly, add an `onSubmit` event handler to the form and pass the `handleSubmit`
Now, if you save your progress and head over to the browser, you should get a logged object of the form’s data in your console when you fill in the fields and submit the form.
-
+
diff --git a/documentation/blog/2022-10-31-next-getInitial.md b/documentation/blog/2022-10-31-next-getInitial.md
index 7e01d75e82c0c..bee0d792e4c80 100644
--- a/documentation/blog/2022-10-31-next-getInitial.md
+++ b/documentation/blog/2022-10-31-next-getInitial.md
@@ -180,7 +180,7 @@ We'll go through some examples to see how both functions work in real-world appl
The GIF below shows how `getInitialProps` behaves when it's used to fetch data for server-side rendering.
-
+
@@ -239,7 +239,7 @@ However, when we make client-side navigation to the home page `localhost:3000` u
The GIF below shows the same example from the previous section using `getServerSideProps` to fetch a list of users from the [JSONPlaceholder](https://jsonplaceholder.typicode.com/) API for server-side rendering.
-
+
diff --git a/documentation/blog/2022-11-29-mui-tooltip.md b/documentation/blog/2022-11-29-mui-tooltip.md
index 883401cc8ed5d..ed02fdd697a3f 100644
--- a/documentation/blog/2022-11-29-mui-tooltip.md
+++ b/documentation/blog/2022-11-29-mui-tooltip.md
@@ -153,7 +153,7 @@ export default function PositionedTooltips() {
-
+
**Note**: Tooltip positioning is critical when using them in a web application. A poorly placed Tooltip may detract from the overall UX of the app.
@@ -243,7 +243,7 @@ export default function VariableWidth() {
```
-
+
### Material UI Tooltip Transitions
@@ -287,7 +287,7 @@ In the code above, three tooltips have been set to display with varying transiti
Here’s the result:
-
+
### Virtual element placement
@@ -496,7 +496,7 @@ The code above illustrates a simple login form UI with instructions provided to
Here’s the result:
-
+
## Conclusion
diff --git a/documentation/blog/2022-12-23-dynamic-hook-form.md b/documentation/blog/2022-12-23-dynamic-hook-form.md
index 749a3eb8ab0fe..7f7201592162b 100644
--- a/documentation/blog/2022-12-23-dynamic-hook-form.md
+++ b/documentation/blog/2022-12-23-dynamic-hook-form.md
@@ -501,7 +501,7 @@ Next, declare the button component with an event handler below the dynamic field
That's all it takes to use `useFieldArray` actions in a form. If you save your progress and return to the browser, you should be able to perform the actions shown in the gif below:
-
+
@@ -595,7 +595,7 @@ Refer to the documentation to learn more about the [`onFinish`](https://refine.d
Now, if you save your progress and go back to the browser, everything should work as expected.
-
+
@@ -623,7 +623,7 @@ To use this method, we'll add a button inside the callback function, below the `
That's it. Now we can remove appended fields by clicking the delete button rendered alongside them.
-
+
@@ -707,7 +707,7 @@ Then remove the `delete` button and add the icon in its place:
```
-
+
@@ -736,7 +736,7 @@ Now, if you try to submit the form without appending at least one field, you'll
The form composition is complete. Next, we'll look at how to set up the Edit page for updating records.
-
+
@@ -928,7 +928,7 @@ Here, we added a `renderCell` property to the fourth object and passed it a func
This way, when the edit icon is clicked, Refine will know to redirect users to the Edit page of the corresponding record on the same row as the icon.
-
+
diff --git a/documentation/blog/2023-01-17-airtable-crud-app.md b/documentation/blog/2023-01-17-airtable-crud-app.md
index 66f4a0a2401e4..92058c86b50e2 100644
--- a/documentation/blog/2023-01-17-airtable-crud-app.md
+++ b/documentation/blog/2023-01-17-airtable-crud-app.md
@@ -1409,7 +1409,7 @@ export const PostList: React.FC = () => {
};
```
-
+
diff --git a/documentation/blog/2023-02-17-refine-pixels-4.md b/documentation/blog/2023-02-17-refine-pixels-4.md
index fba8d1c0d542f..2659b77047e42 100644
--- a/documentation/blog/2023-02-17-refine-pixels-4.md
+++ b/documentation/blog/2023-02-17-refine-pixels-4.md
@@ -85,7 +85,7 @@ And that's it! The channel for `pixels` resource that was specified above in **S
Now, let's try opening the app in two browsers, one with Google account and one with GitHub. Navigate to a canvas page, the same one in both and try adding some `pixels` from each. We'll see that `pixel`s created in one are displayed in the other in real time:
-
+
diff --git a/documentation/blog/2023-03-03-ra-chakra-tutorial.md b/documentation/blog/2023-03-03-ra-chakra-tutorial.md
index 356030e439dbe..0588267e26e58 100644
--- a/documentation/blog/2023-03-03-ra-chakra-tutorial.md
+++ b/documentation/blog/2023-03-03-ra-chakra-tutorial.md
@@ -956,7 +956,7 @@ function App() {
export default App;
```
-
+
### Modifying/Editing records
@@ -1176,7 +1176,7 @@ function App() {
export default App;
```
-
+
### Deleting post record
@@ -1246,7 +1246,7 @@ function App() {
export default App;
```
-
+
### Implement sorting of listed records
@@ -1360,7 +1360,7 @@ You can set the `enableSorting` property of the column to false in the column de
},
```
-
+
### Implement filters on listed records
@@ -1569,7 +1569,7 @@ We can also disable filtering for the `actions` column by setting the column's e
},
```
-
+
### Implementing mutation mode.
@@ -1603,7 +1603,7 @@ function App() {
export default App;
```
-
+
## Conclusion
diff --git a/documentation/blog/2023-04-11-refine-invoicer-2.md b/documentation/blog/2023-04-11-refine-invoicer-2.md
index 7e1f04a73ff6c..a500cb1b8be37 100644
--- a/documentation/blog/2023-04-11-refine-invoicer-2.md
+++ b/documentation/blog/2023-04-11-refine-invoicer-2.md
@@ -48,7 +48,7 @@ For this tutorial, we'll be select the following options:
**Backend**: Strapi
**Authentication Provider**: Strapi
-
+
diff --git a/documentation/blog/2023-04-14-refine-invoicer-5.md b/documentation/blog/2023-04-14-refine-invoicer-5.md
index f30e0083f82be..5e44dbf407bd9 100644
--- a/documentation/blog/2023-04-14-refine-invoicer-5.md
+++ b/documentation/blog/2023-04-14-refine-invoicer-5.md
@@ -463,7 +463,7 @@ Do take note of the `meta.populate` property of the `useTable()` hook's argument
OK. With this done, we can now go ahead and test our app and should be able to view the pdf document by clicking on the pdf document icon.
-
+
diff --git a/documentation/blog/2023-07-26-refine-primereact-dashboard.md b/documentation/blog/2023-07-26-refine-primereact-dashboard.md
index 1df459280972a..fd75376c5a493 100644
--- a/documentation/blog/2023-07-26-refine-primereact-dashboard.md
+++ b/documentation/blog/2023-07-26-refine-primereact-dashboard.md
@@ -54,7 +54,7 @@ For this tutorial, we'll be select the following options:
**Authentication Provider**: No Auth
-
+
Once you've completed the steps, you'll have the ability to download your project. From there, proceed to the project directory and run your app with:
@@ -769,7 +769,7 @@ export const Dashboard: React.FC = () => {
After these changes, our dashboard looks like below:
-
+
### Create `RecentSales` component
@@ -2678,7 +2678,7 @@ export default App;
After these changes, you should be able to navigate to the category CRUD pages as the below:
-
+
## Update the Layout
diff --git a/documentation/blog/2023-09-06-daisy-ui-panel.md b/documentation/blog/2023-09-06-daisy-ui-panel.md
index 8a6dad0900db7..fd6150c17627e 100644
--- a/documentation/blog/2023-09-06-daisy-ui-panel.md
+++ b/documentation/blog/2023-09-06-daisy-ui-panel.md
@@ -3428,7 +3428,7 @@ export const CategoryShow = () => {
After all these changes for the `category` resource, we should be able to navigate across the category pages as below:
-
+
@@ -3698,7 +3698,7 @@ With these changes, we should now see a sticky top navbar with items that give a
Here's the walkthrough of all the resource list pages:
-
+
diff --git a/documentation/blog/2023-09-20-next-ui-panel.md b/documentation/blog/2023-09-20-next-ui-panel.md
index 9902d53960287..d8ed9a3780f31 100644
--- a/documentation/blog/2023-09-20-next-ui-panel.md
+++ b/documentation/blog/2023-09-20-next-ui-panel.md
@@ -58,7 +58,7 @@ For this tutorial, we'll be select the following options:
**Authentication Provider**: No Auth
-
+
Once you've completed the steps, you'll have the ability to download your project
diff --git a/documentation/blog/2023-10-02-refine-crm-overview.md b/documentation/blog/2023-10-02-refine-crm-overview.md
index 1040c967ad5d3..53184e8e8ffa5 100644
--- a/documentation/blog/2023-10-02-refine-crm-overview.md
+++ b/documentation/blog/2023-10-02-refine-crm-overview.md
@@ -8,7 +8,7 @@ image: https://refine.ams3.cdn.digitaloceanspaces.com/blog/2023-10-02-refine-crm
hide_table_of_contents: false
---
-
+
I want to introduce our newest example app – a full-fledged React CRM (Customer Relationship Management) application built using Refine, Ant Design, and GraphQL.
@@ -138,7 +138,7 @@ We used [GraphQL](https://graphql.org/) for effective data retrieval and updatin
For instance, on the Project Kanban page, tasks get updated automatically when cards are dragged and dropped between sections.
-
+
GraphQL's efficient data-fetching capabilities made working with large datasets a breeze. It's flexibility allowed us to tailor our queries to our exact requirements.
diff --git a/documentation/blog/2024-05-22-mui-grid.md b/documentation/blog/2024-05-22-mui-grid.md
index 0b33c2f2d80ce..4fa704a7940fc 100644
--- a/documentation/blog/2024-05-22-mui-grid.md
+++ b/documentation/blog/2024-05-22-mui-grid.md
@@ -192,7 +192,7 @@ export default MUIspacing;
The code above showcases a dynamic change of the `spacing` prop value. There are three grid elements(camera icons), each interactively spaced with every click of a radio button that corresponds with the `spacing` value.
Here’s the result:
-
+
@@ -255,7 +255,7 @@ export default BasicGrid;
Here’s the result;
-
+
@@ -301,7 +301,7 @@ The code above is a simple Material UI Grid system with four grid children eleme
Here’s the result:
-
+
@@ -352,7 +352,7 @@ export default AutoGrid;
The code above depicts three grid elements. The middle element is set to take half the screen's width while the other two dynamically take the space remaining on either side.
-
+
@@ -418,7 +418,7 @@ export default function NestedGridGroup() {
The code above showcases a nested Material UI Grid system. The `` component is a grid setup called inside another `` component multiple times to produce a result like this:
-
+
@@ -641,7 +641,7 @@ export default function Blog() {
We have a simple Blog Layout created with React and Material UI.
-
+
diff --git a/documentation/blog/2024-05-29-next-link.md b/documentation/blog/2024-05-29-next-link.md
index 95026ac2d1d6d..906388624cbc5 100644
--- a/documentation/blog/2024-05-29-next-link.md
+++ b/documentation/blog/2024-05-29-next-link.md
@@ -189,7 +189,7 @@ If you navigate to `localhost:3000/products` you should see the page rendered li
Now, if you click on any of the products, you'll be taken to the details page of each product which is a dynamic route.
-
+
@@ -308,7 +308,7 @@ The page should look like below:
If you click on the `Go to products page` link, watch how the application navigation works when we click on the back navigation button without the `replace` prop in the GIF below.
-
+
@@ -335,7 +335,7 @@ Next, find the part that contains the code below in `pages/products/index.js` an
Now let's go back to the browser and see how the navigation works with `replace` prop.
-
+
diff --git a/documentation/blog/2024-06-20-framer-motion.md b/documentation/blog/2024-06-20-framer-motion.md
index 87232e04d2797..44846add855b8 100644
--- a/documentation/blog/2024-06-20-framer-motion.md
+++ b/documentation/blog/2024-06-20-framer-motion.md
@@ -501,7 +501,7 @@ Let's look at an example of how we can use motion values to construct the classi
**View:**
-
+
The `useScroll` motion values can be combined with other motion value hooks, such as `useTransform` and `useSpring`, to create sophisticated animations like the one shown below.
@@ -568,7 +568,7 @@ function App() {
**View:**
-
+
### useTransform
diff --git a/documentation/blog/2024-06-24-react-content-filtering.md b/documentation/blog/2024-06-24-react-content-filtering.md
index 801671cf8bea7..2bac3eb23ff80 100644
--- a/documentation/blog/2024-06-24-react-content-filtering.md
+++ b/documentation/blog/2024-06-24-react-content-filtering.md
@@ -561,13 +561,13 @@ Check if your development server is still running in the terminal. If it is not
First, we will test the functionality of the filter buttons.
-
+
If the filter button is pressed, only the corresponding cards of that category is filtered. If the filter is already active and is pressed again, the filter is disabled and all the records are shown.
Now type in some search queries in the search bar.
-
+
Search results are fully dynamic, meaning the filtering is updated each time you add a new character to the query.
diff --git a/documentation/blog/2024-07-03-mui-autocomplete.md b/documentation/blog/2024-07-03-mui-autocomplete.md
index 283b65af7d01a..bd9283c7a447e 100644
--- a/documentation/blog/2024-07-03-mui-autocomplete.md
+++ b/documentation/blog/2024-07-03-mui-autocomplete.md
@@ -266,7 +266,7 @@ The code above illustrates the use of the `groupBy` prop in the `
Here’s the result:
-
+
## Material UI Autocomplete features
@@ -322,7 +322,7 @@ export default function ManageableStates() {
The code showcases how the values of the `AutoComplete` component can be controlled and altered in state.
-
+
### The useAutocomplete Hook
@@ -423,7 +423,7 @@ The code above showcases a simple use case for the `useAutocomplete` hook. It he
Here’s the result:
-
+
### Asynchronous Requests
@@ -644,7 +644,7 @@ The code above illustrates how you can set a fixed default value on the `
-
+
### Checkboxes
@@ -697,7 +697,7 @@ export default function CheckboxesTags() {
```
-
+
## Accessibility Features
@@ -940,7 +940,7 @@ export default Home;
Here’s the result:
-
+
diff --git a/documentation/blog/2024-07-03-next-api-routes.md b/documentation/blog/2024-07-03-next-api-routes.md
index f254cfa942b4d..cabe64ee2f3a0 100644
--- a/documentation/blog/2024-07-03-next-api-routes.md
+++ b/documentation/blog/2024-07-03-next-api-routes.md
@@ -198,7 +198,7 @@ Now if you navigate to `http://localhost:3000/api/trivia/34` or any other random
Here's a GIF showing an example:
-
+
diff --git a/documentation/blog/2024-07-17-css-grid.md b/documentation/blog/2024-07-17-css-grid.md
index 841d555208ee0..48ce02ebcce56 100644
--- a/documentation/blog/2024-07-17-css-grid.md
+++ b/documentation/blog/2024-07-17-css-grid.md
@@ -485,7 +485,7 @@ With `auto-fit` and with a combination of `minmax()`, we can create arbitrary nu
This is actually what we'd want starting from the Flexbox example. And on top of everything, CSS Grid now makes it permanently responsive. Thanks to CSS Grid, that's just with one line of CSS. And without using any media queries:
-
+
We can now place infinite number of rows into this grid. They'll occupy the entire row. And the number of columns will change according to the screen size.
diff --git a/documentation/blog/2024-07-19-use-swr.md b/documentation/blog/2024-07-19-use-swr.md
index f31f6a176ed55..cb277157cd4b6 100644
--- a/documentation/blog/2024-07-19-use-swr.md
+++ b/documentation/blog/2024-07-19-use-swr.md
@@ -243,7 +243,7 @@ Notice how the list isn't updated with the new user when we navigate back to `ht
The GIF below shows this even better:
-
+
@@ -312,7 +312,7 @@ Go to `http://localhost:3000` in the browser and note how the users list is auto
The GIF below shows this in action.
-
+
@@ -431,7 +431,7 @@ Basically, what we're doing is commenting out the previous Home component and th
Navigate to `http://localhost:3000` and you should see the characters rendered as shown in the GIF below, with pagination enabled:
-
+
diff --git a/documentation/blog/2024-07-23-react-dashboard-libraries.md b/documentation/blog/2024-07-23-react-dashboard-libraries.md
index e6257eb9145d8..e42cd1dfad16f 100644
--- a/documentation/blog/2024-07-23-react-dashboard-libraries.md
+++ b/documentation/blog/2024-07-23-react-dashboard-libraries.md
@@ -26,7 +26,7 @@ At the top of the list is [Refine](https://github.com/refinedev/refine), a compr
diff --git a/documentation/blog/2024-08-04-react-tooltip.md b/documentation/blog/2024-08-04-react-tooltip.md
index 7181e4b8a5182..39943fd1aee52 100644
--- a/documentation/blog/2024-08-04-react-tooltip.md
+++ b/documentation/blog/2024-08-04-react-tooltip.md
@@ -18,7 +18,7 @@ Typically, a tooltip is displayed as a small box or pop-up and is commonly used
You can see a tooltip in action through the following GIF example:
-
+
@@ -497,7 +497,7 @@ react-tooltip also provides a feature that allows you to create clickable toolti
```
-
+
diff --git a/documentation/blog/2024-08-09-react-toastify.md b/documentation/blog/2024-08-09-react-toastify.md
index abd8b7e32f045..c25bc52c46562 100644
--- a/documentation/blog/2024-08-09-react-toastify.md
+++ b/documentation/blog/2024-08-09-react-toastify.md
@@ -20,7 +20,7 @@ Any Refine project that uses a supported design system or component libraries, s
In the react ecosystem, there are several notification packages to choose from. React-toastify is one of the popular toast packages you can use to integrate a custom notification system in a React or Refine project. In this article, you will create a custom notification provider in a Refine application using react-toastify.
-
+
diff --git a/documentation/blog/2024-08-16-react-markdown.md b/documentation/blog/2024-08-16-react-markdown.md
index 7e1a0a10dcdd9..90b470bf353b8 100644
--- a/documentation/blog/2024-08-16-react-markdown.md
+++ b/documentation/blog/2024-08-16-react-markdown.md
@@ -106,7 +106,7 @@ import MDEditor from "@uiw/react-md-editor";
This will render a native `Textarea` element with support for markdown editing and a preview pane on the form.
-
+
@@ -240,7 +240,7 @@ Then, we pass it to the `commands` array on the `MDEditor` component:
```
-
+
@@ -401,7 +401,7 @@ The code above is specifying how the `code` component should behave when it enco
Now, if we input KaTeX expressions into the editor, they will be previewed as mathematical expressions.
-
+
@@ -540,7 +540,7 @@ Now, if you try to parse malicious codes into the editor, the rehype-sanitize pl
Before integrating rehype-sanitize:
-
+
@@ -548,7 +548,7 @@ Before integrating rehype-sanitize:
After integrating rehype-sanitize:
-
+
diff --git a/documentation/blog/2024-08-19-heroicons.md b/documentation/blog/2024-08-19-heroicons.md
index 71566f730f80e..de39acad73e37 100644
--- a/documentation/blog/2024-08-19-heroicons.md
+++ b/documentation/blog/2024-08-19-heroicons.md
@@ -247,7 +247,7 @@ body {
The navbar now looks like this:
-
+
@@ -406,7 +406,7 @@ For the ``, we are applying a `glow` class that animates the icon wi
With the above changes Heroicons and their styles, the navbar looks like this: