{"_id":"@altalang/prettier-plugin-elm-tailwind","_rev":"2-90c7d811741e45e9f70b0c23b5a89251","name":"@altalang/prettier-plugin-elm-tailwind","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@altalang/prettier-plugin-elm-tailwind","version":"0.2.0","keywords":["prettier","prettier-plugin","elm","tailwindcss","formatter"],"author":{"name":"Benjamin Torell"},"license":"MIT","_id":"@altalang/prettier-plugin-elm-tailwind@0.2.0","maintainers":[{"name":"btorellalta","email":"btorell@altalang.com"}],"homepage":"https://github.com/altalang/prettier-plugin-elm-tailwind#readme","bugs":{"url":"https://github.com/altalang/prettier-plugin-elm-tailwind/issues"},"dist":{"shasum":"74964372458235a3dd6a4c399e3658205a1d795b","tarball":"https://registry.npmjs.org/@altalang/prettier-plugin-elm-tailwind/-/prettier-plugin-elm-tailwind-0.2.0.tgz","fileCount":5,"integrity":"sha512-raGC7ExfOCaUNzeSxAcb3b3SBg6qGkf/JhCzptO9E2+RmH1aagbHTfKRQAuPOO44tkkocFkvK1ik6u+OzTx4Qg==","signatures":[{"sig":"MEUCIQCG9y+lYGpsxPQiN234OZ3tS02uO7acPrG2KvEsuSXWVAIgF7MfG8Ugn2kxRiRVeGn3XkiIOhLTbNhRj8fSBgItEfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13078},"main":"index.js","gitHead":"8ae330c9b70a695a5a604f226cd2f153649dbd1e","scripts":{"test":"node --experimental-vm-modules node_modules/.bin/jest"},"_npmUser":{"name":"btorellalta","email":"btorell@altalang.com"},"repository":{"url":"git+https://github.com/altalang/prettier-plugin-elm-tailwind.git","type":"git"},"_npmVersion":"10.9.2","description":"Prettier plugin for sorting Tailwind CSS classes in Elm files","directories":{},"_nodeVersion":"22.14.0","dependencies":{"prettier-plugin-elm":"^0.9.0 || ^0.10.0 || ^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","prettier":"^3.0.0","prettier-plugin-tailwindcss":"^0.6.11"},"peerDependencies":{"prettier":"^2.0.0 || ^3.0.0","prettier-plugin-elm":"^0.9.0 || ^0.10.0 || ^0.11.0","prettier-plugin-tailwindcss":"^0.6.11"},"_npmOperationalInternal":{"tmp":"tmp/prettier-plugin-elm-tailwind_0.2.0_1744649258204_0.8083157679149899","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@altalang/prettier-plugin-elm-tailwind","version":"0.2.1","description":"Prettier plugin for sorting Tailwind CSS classes in Elm files","main":"index.js","keywords":["prettier","prettier-plugin","elm","tailwindcss","formatter"],"author":{"name":"Benjamin Torell"},"license":"MIT","peerDependencies":{"prettier":"^2.0.0 || ^3.0.0","prettier-plugin-elm":"^0.9.0 || ^0.10.0 || ^0.11.0"},"dependencies":{"prettier-plugin-elm":"^0.9.0 || ^0.10.0 || ^0.11.0","prettier-plugin-tailwindcss":"^0.6.11"},"devDependencies":{"jest":"^29.0.0","prettier":"^3.0.0","prettier-plugin-tailwindcss":"^0.6.11"},"scripts":{"test":"node --experimental-vm-modules node_modules/.bin/jest"},"repository":{"type":"git","url":"git+https://github.com/altalang/prettier-plugin-elm-tailwind.git"},"_id":"@altalang/prettier-plugin-elm-tailwind@0.2.1","gitHead":"8ae330c9b70a695a5a604f226cd2f153649dbd1e","bugs":{"url":"https://github.com/altalang/prettier-plugin-elm-tailwind/issues"},"homepage":"https://github.com/altalang/prettier-plugin-elm-tailwind#readme","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-GuLIAEYNTJRYhfuoI3E1qx6pjc86xetOvzBoV5vetcYsGTAWekUfU7B4vqYJ23T6IFhiQxuGFzEss0GR/yptSw==","shasum":"ca6823c790947b37bebfa48ce3545a2f3d167bc4","tarball":"https://registry.npmjs.org/@altalang/prettier-plugin-elm-tailwind/-/prettier-plugin-elm-tailwind-0.2.1.tgz","fileCount":5,"unpackedSize":13146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDH2PDFCQgAJVIdX+Kp6aksRt6Z0q0vptCBYHf4livYLgIhAKEvRBt/VxUmcwSz2RXmKUgKBs68kXBQZ7OlMOwAJ8n0"}]},"_npmUser":{"name":"btorellalta","email":"btorell@altalang.com"},"directories":{},"maintainers":[{"name":"btorellalta","email":"btorell@altalang.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prettier-plugin-elm-tailwind_0.2.1_1744650393566_0.8076628495931495"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-14T16:47:38.123Z","modified":"2025-04-14T17:06:33.966Z","0.2.0":"2025-04-14T16:47:38.373Z","0.2.1":"2025-04-14T17:06:33.751Z"},"bugs":{"url":"https://github.com/altalang/prettier-plugin-elm-tailwind/issues"},"author":{"name":"Benjamin Torell"},"license":"MIT","homepage":"https://github.com/altalang/prettier-plugin-elm-tailwind#readme","keywords":["prettier","prettier-plugin","elm","tailwindcss","formatter"],"repository":{"type":"git","url":"git+https://github.com/altalang/prettier-plugin-elm-tailwind.git"},"description":"Prettier plugin for sorting Tailwind CSS classes in Elm files","maintainers":[{"name":"btorellalta","email":"btorell@altalang.com"}],"readme":"# Prettier Plugin Elm Tailwind\n\nA Prettier plugin that sorts Tailwind CSS classes in Elm files according to Tailwind's recommended class order.\n\n## Installation\n\n```bash\nnpm install --save-dev prettier-plugin-elm-tailwind\n# or\nyarn add --dev prettier-plugin-elm-tailwind\n```\n\n## Requirements\n\nThis plugin requires the following peer dependencies:\n\n- `prettier` (v2.0.0 or newer)\n- `prettier-plugin-elm` (v0.9.0 or newer)\n- `prettier-plugin-tailwindcss` (v0.4.0 or newer - optional, but recommended)\n\n## Usage\n\nOnce installed, Prettier will automatically use this plugin when formatting Elm files.\n\n```bash\n# Format a single file\nprettier --write src/Main.elm\n\n# Format all Elm files\nprettier --write \"src/**/*.elm\"\n```\n\n## How It Works\n\nThis plugin integrates with both the Elm and Tailwind CSS Prettier plugins to provide class sorting capabilities for Elm files. It works by:\n\n1. Using `prettier-plugin-elm` to format the Elm code\n2. Identifying Tailwind CSS classes in `class` and `classList` attributes\n3. Sorting those classes using logic from `prettier-plugin-tailwindcss` if available, or falling back to a built-in advanced sorter\n4. Preserving the original Elm formatting while updating the class order\n\nThe plugin supports several Elm patterns:\n\n```elm\n-- Simple class attributes\ndiv [ class \"text-lg flex p-4 bg-blue-500\" ] [ text \"Hello\" ]\n-- ↓ becomes\ndiv [ class \"flex p-4 bg-blue-500 text-lg\" ] [ text \"Hello\" ]\n\n-- String concatenation\ndiv [ class \"base-styles \" ++ \" text-lg flex p-4\" ] [ text \"Hello\" ]\n-- ↓ becomes\ndiv [ class \"base-styles\" ++ \"flex p-4 text-lg\" ] [ text \"Hello\" ]\n\n-- classList with conditional classes\ndiv [ classList [ ( \"text-lg flex p-4\", True ), ( \"hidden\", isHidden ) ] ] [ text \"Hello\" ]\n-- ↓ becomes\ndiv [ classList [ ( \"flex p-4 text-lg\", True ), ( \"hidden\", isHidden ) ] ] [ text \"Hello\" ]\n```\n\n## Class Sorting Order\n\nThis plugin tries to use the official Tailwind class sorting order by integrating with `prettier-plugin-tailwindcss`. If that's not available or doesn't work properly, it falls back to a sophisticated built-in sorting algorithm that follows the general Tailwind ordering principles:\n\n1. **Layout & Position**\n   - Display: `block`, `flex`, `grid`, etc.\n   - Position: `static`, `fixed`, `absolute`, etc.\n   - Visibility: `visible`, `invisible`, etc.\n\n2. **Sizing**\n   - Width/Height: `w-`, `h-`, `min-w-`, `max-h-`, etc.\n   - Aspect ratio: `aspect-`\n\n3. **Spacing**\n   - Padding: `p-`, `px-`, `pt-`, etc.\n   - Margin: `m-`, `mx-`, `mt-`, etc.\n   - Space between: `space-`\n\n4. **Flexbox & Grid**\n   - Flex: `flex-`, `justify-`, `items-`, etc.\n   - Grid: `grid-`, `col-`, `gap-`, etc.\n\n5. **Borders**\n   - Border: `border`, `rounded`, etc.\n\n6. **Background**\n   - Background: `bg-`, `gradient-`, etc.\n\n7. **Typography**\n   - Text: `text-`, `font-`, `tracking-`, etc.\n\n8. **Visual & Effects**\n   - Opacity, transforms, filters: `opacity-`, `transform`, etc.\n\n9. **Interactivity**\n   - User interaction: `cursor-`, `select-`, etc.\n\n10. **Transitions & Animations**\n    - Transitions: `transition-`, `animate-`, etc.\n\n11. **Miscellaneous & Variants**\n    - Everything else, including responsive/state variants\n\n## Fallback Sorting\n\nThe built-in fallback sorting algorithm handles both regular Tailwind classes and variant-prefixed classes (like `hover:`, `dark:`, `md:`, etc.). It sorts based on the base class functionality while preserving the variants.\n\n## License\n\nMIT","readmeFilename":"README.md"}