From fe50c393ec89bf02dde9c88f95092fd8d23d2a06 Mon Sep 17 00:00:00 2001 From: Dev Bachani <92785712+Dev22603@users.noreply.github.com> Date: Sat, 21 Sep 2024 10:49:01 +0530 Subject: [PATCH 001/103] Initial commit --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..27e4e1a --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +## Hi there šŸ‘‹ + + From ffabbfcd911dc9585a3407f053b15fa5173a6de1 Mon Sep 17 00:00:00 2001 From: Dev Bachani <92785712+Dev22603@users.noreply.github.com> Date: Sat, 21 Sep 2024 11:00:44 +0530 Subject: [PATCH 002/103] Update README.md --- README.md | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 27e4e1a..bf0b864 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,24 @@ -## Hi there šŸ‘‹ +# šŸ’« About Me: +šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
🌱 I’m currently learning backend using python frameworks like FastAPI and Django.
⚔ Fun fact: I am also a Chess Enthusiast. - +# šŸ’» Tech Stack: +![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white) ![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white) ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) ![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) ![Markdown](https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge&logo=markdown&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54) ![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge&logo=vercel&logoColor=white) ![Anaconda](https://img.shields.io/badge/Anaconda-%2344A833.svg?style=for-the-badge&logo=anaconda&logoColor=white) ![Bootstrap](https://img.shields.io/badge/bootstrap-%238511FA.svg?style=for-the-badge&logo=bootstrap&logoColor=white) ![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) ![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge&logo=mysql&logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white) ![Scipy](https://img.shields.io/badge/SciPy-%230C55A5.svg?style=for-the-badge&logo=scipy&logoColor=%white) ![TensorFlow](https://img.shields.io/badge/TensorFlow-%23FF6F00.svg?style=for-the-badge&logo=TensorFlow&logoColor=white) ![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white) ![Pandas](https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge&logo=pandas&logoColor=white) ![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white) ![scikit-learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white) ![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge&logo=Matplotlib&logoColor=black) ![Keras](https://img.shields.io/badge/Keras-%23D00000.svg?style=for-the-badge&logo=Keras&logoColor=white) +# šŸ“Š GitHub Stats: +![](https://github-readme-stats.vercel.app/api?username=Dev22603&theme=github_dark&hide_border=false&include_all_commits=true&count_private=true)
+![](https://github-readme-streak-stats.herokuapp.com/?user=Dev22603&theme=github_dark&hide_border=false)
+![](https://github-readme-stats.vercel.app/api/top-langs/?username=Dev22603&theme=github_dark&hide_border=false&include_all_commits=true&count_private=true&layout=compact) + +### āœļø Random Dev Quote +![](https://quotes-github-readme.vercel.app/api?type=horizontal&theme=radical) + +### šŸ” Top Contributed Repo +![](https://github-contributor-stats.vercel.app/api?username=Dev22603&limit=5&theme=dark&combine_all_yearly_contributions=true) + +--- +[![](https://visitcount.itsvg.in/api?id=Dev22603&icon=9&color=0)](https://visitcount.itsvg.in) + + From 57a242642c2fc017bee37857fbb70eb97317331a Mon Sep 17 00:00:00 2001 From: Dev Bachani <92785712+Dev22603@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:40:00 +0530 Subject: [PATCH 003/103] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf0b864..1dc8fdb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # šŸ’« About Me: -šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
🌱 I’m currently learning backend using python frameworks like FastAPI and Django.
⚔ Fun fact: I am also a Chess Enthusiast. +šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
🌱 I’m currently learning backend using python frameworks like FastAPI.
⚔ Fun fact: I am also a Chess Enthusiast. ## 🌐 Socials: From 734db24692c7cf554c8b1637d7380e4677b4ddad Mon Sep 17 00:00:00 2001 From: Dev Bachani <92785712+Dev22603@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:09:09 +0530 Subject: [PATCH 004/103] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1dc8fdb..168ff20 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # šŸ’« About Me: -šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
🌱 I’m currently learning backend using python frameworks like FastAPI.
⚔ Fun fact: I am also a Chess Enthusiast. +šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
🌱 /*I’m currently learning backend using python frameworks like FastAPI.*/
⚔ Fun fact: I am also a Chess Enthusiast. ## 🌐 Socials: From 8f3895ac84221d08d2a1aac11b8aea866fc3f277 Mon Sep 17 00:00:00 2001 From: Dev Bachani <92785712+Dev22603@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:09:30 +0530 Subject: [PATCH 005/103] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 168ff20..e08ad13 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # šŸ’« About Me: -šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
🌱 /*I’m currently learning backend using python frameworks like FastAPI.*/
⚔ Fun fact: I am also a Chess Enthusiast. +šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
⚔ Fun fact: I am also a Chess Enthusiast. ## 🌐 Socials: From 48adb4deb47a1912b77e865034ad3f06648898d0 Mon Sep 17 00:00:00 2001 From: Dev Bachani <92785712+Dev22603@users.noreply.github.com> Date: Sat, 29 Mar 2025 11:38:07 +0530 Subject: [PATCH 006/103] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e08ad13..d913ae6 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## 🌐 Socials: -[![LinkedIn](https://img.shields.io/badge/LinkedIn-%230077B5.svg?logo=linkedin&logoColor=white)](https://linkedin.com/in/devbachani) + # šŸ’» Tech Stack: ![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white) ![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white) ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) ![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) ![Markdown](https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge&logo=markdown&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54) ![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge&logo=vercel&logoColor=white) ![Anaconda](https://img.shields.io/badge/Anaconda-%2344A833.svg?style=for-the-badge&logo=anaconda&logoColor=white) ![Bootstrap](https://img.shields.io/badge/bootstrap-%238511FA.svg?style=for-the-badge&logo=bootstrap&logoColor=white) ![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) ![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge&logo=mysql&logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white) ![Scipy](https://img.shields.io/badge/SciPy-%230C55A5.svg?style=for-the-badge&logo=scipy&logoColor=%white) ![TensorFlow](https://img.shields.io/badge/TensorFlow-%23FF6F00.svg?style=for-the-badge&logo=TensorFlow&logoColor=white) ![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white) ![Pandas](https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge&logo=pandas&logoColor=white) ![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white) ![scikit-learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white) ![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge&logo=Matplotlib&logoColor=black) ![Keras](https://img.shields.io/badge/Keras-%23D00000.svg?style=for-the-badge&logo=Keras&logoColor=white) From ed448ccc8b99581b94be6007bd5702f007a2157e Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Thu, 21 Aug 2025 12:46:45 +0530 Subject: [PATCH 007/103] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d913ae6..518f160 100644 --- a/README.md +++ b/README.md @@ -21,4 +21,6 @@ --- [![](https://visitcount.itsvg.in/api?id=Dev22603&icon=9&color=0)](https://visitcount.itsvg.in) + +[![Ashutosh's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=dev22603&bg_color=010409&color=ffffff&line=00b344&point=ffffff&area=true&hide_border=true)](https://github.com/ashutosh00710/github-readme-activity-graph) From d485cfb0f81bf07a07d54a803ed171b182ff11a7 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Thu, 21 Aug 2025 15:28:33 +0530 Subject: [PATCH 008/103] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 518f160..442e49f 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ![](https://quotes-github-readme.vercel.app/api?type=horizontal&theme=radical) ### šŸ” Top Contributed Repo -![](https://github-contributor-stats.vercel.app/api?username=Dev22603&limit=5&theme=dark&combine_all_yearly_contributions=true) +![](https://github-contributor-stats.vercel.app/api?username=Dev22603&limit=6&theme=dark&combine_all_yearly_contributions=true) --- [![](https://visitcount.itsvg.in/api?id=Dev22603&icon=9&color=0)](https://visitcount.itsvg.in) From 9f87bfad668ca82b30f145f395db6ddb6222533b Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Thu, 21 Aug 2025 15:54:50 +0530 Subject: [PATCH 009/103] Update README.md --- README.md | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 442e49f..8659000 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,19 @@ # šŸ’« About Me: -šŸ”­ I’m currently working on a PDF editor using Python and a Ecommerce website.
šŸ‘Æ I’m looking to collaborate on Kaggle competitions and full stack web applications.
šŸ¤ I’m looking for help with finding a good job in the following domains: Backend, Machine Learning, and Full Stack roles.
⚔ Fun fact: I am also a Chess Enthusiast. +Hi, I’m Dev
šŸ“ Ahmedabad | šŸ–„ļø Backend Engineer | 22

I’m a Backend Developer passionate about solving real-world problems with technology. From building Python scripts for data automation to developing scalable backend applications in Node.js, I specialize in transforming complex challenges into reliable, efficient, and user-focused solutions. ## 🌐 Socials: - +[![LinkedIn](https://img.shields.io/badge/LinkedIn-%230077B5.svg?logo=linkedin&logoColor=white)](https://linkedin.com/in/devbachani) [![X](https://img.shields.io/badge/X-black.svg?logo=X&logoColor=white)](https://x.com/Dev_By_Dev_) [![email](https://img.shields.io/badge/Email-D14836?logo=gmail&logoColor=white)](mailto:devbachani08@gmail.com) # šŸ’» Tech Stack: -![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white) ![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white) ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) ![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) ![Markdown](https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge&logo=markdown&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54) ![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge&logo=vercel&logoColor=white) ![Anaconda](https://img.shields.io/badge/Anaconda-%2344A833.svg?style=for-the-badge&logo=anaconda&logoColor=white) ![Bootstrap](https://img.shields.io/badge/bootstrap-%238511FA.svg?style=for-the-badge&logo=bootstrap&logoColor=white) ![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) ![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge&logo=mysql&logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white) ![Scipy](https://img.shields.io/badge/SciPy-%230C55A5.svg?style=for-the-badge&logo=scipy&logoColor=%white) ![TensorFlow](https://img.shields.io/badge/TensorFlow-%23FF6F00.svg?style=for-the-badge&logo=TensorFlow&logoColor=white) ![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white) ![Pandas](https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge&logo=pandas&logoColor=white) ![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge&logo=PyTorch&logoColor=white) ![scikit-learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white) ![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge&logo=Matplotlib&logoColor=black) ![Keras](https://img.shields.io/badge/Keras-%23D00000.svg?style=for-the-badge&logo=Keras&logoColor=white) +![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white) ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) ![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54) ![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge&logo=vercel&logoColor=white) ![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB) ![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge&logo=fastapi) ![Flutter](https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge&logo=Flutter&logoColor=white) ![JWT](https://img.shields.io/badge/JWT-black?style=for-the-badge&logo=JSON%20web%20tokens) ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white) ![Nodemon](https://img.shields.io/badge/NODEMON-%23323330.svg?style=for-the-badge&logo=nodemon&logoColor=%BBDEAD) ![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) ![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white) ![TensorFlow](https://img.shields.io/badge/TensorFlow-%23FF6F00.svg?style=for-the-badge&logo=TensorFlow&logoColor=white) ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white) ![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?style=for-the-badge&logo=vite&logoColor=white) ![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) # šŸ“Š GitHub Stats: -![](https://github-readme-stats.vercel.app/api?username=Dev22603&theme=github_dark&hide_border=false&include_all_commits=true&count_private=true)
-![](https://github-readme-streak-stats.herokuapp.com/?user=Dev22603&theme=github_dark&hide_border=false)
-![](https://github-readme-stats.vercel.app/api/top-langs/?username=Dev22603&theme=github_dark&hide_border=false&include_all_commits=true&count_private=true&layout=compact) - -### āœļø Random Dev Quote -![](https://quotes-github-readme.vercel.app/api?type=horizontal&theme=radical) - -### šŸ” Top Contributed Repo -![](https://github-contributor-stats.vercel.app/api?username=Dev22603&limit=6&theme=dark&combine_all_yearly_contributions=true) +![](https://github-readme-stats.vercel.app/api?username=dev22603&theme=dark&hide_border=false&include_all_commits=true&count_private=true)
+![](https://nirzak-streak-stats.vercel.app/?user=dev22603&theme=dark&hide_border=false)
+![](https://github-readme-stats.vercel.app/api/top-langs/?username=dev22603&theme=dark&hide_border=false&include_all_commits=true&count_private=true&layout=compact) --- -[![](https://visitcount.itsvg.in/api?id=Dev22603&icon=9&color=0)](https://visitcount.itsvg.in) +[![](https://visitcount.itsvg.in/api?id=dev22603&icon=0&color=0)](https://visitcount.itsvg.in) [![Ashutosh's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=dev22603&bg_color=010409&color=ffffff&line=00b344&point=ffffff&area=true&hide_border=true)](https://github.com/ashutosh00710/github-readme-activity-graph) From 42c89b5f0bae272c8e303066af79a9359cac2bd3 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 10:59:41 +0530 Subject: [PATCH 010/103] added porfolio data --- frontend/portfolio.json | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 frontend/portfolio.json diff --git a/frontend/portfolio.json b/frontend/portfolio.json new file mode 100644 index 0000000..5f98010 --- /dev/null +++ b/frontend/portfolio.json @@ -0,0 +1,128 @@ +{ + "personalInfo": { + "name": "Dev Bachani", + "email": "devbachani08@gmail.com", + "linkedin": "https://linkedin.com/in/devbachani", + "github": "https://github.com/dev22603", + "objective": "A computer science graduate with a background in building production applications, leveraging my skills to architect and develop backend solutions at scale in the field of agentic AI." + }, + "education": [ + { + "institution": "Institute of Technology, Nirma University, Ahmedabad", + "degree": "B.Tech in Computer Science and Engineering", + "startYear": 2021, + "endYear": 2025 + } + ], + "experience": [ + { + "company": "Zymr, Inc.", + "role": "Software Engineer", + "startDate": "July 2025", + "endDate": "Present", + "details": [ + "Contributor to a project focused on developing Agentic AI systems" + ] + }, + { + "company": "Medkart Pharmacy Pvt Ltd", + "role": "Flutter Developer Intern", + "startDate": "Jan 2025", + "endDate": "June 2025", + "details": [ + "Revamped 9 core app screens in 12 weeks, increasing engagement rates for 50,000+ users.", + "Improved product discovery and boosted conversion rates via comprehensive sorting/filtering system.", + "Reduced customer support response time by 30% by developing Contact Us module with form validation.", + "Decreased bounce rates by 28% with responsive loading skeletons on 12+ pages.", + "Achieved 75% workflow efficiency improvement by collapsing a 4-step task to 1 tap using Flutter intents." + ] + } + ], + "projects": [ + { + "name": "EduScraper", + "link": "", + "description": "Used Beautiful Soup to extract Aptitude MCQs from IndiaBix and stored them in a JSON file. Built a React app to display/download MCQ PDFs." + }, + { + "name": "E-Commerce website", + "link": "", + "description": "Designed and built a role-based e-commerce platform (Admin, Customer) using Node.js, Express.js, React.js, Tailwind CSS, PostgreSQL. Secured with JWT, RBAC; developed REST APIs." + }, + { + "name": "Audio Language Classification using Deep Learning", + "link": "", + "description": "Built a BiLSTM model in TensorFlow for spoken language classification, achieving 75.46% test accuracy, with MFCC feature extraction from 40,000+ audio samples." + } + ], + "skills": { + "Languages": [ + "Python", + "JavaScript", + "TypeScript", + "HTML", + "CSS", + "C++", + "C", + "Java", + "Dart", + "SQL" + ], + "Libraries & Frameworks": [ + "ReactJS", + "Express.js", + "NodeJS", + "Flutter", + "Tailwind CSS", + "TensorFlow" + ], + "Databases & ORMs": ["MongoDB", "PostgreSQL"], + "Tools & Platforms": ["Git", "GitHub", "Postman"], + "Soft Skills": [ + "Fast Learner", + "Persistence", + "Teamwork", + "Adaptability", + "Problem-Solving", + "Grit" + ] + }, + "programmingProfiles": { + "codeforces": { + "handle": "Dev_Bachani", + "link": "https://codeforces.com/profile/Dev_Bachani", + "maxRating": 1018, + "problemsSolved": 500 + }, + "leetcode": { + "handle": "Dev22603", + "link": "https://leetcode.com/Dev22603/", + "maxRating": 1538, + "problemsSolved": 300 + }, + "hackerrank": { + "handle": "Dev22603", + "link": "https://www.hackerrank.com/profile/Dev22603", + "stars": { + "problemSolving": 5, + "python": 5 + } + }, + "codechef": { + "handle": "Dev22603", + "link": "https://www.codechef.com/users/dev22603", + "stars": 2, + "maxRating": 1476 + } + }, + "certificates": [ + { + "title": "JavaScript (Intermediate) Certificate", + "link": "https://www.hackerrank.com/certificates/692ea16532b2" + }, + { + "title": "Python Language Course", + "link": "https://olympus1.mygreatlearning.com/course_certificate/BCEFFFJL" + } + ] +} From f43ba8fb7bdb534c72fb436d5960288f31620640 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 11:04:10 +0530 Subject: [PATCH 011/103] modified data --- frontend/portfolio.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/portfolio.json b/frontend/portfolio.json index 5f98010..5f7efb9 100644 --- a/frontend/portfolio.json +++ b/frontend/portfolio.json @@ -41,17 +41,17 @@ "projects": [ { "name": "EduScraper", - "link": "", + "link": "https://github.com/Dev22603/EduScraper", "description": "Used Beautiful Soup to extract Aptitude MCQs from IndiaBix and stored them in a JSON file. Built a React app to display/download MCQ PDFs." }, { "name": "E-Commerce website", - "link": "", + "link": "https://github.com/Dev22603/ecommerce", "description": "Designed and built a role-based e-commerce platform (Admin, Customer) using Node.js, Express.js, React.js, Tailwind CSS, PostgreSQL. Secured with JWT, RBAC; developed REST APIs." }, { "name": "Audio Language Classification using Deep Learning", - "link": "", + "link": "https://www.kaggle.com/code/devbachani/audio-language-classification-using-blstms", "description": "Built a BiLSTM model in TensorFlow for spoken language classification, achieving 75.46% test accuracy, with MFCC feature extraction from 40,000+ audio samples." } ], @@ -77,7 +77,8 @@ "TensorFlow" ], "Databases & ORMs": ["MongoDB", "PostgreSQL"], - "Tools & Platforms": ["Git", "GitHub", "Postman"], + "Tools & Platforms": ["Git", "GitHub", "Postman", "Docker","VSCode"], + "Agents and LLMS":["LangFlow","Cursor","Windsurf","Flowise"] "Soft Skills": [ "Fast Learner", "Persistence", From b3e4605b5427bc6749eaa52a1ac4f6fd69ea7d90 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 11:21:29 +0530 Subject: [PATCH 012/103] updated projects --- frontend/portfolio.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/frontend/portfolio.json b/frontend/portfolio.json index 5f7efb9..76b78b3 100644 --- a/frontend/portfolio.json +++ b/frontend/portfolio.json @@ -27,7 +27,7 @@ { "company": "Medkart Pharmacy Pvt Ltd", "role": "Flutter Developer Intern", - "startDate": "Jan 2025", + "startDate": "January 2025", "endDate": "June 2025", "details": [ "Revamped 9 core app screens in 12 weeks, increasing engagement rates for 50,000+ users.", @@ -53,6 +53,16 @@ "name": "Audio Language Classification using Deep Learning", "link": "https://www.kaggle.com/code/devbachani/audio-language-classification-using-blstms", "description": "Built a BiLSTM model in TensorFlow for spoken language classification, achieving 75.46% test accuracy, with MFCC feature extraction from 40,000+ audio samples." + }, + { + "name": "Decentralized Exchange (FastAPI + React)", + "link": "https://github.com/Dev22603/Decentralized-Exchange-FastAPI", + "description": "Full-stack decentralized exchange project with FastAPI backend and React frontend. Key features include order management, trade execution, modern UI, and SuperTokens authentication." + }, + { + "name": "DSA Progress Tracker", + "link": "https://github.com/Dev22603/DSA-Progress-Tracker", + "description": "Currently under development: A progress tracking tool for the A2Z DSA sheet, allowing users to mark question status, add notes, and access multiple reference links including LeetCode, GeeksforGeeks, Code360, and Hackerrank for comprehensive practice and study." } ], "skills": { @@ -77,8 +87,8 @@ "TensorFlow" ], "Databases & ORMs": ["MongoDB", "PostgreSQL"], - "Tools & Platforms": ["Git", "GitHub", "Postman", "Docker","VSCode"], - "Agents and LLMS":["LangFlow","Cursor","Windsurf","Flowise"] + "Tools & Platforms": ["Git", "GitHub", "Postman", "Docker", "VSCode"], + "Agents and LLMS": ["LangFlow", "Cursor", "Windsurf", "Flowise"], "Soft Skills": [ "Fast Learner", "Persistence", From 13a401a42d7607a2821803b1ee54ce01a85268a2 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 11:24:17 +0530 Subject: [PATCH 013/103] updated keys --- frontend/portfolio.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/portfolio.json b/frontend/portfolio.json index 76b78b3..ee07632 100644 --- a/frontend/portfolio.json +++ b/frontend/portfolio.json @@ -78,18 +78,21 @@ "Dart", "SQL" ], - "Libraries & Frameworks": [ + "librariesFrameworks": [ "ReactJS", "Express.js", + "FastAPI", + "SuperTokens", + "Keycloak", "NodeJS", "Flutter", "Tailwind CSS", "TensorFlow" ], - "Databases & ORMs": ["MongoDB", "PostgreSQL"], - "Tools & Platforms": ["Git", "GitHub", "Postman", "Docker", "VSCode"], - "Agents and LLMS": ["LangFlow", "Cursor", "Windsurf", "Flowise"], - "Soft Skills": [ + "databasesORMs": ["MongoDB", "PostgreSQL"], + "toolsPlatforms": ["Git", "GitHub", "Postman", "Docker", "VSCode"], + "agentsLLMS": ["LangFlow", "Cursor", "Windsurf", "Flowise"], + "softSkills": [ "Fast Learner", "Persistence", "Teamwork", From bc5202c5ca2f81d04329b0eb7ad437bc9e606133 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 13:57:40 +0530 Subject: [PATCH 014/103] updated the package.json --- frontend/package-lock.json | 54 ++++++++++++++++++++++++++++++++++++++ frontend/package.json | 1 + 2 files changed, 55 insertions(+) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1adfcbb..c1d8d77 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -11,6 +11,7 @@ "@tailwindcss/vite": "^4.1.12", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-router-dom": "^7.8.1", "tailwindcss": "^4.1.12" }, "devDependencies": { @@ -1718,6 +1719,15 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2809,6 +2819,44 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.8.1.tgz", + "integrity": "sha512-5cy/M8DHcG51/KUIka1nfZ2QeylS4PJRs6TT8I4PF5axVsI5JUxp0hC0NZ/AEEj8Vw7xsEoD7L/6FY+zoYaOGA==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.8.1.tgz", + "integrity": "sha512-NkgBCF3sVgCiAWIlSt89GR2PLaksMpoo3HDCorpRfnCEfdtRPLiuTf+CNXvqZMI5SJLZCLpVCvcZrTdtGW64xQ==", + "license": "MIT", + "dependencies": { + "react-router": "7.8.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2870,6 +2918,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 38b0db8..2301f31 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,6 +13,7 @@ "@tailwindcss/vite": "^4.1.12", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-router-dom": "^7.8.1", "tailwindcss": "^4.1.12" }, "devDependencies": { From 8278df74b90f9e72b96ea0d3ec1da02e55d3f797 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 15:26:28 +0530 Subject: [PATCH 015/103] dotted BG added --- frontend/package-lock.json | 10 + frontend/package.json | 1 + frontend/public/vite.svg | 1 - frontend/src/App.jsx | 36 +- frontend/src/assets/react.svg | 1 - frontend/src/components/Layout.jsx | 107 + frontend/src/lib/utils.js | 6 + frontend/src/pages/Contact.jsx | 0 frontend/src/pages/Experience.jsx | 0 frontend/src/pages/GuestBook.jsx | 0 frontend/src/pages/Home.jsx | 12 + frontend/src/pages/Projects.jsx | 0 frontend/vite.config.js | 19 +- node_modules/.package-lock.json | 17 + node_modules/tailwind-merge/LICENSE.md | 21 + node_modules/tailwind-merge/README.md | 38 + .../tailwind-merge/dist/bundle-cjs.js | 3047 ++++++++++++++++ .../tailwind-merge/dist/bundle-cjs.js.map | 1 + .../tailwind-merge/dist/bundle-mjs.mjs | 3035 ++++++++++++++++ .../tailwind-merge/dist/bundle-mjs.mjs.map | 1 + .../tailwind-merge/dist/es5/bundle-cjs.js | 3197 +++++++++++++++++ .../tailwind-merge/dist/es5/bundle-cjs.js.map | 1 + .../tailwind-merge/dist/es5/bundle-mjs.mjs | 3185 ++++++++++++++++ .../dist/es5/bundle-mjs.mjs.map | 1 + node_modules/tailwind-merge/dist/types.d.ts | 2630 ++++++++++++++ node_modules/tailwind-merge/package.json | 92 + node_modules/tailwind-merge/src/index.ts | 17 + .../src/lib/class-group-utils.ts | 182 + .../tailwind-merge/src/lib/config-utils.ts | 14 + .../src/lib/create-tailwind-merge.ts | 50 + .../tailwind-merge/src/lib/default-config.ts | 2359 ++++++++++++ .../src/lib/extend-tailwind-merge.ts | 25 + .../tailwind-merge/src/lib/from-theme.ts | 13 + .../tailwind-merge/src/lib/lru-cache.ts | 52 + .../tailwind-merge/src/lib/merge-classlist.ts | 89 + .../tailwind-merge/src/lib/merge-configs.ts | 84 + .../src/lib/parse-class-name.ts | 106 + .../tailwind-merge/src/lib/sort-modifiers.ts | 38 + .../tailwind-merge/src/lib/tw-join.ts | 50 + .../tailwind-merge/src/lib/tw-merge.ts | 4 + node_modules/tailwind-merge/src/lib/types.ts | 566 +++ .../tailwind-merge/src/lib/validators.ts | 128 + package-lock.json | 22 + package.json | 5 + 44 files changed, 19250 insertions(+), 13 deletions(-) delete mode 100644 frontend/public/vite.svg delete mode 100644 frontend/src/assets/react.svg create mode 100644 frontend/src/components/Layout.jsx create mode 100644 frontend/src/lib/utils.js create mode 100644 frontend/src/pages/Contact.jsx create mode 100644 frontend/src/pages/Experience.jsx create mode 100644 frontend/src/pages/GuestBook.jsx create mode 100644 frontend/src/pages/Home.jsx create mode 100644 frontend/src/pages/Projects.jsx create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/tailwind-merge/LICENSE.md create mode 100644 node_modules/tailwind-merge/README.md create mode 100644 node_modules/tailwind-merge/dist/bundle-cjs.js create mode 100644 node_modules/tailwind-merge/dist/bundle-cjs.js.map create mode 100644 node_modules/tailwind-merge/dist/bundle-mjs.mjs create mode 100644 node_modules/tailwind-merge/dist/bundle-mjs.mjs.map create mode 100644 node_modules/tailwind-merge/dist/es5/bundle-cjs.js create mode 100644 node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map create mode 100644 node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs create mode 100644 node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map create mode 100644 node_modules/tailwind-merge/dist/types.d.ts create mode 100644 node_modules/tailwind-merge/package.json create mode 100644 node_modules/tailwind-merge/src/index.ts create mode 100644 node_modules/tailwind-merge/src/lib/class-group-utils.ts create mode 100644 node_modules/tailwind-merge/src/lib/config-utils.ts create mode 100644 node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts create mode 100644 node_modules/tailwind-merge/src/lib/default-config.ts create mode 100644 node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts create mode 100644 node_modules/tailwind-merge/src/lib/from-theme.ts create mode 100644 node_modules/tailwind-merge/src/lib/lru-cache.ts create mode 100644 node_modules/tailwind-merge/src/lib/merge-classlist.ts create mode 100644 node_modules/tailwind-merge/src/lib/merge-configs.ts create mode 100644 node_modules/tailwind-merge/src/lib/parse-class-name.ts create mode 100644 node_modules/tailwind-merge/src/lib/sort-modifiers.ts create mode 100644 node_modules/tailwind-merge/src/lib/tw-join.ts create mode 100644 node_modules/tailwind-merge/src/lib/tw-merge.ts create mode 100644 node_modules/tailwind-merge/src/lib/types.ts create mode 100644 node_modules/tailwind-merge/src/lib/validators.ts create mode 100644 package-lock.json create mode 100644 package.json diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c1d8d77..8a2c8c3 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "@tailwindcss/vite": "^4.1.12", + "clsx": "^2.1.1", "react": "^19.1.1", "react-dom": "^19.1.1", "react-router-dom": "^7.8.1", @@ -1689,6 +1690,15 @@ "node": ">=18" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 2301f31..156cce3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@tailwindcss/vite": "^4.1.12", + "clsx": "^2.1.1", "react": "^19.1.1", "react-dom": "^19.1.1", "react-router-dom": "^7.8.1", diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/frontend/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 616911f..a8e95c9 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,9 +1,33 @@ -function App() { +import React from "react"; +import { Routes, Route, Navigate, BrowserRouter } from "react-router-dom"; +import Home from "@/pages/Home"; +// import Experience from "@/pages/Experience"; +// import Projects from "@/pages/Projects"; +// import Contact from "@/pages/Contact"; +// import GuestBook from "@/pages/GuestBook"; +import { Layout } from "@/components/Layout"; + +export default function App() { + const DARK_BG = "#0d0b0f"; + return ( - <> -

Dev

- + + + + } /> + {/* } /> + } /> + } /> + } /> */} + } /> + + + ); } - -export default App; diff --git a/frontend/src/assets/react.svg b/frontend/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/frontend/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/components/Layout.jsx b/frontend/src/components/Layout.jsx new file mode 100644 index 0000000..7bb87c6 --- /dev/null +++ b/frontend/src/components/Layout.jsx @@ -0,0 +1,107 @@ +import { cn } from "@/lib/utils"; + +// interface LayoutProps { +// children?: React.ReactNode; +// className?: string; +// containerClassName?: string; +// dotColor?: { +// light: string; +// dark: string; +// }; +// dotSize?: number; +// dotSpacing?: number; +// fadeToColor?: string; +// fadePercentage?: number; +// } + +export function Layout({ + children, + className, + containerClassName, + dotColor = { + light: "#d4d4d4", + dark: "#232323", + }, + dotSize = 1, + dotSpacing = 20, + fadeToColor = "bg-background", + fadePercentage = 50, +}) { + const DARK_BG = "0d0b0f"; + + return ( +
+ {/* Dot pattern */} +
+ + {/* Dark mode dot pattern */} + + ); +} diff --git a/frontend/src/components/Layout.jsx b/frontend/src/components/Layout.jsx index 7bb87c6..f8869c4 100644 --- a/frontend/src/components/Layout.jsx +++ b/frontend/src/components/Layout.jsx @@ -27,7 +27,6 @@ export function Layout({ fadeToColor = "bg-background", fadePercentage = 50, }) { - const DARK_BG = "0d0b0f"; return (
Date: Fri, 22 Aug 2025 16:34:37 +0530 Subject: [PATCH 017/103] gitignore updates --- .gitignore | 163 +- frontend/.gitignore | 157 + node_modules/.package-lock.json | 17 - node_modules/tailwind-merge/LICENSE.md | 21 - node_modules/tailwind-merge/README.md | 38 - .../tailwind-merge/dist/bundle-cjs.js | 3047 ---------------- .../tailwind-merge/dist/bundle-cjs.js.map | 1 - .../tailwind-merge/dist/bundle-mjs.mjs | 3035 ---------------- .../tailwind-merge/dist/bundle-mjs.mjs.map | 1 - .../tailwind-merge/dist/es5/bundle-cjs.js | 3197 ----------------- .../tailwind-merge/dist/es5/bundle-cjs.js.map | 1 - .../tailwind-merge/dist/es5/bundle-mjs.mjs | 3185 ---------------- .../dist/es5/bundle-mjs.mjs.map | 1 - node_modules/tailwind-merge/dist/types.d.ts | 2630 -------------- node_modules/tailwind-merge/package.json | 92 - node_modules/tailwind-merge/src/index.ts | 17 - .../src/lib/class-group-utils.ts | 182 - .../tailwind-merge/src/lib/config-utils.ts | 14 - .../src/lib/create-tailwind-merge.ts | 50 - .../tailwind-merge/src/lib/default-config.ts | 2359 ------------ .../src/lib/extend-tailwind-merge.ts | 25 - .../tailwind-merge/src/lib/from-theme.ts | 13 - .../tailwind-merge/src/lib/lru-cache.ts | 52 - .../tailwind-merge/src/lib/merge-classlist.ts | 89 - .../tailwind-merge/src/lib/merge-configs.ts | 84 - .../src/lib/parse-class-name.ts | 106 - .../tailwind-merge/src/lib/sort-modifiers.ts | 38 - .../tailwind-merge/src/lib/tw-join.ts | 50 - .../tailwind-merge/src/lib/tw-merge.ts | 4 - node_modules/tailwind-merge/src/lib/types.ts | 566 --- .../tailwind-merge/src/lib/validators.ts | 128 - package-lock.json | 22 - package.json | 5 - 33 files changed, 305 insertions(+), 19085 deletions(-) create mode 100644 frontend/.gitignore delete mode 100644 node_modules/.package-lock.json delete mode 100644 node_modules/tailwind-merge/LICENSE.md delete mode 100644 node_modules/tailwind-merge/README.md delete mode 100644 node_modules/tailwind-merge/dist/bundle-cjs.js delete mode 100644 node_modules/tailwind-merge/dist/bundle-cjs.js.map delete mode 100644 node_modules/tailwind-merge/dist/bundle-mjs.mjs delete mode 100644 node_modules/tailwind-merge/dist/bundle-mjs.mjs.map delete mode 100644 node_modules/tailwind-merge/dist/es5/bundle-cjs.js delete mode 100644 node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map delete mode 100644 node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs delete mode 100644 node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map delete mode 100644 node_modules/tailwind-merge/dist/types.d.ts delete mode 100644 node_modules/tailwind-merge/package.json delete mode 100644 node_modules/tailwind-merge/src/index.ts delete mode 100644 node_modules/tailwind-merge/src/lib/class-group-utils.ts delete mode 100644 node_modules/tailwind-merge/src/lib/config-utils.ts delete mode 100644 node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts delete mode 100644 node_modules/tailwind-merge/src/lib/default-config.ts delete mode 100644 node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts delete mode 100644 node_modules/tailwind-merge/src/lib/from-theme.ts delete mode 100644 node_modules/tailwind-merge/src/lib/lru-cache.ts delete mode 100644 node_modules/tailwind-merge/src/lib/merge-classlist.ts delete mode 100644 node_modules/tailwind-merge/src/lib/merge-configs.ts delete mode 100644 node_modules/tailwind-merge/src/lib/parse-class-name.ts delete mode 100644 node_modules/tailwind-merge/src/lib/sort-modifiers.ts delete mode 100644 node_modules/tailwind-merge/src/lib/tw-join.ts delete mode 100644 node_modules/tailwind-merge/src/lib/tw-merge.ts delete mode 100644 node_modules/tailwind-merge/src/lib/types.ts delete mode 100644 node_modules/tailwind-merge/src/lib/validators.ts delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/.gitignore b/.gitignore index a547bf3..e169df4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,157 @@ +# Created by https://www.toptal.com/developers/gitignore/api/react,node +# Edit at https://www.toptal.com/developers/gitignore?templates=react,node + +### Node ### # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* lerna-debug.log* +.pnpm-debug.log* -node_modules +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +### react ### +.DS_* +**/*.backup.* +**/*.back.* + +node_modules + +*.sublime* + +psd +thumb +sketch + +# End of https://www.toptal.com/developers/gitignore/api/react,node \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..e169df4 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,157 @@ +# Created by https://www.toptal.com/developers/gitignore/api/react,node +# Edit at https://www.toptal.com/developers/gitignore?templates=react,node + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +### react ### +.DS_* +**/*.backup.* +**/*.back.* + +node_modules + +*.sublime* + +psd +thumb +sketch + +# End of https://www.toptal.com/developers/gitignore/api/react,node \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index 0fe22af..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "dev22603", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/tailwind-merge": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", - "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - } - } -} diff --git a/node_modules/tailwind-merge/LICENSE.md b/node_modules/tailwind-merge/LICENSE.md deleted file mode 100644 index 0d2b96a..0000000 --- a/node_modules/tailwind-merge/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Dany Castillo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/tailwind-merge/README.md b/node_modules/tailwind-merge/README.md deleted file mode 100644 index 0a86b13..0000000 --- a/node_modules/tailwind-merge/README.md +++ /dev/null @@ -1,38 +0,0 @@ - - -
-
- - tailwind-merge - -
- -# tailwind-merge - -Utility function to efficiently merge [Tailwind CSS](https://tailwindcss.com) classes in JS without style conflicts. - -```ts -import { twMerge } from 'tailwind-merge' - -twMerge('px-2 py-1 bg-red hover:bg-dark-red', 'p-3 bg-[#B91C1C]') -// → 'hover:bg-dark-red p-3 bg-[#B91C1C]' -``` - -- Supports Tailwind v4.0 up to v4.1 (if you use Tailwind v3, use [tailwind-merge v2.6.0](https://github.com/dcastil/tailwind-merge/tree/v2.6.0)) -- Works in all modern browsers and maintained Node versions -- Fully typed -- [Check bundle size on Bundlephobia](https://bundlephobia.com/package/tailwind-merge) - -## Get started - -- [What is it for](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/what-is-it-for.md) -- [When and how to use it](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/when-and-how-to-use-it.md) -- [Features](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/features.md) -- [Limitations](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/limitations.md) -- [Configuration](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/configuration.md) -- [Recipes](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/recipes.md) -- [API reference](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/api-reference.md) -- [Writing plugins](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/writing-plugins.md) -- [Versioning](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/versioning.md) -- [Contributing](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/contributing.md) -- [Similar packages](https://github.com/dcastil/tailwind-merge/tree/v3.3.1/docs/similar-packages.md) diff --git a/node_modules/tailwind-merge/dist/bundle-cjs.js b/node_modules/tailwind-merge/dist/bundle-cjs.js deleted file mode 100644 index 73505e3..0000000 --- a/node_modules/tailwind-merge/dist/bundle-cjs.js +++ /dev/null @@ -1,3047 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, Symbol.toStringTag, { - value: 'Module' -}); -const CLASS_PART_SEPARATOR = '-'; -const createClassGroupUtils = config => { - const classMap = createClassMap(config); - const { - conflictingClassGroups, - conflictingClassGroupModifiers - } = config; - const getClassGroupId = className => { - const classParts = className.split(CLASS_PART_SEPARATOR); - // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts. - if (classParts[0] === '' && classParts.length !== 1) { - classParts.shift(); - } - return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className); - }; - const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => { - const conflicts = conflictingClassGroups[classGroupId] || []; - if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) { - return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]]; - } - return conflicts; - }; - return { - getClassGroupId, - getConflictingClassGroupIds - }; -}; -const getGroupRecursive = (classParts, classPartObject) => { - if (classParts.length === 0) { - return classPartObject.classGroupId; - } - const currentClassPart = classParts[0]; - const nextClassPartObject = classPartObject.nextPart.get(currentClassPart); - const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined; - if (classGroupFromNextClassPart) { - return classGroupFromNextClassPart; - } - if (classPartObject.validators.length === 0) { - return undefined; - } - const classRest = classParts.join(CLASS_PART_SEPARATOR); - return classPartObject.validators.find(({ - validator - }) => validator(classRest))?.classGroupId; -}; -const arbitraryPropertyRegex = /^\[(.+)\]$/; -const getGroupIdForArbitraryProperty = className => { - if (arbitraryPropertyRegex.test(className)) { - const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1]; - const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':')); - if (property) { - // I use two dots here because one dot is used as prefix for class groups in plugins - return 'arbitrary..' + property; - } - } -}; -/** - * Exported for testing only - */ -const createClassMap = config => { - const { - theme, - classGroups - } = config; - const classMap = { - nextPart: new Map(), - validators: [] - }; - for (const classGroupId in classGroups) { - processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme); - } - return classMap; -}; -const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => { - classGroup.forEach(classDefinition => { - if (typeof classDefinition === 'string') { - const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition); - classPartObjectToEdit.classGroupId = classGroupId; - return; - } - if (typeof classDefinition === 'function') { - if (isThemeGetter(classDefinition)) { - processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme); - return; - } - classPartObject.validators.push({ - validator: classDefinition, - classGroupId - }); - return; - } - Object.entries(classDefinition).forEach(([key, classGroup]) => { - processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme); - }); - }); -}; -const getPart = (classPartObject, path) => { - let currentClassPartObject = classPartObject; - path.split(CLASS_PART_SEPARATOR).forEach(pathPart => { - if (!currentClassPartObject.nextPart.has(pathPart)) { - currentClassPartObject.nextPart.set(pathPart, { - nextPart: new Map(), - validators: [] - }); - } - currentClassPartObject = currentClassPartObject.nextPart.get(pathPart); - }); - return currentClassPartObject; -}; -const isThemeGetter = func => func.isThemeGetter; - -// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance -const createLruCache = maxCacheSize => { - if (maxCacheSize < 1) { - return { - get: () => undefined, - set: () => {} - }; - } - let cacheSize = 0; - let cache = new Map(); - let previousCache = new Map(); - const update = (key, value) => { - cache.set(key, value); - cacheSize++; - if (cacheSize > maxCacheSize) { - cacheSize = 0; - previousCache = cache; - cache = new Map(); - } - }; - return { - get(key) { - let value = cache.get(key); - if (value !== undefined) { - return value; - } - if ((value = previousCache.get(key)) !== undefined) { - update(key, value); - return value; - } - }, - set(key, value) { - if (cache.has(key)) { - cache.set(key, value); - } else { - update(key, value); - } - } - }; -}; -const IMPORTANT_MODIFIER = '!'; -const MODIFIER_SEPARATOR = ':'; -const MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length; -const createParseClassName = config => { - const { - prefix, - experimentalParseClassName - } = config; - /** - * Parse class name into parts. - * - * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS - * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js - */ - let parseClassName = className => { - const modifiers = []; - let bracketDepth = 0; - let parenDepth = 0; - let modifierStart = 0; - let postfixModifierPosition; - for (let index = 0; index < className.length; index++) { - let currentCharacter = className[index]; - if (bracketDepth === 0 && parenDepth === 0) { - if (currentCharacter === MODIFIER_SEPARATOR) { - modifiers.push(className.slice(modifierStart, index)); - modifierStart = index + MODIFIER_SEPARATOR_LENGTH; - continue; - } - if (currentCharacter === '/') { - postfixModifierPosition = index; - continue; - } - } - if (currentCharacter === '[') { - bracketDepth++; - } else if (currentCharacter === ']') { - bracketDepth--; - } else if (currentCharacter === '(') { - parenDepth++; - } else if (currentCharacter === ')') { - parenDepth--; - } - } - const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart); - const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier); - const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier; - const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined; - return { - modifiers, - hasImportantModifier, - baseClassName, - maybePostfixModifierPosition - }; - }; - if (prefix) { - const fullPrefix = prefix + MODIFIER_SEPARATOR; - const parseClassNameOriginal = parseClassName; - parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : { - isExternal: true, - modifiers: [], - hasImportantModifier: false, - baseClassName: className, - maybePostfixModifierPosition: undefined - }; - } - if (experimentalParseClassName) { - const parseClassNameOriginal = parseClassName; - parseClassName = className => experimentalParseClassName({ - className, - parseClassName: parseClassNameOriginal - }); - } - return parseClassName; -}; -const stripImportantModifier = baseClassName => { - if (baseClassName.endsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(0, baseClassName.length - 1); - } - /** - * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons. - * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864 - */ - if (baseClassName.startsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(1); - } - return baseClassName; -}; - -/** - * Sorts modifiers according to following schema: - * - Predefined modifiers are sorted alphabetically - * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it - */ -const createSortModifiers = config => { - const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true])); - const sortModifiers = modifiers => { - if (modifiers.length <= 1) { - return modifiers; - } - const sortedModifiers = []; - let unsortedModifiers = []; - modifiers.forEach(modifier => { - const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier]; - if (isPositionSensitive) { - sortedModifiers.push(...unsortedModifiers.sort(), modifier); - unsortedModifiers = []; - } else { - unsortedModifiers.push(modifier); - } - }); - sortedModifiers.push(...unsortedModifiers.sort()); - return sortedModifiers; - }; - return sortModifiers; -}; -const createConfigUtils = config => ({ - cache: createLruCache(config.cacheSize), - parseClassName: createParseClassName(config), - sortModifiers: createSortModifiers(config), - ...createClassGroupUtils(config) -}); -const SPLIT_CLASSES_REGEX = /\s+/; -const mergeClassList = (classList, configUtils) => { - const { - parseClassName, - getClassGroupId, - getConflictingClassGroupIds, - sortModifiers - } = configUtils; - /** - * Set of classGroupIds in following format: - * `{importantModifier}{variantModifiers}{classGroupId}` - * @example 'float' - * @example 'hover:focus:bg-color' - * @example 'md:!pr' - */ - const classGroupsInConflict = []; - const classNames = classList.trim().split(SPLIT_CLASSES_REGEX); - let result = ''; - for (let index = classNames.length - 1; index >= 0; index -= 1) { - const originalClassName = classNames[index]; - const { - isExternal, - modifiers, - hasImportantModifier, - baseClassName, - maybePostfixModifierPosition - } = parseClassName(originalClassName); - if (isExternal) { - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - let hasPostfixModifier = !!maybePostfixModifierPosition; - let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName); - if (!classGroupId) { - if (!hasPostfixModifier) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - classGroupId = getClassGroupId(baseClassName); - if (!classGroupId) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - hasPostfixModifier = false; - } - const variantModifier = sortModifiers(modifiers).join(':'); - const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier; - const classId = modifierId + classGroupId; - if (classGroupsInConflict.includes(classId)) { - // Tailwind class omitted due to conflict - continue; - } - classGroupsInConflict.push(classId); - const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier); - for (let i = 0; i < conflictGroups.length; ++i) { - const group = conflictGroups[i]; - classGroupsInConflict.push(modifierId + group); - } - // Tailwind class not in conflict - result = originalClassName + (result.length > 0 ? ' ' + result : result); - } - return result; -}; - -/** - * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better. - * - * Specifically: - * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js - * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts - * - * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com) - */ -function twJoin() { - let index = 0; - let argument; - let resolvedValue; - let string = ''; - while (index < arguments.length) { - if (argument = arguments[index++]) { - if (resolvedValue = toValue(argument)) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -} -const toValue = mix => { - if (typeof mix === 'string') { - return mix; - } - let resolvedValue; - let string = ''; - for (let k = 0; k < mix.length; k++) { - if (mix[k]) { - if (resolvedValue = toValue(mix[k])) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -}; -function createTailwindMerge(createConfigFirst, ...createConfigRest) { - let configUtils; - let cacheGet; - let cacheSet; - let functionToCall = initTailwindMerge; - function initTailwindMerge(classList) { - const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst()); - configUtils = createConfigUtils(config); - cacheGet = configUtils.cache.get; - cacheSet = configUtils.cache.set; - functionToCall = tailwindMerge; - return tailwindMerge(classList); - } - function tailwindMerge(classList) { - const cachedResult = cacheGet(classList); - if (cachedResult) { - return cachedResult; - } - const result = mergeClassList(classList, configUtils); - cacheSet(classList, result); - return result; - } - return function callTailwindMerge() { - return functionToCall(twJoin.apply(null, arguments)); - }; -} -const fromTheme = key => { - const themeGetter = theme => theme[key] || []; - themeGetter.isThemeGetter = true; - return themeGetter; -}; -const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i; -const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i; -const fractionRegex = /^\d+\/\d+$/; -const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/; -const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/; -const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/; -// Shadow always begins with x and y offset separated by underscore optionally prepended by inset -const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/; -const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/; -const isFraction = value => fractionRegex.test(value); -const isNumber = value => !!value && !Number.isNaN(Number(value)); -const isInteger = value => !!value && Number.isInteger(Number(value)); -const isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1)); -const isTshirtSize = value => tshirtUnitRegex.test(value); -const isAny = () => true; -const isLengthOnly = value => -// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. -// For example, `hsl(0 0% 0%)` would be classified as a length without this check. -// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. -lengthUnitRegex.test(value) && !colorFunctionRegex.test(value); -const isNever = () => false; -const isShadow = value => shadowRegex.test(value); -const isImage = value => imageRegex.test(value); -const isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value); -const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever); -const isArbitraryValue = value => arbitraryValueRegex.test(value); -const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly); -const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber); -const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever); -const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage); -const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow); -const isArbitraryVariable = value => arbitraryVariableRegex.test(value); -const isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength); -const isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName); -const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition); -const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize); -const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage); -const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true); -// Helpers -const getIsArbitraryValue = (value, testLabel, testValue) => { - const result = arbitraryValueRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return testValue(result[2]); - } - return false; -}; -const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => { - const result = arbitraryVariableRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return shouldMatchNoLabel; - } - return false; -}; -// Labels -const isLabelPosition = label => label === 'position' || label === 'percentage'; -const isLabelImage = label => label === 'image' || label === 'url'; -const isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size'; -const isLabelLength = label => label === 'length'; -const isLabelNumber = label => label === 'number'; -const isLabelFamilyName = label => label === 'family-name'; -const isLabelShadow = label => label === 'shadow'; -const validators = /*#__PURE__*/Object.defineProperty({ - __proto__: null, - isAny, - isAnyNonArbitrary, - isArbitraryImage, - isArbitraryLength, - isArbitraryNumber, - isArbitraryPosition, - isArbitraryShadow, - isArbitrarySize, - isArbitraryValue, - isArbitraryVariable, - isArbitraryVariableFamilyName, - isArbitraryVariableImage, - isArbitraryVariableLength, - isArbitraryVariablePosition, - isArbitraryVariableShadow, - isArbitraryVariableSize, - isFraction, - isInteger, - isNumber, - isPercent, - isTshirtSize -}, Symbol.toStringTag, { - value: 'Module' -}); -const getDefaultConfig = () => { - /** - * Theme getters for theme variable namespaces - * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces - */ - /***/ - const themeColor = fromTheme('color'); - const themeFont = fromTheme('font'); - const themeText = fromTheme('text'); - const themeFontWeight = fromTheme('font-weight'); - const themeTracking = fromTheme('tracking'); - const themeLeading = fromTheme('leading'); - const themeBreakpoint = fromTheme('breakpoint'); - const themeContainer = fromTheme('container'); - const themeSpacing = fromTheme('spacing'); - const themeRadius = fromTheme('radius'); - const themeShadow = fromTheme('shadow'); - const themeInsetShadow = fromTheme('inset-shadow'); - const themeTextShadow = fromTheme('text-shadow'); - const themeDropShadow = fromTheme('drop-shadow'); - const themeBlur = fromTheme('blur'); - const themePerspective = fromTheme('perspective'); - const themeAspect = fromTheme('aspect'); - const themeEase = fromTheme('ease'); - const themeAnimate = fromTheme('animate'); - /** - * Helpers to avoid repeating the same scales - * - * We use functions that create a new array every time they're called instead of static arrays. - * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config. - */ - /***/ - const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column']; - const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-top', 'top-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-top', 'bottom-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-bottom', 'bottom-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-bottom']; - const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue]; - const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll']; - const scaleOverscroll = () => ['auto', 'contain', 'none']; - const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing]; - const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()]; - const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue]; - const scaleGridColRowStartAndEnd = () => ['auto', { - span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] - }, isInteger, isArbitraryVariable, isArbitraryValue]; - const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]; - const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue]; - const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe']; - const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe']; - const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()]; - const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()]; - const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue]; - const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, { - position: [isArbitraryVariable, isArbitraryValue] - }]; - const scaleBgRepeat = () => ['no-repeat', { - repeat: ['', 'x', 'y', 'space', 'round'] - }]; - const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, { - size: [isArbitraryVariable, isArbitraryValue] - }]; - const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength]; - const scaleRadius = () => [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue]; - const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength]; - const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double']; - const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity']; - const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition]; - const scaleBlur = () => [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue]; - const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue]; - const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()]; - return { - cacheSize: 500, - theme: { - animate: ['spin', 'ping', 'pulse', 'bounce'], - aspect: ['video'], - blur: [isTshirtSize], - breakpoint: [isTshirtSize], - color: [isAny], - container: [isTshirtSize], - 'drop-shadow': [isTshirtSize], - ease: ['in', 'out', 'in-out'], - font: [isAnyNonArbitrary], - 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'], - 'inset-shadow': [isTshirtSize], - leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'], - perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'], - radius: [isTshirtSize], - shadow: [isTshirtSize], - spacing: ['px', isNumber], - text: [isTshirtSize], - 'text-shadow': [isTshirtSize], - tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'] - }, - classGroups: { - // -------------- - // --- Layout --- - // -------------- - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - aspect: [{ - aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect] - }], - /** - * Container - * @see https://tailwindcss.com/docs/container - * @deprecated since Tailwind CSS v4.0.0 - */ - container: ['container'], - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - columns: [{ - columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] - }], - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - 'break-after': [{ - 'break-after': scaleBreak() - }], - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - 'break-before': [{ - 'break-before': scaleBreak() - }], - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - 'break-inside': [{ - 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] - }], - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - 'box-decoration': [{ - 'box-decoration': ['slice', 'clone'] - }], - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - box: [{ - box: ['border', 'content'] - }], - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'], - /** - * Screen Reader Only - * @see https://tailwindcss.com/docs/display#screen-reader-only - */ - sr: ['sr-only', 'not-sr-only'], - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - float: [{ - float: ['right', 'left', 'none', 'start', 'end'] - }], - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - clear: [{ - clear: ['left', 'right', 'both', 'none', 'start', 'end'] - }], - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - isolation: ['isolate', 'isolation-auto'], - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - 'object-fit': [{ - object: ['contain', 'cover', 'fill', 'none', 'scale-down'] - }], - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - 'object-position': [{ - object: scalePositionWithArbitrary() - }], - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - overflow: [{ - overflow: scaleOverflow() - }], - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-x': [{ - 'overflow-x': scaleOverflow() - }], - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-y': [{ - 'overflow-y': scaleOverflow() - }], - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - overscroll: [{ - overscroll: scaleOverscroll() - }], - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-x': [{ - 'overscroll-x': scaleOverscroll() - }], - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-y': [{ - 'overscroll-y': scaleOverscroll() - }], - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - position: ['static', 'fixed', 'absolute', 'relative', 'sticky'], - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - inset: [{ - inset: scaleInset() - }], - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-x': [{ - 'inset-x': scaleInset() - }], - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-y': [{ - 'inset-y': scaleInset() - }], - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - start: [{ - start: scaleInset() - }], - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - end: [{ - end: scaleInset() - }], - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - top: [{ - top: scaleInset() - }], - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - right: [{ - right: scaleInset() - }], - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - bottom: [{ - bottom: scaleInset() - }], - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - left: [{ - left: scaleInset() - }], - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - visibility: ['visible', 'invisible', 'collapse'], - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - z: [{ - z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] - }], - // ------------------------ - // --- Flexbox and Grid --- - // ------------------------ - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - basis: [{ - basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()] - }], - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - 'flex-direction': [{ - flex: ['row', 'row-reverse', 'col', 'col-reverse'] - }], - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - 'flex-wrap': [{ - flex: ['nowrap', 'wrap', 'wrap-reverse'] - }], - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - flex: [{ - flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] - }], - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - grow: [{ - grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - shrink: [{ - shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - order: [{ - order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - 'grid-cols': [{ - 'grid-cols': scaleGridTemplateColsRows() - }], - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start-end': [{ - col: scaleGridColRowStartAndEnd() - }], - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start': [{ - 'col-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-end': [{ - 'col-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - 'grid-rows': [{ - 'grid-rows': scaleGridTemplateColsRows() - }], - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start-end': [{ - row: scaleGridColRowStartAndEnd() - }], - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start': [{ - 'row-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-end': [{ - 'row-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - 'grid-flow': [{ - 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] - }], - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - 'auto-cols': [{ - 'auto-cols': scaleGridAutoColsRows() - }], - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - 'auto-rows': [{ - 'auto-rows': scaleGridAutoColsRows() - }], - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - gap: [{ - gap: scaleUnambiguousSpacing() - }], - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - 'gap-x': [{ - 'gap-x': scaleUnambiguousSpacing() - }], - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - 'gap-y': [{ - 'gap-y': scaleUnambiguousSpacing() - }], - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - 'justify-content': [{ - justify: [...scaleAlignPrimaryAxis(), 'normal'] - }], - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - 'justify-items': [{ - 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] - }], - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - 'justify-self': [{ - 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] - }], - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - 'align-content': [{ - content: ['normal', ...scaleAlignPrimaryAxis()] - }], - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - 'align-items': [{ - items: [...scaleAlignSecondaryAxis(), { - baseline: ['', 'last'] - }] - }], - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - 'align-self': [{ - self: ['auto', ...scaleAlignSecondaryAxis(), { - baseline: ['', 'last'] - }] - }], - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - 'place-content': [{ - 'place-content': scaleAlignPrimaryAxis() - }], - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - 'place-items': [{ - 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] - }], - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - 'place-self': [{ - 'place-self': ['auto', ...scaleAlignSecondaryAxis()] - }], - // Spacing - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - p: [{ - p: scaleUnambiguousSpacing() - }], - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - px: [{ - px: scaleUnambiguousSpacing() - }], - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - py: [{ - py: scaleUnambiguousSpacing() - }], - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - ps: [{ - ps: scaleUnambiguousSpacing() - }], - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - pe: [{ - pe: scaleUnambiguousSpacing() - }], - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - pt: [{ - pt: scaleUnambiguousSpacing() - }], - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - pr: [{ - pr: scaleUnambiguousSpacing() - }], - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - pb: [{ - pb: scaleUnambiguousSpacing() - }], - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - pl: [{ - pl: scaleUnambiguousSpacing() - }], - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - m: [{ - m: scaleMargin() - }], - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - mx: [{ - mx: scaleMargin() - }], - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - my: [{ - my: scaleMargin() - }], - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - ms: [{ - ms: scaleMargin() - }], - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - me: [{ - me: scaleMargin() - }], - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - mt: [{ - mt: scaleMargin() - }], - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - mr: [{ - mr: scaleMargin() - }], - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - mb: [{ - mb: scaleMargin() - }], - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - ml: [{ - ml: scaleMargin() - }], - /** - * Space Between X - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x': [{ - 'space-x': scaleUnambiguousSpacing() - }], - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x-reverse': ['space-x-reverse'], - /** - * Space Between Y - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y': [{ - 'space-y': scaleUnambiguousSpacing() - }], - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y-reverse': ['space-y-reverse'], - // -------------- - // --- Sizing --- - // -------------- - /** - * Size - * @see https://tailwindcss.com/docs/width#setting-both-width-and-height - */ - size: [{ - size: scaleSizing() - }], - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - w: [{ - w: [themeContainer, 'screen', ...scaleSizing()] - }], - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - 'min-w': [{ - 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'none', ...scaleSizing()] - }], - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - 'max-w': [{ - 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - { - screen: [themeBreakpoint] - }, ...scaleSizing()] - }], - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - h: [{ - h: ['screen', 'lh', ...scaleSizing()] - }], - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - 'min-h': [{ - 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] - }], - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - 'max-h': [{ - 'max-h': ['screen', 'lh', ...scaleSizing()] - }], - // ------------------ - // --- Typography --- - // ------------------ - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - 'font-size': [{ - text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - 'font-smoothing': ['antialiased', 'subpixel-antialiased'], - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - 'font-style': ['italic', 'not-italic'], - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - 'font-weight': [{ - font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] - }], - /** - * Font Stretch - * @see https://tailwindcss.com/docs/font-stretch - */ - 'font-stretch': [{ - 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue] - }], - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - 'font-family': [{ - font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] - }], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-normal': ['normal-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-ordinal': ['ordinal'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-slashed-zero': ['slashed-zero'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-figure': ['lining-nums', 'oldstyle-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-spacing': ['proportional-nums', 'tabular-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'], - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - tracking: [{ - tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] - }], - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - 'line-clamp': [{ - 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] - }], - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - leading: [{ - leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - themeLeading, ...scaleUnambiguousSpacing()] - }], - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - 'list-image': [{ - 'list-image': ['none', isArbitraryVariable, isArbitraryValue] - }], - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - 'list-style-position': [{ - list: ['inside', 'outside'] - }], - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - 'list-style-type': [{ - list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - 'text-alignment': [{ - text: ['left', 'center', 'right', 'justify', 'start', 'end'] - }], - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://v3.tailwindcss.com/docs/placeholder-color - */ - 'placeholder-color': [{ - placeholder: scaleColor() - }], - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - 'text-color': [{ - text: scaleColor() - }], - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'], - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - 'text-decoration-style': [{ - decoration: [...scaleLineStyle(), 'wavy'] - }], - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - 'text-decoration-thickness': [{ - decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength] - }], - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - 'text-decoration-color': [{ - decoration: scaleColor() - }], - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - 'underline-offset': [{ - 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'], - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'], - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - 'text-wrap': [{ - text: ['wrap', 'nowrap', 'balance', 'pretty'] - }], - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - indent: [{ - indent: scaleUnambiguousSpacing() - }], - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - 'vertical-align': [{ - align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue] - }], - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - whitespace: [{ - whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] - }], - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - break: [{ - break: ['normal', 'words', 'all', 'keep'] - }], - /** - * Overflow Wrap - * @see https://tailwindcss.com/docs/overflow-wrap - */ - wrap: [{ - wrap: ['break-word', 'anywhere', 'normal'] - }], - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - hyphens: [{ - hyphens: ['none', 'manual', 'auto'] - }], - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - content: [{ - content: ['none', isArbitraryVariable, isArbitraryValue] - }], - // ------------------- - // --- Backgrounds --- - // ------------------- - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - 'bg-attachment': [{ - bg: ['fixed', 'local', 'scroll'] - }], - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - 'bg-clip': [{ - 'bg-clip': ['border', 'padding', 'content', 'text'] - }], - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - 'bg-origin': [{ - 'bg-origin': ['border', 'padding', 'content'] - }], - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - 'bg-position': [{ - bg: scaleBgPosition() - }], - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - 'bg-repeat': [{ - bg: scaleBgRepeat() - }], - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - 'bg-size': [{ - bg: scaleBgSize() - }], - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - 'bg-image': [{ - bg: ['none', { - linear: [{ - to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] - }, isInteger, isArbitraryVariable, isArbitraryValue], - radial: ['', isArbitraryVariable, isArbitraryValue], - conic: [isInteger, isArbitraryVariable, isArbitraryValue] - }, isArbitraryVariableImage, isArbitraryImage] - }], - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - 'bg-color': [{ - bg: scaleColor() - }], - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from-pos': [{ - from: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via-pos': [{ - via: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to-pos': [{ - to: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from': [{ - from: scaleColor() - }], - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via': [{ - via: scaleColor() - }], - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to': [{ - to: scaleColor() - }], - // --------------- - // --- Borders --- - // --------------- - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - rounded: [{ - rounded: scaleRadius() - }], - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-s': [{ - 'rounded-s': scaleRadius() - }], - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-e': [{ - 'rounded-e': scaleRadius() - }], - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-t': [{ - 'rounded-t': scaleRadius() - }], - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-r': [{ - 'rounded-r': scaleRadius() - }], - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-b': [{ - 'rounded-b': scaleRadius() - }], - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-l': [{ - 'rounded-l': scaleRadius() - }], - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ss': [{ - 'rounded-ss': scaleRadius() - }], - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-se': [{ - 'rounded-se': scaleRadius() - }], - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ee': [{ - 'rounded-ee': scaleRadius() - }], - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-es': [{ - 'rounded-es': scaleRadius() - }], - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tl': [{ - 'rounded-tl': scaleRadius() - }], - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tr': [{ - 'rounded-tr': scaleRadius() - }], - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-br': [{ - 'rounded-br': scaleRadius() - }], - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-bl': [{ - 'rounded-bl': scaleRadius() - }], - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w': [{ - border: scaleBorderWidth() - }], - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-x': [{ - 'border-x': scaleBorderWidth() - }], - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-y': [{ - 'border-y': scaleBorderWidth() - }], - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-s': [{ - 'border-s': scaleBorderWidth() - }], - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-e': [{ - 'border-e': scaleBorderWidth() - }], - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-t': [{ - 'border-t': scaleBorderWidth() - }], - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-r': [{ - 'border-r': scaleBorderWidth() - }], - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-b': [{ - 'border-b': scaleBorderWidth() - }], - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-l': [{ - 'border-l': scaleBorderWidth() - }], - /** - * Divide Width X - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x': [{ - 'divide-x': scaleBorderWidth() - }], - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x-reverse': ['divide-x-reverse'], - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y': [{ - 'divide-y': scaleBorderWidth() - }], - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y-reverse': ['divide-y-reverse'], - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - 'border-style': [{ - border: [...scaleLineStyle(), 'hidden', 'none'] - }], - /** - * Divide Style - * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style - */ - 'divide-style': [{ - divide: [...scaleLineStyle(), 'hidden', 'none'] - }], - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color': [{ - border: scaleColor() - }], - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-x': [{ - 'border-x': scaleColor() - }], - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-y': [{ - 'border-y': scaleColor() - }], - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-s': [{ - 'border-s': scaleColor() - }], - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-e': [{ - 'border-e': scaleColor() - }], - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-t': [{ - 'border-t': scaleColor() - }], - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-r': [{ - 'border-r': scaleColor() - }], - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-b': [{ - 'border-b': scaleColor() - }], - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-l': [{ - 'border-l': scaleColor() - }], - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - 'divide-color': [{ - divide: scaleColor() - }], - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - 'outline-style': [{ - outline: [...scaleLineStyle(), 'none', 'hidden'] - }], - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - 'outline-offset': [{ - 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - 'outline-w': [{ - outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - 'outline-color': [{ - outline: scaleColor() - }], - // --------------- - // --- Effects --- - // --------------- - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - shadow: [{ - shadow: [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color - */ - 'shadow-color': [{ - shadow: scaleColor() - }], - /** - * Inset Box Shadow - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow - */ - 'inset-shadow': [{ - 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Inset Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color - */ - 'inset-shadow-color': [{ - 'inset-shadow': scaleColor() - }], - /** - * Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring - */ - 'ring-w': [{ - ring: scaleBorderWidth() - }], - /** - * Ring Width Inset - * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-w-inset': ['ring-inset'], - /** - * Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color - */ - 'ring-color': [{ - ring: scaleColor() - }], - /** - * Ring Offset Width - * @see https://v3.tailwindcss.com/docs/ring-offset-width - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-w': [{ - 'ring-offset': [isNumber, isArbitraryLength] - }], - /** - * Ring Offset Color - * @see https://v3.tailwindcss.com/docs/ring-offset-color - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-color': [{ - 'ring-offset': scaleColor() - }], - /** - * Inset Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring - */ - 'inset-ring-w': [{ - 'inset-ring': scaleBorderWidth() - }], - /** - * Inset Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color - */ - 'inset-ring-color': [{ - 'inset-ring': scaleColor() - }], - /** - * Text Shadow - * @see https://tailwindcss.com/docs/text-shadow - */ - 'text-shadow': [{ - 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Text Shadow Color - * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color - */ - 'text-shadow-color': [{ - 'text-shadow': scaleColor() - }], - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - opacity: [{ - opacity: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - 'mix-blend': [{ - 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] - }], - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - 'bg-blend': [{ - 'bg-blend': scaleBlendMode() - }], - /** - * Mask Clip - * @see https://tailwindcss.com/docs/mask-clip - */ - 'mask-clip': [{ - 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }, 'mask-no-clip'], - /** - * Mask Composite - * @see https://tailwindcss.com/docs/mask-composite - */ - 'mask-composite': [{ - mask: ['add', 'subtract', 'intersect', 'exclude'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image-linear-pos': [{ - 'mask-linear': [isNumber] - }], - 'mask-image-linear-from-pos': [{ - 'mask-linear-from': scaleMaskImagePosition() - }], - 'mask-image-linear-to-pos': [{ - 'mask-linear-to': scaleMaskImagePosition() - }], - 'mask-image-linear-from-color': [{ - 'mask-linear-from': scaleColor() - }], - 'mask-image-linear-to-color': [{ - 'mask-linear-to': scaleColor() - }], - 'mask-image-t-from-pos': [{ - 'mask-t-from': scaleMaskImagePosition() - }], - 'mask-image-t-to-pos': [{ - 'mask-t-to': scaleMaskImagePosition() - }], - 'mask-image-t-from-color': [{ - 'mask-t-from': scaleColor() - }], - 'mask-image-t-to-color': [{ - 'mask-t-to': scaleColor() - }], - 'mask-image-r-from-pos': [{ - 'mask-r-from': scaleMaskImagePosition() - }], - 'mask-image-r-to-pos': [{ - 'mask-r-to': scaleMaskImagePosition() - }], - 'mask-image-r-from-color': [{ - 'mask-r-from': scaleColor() - }], - 'mask-image-r-to-color': [{ - 'mask-r-to': scaleColor() - }], - 'mask-image-b-from-pos': [{ - 'mask-b-from': scaleMaskImagePosition() - }], - 'mask-image-b-to-pos': [{ - 'mask-b-to': scaleMaskImagePosition() - }], - 'mask-image-b-from-color': [{ - 'mask-b-from': scaleColor() - }], - 'mask-image-b-to-color': [{ - 'mask-b-to': scaleColor() - }], - 'mask-image-l-from-pos': [{ - 'mask-l-from': scaleMaskImagePosition() - }], - 'mask-image-l-to-pos': [{ - 'mask-l-to': scaleMaskImagePosition() - }], - 'mask-image-l-from-color': [{ - 'mask-l-from': scaleColor() - }], - 'mask-image-l-to-color': [{ - 'mask-l-to': scaleColor() - }], - 'mask-image-x-from-pos': [{ - 'mask-x-from': scaleMaskImagePosition() - }], - 'mask-image-x-to-pos': [{ - 'mask-x-to': scaleMaskImagePosition() - }], - 'mask-image-x-from-color': [{ - 'mask-x-from': scaleColor() - }], - 'mask-image-x-to-color': [{ - 'mask-x-to': scaleColor() - }], - 'mask-image-y-from-pos': [{ - 'mask-y-from': scaleMaskImagePosition() - }], - 'mask-image-y-to-pos': [{ - 'mask-y-to': scaleMaskImagePosition() - }], - 'mask-image-y-from-color': [{ - 'mask-y-from': scaleColor() - }], - 'mask-image-y-to-color': [{ - 'mask-y-to': scaleColor() - }], - 'mask-image-radial': [{ - 'mask-radial': [isArbitraryVariable, isArbitraryValue] - }], - 'mask-image-radial-from-pos': [{ - 'mask-radial-from': scaleMaskImagePosition() - }], - 'mask-image-radial-to-pos': [{ - 'mask-radial-to': scaleMaskImagePosition() - }], - 'mask-image-radial-from-color': [{ - 'mask-radial-from': scaleColor() - }], - 'mask-image-radial-to-color': [{ - 'mask-radial-to': scaleColor() - }], - 'mask-image-radial-shape': [{ - 'mask-radial': ['circle', 'ellipse'] - }], - 'mask-image-radial-size': [{ - 'mask-radial': [{ - closest: ['side', 'corner'], - farthest: ['side', 'corner'] - }] - }], - 'mask-image-radial-pos': [{ - 'mask-radial-at': scalePosition() - }], - 'mask-image-conic-pos': [{ - 'mask-conic': [isNumber] - }], - 'mask-image-conic-from-pos': [{ - 'mask-conic-from': scaleMaskImagePosition() - }], - 'mask-image-conic-to-pos': [{ - 'mask-conic-to': scaleMaskImagePosition() - }], - 'mask-image-conic-from-color': [{ - 'mask-conic-from': scaleColor() - }], - 'mask-image-conic-to-color': [{ - 'mask-conic-to': scaleColor() - }], - /** - * Mask Mode - * @see https://tailwindcss.com/docs/mask-mode - */ - 'mask-mode': [{ - mask: ['alpha', 'luminance', 'match'] - }], - /** - * Mask Origin - * @see https://tailwindcss.com/docs/mask-origin - */ - 'mask-origin': [{ - 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }], - /** - * Mask Position - * @see https://tailwindcss.com/docs/mask-position - */ - 'mask-position': [{ - mask: scaleBgPosition() - }], - /** - * Mask Repeat - * @see https://tailwindcss.com/docs/mask-repeat - */ - 'mask-repeat': [{ - mask: scaleBgRepeat() - }], - /** - * Mask Size - * @see https://tailwindcss.com/docs/mask-size - */ - 'mask-size': [{ - mask: scaleBgSize() - }], - /** - * Mask Type - * @see https://tailwindcss.com/docs/mask-type - */ - 'mask-type': [{ - 'mask-type': ['alpha', 'luminance'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image': [{ - mask: ['none', isArbitraryVariable, isArbitraryValue] - }], - // --------------- - // --- Filters --- - // --------------- - /** - * Filter - * @see https://tailwindcss.com/docs/filter - */ - filter: [{ - filter: [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - blur: [{ - blur: scaleBlur() - }], - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - brightness: [{ - brightness: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - contrast: [{ - contrast: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - 'drop-shadow': [{ - 'drop-shadow': [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Drop Shadow Color - * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color - */ - 'drop-shadow-color': [{ - 'drop-shadow': scaleColor() - }], - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - grayscale: [{ - grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - 'hue-rotate': [{ - 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - invert: [{ - invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - saturate: [{ - saturate: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - sepia: [{ - sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Filter - * @see https://tailwindcss.com/docs/backdrop-filter - */ - 'backdrop-filter': [{ - 'backdrop-filter': [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - 'backdrop-blur': [{ - 'backdrop-blur': scaleBlur() - }], - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - 'backdrop-brightness': [{ - 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - 'backdrop-contrast': [{ - 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - 'backdrop-grayscale': [{ - 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - 'backdrop-hue-rotate': [{ - 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - 'backdrop-invert': [{ - 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - 'backdrop-opacity': [{ - 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - 'backdrop-saturate': [{ - 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - 'backdrop-sepia': [{ - 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - // -------------- - // --- Tables --- - // -------------- - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - 'border-collapse': [{ - border: ['collapse', 'separate'] - }], - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing': [{ - 'border-spacing': scaleUnambiguousSpacing() - }], - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-x': [{ - 'border-spacing-x': scaleUnambiguousSpacing() - }], - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-y': [{ - 'border-spacing-y': scaleUnambiguousSpacing() - }], - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - 'table-layout': [{ - table: ['auto', 'fixed'] - }], - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - caption: [{ - caption: ['top', 'bottom'] - }], - // --------------------------------- - // --- Transitions and Animation --- - // --------------------------------- - /** - * Transition Property - * @see https://tailwindcss.com/docs/transition-property - */ - transition: [{ - transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Behavior - * @see https://tailwindcss.com/docs/transition-behavior - */ - 'transition-behavior': [{ - transition: ['normal', 'discrete'] - }], - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - duration: [{ - duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - ease: [{ - ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - delay: [{ - delay: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - animate: [{ - animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] - }], - // ------------------ - // --- Transforms --- - // ------------------ - /** - * Backface Visibility - * @see https://tailwindcss.com/docs/backface-visibility - */ - backface: [{ - backface: ['hidden', 'visible'] - }], - /** - * Perspective - * @see https://tailwindcss.com/docs/perspective - */ - perspective: [{ - perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] - }], - /** - * Perspective Origin - * @see https://tailwindcss.com/docs/perspective-origin - */ - 'perspective-origin': [{ - 'perspective-origin': scalePositionWithArbitrary() - }], - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - rotate: [{ - rotate: scaleRotate() - }], - /** - * Rotate X - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-x': [{ - 'rotate-x': scaleRotate() - }], - /** - * Rotate Y - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-y': [{ - 'rotate-y': scaleRotate() - }], - /** - * Rotate Z - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-z': [{ - 'rotate-z': scaleRotate() - }], - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - scale: [{ - scale: scaleScale() - }], - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - 'scale-x': [{ - 'scale-x': scaleScale() - }], - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - 'scale-y': [{ - 'scale-y': scaleScale() - }], - /** - * Scale Z - * @see https://tailwindcss.com/docs/scale - */ - 'scale-z': [{ - 'scale-z': scaleScale() - }], - /** - * Scale 3D - * @see https://tailwindcss.com/docs/scale - */ - 'scale-3d': ['scale-3d'], - /** - * Skew - * @see https://tailwindcss.com/docs/skew - */ - skew: [{ - skew: scaleSkew() - }], - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - 'skew-x': [{ - 'skew-x': scaleSkew() - }], - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - 'skew-y': [{ - 'skew-y': scaleSkew() - }], - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - transform: [{ - transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] - }], - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - 'transform-origin': [{ - origin: scalePositionWithArbitrary() - }], - /** - * Transform Style - * @see https://tailwindcss.com/docs/transform-style - */ - 'transform-style': [{ - transform: ['3d', 'flat'] - }], - /** - * Translate - * @see https://tailwindcss.com/docs/translate - */ - translate: [{ - translate: scaleTranslate() - }], - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - 'translate-x': [{ - 'translate-x': scaleTranslate() - }], - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - 'translate-y': [{ - 'translate-y': scaleTranslate() - }], - /** - * Translate Z - * @see https://tailwindcss.com/docs/translate - */ - 'translate-z': [{ - 'translate-z': scaleTranslate() - }], - /** - * Translate None - * @see https://tailwindcss.com/docs/translate - */ - 'translate-none': ['translate-none'], - // --------------------- - // --- Interactivity --- - // --------------------- - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - accent: [{ - accent: scaleColor() - }], - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - appearance: [{ - appearance: ['none', 'auto'] - }], - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - 'caret-color': [{ - caret: scaleColor() - }], - /** - * Color Scheme - * @see https://tailwindcss.com/docs/color-scheme - */ - 'color-scheme': [{ - scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] - }], - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - cursor: [{ - cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue] - }], - /** - * Field Sizing - * @see https://tailwindcss.com/docs/field-sizing - */ - 'field-sizing': [{ - 'field-sizing': ['fixed', 'content'] - }], - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - 'pointer-events': [{ - 'pointer-events': ['auto', 'none'] - }], - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - resize: [{ - resize: ['none', '', 'y', 'x'] - }], - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - 'scroll-behavior': [{ - scroll: ['auto', 'smooth'] - }], - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-m': [{ - 'scroll-m': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mx': [{ - 'scroll-mx': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-my': [{ - 'scroll-my': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ms': [{ - 'scroll-ms': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-me': [{ - 'scroll-me': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mt': [{ - 'scroll-mt': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mr': [{ - 'scroll-mr': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mb': [{ - 'scroll-mb': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ml': [{ - 'scroll-ml': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-p': [{ - 'scroll-p': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-px': [{ - 'scroll-px': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-py': [{ - 'scroll-py': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-ps': [{ - 'scroll-ps': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pe': [{ - 'scroll-pe': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pt': [{ - 'scroll-pt': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pr': [{ - 'scroll-pr': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pb': [{ - 'scroll-pb': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pl': [{ - 'scroll-pl': scaleUnambiguousSpacing() - }], - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - 'snap-align': [{ - snap: ['start', 'end', 'center', 'align-none'] - }], - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - 'snap-stop': [{ - snap: ['normal', 'always'] - }], - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-type': [{ - snap: ['none', 'x', 'y', 'both'] - }], - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-strictness': [{ - snap: ['mandatory', 'proximity'] - }], - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - touch: [{ - touch: ['auto', 'none', 'manipulation'] - }], - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-x': [{ - 'touch-pan': ['x', 'left', 'right'] - }], - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-y': [{ - 'touch-pan': ['y', 'up', 'down'] - }], - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-pz': ['touch-pinch-zoom'], - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - select: [{ - select: ['none', 'text', 'all', 'auto'] - }], - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - 'will-change': [{ - 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue] - }], - // ----------- - // --- SVG --- - // ----------- - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - fill: [{ - fill: ['none', ...scaleColor()] - }], - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - 'stroke-w': [{ - stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber] - }], - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - stroke: [{ - stroke: ['none', ...scaleColor()] - }], - // --------------------- - // --- Accessibility --- - // --------------------- - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - 'forced-color-adjust': [{ - 'forced-color-adjust': ['auto', 'none'] - }] - }, - conflictingClassGroups: { - overflow: ['overflow-x', 'overflow-y'], - overscroll: ['overscroll-x', 'overscroll-y'], - inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'], - 'inset-x': ['right', 'left'], - 'inset-y': ['top', 'bottom'], - flex: ['basis', 'grow', 'shrink'], - gap: ['gap-x', 'gap-y'], - p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'], - px: ['pr', 'pl'], - py: ['pt', 'pb'], - m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'], - mx: ['mr', 'ml'], - my: ['mt', 'mb'], - size: ['w', 'h'], - 'font-size': ['leading'], - 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'], - 'fvn-ordinal': ['fvn-normal'], - 'fvn-slashed-zero': ['fvn-normal'], - 'fvn-figure': ['fvn-normal'], - 'fvn-spacing': ['fvn-normal'], - 'fvn-fraction': ['fvn-normal'], - 'line-clamp': ['display', 'overflow'], - rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'], - 'rounded-s': ['rounded-ss', 'rounded-es'], - 'rounded-e': ['rounded-se', 'rounded-ee'], - 'rounded-t': ['rounded-tl', 'rounded-tr'], - 'rounded-r': ['rounded-tr', 'rounded-br'], - 'rounded-b': ['rounded-br', 'rounded-bl'], - 'rounded-l': ['rounded-tl', 'rounded-bl'], - 'border-spacing': ['border-spacing-x', 'border-spacing-y'], - 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'], - 'border-w-x': ['border-w-r', 'border-w-l'], - 'border-w-y': ['border-w-t', 'border-w-b'], - 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'], - 'border-color-x': ['border-color-r', 'border-color-l'], - 'border-color-y': ['border-color-t', 'border-color-b'], - translate: ['translate-x', 'translate-y', 'translate-none'], - 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'], - 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'], - 'scroll-mx': ['scroll-mr', 'scroll-ml'], - 'scroll-my': ['scroll-mt', 'scroll-mb'], - 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'], - 'scroll-px': ['scroll-pr', 'scroll-pl'], - 'scroll-py': ['scroll-pt', 'scroll-pb'], - touch: ['touch-x', 'touch-y', 'touch-pz'], - 'touch-x': ['touch'], - 'touch-y': ['touch'], - 'touch-pz': ['touch'] - }, - conflictingClassGroupModifiers: { - 'font-size': ['leading'] - }, - orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection'] - }; -}; - -/** - * @param baseConfig Config where other config will be merged into. This object will be mutated. - * @param configExtension Partial config to merge into the `baseConfig`. - */ -const mergeConfigs = (baseConfig, { - cacheSize, - prefix, - experimentalParseClassName, - extend = {}, - override = {} -}) => { - overrideProperty(baseConfig, 'cacheSize', cacheSize); - overrideProperty(baseConfig, 'prefix', prefix); - overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName); - overrideConfigProperties(baseConfig.theme, override.theme); - overrideConfigProperties(baseConfig.classGroups, override.classGroups); - overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups); - overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers); - overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers); - mergeConfigProperties(baseConfig.theme, extend.theme); - mergeConfigProperties(baseConfig.classGroups, extend.classGroups); - mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups); - mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers); - mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers'); - return baseConfig; -}; -const overrideProperty = (baseObject, overrideKey, overrideValue) => { - if (overrideValue !== undefined) { - baseObject[overrideKey] = overrideValue; - } -}; -const overrideConfigProperties = (baseObject, overrideObject) => { - if (overrideObject) { - for (const key in overrideObject) { - overrideProperty(baseObject, key, overrideObject[key]); - } - } -}; -const mergeConfigProperties = (baseObject, mergeObject) => { - if (mergeObject) { - for (const key in mergeObject) { - mergeArrayProperties(baseObject, mergeObject, key); - } - } -}; -const mergeArrayProperties = (baseObject, mergeObject, key) => { - const mergeValue = mergeObject[key]; - if (mergeValue !== undefined) { - baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue; - } -}; -const extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig); -const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig); -exports.createTailwindMerge = createTailwindMerge; -exports.extendTailwindMerge = extendTailwindMerge; -exports.fromTheme = fromTheme; -exports.getDefaultConfig = getDefaultConfig; -exports.mergeConfigs = mergeConfigs; -exports.twJoin = twJoin; -exports.twMerge = twMerge; -exports.validators = validators; -//# sourceMappingURL=bundle-cjs.js.map diff --git a/node_modules/tailwind-merge/dist/bundle-cjs.js.map b/node_modules/tailwind-merge/dist/bundle-cjs.js.map deleted file mode 100644 index ee5ecc2..0000000 --- a/node_modules/tailwind-merge/dist/bundle-cjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle-cjs.js","sources":["../src/lib/class-group-utils.ts","../src/lib/lru-cache.ts","../src/lib/parse-class-name.ts","../src/lib/sort-modifiers.ts","../src/lib/config-utils.ts","../src/lib/merge-classlist.ts","../src/lib/tw-join.ts","../src/lib/create-tailwind-merge.ts","../src/lib/from-theme.ts","../src/lib/validators.ts","../src/lib/default-config.ts","../src/lib/merge-configs.ts","../src/lib/extend-tailwind-merge.ts","../src/lib/tw-merge.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","Object","entries","key","path","currentClassPartObject","pathPart","has","set","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","value","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","startsWith","isExternal","endsWith","createSortModifiers","orderSensitiveModifiers","fromEntries","map","modifier","sortModifiers","sortedModifiers","unsortedModifiers","isPositionSensitive","sort","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","variantModifier","modifierId","classId","includes","conflictGroups","i","group","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","callTailwindMerge","apply","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","extend","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","concat","extendTailwindMerge","configExtension","createConfig","twMerge"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/tailwind-merge/dist/bundle-mjs.mjs b/node_modules/tailwind-merge/dist/bundle-mjs.mjs deleted file mode 100644 index 5072c3c..0000000 --- a/node_modules/tailwind-merge/dist/bundle-mjs.mjs +++ /dev/null @@ -1,3035 +0,0 @@ -const CLASS_PART_SEPARATOR = '-'; -const createClassGroupUtils = config => { - const classMap = createClassMap(config); - const { - conflictingClassGroups, - conflictingClassGroupModifiers - } = config; - const getClassGroupId = className => { - const classParts = className.split(CLASS_PART_SEPARATOR); - // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts. - if (classParts[0] === '' && classParts.length !== 1) { - classParts.shift(); - } - return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className); - }; - const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => { - const conflicts = conflictingClassGroups[classGroupId] || []; - if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) { - return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]]; - } - return conflicts; - }; - return { - getClassGroupId, - getConflictingClassGroupIds - }; -}; -const getGroupRecursive = (classParts, classPartObject) => { - if (classParts.length === 0) { - return classPartObject.classGroupId; - } - const currentClassPart = classParts[0]; - const nextClassPartObject = classPartObject.nextPart.get(currentClassPart); - const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined; - if (classGroupFromNextClassPart) { - return classGroupFromNextClassPart; - } - if (classPartObject.validators.length === 0) { - return undefined; - } - const classRest = classParts.join(CLASS_PART_SEPARATOR); - return classPartObject.validators.find(({ - validator - }) => validator(classRest))?.classGroupId; -}; -const arbitraryPropertyRegex = /^\[(.+)\]$/; -const getGroupIdForArbitraryProperty = className => { - if (arbitraryPropertyRegex.test(className)) { - const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1]; - const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':')); - if (property) { - // I use two dots here because one dot is used as prefix for class groups in plugins - return 'arbitrary..' + property; - } - } -}; -/** - * Exported for testing only - */ -const createClassMap = config => { - const { - theme, - classGroups - } = config; - const classMap = { - nextPart: new Map(), - validators: [] - }; - for (const classGroupId in classGroups) { - processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme); - } - return classMap; -}; -const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => { - classGroup.forEach(classDefinition => { - if (typeof classDefinition === 'string') { - const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition); - classPartObjectToEdit.classGroupId = classGroupId; - return; - } - if (typeof classDefinition === 'function') { - if (isThemeGetter(classDefinition)) { - processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme); - return; - } - classPartObject.validators.push({ - validator: classDefinition, - classGroupId - }); - return; - } - Object.entries(classDefinition).forEach(([key, classGroup]) => { - processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme); - }); - }); -}; -const getPart = (classPartObject, path) => { - let currentClassPartObject = classPartObject; - path.split(CLASS_PART_SEPARATOR).forEach(pathPart => { - if (!currentClassPartObject.nextPart.has(pathPart)) { - currentClassPartObject.nextPart.set(pathPart, { - nextPart: new Map(), - validators: [] - }); - } - currentClassPartObject = currentClassPartObject.nextPart.get(pathPart); - }); - return currentClassPartObject; -}; -const isThemeGetter = func => func.isThemeGetter; - -// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance -const createLruCache = maxCacheSize => { - if (maxCacheSize < 1) { - return { - get: () => undefined, - set: () => {} - }; - } - let cacheSize = 0; - let cache = new Map(); - let previousCache = new Map(); - const update = (key, value) => { - cache.set(key, value); - cacheSize++; - if (cacheSize > maxCacheSize) { - cacheSize = 0; - previousCache = cache; - cache = new Map(); - } - }; - return { - get(key) { - let value = cache.get(key); - if (value !== undefined) { - return value; - } - if ((value = previousCache.get(key)) !== undefined) { - update(key, value); - return value; - } - }, - set(key, value) { - if (cache.has(key)) { - cache.set(key, value); - } else { - update(key, value); - } - } - }; -}; -const IMPORTANT_MODIFIER = '!'; -const MODIFIER_SEPARATOR = ':'; -const MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length; -const createParseClassName = config => { - const { - prefix, - experimentalParseClassName - } = config; - /** - * Parse class name into parts. - * - * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS - * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js - */ - let parseClassName = className => { - const modifiers = []; - let bracketDepth = 0; - let parenDepth = 0; - let modifierStart = 0; - let postfixModifierPosition; - for (let index = 0; index < className.length; index++) { - let currentCharacter = className[index]; - if (bracketDepth === 0 && parenDepth === 0) { - if (currentCharacter === MODIFIER_SEPARATOR) { - modifiers.push(className.slice(modifierStart, index)); - modifierStart = index + MODIFIER_SEPARATOR_LENGTH; - continue; - } - if (currentCharacter === '/') { - postfixModifierPosition = index; - continue; - } - } - if (currentCharacter === '[') { - bracketDepth++; - } else if (currentCharacter === ']') { - bracketDepth--; - } else if (currentCharacter === '(') { - parenDepth++; - } else if (currentCharacter === ')') { - parenDepth--; - } - } - const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart); - const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier); - const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier; - const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined; - return { - modifiers, - hasImportantModifier, - baseClassName, - maybePostfixModifierPosition - }; - }; - if (prefix) { - const fullPrefix = prefix + MODIFIER_SEPARATOR; - const parseClassNameOriginal = parseClassName; - parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : { - isExternal: true, - modifiers: [], - hasImportantModifier: false, - baseClassName: className, - maybePostfixModifierPosition: undefined - }; - } - if (experimentalParseClassName) { - const parseClassNameOriginal = parseClassName; - parseClassName = className => experimentalParseClassName({ - className, - parseClassName: parseClassNameOriginal - }); - } - return parseClassName; -}; -const stripImportantModifier = baseClassName => { - if (baseClassName.endsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(0, baseClassName.length - 1); - } - /** - * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons. - * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864 - */ - if (baseClassName.startsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(1); - } - return baseClassName; -}; - -/** - * Sorts modifiers according to following schema: - * - Predefined modifiers are sorted alphabetically - * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it - */ -const createSortModifiers = config => { - const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true])); - const sortModifiers = modifiers => { - if (modifiers.length <= 1) { - return modifiers; - } - const sortedModifiers = []; - let unsortedModifiers = []; - modifiers.forEach(modifier => { - const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier]; - if (isPositionSensitive) { - sortedModifiers.push(...unsortedModifiers.sort(), modifier); - unsortedModifiers = []; - } else { - unsortedModifiers.push(modifier); - } - }); - sortedModifiers.push(...unsortedModifiers.sort()); - return sortedModifiers; - }; - return sortModifiers; -}; -const createConfigUtils = config => ({ - cache: createLruCache(config.cacheSize), - parseClassName: createParseClassName(config), - sortModifiers: createSortModifiers(config), - ...createClassGroupUtils(config) -}); -const SPLIT_CLASSES_REGEX = /\s+/; -const mergeClassList = (classList, configUtils) => { - const { - parseClassName, - getClassGroupId, - getConflictingClassGroupIds, - sortModifiers - } = configUtils; - /** - * Set of classGroupIds in following format: - * `{importantModifier}{variantModifiers}{classGroupId}` - * @example 'float' - * @example 'hover:focus:bg-color' - * @example 'md:!pr' - */ - const classGroupsInConflict = []; - const classNames = classList.trim().split(SPLIT_CLASSES_REGEX); - let result = ''; - for (let index = classNames.length - 1; index >= 0; index -= 1) { - const originalClassName = classNames[index]; - const { - isExternal, - modifiers, - hasImportantModifier, - baseClassName, - maybePostfixModifierPosition - } = parseClassName(originalClassName); - if (isExternal) { - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - let hasPostfixModifier = !!maybePostfixModifierPosition; - let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName); - if (!classGroupId) { - if (!hasPostfixModifier) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - classGroupId = getClassGroupId(baseClassName); - if (!classGroupId) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - hasPostfixModifier = false; - } - const variantModifier = sortModifiers(modifiers).join(':'); - const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier; - const classId = modifierId + classGroupId; - if (classGroupsInConflict.includes(classId)) { - // Tailwind class omitted due to conflict - continue; - } - classGroupsInConflict.push(classId); - const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier); - for (let i = 0; i < conflictGroups.length; ++i) { - const group = conflictGroups[i]; - classGroupsInConflict.push(modifierId + group); - } - // Tailwind class not in conflict - result = originalClassName + (result.length > 0 ? ' ' + result : result); - } - return result; -}; - -/** - * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better. - * - * Specifically: - * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js - * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts - * - * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com) - */ -function twJoin() { - let index = 0; - let argument; - let resolvedValue; - let string = ''; - while (index < arguments.length) { - if (argument = arguments[index++]) { - if (resolvedValue = toValue(argument)) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -} -const toValue = mix => { - if (typeof mix === 'string') { - return mix; - } - let resolvedValue; - let string = ''; - for (let k = 0; k < mix.length; k++) { - if (mix[k]) { - if (resolvedValue = toValue(mix[k])) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -}; -function createTailwindMerge(createConfigFirst, ...createConfigRest) { - let configUtils; - let cacheGet; - let cacheSet; - let functionToCall = initTailwindMerge; - function initTailwindMerge(classList) { - const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst()); - configUtils = createConfigUtils(config); - cacheGet = configUtils.cache.get; - cacheSet = configUtils.cache.set; - functionToCall = tailwindMerge; - return tailwindMerge(classList); - } - function tailwindMerge(classList) { - const cachedResult = cacheGet(classList); - if (cachedResult) { - return cachedResult; - } - const result = mergeClassList(classList, configUtils); - cacheSet(classList, result); - return result; - } - return function callTailwindMerge() { - return functionToCall(twJoin.apply(null, arguments)); - }; -} -const fromTheme = key => { - const themeGetter = theme => theme[key] || []; - themeGetter.isThemeGetter = true; - return themeGetter; -}; -const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i; -const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i; -const fractionRegex = /^\d+\/\d+$/; -const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/; -const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/; -const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/; -// Shadow always begins with x and y offset separated by underscore optionally prepended by inset -const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/; -const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/; -const isFraction = value => fractionRegex.test(value); -const isNumber = value => !!value && !Number.isNaN(Number(value)); -const isInteger = value => !!value && Number.isInteger(Number(value)); -const isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1)); -const isTshirtSize = value => tshirtUnitRegex.test(value); -const isAny = () => true; -const isLengthOnly = value => -// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. -// For example, `hsl(0 0% 0%)` would be classified as a length without this check. -// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. -lengthUnitRegex.test(value) && !colorFunctionRegex.test(value); -const isNever = () => false; -const isShadow = value => shadowRegex.test(value); -const isImage = value => imageRegex.test(value); -const isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value); -const isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever); -const isArbitraryValue = value => arbitraryValueRegex.test(value); -const isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly); -const isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber); -const isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever); -const isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage); -const isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow); -const isArbitraryVariable = value => arbitraryVariableRegex.test(value); -const isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength); -const isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName); -const isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition); -const isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize); -const isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage); -const isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true); -// Helpers -const getIsArbitraryValue = (value, testLabel, testValue) => { - const result = arbitraryValueRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return testValue(result[2]); - } - return false; -}; -const getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => { - const result = arbitraryVariableRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return shouldMatchNoLabel; - } - return false; -}; -// Labels -const isLabelPosition = label => label === 'position' || label === 'percentage'; -const isLabelImage = label => label === 'image' || label === 'url'; -const isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size'; -const isLabelLength = label => label === 'length'; -const isLabelNumber = label => label === 'number'; -const isLabelFamilyName = label => label === 'family-name'; -const isLabelShadow = label => label === 'shadow'; -const validators = /*#__PURE__*/Object.defineProperty({ - __proto__: null, - isAny, - isAnyNonArbitrary, - isArbitraryImage, - isArbitraryLength, - isArbitraryNumber, - isArbitraryPosition, - isArbitraryShadow, - isArbitrarySize, - isArbitraryValue, - isArbitraryVariable, - isArbitraryVariableFamilyName, - isArbitraryVariableImage, - isArbitraryVariableLength, - isArbitraryVariablePosition, - isArbitraryVariableShadow, - isArbitraryVariableSize, - isFraction, - isInteger, - isNumber, - isPercent, - isTshirtSize -}, Symbol.toStringTag, { - value: 'Module' -}); -const getDefaultConfig = () => { - /** - * Theme getters for theme variable namespaces - * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces - */ - /***/ - const themeColor = fromTheme('color'); - const themeFont = fromTheme('font'); - const themeText = fromTheme('text'); - const themeFontWeight = fromTheme('font-weight'); - const themeTracking = fromTheme('tracking'); - const themeLeading = fromTheme('leading'); - const themeBreakpoint = fromTheme('breakpoint'); - const themeContainer = fromTheme('container'); - const themeSpacing = fromTheme('spacing'); - const themeRadius = fromTheme('radius'); - const themeShadow = fromTheme('shadow'); - const themeInsetShadow = fromTheme('inset-shadow'); - const themeTextShadow = fromTheme('text-shadow'); - const themeDropShadow = fromTheme('drop-shadow'); - const themeBlur = fromTheme('blur'); - const themePerspective = fromTheme('perspective'); - const themeAspect = fromTheme('aspect'); - const themeEase = fromTheme('ease'); - const themeAnimate = fromTheme('animate'); - /** - * Helpers to avoid repeating the same scales - * - * We use functions that create a new array every time they're called instead of static arrays. - * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config. - */ - /***/ - const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column']; - const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-top', 'top-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-top', 'bottom-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-bottom', 'bottom-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-bottom']; - const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue]; - const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll']; - const scaleOverscroll = () => ['auto', 'contain', 'none']; - const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing]; - const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()]; - const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue]; - const scaleGridColRowStartAndEnd = () => ['auto', { - span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] - }, isInteger, isArbitraryVariable, isArbitraryValue]; - const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]; - const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue]; - const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe']; - const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe']; - const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()]; - const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()]; - const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue]; - const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, { - position: [isArbitraryVariable, isArbitraryValue] - }]; - const scaleBgRepeat = () => ['no-repeat', { - repeat: ['', 'x', 'y', 'space', 'round'] - }]; - const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, { - size: [isArbitraryVariable, isArbitraryValue] - }]; - const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength]; - const scaleRadius = () => [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue]; - const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength]; - const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double']; - const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity']; - const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition]; - const scaleBlur = () => [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue]; - const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue]; - const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()]; - return { - cacheSize: 500, - theme: { - animate: ['spin', 'ping', 'pulse', 'bounce'], - aspect: ['video'], - blur: [isTshirtSize], - breakpoint: [isTshirtSize], - color: [isAny], - container: [isTshirtSize], - 'drop-shadow': [isTshirtSize], - ease: ['in', 'out', 'in-out'], - font: [isAnyNonArbitrary], - 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'], - 'inset-shadow': [isTshirtSize], - leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'], - perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'], - radius: [isTshirtSize], - shadow: [isTshirtSize], - spacing: ['px', isNumber], - text: [isTshirtSize], - 'text-shadow': [isTshirtSize], - tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'] - }, - classGroups: { - // -------------- - // --- Layout --- - // -------------- - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - aspect: [{ - aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect] - }], - /** - * Container - * @see https://tailwindcss.com/docs/container - * @deprecated since Tailwind CSS v4.0.0 - */ - container: ['container'], - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - columns: [{ - columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] - }], - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - 'break-after': [{ - 'break-after': scaleBreak() - }], - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - 'break-before': [{ - 'break-before': scaleBreak() - }], - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - 'break-inside': [{ - 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] - }], - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - 'box-decoration': [{ - 'box-decoration': ['slice', 'clone'] - }], - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - box: [{ - box: ['border', 'content'] - }], - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'], - /** - * Screen Reader Only - * @see https://tailwindcss.com/docs/display#screen-reader-only - */ - sr: ['sr-only', 'not-sr-only'], - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - float: [{ - float: ['right', 'left', 'none', 'start', 'end'] - }], - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - clear: [{ - clear: ['left', 'right', 'both', 'none', 'start', 'end'] - }], - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - isolation: ['isolate', 'isolation-auto'], - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - 'object-fit': [{ - object: ['contain', 'cover', 'fill', 'none', 'scale-down'] - }], - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - 'object-position': [{ - object: scalePositionWithArbitrary() - }], - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - overflow: [{ - overflow: scaleOverflow() - }], - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-x': [{ - 'overflow-x': scaleOverflow() - }], - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-y': [{ - 'overflow-y': scaleOverflow() - }], - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - overscroll: [{ - overscroll: scaleOverscroll() - }], - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-x': [{ - 'overscroll-x': scaleOverscroll() - }], - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-y': [{ - 'overscroll-y': scaleOverscroll() - }], - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - position: ['static', 'fixed', 'absolute', 'relative', 'sticky'], - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - inset: [{ - inset: scaleInset() - }], - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-x': [{ - 'inset-x': scaleInset() - }], - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-y': [{ - 'inset-y': scaleInset() - }], - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - start: [{ - start: scaleInset() - }], - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - end: [{ - end: scaleInset() - }], - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - top: [{ - top: scaleInset() - }], - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - right: [{ - right: scaleInset() - }], - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - bottom: [{ - bottom: scaleInset() - }], - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - left: [{ - left: scaleInset() - }], - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - visibility: ['visible', 'invisible', 'collapse'], - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - z: [{ - z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] - }], - // ------------------------ - // --- Flexbox and Grid --- - // ------------------------ - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - basis: [{ - basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()] - }], - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - 'flex-direction': [{ - flex: ['row', 'row-reverse', 'col', 'col-reverse'] - }], - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - 'flex-wrap': [{ - flex: ['nowrap', 'wrap', 'wrap-reverse'] - }], - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - flex: [{ - flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] - }], - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - grow: [{ - grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - shrink: [{ - shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - order: [{ - order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - 'grid-cols': [{ - 'grid-cols': scaleGridTemplateColsRows() - }], - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start-end': [{ - col: scaleGridColRowStartAndEnd() - }], - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start': [{ - 'col-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-end': [{ - 'col-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - 'grid-rows': [{ - 'grid-rows': scaleGridTemplateColsRows() - }], - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start-end': [{ - row: scaleGridColRowStartAndEnd() - }], - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start': [{ - 'row-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-end': [{ - 'row-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - 'grid-flow': [{ - 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] - }], - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - 'auto-cols': [{ - 'auto-cols': scaleGridAutoColsRows() - }], - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - 'auto-rows': [{ - 'auto-rows': scaleGridAutoColsRows() - }], - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - gap: [{ - gap: scaleUnambiguousSpacing() - }], - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - 'gap-x': [{ - 'gap-x': scaleUnambiguousSpacing() - }], - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - 'gap-y': [{ - 'gap-y': scaleUnambiguousSpacing() - }], - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - 'justify-content': [{ - justify: [...scaleAlignPrimaryAxis(), 'normal'] - }], - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - 'justify-items': [{ - 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] - }], - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - 'justify-self': [{ - 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] - }], - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - 'align-content': [{ - content: ['normal', ...scaleAlignPrimaryAxis()] - }], - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - 'align-items': [{ - items: [...scaleAlignSecondaryAxis(), { - baseline: ['', 'last'] - }] - }], - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - 'align-self': [{ - self: ['auto', ...scaleAlignSecondaryAxis(), { - baseline: ['', 'last'] - }] - }], - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - 'place-content': [{ - 'place-content': scaleAlignPrimaryAxis() - }], - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - 'place-items': [{ - 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] - }], - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - 'place-self': [{ - 'place-self': ['auto', ...scaleAlignSecondaryAxis()] - }], - // Spacing - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - p: [{ - p: scaleUnambiguousSpacing() - }], - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - px: [{ - px: scaleUnambiguousSpacing() - }], - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - py: [{ - py: scaleUnambiguousSpacing() - }], - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - ps: [{ - ps: scaleUnambiguousSpacing() - }], - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - pe: [{ - pe: scaleUnambiguousSpacing() - }], - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - pt: [{ - pt: scaleUnambiguousSpacing() - }], - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - pr: [{ - pr: scaleUnambiguousSpacing() - }], - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - pb: [{ - pb: scaleUnambiguousSpacing() - }], - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - pl: [{ - pl: scaleUnambiguousSpacing() - }], - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - m: [{ - m: scaleMargin() - }], - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - mx: [{ - mx: scaleMargin() - }], - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - my: [{ - my: scaleMargin() - }], - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - ms: [{ - ms: scaleMargin() - }], - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - me: [{ - me: scaleMargin() - }], - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - mt: [{ - mt: scaleMargin() - }], - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - mr: [{ - mr: scaleMargin() - }], - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - mb: [{ - mb: scaleMargin() - }], - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - ml: [{ - ml: scaleMargin() - }], - /** - * Space Between X - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x': [{ - 'space-x': scaleUnambiguousSpacing() - }], - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x-reverse': ['space-x-reverse'], - /** - * Space Between Y - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y': [{ - 'space-y': scaleUnambiguousSpacing() - }], - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y-reverse': ['space-y-reverse'], - // -------------- - // --- Sizing --- - // -------------- - /** - * Size - * @see https://tailwindcss.com/docs/width#setting-both-width-and-height - */ - size: [{ - size: scaleSizing() - }], - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - w: [{ - w: [themeContainer, 'screen', ...scaleSizing()] - }], - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - 'min-w': [{ - 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'none', ...scaleSizing()] - }], - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - 'max-w': [{ - 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - { - screen: [themeBreakpoint] - }, ...scaleSizing()] - }], - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - h: [{ - h: ['screen', 'lh', ...scaleSizing()] - }], - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - 'min-h': [{ - 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] - }], - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - 'max-h': [{ - 'max-h': ['screen', 'lh', ...scaleSizing()] - }], - // ------------------ - // --- Typography --- - // ------------------ - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - 'font-size': [{ - text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - 'font-smoothing': ['antialiased', 'subpixel-antialiased'], - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - 'font-style': ['italic', 'not-italic'], - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - 'font-weight': [{ - font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] - }], - /** - * Font Stretch - * @see https://tailwindcss.com/docs/font-stretch - */ - 'font-stretch': [{ - 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue] - }], - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - 'font-family': [{ - font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] - }], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-normal': ['normal-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-ordinal': ['ordinal'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-slashed-zero': ['slashed-zero'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-figure': ['lining-nums', 'oldstyle-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-spacing': ['proportional-nums', 'tabular-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'], - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - tracking: [{ - tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] - }], - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - 'line-clamp': [{ - 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] - }], - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - leading: [{ - leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - themeLeading, ...scaleUnambiguousSpacing()] - }], - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - 'list-image': [{ - 'list-image': ['none', isArbitraryVariable, isArbitraryValue] - }], - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - 'list-style-position': [{ - list: ['inside', 'outside'] - }], - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - 'list-style-type': [{ - list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - 'text-alignment': [{ - text: ['left', 'center', 'right', 'justify', 'start', 'end'] - }], - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://v3.tailwindcss.com/docs/placeholder-color - */ - 'placeholder-color': [{ - placeholder: scaleColor() - }], - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - 'text-color': [{ - text: scaleColor() - }], - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'], - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - 'text-decoration-style': [{ - decoration: [...scaleLineStyle(), 'wavy'] - }], - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - 'text-decoration-thickness': [{ - decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength] - }], - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - 'text-decoration-color': [{ - decoration: scaleColor() - }], - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - 'underline-offset': [{ - 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'], - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'], - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - 'text-wrap': [{ - text: ['wrap', 'nowrap', 'balance', 'pretty'] - }], - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - indent: [{ - indent: scaleUnambiguousSpacing() - }], - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - 'vertical-align': [{ - align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue] - }], - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - whitespace: [{ - whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] - }], - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - break: [{ - break: ['normal', 'words', 'all', 'keep'] - }], - /** - * Overflow Wrap - * @see https://tailwindcss.com/docs/overflow-wrap - */ - wrap: [{ - wrap: ['break-word', 'anywhere', 'normal'] - }], - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - hyphens: [{ - hyphens: ['none', 'manual', 'auto'] - }], - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - content: [{ - content: ['none', isArbitraryVariable, isArbitraryValue] - }], - // ------------------- - // --- Backgrounds --- - // ------------------- - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - 'bg-attachment': [{ - bg: ['fixed', 'local', 'scroll'] - }], - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - 'bg-clip': [{ - 'bg-clip': ['border', 'padding', 'content', 'text'] - }], - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - 'bg-origin': [{ - 'bg-origin': ['border', 'padding', 'content'] - }], - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - 'bg-position': [{ - bg: scaleBgPosition() - }], - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - 'bg-repeat': [{ - bg: scaleBgRepeat() - }], - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - 'bg-size': [{ - bg: scaleBgSize() - }], - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - 'bg-image': [{ - bg: ['none', { - linear: [{ - to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] - }, isInteger, isArbitraryVariable, isArbitraryValue], - radial: ['', isArbitraryVariable, isArbitraryValue], - conic: [isInteger, isArbitraryVariable, isArbitraryValue] - }, isArbitraryVariableImage, isArbitraryImage] - }], - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - 'bg-color': [{ - bg: scaleColor() - }], - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from-pos': [{ - from: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via-pos': [{ - via: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to-pos': [{ - to: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from': [{ - from: scaleColor() - }], - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via': [{ - via: scaleColor() - }], - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to': [{ - to: scaleColor() - }], - // --------------- - // --- Borders --- - // --------------- - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - rounded: [{ - rounded: scaleRadius() - }], - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-s': [{ - 'rounded-s': scaleRadius() - }], - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-e': [{ - 'rounded-e': scaleRadius() - }], - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-t': [{ - 'rounded-t': scaleRadius() - }], - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-r': [{ - 'rounded-r': scaleRadius() - }], - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-b': [{ - 'rounded-b': scaleRadius() - }], - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-l': [{ - 'rounded-l': scaleRadius() - }], - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ss': [{ - 'rounded-ss': scaleRadius() - }], - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-se': [{ - 'rounded-se': scaleRadius() - }], - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ee': [{ - 'rounded-ee': scaleRadius() - }], - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-es': [{ - 'rounded-es': scaleRadius() - }], - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tl': [{ - 'rounded-tl': scaleRadius() - }], - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tr': [{ - 'rounded-tr': scaleRadius() - }], - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-br': [{ - 'rounded-br': scaleRadius() - }], - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-bl': [{ - 'rounded-bl': scaleRadius() - }], - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w': [{ - border: scaleBorderWidth() - }], - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-x': [{ - 'border-x': scaleBorderWidth() - }], - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-y': [{ - 'border-y': scaleBorderWidth() - }], - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-s': [{ - 'border-s': scaleBorderWidth() - }], - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-e': [{ - 'border-e': scaleBorderWidth() - }], - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-t': [{ - 'border-t': scaleBorderWidth() - }], - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-r': [{ - 'border-r': scaleBorderWidth() - }], - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-b': [{ - 'border-b': scaleBorderWidth() - }], - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-l': [{ - 'border-l': scaleBorderWidth() - }], - /** - * Divide Width X - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x': [{ - 'divide-x': scaleBorderWidth() - }], - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x-reverse': ['divide-x-reverse'], - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y': [{ - 'divide-y': scaleBorderWidth() - }], - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y-reverse': ['divide-y-reverse'], - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - 'border-style': [{ - border: [...scaleLineStyle(), 'hidden', 'none'] - }], - /** - * Divide Style - * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style - */ - 'divide-style': [{ - divide: [...scaleLineStyle(), 'hidden', 'none'] - }], - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color': [{ - border: scaleColor() - }], - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-x': [{ - 'border-x': scaleColor() - }], - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-y': [{ - 'border-y': scaleColor() - }], - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-s': [{ - 'border-s': scaleColor() - }], - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-e': [{ - 'border-e': scaleColor() - }], - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-t': [{ - 'border-t': scaleColor() - }], - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-r': [{ - 'border-r': scaleColor() - }], - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-b': [{ - 'border-b': scaleColor() - }], - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-l': [{ - 'border-l': scaleColor() - }], - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - 'divide-color': [{ - divide: scaleColor() - }], - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - 'outline-style': [{ - outline: [...scaleLineStyle(), 'none', 'hidden'] - }], - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - 'outline-offset': [{ - 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - 'outline-w': [{ - outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - 'outline-color': [{ - outline: scaleColor() - }], - // --------------- - // --- Effects --- - // --------------- - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - shadow: [{ - shadow: [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color - */ - 'shadow-color': [{ - shadow: scaleColor() - }], - /** - * Inset Box Shadow - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow - */ - 'inset-shadow': [{ - 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Inset Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color - */ - 'inset-shadow-color': [{ - 'inset-shadow': scaleColor() - }], - /** - * Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring - */ - 'ring-w': [{ - ring: scaleBorderWidth() - }], - /** - * Ring Width Inset - * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-w-inset': ['ring-inset'], - /** - * Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color - */ - 'ring-color': [{ - ring: scaleColor() - }], - /** - * Ring Offset Width - * @see https://v3.tailwindcss.com/docs/ring-offset-width - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-w': [{ - 'ring-offset': [isNumber, isArbitraryLength] - }], - /** - * Ring Offset Color - * @see https://v3.tailwindcss.com/docs/ring-offset-color - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-color': [{ - 'ring-offset': scaleColor() - }], - /** - * Inset Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring - */ - 'inset-ring-w': [{ - 'inset-ring': scaleBorderWidth() - }], - /** - * Inset Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color - */ - 'inset-ring-color': [{ - 'inset-ring': scaleColor() - }], - /** - * Text Shadow - * @see https://tailwindcss.com/docs/text-shadow - */ - 'text-shadow': [{ - 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Text Shadow Color - * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color - */ - 'text-shadow-color': [{ - 'text-shadow': scaleColor() - }], - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - opacity: [{ - opacity: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - 'mix-blend': [{ - 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] - }], - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - 'bg-blend': [{ - 'bg-blend': scaleBlendMode() - }], - /** - * Mask Clip - * @see https://tailwindcss.com/docs/mask-clip - */ - 'mask-clip': [{ - 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }, 'mask-no-clip'], - /** - * Mask Composite - * @see https://tailwindcss.com/docs/mask-composite - */ - 'mask-composite': [{ - mask: ['add', 'subtract', 'intersect', 'exclude'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image-linear-pos': [{ - 'mask-linear': [isNumber] - }], - 'mask-image-linear-from-pos': [{ - 'mask-linear-from': scaleMaskImagePosition() - }], - 'mask-image-linear-to-pos': [{ - 'mask-linear-to': scaleMaskImagePosition() - }], - 'mask-image-linear-from-color': [{ - 'mask-linear-from': scaleColor() - }], - 'mask-image-linear-to-color': [{ - 'mask-linear-to': scaleColor() - }], - 'mask-image-t-from-pos': [{ - 'mask-t-from': scaleMaskImagePosition() - }], - 'mask-image-t-to-pos': [{ - 'mask-t-to': scaleMaskImagePosition() - }], - 'mask-image-t-from-color': [{ - 'mask-t-from': scaleColor() - }], - 'mask-image-t-to-color': [{ - 'mask-t-to': scaleColor() - }], - 'mask-image-r-from-pos': [{ - 'mask-r-from': scaleMaskImagePosition() - }], - 'mask-image-r-to-pos': [{ - 'mask-r-to': scaleMaskImagePosition() - }], - 'mask-image-r-from-color': [{ - 'mask-r-from': scaleColor() - }], - 'mask-image-r-to-color': [{ - 'mask-r-to': scaleColor() - }], - 'mask-image-b-from-pos': [{ - 'mask-b-from': scaleMaskImagePosition() - }], - 'mask-image-b-to-pos': [{ - 'mask-b-to': scaleMaskImagePosition() - }], - 'mask-image-b-from-color': [{ - 'mask-b-from': scaleColor() - }], - 'mask-image-b-to-color': [{ - 'mask-b-to': scaleColor() - }], - 'mask-image-l-from-pos': [{ - 'mask-l-from': scaleMaskImagePosition() - }], - 'mask-image-l-to-pos': [{ - 'mask-l-to': scaleMaskImagePosition() - }], - 'mask-image-l-from-color': [{ - 'mask-l-from': scaleColor() - }], - 'mask-image-l-to-color': [{ - 'mask-l-to': scaleColor() - }], - 'mask-image-x-from-pos': [{ - 'mask-x-from': scaleMaskImagePosition() - }], - 'mask-image-x-to-pos': [{ - 'mask-x-to': scaleMaskImagePosition() - }], - 'mask-image-x-from-color': [{ - 'mask-x-from': scaleColor() - }], - 'mask-image-x-to-color': [{ - 'mask-x-to': scaleColor() - }], - 'mask-image-y-from-pos': [{ - 'mask-y-from': scaleMaskImagePosition() - }], - 'mask-image-y-to-pos': [{ - 'mask-y-to': scaleMaskImagePosition() - }], - 'mask-image-y-from-color': [{ - 'mask-y-from': scaleColor() - }], - 'mask-image-y-to-color': [{ - 'mask-y-to': scaleColor() - }], - 'mask-image-radial': [{ - 'mask-radial': [isArbitraryVariable, isArbitraryValue] - }], - 'mask-image-radial-from-pos': [{ - 'mask-radial-from': scaleMaskImagePosition() - }], - 'mask-image-radial-to-pos': [{ - 'mask-radial-to': scaleMaskImagePosition() - }], - 'mask-image-radial-from-color': [{ - 'mask-radial-from': scaleColor() - }], - 'mask-image-radial-to-color': [{ - 'mask-radial-to': scaleColor() - }], - 'mask-image-radial-shape': [{ - 'mask-radial': ['circle', 'ellipse'] - }], - 'mask-image-radial-size': [{ - 'mask-radial': [{ - closest: ['side', 'corner'], - farthest: ['side', 'corner'] - }] - }], - 'mask-image-radial-pos': [{ - 'mask-radial-at': scalePosition() - }], - 'mask-image-conic-pos': [{ - 'mask-conic': [isNumber] - }], - 'mask-image-conic-from-pos': [{ - 'mask-conic-from': scaleMaskImagePosition() - }], - 'mask-image-conic-to-pos': [{ - 'mask-conic-to': scaleMaskImagePosition() - }], - 'mask-image-conic-from-color': [{ - 'mask-conic-from': scaleColor() - }], - 'mask-image-conic-to-color': [{ - 'mask-conic-to': scaleColor() - }], - /** - * Mask Mode - * @see https://tailwindcss.com/docs/mask-mode - */ - 'mask-mode': [{ - mask: ['alpha', 'luminance', 'match'] - }], - /** - * Mask Origin - * @see https://tailwindcss.com/docs/mask-origin - */ - 'mask-origin': [{ - 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }], - /** - * Mask Position - * @see https://tailwindcss.com/docs/mask-position - */ - 'mask-position': [{ - mask: scaleBgPosition() - }], - /** - * Mask Repeat - * @see https://tailwindcss.com/docs/mask-repeat - */ - 'mask-repeat': [{ - mask: scaleBgRepeat() - }], - /** - * Mask Size - * @see https://tailwindcss.com/docs/mask-size - */ - 'mask-size': [{ - mask: scaleBgSize() - }], - /** - * Mask Type - * @see https://tailwindcss.com/docs/mask-type - */ - 'mask-type': [{ - 'mask-type': ['alpha', 'luminance'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image': [{ - mask: ['none', isArbitraryVariable, isArbitraryValue] - }], - // --------------- - // --- Filters --- - // --------------- - /** - * Filter - * @see https://tailwindcss.com/docs/filter - */ - filter: [{ - filter: [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - blur: [{ - blur: scaleBlur() - }], - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - brightness: [{ - brightness: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - contrast: [{ - contrast: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - 'drop-shadow': [{ - 'drop-shadow': [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Drop Shadow Color - * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color - */ - 'drop-shadow-color': [{ - 'drop-shadow': scaleColor() - }], - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - grayscale: [{ - grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - 'hue-rotate': [{ - 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - invert: [{ - invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - saturate: [{ - saturate: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - sepia: [{ - sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Filter - * @see https://tailwindcss.com/docs/backdrop-filter - */ - 'backdrop-filter': [{ - 'backdrop-filter': [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - 'backdrop-blur': [{ - 'backdrop-blur': scaleBlur() - }], - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - 'backdrop-brightness': [{ - 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - 'backdrop-contrast': [{ - 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - 'backdrop-grayscale': [{ - 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - 'backdrop-hue-rotate': [{ - 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - 'backdrop-invert': [{ - 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - 'backdrop-opacity': [{ - 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - 'backdrop-saturate': [{ - 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - 'backdrop-sepia': [{ - 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - // -------------- - // --- Tables --- - // -------------- - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - 'border-collapse': [{ - border: ['collapse', 'separate'] - }], - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing': [{ - 'border-spacing': scaleUnambiguousSpacing() - }], - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-x': [{ - 'border-spacing-x': scaleUnambiguousSpacing() - }], - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-y': [{ - 'border-spacing-y': scaleUnambiguousSpacing() - }], - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - 'table-layout': [{ - table: ['auto', 'fixed'] - }], - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - caption: [{ - caption: ['top', 'bottom'] - }], - // --------------------------------- - // --- Transitions and Animation --- - // --------------------------------- - /** - * Transition Property - * @see https://tailwindcss.com/docs/transition-property - */ - transition: [{ - transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Behavior - * @see https://tailwindcss.com/docs/transition-behavior - */ - 'transition-behavior': [{ - transition: ['normal', 'discrete'] - }], - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - duration: [{ - duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - ease: [{ - ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - delay: [{ - delay: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - animate: [{ - animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] - }], - // ------------------ - // --- Transforms --- - // ------------------ - /** - * Backface Visibility - * @see https://tailwindcss.com/docs/backface-visibility - */ - backface: [{ - backface: ['hidden', 'visible'] - }], - /** - * Perspective - * @see https://tailwindcss.com/docs/perspective - */ - perspective: [{ - perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] - }], - /** - * Perspective Origin - * @see https://tailwindcss.com/docs/perspective-origin - */ - 'perspective-origin': [{ - 'perspective-origin': scalePositionWithArbitrary() - }], - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - rotate: [{ - rotate: scaleRotate() - }], - /** - * Rotate X - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-x': [{ - 'rotate-x': scaleRotate() - }], - /** - * Rotate Y - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-y': [{ - 'rotate-y': scaleRotate() - }], - /** - * Rotate Z - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-z': [{ - 'rotate-z': scaleRotate() - }], - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - scale: [{ - scale: scaleScale() - }], - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - 'scale-x': [{ - 'scale-x': scaleScale() - }], - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - 'scale-y': [{ - 'scale-y': scaleScale() - }], - /** - * Scale Z - * @see https://tailwindcss.com/docs/scale - */ - 'scale-z': [{ - 'scale-z': scaleScale() - }], - /** - * Scale 3D - * @see https://tailwindcss.com/docs/scale - */ - 'scale-3d': ['scale-3d'], - /** - * Skew - * @see https://tailwindcss.com/docs/skew - */ - skew: [{ - skew: scaleSkew() - }], - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - 'skew-x': [{ - 'skew-x': scaleSkew() - }], - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - 'skew-y': [{ - 'skew-y': scaleSkew() - }], - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - transform: [{ - transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] - }], - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - 'transform-origin': [{ - origin: scalePositionWithArbitrary() - }], - /** - * Transform Style - * @see https://tailwindcss.com/docs/transform-style - */ - 'transform-style': [{ - transform: ['3d', 'flat'] - }], - /** - * Translate - * @see https://tailwindcss.com/docs/translate - */ - translate: [{ - translate: scaleTranslate() - }], - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - 'translate-x': [{ - 'translate-x': scaleTranslate() - }], - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - 'translate-y': [{ - 'translate-y': scaleTranslate() - }], - /** - * Translate Z - * @see https://tailwindcss.com/docs/translate - */ - 'translate-z': [{ - 'translate-z': scaleTranslate() - }], - /** - * Translate None - * @see https://tailwindcss.com/docs/translate - */ - 'translate-none': ['translate-none'], - // --------------------- - // --- Interactivity --- - // --------------------- - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - accent: [{ - accent: scaleColor() - }], - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - appearance: [{ - appearance: ['none', 'auto'] - }], - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - 'caret-color': [{ - caret: scaleColor() - }], - /** - * Color Scheme - * @see https://tailwindcss.com/docs/color-scheme - */ - 'color-scheme': [{ - scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] - }], - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - cursor: [{ - cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue] - }], - /** - * Field Sizing - * @see https://tailwindcss.com/docs/field-sizing - */ - 'field-sizing': [{ - 'field-sizing': ['fixed', 'content'] - }], - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - 'pointer-events': [{ - 'pointer-events': ['auto', 'none'] - }], - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - resize: [{ - resize: ['none', '', 'y', 'x'] - }], - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - 'scroll-behavior': [{ - scroll: ['auto', 'smooth'] - }], - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-m': [{ - 'scroll-m': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mx': [{ - 'scroll-mx': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-my': [{ - 'scroll-my': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ms': [{ - 'scroll-ms': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-me': [{ - 'scroll-me': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mt': [{ - 'scroll-mt': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mr': [{ - 'scroll-mr': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mb': [{ - 'scroll-mb': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ml': [{ - 'scroll-ml': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-p': [{ - 'scroll-p': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-px': [{ - 'scroll-px': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-py': [{ - 'scroll-py': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-ps': [{ - 'scroll-ps': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pe': [{ - 'scroll-pe': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pt': [{ - 'scroll-pt': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pr': [{ - 'scroll-pr': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pb': [{ - 'scroll-pb': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pl': [{ - 'scroll-pl': scaleUnambiguousSpacing() - }], - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - 'snap-align': [{ - snap: ['start', 'end', 'center', 'align-none'] - }], - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - 'snap-stop': [{ - snap: ['normal', 'always'] - }], - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-type': [{ - snap: ['none', 'x', 'y', 'both'] - }], - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-strictness': [{ - snap: ['mandatory', 'proximity'] - }], - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - touch: [{ - touch: ['auto', 'none', 'manipulation'] - }], - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-x': [{ - 'touch-pan': ['x', 'left', 'right'] - }], - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-y': [{ - 'touch-pan': ['y', 'up', 'down'] - }], - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-pz': ['touch-pinch-zoom'], - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - select: [{ - select: ['none', 'text', 'all', 'auto'] - }], - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - 'will-change': [{ - 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue] - }], - // ----------- - // --- SVG --- - // ----------- - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - fill: [{ - fill: ['none', ...scaleColor()] - }], - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - 'stroke-w': [{ - stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber] - }], - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - stroke: [{ - stroke: ['none', ...scaleColor()] - }], - // --------------------- - // --- Accessibility --- - // --------------------- - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - 'forced-color-adjust': [{ - 'forced-color-adjust': ['auto', 'none'] - }] - }, - conflictingClassGroups: { - overflow: ['overflow-x', 'overflow-y'], - overscroll: ['overscroll-x', 'overscroll-y'], - inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'], - 'inset-x': ['right', 'left'], - 'inset-y': ['top', 'bottom'], - flex: ['basis', 'grow', 'shrink'], - gap: ['gap-x', 'gap-y'], - p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'], - px: ['pr', 'pl'], - py: ['pt', 'pb'], - m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'], - mx: ['mr', 'ml'], - my: ['mt', 'mb'], - size: ['w', 'h'], - 'font-size': ['leading'], - 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'], - 'fvn-ordinal': ['fvn-normal'], - 'fvn-slashed-zero': ['fvn-normal'], - 'fvn-figure': ['fvn-normal'], - 'fvn-spacing': ['fvn-normal'], - 'fvn-fraction': ['fvn-normal'], - 'line-clamp': ['display', 'overflow'], - rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'], - 'rounded-s': ['rounded-ss', 'rounded-es'], - 'rounded-e': ['rounded-se', 'rounded-ee'], - 'rounded-t': ['rounded-tl', 'rounded-tr'], - 'rounded-r': ['rounded-tr', 'rounded-br'], - 'rounded-b': ['rounded-br', 'rounded-bl'], - 'rounded-l': ['rounded-tl', 'rounded-bl'], - 'border-spacing': ['border-spacing-x', 'border-spacing-y'], - 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'], - 'border-w-x': ['border-w-r', 'border-w-l'], - 'border-w-y': ['border-w-t', 'border-w-b'], - 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'], - 'border-color-x': ['border-color-r', 'border-color-l'], - 'border-color-y': ['border-color-t', 'border-color-b'], - translate: ['translate-x', 'translate-y', 'translate-none'], - 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'], - 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'], - 'scroll-mx': ['scroll-mr', 'scroll-ml'], - 'scroll-my': ['scroll-mt', 'scroll-mb'], - 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'], - 'scroll-px': ['scroll-pr', 'scroll-pl'], - 'scroll-py': ['scroll-pt', 'scroll-pb'], - touch: ['touch-x', 'touch-y', 'touch-pz'], - 'touch-x': ['touch'], - 'touch-y': ['touch'], - 'touch-pz': ['touch'] - }, - conflictingClassGroupModifiers: { - 'font-size': ['leading'] - }, - orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection'] - }; -}; - -/** - * @param baseConfig Config where other config will be merged into. This object will be mutated. - * @param configExtension Partial config to merge into the `baseConfig`. - */ -const mergeConfigs = (baseConfig, { - cacheSize, - prefix, - experimentalParseClassName, - extend = {}, - override = {} -}) => { - overrideProperty(baseConfig, 'cacheSize', cacheSize); - overrideProperty(baseConfig, 'prefix', prefix); - overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName); - overrideConfigProperties(baseConfig.theme, override.theme); - overrideConfigProperties(baseConfig.classGroups, override.classGroups); - overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups); - overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers); - overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers); - mergeConfigProperties(baseConfig.theme, extend.theme); - mergeConfigProperties(baseConfig.classGroups, extend.classGroups); - mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups); - mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers); - mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers'); - return baseConfig; -}; -const overrideProperty = (baseObject, overrideKey, overrideValue) => { - if (overrideValue !== undefined) { - baseObject[overrideKey] = overrideValue; - } -}; -const overrideConfigProperties = (baseObject, overrideObject) => { - if (overrideObject) { - for (const key in overrideObject) { - overrideProperty(baseObject, key, overrideObject[key]); - } - } -}; -const mergeConfigProperties = (baseObject, mergeObject) => { - if (mergeObject) { - for (const key in mergeObject) { - mergeArrayProperties(baseObject, mergeObject, key); - } - } -}; -const mergeArrayProperties = (baseObject, mergeObject, key) => { - const mergeValue = mergeObject[key]; - if (mergeValue !== undefined) { - baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue; - } -}; -const extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig); -const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig); -export { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators }; -//# sourceMappingURL=bundle-mjs.mjs.map diff --git a/node_modules/tailwind-merge/dist/bundle-mjs.mjs.map b/node_modules/tailwind-merge/dist/bundle-mjs.mjs.map deleted file mode 100644 index e1a9983..0000000 --- a/node_modules/tailwind-merge/dist/bundle-mjs.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle-mjs.mjs","sources":["../src/lib/class-group-utils.ts","../src/lib/lru-cache.ts","../src/lib/parse-class-name.ts","../src/lib/sort-modifiers.ts","../src/lib/config-utils.ts","../src/lib/merge-classlist.ts","../src/lib/tw-join.ts","../src/lib/create-tailwind-merge.ts","../src/lib/from-theme.ts","../src/lib/validators.ts","../src/lib/default-config.ts","../src/lib/merge-configs.ts","../src/lib/extend-tailwind-merge.ts","../src/lib/tw-merge.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","Object","entries","key","path","currentClassPartObject","pathPart","has","set","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","value","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","startsWith","isExternal","endsWith","createSortModifiers","orderSensitiveModifiers","fromEntries","map","modifier","sortModifiers","sortedModifiers","unsortedModifiers","isPositionSensitive","sort","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","variantModifier","modifierId","classId","includes","conflictGroups","i","group","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","callTailwindMerge","apply","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","extend","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","concat","extendTailwindMerge","configExtension","createConfig","twMerge"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/tailwind-merge/dist/es5/bundle-cjs.js b/node_modules/tailwind-merge/dist/es5/bundle-cjs.js deleted file mode 100644 index 731a1cf..0000000 --- a/node_modules/tailwind-merge/dist/es5/bundle-cjs.js +++ /dev/null @@ -1,3197 +0,0 @@ -'use strict'; - -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } -Object.defineProperty(exports, Symbol.toStringTag, { - value: 'Module' -}); -var CLASS_PART_SEPARATOR = '-'; -var createClassGroupUtils = function createClassGroupUtils(config) { - var classMap = createClassMap(config); - var conflictingClassGroups = config.conflictingClassGroups, - conflictingClassGroupModifiers = config.conflictingClassGroupModifiers; - var getClassGroupId = function getClassGroupId(className) { - var classParts = className.split(CLASS_PART_SEPARATOR); - // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts. - if (classParts[0] === '' && classParts.length !== 1) { - classParts.shift(); - } - return _getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className); - }; - var getConflictingClassGroupIds = function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) { - var conflicts = conflictingClassGroups[classGroupId] || []; - if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) { - return [].concat(conflicts, conflictingClassGroupModifiers[classGroupId]); - } - return conflicts; - }; - return { - getClassGroupId: getClassGroupId, - getConflictingClassGroupIds: getConflictingClassGroupIds - }; -}; -var _getGroupRecursive = function getGroupRecursive(classParts, classPartObject) { - var _classPartObject$vali; - if (classParts.length === 0) { - return classPartObject.classGroupId; - } - var currentClassPart = classParts[0]; - var nextClassPartObject = classPartObject.nextPart.get(currentClassPart); - var classGroupFromNextClassPart = nextClassPartObject ? _getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined; - if (classGroupFromNextClassPart) { - return classGroupFromNextClassPart; - } - if (classPartObject.validators.length === 0) { - return undefined; - } - var classRest = classParts.join(CLASS_PART_SEPARATOR); - return (_classPartObject$vali = classPartObject.validators.find(function (_ref) { - var validator = _ref.validator; - return validator(classRest); - })) == null ? void 0 : _classPartObject$vali.classGroupId; -}; -var arbitraryPropertyRegex = /^\[(.+)\]$/; -var getGroupIdForArbitraryProperty = function getGroupIdForArbitraryProperty(className) { - if (arbitraryPropertyRegex.test(className)) { - var arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1]; - var property = arbitraryPropertyClassName == null ? void 0 : arbitraryPropertyClassName.substring(0, arbitraryPropertyClassName.indexOf(':')); - if (property) { - // I use two dots here because one dot is used as prefix for class groups in plugins - return 'arbitrary..' + property; - } - } -}; -/** - * Exported for testing only - */ -var createClassMap = function createClassMap(config) { - var theme = config.theme, - classGroups = config.classGroups; - var classMap = { - nextPart: new Map(), - validators: [] - }; - for (var classGroupId in classGroups) { - _processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme); - } - return classMap; -}; -var _processClassesRecursively = function processClassesRecursively(classGroup, classPartObject, classGroupId, theme) { - classGroup.forEach(function (classDefinition) { - if (typeof classDefinition === 'string') { - var classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition); - classPartObjectToEdit.classGroupId = classGroupId; - return; - } - if (typeof classDefinition === 'function') { - if (isThemeGetter(classDefinition)) { - _processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme); - return; - } - classPartObject.validators.push({ - validator: classDefinition, - classGroupId: classGroupId - }); - return; - } - Object.entries(classDefinition).forEach(function (_ref2) { - var key = _ref2[0], - classGroup = _ref2[1]; - _processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme); - }); - }); -}; -var getPart = function getPart(classPartObject, path) { - var currentClassPartObject = classPartObject; - path.split(CLASS_PART_SEPARATOR).forEach(function (pathPart) { - if (!currentClassPartObject.nextPart.has(pathPart)) { - currentClassPartObject.nextPart.set(pathPart, { - nextPart: new Map(), - validators: [] - }); - } - currentClassPartObject = currentClassPartObject.nextPart.get(pathPart); - }); - return currentClassPartObject; -}; -var isThemeGetter = function isThemeGetter(func) { - return func.isThemeGetter; -}; - -// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance -var createLruCache = function createLruCache(maxCacheSize) { - if (maxCacheSize < 1) { - return { - get: function get() { - return undefined; - }, - set: function set() {} - }; - } - var cacheSize = 0; - var cache = new Map(); - var previousCache = new Map(); - var update = function update(key, value) { - cache.set(key, value); - cacheSize++; - if (cacheSize > maxCacheSize) { - cacheSize = 0; - previousCache = cache; - cache = new Map(); - } - }; - return { - get: function get(key) { - var value = cache.get(key); - if (value !== undefined) { - return value; - } - if ((value = previousCache.get(key)) !== undefined) { - update(key, value); - return value; - } - }, - set: function set(key, value) { - if (cache.has(key)) { - cache.set(key, value); - } else { - update(key, value); - } - } - }; -}; -var IMPORTANT_MODIFIER = '!'; -var MODIFIER_SEPARATOR = ':'; -var MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length; -var createParseClassName = function createParseClassName(config) { - var prefix = config.prefix, - experimentalParseClassName = config.experimentalParseClassName; - /** - * Parse class name into parts. - * - * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS - * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js - */ - var parseClassName = function parseClassName(className) { - var modifiers = []; - var bracketDepth = 0; - var parenDepth = 0; - var modifierStart = 0; - var postfixModifierPosition; - for (var index = 0; index < className.length; index++) { - var currentCharacter = className[index]; - if (bracketDepth === 0 && parenDepth === 0) { - if (currentCharacter === MODIFIER_SEPARATOR) { - modifiers.push(className.slice(modifierStart, index)); - modifierStart = index + MODIFIER_SEPARATOR_LENGTH; - continue; - } - if (currentCharacter === '/') { - postfixModifierPosition = index; - continue; - } - } - if (currentCharacter === '[') { - bracketDepth++; - } else if (currentCharacter === ']') { - bracketDepth--; - } else if (currentCharacter === '(') { - parenDepth++; - } else if (currentCharacter === ')') { - parenDepth--; - } - } - var baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart); - var baseClassName = stripImportantModifier(baseClassNameWithImportantModifier); - var hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier; - var maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined; - return { - modifiers: modifiers, - hasImportantModifier: hasImportantModifier, - baseClassName: baseClassName, - maybePostfixModifierPosition: maybePostfixModifierPosition - }; - }; - if (prefix) { - var fullPrefix = prefix + MODIFIER_SEPARATOR; - var parseClassNameOriginal = parseClassName; - parseClassName = function parseClassName(className) { - return className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : { - isExternal: true, - modifiers: [], - hasImportantModifier: false, - baseClassName: className, - maybePostfixModifierPosition: undefined - }; - }; - } - if (experimentalParseClassName) { - var _parseClassNameOriginal = parseClassName; - parseClassName = function parseClassName(className) { - return experimentalParseClassName({ - className: className, - parseClassName: _parseClassNameOriginal - }); - }; - } - return parseClassName; -}; -var stripImportantModifier = function stripImportantModifier(baseClassName) { - if (baseClassName.endsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(0, baseClassName.length - 1); - } - /** - * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons. - * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864 - */ - if (baseClassName.startsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(1); - } - return baseClassName; -}; - -/** - * Sorts modifiers according to following schema: - * - Predefined modifiers are sorted alphabetically - * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it - */ -var createSortModifiers = function createSortModifiers(config) { - var orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(function (modifier) { - return [modifier, true]; - })); - var sortModifiers = function sortModifiers(modifiers) { - if (modifiers.length <= 1) { - return modifiers; - } - var sortedModifiers = []; - var unsortedModifiers = []; - modifiers.forEach(function (modifier) { - var isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier]; - if (isPositionSensitive) { - sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort().concat([modifier])); - unsortedModifiers = []; - } else { - unsortedModifiers.push(modifier); - } - }); - sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort()); - return sortedModifiers; - }; - return sortModifiers; -}; -var createConfigUtils = function createConfigUtils(config) { - return _extends({ - cache: createLruCache(config.cacheSize), - parseClassName: createParseClassName(config), - sortModifiers: createSortModifiers(config) - }, createClassGroupUtils(config)); -}; -var SPLIT_CLASSES_REGEX = /\s+/; -var mergeClassList = function mergeClassList(classList, configUtils) { - var parseClassName = configUtils.parseClassName, - getClassGroupId = configUtils.getClassGroupId, - getConflictingClassGroupIds = configUtils.getConflictingClassGroupIds, - sortModifiers = configUtils.sortModifiers; - /** - * Set of classGroupIds in following format: - * `{importantModifier}{variantModifiers}{classGroupId}` - * @example 'float' - * @example 'hover:focus:bg-color' - * @example 'md:!pr' - */ - var classGroupsInConflict = []; - var classNames = classList.trim().split(SPLIT_CLASSES_REGEX); - var result = ''; - for (var index = classNames.length - 1; index >= 0; index -= 1) { - var originalClassName = classNames[index]; - var _parseClassName = parseClassName(originalClassName), - isExternal = _parseClassName.isExternal, - modifiers = _parseClassName.modifiers, - hasImportantModifier = _parseClassName.hasImportantModifier, - baseClassName = _parseClassName.baseClassName, - maybePostfixModifierPosition = _parseClassName.maybePostfixModifierPosition; - if (isExternal) { - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - var hasPostfixModifier = !!maybePostfixModifierPosition; - var classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName); - if (!classGroupId) { - if (!hasPostfixModifier) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - classGroupId = getClassGroupId(baseClassName); - if (!classGroupId) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - hasPostfixModifier = false; - } - var variantModifier = sortModifiers(modifiers).join(':'); - var modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier; - var classId = modifierId + classGroupId; - if (classGroupsInConflict.includes(classId)) { - // Tailwind class omitted due to conflict - continue; - } - classGroupsInConflict.push(classId); - var conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier); - for (var i = 0; i < conflictGroups.length; ++i) { - var group = conflictGroups[i]; - classGroupsInConflict.push(modifierId + group); - } - // Tailwind class not in conflict - result = originalClassName + (result.length > 0 ? ' ' + result : result); - } - return result; -}; - -/** - * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better. - * - * Specifically: - * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js - * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts - * - * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com) - */ -function twJoin() { - var index = 0; - var argument; - var resolvedValue; - var string = ''; - while (index < arguments.length) { - if (argument = arguments[index++]) { - if (resolvedValue = _toValue(argument)) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -} -var _toValue = function toValue(mix) { - if (typeof mix === 'string') { - return mix; - } - var resolvedValue; - var string = ''; - for (var k = 0; k < mix.length; k++) { - if (mix[k]) { - if (resolvedValue = _toValue(mix[k])) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -}; -function createTailwindMerge(createConfigFirst) { - for (var _len = arguments.length, createConfigRest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - createConfigRest[_key - 1] = arguments[_key]; - } - var configUtils; - var cacheGet; - var cacheSet; - var functionToCall = initTailwindMerge; - function initTailwindMerge(classList) { - var config = createConfigRest.reduce(function (previousConfig, createConfigCurrent) { - return createConfigCurrent(previousConfig); - }, createConfigFirst()); - configUtils = createConfigUtils(config); - cacheGet = configUtils.cache.get; - cacheSet = configUtils.cache.set; - functionToCall = tailwindMerge; - return tailwindMerge(classList); - } - function tailwindMerge(classList) { - var cachedResult = cacheGet(classList); - if (cachedResult) { - return cachedResult; - } - var result = mergeClassList(classList, configUtils); - cacheSet(classList, result); - return result; - } - return function callTailwindMerge() { - return functionToCall(twJoin.apply(null, arguments)); - }; -} -var fromTheme = function fromTheme(key) { - var themeGetter = function themeGetter(theme) { - return theme[key] || []; - }; - themeGetter.isThemeGetter = true; - return themeGetter; -}; -var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i; -var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i; -var fractionRegex = /^\d+\/\d+$/; -var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/; -var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/; -var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/; -// Shadow always begins with x and y offset separated by underscore optionally prepended by inset -var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/; -var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/; -var isFraction = function isFraction(value) { - return fractionRegex.test(value); -}; -var isNumber = function isNumber(value) { - return !!value && !Number.isNaN(Number(value)); -}; -var isInteger = function isInteger(value) { - return !!value && Number.isInteger(Number(value)); -}; -var isPercent = function isPercent(value) { - return value.endsWith('%') && isNumber(value.slice(0, -1)); -}; -var isTshirtSize = function isTshirtSize(value) { - return tshirtUnitRegex.test(value); -}; -var isAny = function isAny() { - return true; -}; -var isLengthOnly = function isLengthOnly(value) { - return ( - // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. - // For example, `hsl(0 0% 0%)` would be classified as a length without this check. - // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. - lengthUnitRegex.test(value) && !colorFunctionRegex.test(value) - ); -}; -var isNever = function isNever() { - return false; -}; -var isShadow = function isShadow(value) { - return shadowRegex.test(value); -}; -var isImage = function isImage(value) { - return imageRegex.test(value); -}; -var isAnyNonArbitrary = function isAnyNonArbitrary(value) { - return !isArbitraryValue(value) && !isArbitraryVariable(value); -}; -var isArbitrarySize = function isArbitrarySize(value) { - return getIsArbitraryValue(value, isLabelSize, isNever); -}; -var isArbitraryValue = function isArbitraryValue(value) { - return arbitraryValueRegex.test(value); -}; -var isArbitraryLength = function isArbitraryLength(value) { - return getIsArbitraryValue(value, isLabelLength, isLengthOnly); -}; -var isArbitraryNumber = function isArbitraryNumber(value) { - return getIsArbitraryValue(value, isLabelNumber, isNumber); -}; -var isArbitraryPosition = function isArbitraryPosition(value) { - return getIsArbitraryValue(value, isLabelPosition, isNever); -}; -var isArbitraryImage = function isArbitraryImage(value) { - return getIsArbitraryValue(value, isLabelImage, isImage); -}; -var isArbitraryShadow = function isArbitraryShadow(value) { - return getIsArbitraryValue(value, isLabelShadow, isShadow); -}; -var isArbitraryVariable = function isArbitraryVariable(value) { - return arbitraryVariableRegex.test(value); -}; -var isArbitraryVariableLength = function isArbitraryVariableLength(value) { - return getIsArbitraryVariable(value, isLabelLength); -}; -var isArbitraryVariableFamilyName = function isArbitraryVariableFamilyName(value) { - return getIsArbitraryVariable(value, isLabelFamilyName); -}; -var isArbitraryVariablePosition = function isArbitraryVariablePosition(value) { - return getIsArbitraryVariable(value, isLabelPosition); -}; -var isArbitraryVariableSize = function isArbitraryVariableSize(value) { - return getIsArbitraryVariable(value, isLabelSize); -}; -var isArbitraryVariableImage = function isArbitraryVariableImage(value) { - return getIsArbitraryVariable(value, isLabelImage); -}; -var isArbitraryVariableShadow = function isArbitraryVariableShadow(value) { - return getIsArbitraryVariable(value, isLabelShadow, true); -}; -// Helpers -var getIsArbitraryValue = function getIsArbitraryValue(value, testLabel, testValue) { - var result = arbitraryValueRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return testValue(result[2]); - } - return false; -}; -var getIsArbitraryVariable = function getIsArbitraryVariable(value, testLabel, shouldMatchNoLabel) { - if (shouldMatchNoLabel === void 0) { - shouldMatchNoLabel = false; - } - var result = arbitraryVariableRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return shouldMatchNoLabel; - } - return false; -}; -// Labels -var isLabelPosition = function isLabelPosition(label) { - return label === 'position' || label === 'percentage'; -}; -var isLabelImage = function isLabelImage(label) { - return label === 'image' || label === 'url'; -}; -var isLabelSize = function isLabelSize(label) { - return label === 'length' || label === 'size' || label === 'bg-size'; -}; -var isLabelLength = function isLabelLength(label) { - return label === 'length'; -}; -var isLabelNumber = function isLabelNumber(label) { - return label === 'number'; -}; -var isLabelFamilyName = function isLabelFamilyName(label) { - return label === 'family-name'; -}; -var isLabelShadow = function isLabelShadow(label) { - return label === 'shadow'; -}; -var validators = /*#__PURE__*/Object.defineProperty({ - __proto__: null, - isAny: isAny, - isAnyNonArbitrary: isAnyNonArbitrary, - isArbitraryImage: isArbitraryImage, - isArbitraryLength: isArbitraryLength, - isArbitraryNumber: isArbitraryNumber, - isArbitraryPosition: isArbitraryPosition, - isArbitraryShadow: isArbitraryShadow, - isArbitrarySize: isArbitrarySize, - isArbitraryValue: isArbitraryValue, - isArbitraryVariable: isArbitraryVariable, - isArbitraryVariableFamilyName: isArbitraryVariableFamilyName, - isArbitraryVariableImage: isArbitraryVariableImage, - isArbitraryVariableLength: isArbitraryVariableLength, - isArbitraryVariablePosition: isArbitraryVariablePosition, - isArbitraryVariableShadow: isArbitraryVariableShadow, - isArbitraryVariableSize: isArbitraryVariableSize, - isFraction: isFraction, - isInteger: isInteger, - isNumber: isNumber, - isPercent: isPercent, - isTshirtSize: isTshirtSize -}, Symbol.toStringTag, { - value: 'Module' -}); -var getDefaultConfig = function getDefaultConfig() { - /** - * Theme getters for theme variable namespaces - * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces - */ - /***/ - var themeColor = fromTheme('color'); - var themeFont = fromTheme('font'); - var themeText = fromTheme('text'); - var themeFontWeight = fromTheme('font-weight'); - var themeTracking = fromTheme('tracking'); - var themeLeading = fromTheme('leading'); - var themeBreakpoint = fromTheme('breakpoint'); - var themeContainer = fromTheme('container'); - var themeSpacing = fromTheme('spacing'); - var themeRadius = fromTheme('radius'); - var themeShadow = fromTheme('shadow'); - var themeInsetShadow = fromTheme('inset-shadow'); - var themeTextShadow = fromTheme('text-shadow'); - var themeDropShadow = fromTheme('drop-shadow'); - var themeBlur = fromTheme('blur'); - var themePerspective = fromTheme('perspective'); - var themeAspect = fromTheme('aspect'); - var themeEase = fromTheme('ease'); - var themeAnimate = fromTheme('animate'); - /** - * Helpers to avoid repeating the same scales - * - * We use functions that create a new array every time they're called instead of static arrays. - * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config. - */ - /***/ - var scaleBreak = function scaleBreak() { - return ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column']; - }; - var scalePosition = function scalePosition() { - return ['center', 'top', 'bottom', 'left', 'right', 'top-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-top', 'top-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-top', 'bottom-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-bottom', 'bottom-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-bottom']; - }; - var scalePositionWithArbitrary = function scalePositionWithArbitrary() { - return [].concat(scalePosition(), [isArbitraryVariable, isArbitraryValue]); - }; - var scaleOverflow = function scaleOverflow() { - return ['auto', 'hidden', 'clip', 'visible', 'scroll']; - }; - var scaleOverscroll = function scaleOverscroll() { - return ['auto', 'contain', 'none']; - }; - var scaleUnambiguousSpacing = function scaleUnambiguousSpacing() { - return [isArbitraryVariable, isArbitraryValue, themeSpacing]; - }; - var scaleInset = function scaleInset() { - return [isFraction, 'full', 'auto'].concat(scaleUnambiguousSpacing()); - }; - var scaleGridTemplateColsRows = function scaleGridTemplateColsRows() { - return [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue]; - }; - var scaleGridColRowStartAndEnd = function scaleGridColRowStartAndEnd() { - return ['auto', { - span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] - }, isInteger, isArbitraryVariable, isArbitraryValue]; - }; - var scaleGridColRowStartOrEnd = function scaleGridColRowStartOrEnd() { - return [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]; - }; - var scaleGridAutoColsRows = function scaleGridAutoColsRows() { - return ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue]; - }; - var scaleAlignPrimaryAxis = function scaleAlignPrimaryAxis() { - return ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe']; - }; - var scaleAlignSecondaryAxis = function scaleAlignSecondaryAxis() { - return ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe']; - }; - var scaleMargin = function scaleMargin() { - return ['auto'].concat(scaleUnambiguousSpacing()); - }; - var scaleSizing = function scaleSizing() { - return [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit'].concat(scaleUnambiguousSpacing()); - }; - var scaleColor = function scaleColor() { - return [themeColor, isArbitraryVariable, isArbitraryValue]; - }; - var scaleBgPosition = function scaleBgPosition() { - return [].concat(scalePosition(), [isArbitraryVariablePosition, isArbitraryPosition, { - position: [isArbitraryVariable, isArbitraryValue] - }]); - }; - var scaleBgRepeat = function scaleBgRepeat() { - return ['no-repeat', { - repeat: ['', 'x', 'y', 'space', 'round'] - }]; - }; - var scaleBgSize = function scaleBgSize() { - return ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, { - size: [isArbitraryVariable, isArbitraryValue] - }]; - }; - var scaleGradientStopPosition = function scaleGradientStopPosition() { - return [isPercent, isArbitraryVariableLength, isArbitraryLength]; - }; - var scaleRadius = function scaleRadius() { - return [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue]; - }; - var scaleBorderWidth = function scaleBorderWidth() { - return ['', isNumber, isArbitraryVariableLength, isArbitraryLength]; - }; - var scaleLineStyle = function scaleLineStyle() { - return ['solid', 'dashed', 'dotted', 'double']; - }; - var scaleBlendMode = function scaleBlendMode() { - return ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity']; - }; - var scaleMaskImagePosition = function scaleMaskImagePosition() { - return [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition]; - }; - var scaleBlur = function scaleBlur() { - return [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue]; - }; - var scaleRotate = function scaleRotate() { - return ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - }; - var scaleScale = function scaleScale() { - return ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - }; - var scaleSkew = function scaleSkew() { - return [isNumber, isArbitraryVariable, isArbitraryValue]; - }; - var scaleTranslate = function scaleTranslate() { - return [isFraction, 'full'].concat(scaleUnambiguousSpacing()); - }; - return { - cacheSize: 500, - theme: { - animate: ['spin', 'ping', 'pulse', 'bounce'], - aspect: ['video'], - blur: [isTshirtSize], - breakpoint: [isTshirtSize], - color: [isAny], - container: [isTshirtSize], - 'drop-shadow': [isTshirtSize], - ease: ['in', 'out', 'in-out'], - font: [isAnyNonArbitrary], - 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'], - 'inset-shadow': [isTshirtSize], - leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'], - perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'], - radius: [isTshirtSize], - shadow: [isTshirtSize], - spacing: ['px', isNumber], - text: [isTshirtSize], - 'text-shadow': [isTshirtSize], - tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'] - }, - classGroups: { - // -------------- - // --- Layout --- - // -------------- - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - aspect: [{ - aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect] - }], - /** - * Container - * @see https://tailwindcss.com/docs/container - * @deprecated since Tailwind CSS v4.0.0 - */ - container: ['container'], - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - columns: [{ - columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] - }], - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - 'break-after': [{ - 'break-after': scaleBreak() - }], - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - 'break-before': [{ - 'break-before': scaleBreak() - }], - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - 'break-inside': [{ - 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] - }], - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - 'box-decoration': [{ - 'box-decoration': ['slice', 'clone'] - }], - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - box: [{ - box: ['border', 'content'] - }], - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'], - /** - * Screen Reader Only - * @see https://tailwindcss.com/docs/display#screen-reader-only - */ - sr: ['sr-only', 'not-sr-only'], - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - "float": [{ - "float": ['right', 'left', 'none', 'start', 'end'] - }], - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - clear: [{ - clear: ['left', 'right', 'both', 'none', 'start', 'end'] - }], - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - isolation: ['isolate', 'isolation-auto'], - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - 'object-fit': [{ - object: ['contain', 'cover', 'fill', 'none', 'scale-down'] - }], - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - 'object-position': [{ - object: scalePositionWithArbitrary() - }], - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - overflow: [{ - overflow: scaleOverflow() - }], - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-x': [{ - 'overflow-x': scaleOverflow() - }], - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-y': [{ - 'overflow-y': scaleOverflow() - }], - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - overscroll: [{ - overscroll: scaleOverscroll() - }], - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-x': [{ - 'overscroll-x': scaleOverscroll() - }], - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-y': [{ - 'overscroll-y': scaleOverscroll() - }], - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - position: ['static', 'fixed', 'absolute', 'relative', 'sticky'], - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - inset: [{ - inset: scaleInset() - }], - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-x': [{ - 'inset-x': scaleInset() - }], - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-y': [{ - 'inset-y': scaleInset() - }], - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - start: [{ - start: scaleInset() - }], - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - end: [{ - end: scaleInset() - }], - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - top: [{ - top: scaleInset() - }], - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - right: [{ - right: scaleInset() - }], - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - bottom: [{ - bottom: scaleInset() - }], - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - left: [{ - left: scaleInset() - }], - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - visibility: ['visible', 'invisible', 'collapse'], - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - z: [{ - z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] - }], - // ------------------------ - // --- Flexbox and Grid --- - // ------------------------ - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - basis: [{ - basis: [isFraction, 'full', 'auto', themeContainer].concat(scaleUnambiguousSpacing()) - }], - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - 'flex-direction': [{ - flex: ['row', 'row-reverse', 'col', 'col-reverse'] - }], - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - 'flex-wrap': [{ - flex: ['nowrap', 'wrap', 'wrap-reverse'] - }], - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - flex: [{ - flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] - }], - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - grow: [{ - grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - shrink: [{ - shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - order: [{ - order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - 'grid-cols': [{ - 'grid-cols': scaleGridTemplateColsRows() - }], - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start-end': [{ - col: scaleGridColRowStartAndEnd() - }], - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start': [{ - 'col-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-end': [{ - 'col-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - 'grid-rows': [{ - 'grid-rows': scaleGridTemplateColsRows() - }], - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start-end': [{ - row: scaleGridColRowStartAndEnd() - }], - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start': [{ - 'row-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-end': [{ - 'row-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - 'grid-flow': [{ - 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] - }], - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - 'auto-cols': [{ - 'auto-cols': scaleGridAutoColsRows() - }], - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - 'auto-rows': [{ - 'auto-rows': scaleGridAutoColsRows() - }], - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - gap: [{ - gap: scaleUnambiguousSpacing() - }], - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - 'gap-x': [{ - 'gap-x': scaleUnambiguousSpacing() - }], - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - 'gap-y': [{ - 'gap-y': scaleUnambiguousSpacing() - }], - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - 'justify-content': [{ - justify: [].concat(scaleAlignPrimaryAxis(), ['normal']) - }], - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - 'justify-items': [{ - 'justify-items': [].concat(scaleAlignSecondaryAxis(), ['normal']) - }], - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - 'justify-self': [{ - 'justify-self': ['auto'].concat(scaleAlignSecondaryAxis()) - }], - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - 'align-content': [{ - content: ['normal'].concat(scaleAlignPrimaryAxis()) - }], - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - 'align-items': [{ - items: [].concat(scaleAlignSecondaryAxis(), [{ - baseline: ['', 'last'] - }]) - }], - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - 'align-self': [{ - self: ['auto'].concat(scaleAlignSecondaryAxis(), [{ - baseline: ['', 'last'] - }]) - }], - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - 'place-content': [{ - 'place-content': scaleAlignPrimaryAxis() - }], - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - 'place-items': [{ - 'place-items': [].concat(scaleAlignSecondaryAxis(), ['baseline']) - }], - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - 'place-self': [{ - 'place-self': ['auto'].concat(scaleAlignSecondaryAxis()) - }], - // Spacing - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - p: [{ - p: scaleUnambiguousSpacing() - }], - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - px: [{ - px: scaleUnambiguousSpacing() - }], - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - py: [{ - py: scaleUnambiguousSpacing() - }], - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - ps: [{ - ps: scaleUnambiguousSpacing() - }], - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - pe: [{ - pe: scaleUnambiguousSpacing() - }], - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - pt: [{ - pt: scaleUnambiguousSpacing() - }], - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - pr: [{ - pr: scaleUnambiguousSpacing() - }], - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - pb: [{ - pb: scaleUnambiguousSpacing() - }], - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - pl: [{ - pl: scaleUnambiguousSpacing() - }], - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - m: [{ - m: scaleMargin() - }], - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - mx: [{ - mx: scaleMargin() - }], - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - my: [{ - my: scaleMargin() - }], - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - ms: [{ - ms: scaleMargin() - }], - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - me: [{ - me: scaleMargin() - }], - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - mt: [{ - mt: scaleMargin() - }], - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - mr: [{ - mr: scaleMargin() - }], - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - mb: [{ - mb: scaleMargin() - }], - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - ml: [{ - ml: scaleMargin() - }], - /** - * Space Between X - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x': [{ - 'space-x': scaleUnambiguousSpacing() - }], - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x-reverse': ['space-x-reverse'], - /** - * Space Between Y - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y': [{ - 'space-y': scaleUnambiguousSpacing() - }], - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y-reverse': ['space-y-reverse'], - // -------------- - // --- Sizing --- - // -------------- - /** - * Size - * @see https://tailwindcss.com/docs/width#setting-both-width-and-height - */ - size: [{ - size: scaleSizing() - }], - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - w: [{ - w: [themeContainer, 'screen'].concat(scaleSizing()) - }], - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - 'min-w': [{ - 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'none'].concat(scaleSizing()) - }], - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - 'max-w': [{ - 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - { - screen: [themeBreakpoint] - }].concat(scaleSizing()) - }], - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - h: [{ - h: ['screen', 'lh'].concat(scaleSizing()) - }], - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - 'min-h': [{ - 'min-h': ['screen', 'lh', 'none'].concat(scaleSizing()) - }], - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - 'max-h': [{ - 'max-h': ['screen', 'lh'].concat(scaleSizing()) - }], - // ------------------ - // --- Typography --- - // ------------------ - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - 'font-size': [{ - text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - 'font-smoothing': ['antialiased', 'subpixel-antialiased'], - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - 'font-style': ['italic', 'not-italic'], - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - 'font-weight': [{ - font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] - }], - /** - * Font Stretch - * @see https://tailwindcss.com/docs/font-stretch - */ - 'font-stretch': [{ - 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue] - }], - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - 'font-family': [{ - font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] - }], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-normal': ['normal-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-ordinal': ['ordinal'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-slashed-zero': ['slashed-zero'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-figure': ['lining-nums', 'oldstyle-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-spacing': ['proportional-nums', 'tabular-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'], - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - tracking: [{ - tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] - }], - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - 'line-clamp': [{ - 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] - }], - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - leading: [{ - leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - themeLeading].concat(scaleUnambiguousSpacing()) - }], - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - 'list-image': [{ - 'list-image': ['none', isArbitraryVariable, isArbitraryValue] - }], - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - 'list-style-position': [{ - list: ['inside', 'outside'] - }], - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - 'list-style-type': [{ - list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - 'text-alignment': [{ - text: ['left', 'center', 'right', 'justify', 'start', 'end'] - }], - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://v3.tailwindcss.com/docs/placeholder-color - */ - 'placeholder-color': [{ - placeholder: scaleColor() - }], - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - 'text-color': [{ - text: scaleColor() - }], - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'], - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - 'text-decoration-style': [{ - decoration: [].concat(scaleLineStyle(), ['wavy']) - }], - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - 'text-decoration-thickness': [{ - decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength] - }], - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - 'text-decoration-color': [{ - decoration: scaleColor() - }], - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - 'underline-offset': [{ - 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'], - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'], - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - 'text-wrap': [{ - text: ['wrap', 'nowrap', 'balance', 'pretty'] - }], - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - indent: [{ - indent: scaleUnambiguousSpacing() - }], - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - 'vertical-align': [{ - align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue] - }], - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - whitespace: [{ - whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] - }], - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - "break": [{ - "break": ['normal', 'words', 'all', 'keep'] - }], - /** - * Overflow Wrap - * @see https://tailwindcss.com/docs/overflow-wrap - */ - wrap: [{ - wrap: ['break-word', 'anywhere', 'normal'] - }], - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - hyphens: [{ - hyphens: ['none', 'manual', 'auto'] - }], - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - content: [{ - content: ['none', isArbitraryVariable, isArbitraryValue] - }], - // ------------------- - // --- Backgrounds --- - // ------------------- - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - 'bg-attachment': [{ - bg: ['fixed', 'local', 'scroll'] - }], - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - 'bg-clip': [{ - 'bg-clip': ['border', 'padding', 'content', 'text'] - }], - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - 'bg-origin': [{ - 'bg-origin': ['border', 'padding', 'content'] - }], - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - 'bg-position': [{ - bg: scaleBgPosition() - }], - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - 'bg-repeat': [{ - bg: scaleBgRepeat() - }], - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - 'bg-size': [{ - bg: scaleBgSize() - }], - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - 'bg-image': [{ - bg: ['none', { - linear: [{ - to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] - }, isInteger, isArbitraryVariable, isArbitraryValue], - radial: ['', isArbitraryVariable, isArbitraryValue], - conic: [isInteger, isArbitraryVariable, isArbitraryValue] - }, isArbitraryVariableImage, isArbitraryImage] - }], - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - 'bg-color': [{ - bg: scaleColor() - }], - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from-pos': [{ - from: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via-pos': [{ - via: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to-pos': [{ - to: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from': [{ - from: scaleColor() - }], - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via': [{ - via: scaleColor() - }], - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to': [{ - to: scaleColor() - }], - // --------------- - // --- Borders --- - // --------------- - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - rounded: [{ - rounded: scaleRadius() - }], - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-s': [{ - 'rounded-s': scaleRadius() - }], - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-e': [{ - 'rounded-e': scaleRadius() - }], - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-t': [{ - 'rounded-t': scaleRadius() - }], - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-r': [{ - 'rounded-r': scaleRadius() - }], - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-b': [{ - 'rounded-b': scaleRadius() - }], - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-l': [{ - 'rounded-l': scaleRadius() - }], - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ss': [{ - 'rounded-ss': scaleRadius() - }], - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-se': [{ - 'rounded-se': scaleRadius() - }], - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ee': [{ - 'rounded-ee': scaleRadius() - }], - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-es': [{ - 'rounded-es': scaleRadius() - }], - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tl': [{ - 'rounded-tl': scaleRadius() - }], - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tr': [{ - 'rounded-tr': scaleRadius() - }], - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-br': [{ - 'rounded-br': scaleRadius() - }], - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-bl': [{ - 'rounded-bl': scaleRadius() - }], - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w': [{ - border: scaleBorderWidth() - }], - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-x': [{ - 'border-x': scaleBorderWidth() - }], - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-y': [{ - 'border-y': scaleBorderWidth() - }], - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-s': [{ - 'border-s': scaleBorderWidth() - }], - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-e': [{ - 'border-e': scaleBorderWidth() - }], - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-t': [{ - 'border-t': scaleBorderWidth() - }], - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-r': [{ - 'border-r': scaleBorderWidth() - }], - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-b': [{ - 'border-b': scaleBorderWidth() - }], - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-l': [{ - 'border-l': scaleBorderWidth() - }], - /** - * Divide Width X - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x': [{ - 'divide-x': scaleBorderWidth() - }], - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x-reverse': ['divide-x-reverse'], - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y': [{ - 'divide-y': scaleBorderWidth() - }], - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y-reverse': ['divide-y-reverse'], - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - 'border-style': [{ - border: [].concat(scaleLineStyle(), ['hidden', 'none']) - }], - /** - * Divide Style - * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style - */ - 'divide-style': [{ - divide: [].concat(scaleLineStyle(), ['hidden', 'none']) - }], - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color': [{ - border: scaleColor() - }], - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-x': [{ - 'border-x': scaleColor() - }], - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-y': [{ - 'border-y': scaleColor() - }], - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-s': [{ - 'border-s': scaleColor() - }], - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-e': [{ - 'border-e': scaleColor() - }], - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-t': [{ - 'border-t': scaleColor() - }], - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-r': [{ - 'border-r': scaleColor() - }], - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-b': [{ - 'border-b': scaleColor() - }], - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-l': [{ - 'border-l': scaleColor() - }], - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - 'divide-color': [{ - divide: scaleColor() - }], - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - 'outline-style': [{ - outline: [].concat(scaleLineStyle(), ['none', 'hidden']) - }], - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - 'outline-offset': [{ - 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - 'outline-w': [{ - outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - 'outline-color': [{ - outline: scaleColor() - }], - // --------------- - // --- Effects --- - // --------------- - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - shadow: [{ - shadow: [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color - */ - 'shadow-color': [{ - shadow: scaleColor() - }], - /** - * Inset Box Shadow - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow - */ - 'inset-shadow': [{ - 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Inset Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color - */ - 'inset-shadow-color': [{ - 'inset-shadow': scaleColor() - }], - /** - * Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring - */ - 'ring-w': [{ - ring: scaleBorderWidth() - }], - /** - * Ring Width Inset - * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-w-inset': ['ring-inset'], - /** - * Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color - */ - 'ring-color': [{ - ring: scaleColor() - }], - /** - * Ring Offset Width - * @see https://v3.tailwindcss.com/docs/ring-offset-width - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-w': [{ - 'ring-offset': [isNumber, isArbitraryLength] - }], - /** - * Ring Offset Color - * @see https://v3.tailwindcss.com/docs/ring-offset-color - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-color': [{ - 'ring-offset': scaleColor() - }], - /** - * Inset Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring - */ - 'inset-ring-w': [{ - 'inset-ring': scaleBorderWidth() - }], - /** - * Inset Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color - */ - 'inset-ring-color': [{ - 'inset-ring': scaleColor() - }], - /** - * Text Shadow - * @see https://tailwindcss.com/docs/text-shadow - */ - 'text-shadow': [{ - 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Text Shadow Color - * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color - */ - 'text-shadow-color': [{ - 'text-shadow': scaleColor() - }], - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - opacity: [{ - opacity: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - 'mix-blend': [{ - 'mix-blend': [].concat(scaleBlendMode(), ['plus-darker', 'plus-lighter']) - }], - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - 'bg-blend': [{ - 'bg-blend': scaleBlendMode() - }], - /** - * Mask Clip - * @see https://tailwindcss.com/docs/mask-clip - */ - 'mask-clip': [{ - 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }, 'mask-no-clip'], - /** - * Mask Composite - * @see https://tailwindcss.com/docs/mask-composite - */ - 'mask-composite': [{ - mask: ['add', 'subtract', 'intersect', 'exclude'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image-linear-pos': [{ - 'mask-linear': [isNumber] - }], - 'mask-image-linear-from-pos': [{ - 'mask-linear-from': scaleMaskImagePosition() - }], - 'mask-image-linear-to-pos': [{ - 'mask-linear-to': scaleMaskImagePosition() - }], - 'mask-image-linear-from-color': [{ - 'mask-linear-from': scaleColor() - }], - 'mask-image-linear-to-color': [{ - 'mask-linear-to': scaleColor() - }], - 'mask-image-t-from-pos': [{ - 'mask-t-from': scaleMaskImagePosition() - }], - 'mask-image-t-to-pos': [{ - 'mask-t-to': scaleMaskImagePosition() - }], - 'mask-image-t-from-color': [{ - 'mask-t-from': scaleColor() - }], - 'mask-image-t-to-color': [{ - 'mask-t-to': scaleColor() - }], - 'mask-image-r-from-pos': [{ - 'mask-r-from': scaleMaskImagePosition() - }], - 'mask-image-r-to-pos': [{ - 'mask-r-to': scaleMaskImagePosition() - }], - 'mask-image-r-from-color': [{ - 'mask-r-from': scaleColor() - }], - 'mask-image-r-to-color': [{ - 'mask-r-to': scaleColor() - }], - 'mask-image-b-from-pos': [{ - 'mask-b-from': scaleMaskImagePosition() - }], - 'mask-image-b-to-pos': [{ - 'mask-b-to': scaleMaskImagePosition() - }], - 'mask-image-b-from-color': [{ - 'mask-b-from': scaleColor() - }], - 'mask-image-b-to-color': [{ - 'mask-b-to': scaleColor() - }], - 'mask-image-l-from-pos': [{ - 'mask-l-from': scaleMaskImagePosition() - }], - 'mask-image-l-to-pos': [{ - 'mask-l-to': scaleMaskImagePosition() - }], - 'mask-image-l-from-color': [{ - 'mask-l-from': scaleColor() - }], - 'mask-image-l-to-color': [{ - 'mask-l-to': scaleColor() - }], - 'mask-image-x-from-pos': [{ - 'mask-x-from': scaleMaskImagePosition() - }], - 'mask-image-x-to-pos': [{ - 'mask-x-to': scaleMaskImagePosition() - }], - 'mask-image-x-from-color': [{ - 'mask-x-from': scaleColor() - }], - 'mask-image-x-to-color': [{ - 'mask-x-to': scaleColor() - }], - 'mask-image-y-from-pos': [{ - 'mask-y-from': scaleMaskImagePosition() - }], - 'mask-image-y-to-pos': [{ - 'mask-y-to': scaleMaskImagePosition() - }], - 'mask-image-y-from-color': [{ - 'mask-y-from': scaleColor() - }], - 'mask-image-y-to-color': [{ - 'mask-y-to': scaleColor() - }], - 'mask-image-radial': [{ - 'mask-radial': [isArbitraryVariable, isArbitraryValue] - }], - 'mask-image-radial-from-pos': [{ - 'mask-radial-from': scaleMaskImagePosition() - }], - 'mask-image-radial-to-pos': [{ - 'mask-radial-to': scaleMaskImagePosition() - }], - 'mask-image-radial-from-color': [{ - 'mask-radial-from': scaleColor() - }], - 'mask-image-radial-to-color': [{ - 'mask-radial-to': scaleColor() - }], - 'mask-image-radial-shape': [{ - 'mask-radial': ['circle', 'ellipse'] - }], - 'mask-image-radial-size': [{ - 'mask-radial': [{ - closest: ['side', 'corner'], - farthest: ['side', 'corner'] - }] - }], - 'mask-image-radial-pos': [{ - 'mask-radial-at': scalePosition() - }], - 'mask-image-conic-pos': [{ - 'mask-conic': [isNumber] - }], - 'mask-image-conic-from-pos': [{ - 'mask-conic-from': scaleMaskImagePosition() - }], - 'mask-image-conic-to-pos': [{ - 'mask-conic-to': scaleMaskImagePosition() - }], - 'mask-image-conic-from-color': [{ - 'mask-conic-from': scaleColor() - }], - 'mask-image-conic-to-color': [{ - 'mask-conic-to': scaleColor() - }], - /** - * Mask Mode - * @see https://tailwindcss.com/docs/mask-mode - */ - 'mask-mode': [{ - mask: ['alpha', 'luminance', 'match'] - }], - /** - * Mask Origin - * @see https://tailwindcss.com/docs/mask-origin - */ - 'mask-origin': [{ - 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }], - /** - * Mask Position - * @see https://tailwindcss.com/docs/mask-position - */ - 'mask-position': [{ - mask: scaleBgPosition() - }], - /** - * Mask Repeat - * @see https://tailwindcss.com/docs/mask-repeat - */ - 'mask-repeat': [{ - mask: scaleBgRepeat() - }], - /** - * Mask Size - * @see https://tailwindcss.com/docs/mask-size - */ - 'mask-size': [{ - mask: scaleBgSize() - }], - /** - * Mask Type - * @see https://tailwindcss.com/docs/mask-type - */ - 'mask-type': [{ - 'mask-type': ['alpha', 'luminance'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image': [{ - mask: ['none', isArbitraryVariable, isArbitraryValue] - }], - // --------------- - // --- Filters --- - // --------------- - /** - * Filter - * @see https://tailwindcss.com/docs/filter - */ - filter: [{ - filter: [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - blur: [{ - blur: scaleBlur() - }], - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - brightness: [{ - brightness: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - contrast: [{ - contrast: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - 'drop-shadow': [{ - 'drop-shadow': [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Drop Shadow Color - * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color - */ - 'drop-shadow-color': [{ - 'drop-shadow': scaleColor() - }], - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - grayscale: [{ - grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - 'hue-rotate': [{ - 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - invert: [{ - invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - saturate: [{ - saturate: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - sepia: [{ - sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Filter - * @see https://tailwindcss.com/docs/backdrop-filter - */ - 'backdrop-filter': [{ - 'backdrop-filter': [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - 'backdrop-blur': [{ - 'backdrop-blur': scaleBlur() - }], - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - 'backdrop-brightness': [{ - 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - 'backdrop-contrast': [{ - 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - 'backdrop-grayscale': [{ - 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - 'backdrop-hue-rotate': [{ - 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - 'backdrop-invert': [{ - 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - 'backdrop-opacity': [{ - 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - 'backdrop-saturate': [{ - 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - 'backdrop-sepia': [{ - 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - // -------------- - // --- Tables --- - // -------------- - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - 'border-collapse': [{ - border: ['collapse', 'separate'] - }], - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing': [{ - 'border-spacing': scaleUnambiguousSpacing() - }], - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-x': [{ - 'border-spacing-x': scaleUnambiguousSpacing() - }], - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-y': [{ - 'border-spacing-y': scaleUnambiguousSpacing() - }], - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - 'table-layout': [{ - table: ['auto', 'fixed'] - }], - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - caption: [{ - caption: ['top', 'bottom'] - }], - // --------------------------------- - // --- Transitions and Animation --- - // --------------------------------- - /** - * Transition Property - * @see https://tailwindcss.com/docs/transition-property - */ - transition: [{ - transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Behavior - * @see https://tailwindcss.com/docs/transition-behavior - */ - 'transition-behavior': [{ - transition: ['normal', 'discrete'] - }], - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - duration: [{ - duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - ease: [{ - ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - delay: [{ - delay: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - animate: [{ - animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] - }], - // ------------------ - // --- Transforms --- - // ------------------ - /** - * Backface Visibility - * @see https://tailwindcss.com/docs/backface-visibility - */ - backface: [{ - backface: ['hidden', 'visible'] - }], - /** - * Perspective - * @see https://tailwindcss.com/docs/perspective - */ - perspective: [{ - perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] - }], - /** - * Perspective Origin - * @see https://tailwindcss.com/docs/perspective-origin - */ - 'perspective-origin': [{ - 'perspective-origin': scalePositionWithArbitrary() - }], - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - rotate: [{ - rotate: scaleRotate() - }], - /** - * Rotate X - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-x': [{ - 'rotate-x': scaleRotate() - }], - /** - * Rotate Y - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-y': [{ - 'rotate-y': scaleRotate() - }], - /** - * Rotate Z - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-z': [{ - 'rotate-z': scaleRotate() - }], - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - scale: [{ - scale: scaleScale() - }], - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - 'scale-x': [{ - 'scale-x': scaleScale() - }], - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - 'scale-y': [{ - 'scale-y': scaleScale() - }], - /** - * Scale Z - * @see https://tailwindcss.com/docs/scale - */ - 'scale-z': [{ - 'scale-z': scaleScale() - }], - /** - * Scale 3D - * @see https://tailwindcss.com/docs/scale - */ - 'scale-3d': ['scale-3d'], - /** - * Skew - * @see https://tailwindcss.com/docs/skew - */ - skew: [{ - skew: scaleSkew() - }], - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - 'skew-x': [{ - 'skew-x': scaleSkew() - }], - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - 'skew-y': [{ - 'skew-y': scaleSkew() - }], - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - transform: [{ - transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] - }], - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - 'transform-origin': [{ - origin: scalePositionWithArbitrary() - }], - /** - * Transform Style - * @see https://tailwindcss.com/docs/transform-style - */ - 'transform-style': [{ - transform: ['3d', 'flat'] - }], - /** - * Translate - * @see https://tailwindcss.com/docs/translate - */ - translate: [{ - translate: scaleTranslate() - }], - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - 'translate-x': [{ - 'translate-x': scaleTranslate() - }], - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - 'translate-y': [{ - 'translate-y': scaleTranslate() - }], - /** - * Translate Z - * @see https://tailwindcss.com/docs/translate - */ - 'translate-z': [{ - 'translate-z': scaleTranslate() - }], - /** - * Translate None - * @see https://tailwindcss.com/docs/translate - */ - 'translate-none': ['translate-none'], - // --------------------- - // --- Interactivity --- - // --------------------- - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - accent: [{ - accent: scaleColor() - }], - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - appearance: [{ - appearance: ['none', 'auto'] - }], - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - 'caret-color': [{ - caret: scaleColor() - }], - /** - * Color Scheme - * @see https://tailwindcss.com/docs/color-scheme - */ - 'color-scheme': [{ - scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] - }], - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - cursor: [{ - cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue] - }], - /** - * Field Sizing - * @see https://tailwindcss.com/docs/field-sizing - */ - 'field-sizing': [{ - 'field-sizing': ['fixed', 'content'] - }], - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - 'pointer-events': [{ - 'pointer-events': ['auto', 'none'] - }], - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - resize: [{ - resize: ['none', '', 'y', 'x'] - }], - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - 'scroll-behavior': [{ - scroll: ['auto', 'smooth'] - }], - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-m': [{ - 'scroll-m': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mx': [{ - 'scroll-mx': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-my': [{ - 'scroll-my': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ms': [{ - 'scroll-ms': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-me': [{ - 'scroll-me': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mt': [{ - 'scroll-mt': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mr': [{ - 'scroll-mr': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mb': [{ - 'scroll-mb': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ml': [{ - 'scroll-ml': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-p': [{ - 'scroll-p': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-px': [{ - 'scroll-px': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-py': [{ - 'scroll-py': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-ps': [{ - 'scroll-ps': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pe': [{ - 'scroll-pe': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pt': [{ - 'scroll-pt': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pr': [{ - 'scroll-pr': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pb': [{ - 'scroll-pb': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pl': [{ - 'scroll-pl': scaleUnambiguousSpacing() - }], - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - 'snap-align': [{ - snap: ['start', 'end', 'center', 'align-none'] - }], - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - 'snap-stop': [{ - snap: ['normal', 'always'] - }], - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-type': [{ - snap: ['none', 'x', 'y', 'both'] - }], - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-strictness': [{ - snap: ['mandatory', 'proximity'] - }], - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - touch: [{ - touch: ['auto', 'none', 'manipulation'] - }], - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-x': [{ - 'touch-pan': ['x', 'left', 'right'] - }], - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-y': [{ - 'touch-pan': ['y', 'up', 'down'] - }], - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-pz': ['touch-pinch-zoom'], - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - select: [{ - select: ['none', 'text', 'all', 'auto'] - }], - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - 'will-change': [{ - 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue] - }], - // ----------- - // --- SVG --- - // ----------- - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - fill: [{ - fill: ['none'].concat(scaleColor()) - }], - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - 'stroke-w': [{ - stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber] - }], - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - stroke: [{ - stroke: ['none'].concat(scaleColor()) - }], - // --------------------- - // --- Accessibility --- - // --------------------- - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - 'forced-color-adjust': [{ - 'forced-color-adjust': ['auto', 'none'] - }] - }, - conflictingClassGroups: { - overflow: ['overflow-x', 'overflow-y'], - overscroll: ['overscroll-x', 'overscroll-y'], - inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'], - 'inset-x': ['right', 'left'], - 'inset-y': ['top', 'bottom'], - flex: ['basis', 'grow', 'shrink'], - gap: ['gap-x', 'gap-y'], - p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'], - px: ['pr', 'pl'], - py: ['pt', 'pb'], - m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'], - mx: ['mr', 'ml'], - my: ['mt', 'mb'], - size: ['w', 'h'], - 'font-size': ['leading'], - 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'], - 'fvn-ordinal': ['fvn-normal'], - 'fvn-slashed-zero': ['fvn-normal'], - 'fvn-figure': ['fvn-normal'], - 'fvn-spacing': ['fvn-normal'], - 'fvn-fraction': ['fvn-normal'], - 'line-clamp': ['display', 'overflow'], - rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'], - 'rounded-s': ['rounded-ss', 'rounded-es'], - 'rounded-e': ['rounded-se', 'rounded-ee'], - 'rounded-t': ['rounded-tl', 'rounded-tr'], - 'rounded-r': ['rounded-tr', 'rounded-br'], - 'rounded-b': ['rounded-br', 'rounded-bl'], - 'rounded-l': ['rounded-tl', 'rounded-bl'], - 'border-spacing': ['border-spacing-x', 'border-spacing-y'], - 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'], - 'border-w-x': ['border-w-r', 'border-w-l'], - 'border-w-y': ['border-w-t', 'border-w-b'], - 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'], - 'border-color-x': ['border-color-r', 'border-color-l'], - 'border-color-y': ['border-color-t', 'border-color-b'], - translate: ['translate-x', 'translate-y', 'translate-none'], - 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'], - 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'], - 'scroll-mx': ['scroll-mr', 'scroll-ml'], - 'scroll-my': ['scroll-mt', 'scroll-mb'], - 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'], - 'scroll-px': ['scroll-pr', 'scroll-pl'], - 'scroll-py': ['scroll-pt', 'scroll-pb'], - touch: ['touch-x', 'touch-y', 'touch-pz'], - 'touch-x': ['touch'], - 'touch-y': ['touch'], - 'touch-pz': ['touch'] - }, - conflictingClassGroupModifiers: { - 'font-size': ['leading'] - }, - orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection'] - }; -}; - -/** - * @param baseConfig Config where other config will be merged into. This object will be mutated. - * @param configExtension Partial config to merge into the `baseConfig`. - */ -var mergeConfigs = function mergeConfigs(baseConfig, _ref3) { - var cacheSize = _ref3.cacheSize, - prefix = _ref3.prefix, - experimentalParseClassName = _ref3.experimentalParseClassName, - _ref3$extend = _ref3.extend, - extend = _ref3$extend === void 0 ? {} : _ref3$extend, - _ref3$override = _ref3.override, - override = _ref3$override === void 0 ? {} : _ref3$override; - overrideProperty(baseConfig, 'cacheSize', cacheSize); - overrideProperty(baseConfig, 'prefix', prefix); - overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName); - overrideConfigProperties(baseConfig.theme, override.theme); - overrideConfigProperties(baseConfig.classGroups, override.classGroups); - overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups); - overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers); - overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers); - mergeConfigProperties(baseConfig.theme, extend.theme); - mergeConfigProperties(baseConfig.classGroups, extend.classGroups); - mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups); - mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers); - mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers'); - return baseConfig; -}; -var overrideProperty = function overrideProperty(baseObject, overrideKey, overrideValue) { - if (overrideValue !== undefined) { - baseObject[overrideKey] = overrideValue; - } -}; -var overrideConfigProperties = function overrideConfigProperties(baseObject, overrideObject) { - if (overrideObject) { - for (var key in overrideObject) { - overrideProperty(baseObject, key, overrideObject[key]); - } - } -}; -var mergeConfigProperties = function mergeConfigProperties(baseObject, mergeObject) { - if (mergeObject) { - for (var key in mergeObject) { - mergeArrayProperties(baseObject, mergeObject, key); - } - } -}; -var mergeArrayProperties = function mergeArrayProperties(baseObject, mergeObject, key) { - var mergeValue = mergeObject[key]; - if (mergeValue !== undefined) { - baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue; - } -}; -var extendTailwindMerge = function extendTailwindMerge(configExtension) { - for (var _len2 = arguments.length, createConfig = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - createConfig[_key2 - 1] = arguments[_key2]; - } - return typeof configExtension === 'function' ? createTailwindMerge.apply(void 0, [getDefaultConfig, configExtension].concat(createConfig)) : createTailwindMerge.apply(void 0, [function () { - return mergeConfigs(getDefaultConfig(), configExtension); - }].concat(createConfig)); -}; -var twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig); -exports.createTailwindMerge = createTailwindMerge; -exports.extendTailwindMerge = extendTailwindMerge; -exports.fromTheme = fromTheme; -exports.getDefaultConfig = getDefaultConfig; -exports.mergeConfigs = mergeConfigs; -exports.twJoin = twJoin; -exports.twMerge = twMerge; -exports.validators = validators; -//# sourceMappingURL=bundle-cjs.js.map diff --git a/node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map b/node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map deleted file mode 100644 index 0e29de4..0000000 --- a/node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle-cjs.js","sources":["../../src/src/lib/class-group-utils.ts","../../src/src/lib/lru-cache.ts","../../src/src/lib/parse-class-name.ts","../../src/src/lib/sort-modifiers.ts","../../src/src/lib/config-utils.ts","../../src/src/lib/merge-classlist.ts","../../src/src/lib/tw-join.ts","../../src/src/lib/create-tailwind-merge.ts","../../src/src/lib/from-theme.ts","../../src/src/lib/validators.ts","../../src/src/lib/default-config.ts","../../src/src/lib/merge-configs.ts","../../src/src/lib/extend-tailwind-merge.ts","../../src/src/lib/tw-merge.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","concat","classPartObject","_classPartObject$vali","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","_ref","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","Object","entries","_ref2","key","path","currentClassPartObject","pathPart","has","set","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","value","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","startsWith","isExternal","endsWith","createSortModifiers","orderSensitiveModifiers","fromEntries","map","modifier","sortModifiers","sortedModifiers","unsortedModifiers","isPositionSensitive","apply","sort","createConfigUtils","_extends","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","_parseClassName","variantModifier","modifierId","classId","includes","conflictGroups","i","group","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","_len","createConfigRest","Array","_key","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","callTailwindMerge","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","_ref3","_ref3$extend","extend","_ref3$override","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","extendTailwindMerge","configExtension","_len2","createConfig","_key2","twMerge"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs b/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs deleted file mode 100644 index ed8540c..0000000 --- a/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs +++ /dev/null @@ -1,3185 +0,0 @@ -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } -var CLASS_PART_SEPARATOR = '-'; -var createClassGroupUtils = function createClassGroupUtils(config) { - var classMap = createClassMap(config); - var conflictingClassGroups = config.conflictingClassGroups, - conflictingClassGroupModifiers = config.conflictingClassGroupModifiers; - var getClassGroupId = function getClassGroupId(className) { - var classParts = className.split(CLASS_PART_SEPARATOR); - // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts. - if (classParts[0] === '' && classParts.length !== 1) { - classParts.shift(); - } - return _getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className); - }; - var getConflictingClassGroupIds = function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) { - var conflicts = conflictingClassGroups[classGroupId] || []; - if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) { - return [].concat(conflicts, conflictingClassGroupModifiers[classGroupId]); - } - return conflicts; - }; - return { - getClassGroupId: getClassGroupId, - getConflictingClassGroupIds: getConflictingClassGroupIds - }; -}; -var _getGroupRecursive = function getGroupRecursive(classParts, classPartObject) { - var _classPartObject$vali; - if (classParts.length === 0) { - return classPartObject.classGroupId; - } - var currentClassPart = classParts[0]; - var nextClassPartObject = classPartObject.nextPart.get(currentClassPart); - var classGroupFromNextClassPart = nextClassPartObject ? _getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined; - if (classGroupFromNextClassPart) { - return classGroupFromNextClassPart; - } - if (classPartObject.validators.length === 0) { - return undefined; - } - var classRest = classParts.join(CLASS_PART_SEPARATOR); - return (_classPartObject$vali = classPartObject.validators.find(function (_ref) { - var validator = _ref.validator; - return validator(classRest); - })) == null ? void 0 : _classPartObject$vali.classGroupId; -}; -var arbitraryPropertyRegex = /^\[(.+)\]$/; -var getGroupIdForArbitraryProperty = function getGroupIdForArbitraryProperty(className) { - if (arbitraryPropertyRegex.test(className)) { - var arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1]; - var property = arbitraryPropertyClassName == null ? void 0 : arbitraryPropertyClassName.substring(0, arbitraryPropertyClassName.indexOf(':')); - if (property) { - // I use two dots here because one dot is used as prefix for class groups in plugins - return 'arbitrary..' + property; - } - } -}; -/** - * Exported for testing only - */ -var createClassMap = function createClassMap(config) { - var theme = config.theme, - classGroups = config.classGroups; - var classMap = { - nextPart: new Map(), - validators: [] - }; - for (var classGroupId in classGroups) { - _processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme); - } - return classMap; -}; -var _processClassesRecursively = function processClassesRecursively(classGroup, classPartObject, classGroupId, theme) { - classGroup.forEach(function (classDefinition) { - if (typeof classDefinition === 'string') { - var classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition); - classPartObjectToEdit.classGroupId = classGroupId; - return; - } - if (typeof classDefinition === 'function') { - if (isThemeGetter(classDefinition)) { - _processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme); - return; - } - classPartObject.validators.push({ - validator: classDefinition, - classGroupId: classGroupId - }); - return; - } - Object.entries(classDefinition).forEach(function (_ref2) { - var key = _ref2[0], - classGroup = _ref2[1]; - _processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme); - }); - }); -}; -var getPart = function getPart(classPartObject, path) { - var currentClassPartObject = classPartObject; - path.split(CLASS_PART_SEPARATOR).forEach(function (pathPart) { - if (!currentClassPartObject.nextPart.has(pathPart)) { - currentClassPartObject.nextPart.set(pathPart, { - nextPart: new Map(), - validators: [] - }); - } - currentClassPartObject = currentClassPartObject.nextPart.get(pathPart); - }); - return currentClassPartObject; -}; -var isThemeGetter = function isThemeGetter(func) { - return func.isThemeGetter; -}; - -// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance -var createLruCache = function createLruCache(maxCacheSize) { - if (maxCacheSize < 1) { - return { - get: function get() { - return undefined; - }, - set: function set() {} - }; - } - var cacheSize = 0; - var cache = new Map(); - var previousCache = new Map(); - var update = function update(key, value) { - cache.set(key, value); - cacheSize++; - if (cacheSize > maxCacheSize) { - cacheSize = 0; - previousCache = cache; - cache = new Map(); - } - }; - return { - get: function get(key) { - var value = cache.get(key); - if (value !== undefined) { - return value; - } - if ((value = previousCache.get(key)) !== undefined) { - update(key, value); - return value; - } - }, - set: function set(key, value) { - if (cache.has(key)) { - cache.set(key, value); - } else { - update(key, value); - } - } - }; -}; -var IMPORTANT_MODIFIER = '!'; -var MODIFIER_SEPARATOR = ':'; -var MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length; -var createParseClassName = function createParseClassName(config) { - var prefix = config.prefix, - experimentalParseClassName = config.experimentalParseClassName; - /** - * Parse class name into parts. - * - * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS - * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js - */ - var parseClassName = function parseClassName(className) { - var modifiers = []; - var bracketDepth = 0; - var parenDepth = 0; - var modifierStart = 0; - var postfixModifierPosition; - for (var index = 0; index < className.length; index++) { - var currentCharacter = className[index]; - if (bracketDepth === 0 && parenDepth === 0) { - if (currentCharacter === MODIFIER_SEPARATOR) { - modifiers.push(className.slice(modifierStart, index)); - modifierStart = index + MODIFIER_SEPARATOR_LENGTH; - continue; - } - if (currentCharacter === '/') { - postfixModifierPosition = index; - continue; - } - } - if (currentCharacter === '[') { - bracketDepth++; - } else if (currentCharacter === ']') { - bracketDepth--; - } else if (currentCharacter === '(') { - parenDepth++; - } else if (currentCharacter === ')') { - parenDepth--; - } - } - var baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart); - var baseClassName = stripImportantModifier(baseClassNameWithImportantModifier); - var hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier; - var maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined; - return { - modifiers: modifiers, - hasImportantModifier: hasImportantModifier, - baseClassName: baseClassName, - maybePostfixModifierPosition: maybePostfixModifierPosition - }; - }; - if (prefix) { - var fullPrefix = prefix + MODIFIER_SEPARATOR; - var parseClassNameOriginal = parseClassName; - parseClassName = function parseClassName(className) { - return className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : { - isExternal: true, - modifiers: [], - hasImportantModifier: false, - baseClassName: className, - maybePostfixModifierPosition: undefined - }; - }; - } - if (experimentalParseClassName) { - var _parseClassNameOriginal = parseClassName; - parseClassName = function parseClassName(className) { - return experimentalParseClassName({ - className: className, - parseClassName: _parseClassNameOriginal - }); - }; - } - return parseClassName; -}; -var stripImportantModifier = function stripImportantModifier(baseClassName) { - if (baseClassName.endsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(0, baseClassName.length - 1); - } - /** - * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons. - * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864 - */ - if (baseClassName.startsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(1); - } - return baseClassName; -}; - -/** - * Sorts modifiers according to following schema: - * - Predefined modifiers are sorted alphabetically - * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it - */ -var createSortModifiers = function createSortModifiers(config) { - var orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(function (modifier) { - return [modifier, true]; - })); - var sortModifiers = function sortModifiers(modifiers) { - if (modifiers.length <= 1) { - return modifiers; - } - var sortedModifiers = []; - var unsortedModifiers = []; - modifiers.forEach(function (modifier) { - var isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier]; - if (isPositionSensitive) { - sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort().concat([modifier])); - unsortedModifiers = []; - } else { - unsortedModifiers.push(modifier); - } - }); - sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort()); - return sortedModifiers; - }; - return sortModifiers; -}; -var createConfigUtils = function createConfigUtils(config) { - return _extends({ - cache: createLruCache(config.cacheSize), - parseClassName: createParseClassName(config), - sortModifiers: createSortModifiers(config) - }, createClassGroupUtils(config)); -}; -var SPLIT_CLASSES_REGEX = /\s+/; -var mergeClassList = function mergeClassList(classList, configUtils) { - var parseClassName = configUtils.parseClassName, - getClassGroupId = configUtils.getClassGroupId, - getConflictingClassGroupIds = configUtils.getConflictingClassGroupIds, - sortModifiers = configUtils.sortModifiers; - /** - * Set of classGroupIds in following format: - * `{importantModifier}{variantModifiers}{classGroupId}` - * @example 'float' - * @example 'hover:focus:bg-color' - * @example 'md:!pr' - */ - var classGroupsInConflict = []; - var classNames = classList.trim().split(SPLIT_CLASSES_REGEX); - var result = ''; - for (var index = classNames.length - 1; index >= 0; index -= 1) { - var originalClassName = classNames[index]; - var _parseClassName = parseClassName(originalClassName), - isExternal = _parseClassName.isExternal, - modifiers = _parseClassName.modifiers, - hasImportantModifier = _parseClassName.hasImportantModifier, - baseClassName = _parseClassName.baseClassName, - maybePostfixModifierPosition = _parseClassName.maybePostfixModifierPosition; - if (isExternal) { - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - var hasPostfixModifier = !!maybePostfixModifierPosition; - var classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName); - if (!classGroupId) { - if (!hasPostfixModifier) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - classGroupId = getClassGroupId(baseClassName); - if (!classGroupId) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result); - continue; - } - hasPostfixModifier = false; - } - var variantModifier = sortModifiers(modifiers).join(':'); - var modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier; - var classId = modifierId + classGroupId; - if (classGroupsInConflict.includes(classId)) { - // Tailwind class omitted due to conflict - continue; - } - classGroupsInConflict.push(classId); - var conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier); - for (var i = 0; i < conflictGroups.length; ++i) { - var group = conflictGroups[i]; - classGroupsInConflict.push(modifierId + group); - } - // Tailwind class not in conflict - result = originalClassName + (result.length > 0 ? ' ' + result : result); - } - return result; -}; - -/** - * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better. - * - * Specifically: - * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js - * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts - * - * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com) - */ -function twJoin() { - var index = 0; - var argument; - var resolvedValue; - var string = ''; - while (index < arguments.length) { - if (argument = arguments[index++]) { - if (resolvedValue = _toValue(argument)) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -} -var _toValue = function toValue(mix) { - if (typeof mix === 'string') { - return mix; - } - var resolvedValue; - var string = ''; - for (var k = 0; k < mix.length; k++) { - if (mix[k]) { - if (resolvedValue = _toValue(mix[k])) { - string && (string += ' '); - string += resolvedValue; - } - } - } - return string; -}; -function createTailwindMerge(createConfigFirst) { - for (var _len = arguments.length, createConfigRest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - createConfigRest[_key - 1] = arguments[_key]; - } - var configUtils; - var cacheGet; - var cacheSet; - var functionToCall = initTailwindMerge; - function initTailwindMerge(classList) { - var config = createConfigRest.reduce(function (previousConfig, createConfigCurrent) { - return createConfigCurrent(previousConfig); - }, createConfigFirst()); - configUtils = createConfigUtils(config); - cacheGet = configUtils.cache.get; - cacheSet = configUtils.cache.set; - functionToCall = tailwindMerge; - return tailwindMerge(classList); - } - function tailwindMerge(classList) { - var cachedResult = cacheGet(classList); - if (cachedResult) { - return cachedResult; - } - var result = mergeClassList(classList, configUtils); - cacheSet(classList, result); - return result; - } - return function callTailwindMerge() { - return functionToCall(twJoin.apply(null, arguments)); - }; -} -var fromTheme = function fromTheme(key) { - var themeGetter = function themeGetter(theme) { - return theme[key] || []; - }; - themeGetter.isThemeGetter = true; - return themeGetter; -}; -var arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i; -var arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i; -var fractionRegex = /^\d+\/\d+$/; -var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/; -var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/; -var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/; -// Shadow always begins with x and y offset separated by underscore optionally prepended by inset -var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/; -var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/; -var isFraction = function isFraction(value) { - return fractionRegex.test(value); -}; -var isNumber = function isNumber(value) { - return !!value && !Number.isNaN(Number(value)); -}; -var isInteger = function isInteger(value) { - return !!value && Number.isInteger(Number(value)); -}; -var isPercent = function isPercent(value) { - return value.endsWith('%') && isNumber(value.slice(0, -1)); -}; -var isTshirtSize = function isTshirtSize(value) { - return tshirtUnitRegex.test(value); -}; -var isAny = function isAny() { - return true; -}; -var isLengthOnly = function isLengthOnly(value) { - return ( - // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. - // For example, `hsl(0 0% 0%)` would be classified as a length without this check. - // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. - lengthUnitRegex.test(value) && !colorFunctionRegex.test(value) - ); -}; -var isNever = function isNever() { - return false; -}; -var isShadow = function isShadow(value) { - return shadowRegex.test(value); -}; -var isImage = function isImage(value) { - return imageRegex.test(value); -}; -var isAnyNonArbitrary = function isAnyNonArbitrary(value) { - return !isArbitraryValue(value) && !isArbitraryVariable(value); -}; -var isArbitrarySize = function isArbitrarySize(value) { - return getIsArbitraryValue(value, isLabelSize, isNever); -}; -var isArbitraryValue = function isArbitraryValue(value) { - return arbitraryValueRegex.test(value); -}; -var isArbitraryLength = function isArbitraryLength(value) { - return getIsArbitraryValue(value, isLabelLength, isLengthOnly); -}; -var isArbitraryNumber = function isArbitraryNumber(value) { - return getIsArbitraryValue(value, isLabelNumber, isNumber); -}; -var isArbitraryPosition = function isArbitraryPosition(value) { - return getIsArbitraryValue(value, isLabelPosition, isNever); -}; -var isArbitraryImage = function isArbitraryImage(value) { - return getIsArbitraryValue(value, isLabelImage, isImage); -}; -var isArbitraryShadow = function isArbitraryShadow(value) { - return getIsArbitraryValue(value, isLabelShadow, isShadow); -}; -var isArbitraryVariable = function isArbitraryVariable(value) { - return arbitraryVariableRegex.test(value); -}; -var isArbitraryVariableLength = function isArbitraryVariableLength(value) { - return getIsArbitraryVariable(value, isLabelLength); -}; -var isArbitraryVariableFamilyName = function isArbitraryVariableFamilyName(value) { - return getIsArbitraryVariable(value, isLabelFamilyName); -}; -var isArbitraryVariablePosition = function isArbitraryVariablePosition(value) { - return getIsArbitraryVariable(value, isLabelPosition); -}; -var isArbitraryVariableSize = function isArbitraryVariableSize(value) { - return getIsArbitraryVariable(value, isLabelSize); -}; -var isArbitraryVariableImage = function isArbitraryVariableImage(value) { - return getIsArbitraryVariable(value, isLabelImage); -}; -var isArbitraryVariableShadow = function isArbitraryVariableShadow(value) { - return getIsArbitraryVariable(value, isLabelShadow, true); -}; -// Helpers -var getIsArbitraryValue = function getIsArbitraryValue(value, testLabel, testValue) { - var result = arbitraryValueRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return testValue(result[2]); - } - return false; -}; -var getIsArbitraryVariable = function getIsArbitraryVariable(value, testLabel, shouldMatchNoLabel) { - if (shouldMatchNoLabel === void 0) { - shouldMatchNoLabel = false; - } - var result = arbitraryVariableRegex.exec(value); - if (result) { - if (result[1]) { - return testLabel(result[1]); - } - return shouldMatchNoLabel; - } - return false; -}; -// Labels -var isLabelPosition = function isLabelPosition(label) { - return label === 'position' || label === 'percentage'; -}; -var isLabelImage = function isLabelImage(label) { - return label === 'image' || label === 'url'; -}; -var isLabelSize = function isLabelSize(label) { - return label === 'length' || label === 'size' || label === 'bg-size'; -}; -var isLabelLength = function isLabelLength(label) { - return label === 'length'; -}; -var isLabelNumber = function isLabelNumber(label) { - return label === 'number'; -}; -var isLabelFamilyName = function isLabelFamilyName(label) { - return label === 'family-name'; -}; -var isLabelShadow = function isLabelShadow(label) { - return label === 'shadow'; -}; -var validators = /*#__PURE__*/Object.defineProperty({ - __proto__: null, - isAny: isAny, - isAnyNonArbitrary: isAnyNonArbitrary, - isArbitraryImage: isArbitraryImage, - isArbitraryLength: isArbitraryLength, - isArbitraryNumber: isArbitraryNumber, - isArbitraryPosition: isArbitraryPosition, - isArbitraryShadow: isArbitraryShadow, - isArbitrarySize: isArbitrarySize, - isArbitraryValue: isArbitraryValue, - isArbitraryVariable: isArbitraryVariable, - isArbitraryVariableFamilyName: isArbitraryVariableFamilyName, - isArbitraryVariableImage: isArbitraryVariableImage, - isArbitraryVariableLength: isArbitraryVariableLength, - isArbitraryVariablePosition: isArbitraryVariablePosition, - isArbitraryVariableShadow: isArbitraryVariableShadow, - isArbitraryVariableSize: isArbitraryVariableSize, - isFraction: isFraction, - isInteger: isInteger, - isNumber: isNumber, - isPercent: isPercent, - isTshirtSize: isTshirtSize -}, Symbol.toStringTag, { - value: 'Module' -}); -var getDefaultConfig = function getDefaultConfig() { - /** - * Theme getters for theme variable namespaces - * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces - */ - /***/ - var themeColor = fromTheme('color'); - var themeFont = fromTheme('font'); - var themeText = fromTheme('text'); - var themeFontWeight = fromTheme('font-weight'); - var themeTracking = fromTheme('tracking'); - var themeLeading = fromTheme('leading'); - var themeBreakpoint = fromTheme('breakpoint'); - var themeContainer = fromTheme('container'); - var themeSpacing = fromTheme('spacing'); - var themeRadius = fromTheme('radius'); - var themeShadow = fromTheme('shadow'); - var themeInsetShadow = fromTheme('inset-shadow'); - var themeTextShadow = fromTheme('text-shadow'); - var themeDropShadow = fromTheme('drop-shadow'); - var themeBlur = fromTheme('blur'); - var themePerspective = fromTheme('perspective'); - var themeAspect = fromTheme('aspect'); - var themeEase = fromTheme('ease'); - var themeAnimate = fromTheme('animate'); - /** - * Helpers to avoid repeating the same scales - * - * We use functions that create a new array every time they're called instead of static arrays. - * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config. - */ - /***/ - var scaleBreak = function scaleBreak() { - return ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column']; - }; - var scalePosition = function scalePosition() { - return ['center', 'top', 'bottom', 'left', 'right', 'top-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-top', 'top-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-top', 'bottom-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-bottom', 'bottom-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-bottom']; - }; - var scalePositionWithArbitrary = function scalePositionWithArbitrary() { - return [].concat(scalePosition(), [isArbitraryVariable, isArbitraryValue]); - }; - var scaleOverflow = function scaleOverflow() { - return ['auto', 'hidden', 'clip', 'visible', 'scroll']; - }; - var scaleOverscroll = function scaleOverscroll() { - return ['auto', 'contain', 'none']; - }; - var scaleUnambiguousSpacing = function scaleUnambiguousSpacing() { - return [isArbitraryVariable, isArbitraryValue, themeSpacing]; - }; - var scaleInset = function scaleInset() { - return [isFraction, 'full', 'auto'].concat(scaleUnambiguousSpacing()); - }; - var scaleGridTemplateColsRows = function scaleGridTemplateColsRows() { - return [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue]; - }; - var scaleGridColRowStartAndEnd = function scaleGridColRowStartAndEnd() { - return ['auto', { - span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] - }, isInteger, isArbitraryVariable, isArbitraryValue]; - }; - var scaleGridColRowStartOrEnd = function scaleGridColRowStartOrEnd() { - return [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]; - }; - var scaleGridAutoColsRows = function scaleGridAutoColsRows() { - return ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue]; - }; - var scaleAlignPrimaryAxis = function scaleAlignPrimaryAxis() { - return ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe']; - }; - var scaleAlignSecondaryAxis = function scaleAlignSecondaryAxis() { - return ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe']; - }; - var scaleMargin = function scaleMargin() { - return ['auto'].concat(scaleUnambiguousSpacing()); - }; - var scaleSizing = function scaleSizing() { - return [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit'].concat(scaleUnambiguousSpacing()); - }; - var scaleColor = function scaleColor() { - return [themeColor, isArbitraryVariable, isArbitraryValue]; - }; - var scaleBgPosition = function scaleBgPosition() { - return [].concat(scalePosition(), [isArbitraryVariablePosition, isArbitraryPosition, { - position: [isArbitraryVariable, isArbitraryValue] - }]); - }; - var scaleBgRepeat = function scaleBgRepeat() { - return ['no-repeat', { - repeat: ['', 'x', 'y', 'space', 'round'] - }]; - }; - var scaleBgSize = function scaleBgSize() { - return ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, { - size: [isArbitraryVariable, isArbitraryValue] - }]; - }; - var scaleGradientStopPosition = function scaleGradientStopPosition() { - return [isPercent, isArbitraryVariableLength, isArbitraryLength]; - }; - var scaleRadius = function scaleRadius() { - return [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue]; - }; - var scaleBorderWidth = function scaleBorderWidth() { - return ['', isNumber, isArbitraryVariableLength, isArbitraryLength]; - }; - var scaleLineStyle = function scaleLineStyle() { - return ['solid', 'dashed', 'dotted', 'double']; - }; - var scaleBlendMode = function scaleBlendMode() { - return ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity']; - }; - var scaleMaskImagePosition = function scaleMaskImagePosition() { - return [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition]; - }; - var scaleBlur = function scaleBlur() { - return [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue]; - }; - var scaleRotate = function scaleRotate() { - return ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - }; - var scaleScale = function scaleScale() { - return ['none', isNumber, isArbitraryVariable, isArbitraryValue]; - }; - var scaleSkew = function scaleSkew() { - return [isNumber, isArbitraryVariable, isArbitraryValue]; - }; - var scaleTranslate = function scaleTranslate() { - return [isFraction, 'full'].concat(scaleUnambiguousSpacing()); - }; - return { - cacheSize: 500, - theme: { - animate: ['spin', 'ping', 'pulse', 'bounce'], - aspect: ['video'], - blur: [isTshirtSize], - breakpoint: [isTshirtSize], - color: [isAny], - container: [isTshirtSize], - 'drop-shadow': [isTshirtSize], - ease: ['in', 'out', 'in-out'], - font: [isAnyNonArbitrary], - 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'], - 'inset-shadow': [isTshirtSize], - leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'], - perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'], - radius: [isTshirtSize], - shadow: [isTshirtSize], - spacing: ['px', isNumber], - text: [isTshirtSize], - 'text-shadow': [isTshirtSize], - tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'] - }, - classGroups: { - // -------------- - // --- Layout --- - // -------------- - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - aspect: [{ - aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect] - }], - /** - * Container - * @see https://tailwindcss.com/docs/container - * @deprecated since Tailwind CSS v4.0.0 - */ - container: ['container'], - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - columns: [{ - columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] - }], - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - 'break-after': [{ - 'break-after': scaleBreak() - }], - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - 'break-before': [{ - 'break-before': scaleBreak() - }], - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - 'break-inside': [{ - 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] - }], - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - 'box-decoration': [{ - 'box-decoration': ['slice', 'clone'] - }], - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - box: [{ - box: ['border', 'content'] - }], - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'], - /** - * Screen Reader Only - * @see https://tailwindcss.com/docs/display#screen-reader-only - */ - sr: ['sr-only', 'not-sr-only'], - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - "float": [{ - "float": ['right', 'left', 'none', 'start', 'end'] - }], - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - clear: [{ - clear: ['left', 'right', 'both', 'none', 'start', 'end'] - }], - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - isolation: ['isolate', 'isolation-auto'], - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - 'object-fit': [{ - object: ['contain', 'cover', 'fill', 'none', 'scale-down'] - }], - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - 'object-position': [{ - object: scalePositionWithArbitrary() - }], - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - overflow: [{ - overflow: scaleOverflow() - }], - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-x': [{ - 'overflow-x': scaleOverflow() - }], - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-y': [{ - 'overflow-y': scaleOverflow() - }], - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - overscroll: [{ - overscroll: scaleOverscroll() - }], - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-x': [{ - 'overscroll-x': scaleOverscroll() - }], - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-y': [{ - 'overscroll-y': scaleOverscroll() - }], - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - position: ['static', 'fixed', 'absolute', 'relative', 'sticky'], - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - inset: [{ - inset: scaleInset() - }], - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-x': [{ - 'inset-x': scaleInset() - }], - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-y': [{ - 'inset-y': scaleInset() - }], - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - start: [{ - start: scaleInset() - }], - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - end: [{ - end: scaleInset() - }], - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - top: [{ - top: scaleInset() - }], - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - right: [{ - right: scaleInset() - }], - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - bottom: [{ - bottom: scaleInset() - }], - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - left: [{ - left: scaleInset() - }], - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - visibility: ['visible', 'invisible', 'collapse'], - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - z: [{ - z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] - }], - // ------------------------ - // --- Flexbox and Grid --- - // ------------------------ - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - basis: [{ - basis: [isFraction, 'full', 'auto', themeContainer].concat(scaleUnambiguousSpacing()) - }], - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - 'flex-direction': [{ - flex: ['row', 'row-reverse', 'col', 'col-reverse'] - }], - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - 'flex-wrap': [{ - flex: ['nowrap', 'wrap', 'wrap-reverse'] - }], - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - flex: [{ - flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] - }], - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - grow: [{ - grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - shrink: [{ - shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - order: [{ - order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - 'grid-cols': [{ - 'grid-cols': scaleGridTemplateColsRows() - }], - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start-end': [{ - col: scaleGridColRowStartAndEnd() - }], - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start': [{ - 'col-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-end': [{ - 'col-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - 'grid-rows': [{ - 'grid-rows': scaleGridTemplateColsRows() - }], - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start-end': [{ - row: scaleGridColRowStartAndEnd() - }], - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start': [{ - 'row-start': scaleGridColRowStartOrEnd() - }], - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-end': [{ - 'row-end': scaleGridColRowStartOrEnd() - }], - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - 'grid-flow': [{ - 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] - }], - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - 'auto-cols': [{ - 'auto-cols': scaleGridAutoColsRows() - }], - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - 'auto-rows': [{ - 'auto-rows': scaleGridAutoColsRows() - }], - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - gap: [{ - gap: scaleUnambiguousSpacing() - }], - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - 'gap-x': [{ - 'gap-x': scaleUnambiguousSpacing() - }], - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - 'gap-y': [{ - 'gap-y': scaleUnambiguousSpacing() - }], - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - 'justify-content': [{ - justify: [].concat(scaleAlignPrimaryAxis(), ['normal']) - }], - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - 'justify-items': [{ - 'justify-items': [].concat(scaleAlignSecondaryAxis(), ['normal']) - }], - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - 'justify-self': [{ - 'justify-self': ['auto'].concat(scaleAlignSecondaryAxis()) - }], - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - 'align-content': [{ - content: ['normal'].concat(scaleAlignPrimaryAxis()) - }], - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - 'align-items': [{ - items: [].concat(scaleAlignSecondaryAxis(), [{ - baseline: ['', 'last'] - }]) - }], - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - 'align-self': [{ - self: ['auto'].concat(scaleAlignSecondaryAxis(), [{ - baseline: ['', 'last'] - }]) - }], - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - 'place-content': [{ - 'place-content': scaleAlignPrimaryAxis() - }], - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - 'place-items': [{ - 'place-items': [].concat(scaleAlignSecondaryAxis(), ['baseline']) - }], - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - 'place-self': [{ - 'place-self': ['auto'].concat(scaleAlignSecondaryAxis()) - }], - // Spacing - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - p: [{ - p: scaleUnambiguousSpacing() - }], - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - px: [{ - px: scaleUnambiguousSpacing() - }], - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - py: [{ - py: scaleUnambiguousSpacing() - }], - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - ps: [{ - ps: scaleUnambiguousSpacing() - }], - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - pe: [{ - pe: scaleUnambiguousSpacing() - }], - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - pt: [{ - pt: scaleUnambiguousSpacing() - }], - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - pr: [{ - pr: scaleUnambiguousSpacing() - }], - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - pb: [{ - pb: scaleUnambiguousSpacing() - }], - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - pl: [{ - pl: scaleUnambiguousSpacing() - }], - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - m: [{ - m: scaleMargin() - }], - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - mx: [{ - mx: scaleMargin() - }], - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - my: [{ - my: scaleMargin() - }], - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - ms: [{ - ms: scaleMargin() - }], - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - me: [{ - me: scaleMargin() - }], - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - mt: [{ - mt: scaleMargin() - }], - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - mr: [{ - mr: scaleMargin() - }], - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - mb: [{ - mb: scaleMargin() - }], - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - ml: [{ - ml: scaleMargin() - }], - /** - * Space Between X - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x': [{ - 'space-x': scaleUnambiguousSpacing() - }], - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x-reverse': ['space-x-reverse'], - /** - * Space Between Y - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y': [{ - 'space-y': scaleUnambiguousSpacing() - }], - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y-reverse': ['space-y-reverse'], - // -------------- - // --- Sizing --- - // -------------- - /** - * Size - * @see https://tailwindcss.com/docs/width#setting-both-width-and-height - */ - size: [{ - size: scaleSizing() - }], - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - w: [{ - w: [themeContainer, 'screen'].concat(scaleSizing()) - }], - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - 'min-w': [{ - 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'none'].concat(scaleSizing()) - }], - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - 'max-w': [{ - 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - { - screen: [themeBreakpoint] - }].concat(scaleSizing()) - }], - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - h: [{ - h: ['screen', 'lh'].concat(scaleSizing()) - }], - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - 'min-h': [{ - 'min-h': ['screen', 'lh', 'none'].concat(scaleSizing()) - }], - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - 'max-h': [{ - 'max-h': ['screen', 'lh'].concat(scaleSizing()) - }], - // ------------------ - // --- Typography --- - // ------------------ - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - 'font-size': [{ - text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - 'font-smoothing': ['antialiased', 'subpixel-antialiased'], - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - 'font-style': ['italic', 'not-italic'], - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - 'font-weight': [{ - font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] - }], - /** - * Font Stretch - * @see https://tailwindcss.com/docs/font-stretch - */ - 'font-stretch': [{ - 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue] - }], - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - 'font-family': [{ - font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] - }], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-normal': ['normal-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-ordinal': ['ordinal'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-slashed-zero': ['slashed-zero'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-figure': ['lining-nums', 'oldstyle-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-spacing': ['proportional-nums', 'tabular-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'], - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - tracking: [{ - tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] - }], - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - 'line-clamp': [{ - 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] - }], - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - leading: [{ - leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - themeLeading].concat(scaleUnambiguousSpacing()) - }], - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - 'list-image': [{ - 'list-image': ['none', isArbitraryVariable, isArbitraryValue] - }], - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - 'list-style-position': [{ - list: ['inside', 'outside'] - }], - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - 'list-style-type': [{ - list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - 'text-alignment': [{ - text: ['left', 'center', 'right', 'justify', 'start', 'end'] - }], - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://v3.tailwindcss.com/docs/placeholder-color - */ - 'placeholder-color': [{ - placeholder: scaleColor() - }], - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - 'text-color': [{ - text: scaleColor() - }], - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'], - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - 'text-decoration-style': [{ - decoration: [].concat(scaleLineStyle(), ['wavy']) - }], - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - 'text-decoration-thickness': [{ - decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength] - }], - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - 'text-decoration-color': [{ - decoration: scaleColor() - }], - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - 'underline-offset': [{ - 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] - }], - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'], - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'], - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - 'text-wrap': [{ - text: ['wrap', 'nowrap', 'balance', 'pretty'] - }], - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - indent: [{ - indent: scaleUnambiguousSpacing() - }], - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - 'vertical-align': [{ - align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue] - }], - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - whitespace: [{ - whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] - }], - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - "break": [{ - "break": ['normal', 'words', 'all', 'keep'] - }], - /** - * Overflow Wrap - * @see https://tailwindcss.com/docs/overflow-wrap - */ - wrap: [{ - wrap: ['break-word', 'anywhere', 'normal'] - }], - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - hyphens: [{ - hyphens: ['none', 'manual', 'auto'] - }], - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - content: [{ - content: ['none', isArbitraryVariable, isArbitraryValue] - }], - // ------------------- - // --- Backgrounds --- - // ------------------- - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - 'bg-attachment': [{ - bg: ['fixed', 'local', 'scroll'] - }], - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - 'bg-clip': [{ - 'bg-clip': ['border', 'padding', 'content', 'text'] - }], - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - 'bg-origin': [{ - 'bg-origin': ['border', 'padding', 'content'] - }], - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - 'bg-position': [{ - bg: scaleBgPosition() - }], - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - 'bg-repeat': [{ - bg: scaleBgRepeat() - }], - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - 'bg-size': [{ - bg: scaleBgSize() - }], - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - 'bg-image': [{ - bg: ['none', { - linear: [{ - to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] - }, isInteger, isArbitraryVariable, isArbitraryValue], - radial: ['', isArbitraryVariable, isArbitraryValue], - conic: [isInteger, isArbitraryVariable, isArbitraryValue] - }, isArbitraryVariableImage, isArbitraryImage] - }], - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - 'bg-color': [{ - bg: scaleColor() - }], - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from-pos': [{ - from: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via-pos': [{ - via: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to-pos': [{ - to: scaleGradientStopPosition() - }], - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from': [{ - from: scaleColor() - }], - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via': [{ - via: scaleColor() - }], - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to': [{ - to: scaleColor() - }], - // --------------- - // --- Borders --- - // --------------- - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - rounded: [{ - rounded: scaleRadius() - }], - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-s': [{ - 'rounded-s': scaleRadius() - }], - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-e': [{ - 'rounded-e': scaleRadius() - }], - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-t': [{ - 'rounded-t': scaleRadius() - }], - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-r': [{ - 'rounded-r': scaleRadius() - }], - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-b': [{ - 'rounded-b': scaleRadius() - }], - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-l': [{ - 'rounded-l': scaleRadius() - }], - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ss': [{ - 'rounded-ss': scaleRadius() - }], - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-se': [{ - 'rounded-se': scaleRadius() - }], - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ee': [{ - 'rounded-ee': scaleRadius() - }], - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-es': [{ - 'rounded-es': scaleRadius() - }], - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tl': [{ - 'rounded-tl': scaleRadius() - }], - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tr': [{ - 'rounded-tr': scaleRadius() - }], - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-br': [{ - 'rounded-br': scaleRadius() - }], - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-bl': [{ - 'rounded-bl': scaleRadius() - }], - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w': [{ - border: scaleBorderWidth() - }], - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-x': [{ - 'border-x': scaleBorderWidth() - }], - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-y': [{ - 'border-y': scaleBorderWidth() - }], - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-s': [{ - 'border-s': scaleBorderWidth() - }], - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-e': [{ - 'border-e': scaleBorderWidth() - }], - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-t': [{ - 'border-t': scaleBorderWidth() - }], - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-r': [{ - 'border-r': scaleBorderWidth() - }], - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-b': [{ - 'border-b': scaleBorderWidth() - }], - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-l': [{ - 'border-l': scaleBorderWidth() - }], - /** - * Divide Width X - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x': [{ - 'divide-x': scaleBorderWidth() - }], - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x-reverse': ['divide-x-reverse'], - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y': [{ - 'divide-y': scaleBorderWidth() - }], - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y-reverse': ['divide-y-reverse'], - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - 'border-style': [{ - border: [].concat(scaleLineStyle(), ['hidden', 'none']) - }], - /** - * Divide Style - * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style - */ - 'divide-style': [{ - divide: [].concat(scaleLineStyle(), ['hidden', 'none']) - }], - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color': [{ - border: scaleColor() - }], - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-x': [{ - 'border-x': scaleColor() - }], - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-y': [{ - 'border-y': scaleColor() - }], - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-s': [{ - 'border-s': scaleColor() - }], - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-e': [{ - 'border-e': scaleColor() - }], - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-t': [{ - 'border-t': scaleColor() - }], - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-r': [{ - 'border-r': scaleColor() - }], - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-b': [{ - 'border-b': scaleColor() - }], - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-l': [{ - 'border-l': scaleColor() - }], - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - 'divide-color': [{ - divide: scaleColor() - }], - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - 'outline-style': [{ - outline: [].concat(scaleLineStyle(), ['none', 'hidden']) - }], - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - 'outline-offset': [{ - 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - 'outline-w': [{ - outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] - }], - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - 'outline-color': [{ - outline: scaleColor() - }], - // --------------- - // --- Effects --- - // --------------- - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - shadow: [{ - shadow: [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color - */ - 'shadow-color': [{ - shadow: scaleColor() - }], - /** - * Inset Box Shadow - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow - */ - 'inset-shadow': [{ - 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Inset Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color - */ - 'inset-shadow-color': [{ - 'inset-shadow': scaleColor() - }], - /** - * Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring - */ - 'ring-w': [{ - ring: scaleBorderWidth() - }], - /** - * Ring Width Inset - * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-w-inset': ['ring-inset'], - /** - * Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color - */ - 'ring-color': [{ - ring: scaleColor() - }], - /** - * Ring Offset Width - * @see https://v3.tailwindcss.com/docs/ring-offset-width - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-w': [{ - 'ring-offset': [isNumber, isArbitraryLength] - }], - /** - * Ring Offset Color - * @see https://v3.tailwindcss.com/docs/ring-offset-color - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-color': [{ - 'ring-offset': scaleColor() - }], - /** - * Inset Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring - */ - 'inset-ring-w': [{ - 'inset-ring': scaleBorderWidth() - }], - /** - * Inset Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color - */ - 'inset-ring-color': [{ - 'inset-ring': scaleColor() - }], - /** - * Text Shadow - * @see https://tailwindcss.com/docs/text-shadow - */ - 'text-shadow': [{ - 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Text Shadow Color - * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color - */ - 'text-shadow-color': [{ - 'text-shadow': scaleColor() - }], - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - opacity: [{ - opacity: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - 'mix-blend': [{ - 'mix-blend': [].concat(scaleBlendMode(), ['plus-darker', 'plus-lighter']) - }], - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - 'bg-blend': [{ - 'bg-blend': scaleBlendMode() - }], - /** - * Mask Clip - * @see https://tailwindcss.com/docs/mask-clip - */ - 'mask-clip': [{ - 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }, 'mask-no-clip'], - /** - * Mask Composite - * @see https://tailwindcss.com/docs/mask-composite - */ - 'mask-composite': [{ - mask: ['add', 'subtract', 'intersect', 'exclude'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image-linear-pos': [{ - 'mask-linear': [isNumber] - }], - 'mask-image-linear-from-pos': [{ - 'mask-linear-from': scaleMaskImagePosition() - }], - 'mask-image-linear-to-pos': [{ - 'mask-linear-to': scaleMaskImagePosition() - }], - 'mask-image-linear-from-color': [{ - 'mask-linear-from': scaleColor() - }], - 'mask-image-linear-to-color': [{ - 'mask-linear-to': scaleColor() - }], - 'mask-image-t-from-pos': [{ - 'mask-t-from': scaleMaskImagePosition() - }], - 'mask-image-t-to-pos': [{ - 'mask-t-to': scaleMaskImagePosition() - }], - 'mask-image-t-from-color': [{ - 'mask-t-from': scaleColor() - }], - 'mask-image-t-to-color': [{ - 'mask-t-to': scaleColor() - }], - 'mask-image-r-from-pos': [{ - 'mask-r-from': scaleMaskImagePosition() - }], - 'mask-image-r-to-pos': [{ - 'mask-r-to': scaleMaskImagePosition() - }], - 'mask-image-r-from-color': [{ - 'mask-r-from': scaleColor() - }], - 'mask-image-r-to-color': [{ - 'mask-r-to': scaleColor() - }], - 'mask-image-b-from-pos': [{ - 'mask-b-from': scaleMaskImagePosition() - }], - 'mask-image-b-to-pos': [{ - 'mask-b-to': scaleMaskImagePosition() - }], - 'mask-image-b-from-color': [{ - 'mask-b-from': scaleColor() - }], - 'mask-image-b-to-color': [{ - 'mask-b-to': scaleColor() - }], - 'mask-image-l-from-pos': [{ - 'mask-l-from': scaleMaskImagePosition() - }], - 'mask-image-l-to-pos': [{ - 'mask-l-to': scaleMaskImagePosition() - }], - 'mask-image-l-from-color': [{ - 'mask-l-from': scaleColor() - }], - 'mask-image-l-to-color': [{ - 'mask-l-to': scaleColor() - }], - 'mask-image-x-from-pos': [{ - 'mask-x-from': scaleMaskImagePosition() - }], - 'mask-image-x-to-pos': [{ - 'mask-x-to': scaleMaskImagePosition() - }], - 'mask-image-x-from-color': [{ - 'mask-x-from': scaleColor() - }], - 'mask-image-x-to-color': [{ - 'mask-x-to': scaleColor() - }], - 'mask-image-y-from-pos': [{ - 'mask-y-from': scaleMaskImagePosition() - }], - 'mask-image-y-to-pos': [{ - 'mask-y-to': scaleMaskImagePosition() - }], - 'mask-image-y-from-color': [{ - 'mask-y-from': scaleColor() - }], - 'mask-image-y-to-color': [{ - 'mask-y-to': scaleColor() - }], - 'mask-image-radial': [{ - 'mask-radial': [isArbitraryVariable, isArbitraryValue] - }], - 'mask-image-radial-from-pos': [{ - 'mask-radial-from': scaleMaskImagePosition() - }], - 'mask-image-radial-to-pos': [{ - 'mask-radial-to': scaleMaskImagePosition() - }], - 'mask-image-radial-from-color': [{ - 'mask-radial-from': scaleColor() - }], - 'mask-image-radial-to-color': [{ - 'mask-radial-to': scaleColor() - }], - 'mask-image-radial-shape': [{ - 'mask-radial': ['circle', 'ellipse'] - }], - 'mask-image-radial-size': [{ - 'mask-radial': [{ - closest: ['side', 'corner'], - farthest: ['side', 'corner'] - }] - }], - 'mask-image-radial-pos': [{ - 'mask-radial-at': scalePosition() - }], - 'mask-image-conic-pos': [{ - 'mask-conic': [isNumber] - }], - 'mask-image-conic-from-pos': [{ - 'mask-conic-from': scaleMaskImagePosition() - }], - 'mask-image-conic-to-pos': [{ - 'mask-conic-to': scaleMaskImagePosition() - }], - 'mask-image-conic-from-color': [{ - 'mask-conic-from': scaleColor() - }], - 'mask-image-conic-to-color': [{ - 'mask-conic-to': scaleColor() - }], - /** - * Mask Mode - * @see https://tailwindcss.com/docs/mask-mode - */ - 'mask-mode': [{ - mask: ['alpha', 'luminance', 'match'] - }], - /** - * Mask Origin - * @see https://tailwindcss.com/docs/mask-origin - */ - 'mask-origin': [{ - 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] - }], - /** - * Mask Position - * @see https://tailwindcss.com/docs/mask-position - */ - 'mask-position': [{ - mask: scaleBgPosition() - }], - /** - * Mask Repeat - * @see https://tailwindcss.com/docs/mask-repeat - */ - 'mask-repeat': [{ - mask: scaleBgRepeat() - }], - /** - * Mask Size - * @see https://tailwindcss.com/docs/mask-size - */ - 'mask-size': [{ - mask: scaleBgSize() - }], - /** - * Mask Type - * @see https://tailwindcss.com/docs/mask-type - */ - 'mask-type': [{ - 'mask-type': ['alpha', 'luminance'] - }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image': [{ - mask: ['none', isArbitraryVariable, isArbitraryValue] - }], - // --------------- - // --- Filters --- - // --------------- - /** - * Filter - * @see https://tailwindcss.com/docs/filter - */ - filter: [{ - filter: [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - blur: [{ - blur: scaleBlur() - }], - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - brightness: [{ - brightness: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - contrast: [{ - contrast: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - 'drop-shadow': [{ - 'drop-shadow': [ - // Deprecated since Tailwind CSS v4.0.0 - '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow] - }], - /** - * Drop Shadow Color - * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color - */ - 'drop-shadow-color': [{ - 'drop-shadow': scaleColor() - }], - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - grayscale: [{ - grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - 'hue-rotate': [{ - 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - invert: [{ - invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - saturate: [{ - saturate: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - sepia: [{ - sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Filter - * @see https://tailwindcss.com/docs/backdrop-filter - */ - 'backdrop-filter': [{ - 'backdrop-filter': [ - // Deprecated since Tailwind CSS v3.0.0 - '', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - 'backdrop-blur': [{ - 'backdrop-blur': scaleBlur() - }], - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - 'backdrop-brightness': [{ - 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - 'backdrop-contrast': [{ - 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - 'backdrop-grayscale': [{ - 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - 'backdrop-hue-rotate': [{ - 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - 'backdrop-invert': [{ - 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - 'backdrop-opacity': [{ - 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - 'backdrop-saturate': [{ - 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - 'backdrop-sepia': [{ - 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] - }], - // -------------- - // --- Tables --- - // -------------- - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - 'border-collapse': [{ - border: ['collapse', 'separate'] - }], - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing': [{ - 'border-spacing': scaleUnambiguousSpacing() - }], - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-x': [{ - 'border-spacing-x': scaleUnambiguousSpacing() - }], - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-y': [{ - 'border-spacing-y': scaleUnambiguousSpacing() - }], - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - 'table-layout': [{ - table: ['auto', 'fixed'] - }], - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - caption: [{ - caption: ['top', 'bottom'] - }], - // --------------------------------- - // --- Transitions and Animation --- - // --------------------------------- - /** - * Transition Property - * @see https://tailwindcss.com/docs/transition-property - */ - transition: [{ - transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Behavior - * @see https://tailwindcss.com/docs/transition-behavior - */ - 'transition-behavior': [{ - transition: ['normal', 'discrete'] - }], - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - duration: [{ - duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - ease: [{ - ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] - }], - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - delay: [{ - delay: [isNumber, isArbitraryVariable, isArbitraryValue] - }], - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - animate: [{ - animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] - }], - // ------------------ - // --- Transforms --- - // ------------------ - /** - * Backface Visibility - * @see https://tailwindcss.com/docs/backface-visibility - */ - backface: [{ - backface: ['hidden', 'visible'] - }], - /** - * Perspective - * @see https://tailwindcss.com/docs/perspective - */ - perspective: [{ - perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] - }], - /** - * Perspective Origin - * @see https://tailwindcss.com/docs/perspective-origin - */ - 'perspective-origin': [{ - 'perspective-origin': scalePositionWithArbitrary() - }], - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - rotate: [{ - rotate: scaleRotate() - }], - /** - * Rotate X - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-x': [{ - 'rotate-x': scaleRotate() - }], - /** - * Rotate Y - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-y': [{ - 'rotate-y': scaleRotate() - }], - /** - * Rotate Z - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-z': [{ - 'rotate-z': scaleRotate() - }], - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - scale: [{ - scale: scaleScale() - }], - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - 'scale-x': [{ - 'scale-x': scaleScale() - }], - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - 'scale-y': [{ - 'scale-y': scaleScale() - }], - /** - * Scale Z - * @see https://tailwindcss.com/docs/scale - */ - 'scale-z': [{ - 'scale-z': scaleScale() - }], - /** - * Scale 3D - * @see https://tailwindcss.com/docs/scale - */ - 'scale-3d': ['scale-3d'], - /** - * Skew - * @see https://tailwindcss.com/docs/skew - */ - skew: [{ - skew: scaleSkew() - }], - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - 'skew-x': [{ - 'skew-x': scaleSkew() - }], - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - 'skew-y': [{ - 'skew-y': scaleSkew() - }], - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - transform: [{ - transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] - }], - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - 'transform-origin': [{ - origin: scalePositionWithArbitrary() - }], - /** - * Transform Style - * @see https://tailwindcss.com/docs/transform-style - */ - 'transform-style': [{ - transform: ['3d', 'flat'] - }], - /** - * Translate - * @see https://tailwindcss.com/docs/translate - */ - translate: [{ - translate: scaleTranslate() - }], - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - 'translate-x': [{ - 'translate-x': scaleTranslate() - }], - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - 'translate-y': [{ - 'translate-y': scaleTranslate() - }], - /** - * Translate Z - * @see https://tailwindcss.com/docs/translate - */ - 'translate-z': [{ - 'translate-z': scaleTranslate() - }], - /** - * Translate None - * @see https://tailwindcss.com/docs/translate - */ - 'translate-none': ['translate-none'], - // --------------------- - // --- Interactivity --- - // --------------------- - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - accent: [{ - accent: scaleColor() - }], - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - appearance: [{ - appearance: ['none', 'auto'] - }], - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - 'caret-color': [{ - caret: scaleColor() - }], - /** - * Color Scheme - * @see https://tailwindcss.com/docs/color-scheme - */ - 'color-scheme': [{ - scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] - }], - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - cursor: [{ - cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue] - }], - /** - * Field Sizing - * @see https://tailwindcss.com/docs/field-sizing - */ - 'field-sizing': [{ - 'field-sizing': ['fixed', 'content'] - }], - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - 'pointer-events': [{ - 'pointer-events': ['auto', 'none'] - }], - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - resize: [{ - resize: ['none', '', 'y', 'x'] - }], - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - 'scroll-behavior': [{ - scroll: ['auto', 'smooth'] - }], - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-m': [{ - 'scroll-m': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mx': [{ - 'scroll-mx': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-my': [{ - 'scroll-my': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ms': [{ - 'scroll-ms': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-me': [{ - 'scroll-me': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mt': [{ - 'scroll-mt': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mr': [{ - 'scroll-mr': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mb': [{ - 'scroll-mb': scaleUnambiguousSpacing() - }], - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ml': [{ - 'scroll-ml': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-p': [{ - 'scroll-p': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-px': [{ - 'scroll-px': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-py': [{ - 'scroll-py': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-ps': [{ - 'scroll-ps': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pe': [{ - 'scroll-pe': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pt': [{ - 'scroll-pt': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pr': [{ - 'scroll-pr': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pb': [{ - 'scroll-pb': scaleUnambiguousSpacing() - }], - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pl': [{ - 'scroll-pl': scaleUnambiguousSpacing() - }], - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - 'snap-align': [{ - snap: ['start', 'end', 'center', 'align-none'] - }], - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - 'snap-stop': [{ - snap: ['normal', 'always'] - }], - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-type': [{ - snap: ['none', 'x', 'y', 'both'] - }], - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-strictness': [{ - snap: ['mandatory', 'proximity'] - }], - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - touch: [{ - touch: ['auto', 'none', 'manipulation'] - }], - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-x': [{ - 'touch-pan': ['x', 'left', 'right'] - }], - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-y': [{ - 'touch-pan': ['y', 'up', 'down'] - }], - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-pz': ['touch-pinch-zoom'], - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - select: [{ - select: ['none', 'text', 'all', 'auto'] - }], - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - 'will-change': [{ - 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue] - }], - // ----------- - // --- SVG --- - // ----------- - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - fill: [{ - fill: ['none'].concat(scaleColor()) - }], - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - 'stroke-w': [{ - stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber] - }], - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - stroke: [{ - stroke: ['none'].concat(scaleColor()) - }], - // --------------------- - // --- Accessibility --- - // --------------------- - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - 'forced-color-adjust': [{ - 'forced-color-adjust': ['auto', 'none'] - }] - }, - conflictingClassGroups: { - overflow: ['overflow-x', 'overflow-y'], - overscroll: ['overscroll-x', 'overscroll-y'], - inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'], - 'inset-x': ['right', 'left'], - 'inset-y': ['top', 'bottom'], - flex: ['basis', 'grow', 'shrink'], - gap: ['gap-x', 'gap-y'], - p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'], - px: ['pr', 'pl'], - py: ['pt', 'pb'], - m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'], - mx: ['mr', 'ml'], - my: ['mt', 'mb'], - size: ['w', 'h'], - 'font-size': ['leading'], - 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'], - 'fvn-ordinal': ['fvn-normal'], - 'fvn-slashed-zero': ['fvn-normal'], - 'fvn-figure': ['fvn-normal'], - 'fvn-spacing': ['fvn-normal'], - 'fvn-fraction': ['fvn-normal'], - 'line-clamp': ['display', 'overflow'], - rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'], - 'rounded-s': ['rounded-ss', 'rounded-es'], - 'rounded-e': ['rounded-se', 'rounded-ee'], - 'rounded-t': ['rounded-tl', 'rounded-tr'], - 'rounded-r': ['rounded-tr', 'rounded-br'], - 'rounded-b': ['rounded-br', 'rounded-bl'], - 'rounded-l': ['rounded-tl', 'rounded-bl'], - 'border-spacing': ['border-spacing-x', 'border-spacing-y'], - 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'], - 'border-w-x': ['border-w-r', 'border-w-l'], - 'border-w-y': ['border-w-t', 'border-w-b'], - 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'], - 'border-color-x': ['border-color-r', 'border-color-l'], - 'border-color-y': ['border-color-t', 'border-color-b'], - translate: ['translate-x', 'translate-y', 'translate-none'], - 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'], - 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'], - 'scroll-mx': ['scroll-mr', 'scroll-ml'], - 'scroll-my': ['scroll-mt', 'scroll-mb'], - 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'], - 'scroll-px': ['scroll-pr', 'scroll-pl'], - 'scroll-py': ['scroll-pt', 'scroll-pb'], - touch: ['touch-x', 'touch-y', 'touch-pz'], - 'touch-x': ['touch'], - 'touch-y': ['touch'], - 'touch-pz': ['touch'] - }, - conflictingClassGroupModifiers: { - 'font-size': ['leading'] - }, - orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection'] - }; -}; - -/** - * @param baseConfig Config where other config will be merged into. This object will be mutated. - * @param configExtension Partial config to merge into the `baseConfig`. - */ -var mergeConfigs = function mergeConfigs(baseConfig, _ref3) { - var cacheSize = _ref3.cacheSize, - prefix = _ref3.prefix, - experimentalParseClassName = _ref3.experimentalParseClassName, - _ref3$extend = _ref3.extend, - extend = _ref3$extend === void 0 ? {} : _ref3$extend, - _ref3$override = _ref3.override, - override = _ref3$override === void 0 ? {} : _ref3$override; - overrideProperty(baseConfig, 'cacheSize', cacheSize); - overrideProperty(baseConfig, 'prefix', prefix); - overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName); - overrideConfigProperties(baseConfig.theme, override.theme); - overrideConfigProperties(baseConfig.classGroups, override.classGroups); - overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups); - overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers); - overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers); - mergeConfigProperties(baseConfig.theme, extend.theme); - mergeConfigProperties(baseConfig.classGroups, extend.classGroups); - mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups); - mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers); - mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers'); - return baseConfig; -}; -var overrideProperty = function overrideProperty(baseObject, overrideKey, overrideValue) { - if (overrideValue !== undefined) { - baseObject[overrideKey] = overrideValue; - } -}; -var overrideConfigProperties = function overrideConfigProperties(baseObject, overrideObject) { - if (overrideObject) { - for (var key in overrideObject) { - overrideProperty(baseObject, key, overrideObject[key]); - } - } -}; -var mergeConfigProperties = function mergeConfigProperties(baseObject, mergeObject) { - if (mergeObject) { - for (var key in mergeObject) { - mergeArrayProperties(baseObject, mergeObject, key); - } - } -}; -var mergeArrayProperties = function mergeArrayProperties(baseObject, mergeObject, key) { - var mergeValue = mergeObject[key]; - if (mergeValue !== undefined) { - baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue; - } -}; -var extendTailwindMerge = function extendTailwindMerge(configExtension) { - for (var _len2 = arguments.length, createConfig = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - createConfig[_key2 - 1] = arguments[_key2]; - } - return typeof configExtension === 'function' ? createTailwindMerge.apply(void 0, [getDefaultConfig, configExtension].concat(createConfig)) : createTailwindMerge.apply(void 0, [function () { - return mergeConfigs(getDefaultConfig(), configExtension); - }].concat(createConfig)); -}; -var twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig); -export { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators }; -//# sourceMappingURL=bundle-mjs.mjs.map diff --git a/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map b/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map deleted file mode 100644 index 43bd132..0000000 --- a/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bundle-mjs.mjs","sources":["../../src/src/lib/class-group-utils.ts","../../src/src/lib/lru-cache.ts","../../src/src/lib/parse-class-name.ts","../../src/src/lib/sort-modifiers.ts","../../src/src/lib/config-utils.ts","../../src/src/lib/merge-classlist.ts","../../src/src/lib/tw-join.ts","../../src/src/lib/create-tailwind-merge.ts","../../src/src/lib/from-theme.ts","../../src/src/lib/validators.ts","../../src/src/lib/default-config.ts","../../src/src/lib/merge-configs.ts","../../src/src/lib/extend-tailwind-merge.ts","../../src/src/lib/tw-merge.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","length","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","concat","classPartObject","_classPartObject$vali","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","_ref","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","Object","entries","_ref2","key","path","currentClassPartObject","pathPart","has","set","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","value","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","startsWith","isExternal","endsWith","createSortModifiers","orderSensitiveModifiers","fromEntries","map","modifier","sortModifiers","sortedModifiers","unsortedModifiers","isPositionSensitive","apply","sort","createConfigUtils","_extends","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","_parseClassName","variantModifier","modifierId","classId","includes","conflictGroups","i","group","twJoin","argument","resolvedValue","string","arguments","toValue","mix","k","createTailwindMerge","createConfigFirst","_len","createConfigRest","Array","_key","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","callTailwindMerge","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","content","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","_ref3","_ref3$extend","extend","_ref3$override","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","extendTailwindMerge","configExtension","_len2","createConfig","_key2","twMerge"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/tailwind-merge/dist/types.d.ts b/node_modules/tailwind-merge/dist/types.d.ts deleted file mode 100644 index d109f2c..0000000 --- a/node_modules/tailwind-merge/dist/types.d.ts +++ /dev/null @@ -1,2630 +0,0 @@ -/** - * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better. - * - * Specifically: - * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js - * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts - * - * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com) - */ -type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false; -type ClassNameArray = ClassNameValue[]; -declare function twJoin(...classLists: ClassNameValue[]): string; - -/** - * Type the tailwind-merge configuration adheres to. - */ -interface Config extends ConfigStaticPart, ConfigGroupsPart { -} -/** - * The static part of the tailwind-merge configuration. When merging multiple configurations, the properties of this interface are always overridden. - */ -interface ConfigStaticPart { - /** - * Integer indicating size of LRU cache used for memoizing results. - * - Cache might be up to twice as big as `cacheSize` - * - No cache is used for values <= 0 - */ - cacheSize: number; - /** - * Prefix added to Tailwind-generated classes - * @see https://tailwindcss.com/docs/configuration#prefix - */ - prefix?: string; - /** - * Allows to customize parsing of individual classes passed to `twMerge`. - * All classes passed to `twMerge` outside of cache hits are passed to this function before it is determined whether the class is a valid Tailwind CSS class. - * - * This is an experimental feature and may introduce breaking changes in any minor version update. - */ - experimentalParseClassName?(param: ExperimentalParseClassNameParam): ParsedClassName; -} -/** - * Type of param passed to the `experimentalParseClassName` function. - * - * This is an experimental feature and may introduce breaking changes in any minor version update. - */ -interface ExperimentalParseClassNameParam { - className: string; - parseClassName(className: string): ParsedClassName; -} -/** - * Type of the result returned by the `experimentalParseClassName` function. - * - * This is an experimental feature and may introduce breaking changes in any minor version update. - */ -interface ParsedClassName { - /** - * Whether the class is external and merging logic should be sipped. - * - * If this is `true`, the class will be treated as if it wasn't a Tailwind class and will be passed through as is. - */ - isExternal?: boolean; - /** - * Modifiers of the class in the order they appear in the class. - * - * @example ['hover', 'dark'] // for `hover:dark:bg-gray-100` - */ - modifiers: string[]; - /** - * Whether the class has an `!important` modifier. - * - * @example true // for `hover:dark:!bg-gray-100` - */ - hasImportantModifier: boolean; - /** - * Base class without preceding modifiers. - * - * @example 'bg-gray-100' // for `hover:dark:bg-gray-100` - */ - baseClassName: string; - /** - * Index position of a possible postfix modifier in the class. - * If the class has no postfix modifier, this is `undefined`. - * - * This property is prefixed with "maybe" because tailwind-merge does not know whether something is a postfix modifier or part of the base class since it's possible to configure Tailwind CSS classes which include a `/` in the base class name. - * - * If a `maybePostfixModifierPosition` is present, tailwind-merge first tries to match the `baseClassName` without the possible postfix modifier to a class group. If that fails, it tries again with the possible postfix modifier. - * - * @example 11 // for `bg-gray-100/50` - */ - maybePostfixModifierPosition: number | undefined; -} -/** - * The dynamic part of the tailwind-merge configuration. When merging multiple configurations, the user can choose to either override or extend the properties of this interface. - */ -interface ConfigGroupsPart { - /** - * Theme scales used in classGroups. - * - * The keys are the same as in the Tailwind config but the values are sometimes defined more broadly. - */ - theme: NoInfer>; - /** - * Object with groups of classes. - * - * @example - * { - * // Creates group of classes `group`, `of` and `classes` - * 'group-id': ['group', 'of', 'classes'], - * // Creates group of classes `look-at-me-other` and `look-at-me-group`. - * 'other-group': [{ 'look-at-me': ['other', 'group']}] - * } - */ - classGroups: NoInfer>>; - /** - * Conflicting classes across groups. - * - * The key is the ID of a class group which creates a conflict, values are IDs of class groups which receive a conflict. That means if a class from from the key ID is present, all preceding classes from the values are removed. - * - * A class group ID is the key of a class group in the classGroups object. - * - * @example { gap: ['gap-x', 'gap-y'] } - */ - conflictingClassGroups: NoInfer>>; - /** - * Postfix modifiers conflicting with other class groups. - * - * A class group ID is the key of a class group in classGroups object. - * - * @example { 'font-size': ['leading'] } - */ - conflictingClassGroupModifiers: NoInfer>>; - /** - * Modifiers whose order among multiple modifiers should be preserved because their order changes which element gets targeted. - * - * tailwind-merge makes sure that classes with these modifiers are not overwritten by classes with the same modifiers with order-sensitive modifiers being in a different position. - */ - orderSensitiveModifiers: string[]; -} -/** - * Type of the configuration object that can be passed to `extendTailwindMerge`. - */ -interface ConfigExtension extends Partial { - override?: PartialPartial>; - extend?: PartialPartial>; -} -type PartialPartial = { - [P in keyof T]?: T[P] extends any[] ? T[P] : Partial; -}; -type ThemeObject = Record>; -type ClassGroup = readonly ClassDefinition[]; -type ClassDefinition = string | ClassValidator | ThemeGetter | ClassObject; -type ClassValidator = (classPart: string) => boolean; -interface ThemeGetter { - (theme: ThemeObject): ClassGroup; - isThemeGetter: true; -} -type ClassObject = Record[]>; -/** - * Hack from https://stackoverflow.com/questions/56687668/a-way-to-disable-type-argument-inference-in-generics/56688073#56688073 - * - * Could be replaced with NoInfer utility type from TypeScript (https://www.typescriptlang.org/docs/handbook/utility-types.html#noinfertype), but that is only supported in TypeScript 5.4 or higher, so I should wait some time before using it. - */ -type NoInfer = [T][T extends any ? 0 : never]; -/** - * Theme group IDs included in the default configuration of tailwind-merge. - * - * If you want to use a scale that is not supported in the `ThemeObject` type, - * consider using `classGroups` instead of `theme`. - * - * @see https://github.com/dcastil/tailwind-merge/blob/main/docs/configuration.md#theme - * (the list of supported keys may vary between `tailwind-merge` versions) - */ -type DefaultThemeGroupIds = 'animate' | 'aspect' | 'blur' | 'breakpoint' | 'color' | 'container' | 'drop-shadow' | 'ease' | 'font-weight' | 'font' | 'inset-shadow' | 'leading' | 'perspective' | 'radius' | 'shadow' | 'spacing' | 'text' | 'text-shadow' | 'tracking'; -/** - * Class group IDs included in the default configuration of tailwind-merge. - */ -type DefaultClassGroupIds = 'accent' | 'align-content' | 'align-items' | 'align-self' | 'animate' | 'appearance' | 'aspect' | 'auto-cols' | 'auto-rows' | 'backdrop-blur' | 'backdrop-brightness' | 'backdrop-contrast' | 'backdrop-filter' | 'backdrop-grayscale' | 'backdrop-hue-rotate' | 'backdrop-invert' | 'backdrop-opacity' | 'backdrop-saturate' | 'backdrop-sepia' | 'backface' | 'basis' | 'bg-attachment' | 'bg-blend' | 'bg-clip' | 'bg-color' | 'bg-image' | 'bg-origin' | 'bg-position' | 'bg-repeat' | 'bg-size' | 'blur' | 'border-collapse' | 'border-color-b' | 'border-color-e' | 'border-color-l' | 'border-color-r' | 'border-color-s' | 'border-color-t' | 'border-color-x' | 'border-color-y' | 'border-color' | 'border-spacing-x' | 'border-spacing-y' | 'border-spacing' | 'border-style' | 'border-w-b' | 'border-w-e' | 'border-w-l' | 'border-w-r' | 'border-w-s' | 'border-w-t' | 'border-w-x' | 'border-w-y' | 'border-w' | 'bottom' | 'box-decoration' | 'box' | 'break-after' | 'break-before' | 'break-inside' | 'break' | 'brightness' | 'caption' | 'caret-color' | 'clear' | 'col-end' | 'col-start-end' | 'col-start' | 'color-scheme' | 'columns' | 'container' | 'content' | 'contrast' | 'cursor' | 'delay' | 'display' | 'divide-color' | 'divide-style' | 'divide-x-reverse' | 'divide-x' | 'divide-y-reverse' | 'divide-y' | 'drop-shadow' | 'drop-shadow-color' | 'duration' | 'ease' | 'end' | 'field-sizing' | 'fill' | 'filter' | 'flex-direction' | 'flex-wrap' | 'flex' | 'float' | 'font-family' | 'font-size' | 'font-smoothing' | 'font-stretch' | 'font-style' | 'font-weight' | 'forced-color-adjust' | 'fvn-figure' | 'fvn-fraction' | 'fvn-normal' | 'fvn-ordinal' | 'fvn-slashed-zero' | 'fvn-spacing' | 'gap-x' | 'gap-y' | 'gap' | 'gradient-from-pos' | 'gradient-from' | 'gradient-to-pos' | 'gradient-to' | 'gradient-via-pos' | 'gradient-via' | 'grayscale' | 'grid-cols' | 'grid-flow' | 'grid-rows' | 'grow' | 'h' | 'hue-rotate' | 'hyphens' | 'indent' | 'inset-ring-color' | 'inset-ring-w' | 'inset-shadow-color' | 'inset-shadow' | 'inset-x' | 'inset-y' | 'inset' | 'invert' | 'isolation' | 'justify-content' | 'justify-items' | 'justify-self' | 'leading' | 'left' | 'line-clamp' | 'list-image' | 'list-style-position' | 'list-style-type' | 'm' | 'mask-clip' | 'mask-composite' | 'mask-image-b-from-color' | 'mask-image-b-from-pos' | 'mask-image-b-to-color' | 'mask-image-b-to-pos' | 'mask-image-conic-from-color' | 'mask-image-conic-from-pos' | 'mask-image-conic-pos' | 'mask-image-conic-to-color' | 'mask-image-conic-to-pos' | 'mask-image-l-from-color' | 'mask-image-l-from-pos' | 'mask-image-l-to-color' | 'mask-image-l-to-pos' | 'mask-image-linear-from-color' | 'mask-image-linear-from-pos' | 'mask-image-linear-pos' | 'mask-image-linear-to-color' | 'mask-image-linear-to-pos' | 'mask-image-r-from-color' | 'mask-image-r-from-pos' | 'mask-image-r-to-color' | 'mask-image-r-to-pos' | 'mask-image-radial-from-color' | 'mask-image-radial-from-pos' | 'mask-image-radial-pos' | 'mask-image-radial-shape' | 'mask-image-radial-size' | 'mask-image-radial-to-color' | 'mask-image-radial-to-pos' | 'mask-image-radial' | 'mask-image-t-from-color' | 'mask-image-t-from-pos' | 'mask-image-t-to-color' | 'mask-image-t-to-pos' | 'mask-image-x-from-color' | 'mask-image-x-from-pos' | 'mask-image-x-to-color' | 'mask-image-x-to-pos' | 'mask-image-y-from-color' | 'mask-image-y-from-pos' | 'mask-image-y-to-color' | 'mask-image-y-to-pos' | 'mask-image' | 'mask-mode' | 'mask-origin' | 'mask-position' | 'mask-repeat' | 'mask-size' | 'mask-type' | 'max-h' | 'max-w' | 'mb' | 'me' | 'min-h' | 'min-w' | 'mix-blend' | 'ml' | 'mr' | 'ms' | 'mt' | 'mx' | 'my' | 'object-fit' | 'object-position' | 'opacity' | 'order' | 'outline-color' | 'outline-offset' | 'outline-style' | 'outline-w' | 'overflow-x' | 'overflow-y' | 'overflow' | 'overscroll-x' | 'overscroll-y' | 'overscroll' | 'p' | 'pb' | 'pe' | 'perspective-origin' | 'perspective' | 'pl' | 'place-content' | 'place-items' | 'place-self' | 'placeholder-color' | 'pointer-events' | 'position' | 'pr' | 'ps' | 'pt' | 'px' | 'py' | 'resize' | 'right' | 'ring-color' | 'ring-offset-color' | 'ring-offset-w' | 'ring-w-inset' | 'ring-w' | 'rotate-x' | 'rotate-y' | 'rotate-z' | 'rotate' | 'rounded-b' | 'rounded-bl' | 'rounded-br' | 'rounded-e' | 'rounded-ee' | 'rounded-es' | 'rounded-l' | 'rounded-r' | 'rounded-s' | 'rounded-se' | 'rounded-ss' | 'rounded-t' | 'rounded-tl' | 'rounded-tr' | 'rounded' | 'row-end' | 'row-start-end' | 'row-start' | 'saturate' | 'scale-3d' | 'scale-x' | 'scale-y' | 'scale-z' | 'scale' | 'scroll-behavior' | 'scroll-m' | 'scroll-mb' | 'scroll-me' | 'scroll-ml' | 'scroll-mr' | 'scroll-ms' | 'scroll-mt' | 'scroll-mx' | 'scroll-my' | 'scroll-p' | 'scroll-pb' | 'scroll-pe' | 'scroll-pl' | 'scroll-pr' | 'scroll-ps' | 'scroll-pt' | 'scroll-px' | 'scroll-py' | 'select' | 'sepia' | 'shadow-color' | 'shadow' | 'shrink' | 'size' | 'skew-x' | 'skew-y' | 'skew' | 'snap-align' | 'snap-stop' | 'snap-strictness' | 'snap-type' | 'space-x-reverse' | 'space-x' | 'space-y-reverse' | 'space-y' | 'sr' | 'start' | 'stroke-w' | 'stroke' | 'table-layout' | 'text-alignment' | 'text-color' | 'text-decoration-color' | 'text-decoration-style' | 'text-decoration-thickness' | 'text-decoration' | 'text-overflow' | 'text-shadow' | 'text-shadow-color' | 'text-transform' | 'text-wrap' | 'top' | 'touch-pz' | 'touch-x' | 'touch-y' | 'touch' | 'tracking' | 'transform-origin' | 'transform-style' | 'transform' | 'transition-behavior' | 'transition' | 'translate-none' | 'translate-x' | 'translate-y' | 'translate-z' | 'translate' | 'underline-offset' | 'vertical-align' | 'visibility' | 'w' | 'whitespace' | 'will-change' | 'wrap' | 'z'; -type AnyClassGroupIds = string; -type AnyThemeGroupIds = string; -/** - * type of the tailwind-merge configuration that allows for any possible configuration. - */ -type AnyConfig = Config; - -type CreateConfigFirst = () => AnyConfig; -type CreateConfigSubsequent$1 = (config: AnyConfig) => AnyConfig; -type TailwindMerge = (...classLists: ClassNameValue[]) => string; -declare function createTailwindMerge(createConfigFirst: CreateConfigFirst, ...createConfigRest: CreateConfigSubsequent$1[]): TailwindMerge; - -declare const getDefaultConfig: () => { - readonly cacheSize: 500; - readonly theme: { - readonly animate: readonly ["spin", "ping", "pulse", "bounce"]; - readonly aspect: readonly ["video"]; - readonly blur: readonly [(value: string) => boolean]; - readonly breakpoint: readonly [(value: string) => boolean]; - readonly color: readonly [() => boolean]; - readonly container: readonly [(value: string) => boolean]; - readonly 'drop-shadow': readonly [(value: string) => boolean]; - readonly ease: readonly ["in", "out", "in-out"]; - readonly font: readonly [(value: string) => boolean]; - readonly 'font-weight': readonly ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"]; - readonly 'inset-shadow': readonly [(value: string) => boolean]; - readonly leading: readonly ["none", "tight", "snug", "normal", "relaxed", "loose"]; - readonly perspective: readonly ["dramatic", "near", "normal", "midrange", "distant", "none"]; - readonly radius: readonly [(value: string) => boolean]; - readonly shadow: readonly [(value: string) => boolean]; - readonly spacing: readonly ["px", (value: string) => boolean]; - readonly text: readonly [(value: string) => boolean]; - readonly 'text-shadow': readonly [(value: string) => boolean]; - readonly tracking: readonly ["tighter", "tight", "normal", "wide", "wider", "widest"]; - }; - readonly classGroups: { - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - readonly aspect: readonly [{ - readonly aspect: readonly ["auto", "square", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Container - * @see https://tailwindcss.com/docs/container - * @deprecated since Tailwind CSS v4.0.0 - */ - readonly container: readonly ["container"]; - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - readonly columns: readonly [{ - readonly columns: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - readonly 'break-after': readonly [{ - readonly 'break-after': readonly ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"]; - }]; - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - readonly 'break-before': readonly [{ - readonly 'break-before': readonly ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"]; - }]; - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - readonly 'break-inside': readonly [{ - readonly 'break-inside': readonly ["auto", "avoid", "avoid-page", "avoid-column"]; - }]; - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - readonly 'box-decoration': readonly [{ - readonly 'box-decoration': readonly ["slice", "clone"]; - }]; - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - readonly box: readonly [{ - readonly box: readonly ["border", "content"]; - }]; - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - readonly display: readonly ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"]; - /** - * Screen Reader Only - * @see https://tailwindcss.com/docs/display#screen-reader-only - */ - readonly sr: readonly ["sr-only", "not-sr-only"]; - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - readonly float: readonly [{ - readonly float: readonly ["right", "left", "none", "start", "end"]; - }]; - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - readonly clear: readonly [{ - readonly clear: readonly ["left", "right", "both", "none", "start", "end"]; - }]; - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - readonly isolation: readonly ["isolate", "isolation-auto"]; - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - readonly 'object-fit': readonly [{ - readonly object: readonly ["contain", "cover", "fill", "none", "scale-down"]; - }]; - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - readonly 'object-position': readonly [{ - readonly object: readonly ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - readonly overflow: readonly [{ - readonly overflow: readonly ["auto", "hidden", "clip", "visible", "scroll"]; - }]; - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - readonly 'overflow-x': readonly [{ - readonly 'overflow-x': readonly ["auto", "hidden", "clip", "visible", "scroll"]; - }]; - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - readonly 'overflow-y': readonly [{ - readonly 'overflow-y': readonly ["auto", "hidden", "clip", "visible", "scroll"]; - }]; - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - readonly overscroll: readonly [{ - readonly overscroll: readonly ["auto", "contain", "none"]; - }]; - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - readonly 'overscroll-x': readonly [{ - readonly 'overscroll-x': readonly ["auto", "contain", "none"]; - }]; - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - readonly 'overscroll-y': readonly [{ - readonly 'overscroll-y': readonly ["auto", "contain", "none"]; - }]; - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - readonly position: readonly ["static", "fixed", "absolute", "relative", "sticky"]; - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly inset: readonly [{ - readonly inset: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly 'inset-x': readonly [{ - readonly 'inset-x': readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly 'inset-y': readonly [{ - readonly 'inset-y': readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly start: readonly [{ - readonly start: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly end: readonly [{ - readonly end: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly top: readonly [{ - readonly top: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly right: readonly [{ - readonly right: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly bottom: readonly [{ - readonly bottom: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - readonly left: readonly [{ - readonly left: readonly [(value: string) => boolean, "full", "auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - readonly visibility: readonly ["visible", "invisible", "collapse"]; - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - readonly z: readonly [{ - readonly z: readonly [(value: string) => boolean, "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - readonly basis: readonly [{ - readonly basis: readonly [(value: string) => boolean, "full", "auto", ThemeGetter, (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - readonly 'flex-direction': readonly [{ - readonly flex: readonly ["row", "row-reverse", "col", "col-reverse"]; - }]; - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - readonly 'flex-wrap': readonly [{ - readonly flex: readonly ["nowrap", "wrap", "wrap-reverse"]; - }]; - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - readonly flex: readonly [{ - readonly flex: readonly [(value: string) => boolean, (value: string) => boolean, "auto", "initial", "none", (value: string) => boolean]; - }]; - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - readonly grow: readonly [{ - readonly grow: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - readonly shrink: readonly [{ - readonly shrink: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - readonly order: readonly [{ - readonly order: readonly [(value: string) => boolean, "first", "last", "none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - readonly 'grid-cols': readonly [{ - readonly 'grid-cols': readonly [(value: string) => boolean, "none", "subgrid", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - readonly 'col-start-end': readonly [{ - readonly col: readonly ["auto", { - readonly span: readonly ["full", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - readonly 'col-start': readonly [{ - readonly 'col-start': readonly [(value: string) => boolean, "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - readonly 'col-end': readonly [{ - readonly 'col-end': readonly [(value: string) => boolean, "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - readonly 'grid-rows': readonly [{ - readonly 'grid-rows': readonly [(value: string) => boolean, "none", "subgrid", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - readonly 'row-start-end': readonly [{ - readonly row: readonly ["auto", { - readonly span: readonly ["full", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - readonly 'row-start': readonly [{ - readonly 'row-start': readonly [(value: string) => boolean, "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - readonly 'row-end': readonly [{ - readonly 'row-end': readonly [(value: string) => boolean, "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - readonly 'grid-flow': readonly [{ - readonly 'grid-flow': readonly ["row", "col", "dense", "row-dense", "col-dense"]; - }]; - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - readonly 'auto-cols': readonly [{ - readonly 'auto-cols': readonly ["auto", "min", "max", "fr", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - readonly 'auto-rows': readonly [{ - readonly 'auto-rows': readonly ["auto", "min", "max", "fr", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - readonly gap: readonly [{ - readonly gap: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - readonly 'gap-x': readonly [{ - readonly 'gap-x': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - readonly 'gap-y': readonly [{ - readonly 'gap-y': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - readonly 'justify-content': readonly [{ - readonly justify: readonly ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe", "normal"]; - }]; - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - readonly 'justify-items': readonly [{ - readonly 'justify-items': readonly ["start", "end", "center", "stretch", "center-safe", "end-safe", "normal"]; - }]; - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - readonly 'justify-self': readonly [{ - readonly 'justify-self': readonly ["auto", "start", "end", "center", "stretch", "center-safe", "end-safe"]; - }]; - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - readonly 'align-content': readonly [{ - readonly content: readonly ["normal", "start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"]; - }]; - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - readonly 'align-items': readonly [{ - readonly items: readonly ["start", "end", "center", "stretch", "center-safe", "end-safe", { - readonly baseline: readonly ["", "last"]; - }]; - }]; - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - readonly 'align-self': readonly [{ - readonly self: readonly ["auto", "start", "end", "center", "stretch", "center-safe", "end-safe", { - readonly baseline: readonly ["", "last"]; - }]; - }]; - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - readonly 'place-content': readonly [{ - readonly 'place-content': readonly ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline", "center-safe", "end-safe"]; - }]; - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - readonly 'place-items': readonly [{ - readonly 'place-items': readonly ["start", "end", "center", "stretch", "center-safe", "end-safe", "baseline"]; - }]; - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - readonly 'place-self': readonly [{ - readonly 'place-self': readonly ["auto", "start", "end", "center", "stretch", "center-safe", "end-safe"]; - }]; - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - readonly p: readonly [{ - readonly p: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - readonly px: readonly [{ - readonly px: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - readonly py: readonly [{ - readonly py: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - readonly ps: readonly [{ - readonly ps: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - readonly pe: readonly [{ - readonly pe: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - readonly pt: readonly [{ - readonly pt: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - readonly pr: readonly [{ - readonly pr: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - readonly pb: readonly [{ - readonly pb: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - readonly pl: readonly [{ - readonly pl: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - readonly m: readonly [{ - readonly m: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - readonly mx: readonly [{ - readonly mx: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - readonly my: readonly [{ - readonly my: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - readonly ms: readonly [{ - readonly ms: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - readonly me: readonly [{ - readonly me: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - readonly mt: readonly [{ - readonly mt: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - readonly mr: readonly [{ - readonly mr: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - readonly mb: readonly [{ - readonly mb: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - readonly ml: readonly [{ - readonly ml: readonly ["auto", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Space Between X - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - readonly 'space-x': readonly [{ - readonly 'space-x': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - readonly 'space-x-reverse': readonly ["space-x-reverse"]; - /** - * Space Between Y - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - readonly 'space-y': readonly [{ - readonly 'space-y': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - readonly 'space-y-reverse': readonly ["space-y-reverse"]; - /** - * Size - * @see https://tailwindcss.com/docs/width#setting-both-width-and-height - */ - readonly size: readonly [{ - readonly size: readonly [(value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - readonly w: readonly [{ - readonly w: readonly [ThemeGetter, "screen", (value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - readonly 'min-w': readonly [{ - readonly 'min-w': readonly [ThemeGetter, "screen", "none", (value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - readonly 'max-w': readonly [{ - readonly 'max-w': readonly [ThemeGetter, "screen", "none", "prose", { - readonly screen: readonly [ThemeGetter]; - }, (value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - readonly h: readonly [{ - readonly h: readonly ["screen", "lh", (value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - readonly 'min-h': readonly [{ - readonly 'min-h': readonly ["screen", "lh", "none", (value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - readonly 'max-h': readonly [{ - readonly 'max-h': readonly ["screen", "lh", (value: string) => boolean, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - readonly 'font-size': readonly [{ - readonly text: readonly ["base", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - readonly 'font-smoothing': readonly ["antialiased", "subpixel-antialiased"]; - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - readonly 'font-style': readonly ["italic", "not-italic"]; - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - readonly 'font-weight': readonly [{ - readonly font: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Font Stretch - * @see https://tailwindcss.com/docs/font-stretch - */ - readonly 'font-stretch': readonly [{ - readonly 'font-stretch': readonly ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - readonly 'font-family': readonly [{ - readonly font: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - readonly 'fvn-normal': readonly ["normal-nums"]; - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - readonly 'fvn-ordinal': readonly ["ordinal"]; - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - readonly 'fvn-slashed-zero': readonly ["slashed-zero"]; - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - readonly 'fvn-figure': readonly ["lining-nums", "oldstyle-nums"]; - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - readonly 'fvn-spacing': readonly ["proportional-nums", "tabular-nums"]; - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - readonly 'fvn-fraction': readonly ["diagonal-fractions", "stacked-fractions"]; - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - readonly tracking: readonly [{ - readonly tracking: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - readonly 'line-clamp': readonly [{ - readonly 'line-clamp': readonly [(value: string) => boolean, "none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - readonly leading: readonly [{ - readonly leading: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - readonly 'list-image': readonly [{ - readonly 'list-image': readonly ["none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - readonly 'list-style-position': readonly [{ - readonly list: readonly ["inside", "outside"]; - }]; - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - readonly 'list-style-type': readonly [{ - readonly list: readonly ["disc", "decimal", "none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - readonly 'text-alignment': readonly [{ - readonly text: readonly ["left", "center", "right", "justify", "start", "end"]; - }]; - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://v3.tailwindcss.com/docs/placeholder-color - */ - readonly 'placeholder-color': readonly [{ - readonly placeholder: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - readonly 'text-color': readonly [{ - readonly text: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - readonly 'text-decoration': readonly ["underline", "overline", "line-through", "no-underline"]; - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - readonly 'text-decoration-style': readonly [{ - readonly decoration: readonly ["solid", "dashed", "dotted", "double", "wavy"]; - }]; - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - readonly 'text-decoration-thickness': readonly [{ - readonly decoration: readonly [(value: string) => boolean, "from-font", "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - readonly 'text-decoration-color': readonly [{ - readonly decoration: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - readonly 'underline-offset': readonly [{ - readonly 'underline-offset': readonly [(value: string) => boolean, "auto", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - readonly 'text-transform': readonly ["uppercase", "lowercase", "capitalize", "normal-case"]; - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - readonly 'text-overflow': readonly ["truncate", "text-ellipsis", "text-clip"]; - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - readonly 'text-wrap': readonly [{ - readonly text: readonly ["wrap", "nowrap", "balance", "pretty"]; - }]; - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - readonly indent: readonly [{ - readonly indent: readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - readonly 'vertical-align': readonly [{ - readonly align: readonly ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - readonly whitespace: readonly [{ - readonly whitespace: readonly ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]; - }]; - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - readonly break: readonly [{ - readonly break: readonly ["normal", "words", "all", "keep"]; - }]; - /** - * Overflow Wrap - * @see https://tailwindcss.com/docs/overflow-wrap - */ - readonly wrap: readonly [{ - readonly wrap: readonly ["break-word", "anywhere", "normal"]; - }]; - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - readonly hyphens: readonly [{ - readonly hyphens: readonly ["none", "manual", "auto"]; - }]; - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - readonly content: readonly [{ - readonly content: readonly ["none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - readonly 'bg-attachment': readonly [{ - readonly bg: readonly ["fixed", "local", "scroll"]; - }]; - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - readonly 'bg-clip': readonly [{ - readonly 'bg-clip': readonly ["border", "padding", "content", "text"]; - }]; - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - readonly 'bg-origin': readonly [{ - readonly 'bg-origin': readonly ["border", "padding", "content"]; - }]; - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - readonly 'bg-position': readonly [{ - readonly bg: readonly ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom", (value: string) => boolean, (value: string) => boolean, { - readonly position: readonly [(value: string) => boolean, (value: string) => boolean]; - }]; - }]; - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - readonly 'bg-repeat': readonly [{ - readonly bg: readonly ["no-repeat", { - readonly repeat: readonly ["", "x", "y", "space", "round"]; - }]; - }]; - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - readonly 'bg-size': readonly [{ - readonly bg: readonly ["auto", "cover", "contain", (value: string) => boolean, (value: string) => boolean, { - readonly size: readonly [(value: string) => boolean, (value: string) => boolean]; - }]; - }]; - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - readonly 'bg-image': readonly [{ - readonly bg: readonly ["none", { - readonly linear: readonly [{ - readonly to: readonly ["t", "tr", "r", "br", "b", "bl", "l", "tl"]; - }, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - readonly radial: readonly ["", (value: string) => boolean, (value: string) => boolean]; - readonly conic: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - readonly 'bg-color': readonly [{ - readonly bg: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - readonly 'gradient-from-pos': readonly [{ - readonly from: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - readonly 'gradient-via-pos': readonly [{ - readonly via: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - readonly 'gradient-to-pos': readonly [{ - readonly to: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - readonly 'gradient-from': readonly [{ - readonly from: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - readonly 'gradient-via': readonly [{ - readonly via: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - readonly 'gradient-to': readonly [{ - readonly to: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - readonly rounded: readonly [{ - readonly rounded: readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-s': readonly [{ - readonly 'rounded-s': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-e': readonly [{ - readonly 'rounded-e': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-t': readonly [{ - readonly 'rounded-t': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-r': readonly [{ - readonly 'rounded-r': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-b': readonly [{ - readonly 'rounded-b': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-l': readonly [{ - readonly 'rounded-l': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-ss': readonly [{ - readonly 'rounded-ss': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-se': readonly [{ - readonly 'rounded-se': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-ee': readonly [{ - readonly 'rounded-ee': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-es': readonly [{ - readonly 'rounded-es': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-tl': readonly [{ - readonly 'rounded-tl': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-tr': readonly [{ - readonly 'rounded-tr': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-br': readonly [{ - readonly 'rounded-br': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - readonly 'rounded-bl': readonly [{ - readonly 'rounded-bl': readonly ["", "none", "full", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w': readonly [{ - readonly border: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-x': readonly [{ - readonly 'border-x': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-y': readonly [{ - readonly 'border-y': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-s': readonly [{ - readonly 'border-s': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-e': readonly [{ - readonly 'border-e': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-t': readonly [{ - readonly 'border-t': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-r': readonly [{ - readonly 'border-r': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-b': readonly [{ - readonly 'border-b': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - readonly 'border-w-l': readonly [{ - readonly 'border-l': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Divide Width X - * @see https://tailwindcss.com/docs/border-width#between-children - */ - readonly 'divide-x': readonly [{ - readonly 'divide-x': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - readonly 'divide-x-reverse': readonly ["divide-x-reverse"]; - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/border-width#between-children - */ - readonly 'divide-y': readonly [{ - readonly 'divide-y': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - readonly 'divide-y-reverse': readonly ["divide-y-reverse"]; - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - readonly 'border-style': readonly [{ - readonly border: readonly ["solid", "dashed", "dotted", "double", "hidden", "none"]; - }]; - /** - * Divide Style - * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style - */ - readonly 'divide-style': readonly [{ - readonly divide: readonly ["solid", "dashed", "dotted", "double", "hidden", "none"]; - }]; - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color': readonly [{ - readonly border: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-x': readonly [{ - readonly 'border-x': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-y': readonly [{ - readonly 'border-y': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-s': readonly [{ - readonly 'border-s': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-e': readonly [{ - readonly 'border-e': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-t': readonly [{ - readonly 'border-t': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-r': readonly [{ - readonly 'border-r': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-b': readonly [{ - readonly 'border-b': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - readonly 'border-color-l': readonly [{ - readonly 'border-l': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - readonly 'divide-color': readonly [{ - readonly divide: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - readonly 'outline-style': readonly [{ - readonly outline: readonly ["solid", "dashed", "dotted", "double", "none", "hidden"]; - }]; - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - readonly 'outline-offset': readonly [{ - readonly 'outline-offset': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - readonly 'outline-w': readonly [{ - readonly outline: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - readonly 'outline-color': readonly [{ - readonly outline: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - readonly shadow: readonly [{ - readonly shadow: readonly ["", "none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color - */ - readonly 'shadow-color': readonly [{ - readonly shadow: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Inset Box Shadow - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow - */ - readonly 'inset-shadow': readonly [{ - readonly 'inset-shadow': readonly ["none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Inset Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color - */ - readonly 'inset-shadow-color': readonly [{ - readonly 'inset-shadow': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring - */ - readonly 'ring-w': readonly [{ - readonly ring: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Ring Width Inset - * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - readonly 'ring-w-inset': readonly ["ring-inset"]; - /** - * Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color - */ - readonly 'ring-color': readonly [{ - readonly ring: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Ring Offset Width - * @see https://v3.tailwindcss.com/docs/ring-offset-width - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - readonly 'ring-offset-w': readonly [{ - readonly 'ring-offset': readonly [(value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Ring Offset Color - * @see https://v3.tailwindcss.com/docs/ring-offset-color - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - readonly 'ring-offset-color': readonly [{ - readonly 'ring-offset': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Inset Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring - */ - readonly 'inset-ring-w': readonly [{ - readonly 'inset-ring': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Inset Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color - */ - readonly 'inset-ring-color': readonly [{ - readonly 'inset-ring': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Shadow - * @see https://tailwindcss.com/docs/text-shadow - */ - readonly 'text-shadow': readonly [{ - readonly 'text-shadow': readonly ["none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Text Shadow Color - * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color - */ - readonly 'text-shadow-color': readonly [{ - readonly 'text-shadow': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - readonly opacity: readonly [{ - readonly opacity: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - readonly 'mix-blend': readonly [{ - readonly 'mix-blend': readonly ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity", "plus-darker", "plus-lighter"]; - }]; - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - readonly 'bg-blend': readonly [{ - readonly 'bg-blend': readonly ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"]; - }]; - /** - * Mask Clip - * @see https://tailwindcss.com/docs/mask-clip - */ - readonly 'mask-clip': readonly [{ - readonly 'mask-clip': readonly ["border", "padding", "content", "fill", "stroke", "view"]; - }, "mask-no-clip"]; - /** - * Mask Composite - * @see https://tailwindcss.com/docs/mask-composite - */ - readonly 'mask-composite': readonly [{ - readonly mask: readonly ["add", "subtract", "intersect", "exclude"]; - }]; - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - readonly 'mask-image-linear-pos': readonly [{ - readonly 'mask-linear': readonly [(value: string) => boolean]; - }]; - readonly 'mask-image-linear-from-pos': readonly [{ - readonly 'mask-linear-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-linear-to-pos': readonly [{ - readonly 'mask-linear-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-linear-from-color': readonly [{ - readonly 'mask-linear-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-linear-to-color': readonly [{ - readonly 'mask-linear-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-t-from-pos': readonly [{ - readonly 'mask-t-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-t-to-pos': readonly [{ - readonly 'mask-t-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-t-from-color': readonly [{ - readonly 'mask-t-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-t-to-color': readonly [{ - readonly 'mask-t-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-r-from-pos': readonly [{ - readonly 'mask-r-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-r-to-pos': readonly [{ - readonly 'mask-r-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-r-from-color': readonly [{ - readonly 'mask-r-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-r-to-color': readonly [{ - readonly 'mask-r-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-b-from-pos': readonly [{ - readonly 'mask-b-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-b-to-pos': readonly [{ - readonly 'mask-b-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-b-from-color': readonly [{ - readonly 'mask-b-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-b-to-color': readonly [{ - readonly 'mask-b-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-l-from-pos': readonly [{ - readonly 'mask-l-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-l-to-pos': readonly [{ - readonly 'mask-l-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-l-from-color': readonly [{ - readonly 'mask-l-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-l-to-color': readonly [{ - readonly 'mask-l-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-x-from-pos': readonly [{ - readonly 'mask-x-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-x-to-pos': readonly [{ - readonly 'mask-x-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-x-from-color': readonly [{ - readonly 'mask-x-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-x-to-color': readonly [{ - readonly 'mask-x-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-y-from-pos': readonly [{ - readonly 'mask-y-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-y-to-pos': readonly [{ - readonly 'mask-y-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-y-from-color': readonly [{ - readonly 'mask-y-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-y-to-color': readonly [{ - readonly 'mask-y-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-radial': readonly [{ - readonly 'mask-radial': readonly [(value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-radial-from-pos': readonly [{ - readonly 'mask-radial-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-radial-to-pos': readonly [{ - readonly 'mask-radial-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-radial-from-color': readonly [{ - readonly 'mask-radial-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-radial-to-color': readonly [{ - readonly 'mask-radial-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-radial-shape': readonly [{ - readonly 'mask-radial': readonly ["circle", "ellipse"]; - }]; - readonly 'mask-image-radial-size': readonly [{ - readonly 'mask-radial': readonly [{ - readonly closest: readonly ["side", "corner"]; - readonly farthest: readonly ["side", "corner"]; - }]; - }]; - readonly 'mask-image-radial-pos': readonly [{ - readonly 'mask-radial-at': readonly ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom"]; - }]; - readonly 'mask-image-conic-pos': readonly [{ - readonly 'mask-conic': readonly [(value: string) => boolean]; - }]; - readonly 'mask-image-conic-from-pos': readonly [{ - readonly 'mask-conic-from': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-conic-to-pos': readonly [{ - readonly 'mask-conic-to': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-conic-from-color': readonly [{ - readonly 'mask-conic-from': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - readonly 'mask-image-conic-to-color': readonly [{ - readonly 'mask-conic-to': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Mask Mode - * @see https://tailwindcss.com/docs/mask-mode - */ - readonly 'mask-mode': readonly [{ - readonly mask: readonly ["alpha", "luminance", "match"]; - }]; - /** - * Mask Origin - * @see https://tailwindcss.com/docs/mask-origin - */ - readonly 'mask-origin': readonly [{ - readonly 'mask-origin': readonly ["border", "padding", "content", "fill", "stroke", "view"]; - }]; - /** - * Mask Position - * @see https://tailwindcss.com/docs/mask-position - */ - readonly 'mask-position': readonly [{ - readonly mask: readonly ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom", (value: string) => boolean, (value: string) => boolean, { - readonly position: readonly [(value: string) => boolean, (value: string) => boolean]; - }]; - }]; - /** - * Mask Repeat - * @see https://tailwindcss.com/docs/mask-repeat - */ - readonly 'mask-repeat': readonly [{ - readonly mask: readonly ["no-repeat", { - readonly repeat: readonly ["", "x", "y", "space", "round"]; - }]; - }]; - /** - * Mask Size - * @see https://tailwindcss.com/docs/mask-size - */ - readonly 'mask-size': readonly [{ - readonly mask: readonly ["auto", "cover", "contain", (value: string) => boolean, (value: string) => boolean, { - readonly size: readonly [(value: string) => boolean, (value: string) => boolean]; - }]; - }]; - /** - * Mask Type - * @see https://tailwindcss.com/docs/mask-type - */ - readonly 'mask-type': readonly [{ - readonly 'mask-type': readonly ["alpha", "luminance"]; - }]; - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - readonly 'mask-image': readonly [{ - readonly mask: readonly ["none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Filter - * @see https://tailwindcss.com/docs/filter - */ - readonly filter: readonly [{ - readonly filter: readonly ["", "none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - readonly blur: readonly [{ - readonly blur: readonly ["", "none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - readonly brightness: readonly [{ - readonly brightness: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - readonly contrast: readonly [{ - readonly contrast: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - readonly 'drop-shadow': readonly [{ - readonly 'drop-shadow': readonly ["", "none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Drop Shadow Color - * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color - */ - readonly 'drop-shadow-color': readonly [{ - readonly 'drop-shadow': readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - readonly grayscale: readonly [{ - readonly grayscale: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - readonly 'hue-rotate': readonly [{ - readonly 'hue-rotate': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - readonly invert: readonly [{ - readonly invert: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - readonly saturate: readonly [{ - readonly saturate: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - readonly sepia: readonly [{ - readonly sepia: readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Filter - * @see https://tailwindcss.com/docs/backdrop-filter - */ - readonly 'backdrop-filter': readonly [{ - readonly 'backdrop-filter': readonly ["", "none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - readonly 'backdrop-blur': readonly [{ - readonly 'backdrop-blur': readonly ["", "none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - readonly 'backdrop-brightness': readonly [{ - readonly 'backdrop-brightness': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - readonly 'backdrop-contrast': readonly [{ - readonly 'backdrop-contrast': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - readonly 'backdrop-grayscale': readonly [{ - readonly 'backdrop-grayscale': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - readonly 'backdrop-hue-rotate': readonly [{ - readonly 'backdrop-hue-rotate': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - readonly 'backdrop-invert': readonly [{ - readonly 'backdrop-invert': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - readonly 'backdrop-opacity': readonly [{ - readonly 'backdrop-opacity': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - readonly 'backdrop-saturate': readonly [{ - readonly 'backdrop-saturate': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - readonly 'backdrop-sepia': readonly [{ - readonly 'backdrop-sepia': readonly ["", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - readonly 'border-collapse': readonly [{ - readonly border: readonly ["collapse", "separate"]; - }]; - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - readonly 'border-spacing': readonly [{ - readonly 'border-spacing': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - readonly 'border-spacing-x': readonly [{ - readonly 'border-spacing-x': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - readonly 'border-spacing-y': readonly [{ - readonly 'border-spacing-y': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - readonly 'table-layout': readonly [{ - readonly table: readonly ["auto", "fixed"]; - }]; - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - readonly caption: readonly [{ - readonly caption: readonly ["top", "bottom"]; - }]; - /** - * Transition Property - * @see https://tailwindcss.com/docs/transition-property - */ - readonly transition: readonly [{ - readonly transition: readonly ["", "all", "colors", "opacity", "shadow", "transform", "none", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Transition Behavior - * @see https://tailwindcss.com/docs/transition-behavior - */ - readonly 'transition-behavior': readonly [{ - readonly transition: readonly ["normal", "discrete"]; - }]; - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - readonly duration: readonly [{ - readonly duration: readonly [(value: string) => boolean, "initial", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - readonly ease: readonly [{ - readonly ease: readonly ["linear", "initial", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - readonly delay: readonly [{ - readonly delay: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - readonly animate: readonly [{ - readonly animate: readonly ["none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Backface Visibility - * @see https://tailwindcss.com/docs/backface-visibility - */ - readonly backface: readonly [{ - readonly backface: readonly ["hidden", "visible"]; - }]; - /** - * Perspective - * @see https://tailwindcss.com/docs/perspective - */ - readonly perspective: readonly [{ - readonly perspective: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Perspective Origin - * @see https://tailwindcss.com/docs/perspective-origin - */ - readonly 'perspective-origin': readonly [{ - readonly 'perspective-origin': readonly ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - readonly rotate: readonly [{ - readonly rotate: readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Rotate X - * @see https://tailwindcss.com/docs/rotate - */ - readonly 'rotate-x': readonly [{ - readonly 'rotate-x': readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Rotate Y - * @see https://tailwindcss.com/docs/rotate - */ - readonly 'rotate-y': readonly [{ - readonly 'rotate-y': readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Rotate Z - * @see https://tailwindcss.com/docs/rotate - */ - readonly 'rotate-z': readonly [{ - readonly 'rotate-z': readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - readonly scale: readonly [{ - readonly scale: readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - readonly 'scale-x': readonly [{ - readonly 'scale-x': readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - readonly 'scale-y': readonly [{ - readonly 'scale-y': readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Scale Z - * @see https://tailwindcss.com/docs/scale - */ - readonly 'scale-z': readonly [{ - readonly 'scale-z': readonly ["none", (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Scale 3D - * @see https://tailwindcss.com/docs/scale - */ - readonly 'scale-3d': readonly ["scale-3d"]; - /** - * Skew - * @see https://tailwindcss.com/docs/skew - */ - readonly skew: readonly [{ - readonly skew: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - readonly 'skew-x': readonly [{ - readonly 'skew-x': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - readonly 'skew-y': readonly [{ - readonly 'skew-y': readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - readonly transform: readonly [{ - readonly transform: readonly [(value: string) => boolean, (value: string) => boolean, "", "none", "gpu", "cpu"]; - }]; - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - readonly 'transform-origin': readonly [{ - readonly origin: readonly ["center", "top", "bottom", "left", "right", "top-left", "left-top", "top-right", "right-top", "bottom-right", "right-bottom", "bottom-left", "left-bottom", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Transform Style - * @see https://tailwindcss.com/docs/transform-style - */ - readonly 'transform-style': readonly [{ - readonly transform: readonly ["3d", "flat"]; - }]; - /** - * Translate - * @see https://tailwindcss.com/docs/translate - */ - readonly translate: readonly [{ - readonly translate: readonly [(value: string) => boolean, "full", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - readonly 'translate-x': readonly [{ - readonly 'translate-x': readonly [(value: string) => boolean, "full", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - readonly 'translate-y': readonly [{ - readonly 'translate-y': readonly [(value: string) => boolean, "full", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Translate Z - * @see https://tailwindcss.com/docs/translate - */ - readonly 'translate-z': readonly [{ - readonly 'translate-z': readonly [(value: string) => boolean, "full", (value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Translate None - * @see https://tailwindcss.com/docs/translate - */ - readonly 'translate-none': readonly ["translate-none"]; - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - readonly accent: readonly [{ - readonly accent: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - readonly appearance: readonly [{ - readonly appearance: readonly ["none", "auto"]; - }]; - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - readonly 'caret-color': readonly [{ - readonly caret: readonly [ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Color Scheme - * @see https://tailwindcss.com/docs/color-scheme - */ - readonly 'color-scheme': readonly [{ - readonly scheme: readonly ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]; - }]; - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - readonly cursor: readonly [{ - readonly cursor: readonly ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Field Sizing - * @see https://tailwindcss.com/docs/field-sizing - */ - readonly 'field-sizing': readonly [{ - readonly 'field-sizing': readonly ["fixed", "content"]; - }]; - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - readonly 'pointer-events': readonly [{ - readonly 'pointer-events': readonly ["auto", "none"]; - }]; - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - readonly resize: readonly [{ - readonly resize: readonly ["none", "", "y", "x"]; - }]; - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - readonly 'scroll-behavior': readonly [{ - readonly scroll: readonly ["auto", "smooth"]; - }]; - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-m': readonly [{ - readonly 'scroll-m': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-mx': readonly [{ - readonly 'scroll-mx': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-my': readonly [{ - readonly 'scroll-my': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-ms': readonly [{ - readonly 'scroll-ms': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-me': readonly [{ - readonly 'scroll-me': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-mt': readonly [{ - readonly 'scroll-mt': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-mr': readonly [{ - readonly 'scroll-mr': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-mb': readonly [{ - readonly 'scroll-mb': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - readonly 'scroll-ml': readonly [{ - readonly 'scroll-ml': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-p': readonly [{ - readonly 'scroll-p': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-px': readonly [{ - readonly 'scroll-px': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-py': readonly [{ - readonly 'scroll-py': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-ps': readonly [{ - readonly 'scroll-ps': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-pe': readonly [{ - readonly 'scroll-pe': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-pt': readonly [{ - readonly 'scroll-pt': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-pr': readonly [{ - readonly 'scroll-pr': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-pb': readonly [{ - readonly 'scroll-pb': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - readonly 'scroll-pl': readonly [{ - readonly 'scroll-pl': readonly [(value: string) => boolean, (value: string) => boolean, ThemeGetter]; - }]; - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - readonly 'snap-align': readonly [{ - readonly snap: readonly ["start", "end", "center", "align-none"]; - }]; - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - readonly 'snap-stop': readonly [{ - readonly snap: readonly ["normal", "always"]; - }]; - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - readonly 'snap-type': readonly [{ - readonly snap: readonly ["none", "x", "y", "both"]; - }]; - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - readonly 'snap-strictness': readonly [{ - readonly snap: readonly ["mandatory", "proximity"]; - }]; - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - readonly touch: readonly [{ - readonly touch: readonly ["auto", "none", "manipulation"]; - }]; - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - readonly 'touch-x': readonly [{ - readonly 'touch-pan': readonly ["x", "left", "right"]; - }]; - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - readonly 'touch-y': readonly [{ - readonly 'touch-pan': readonly ["y", "up", "down"]; - }]; - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - readonly 'touch-pz': readonly ["touch-pinch-zoom"]; - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - readonly select: readonly [{ - readonly select: readonly ["none", "text", "all", "auto"]; - }]; - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - readonly 'will-change': readonly [{ - readonly 'will-change': readonly ["auto", "scroll", "contents", "transform", (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - readonly fill: readonly [{ - readonly fill: readonly ["none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - readonly 'stroke-w': readonly [{ - readonly stroke: readonly [(value: string) => boolean, (value: string) => boolean, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - readonly stroke: readonly [{ - readonly stroke: readonly ["none", ThemeGetter, (value: string) => boolean, (value: string) => boolean]; - }]; - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - readonly 'forced-color-adjust': readonly [{ - readonly 'forced-color-adjust': readonly ["auto", "none"]; - }]; - }; - readonly conflictingClassGroups: { - readonly overflow: readonly ["overflow-x", "overflow-y"]; - readonly overscroll: readonly ["overscroll-x", "overscroll-y"]; - readonly inset: readonly ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"]; - readonly 'inset-x': readonly ["right", "left"]; - readonly 'inset-y': readonly ["top", "bottom"]; - readonly flex: readonly ["basis", "grow", "shrink"]; - readonly gap: readonly ["gap-x", "gap-y"]; - readonly p: readonly ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"]; - readonly px: readonly ["pr", "pl"]; - readonly py: readonly ["pt", "pb"]; - readonly m: readonly ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"]; - readonly mx: readonly ["mr", "ml"]; - readonly my: readonly ["mt", "mb"]; - readonly size: readonly ["w", "h"]; - readonly 'font-size': readonly ["leading"]; - readonly 'fvn-normal': readonly ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"]; - readonly 'fvn-ordinal': readonly ["fvn-normal"]; - readonly 'fvn-slashed-zero': readonly ["fvn-normal"]; - readonly 'fvn-figure': readonly ["fvn-normal"]; - readonly 'fvn-spacing': readonly ["fvn-normal"]; - readonly 'fvn-fraction': readonly ["fvn-normal"]; - readonly 'line-clamp': readonly ["display", "overflow"]; - readonly rounded: readonly ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"]; - readonly 'rounded-s': readonly ["rounded-ss", "rounded-es"]; - readonly 'rounded-e': readonly ["rounded-se", "rounded-ee"]; - readonly 'rounded-t': readonly ["rounded-tl", "rounded-tr"]; - readonly 'rounded-r': readonly ["rounded-tr", "rounded-br"]; - readonly 'rounded-b': readonly ["rounded-br", "rounded-bl"]; - readonly 'rounded-l': readonly ["rounded-tl", "rounded-bl"]; - readonly 'border-spacing': readonly ["border-spacing-x", "border-spacing-y"]; - readonly 'border-w': readonly ["border-w-x", "border-w-y", "border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"]; - readonly 'border-w-x': readonly ["border-w-r", "border-w-l"]; - readonly 'border-w-y': readonly ["border-w-t", "border-w-b"]; - readonly 'border-color': readonly ["border-color-x", "border-color-y", "border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"]; - readonly 'border-color-x': readonly ["border-color-r", "border-color-l"]; - readonly 'border-color-y': readonly ["border-color-t", "border-color-b"]; - readonly translate: readonly ["translate-x", "translate-y", "translate-none"]; - readonly 'translate-none': readonly ["translate", "translate-x", "translate-y", "translate-z"]; - readonly 'scroll-m': readonly ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"]; - readonly 'scroll-mx': readonly ["scroll-mr", "scroll-ml"]; - readonly 'scroll-my': readonly ["scroll-mt", "scroll-mb"]; - readonly 'scroll-p': readonly ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"]; - readonly 'scroll-px': readonly ["scroll-pr", "scroll-pl"]; - readonly 'scroll-py': readonly ["scroll-pt", "scroll-pb"]; - readonly touch: readonly ["touch-x", "touch-y", "touch-pz"]; - readonly 'touch-x': readonly ["touch"]; - readonly 'touch-y': readonly ["touch"]; - readonly 'touch-pz': readonly ["touch"]; - }; - readonly conflictingClassGroupModifiers: { - readonly 'font-size': readonly ["leading"]; - }; - readonly orderSensitiveModifiers: ["*", "**", "after", "backdrop", "before", "details-content", "file", "first-letter", "first-line", "marker", "placeholder", "selection"]; -}; - -type CreateConfigSubsequent = (config: AnyConfig) => AnyConfig; -declare const extendTailwindMerge: (configExtension: ConfigExtension | CreateConfigSubsequent, ...createConfig: CreateConfigSubsequent[]) => (...classLists: ClassNameValue[]) => string; - -declare const fromTheme: (key: NoInfer) => ThemeGetter; - -/** - * @param baseConfig Config where other config will be merged into. This object will be mutated. - * @param configExtension Partial config to merge into the `baseConfig`. - */ -declare const mergeConfigs: (baseConfig: AnyConfig, { cacheSize, prefix, experimentalParseClassName, extend, override, }: ConfigExtension) => AnyConfig; - -declare const twMerge: (...classLists: ClassNameValue[]) => string; - -declare const isFraction: (value: string) => boolean; -declare const isNumber: (value: string) => boolean; -declare const isInteger: (value: string) => boolean; -declare const isPercent: (value: string) => boolean; -declare const isTshirtSize: (value: string) => boolean; -declare const isAny: () => boolean; -declare const isAnyNonArbitrary: (value: string) => boolean; -declare const isArbitrarySize: (value: string) => boolean; -declare const isArbitraryValue: (value: string) => boolean; -declare const isArbitraryLength: (value: string) => boolean; -declare const isArbitraryNumber: (value: string) => boolean; -declare const isArbitraryPosition: (value: string) => boolean; -declare const isArbitraryImage: (value: string) => boolean; -declare const isArbitraryShadow: (value: string) => boolean; -declare const isArbitraryVariable: (value: string) => boolean; -declare const isArbitraryVariableLength: (value: string) => boolean; -declare const isArbitraryVariableFamilyName: (value: string) => boolean; -declare const isArbitraryVariablePosition: (value: string) => boolean; -declare const isArbitraryVariableSize: (value: string) => boolean; -declare const isArbitraryVariableImage: (value: string) => boolean; -declare const isArbitraryVariableShadow: (value: string) => boolean; - -declare const validators_d_isAny: typeof isAny; -declare const validators_d_isAnyNonArbitrary: typeof isAnyNonArbitrary; -declare const validators_d_isArbitraryImage: typeof isArbitraryImage; -declare const validators_d_isArbitraryLength: typeof isArbitraryLength; -declare const validators_d_isArbitraryNumber: typeof isArbitraryNumber; -declare const validators_d_isArbitraryPosition: typeof isArbitraryPosition; -declare const validators_d_isArbitraryShadow: typeof isArbitraryShadow; -declare const validators_d_isArbitrarySize: typeof isArbitrarySize; -declare const validators_d_isArbitraryValue: typeof isArbitraryValue; -declare const validators_d_isArbitraryVariable: typeof isArbitraryVariable; -declare const validators_d_isArbitraryVariableFamilyName: typeof isArbitraryVariableFamilyName; -declare const validators_d_isArbitraryVariableImage: typeof isArbitraryVariableImage; -declare const validators_d_isArbitraryVariableLength: typeof isArbitraryVariableLength; -declare const validators_d_isArbitraryVariablePosition: typeof isArbitraryVariablePosition; -declare const validators_d_isArbitraryVariableShadow: typeof isArbitraryVariableShadow; -declare const validators_d_isArbitraryVariableSize: typeof isArbitraryVariableSize; -declare const validators_d_isFraction: typeof isFraction; -declare const validators_d_isInteger: typeof isInteger; -declare const validators_d_isNumber: typeof isNumber; -declare const validators_d_isPercent: typeof isPercent; -declare const validators_d_isTshirtSize: typeof isTshirtSize; -declare namespace validators_d { - export { - validators_d_isAny as isAny, - validators_d_isAnyNonArbitrary as isAnyNonArbitrary, - validators_d_isArbitraryImage as isArbitraryImage, - validators_d_isArbitraryLength as isArbitraryLength, - validators_d_isArbitraryNumber as isArbitraryNumber, - validators_d_isArbitraryPosition as isArbitraryPosition, - validators_d_isArbitraryShadow as isArbitraryShadow, - validators_d_isArbitrarySize as isArbitrarySize, - validators_d_isArbitraryValue as isArbitraryValue, - validators_d_isArbitraryVariable as isArbitraryVariable, - validators_d_isArbitraryVariableFamilyName as isArbitraryVariableFamilyName, - validators_d_isArbitraryVariableImage as isArbitraryVariableImage, - validators_d_isArbitraryVariableLength as isArbitraryVariableLength, - validators_d_isArbitraryVariablePosition as isArbitraryVariablePosition, - validators_d_isArbitraryVariableShadow as isArbitraryVariableShadow, - validators_d_isArbitraryVariableSize as isArbitraryVariableSize, - validators_d_isFraction as isFraction, - validators_d_isInteger as isInteger, - validators_d_isNumber as isNumber, - validators_d_isPercent as isPercent, - validators_d_isTshirtSize as isTshirtSize, - }; -} - -export { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators_d as validators }; -export type { ClassNameValue, ClassValidator, Config, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds, ExperimentalParseClassNameParam, ParsedClassName as ExperimentalParsedClassName }; diff --git a/node_modules/tailwind-merge/package.json b/node_modules/tailwind-merge/package.json deleted file mode 100644 index afd16b2..0000000 --- a/node_modules/tailwind-merge/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "name": "tailwind-merge", - "version": "3.3.1", - "description": "Merge Tailwind CSS classes without style conflicts", - "keywords": [ - "tailwindcss", - "tailwind", - "css", - "classes", - "className", - "classList", - "merge", - "conflict", - "override" - ], - "homepage": "https://github.com/dcastil/tailwind-merge", - "bugs": { - "url": "https://github.com/dcastil/tailwind-merge/issues" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - }, - "license": "MIT", - "author": "Dany Castillo", - "files": [ - "dist", - "src" - ], - "source": "src/index.ts", - "exports": { - ".": { - "types": "./dist/types.d.ts", - "require": "./dist/bundle-cjs.js", - "import": "./dist/bundle-mjs.mjs", - "default": "./dist/bundle-mjs.mjs" - }, - "./es5": { - "types": "./dist/types.d.ts", - "require": "./dist/es5/bundle-cjs.js", - "import": "./dist/es5/bundle-mjs.mjs", - "default": "./dist/es5/bundle-mjs.mjs" - } - }, - "main": "./dist/bundle-cjs.js", - "types": "./dist/types.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/dcastil/tailwind-merge.git" - }, - "sideEffects": false, - "scripts": { - "build": "rollup --config scripts/rollup.config.mjs", - "bench": "vitest bench --config scripts/vitest.config.mts", - "test": "vitest --config scripts/vitest.config.mts --coverage", - "test:watch": "vitest --config scripts/vitest.config.mts", - "test:exports": "node scripts/test-built-package-exports.cjs && node scripts/test-built-package-exports.mjs", - "lint": "eslint --max-warnings 0 '**'", - "preversion": "if [ -n \"$DANYS_MACHINE\" ]; then git checkout main && git pull; fi", - "version": "zx scripts/update-readme.mjs", - "postversion": "if [ -n \"$DANYS_MACHINE\" ]; then git push --follow-tags && open https://github.com/dcastil/tailwind-merge/releases; fi" - }, - "dependencies": {}, - "devDependencies": { - "@babel/core": "^7.27.4", - "@babel/preset-env": "^7.27.2", - "@codspeed/vitest-plugin": "^4.0.1", - "@rollup/plugin-babel": "^6.0.4", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-typescript": "^12.1.2", - "@vitest/coverage-v8": "^3.1.4", - "@vitest/eslint-plugin": "^1.2.1", - "babel-plugin-annotate-pure-calls": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.6.4", - "eslint": "^9.28.0", - "eslint-plugin-import": "^2.31.0", - "globby": "^11.1.0", - "prettier": "^3.5.3", - "rollup": "^4.41.1", - "rollup-plugin-delete": "^3.0.1", - "rollup-plugin-dts": "^6.2.1", - "tslib": "^2.8.1", - "typescript": "^5.8.3", - "typescript-eslint": "^8.33.0", - "vitest": "^3.1.4", - "zx": "^8.5.4" - }, - "publishConfig": { - "provenance": true - }, - "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" -} diff --git a/node_modules/tailwind-merge/src/index.ts b/node_modules/tailwind-merge/src/index.ts deleted file mode 100644 index fbb4cf4..0000000 --- a/node_modules/tailwind-merge/src/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -export { createTailwindMerge } from './lib/create-tailwind-merge' -export { getDefaultConfig } from './lib/default-config' -export { extendTailwindMerge } from './lib/extend-tailwind-merge' -export { fromTheme } from './lib/from-theme' -export { mergeConfigs } from './lib/merge-configs' -export { twJoin, type ClassNameValue } from './lib/tw-join' -export { twMerge } from './lib/tw-merge' -export { - type ClassValidator, - type Config, - type ConfigExtension, - type DefaultClassGroupIds, - type DefaultThemeGroupIds, - type ExperimentalParseClassNameParam, - type ParsedClassName as ExperimentalParsedClassName, -} from './lib/types' -export * as validators from './lib/validators' diff --git a/node_modules/tailwind-merge/src/lib/class-group-utils.ts b/node_modules/tailwind-merge/src/lib/class-group-utils.ts deleted file mode 100644 index 360b02b..0000000 --- a/node_modules/tailwind-merge/src/lib/class-group-utils.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { - AnyClassGroupIds, - AnyConfig, - AnyThemeGroupIds, - ClassGroup, - ClassValidator, - Config, - ThemeGetter, - ThemeObject, -} from './types' - -export interface ClassPartObject { - nextPart: Map - validators: ClassValidatorObject[] - classGroupId?: AnyClassGroupIds -} - -interface ClassValidatorObject { - classGroupId: AnyClassGroupIds - validator: ClassValidator -} - -const CLASS_PART_SEPARATOR = '-' - -export const createClassGroupUtils = (config: AnyConfig) => { - const classMap = createClassMap(config) - const { conflictingClassGroups, conflictingClassGroupModifiers } = config - - const getClassGroupId = (className: string) => { - const classParts = className.split(CLASS_PART_SEPARATOR) - - // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts. - if (classParts[0] === '' && classParts.length !== 1) { - classParts.shift() - } - - return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className) - } - - const getConflictingClassGroupIds = ( - classGroupId: AnyClassGroupIds, - hasPostfixModifier: boolean, - ) => { - const conflicts = conflictingClassGroups[classGroupId] || [] - - if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) { - return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]!] - } - - return conflicts - } - - return { - getClassGroupId, - getConflictingClassGroupIds, - } -} - -const getGroupRecursive = ( - classParts: string[], - classPartObject: ClassPartObject, -): AnyClassGroupIds | undefined => { - if (classParts.length === 0) { - return classPartObject.classGroupId - } - - const currentClassPart = classParts[0]! - const nextClassPartObject = classPartObject.nextPart.get(currentClassPart) - const classGroupFromNextClassPart = nextClassPartObject - ? getGroupRecursive(classParts.slice(1), nextClassPartObject) - : undefined - - if (classGroupFromNextClassPart) { - return classGroupFromNextClassPart - } - - if (classPartObject.validators.length === 0) { - return undefined - } - - const classRest = classParts.join(CLASS_PART_SEPARATOR) - - return classPartObject.validators.find(({ validator }) => validator(classRest))?.classGroupId -} - -const arbitraryPropertyRegex = /^\[(.+)\]$/ - -const getGroupIdForArbitraryProperty = (className: string) => { - if (arbitraryPropertyRegex.test(className)) { - const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)![1] - const property = arbitraryPropertyClassName?.substring( - 0, - arbitraryPropertyClassName.indexOf(':'), - ) - - if (property) { - // I use two dots here because one dot is used as prefix for class groups in plugins - return 'arbitrary..' + property - } - } -} - -/** - * Exported for testing only - */ -export const createClassMap = (config: Config) => { - const { theme, classGroups } = config - const classMap: ClassPartObject = { - nextPart: new Map(), - validators: [], - } - - for (const classGroupId in classGroups) { - processClassesRecursively(classGroups[classGroupId]!, classMap, classGroupId, theme) - } - - return classMap -} - -const processClassesRecursively = ( - classGroup: ClassGroup, - classPartObject: ClassPartObject, - classGroupId: AnyClassGroupIds, - theme: ThemeObject, -) => { - classGroup.forEach((classDefinition) => { - if (typeof classDefinition === 'string') { - const classPartObjectToEdit = - classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition) - classPartObjectToEdit.classGroupId = classGroupId - return - } - - if (typeof classDefinition === 'function') { - if (isThemeGetter(classDefinition)) { - processClassesRecursively( - classDefinition(theme), - classPartObject, - classGroupId, - theme, - ) - return - } - - classPartObject.validators.push({ - validator: classDefinition, - classGroupId, - }) - - return - } - - Object.entries(classDefinition).forEach(([key, classGroup]) => { - processClassesRecursively( - classGroup, - getPart(classPartObject, key), - classGroupId, - theme, - ) - }) - }) -} - -const getPart = (classPartObject: ClassPartObject, path: string) => { - let currentClassPartObject = classPartObject - - path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => { - if (!currentClassPartObject.nextPart.has(pathPart)) { - currentClassPartObject.nextPart.set(pathPart, { - nextPart: new Map(), - validators: [], - }) - } - - currentClassPartObject = currentClassPartObject.nextPart.get(pathPart)! - }) - - return currentClassPartObject -} - -const isThemeGetter = (func: ClassValidator | ThemeGetter): func is ThemeGetter => - (func as ThemeGetter).isThemeGetter diff --git a/node_modules/tailwind-merge/src/lib/config-utils.ts b/node_modules/tailwind-merge/src/lib/config-utils.ts deleted file mode 100644 index a5eb08e..0000000 --- a/node_modules/tailwind-merge/src/lib/config-utils.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createClassGroupUtils } from './class-group-utils' -import { createLruCache } from './lru-cache' -import { createParseClassName } from './parse-class-name' -import { createSortModifiers } from './sort-modifiers' -import { AnyConfig } from './types' - -export type ConfigUtils = ReturnType - -export const createConfigUtils = (config: AnyConfig) => ({ - cache: createLruCache(config.cacheSize), - parseClassName: createParseClassName(config), - sortModifiers: createSortModifiers(config), - ...createClassGroupUtils(config), -}) diff --git a/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts b/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts deleted file mode 100644 index 59b9538..0000000 --- a/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { createConfigUtils } from './config-utils' -import { mergeClassList } from './merge-classlist' -import { ClassNameValue, twJoin } from './tw-join' -import { AnyConfig } from './types' - -type CreateConfigFirst = () => AnyConfig -type CreateConfigSubsequent = (config: AnyConfig) => AnyConfig -type TailwindMerge = (...classLists: ClassNameValue[]) => string -type ConfigUtils = ReturnType - -export function createTailwindMerge( - createConfigFirst: CreateConfigFirst, - ...createConfigRest: CreateConfigSubsequent[] -): TailwindMerge { - let configUtils: ConfigUtils - let cacheGet: ConfigUtils['cache']['get'] - let cacheSet: ConfigUtils['cache']['set'] - let functionToCall = initTailwindMerge - - function initTailwindMerge(classList: string) { - const config = createConfigRest.reduce( - (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), - createConfigFirst() as AnyConfig, - ) - - configUtils = createConfigUtils(config) - cacheGet = configUtils.cache.get - cacheSet = configUtils.cache.set - functionToCall = tailwindMerge - - return tailwindMerge(classList) - } - - function tailwindMerge(classList: string) { - const cachedResult = cacheGet(classList) - - if (cachedResult) { - return cachedResult - } - - const result = mergeClassList(classList, configUtils) - cacheSet(classList, result) - - return result - } - - return function callTailwindMerge() { - return functionToCall(twJoin.apply(null, arguments as any)) - } -} diff --git a/node_modules/tailwind-merge/src/lib/default-config.ts b/node_modules/tailwind-merge/src/lib/default-config.ts deleted file mode 100644 index 248331d..0000000 --- a/node_modules/tailwind-merge/src/lib/default-config.ts +++ /dev/null @@ -1,2359 +0,0 @@ -import { fromTheme } from './from-theme' -import { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types' -import { - isAny, - isAnyNonArbitrary, - isArbitraryImage, - isArbitraryLength, - isArbitraryNumber, - isArbitraryPosition, - isArbitraryShadow, - isArbitrarySize, - isArbitraryValue, - isArbitraryVariable, - isArbitraryVariableFamilyName, - isArbitraryVariableImage, - isArbitraryVariableLength, - isArbitraryVariablePosition, - isArbitraryVariableShadow, - isArbitraryVariableSize, - isFraction, - isInteger, - isNumber, - isPercent, - isTshirtSize, -} from './validators' - -export const getDefaultConfig = () => { - /** - * Theme getters for theme variable namespaces - * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces - */ - /***/ - - const themeColor = fromTheme('color') - const themeFont = fromTheme('font') - const themeText = fromTheme('text') - const themeFontWeight = fromTheme('font-weight') - const themeTracking = fromTheme('tracking') - const themeLeading = fromTheme('leading') - const themeBreakpoint = fromTheme('breakpoint') - const themeContainer = fromTheme('container') - const themeSpacing = fromTheme('spacing') - const themeRadius = fromTheme('radius') - const themeShadow = fromTheme('shadow') - const themeInsetShadow = fromTheme('inset-shadow') - const themeTextShadow = fromTheme('text-shadow') - const themeDropShadow = fromTheme('drop-shadow') - const themeBlur = fromTheme('blur') - const themePerspective = fromTheme('perspective') - const themeAspect = fromTheme('aspect') - const themeEase = fromTheme('ease') - const themeAnimate = fromTheme('animate') - - /** - * Helpers to avoid repeating the same scales - * - * We use functions that create a new array every time they're called instead of static arrays. - * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config. - */ - /***/ - - const scaleBreak = () => - ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const - const scalePosition = () => - [ - 'center', - 'top', - 'bottom', - 'left', - 'right', - 'top-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-top', - 'top-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-top', - 'bottom-right', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'right-bottom', - 'bottom-left', - // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378 - 'left-bottom', - ] as const - const scalePositionWithArbitrary = () => - [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const - const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const - const scaleOverscroll = () => ['auto', 'contain', 'none'] as const - const scaleUnambiguousSpacing = () => - [isArbitraryVariable, isArbitraryValue, themeSpacing] as const - const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] as const - const scaleGridTemplateColsRows = () => - [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const - const scaleGridColRowStartAndEnd = () => - [ - 'auto', - { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] }, - isInteger, - isArbitraryVariable, - isArbitraryValue, - ] as const - const scaleGridColRowStartOrEnd = () => - [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const - const scaleGridAutoColsRows = () => - ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const - const scaleAlignPrimaryAxis = () => - [ - 'start', - 'end', - 'center', - 'between', - 'around', - 'evenly', - 'stretch', - 'baseline', - 'center-safe', - 'end-safe', - ] as const - const scaleAlignSecondaryAxis = () => - ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const - const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const - const scaleSizing = () => - [ - isFraction, - 'auto', - 'full', - 'dvw', - 'dvh', - 'lvw', - 'lvh', - 'svw', - 'svh', - 'min', - 'max', - 'fit', - ...scaleUnambiguousSpacing(), - ] as const - const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const - const scaleBgPosition = () => - [ - ...scalePosition(), - isArbitraryVariablePosition, - isArbitraryPosition, - { position: [isArbitraryVariable, isArbitraryValue] }, - ] as const - const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const - const scaleBgSize = () => - [ - 'auto', - 'cover', - 'contain', - isArbitraryVariableSize, - isArbitrarySize, - { size: [isArbitraryVariable, isArbitraryValue] }, - ] as const - const scaleGradientStopPosition = () => - [isPercent, isArbitraryVariableLength, isArbitraryLength] as const - const scaleRadius = () => - [ - // Deprecated since Tailwind CSS v4.0.0 - '', - 'none', - 'full', - themeRadius, - isArbitraryVariable, - isArbitraryValue, - ] as const - const scaleBorderWidth = () => - ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const - const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const - const scaleBlendMode = () => - [ - 'normal', - 'multiply', - 'screen', - 'overlay', - 'darken', - 'lighten', - 'color-dodge', - 'color-burn', - 'hard-light', - 'soft-light', - 'difference', - 'exclusion', - 'hue', - 'saturation', - 'color', - 'luminosity', - ] as const - const scaleMaskImagePosition = () => - [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] as const - const scaleBlur = () => - [ - // Deprecated since Tailwind CSS v4.0.0 - '', - 'none', - themeBlur, - isArbitraryVariable, - isArbitraryValue, - ] as const - const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const - const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const - const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const - const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] as const - - return { - cacheSize: 500, - theme: { - animate: ['spin', 'ping', 'pulse', 'bounce'], - aspect: ['video'], - blur: [isTshirtSize], - breakpoint: [isTshirtSize], - color: [isAny], - container: [isTshirtSize], - 'drop-shadow': [isTshirtSize], - ease: ['in', 'out', 'in-out'], - font: [isAnyNonArbitrary], - 'font-weight': [ - 'thin', - 'extralight', - 'light', - 'normal', - 'medium', - 'semibold', - 'bold', - 'extrabold', - 'black', - ], - 'inset-shadow': [isTshirtSize], - leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'], - perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'], - radius: [isTshirtSize], - shadow: [isTshirtSize], - spacing: ['px', isNumber], - text: [isTshirtSize], - 'text-shadow': [isTshirtSize], - tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'], - }, - classGroups: { - // -------------- - // --- Layout --- - // -------------- - - /** - * Aspect Ratio - * @see https://tailwindcss.com/docs/aspect-ratio - */ - aspect: [ - { - aspect: [ - 'auto', - 'square', - isFraction, - isArbitraryValue, - isArbitraryVariable, - themeAspect, - ], - }, - ], - /** - * Container - * @see https://tailwindcss.com/docs/container - * @deprecated since Tailwind CSS v4.0.0 - */ - container: ['container'], - /** - * Columns - * @see https://tailwindcss.com/docs/columns - */ - columns: [ - { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] }, - ], - /** - * Break After - * @see https://tailwindcss.com/docs/break-after - */ - 'break-after': [{ 'break-after': scaleBreak() }], - /** - * Break Before - * @see https://tailwindcss.com/docs/break-before - */ - 'break-before': [{ 'break-before': scaleBreak() }], - /** - * Break Inside - * @see https://tailwindcss.com/docs/break-inside - */ - 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }], - /** - * Box Decoration Break - * @see https://tailwindcss.com/docs/box-decoration-break - */ - 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }], - /** - * Box Sizing - * @see https://tailwindcss.com/docs/box-sizing - */ - box: [{ box: ['border', 'content'] }], - /** - * Display - * @see https://tailwindcss.com/docs/display - */ - display: [ - 'block', - 'inline-block', - 'inline', - 'flex', - 'inline-flex', - 'table', - 'inline-table', - 'table-caption', - 'table-cell', - 'table-column', - 'table-column-group', - 'table-footer-group', - 'table-header-group', - 'table-row-group', - 'table-row', - 'flow-root', - 'grid', - 'inline-grid', - 'contents', - 'list-item', - 'hidden', - ], - /** - * Screen Reader Only - * @see https://tailwindcss.com/docs/display#screen-reader-only - */ - sr: ['sr-only', 'not-sr-only'], - /** - * Floats - * @see https://tailwindcss.com/docs/float - */ - float: [{ float: ['right', 'left', 'none', 'start', 'end'] }], - /** - * Clear - * @see https://tailwindcss.com/docs/clear - */ - clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }], - /** - * Isolation - * @see https://tailwindcss.com/docs/isolation - */ - isolation: ['isolate', 'isolation-auto'], - /** - * Object Fit - * @see https://tailwindcss.com/docs/object-fit - */ - 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }], - /** - * Object Position - * @see https://tailwindcss.com/docs/object-position - */ - 'object-position': [{ object: scalePositionWithArbitrary() }], - /** - * Overflow - * @see https://tailwindcss.com/docs/overflow - */ - overflow: [{ overflow: scaleOverflow() }], - /** - * Overflow X - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-x': [{ 'overflow-x': scaleOverflow() }], - /** - * Overflow Y - * @see https://tailwindcss.com/docs/overflow - */ - 'overflow-y': [{ 'overflow-y': scaleOverflow() }], - /** - * Overscroll Behavior - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - overscroll: [{ overscroll: scaleOverscroll() }], - /** - * Overscroll Behavior X - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }], - /** - * Overscroll Behavior Y - * @see https://tailwindcss.com/docs/overscroll-behavior - */ - 'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }], - /** - * Position - * @see https://tailwindcss.com/docs/position - */ - position: ['static', 'fixed', 'absolute', 'relative', 'sticky'], - /** - * Top / Right / Bottom / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - inset: [{ inset: scaleInset() }], - /** - * Right / Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-x': [{ 'inset-x': scaleInset() }], - /** - * Top / Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - 'inset-y': [{ 'inset-y': scaleInset() }], - /** - * Start - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - start: [{ start: scaleInset() }], - /** - * End - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - end: [{ end: scaleInset() }], - /** - * Top - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - top: [{ top: scaleInset() }], - /** - * Right - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - right: [{ right: scaleInset() }], - /** - * Bottom - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - bottom: [{ bottom: scaleInset() }], - /** - * Left - * @see https://tailwindcss.com/docs/top-right-bottom-left - */ - left: [{ left: scaleInset() }], - /** - * Visibility - * @see https://tailwindcss.com/docs/visibility - */ - visibility: ['visible', 'invisible', 'collapse'], - /** - * Z-Index - * @see https://tailwindcss.com/docs/z-index - */ - z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }], - - // ------------------------ - // --- Flexbox and Grid --- - // ------------------------ - - /** - * Flex Basis - * @see https://tailwindcss.com/docs/flex-basis - */ - basis: [ - { - basis: [ - isFraction, - 'full', - 'auto', - themeContainer, - ...scaleUnambiguousSpacing(), - ], - }, - ], - /** - * Flex Direction - * @see https://tailwindcss.com/docs/flex-direction - */ - 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }], - /** - * Flex Wrap - * @see https://tailwindcss.com/docs/flex-wrap - */ - 'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }], - /** - * Flex - * @see https://tailwindcss.com/docs/flex - */ - flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }], - /** - * Flex Grow - * @see https://tailwindcss.com/docs/flex-grow - */ - grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Flex Shrink - * @see https://tailwindcss.com/docs/flex-shrink - */ - shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Order - * @see https://tailwindcss.com/docs/order - */ - order: [ - { - order: [ - isInteger, - 'first', - 'last', - 'none', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - /** - * Grid Template Columns - * @see https://tailwindcss.com/docs/grid-template-columns - */ - 'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }], - /** - * Grid Column Start / End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start-end': [{ col: scaleGridColRowStartAndEnd() }], - /** - * Grid Column Start - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }], - /** - * Grid Column End - * @see https://tailwindcss.com/docs/grid-column - */ - 'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }], - /** - * Grid Template Rows - * @see https://tailwindcss.com/docs/grid-template-rows - */ - 'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }], - /** - * Grid Row Start / End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start-end': [{ row: scaleGridColRowStartAndEnd() }], - /** - * Grid Row Start - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }], - /** - * Grid Row End - * @see https://tailwindcss.com/docs/grid-row - */ - 'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }], - /** - * Grid Auto Flow - * @see https://tailwindcss.com/docs/grid-auto-flow - */ - 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }], - /** - * Grid Auto Columns - * @see https://tailwindcss.com/docs/grid-auto-columns - */ - 'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }], - /** - * Grid Auto Rows - * @see https://tailwindcss.com/docs/grid-auto-rows - */ - 'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }], - /** - * Gap - * @see https://tailwindcss.com/docs/gap - */ - gap: [{ gap: scaleUnambiguousSpacing() }], - /** - * Gap X - * @see https://tailwindcss.com/docs/gap - */ - 'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }], - /** - * Gap Y - * @see https://tailwindcss.com/docs/gap - */ - 'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }], - /** - * Justify Content - * @see https://tailwindcss.com/docs/justify-content - */ - 'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }], - /** - * Justify Items - * @see https://tailwindcss.com/docs/justify-items - */ - 'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }], - /** - * Justify Self - * @see https://tailwindcss.com/docs/justify-self - */ - 'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }], - /** - * Align Content - * @see https://tailwindcss.com/docs/align-content - */ - 'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }], - /** - * Align Items - * @see https://tailwindcss.com/docs/align-items - */ - 'align-items': [{ items: [...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }], - /** - * Align Self - * @see https://tailwindcss.com/docs/align-self - */ - 'align-self': [ - { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }, - ], - /** - * Place Content - * @see https://tailwindcss.com/docs/place-content - */ - 'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }], - /** - * Place Items - * @see https://tailwindcss.com/docs/place-items - */ - 'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }], - /** - * Place Self - * @see https://tailwindcss.com/docs/place-self - */ - 'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }], - // Spacing - /** - * Padding - * @see https://tailwindcss.com/docs/padding - */ - p: [{ p: scaleUnambiguousSpacing() }], - /** - * Padding X - * @see https://tailwindcss.com/docs/padding - */ - px: [{ px: scaleUnambiguousSpacing() }], - /** - * Padding Y - * @see https://tailwindcss.com/docs/padding - */ - py: [{ py: scaleUnambiguousSpacing() }], - /** - * Padding Start - * @see https://tailwindcss.com/docs/padding - */ - ps: [{ ps: scaleUnambiguousSpacing() }], - /** - * Padding End - * @see https://tailwindcss.com/docs/padding - */ - pe: [{ pe: scaleUnambiguousSpacing() }], - /** - * Padding Top - * @see https://tailwindcss.com/docs/padding - */ - pt: [{ pt: scaleUnambiguousSpacing() }], - /** - * Padding Right - * @see https://tailwindcss.com/docs/padding - */ - pr: [{ pr: scaleUnambiguousSpacing() }], - /** - * Padding Bottom - * @see https://tailwindcss.com/docs/padding - */ - pb: [{ pb: scaleUnambiguousSpacing() }], - /** - * Padding Left - * @see https://tailwindcss.com/docs/padding - */ - pl: [{ pl: scaleUnambiguousSpacing() }], - /** - * Margin - * @see https://tailwindcss.com/docs/margin - */ - m: [{ m: scaleMargin() }], - /** - * Margin X - * @see https://tailwindcss.com/docs/margin - */ - mx: [{ mx: scaleMargin() }], - /** - * Margin Y - * @see https://tailwindcss.com/docs/margin - */ - my: [{ my: scaleMargin() }], - /** - * Margin Start - * @see https://tailwindcss.com/docs/margin - */ - ms: [{ ms: scaleMargin() }], - /** - * Margin End - * @see https://tailwindcss.com/docs/margin - */ - me: [{ me: scaleMargin() }], - /** - * Margin Top - * @see https://tailwindcss.com/docs/margin - */ - mt: [{ mt: scaleMargin() }], - /** - * Margin Right - * @see https://tailwindcss.com/docs/margin - */ - mr: [{ mr: scaleMargin() }], - /** - * Margin Bottom - * @see https://tailwindcss.com/docs/margin - */ - mb: [{ mb: scaleMargin() }], - /** - * Margin Left - * @see https://tailwindcss.com/docs/margin - */ - ml: [{ ml: scaleMargin() }], - /** - * Space Between X - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x': [{ 'space-x': scaleUnambiguousSpacing() }], - /** - * Space Between X Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-x-reverse': ['space-x-reverse'], - /** - * Space Between Y - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y': [{ 'space-y': scaleUnambiguousSpacing() }], - /** - * Space Between Y Reverse - * @see https://tailwindcss.com/docs/margin#adding-space-between-children - */ - 'space-y-reverse': ['space-y-reverse'], - - // -------------- - // --- Sizing --- - // -------------- - - /** - * Size - * @see https://tailwindcss.com/docs/width#setting-both-width-and-height - */ - size: [{ size: scaleSizing() }], - /** - * Width - * @see https://tailwindcss.com/docs/width - */ - w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }], - /** - * Min-Width - * @see https://tailwindcss.com/docs/min-width - */ - 'min-w': [ - { - 'min-w': [ - themeContainer, - 'screen', - /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'none', - ...scaleSizing(), - ], - }, - ], - /** - * Max-Width - * @see https://tailwindcss.com/docs/max-width - */ - 'max-w': [ - { - 'max-w': [ - themeContainer, - 'screen', - 'none', - /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - 'prose', - /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - { screen: [themeBreakpoint] }, - ...scaleSizing(), - ], - }, - ], - /** - * Height - * @see https://tailwindcss.com/docs/height - */ - h: [{ h: ['screen', 'lh', ...scaleSizing()] }], - /** - * Min-Height - * @see https://tailwindcss.com/docs/min-height - */ - 'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }], - /** - * Max-Height - * @see https://tailwindcss.com/docs/max-height - */ - 'max-h': [{ 'max-h': ['screen', 'lh', ...scaleSizing()] }], - - // ------------------ - // --- Typography --- - // ------------------ - - /** - * Font Size - * @see https://tailwindcss.com/docs/font-size - */ - 'font-size': [ - { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] }, - ], - /** - * Font Smoothing - * @see https://tailwindcss.com/docs/font-smoothing - */ - 'font-smoothing': ['antialiased', 'subpixel-antialiased'], - /** - * Font Style - * @see https://tailwindcss.com/docs/font-style - */ - 'font-style': ['italic', 'not-italic'], - /** - * Font Weight - * @see https://tailwindcss.com/docs/font-weight - */ - 'font-weight': [{ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] }], - /** - * Font Stretch - * @see https://tailwindcss.com/docs/font-stretch - */ - 'font-stretch': [ - { - 'font-stretch': [ - 'ultra-condensed', - 'extra-condensed', - 'condensed', - 'semi-condensed', - 'normal', - 'semi-expanded', - 'expanded', - 'extra-expanded', - 'ultra-expanded', - isPercent, - isArbitraryValue, - ], - }, - ], - /** - * Font Family - * @see https://tailwindcss.com/docs/font-family - */ - 'font-family': [{ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] }], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-normal': ['normal-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-ordinal': ['ordinal'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-slashed-zero': ['slashed-zero'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-figure': ['lining-nums', 'oldstyle-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-spacing': ['proportional-nums', 'tabular-nums'], - /** - * Font Variant Numeric - * @see https://tailwindcss.com/docs/font-variant-numeric - */ - 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'], - /** - * Letter Spacing - * @see https://tailwindcss.com/docs/letter-spacing - */ - tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }], - /** - * Line Clamp - * @see https://tailwindcss.com/docs/line-clamp - */ - 'line-clamp': [ - { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] }, - ], - /** - * Line Height - * @see https://tailwindcss.com/docs/line-height - */ - leading: [ - { - leading: [ - /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */ - themeLeading, - ...scaleUnambiguousSpacing(), - ], - }, - ], - /** - * List Style Image - * @see https://tailwindcss.com/docs/list-style-image - */ - 'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }], - /** - * List Style Position - * @see https://tailwindcss.com/docs/list-style-position - */ - 'list-style-position': [{ list: ['inside', 'outside'] }], - /** - * List Style Type - * @see https://tailwindcss.com/docs/list-style-type - */ - 'list-style-type': [ - { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Text Alignment - * @see https://tailwindcss.com/docs/text-align - */ - 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }], - /** - * Placeholder Color - * @deprecated since Tailwind CSS v3.0.0 - * @see https://v3.tailwindcss.com/docs/placeholder-color - */ - 'placeholder-color': [{ placeholder: scaleColor() }], - /** - * Text Color - * @see https://tailwindcss.com/docs/text-color - */ - 'text-color': [{ text: scaleColor() }], - /** - * Text Decoration - * @see https://tailwindcss.com/docs/text-decoration - */ - 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'], - /** - * Text Decoration Style - * @see https://tailwindcss.com/docs/text-decoration-style - */ - 'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }], - /** - * Text Decoration Thickness - * @see https://tailwindcss.com/docs/text-decoration-thickness - */ - 'text-decoration-thickness': [ - { - decoration: [ - isNumber, - 'from-font', - 'auto', - isArbitraryVariable, - isArbitraryLength, - ], - }, - ], - /** - * Text Decoration Color - * @see https://tailwindcss.com/docs/text-decoration-color - */ - 'text-decoration-color': [{ decoration: scaleColor() }], - /** - * Text Underline Offset - * @see https://tailwindcss.com/docs/text-underline-offset - */ - 'underline-offset': [ - { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Text Transform - * @see https://tailwindcss.com/docs/text-transform - */ - 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'], - /** - * Text Overflow - * @see https://tailwindcss.com/docs/text-overflow - */ - 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'], - /** - * Text Wrap - * @see https://tailwindcss.com/docs/text-wrap - */ - 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }], - /** - * Text Indent - * @see https://tailwindcss.com/docs/text-indent - */ - indent: [{ indent: scaleUnambiguousSpacing() }], - /** - * Vertical Alignment - * @see https://tailwindcss.com/docs/vertical-align - */ - 'vertical-align': [ - { - align: [ - 'baseline', - 'top', - 'middle', - 'bottom', - 'text-top', - 'text-bottom', - 'sub', - 'super', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - /** - * Whitespace - * @see https://tailwindcss.com/docs/whitespace - */ - whitespace: [ - { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] }, - ], - /** - * Word Break - * @see https://tailwindcss.com/docs/word-break - */ - break: [{ break: ['normal', 'words', 'all', 'keep'] }], - /** - * Overflow Wrap - * @see https://tailwindcss.com/docs/overflow-wrap - */ - wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }], - /** - * Hyphens - * @see https://tailwindcss.com/docs/hyphens - */ - hyphens: [{ hyphens: ['none', 'manual', 'auto'] }], - /** - * Content - * @see https://tailwindcss.com/docs/content - */ - content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }], - - // ------------------- - // --- Backgrounds --- - // ------------------- - - /** - * Background Attachment - * @see https://tailwindcss.com/docs/background-attachment - */ - 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }], - /** - * Background Clip - * @see https://tailwindcss.com/docs/background-clip - */ - 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }], - /** - * Background Origin - * @see https://tailwindcss.com/docs/background-origin - */ - 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }], - /** - * Background Position - * @see https://tailwindcss.com/docs/background-position - */ - 'bg-position': [{ bg: scaleBgPosition() }], - /** - * Background Repeat - * @see https://tailwindcss.com/docs/background-repeat - */ - 'bg-repeat': [{ bg: scaleBgRepeat() }], - /** - * Background Size - * @see https://tailwindcss.com/docs/background-size - */ - 'bg-size': [{ bg: scaleBgSize() }], - /** - * Background Image - * @see https://tailwindcss.com/docs/background-image - */ - 'bg-image': [ - { - bg: [ - 'none', - { - linear: [ - { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] }, - isInteger, - isArbitraryVariable, - isArbitraryValue, - ], - radial: ['', isArbitraryVariable, isArbitraryValue], - conic: [isInteger, isArbitraryVariable, isArbitraryValue], - }, - isArbitraryVariableImage, - isArbitraryImage, - ], - }, - ], - /** - * Background Color - * @see https://tailwindcss.com/docs/background-color - */ - 'bg-color': [{ bg: scaleColor() }], - /** - * Gradient Color Stops From Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from-pos': [{ from: scaleGradientStopPosition() }], - /** - * Gradient Color Stops Via Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via-pos': [{ via: scaleGradientStopPosition() }], - /** - * Gradient Color Stops To Position - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to-pos': [{ to: scaleGradientStopPosition() }], - /** - * Gradient Color Stops From - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-from': [{ from: scaleColor() }], - /** - * Gradient Color Stops Via - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-via': [{ via: scaleColor() }], - /** - * Gradient Color Stops To - * @see https://tailwindcss.com/docs/gradient-color-stops - */ - 'gradient-to': [{ to: scaleColor() }], - - // --------------- - // --- Borders --- - // --------------- - - /** - * Border Radius - * @see https://tailwindcss.com/docs/border-radius - */ - rounded: [{ rounded: scaleRadius() }], - /** - * Border Radius Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-s': [{ 'rounded-s': scaleRadius() }], - /** - * Border Radius End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-e': [{ 'rounded-e': scaleRadius() }], - /** - * Border Radius Top - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-t': [{ 'rounded-t': scaleRadius() }], - /** - * Border Radius Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-r': [{ 'rounded-r': scaleRadius() }], - /** - * Border Radius Bottom - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-b': [{ 'rounded-b': scaleRadius() }], - /** - * Border Radius Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-l': [{ 'rounded-l': scaleRadius() }], - /** - * Border Radius Start Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ss': [{ 'rounded-ss': scaleRadius() }], - /** - * Border Radius Start End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-se': [{ 'rounded-se': scaleRadius() }], - /** - * Border Radius End End - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-ee': [{ 'rounded-ee': scaleRadius() }], - /** - * Border Radius End Start - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-es': [{ 'rounded-es': scaleRadius() }], - /** - * Border Radius Top Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tl': [{ 'rounded-tl': scaleRadius() }], - /** - * Border Radius Top Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-tr': [{ 'rounded-tr': scaleRadius() }], - /** - * Border Radius Bottom Right - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-br': [{ 'rounded-br': scaleRadius() }], - /** - * Border Radius Bottom Left - * @see https://tailwindcss.com/docs/border-radius - */ - 'rounded-bl': [{ 'rounded-bl': scaleRadius() }], - /** - * Border Width - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w': [{ border: scaleBorderWidth() }], - /** - * Border Width X - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-x': [{ 'border-x': scaleBorderWidth() }], - /** - * Border Width Y - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-y': [{ 'border-y': scaleBorderWidth() }], - /** - * Border Width Start - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-s': [{ 'border-s': scaleBorderWidth() }], - /** - * Border Width End - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-e': [{ 'border-e': scaleBorderWidth() }], - /** - * Border Width Top - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-t': [{ 'border-t': scaleBorderWidth() }], - /** - * Border Width Right - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-r': [{ 'border-r': scaleBorderWidth() }], - /** - * Border Width Bottom - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-b': [{ 'border-b': scaleBorderWidth() }], - /** - * Border Width Left - * @see https://tailwindcss.com/docs/border-width - */ - 'border-w-l': [{ 'border-l': scaleBorderWidth() }], - /** - * Divide Width X - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x': [{ 'divide-x': scaleBorderWidth() }], - /** - * Divide Width X Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-x-reverse': ['divide-x-reverse'], - /** - * Divide Width Y - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y': [{ 'divide-y': scaleBorderWidth() }], - /** - * Divide Width Y Reverse - * @see https://tailwindcss.com/docs/border-width#between-children - */ - 'divide-y-reverse': ['divide-y-reverse'], - /** - * Border Style - * @see https://tailwindcss.com/docs/border-style - */ - 'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }], - /** - * Divide Style - * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style - */ - 'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }], - /** - * Border Color - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color': [{ border: scaleColor() }], - /** - * Border Color X - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-x': [{ 'border-x': scaleColor() }], - /** - * Border Color Y - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-y': [{ 'border-y': scaleColor() }], - /** - * Border Color S - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-s': [{ 'border-s': scaleColor() }], - /** - * Border Color E - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-e': [{ 'border-e': scaleColor() }], - /** - * Border Color Top - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-t': [{ 'border-t': scaleColor() }], - /** - * Border Color Right - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-r': [{ 'border-r': scaleColor() }], - /** - * Border Color Bottom - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-b': [{ 'border-b': scaleColor() }], - /** - * Border Color Left - * @see https://tailwindcss.com/docs/border-color - */ - 'border-color-l': [{ 'border-l': scaleColor() }], - /** - * Divide Color - * @see https://tailwindcss.com/docs/divide-color - */ - 'divide-color': [{ divide: scaleColor() }], - /** - * Outline Style - * @see https://tailwindcss.com/docs/outline-style - */ - 'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }], - /** - * Outline Offset - * @see https://tailwindcss.com/docs/outline-offset - */ - 'outline-offset': [ - { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Outline Width - * @see https://tailwindcss.com/docs/outline-width - */ - 'outline-w': [ - { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] }, - ], - /** - * Outline Color - * @see https://tailwindcss.com/docs/outline-color - */ - 'outline-color': [{ outline: scaleColor() }], - - // --------------- - // --- Effects --- - // --------------- - - /** - * Box Shadow - * @see https://tailwindcss.com/docs/box-shadow - */ - shadow: [ - { - shadow: [ - // Deprecated since Tailwind CSS v4.0.0 - '', - 'none', - themeShadow, - isArbitraryVariableShadow, - isArbitraryShadow, - ], - }, - ], - /** - * Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color - */ - 'shadow-color': [{ shadow: scaleColor() }], - /** - * Inset Box Shadow - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow - */ - 'inset-shadow': [ - { - 'inset-shadow': [ - 'none', - themeInsetShadow, - isArbitraryVariableShadow, - isArbitraryShadow, - ], - }, - ], - /** - * Inset Box Shadow Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color - */ - 'inset-shadow-color': [{ 'inset-shadow': scaleColor() }], - /** - * Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring - */ - 'ring-w': [{ ring: scaleBorderWidth() }], - /** - * Ring Width Inset - * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-w-inset': ['ring-inset'], - /** - * Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color - */ - 'ring-color': [{ ring: scaleColor() }], - /** - * Ring Offset Width - * @see https://v3.tailwindcss.com/docs/ring-offset-width - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }], - /** - * Ring Offset Color - * @see https://v3.tailwindcss.com/docs/ring-offset-color - * @deprecated since Tailwind CSS v4.0.0 - * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158 - */ - 'ring-offset-color': [{ 'ring-offset': scaleColor() }], - /** - * Inset Ring Width - * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring - */ - 'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }], - /** - * Inset Ring Color - * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color - */ - 'inset-ring-color': [{ 'inset-ring': scaleColor() }], - /** - * Text Shadow - * @see https://tailwindcss.com/docs/text-shadow - */ - 'text-shadow': [ - { - 'text-shadow': [ - 'none', - themeTextShadow, - isArbitraryVariableShadow, - isArbitraryShadow, - ], - }, - ], - /** - * Text Shadow Color - * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color - */ - 'text-shadow-color': [{ 'text-shadow': scaleColor() }], - /** - * Opacity - * @see https://tailwindcss.com/docs/opacity - */ - opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Mix Blend Mode - * @see https://tailwindcss.com/docs/mix-blend-mode - */ - 'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }], - /** - * Background Blend Mode - * @see https://tailwindcss.com/docs/background-blend-mode - */ - 'bg-blend': [{ 'bg-blend': scaleBlendMode() }], - /** - * Mask Clip - * @see https://tailwindcss.com/docs/mask-clip - */ - 'mask-clip': [ - { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] }, - 'mask-no-clip', - ], - /** - * Mask Composite - * @see https://tailwindcss.com/docs/mask-composite - */ - 'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }], - 'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }], - 'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }], - 'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }], - 'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }], - 'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }], - 'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }], - 'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }], - 'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }], - 'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }], - 'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }], - 'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }], - 'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }], - 'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }], - 'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }], - 'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }], - 'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }], - 'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }], - 'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }], - 'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }], - 'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }], - 'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }], - 'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }], - 'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }], - 'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }], - 'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }], - 'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }], - 'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }], - 'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }], - 'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }], - 'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }], - 'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }], - 'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }], - 'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }], - 'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }], - 'mask-image-radial-size': [ - { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] }, - ], - 'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }], - 'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }], - 'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }], - 'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }], - 'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }], - 'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }], - /** - * Mask Mode - * @see https://tailwindcss.com/docs/mask-mode - */ - 'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }], - /** - * Mask Origin - * @see https://tailwindcss.com/docs/mask-origin - */ - 'mask-origin': [ - { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] }, - ], - /** - * Mask Position - * @see https://tailwindcss.com/docs/mask-position - */ - 'mask-position': [{ mask: scaleBgPosition() }], - /** - * Mask Repeat - * @see https://tailwindcss.com/docs/mask-repeat - */ - 'mask-repeat': [{ mask: scaleBgRepeat() }], - /** - * Mask Size - * @see https://tailwindcss.com/docs/mask-size - */ - 'mask-size': [{ mask: scaleBgSize() }], - /** - * Mask Type - * @see https://tailwindcss.com/docs/mask-type - */ - 'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }], - /** - * Mask Image - * @see https://tailwindcss.com/docs/mask-image - */ - 'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }], - - // --------------- - // --- Filters --- - // --------------- - - /** - * Filter - * @see https://tailwindcss.com/docs/filter - */ - filter: [ - { - filter: [ - // Deprecated since Tailwind CSS v3.0.0 - '', - 'none', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - /** - * Blur - * @see https://tailwindcss.com/docs/blur - */ - blur: [{ blur: scaleBlur() }], - /** - * Brightness - * @see https://tailwindcss.com/docs/brightness - */ - brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Contrast - * @see https://tailwindcss.com/docs/contrast - */ - contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Drop Shadow - * @see https://tailwindcss.com/docs/drop-shadow - */ - 'drop-shadow': [ - { - 'drop-shadow': [ - // Deprecated since Tailwind CSS v4.0.0 - '', - 'none', - themeDropShadow, - isArbitraryVariableShadow, - isArbitraryShadow, - ], - }, - ], - /** - * Drop Shadow Color - * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color - */ - 'drop-shadow-color': [{ 'drop-shadow': scaleColor() }], - /** - * Grayscale - * @see https://tailwindcss.com/docs/grayscale - */ - grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Hue Rotate - * @see https://tailwindcss.com/docs/hue-rotate - */ - 'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Invert - * @see https://tailwindcss.com/docs/invert - */ - invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Saturate - * @see https://tailwindcss.com/docs/saturate - */ - saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Sepia - * @see https://tailwindcss.com/docs/sepia - */ - sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Backdrop Filter - * @see https://tailwindcss.com/docs/backdrop-filter - */ - 'backdrop-filter': [ - { - 'backdrop-filter': [ - // Deprecated since Tailwind CSS v3.0.0 - '', - 'none', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - /** - * Backdrop Blur - * @see https://tailwindcss.com/docs/backdrop-blur - */ - 'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }], - /** - * Backdrop Brightness - * @see https://tailwindcss.com/docs/backdrop-brightness - */ - 'backdrop-brightness': [ - { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Contrast - * @see https://tailwindcss.com/docs/backdrop-contrast - */ - 'backdrop-contrast': [ - { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Grayscale - * @see https://tailwindcss.com/docs/backdrop-grayscale - */ - 'backdrop-grayscale': [ - { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Hue Rotate - * @see https://tailwindcss.com/docs/backdrop-hue-rotate - */ - 'backdrop-hue-rotate': [ - { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Invert - * @see https://tailwindcss.com/docs/backdrop-invert - */ - 'backdrop-invert': [ - { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Opacity - * @see https://tailwindcss.com/docs/backdrop-opacity - */ - 'backdrop-opacity': [ - { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Saturate - * @see https://tailwindcss.com/docs/backdrop-saturate - */ - 'backdrop-saturate': [ - { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Backdrop Sepia - * @see https://tailwindcss.com/docs/backdrop-sepia - */ - 'backdrop-sepia': [ - { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] }, - ], - - // -------------- - // --- Tables --- - // -------------- - - /** - * Border Collapse - * @see https://tailwindcss.com/docs/border-collapse - */ - 'border-collapse': [{ border: ['collapse', 'separate'] }], - /** - * Border Spacing - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }], - /** - * Border Spacing X - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }], - /** - * Border Spacing Y - * @see https://tailwindcss.com/docs/border-spacing - */ - 'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }], - /** - * Table Layout - * @see https://tailwindcss.com/docs/table-layout - */ - 'table-layout': [{ table: ['auto', 'fixed'] }], - /** - * Caption Side - * @see https://tailwindcss.com/docs/caption-side - */ - caption: [{ caption: ['top', 'bottom'] }], - - // --------------------------------- - // --- Transitions and Animation --- - // --------------------------------- - - /** - * Transition Property - * @see https://tailwindcss.com/docs/transition-property - */ - transition: [ - { - transition: [ - '', - 'all', - 'colors', - 'opacity', - 'shadow', - 'transform', - 'none', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - /** - * Transition Behavior - * @see https://tailwindcss.com/docs/transition-behavior - */ - 'transition-behavior': [{ transition: ['normal', 'discrete'] }], - /** - * Transition Duration - * @see https://tailwindcss.com/docs/transition-duration - */ - duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }], - /** - * Transition Timing Function - * @see https://tailwindcss.com/docs/transition-timing-function - */ - ease: [ - { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Transition Delay - * @see https://tailwindcss.com/docs/transition-delay - */ - delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }], - /** - * Animation - * @see https://tailwindcss.com/docs/animation - */ - animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }], - - // ------------------ - // --- Transforms --- - // ------------------ - - /** - * Backface Visibility - * @see https://tailwindcss.com/docs/backface-visibility - */ - backface: [{ backface: ['hidden', 'visible'] }], - /** - * Perspective - * @see https://tailwindcss.com/docs/perspective - */ - perspective: [ - { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] }, - ], - /** - * Perspective Origin - * @see https://tailwindcss.com/docs/perspective-origin - */ - 'perspective-origin': [{ 'perspective-origin': scalePositionWithArbitrary() }], - /** - * Rotate - * @see https://tailwindcss.com/docs/rotate - */ - rotate: [{ rotate: scaleRotate() }], - /** - * Rotate X - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-x': [{ 'rotate-x': scaleRotate() }], - /** - * Rotate Y - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-y': [{ 'rotate-y': scaleRotate() }], - /** - * Rotate Z - * @see https://tailwindcss.com/docs/rotate - */ - 'rotate-z': [{ 'rotate-z': scaleRotate() }], - /** - * Scale - * @see https://tailwindcss.com/docs/scale - */ - scale: [{ scale: scaleScale() }], - /** - * Scale X - * @see https://tailwindcss.com/docs/scale - */ - 'scale-x': [{ 'scale-x': scaleScale() }], - /** - * Scale Y - * @see https://tailwindcss.com/docs/scale - */ - 'scale-y': [{ 'scale-y': scaleScale() }], - /** - * Scale Z - * @see https://tailwindcss.com/docs/scale - */ - 'scale-z': [{ 'scale-z': scaleScale() }], - /** - * Scale 3D - * @see https://tailwindcss.com/docs/scale - */ - 'scale-3d': ['scale-3d'], - /** - * Skew - * @see https://tailwindcss.com/docs/skew - */ - skew: [{ skew: scaleSkew() }], - /** - * Skew X - * @see https://tailwindcss.com/docs/skew - */ - 'skew-x': [{ 'skew-x': scaleSkew() }], - /** - * Skew Y - * @see https://tailwindcss.com/docs/skew - */ - 'skew-y': [{ 'skew-y': scaleSkew() }], - /** - * Transform - * @see https://tailwindcss.com/docs/transform - */ - transform: [ - { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] }, - ], - /** - * Transform Origin - * @see https://tailwindcss.com/docs/transform-origin - */ - 'transform-origin': [{ origin: scalePositionWithArbitrary() }], - /** - * Transform Style - * @see https://tailwindcss.com/docs/transform-style - */ - 'transform-style': [{ transform: ['3d', 'flat'] }], - /** - * Translate - * @see https://tailwindcss.com/docs/translate - */ - translate: [{ translate: scaleTranslate() }], - /** - * Translate X - * @see https://tailwindcss.com/docs/translate - */ - 'translate-x': [{ 'translate-x': scaleTranslate() }], - /** - * Translate Y - * @see https://tailwindcss.com/docs/translate - */ - 'translate-y': [{ 'translate-y': scaleTranslate() }], - /** - * Translate Z - * @see https://tailwindcss.com/docs/translate - */ - 'translate-z': [{ 'translate-z': scaleTranslate() }], - /** - * Translate None - * @see https://tailwindcss.com/docs/translate - */ - 'translate-none': ['translate-none'], - - // --------------------- - // --- Interactivity --- - // --------------------- - - /** - * Accent Color - * @see https://tailwindcss.com/docs/accent-color - */ - accent: [{ accent: scaleColor() }], - /** - * Appearance - * @see https://tailwindcss.com/docs/appearance - */ - appearance: [{ appearance: ['none', 'auto'] }], - /** - * Caret Color - * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities - */ - 'caret-color': [{ caret: scaleColor() }], - /** - * Color Scheme - * @see https://tailwindcss.com/docs/color-scheme - */ - 'color-scheme': [ - { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] }, - ], - /** - * Cursor - * @see https://tailwindcss.com/docs/cursor - */ - cursor: [ - { - cursor: [ - 'auto', - 'default', - 'pointer', - 'wait', - 'text', - 'move', - 'help', - 'not-allowed', - 'none', - 'context-menu', - 'progress', - 'cell', - 'crosshair', - 'vertical-text', - 'alias', - 'copy', - 'no-drop', - 'grab', - 'grabbing', - 'all-scroll', - 'col-resize', - 'row-resize', - 'n-resize', - 'e-resize', - 's-resize', - 'w-resize', - 'ne-resize', - 'nw-resize', - 'se-resize', - 'sw-resize', - 'ew-resize', - 'ns-resize', - 'nesw-resize', - 'nwse-resize', - 'zoom-in', - 'zoom-out', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - /** - * Field Sizing - * @see https://tailwindcss.com/docs/field-sizing - */ - 'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }], - /** - * Pointer Events - * @see https://tailwindcss.com/docs/pointer-events - */ - 'pointer-events': [{ 'pointer-events': ['auto', 'none'] }], - /** - * Resize - * @see https://tailwindcss.com/docs/resize - */ - resize: [{ resize: ['none', '', 'y', 'x'] }], - /** - * Scroll Behavior - * @see https://tailwindcss.com/docs/scroll-behavior - */ - 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }], - /** - * Scroll Margin - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }], - /** - * Scroll Margin X - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }], - /** - * Scroll Margin Y - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }], - /** - * Scroll Margin Start - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }], - /** - * Scroll Margin End - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }], - /** - * Scroll Margin Top - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }], - /** - * Scroll Margin Right - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }], - /** - * Scroll Margin Bottom - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }], - /** - * Scroll Margin Left - * @see https://tailwindcss.com/docs/scroll-margin - */ - 'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }], - /** - * Scroll Padding - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }], - /** - * Scroll Padding X - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }], - /** - * Scroll Padding Y - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }], - /** - * Scroll Padding Start - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }], - /** - * Scroll Padding End - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }], - /** - * Scroll Padding Top - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }], - /** - * Scroll Padding Right - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }], - /** - * Scroll Padding Bottom - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }], - /** - * Scroll Padding Left - * @see https://tailwindcss.com/docs/scroll-padding - */ - 'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }], - /** - * Scroll Snap Align - * @see https://tailwindcss.com/docs/scroll-snap-align - */ - 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }], - /** - * Scroll Snap Stop - * @see https://tailwindcss.com/docs/scroll-snap-stop - */ - 'snap-stop': [{ snap: ['normal', 'always'] }], - /** - * Scroll Snap Type - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }], - /** - * Scroll Snap Type Strictness - * @see https://tailwindcss.com/docs/scroll-snap-type - */ - 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }], - /** - * Touch Action - * @see https://tailwindcss.com/docs/touch-action - */ - touch: [{ touch: ['auto', 'none', 'manipulation'] }], - /** - * Touch Action X - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }], - /** - * Touch Action Y - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }], - /** - * Touch Action Pinch Zoom - * @see https://tailwindcss.com/docs/touch-action - */ - 'touch-pz': ['touch-pinch-zoom'], - /** - * User Select - * @see https://tailwindcss.com/docs/user-select - */ - select: [{ select: ['none', 'text', 'all', 'auto'] }], - /** - * Will Change - * @see https://tailwindcss.com/docs/will-change - */ - 'will-change': [ - { - 'will-change': [ - 'auto', - 'scroll', - 'contents', - 'transform', - isArbitraryVariable, - isArbitraryValue, - ], - }, - ], - - // ----------- - // --- SVG --- - // ----------- - - /** - * Fill - * @see https://tailwindcss.com/docs/fill - */ - fill: [{ fill: ['none', ...scaleColor()] }], - /** - * Stroke Width - * @see https://tailwindcss.com/docs/stroke-width - */ - 'stroke-w': [ - { - stroke: [ - isNumber, - isArbitraryVariableLength, - isArbitraryLength, - isArbitraryNumber, - ], - }, - ], - /** - * Stroke - * @see https://tailwindcss.com/docs/stroke - */ - stroke: [{ stroke: ['none', ...scaleColor()] }], - - // --------------------- - // --- Accessibility --- - // --------------------- - - /** - * Forced Color Adjust - * @see https://tailwindcss.com/docs/forced-color-adjust - */ - 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }], - }, - conflictingClassGroups: { - overflow: ['overflow-x', 'overflow-y'], - overscroll: ['overscroll-x', 'overscroll-y'], - inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'], - 'inset-x': ['right', 'left'], - 'inset-y': ['top', 'bottom'], - flex: ['basis', 'grow', 'shrink'], - gap: ['gap-x', 'gap-y'], - p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'], - px: ['pr', 'pl'], - py: ['pt', 'pb'], - m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'], - mx: ['mr', 'ml'], - my: ['mt', 'mb'], - size: ['w', 'h'], - 'font-size': ['leading'], - 'fvn-normal': [ - 'fvn-ordinal', - 'fvn-slashed-zero', - 'fvn-figure', - 'fvn-spacing', - 'fvn-fraction', - ], - 'fvn-ordinal': ['fvn-normal'], - 'fvn-slashed-zero': ['fvn-normal'], - 'fvn-figure': ['fvn-normal'], - 'fvn-spacing': ['fvn-normal'], - 'fvn-fraction': ['fvn-normal'], - 'line-clamp': ['display', 'overflow'], - rounded: [ - 'rounded-s', - 'rounded-e', - 'rounded-t', - 'rounded-r', - 'rounded-b', - 'rounded-l', - 'rounded-ss', - 'rounded-se', - 'rounded-ee', - 'rounded-es', - 'rounded-tl', - 'rounded-tr', - 'rounded-br', - 'rounded-bl', - ], - 'rounded-s': ['rounded-ss', 'rounded-es'], - 'rounded-e': ['rounded-se', 'rounded-ee'], - 'rounded-t': ['rounded-tl', 'rounded-tr'], - 'rounded-r': ['rounded-tr', 'rounded-br'], - 'rounded-b': ['rounded-br', 'rounded-bl'], - 'rounded-l': ['rounded-tl', 'rounded-bl'], - 'border-spacing': ['border-spacing-x', 'border-spacing-y'], - 'border-w': [ - 'border-w-x', - 'border-w-y', - 'border-w-s', - 'border-w-e', - 'border-w-t', - 'border-w-r', - 'border-w-b', - 'border-w-l', - ], - 'border-w-x': ['border-w-r', 'border-w-l'], - 'border-w-y': ['border-w-t', 'border-w-b'], - 'border-color': [ - 'border-color-x', - 'border-color-y', - 'border-color-s', - 'border-color-e', - 'border-color-t', - 'border-color-r', - 'border-color-b', - 'border-color-l', - ], - 'border-color-x': ['border-color-r', 'border-color-l'], - 'border-color-y': ['border-color-t', 'border-color-b'], - translate: ['translate-x', 'translate-y', 'translate-none'], - 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'], - 'scroll-m': [ - 'scroll-mx', - 'scroll-my', - 'scroll-ms', - 'scroll-me', - 'scroll-mt', - 'scroll-mr', - 'scroll-mb', - 'scroll-ml', - ], - 'scroll-mx': ['scroll-mr', 'scroll-ml'], - 'scroll-my': ['scroll-mt', 'scroll-mb'], - 'scroll-p': [ - 'scroll-px', - 'scroll-py', - 'scroll-ps', - 'scroll-pe', - 'scroll-pt', - 'scroll-pr', - 'scroll-pb', - 'scroll-pl', - ], - 'scroll-px': ['scroll-pr', 'scroll-pl'], - 'scroll-py': ['scroll-pt', 'scroll-pb'], - touch: ['touch-x', 'touch-y', 'touch-pz'], - 'touch-x': ['touch'], - 'touch-y': ['touch'], - 'touch-pz': ['touch'], - }, - conflictingClassGroupModifiers: { - 'font-size': ['leading'], - }, - orderSensitiveModifiers: [ - '*', - '**', - 'after', - 'backdrop', - 'before', - 'details-content', - 'file', - 'first-letter', - 'first-line', - 'marker', - 'placeholder', - 'selection', - ], - } as const satisfies Config -} diff --git a/node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts b/node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts deleted file mode 100644 index 6d06891..0000000 --- a/node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { createTailwindMerge } from './create-tailwind-merge' -import { getDefaultConfig } from './default-config' -import { mergeConfigs } from './merge-configs' -import { AnyConfig, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds } from './types' - -type CreateConfigSubsequent = (config: AnyConfig) => AnyConfig - -export const extendTailwindMerge = < - AdditionalClassGroupIds extends string = never, - AdditionalThemeGroupIds extends string = never, ->( - configExtension: - | ConfigExtension< - DefaultClassGroupIds | AdditionalClassGroupIds, - DefaultThemeGroupIds | AdditionalThemeGroupIds - > - | CreateConfigSubsequent, - ...createConfig: CreateConfigSubsequent[] -) => - typeof configExtension === 'function' - ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) - : createTailwindMerge( - () => mergeConfigs(getDefaultConfig(), configExtension), - ...createConfig, - ) diff --git a/node_modules/tailwind-merge/src/lib/from-theme.ts b/node_modules/tailwind-merge/src/lib/from-theme.ts deleted file mode 100644 index f7dfc36..0000000 --- a/node_modules/tailwind-merge/src/lib/from-theme.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types' - -export const fromTheme = < - AdditionalThemeGroupIds extends string = never, - DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds, ->(key: NoInfer): ThemeGetter => { - const themeGetter = (theme: ThemeObject) => - theme[key] || [] - - themeGetter.isThemeGetter = true as const - - return themeGetter -} diff --git a/node_modules/tailwind-merge/src/lib/lru-cache.ts b/node_modules/tailwind-merge/src/lib/lru-cache.ts deleted file mode 100644 index 0f7c944..0000000 --- a/node_modules/tailwind-merge/src/lib/lru-cache.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Export is needed because TypeScript complains about an error otherwise: -// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module "…/tailwind-merge/src/lru-cache" but cannot be named. -export interface LruCache { - get(key: Key): Value | undefined - set(key: Key, value: Value): void -} - -// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance -export const createLruCache = (maxCacheSize: number): LruCache => { - if (maxCacheSize < 1) { - return { - get: () => undefined, - set: () => {}, - } - } - - let cacheSize = 0 - let cache = new Map() - let previousCache = new Map() - - const update = (key: Key, value: Value) => { - cache.set(key, value) - cacheSize++ - - if (cacheSize > maxCacheSize) { - cacheSize = 0 - previousCache = cache - cache = new Map() - } - } - - return { - get(key) { - let value = cache.get(key) - - if (value !== undefined) { - return value - } - if ((value = previousCache.get(key)) !== undefined) { - update(key, value) - return value - } - }, - set(key, value) { - if (cache.has(key)) { - cache.set(key, value) - } else { - update(key, value) - } - }, - } -} diff --git a/node_modules/tailwind-merge/src/lib/merge-classlist.ts b/node_modules/tailwind-merge/src/lib/merge-classlist.ts deleted file mode 100644 index 12c94ae..0000000 --- a/node_modules/tailwind-merge/src/lib/merge-classlist.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ConfigUtils } from './config-utils' -import { IMPORTANT_MODIFIER } from './parse-class-name' - -const SPLIT_CLASSES_REGEX = /\s+/ - -export const mergeClassList = (classList: string, configUtils: ConfigUtils) => { - const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } = - configUtils - - /** - * Set of classGroupIds in following format: - * `{importantModifier}{variantModifiers}{classGroupId}` - * @example 'float' - * @example 'hover:focus:bg-color' - * @example 'md:!pr' - */ - const classGroupsInConflict: string[] = [] - const classNames = classList.trim().split(SPLIT_CLASSES_REGEX) - - let result = '' - - for (let index = classNames.length - 1; index >= 0; index -= 1) { - const originalClassName = classNames[index]! - - const { - isExternal, - modifiers, - hasImportantModifier, - baseClassName, - maybePostfixModifierPosition, - } = parseClassName(originalClassName) - - if (isExternal) { - result = originalClassName + (result.length > 0 ? ' ' + result : result) - continue - } - - let hasPostfixModifier = !!maybePostfixModifierPosition - let classGroupId = getClassGroupId( - hasPostfixModifier - ? baseClassName.substring(0, maybePostfixModifierPosition) - : baseClassName, - ) - - if (!classGroupId) { - if (!hasPostfixModifier) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result) - continue - } - - classGroupId = getClassGroupId(baseClassName) - - if (!classGroupId) { - // Not a Tailwind class - result = originalClassName + (result.length > 0 ? ' ' + result : result) - continue - } - - hasPostfixModifier = false - } - - const variantModifier = sortModifiers(modifiers).join(':') - - const modifierId = hasImportantModifier - ? variantModifier + IMPORTANT_MODIFIER - : variantModifier - - const classId = modifierId + classGroupId - - if (classGroupsInConflict.includes(classId)) { - // Tailwind class omitted due to conflict - continue - } - - classGroupsInConflict.push(classId) - - const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier) - for (let i = 0; i < conflictGroups.length; ++i) { - const group = conflictGroups[i]! - classGroupsInConflict.push(modifierId + group) - } - - // Tailwind class not in conflict - result = originalClassName + (result.length > 0 ? ' ' + result : result) - } - - return result -} diff --git a/node_modules/tailwind-merge/src/lib/merge-configs.ts b/node_modules/tailwind-merge/src/lib/merge-configs.ts deleted file mode 100644 index 1042138..0000000 --- a/node_modules/tailwind-merge/src/lib/merge-configs.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { AnyConfig, ConfigExtension, NoInfer } from './types' - -/** - * @param baseConfig Config where other config will be merged into. This object will be mutated. - * @param configExtension Partial config to merge into the `baseConfig`. - */ -export const mergeConfigs = ( - baseConfig: AnyConfig, - { - cacheSize, - prefix, - experimentalParseClassName, - extend = {}, - override = {}, - }: ConfigExtension, -) => { - overrideProperty(baseConfig, 'cacheSize', cacheSize) - overrideProperty(baseConfig, 'prefix', prefix) - overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName) - - overrideConfigProperties(baseConfig.theme, override.theme) - overrideConfigProperties(baseConfig.classGroups, override.classGroups) - overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups) - overrideConfigProperties( - baseConfig.conflictingClassGroupModifiers, - override.conflictingClassGroupModifiers, - ) - overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers) - - mergeConfigProperties(baseConfig.theme, extend.theme) - mergeConfigProperties(baseConfig.classGroups, extend.classGroups) - mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups) - mergeConfigProperties( - baseConfig.conflictingClassGroupModifiers, - extend.conflictingClassGroupModifiers, - ) - mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers') - - return baseConfig -} - -const overrideProperty = ( - baseObject: T, - overrideKey: K, - overrideValue: T[K] | undefined, -) => { - if (overrideValue !== undefined) { - baseObject[overrideKey] = overrideValue - } -} - -const overrideConfigProperties = ( - baseObject: Partial>, - overrideObject: Partial> | undefined, -) => { - if (overrideObject) { - for (const key in overrideObject) { - overrideProperty(baseObject, key, overrideObject[key]) - } - } -} - -const mergeConfigProperties = ( - baseObject: Partial>, - mergeObject: Partial> | undefined, -) => { - if (mergeObject) { - for (const key in mergeObject) { - mergeArrayProperties(baseObject, mergeObject, key) - } - } -} - -const mergeArrayProperties = ( - baseObject: Partial, readonly unknown[]>>, - mergeObject: Partial, readonly unknown[]>>, - key: Key, -) => { - const mergeValue = mergeObject[key] - - if (mergeValue !== undefined) { - baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue - } -} diff --git a/node_modules/tailwind-merge/src/lib/parse-class-name.ts b/node_modules/tailwind-merge/src/lib/parse-class-name.ts deleted file mode 100644 index b18a2fe..0000000 --- a/node_modules/tailwind-merge/src/lib/parse-class-name.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { AnyConfig, ParsedClassName } from './types' - -export const IMPORTANT_MODIFIER = '!' -const MODIFIER_SEPARATOR = ':' -const MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length - -export const createParseClassName = (config: AnyConfig) => { - const { prefix, experimentalParseClassName } = config - - /** - * Parse class name into parts. - * - * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS - * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js - */ - let parseClassName = (className: string): ParsedClassName => { - const modifiers = [] - - let bracketDepth = 0 - let parenDepth = 0 - let modifierStart = 0 - let postfixModifierPosition: number | undefined - - for (let index = 0; index < className.length; index++) { - let currentCharacter = className[index] - - if (bracketDepth === 0 && parenDepth === 0) { - if (currentCharacter === MODIFIER_SEPARATOR) { - modifiers.push(className.slice(modifierStart, index)) - modifierStart = index + MODIFIER_SEPARATOR_LENGTH - continue - } - - if (currentCharacter === '/') { - postfixModifierPosition = index - continue - } - } - - if (currentCharacter === '[') { - bracketDepth++ - } else if (currentCharacter === ']') { - bracketDepth-- - } else if (currentCharacter === '(') { - parenDepth++ - } else if (currentCharacter === ')') { - parenDepth-- - } - } - - const baseClassNameWithImportantModifier = - modifiers.length === 0 ? className : className.substring(modifierStart) - const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier) - const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier - const maybePostfixModifierPosition = - postfixModifierPosition && postfixModifierPosition > modifierStart - ? postfixModifierPosition - modifierStart - : undefined - - return { - modifiers, - hasImportantModifier, - baseClassName, - maybePostfixModifierPosition, - } - } - - if (prefix) { - const fullPrefix = prefix + MODIFIER_SEPARATOR - const parseClassNameOriginal = parseClassName - parseClassName = (className) => - className.startsWith(fullPrefix) - ? parseClassNameOriginal(className.substring(fullPrefix.length)) - : { - isExternal: true, - modifiers: [], - hasImportantModifier: false, - baseClassName: className, - maybePostfixModifierPosition: undefined, - } - } - - if (experimentalParseClassName) { - const parseClassNameOriginal = parseClassName - parseClassName = (className) => - experimentalParseClassName({ className, parseClassName: parseClassNameOriginal }) - } - - return parseClassName -} - -const stripImportantModifier = (baseClassName: string) => { - if (baseClassName.endsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(0, baseClassName.length - 1) - } - - /** - * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons. - * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864 - */ - if (baseClassName.startsWith(IMPORTANT_MODIFIER)) { - return baseClassName.substring(1) - } - - return baseClassName -} diff --git a/node_modules/tailwind-merge/src/lib/sort-modifiers.ts b/node_modules/tailwind-merge/src/lib/sort-modifiers.ts deleted file mode 100644 index dd34b63..0000000 --- a/node_modules/tailwind-merge/src/lib/sort-modifiers.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { AnyConfig } from './types' - -/** - * Sorts modifiers according to following schema: - * - Predefined modifiers are sorted alphabetically - * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it - */ -export const createSortModifiers = (config: AnyConfig) => { - const orderSensitiveModifiers = Object.fromEntries( - config.orderSensitiveModifiers.map((modifier) => [modifier, true]), - ) - - const sortModifiers = (modifiers: string[]) => { - if (modifiers.length <= 1) { - return modifiers - } - - const sortedModifiers: string[] = [] - let unsortedModifiers: string[] = [] - - modifiers.forEach((modifier) => { - const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier] - - if (isPositionSensitive) { - sortedModifiers.push(...unsortedModifiers.sort(), modifier) - unsortedModifiers = [] - } else { - unsortedModifiers.push(modifier) - } - }) - - sortedModifiers.push(...unsortedModifiers.sort()) - - return sortedModifiers - } - - return sortModifiers -} diff --git a/node_modules/tailwind-merge/src/lib/tw-join.ts b/node_modules/tailwind-merge/src/lib/tw-join.ts deleted file mode 100644 index 1e2dded..0000000 --- a/node_modules/tailwind-merge/src/lib/tw-join.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better. - * - * Specifically: - * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js - * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts - * - * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com) - */ - -export type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false -type ClassNameArray = ClassNameValue[] - -export function twJoin(...classLists: ClassNameValue[]): string -export function twJoin() { - let index = 0 - let argument: ClassNameValue - let resolvedValue: string - let string = '' - - while (index < arguments.length) { - if ((argument = arguments[index++])) { - if ((resolvedValue = toValue(argument))) { - string && (string += ' ') - string += resolvedValue - } - } - } - return string -} - -const toValue = (mix: ClassNameArray | string) => { - if (typeof mix === 'string') { - return mix - } - - let resolvedValue: string - let string = '' - - for (let k = 0; k < mix.length; k++) { - if (mix[k]) { - if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) { - string && (string += ' ') - string += resolvedValue - } - } - } - - return string -} diff --git a/node_modules/tailwind-merge/src/lib/tw-merge.ts b/node_modules/tailwind-merge/src/lib/tw-merge.ts deleted file mode 100644 index 8377664..0000000 --- a/node_modules/tailwind-merge/src/lib/tw-merge.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createTailwindMerge } from './create-tailwind-merge' -import { getDefaultConfig } from './default-config' - -export const twMerge = createTailwindMerge(getDefaultConfig) diff --git a/node_modules/tailwind-merge/src/lib/types.ts b/node_modules/tailwind-merge/src/lib/types.ts deleted file mode 100644 index 274c95a..0000000 --- a/node_modules/tailwind-merge/src/lib/types.ts +++ /dev/null @@ -1,566 +0,0 @@ -/** - * Type the tailwind-merge configuration adheres to. - */ -export interface Config - extends ConfigStaticPart, - ConfigGroupsPart {} - -/** - * The static part of the tailwind-merge configuration. When merging multiple configurations, the properties of this interface are always overridden. - */ -interface ConfigStaticPart { - /** - * Integer indicating size of LRU cache used for memoizing results. - * - Cache might be up to twice as big as `cacheSize` - * - No cache is used for values <= 0 - */ - cacheSize: number - /** - * Prefix added to Tailwind-generated classes - * @see https://tailwindcss.com/docs/configuration#prefix - */ - prefix?: string - /** - * Allows to customize parsing of individual classes passed to `twMerge`. - * All classes passed to `twMerge` outside of cache hits are passed to this function before it is determined whether the class is a valid Tailwind CSS class. - * - * This is an experimental feature and may introduce breaking changes in any minor version update. - */ - experimentalParseClassName?(param: ExperimentalParseClassNameParam): ParsedClassName -} - -/** - * Type of param passed to the `experimentalParseClassName` function. - * - * This is an experimental feature and may introduce breaking changes in any minor version update. - */ -export interface ExperimentalParseClassNameParam { - className: string - parseClassName(className: string): ParsedClassName -} - -/** - * Type of the result returned by the `experimentalParseClassName` function. - * - * This is an experimental feature and may introduce breaking changes in any minor version update. - */ -export interface ParsedClassName { - /** - * Whether the class is external and merging logic should be sipped. - * - * If this is `true`, the class will be treated as if it wasn't a Tailwind class and will be passed through as is. - */ - isExternal?: boolean - /** - * Modifiers of the class in the order they appear in the class. - * - * @example ['hover', 'dark'] // for `hover:dark:bg-gray-100` - */ - modifiers: string[] - /** - * Whether the class has an `!important` modifier. - * - * @example true // for `hover:dark:!bg-gray-100` - */ - hasImportantModifier: boolean - /** - * Base class without preceding modifiers. - * - * @example 'bg-gray-100' // for `hover:dark:bg-gray-100` - */ - baseClassName: string - /** - * Index position of a possible postfix modifier in the class. - * If the class has no postfix modifier, this is `undefined`. - * - * This property is prefixed with "maybe" because tailwind-merge does not know whether something is a postfix modifier or part of the base class since it's possible to configure Tailwind CSS classes which include a `/` in the base class name. - * - * If a `maybePostfixModifierPosition` is present, tailwind-merge first tries to match the `baseClassName` without the possible postfix modifier to a class group. If that fails, it tries again with the possible postfix modifier. - * - * @example 11 // for `bg-gray-100/50` - */ - maybePostfixModifierPosition: number | undefined -} - -/** - * The dynamic part of the tailwind-merge configuration. When merging multiple configurations, the user can choose to either override or extend the properties of this interface. - */ -interface ConfigGroupsPart { - /** - * Theme scales used in classGroups. - * - * The keys are the same as in the Tailwind config but the values are sometimes defined more broadly. - */ - theme: NoInfer> - /** - * Object with groups of classes. - * - * @example - * { - * // Creates group of classes `group`, `of` and `classes` - * 'group-id': ['group', 'of', 'classes'], - * // Creates group of classes `look-at-me-other` and `look-at-me-group`. - * 'other-group': [{ 'look-at-me': ['other', 'group']}] - * } - */ - classGroups: NoInfer>> - /** - * Conflicting classes across groups. - * - * The key is the ID of a class group which creates a conflict, values are IDs of class groups which receive a conflict. That means if a class from from the key ID is present, all preceding classes from the values are removed. - * - * A class group ID is the key of a class group in the classGroups object. - * - * @example { gap: ['gap-x', 'gap-y'] } - */ - conflictingClassGroups: NoInfer>> - /** - * Postfix modifiers conflicting with other class groups. - * - * A class group ID is the key of a class group in classGroups object. - * - * @example { 'font-size': ['leading'] } - */ - conflictingClassGroupModifiers: NoInfer< - Partial> - > - /** - * Modifiers whose order among multiple modifiers should be preserved because their order changes which element gets targeted. - * - * tailwind-merge makes sure that classes with these modifiers are not overwritten by classes with the same modifiers with order-sensitive modifiers being in a different position. - */ - orderSensitiveModifiers: string[] -} - -/** - * Type of the configuration object that can be passed to `extendTailwindMerge`. - */ -export interface ConfigExtension - extends Partial { - override?: PartialPartial> - extend?: PartialPartial> -} - -type PartialPartial = { - [P in keyof T]?: T[P] extends any[] ? T[P] : Partial -} - -export type ThemeObject = Record< - ThemeGroupIds, - ClassGroup -> -export type ClassGroup = readonly ClassDefinition[] -type ClassDefinition = - | string - | ClassValidator - | ThemeGetter - | ClassObject -export type ClassValidator = (classPart: string) => boolean -export interface ThemeGetter { - (theme: ThemeObject): ClassGroup - isThemeGetter: true -} -type ClassObject = Record< - string, - readonly ClassDefinition[] -> - -/** - * Hack from https://stackoverflow.com/questions/56687668/a-way-to-disable-type-argument-inference-in-generics/56688073#56688073 - * - * Could be replaced with NoInfer utility type from TypeScript (https://www.typescriptlang.org/docs/handbook/utility-types.html#noinfertype), but that is only supported in TypeScript 5.4 or higher, so I should wait some time before using it. - */ -export type NoInfer = [T][T extends any ? 0 : never] - -/** - * Theme group IDs included in the default configuration of tailwind-merge. - * - * If you want to use a scale that is not supported in the `ThemeObject` type, - * consider using `classGroups` instead of `theme`. - * - * @see https://github.com/dcastil/tailwind-merge/blob/main/docs/configuration.md#theme - * (the list of supported keys may vary between `tailwind-merge` versions) - */ -export type DefaultThemeGroupIds = - | 'animate' - | 'aspect' - | 'blur' - | 'breakpoint' - | 'color' - | 'container' - | 'drop-shadow' - | 'ease' - | 'font-weight' - | 'font' - | 'inset-shadow' - | 'leading' - | 'perspective' - | 'radius' - | 'shadow' - | 'spacing' - | 'text' - | 'text-shadow' - | 'tracking' - -/** - * Class group IDs included in the default configuration of tailwind-merge. - */ -export type DefaultClassGroupIds = - | 'accent' - | 'align-content' - | 'align-items' - | 'align-self' - | 'animate' - | 'appearance' - | 'aspect' - | 'auto-cols' - | 'auto-rows' - | 'backdrop-blur' - | 'backdrop-brightness' - | 'backdrop-contrast' - | 'backdrop-filter' - | 'backdrop-grayscale' - | 'backdrop-hue-rotate' - | 'backdrop-invert' - | 'backdrop-opacity' - | 'backdrop-saturate' - | 'backdrop-sepia' - | 'backface' - | 'basis' - | 'bg-attachment' - | 'bg-blend' - | 'bg-clip' - | 'bg-color' - | 'bg-image' - | 'bg-origin' - | 'bg-position' - | 'bg-repeat' - | 'bg-size' - | 'blur' - | 'border-collapse' - | 'border-color-b' - | 'border-color-e' - | 'border-color-l' - | 'border-color-r' - | 'border-color-s' - | 'border-color-t' - | 'border-color-x' - | 'border-color-y' - | 'border-color' - | 'border-spacing-x' - | 'border-spacing-y' - | 'border-spacing' - | 'border-style' - | 'border-w-b' - | 'border-w-e' - | 'border-w-l' - | 'border-w-r' - | 'border-w-s' - | 'border-w-t' - | 'border-w-x' - | 'border-w-y' - | 'border-w' - | 'bottom' - | 'box-decoration' - | 'box' - | 'break-after' - | 'break-before' - | 'break-inside' - | 'break' - | 'brightness' - | 'caption' - | 'caret-color' - | 'clear' - | 'col-end' - | 'col-start-end' - | 'col-start' - | 'color-scheme' - | 'columns' - | 'container' - | 'content' - | 'contrast' - | 'cursor' - | 'delay' - | 'display' - | 'divide-color' - | 'divide-style' - | 'divide-x-reverse' - | 'divide-x' - | 'divide-y-reverse' - | 'divide-y' - | 'drop-shadow' - | 'drop-shadow-color' - | 'duration' - | 'ease' - | 'end' - | 'field-sizing' - | 'fill' - | 'filter' - | 'flex-direction' - | 'flex-wrap' - | 'flex' - | 'float' - | 'font-family' - | 'font-size' - | 'font-smoothing' - | 'font-stretch' - | 'font-style' - | 'font-weight' - | 'forced-color-adjust' - | 'fvn-figure' - | 'fvn-fraction' - | 'fvn-normal' - | 'fvn-ordinal' - | 'fvn-slashed-zero' - | 'fvn-spacing' - | 'gap-x' - | 'gap-y' - | 'gap' - | 'gradient-from-pos' - | 'gradient-from' - | 'gradient-to-pos' - | 'gradient-to' - | 'gradient-via-pos' - | 'gradient-via' - | 'grayscale' - | 'grid-cols' - | 'grid-flow' - | 'grid-rows' - | 'grow' - | 'h' - | 'hue-rotate' - | 'hyphens' - | 'indent' - | 'inset-ring-color' - | 'inset-ring-w' - | 'inset-shadow-color' - | 'inset-shadow' - | 'inset-x' - | 'inset-y' - | 'inset' - | 'invert' - | 'isolation' - | 'justify-content' - | 'justify-items' - | 'justify-self' - | 'leading' - | 'left' - | 'line-clamp' - | 'list-image' - | 'list-style-position' - | 'list-style-type' - | 'm' - | 'mask-clip' - | 'mask-composite' - | 'mask-image-b-from-color' - | 'mask-image-b-from-pos' - | 'mask-image-b-to-color' - | 'mask-image-b-to-pos' - | 'mask-image-conic-from-color' - | 'mask-image-conic-from-pos' - | 'mask-image-conic-pos' - | 'mask-image-conic-to-color' - | 'mask-image-conic-to-pos' - | 'mask-image-l-from-color' - | 'mask-image-l-from-pos' - | 'mask-image-l-to-color' - | 'mask-image-l-to-pos' - | 'mask-image-linear-from-color' - | 'mask-image-linear-from-pos' - | 'mask-image-linear-pos' - | 'mask-image-linear-to-color' - | 'mask-image-linear-to-pos' - | 'mask-image-r-from-color' - | 'mask-image-r-from-pos' - | 'mask-image-r-to-color' - | 'mask-image-r-to-pos' - | 'mask-image-radial-from-color' - | 'mask-image-radial-from-pos' - | 'mask-image-radial-pos' - | 'mask-image-radial-shape' - | 'mask-image-radial-size' - | 'mask-image-radial-to-color' - | 'mask-image-radial-to-pos' - | 'mask-image-radial' - | 'mask-image-t-from-color' - | 'mask-image-t-from-pos' - | 'mask-image-t-to-color' - | 'mask-image-t-to-pos' - | 'mask-image-x-from-color' - | 'mask-image-x-from-pos' - | 'mask-image-x-to-color' - | 'mask-image-x-to-pos' - | 'mask-image-y-from-color' - | 'mask-image-y-from-pos' - | 'mask-image-y-to-color' - | 'mask-image-y-to-pos' - | 'mask-image' - | 'mask-mode' - | 'mask-origin' - | 'mask-position' - | 'mask-repeat' - | 'mask-size' - | 'mask-type' - | 'max-h' - | 'max-w' - | 'mb' - | 'me' - | 'min-h' - | 'min-w' - | 'mix-blend' - | 'ml' - | 'mr' - | 'ms' - | 'mt' - | 'mx' - | 'my' - | 'object-fit' - | 'object-position' - | 'opacity' - | 'order' - | 'outline-color' - | 'outline-offset' - | 'outline-style' - | 'outline-w' - | 'overflow-x' - | 'overflow-y' - | 'overflow' - | 'overscroll-x' - | 'overscroll-y' - | 'overscroll' - | 'p' - | 'pb' - | 'pe' - | 'perspective-origin' - | 'perspective' - | 'pl' - | 'place-content' - | 'place-items' - | 'place-self' - | 'placeholder-color' - | 'pointer-events' - | 'position' - | 'pr' - | 'ps' - | 'pt' - | 'px' - | 'py' - | 'resize' - | 'right' - | 'ring-color' - | 'ring-offset-color' - | 'ring-offset-w' - | 'ring-w-inset' - | 'ring-w' - | 'rotate-x' - | 'rotate-y' - | 'rotate-z' - | 'rotate' - | 'rounded-b' - | 'rounded-bl' - | 'rounded-br' - | 'rounded-e' - | 'rounded-ee' - | 'rounded-es' - | 'rounded-l' - | 'rounded-r' - | 'rounded-s' - | 'rounded-se' - | 'rounded-ss' - | 'rounded-t' - | 'rounded-tl' - | 'rounded-tr' - | 'rounded' - | 'row-end' - | 'row-start-end' - | 'row-start' - | 'saturate' - | 'scale-3d' - | 'scale-x' - | 'scale-y' - | 'scale-z' - | 'scale' - | 'scroll-behavior' - | 'scroll-m' - | 'scroll-mb' - | 'scroll-me' - | 'scroll-ml' - | 'scroll-mr' - | 'scroll-ms' - | 'scroll-mt' - | 'scroll-mx' - | 'scroll-my' - | 'scroll-p' - | 'scroll-pb' - | 'scroll-pe' - | 'scroll-pl' - | 'scroll-pr' - | 'scroll-ps' - | 'scroll-pt' - | 'scroll-px' - | 'scroll-py' - | 'select' - | 'sepia' - | 'shadow-color' - | 'shadow' - | 'shrink' - | 'size' - | 'skew-x' - | 'skew-y' - | 'skew' - | 'snap-align' - | 'snap-stop' - | 'snap-strictness' - | 'snap-type' - | 'space-x-reverse' - | 'space-x' - | 'space-y-reverse' - | 'space-y' - | 'sr' - | 'start' - | 'stroke-w' - | 'stroke' - | 'table-layout' - | 'text-alignment' - | 'text-color' - | 'text-decoration-color' - | 'text-decoration-style' - | 'text-decoration-thickness' - | 'text-decoration' - | 'text-overflow' - | 'text-shadow' - | 'text-shadow-color' - | 'text-transform' - | 'text-wrap' - | 'top' - | 'touch-pz' - | 'touch-x' - | 'touch-y' - | 'touch' - | 'tracking' - | 'transform-origin' - | 'transform-style' - | 'transform' - | 'transition-behavior' - | 'transition' - | 'translate-none' - | 'translate-x' - | 'translate-y' - | 'translate-z' - | 'translate' - | 'underline-offset' - | 'vertical-align' - | 'visibility' - | 'w' - | 'whitespace' - | 'will-change' - | 'wrap' - | 'z' - -export type AnyClassGroupIds = string -export type AnyThemeGroupIds = string - -/** - * type of the tailwind-merge configuration that allows for any possible configuration. - */ -export type AnyConfig = Config diff --git a/node_modules/tailwind-merge/src/lib/validators.ts b/node_modules/tailwind-merge/src/lib/validators.ts deleted file mode 100644 index 54db549..0000000 --- a/node_modules/tailwind-merge/src/lib/validators.ts +++ /dev/null @@ -1,128 +0,0 @@ -const arbitraryValueRegex = /^\[(?:(\w[\w-]*):)?(.+)\]$/i -const arbitraryVariableRegex = /^\((?:(\w[\w-]*):)?(.+)\)$/i -const fractionRegex = /^\d+\/\d+$/ -const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/ -const lengthUnitRegex = - /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/ -const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/ -// Shadow always begins with x and y offset separated by underscore optionally prepended by inset -const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/ -const imageRegex = - /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/ - -export const isFraction = (value: string) => fractionRegex.test(value) - -export const isNumber = (value: string) => !!value && !Number.isNaN(Number(value)) - -export const isInteger = (value: string) => !!value && Number.isInteger(Number(value)) - -export const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1)) - -export const isTshirtSize = (value: string) => tshirtUnitRegex.test(value) - -export const isAny = () => true - -const isLengthOnly = (value: string) => - // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths. - // For example, `hsl(0 0% 0%)` would be classified as a length without this check. - // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough. - lengthUnitRegex.test(value) && !colorFunctionRegex.test(value) - -const isNever = () => false - -const isShadow = (value: string) => shadowRegex.test(value) - -const isImage = (value: string) => imageRegex.test(value) - -export const isAnyNonArbitrary = (value: string) => - !isArbitraryValue(value) && !isArbitraryVariable(value) - -export const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever) - -export const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value) - -export const isArbitraryLength = (value: string) => - getIsArbitraryValue(value, isLabelLength, isLengthOnly) - -export const isArbitraryNumber = (value: string) => - getIsArbitraryValue(value, isLabelNumber, isNumber) - -export const isArbitraryPosition = (value: string) => - getIsArbitraryValue(value, isLabelPosition, isNever) - -export const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage) - -export const isArbitraryShadow = (value: string) => - getIsArbitraryValue(value, isLabelShadow, isShadow) - -export const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value) - -export const isArbitraryVariableLength = (value: string) => - getIsArbitraryVariable(value, isLabelLength) - -export const isArbitraryVariableFamilyName = (value: string) => - getIsArbitraryVariable(value, isLabelFamilyName) - -export const isArbitraryVariablePosition = (value: string) => - getIsArbitraryVariable(value, isLabelPosition) - -export const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize) - -export const isArbitraryVariableImage = (value: string) => - getIsArbitraryVariable(value, isLabelImage) - -export const isArbitraryVariableShadow = (value: string) => - getIsArbitraryVariable(value, isLabelShadow, true) - -// Helpers - -const getIsArbitraryValue = ( - value: string, - testLabel: (label: string) => boolean, - testValue: (value: string) => boolean, -) => { - const result = arbitraryValueRegex.exec(value) - - if (result) { - if (result[1]) { - return testLabel(result[1]) - } - - return testValue(result[2]!) - } - - return false -} - -const getIsArbitraryVariable = ( - value: string, - testLabel: (label: string) => boolean, - shouldMatchNoLabel = false, -) => { - const result = arbitraryVariableRegex.exec(value) - - if (result) { - if (result[1]) { - return testLabel(result[1]) - } - return shouldMatchNoLabel - } - - return false -} - -// Labels - -const isLabelPosition = (label: string) => label === 'position' || label === 'percentage' - -const isLabelImage = (label: string) => label === 'image' || label === 'url' - -const isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size' - -const isLabelLength = (label: string) => label === 'length' - -const isLabelNumber = (label: string) => label === 'number' - -const isLabelFamilyName = (label: string) => label === 'family-name' - -const isLabelShadow = (label: string) => label === 'shadow' diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 0aad202..0000000 --- a/package-lock.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "dev22603", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "tailwind-merge": "^3.3.1" - } - }, - "node_modules/tailwind-merge": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", - "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index e5a07b5..0000000 --- a/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "tailwind-merge": "^3.3.1" - } -} From 9b22dc949bf80354648d6cc26b144f7d6f9d57a8 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 16:44:31 +0530 Subject: [PATCH 018/103] scroll fixed --- frontend/src/App.jsx | 1 + frontend/src/components/Layout.jsx | 2 +- frontend/src/index.css | 8 ++++++++ frontend/src/pages/Home.jsx | 24 ++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 3f16263..7d86287 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -6,6 +6,7 @@ import Home from "@/pages/Home"; // import Contact from "@/pages/Contact"; // import GuestBook from "@/pages/GuestBook"; import { Layout } from "@/components/Layout"; +import { AnnouncementBar } from "./components/AnnouncementBar"; export default function App() { const DARK_BG = "#0d0b0f"; diff --git a/frontend/src/components/Layout.jsx b/frontend/src/components/Layout.jsx index f8869c4..f4d3c47 100644 --- a/frontend/src/components/Layout.jsx +++ b/frontend/src/components/Layout.jsx @@ -31,7 +31,7 @@ export function Layout({ return (
{ return (

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

+

Home

); }; From b64d0cdbedc605f8a2e0ad6c7b3626806807c210 Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 16:55:50 +0530 Subject: [PATCH 019/103] Navbar is made and Go to Definition now works due to changes in vite.config.js --- frontend/jsconfig.json | 10 ++++++++ frontend/src/components/Navbar.jsx | 38 ++++++++++++++++++++++++++++++ frontend/src/pages/Home.jsx | 27 ++------------------- frontend/vite.config.js | 24 ++++++++++++++----- 4 files changed, 68 insertions(+), 31 deletions(-) create mode 100644 frontend/jsconfig.json create mode 100644 frontend/src/components/Navbar.jsx diff --git a/frontend/jsconfig.json b/frontend/jsconfig.json new file mode 100644 index 0000000..ca585eb --- /dev/null +++ b/frontend/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "jsx": "react-jsx" + }, + "include": ["src"] +} diff --git a/frontend/src/components/Navbar.jsx b/frontend/src/components/Navbar.jsx new file mode 100644 index 0000000..0ff4185 --- /dev/null +++ b/frontend/src/components/Navbar.jsx @@ -0,0 +1,38 @@ +import { useState } from "react"; + +const navItems = [ + { name: "Home", shortcut: "h" }, + { name: "Experience", shortcut: "e" }, + { name: "Events", shortcut: "v" }, + { name: "Blogs", shortcut: "b" }, + { name: "Designs", shortcut: "d" }, + { name: "Contact", shortcut: "c" }, +]; + +export default function Navbar() { + const [active, setActive] = useState("Home"); + + return ( + + ); +} diff --git a/frontend/src/pages/Home.jsx b/frontend/src/pages/Home.jsx index c01cb8f..a53d277 100644 --- a/frontend/src/pages/Home.jsx +++ b/frontend/src/pages/Home.jsx @@ -1,34 +1,11 @@ import React from 'react'; import { Link } from 'react-router-dom'; +import Navbar from '@/components/Navbar'; const Home = () => { return (
-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

-

Home

+
); }; diff --git a/frontend/vite.config.js b/frontend/vite.config.js index d6ac2da..166094f 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -7,12 +7,24 @@ import path from "path"; export default defineConfig({ plugins: [react(), tailwindcss()], resolve: { - alias: { - "@": path.resolve(__dirname, "./src"), - "@/components": path.resolve(__dirname, "./src/components"), - "@/lib": path.resolve(__dirname, "./src/lib"), - "@/pages": path.resolve(__dirname, "./src/pages"), - }, + alias: [ + { + find: '@', + replacement: path.resolve(__dirname, 'src') + }, + { + find: '@components', + replacement: path.resolve(__dirname, 'src/components') + }, + { + find: '@lib', + replacement: path.resolve(__dirname, 'src/lib') + }, + { + find: '@pages', + replacement: path.resolve(__dirname, 'src/pages') + } + ] }, server: { host: "127.0.0.1", From c6d318889bd28e719d5c6a05935b2a2abbbf4d5e Mon Sep 17 00:00:00 2001 From: Dev Bachani Date: Fri, 22 Aug 2025 17:17:34 +0530 Subject: [PATCH 020/103] navbar perfected --- frontend/package-lock.json | 49 ++++++++++++++++++++++++++++ frontend/package.json | 1 + frontend/src/components/Navbar.jsx | 51 +++++++++++++++++++++--------- 3 files changed, 86 insertions(+), 15 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 21a9d6f..a6b933b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@tailwindcss/vite": "^4.1.12", "clsx": "^2.1.1", + "framer-motion": "^12.23.12", "lucide-react": "^0.541.0", "react": "^19.1.1", "react-dom": "^19.1.1", @@ -2119,6 +2120,33 @@ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true }, + "node_modules/framer-motion": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.12.tgz", + "integrity": "sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.12", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2639,6 +2667,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/motion-dom": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.12.tgz", + "integrity": "sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3060,6 +3103,12 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index de8cccb..b87b930 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,6 +12,7 @@ "dependencies": { "@tailwindcss/vite": "^4.1.12", "clsx": "^2.1.1", + "framer-motion": "^12.23.12", "lucide-react": "^0.541.0", "react": "^19.1.1", "react-dom": "^19.1.1", diff --git a/frontend/src/components/Navbar.jsx b/frontend/src/components/Navbar.jsx index 0ff4185..0ba1f6f 100644 --- a/frontend/src/components/Navbar.jsx +++ b/frontend/src/components/Navbar.jsx @@ -1,35 +1,56 @@ -import { useState } from "react"; +import { useState, useEffect } from "react"; +import { motion } from "framer-motion"; const navItems = [ { name: "Home", shortcut: "h" }, { name: "Experience", shortcut: "e" }, { name: "Events", shortcut: "v" }, - { name: "Blogs", shortcut: "b" }, - { name: "Designs", shortcut: "d" }, { name: "Contact", shortcut: "c" }, + { name: "Guestbook", shortcut: "g" }, ]; export default function Navbar() { const [active, setActive] = useState("Home"); + const [hovered, setHovered] = useState(null); + + const current = hovered || active; // underline follows hover, fallback = active + + // āœ… Handle keypress shortcuts + useEffect(() => { + const handleKeyDown = (e) => { + const key = e.key.toLowerCase(); // make case-insensitive + const foundItem = navItems.find((item) => item.shortcut === key); + if (foundItem) { + setActive(foundItem.name); + } + }; + + window.addEventListener("keydown", handleKeyDown); + return () => window.removeEventListener("keydown", handleKeyDown); + }, []); return ( -
- ); -} diff --git a/frontend/src/components/Header.jsx b/frontend/src/components/Header.jsx new file mode 100644 index 0000000..9594f9a --- /dev/null +++ b/frontend/src/components/Header.jsx @@ -0,0 +1,71 @@ +import { Twitter, Github, Mail, Calendar } from "lucide-react"; +import { cn } from "@/lib/utils"; +import portfolioData from "../../portfolio.json"; + +export default function Header({ className }) { + const { name, socialLinks } = portfolioData.personalInfo; + + const socialIcons = [ + { + name: "Twitter", + icon: Twitter, + href: socialLinks.twitter, + ariaLabel: "Visit my Twitter profile", + }, + { + name: "Blog", + icon: Calendar, + href: socialLinks.blog, + ariaLabel: "Read my blog", + }, + { + name: "Email", + icon: Mail, + href: `mailto:${portfolioData.personalInfo.email}`, + ariaLabel: "Send me an email", + }, + { + name: "GitHub", + icon: Github, + href: socialLinks.github, + ariaLabel: "Visit my GitHub profile", + }, + ]; + + return ( +
+ +
+ ); +} diff --git a/frontend/src/components/Layout.jsx b/frontend/src/components/Layout.jsx index 21598b4..26512d4 100644 --- a/frontend/src/components/Layout.jsx +++ b/frontend/src/components/Layout.jsx @@ -1,115 +1,55 @@ import { cn } from "@/lib/utils"; -// interface LayoutProps { -// children?: React.ReactNode; -// className?: string; -// containerClassName?: string; -// dotColor?: { -// light: string; -// dark: string; -// }; -// dotSize?: number; -// dotSpacing?: number; -// fadeToColor?: string; -// fadePercentage?: number; -// } - export function Layout({ children, className, - containerClassName, - dotColor = { - light: "#d4d4d4", - dark: "#232323", - }, dotSize = 1, dotSpacing = 20, - fadeToColor = "bg-background", - fadePercentage = 50, }) { + const backgroundColor = "var(--color-background-primary)"; + const dotColorLight = "var(--color-dot-light)"; + const dotColorDark = "var(--color-dot-dark)"; + return (
- {/* Fixed background container */} -
- {/* Dot pattern */} + {/* Fixed dot pattern background */} +
+ {/* Light mode dot pattern (hidden by default in dark mode) */}
- {/* Dark mode dot pattern */} + {/* Dark mode dot pattern overlay */}