From 7a498b02cfe3ab1ec0c3ef0f12984d98e3acb74b Mon Sep 17 00:00:00 2001 From: ap-justin <89639563+ap-justin@users.noreply.github.com> Date: Sun, 26 Jan 2025 22:56:04 +0800 Subject: [PATCH] tailwind v4 --- biome.json | 7 +- package.json | 11 +- postcss.config.js | 6 - src/components/BankDetails/BankDetails.tsx | 2 +- .../RecipientDetailsForm.tsx | 2 +- src/components/ContentLoader.tsx | 4 +- src/components/CountrySelector/Options.tsx | 4 +- .../CurrencySelector/CurrencyOptions.tsx | 6 +- .../DonateMethods/DonateMethods.tsx | 2 +- src/components/FileDropzone/FileDropzone.tsx | 2 +- src/components/Group.tsx | 2 +- src/components/Header/NavDropdown.tsx | 8 +- .../Header/UserMenu/EndowmentLink.tsx | 2 +- src/components/ImgEditor/ImgCropper.tsx | 4 +- src/components/ImgEditor/ImgEditor.tsx | 2 +- src/components/KYCForm/KYCForm.tsx | 2 +- src/components/LoaderRing.tsx | 2 +- src/components/Modal.tsx | 2 +- src/components/Prompt/PromptV2.tsx | 2 +- src/components/RichText/RichText.tsx | 2 +- src/components/RichText/richtext.css | 30 +- src/components/Selector/MultiSelector.tsx | 8 +- src/components/Selector/NativeSelect.tsx | 2 +- src/components/Selector/Selector.tsx | 2 +- src/components/Selector/constants.ts | 4 +- .../TokenField/TokenSelector/TokenOptions.tsx | 8 +- .../TokenSelector/TokenSelector.tsx | 2 +- src/components/VerifiedIcon.tsx | 2 +- src/components/admin/TemplateContainer.tsx | 2 +- .../Steps/DonateMethods/DonateMethods.tsx | 8 +- .../Steps/DonateMethods/Stocks/Form.tsx | 2 +- .../Steps/DonateMethods/Stripe/Frequency.tsx | 2 +- src/components/donation/Steps/Share.tsx | 6 +- .../Steps/Submit/Crypto/DirectMode.tsx | 2 +- .../donation/Steps/Submit/Loader.tsx | 2 +- .../donation/Steps/Submit/Stocks.tsx | 6 +- .../Steps/Submit/StripeCheckout/Checkout.tsx | 2 +- .../Submit/StripeCheckout/Paypal/Checkout.tsx | 2 +- src/components/donation/Steps/Tip/Tip.tsx | 6 +- .../donation/Steps/common/ContinueBtn.tsx | 2 +- .../donation/Steps/common/Incrementers.tsx | 2 +- .../donation/Steps/common/ProgramSelector.tsx | 2 +- src/components/donation/index.ts | 8 +- src/components/error/ErrorModal.tsx | 2 +- src/components/form/Input.tsx | 2 +- src/components/form/PasswordInput.tsx | 4 +- src/components/form/constants.ts | 2 +- .../goal-selector/goal-selector.tsx | 4 +- src/components/target.tsx | 2 +- src/cookie-consent.css | 21 +- src/index.css | 153 +- src/pages/@sections/HeroBottom/Card.tsx | 2 +- src/pages/@sections/HeroBottom/HeroBottom.tsx | 2 +- .../@sections/HeroBottom/styles.module.css | 6 +- .../Banking/PayoutMethod/DeletePrompt.tsx | 4 +- .../Banking/PayoutMethod/PayoutMethod.tsx | 4 +- .../Charity/Banking/PayoutMethods/Table.tsx | 4 +- .../Admin/Charity/Dashboard/Dashboard.tsx | 2 +- src/pages/Admin/Charity/Dashboard/Figure.tsx | 2 +- .../Admin/Charity/Dashboard/LiqActions.tsx | 4 +- src/pages/Admin/Charity/Dashboard/Loaded.tsx | 2 +- .../Admin/Charity/Dashboard/LockActions.tsx | 4 +- .../Admin/Charity/Dashboard/MoveFundForm.tsx | 2 +- .../Admin/Charity/Dashboard/Movements.tsx | 2 +- .../Dashboard/PayoutHistory/LoadMoreBtn.tsx | 2 +- .../Charity/Dashboard/PayoutHistory/Table.tsx | 2 +- .../Dashboard/Schedule/AllocationOptions.tsx | 2 +- .../Admin/Charity/Dashboard/Schedule/Edit.tsx | 6 +- .../Charity/Dashboard/Schedule/Schedule.tsx | 2 +- src/pages/Admin/Charity/Dashboard/Summary.tsx | 4 +- .../Charity/Donations/DonationsTable.tsx | 2 +- src/pages/Admin/Charity/Donations/Table.tsx | 4 +- src/pages/Admin/Charity/EditProfile/Form.tsx | 6 +- src/pages/Admin/Charity/Funds/Funds.tsx | 2 +- src/pages/Admin/Charity/Media/Media.tsx | 4 +- src/pages/Admin/Charity/Media/VideoEditor.tsx | 2 +- .../Admin/Charity/Media/VideoPreview.tsx | 2 +- src/pages/Admin/Charity/Media/Videos/List.tsx | 2 +- src/pages/Admin/Charity/Members/AddForm.tsx | 2 +- src/pages/Admin/Charity/Members/List.tsx | 2 +- .../ProgramEditor/Milestone/Milestone.tsx | 6 +- .../Charity/ProgramEditor/Milestones.tsx | 2 +- .../ProgramEditor/ProgramInfo/ProgramInfo.tsx | 4 +- src/pages/Admin/Charity/Programs/List.tsx | 2 +- src/pages/Admin/Charity/Settings/Form.tsx | 6 +- src/pages/Application/Container.tsx | 4 +- src/pages/Application/Loaded.tsx | 2 +- src/pages/Application/Prompt.tsx | 6 +- src/pages/Applications/Applications.tsx | 4 +- src/pages/Applications/Filter/Form.tsx | 4 +- src/pages/Applications/Filter/index.tsx | 2 +- src/pages/Applications/LoadMoreBtn.tsx | 2 +- src/pages/Applications/Table.tsx | 4 +- src/pages/BankingApplication/Loaded.tsx | 2 +- src/pages/BankingApplication/Prompt.tsx | 6 +- src/pages/BankingApplications/Filter/Form.tsx | 4 +- .../BankingApplications/Filter/index.tsx | 2 +- src/pages/BankingApplications/LoadMoreBtn.tsx | 2 +- src/pages/BankingApplications/Table.tsx | 4 +- src/pages/Blog/Post.tsx | 2 +- src/pages/Donate/OrgCard.tsx | 2 +- src/pages/Funds/Cards/Card.tsx | 2 +- src/pages/Funds/CreateFund/CreateFund.tsx | 6 +- .../EndowmentSelector/EndowmentSelector.tsx | 6 +- .../CreateFund/EndowmentSelector/Options.tsx | 2 +- src/pages/Funds/EditFund/Form.tsx | 6 +- src/pages/Funds/Fund/index.tsx | 2 +- src/pages/Funds/Fund/share.tsx | 6 +- src/pages/Funds/Fund/video.tsx | 2 +- src/pages/Funds/common/videos/video-modal.tsx | 4 +- .../Funds/common/videos/video-preview.tsx | 2 +- src/pages/Home/Blogs/Blogs.tsx | 2 +- src/pages/Home/BottomCta.tsx | 2 +- src/pages/Home/Feature1.tsx | 2 +- src/pages/Home/Header/SearchField.tsx | 2 +- src/pages/Home/Testimonials/Testimonials.tsx | 2 +- src/pages/Home/Video.tsx | 2 +- src/pages/Marketplace/Filter/Countries.tsx | 12 +- src/pages/Marketplace/Filter/Filter.tsx | 4 +- .../GeneralInfo/DetailsColumn/Balances.tsx | 2 +- .../DetailsColumn/DetailsColumn.tsx | 4 +- .../GeneralInfo/DetailsColumn/Fundraisers.tsx | 2 +- src/pages/Profile/Body/GeneralInfo/Media.tsx | 2 +- .../Profile/Body/GeneralInfo/Programs.tsx | 2 +- src/pages/Profile/Body/Program/Milestones.tsx | 2 +- src/pages/Profile/Body/common/Container.tsx | 6 +- .../Registration/Steps/Banking/Banking.tsx | 4 +- .../Form/ReferralMethodSelector.tsx | 8 +- .../ContactDetails/Form/RoleSelector.tsx | 8 +- .../Steps/ContactDetails/Form/index.tsx | 18 +- .../Steps/Documentation/FSA/Form/useSubmit.ts | 2 +- src/pages/Registration/Steps/Reference.tsx | 2 +- src/pages/Registration/Steps/steps-layout.tsx | 2 +- .../UserDashboard/Donations/Filter/Form.tsx | 4 +- .../UserDashboard/Donations/Filter/index.tsx | 2 +- .../UserDashboard/Donations/MobileTable.tsx | 2 +- .../Donations/PaymentResumer.tsx | 2 +- .../UserDashboard/Donations/StatusTabs.tsx | 12 +- src/pages/UserDashboard/Donations/Table.tsx | 2 +- src/pages/UserDashboard/Donations/index.tsx | 6 +- src/pages/UserDashboard/EditProfile/Form.tsx | 2 +- src/pages/Widget/Configurer/Configurer.tsx | 4 +- .../Configurer/EndowmentSelector/Options.tsx | 4 +- src/pages/Widget/Preview.tsx | 2 +- src/pages/Widget/Snippet/Snippet.tsx | 2 +- src/pages/donate-fund/fund-card.tsx | 2 +- src/pages/informational/DonorInfo/Hero.tsx | 2 +- .../informational/NonprofitInfo/BottomCta.tsx | 2 +- .../NonprofitInfo/FiscalSponsorship.tsx | 2 +- .../informational/NonprofitInfo/Hero.tsx | 2 +- .../NonprofitInfo/NonprofitInfo.tsx | 22 +- .../NonprofitInfo/Testimonials.tsx | 4 +- src/pages/informational/NonprofitInfo/faq.tsx | 6 +- src/pages/informational/WpPlugin.tsx | 4 +- src/pages/informational/about/bottom-cta.tsx | 2 +- src/pages/informational/about/index.tsx | 12 +- src/styles/components.css | 290 ++-- src/styles/utilities.css | 50 +- src/types/components.ts | 2 +- tailwind.config.js | 145 -- vite.config.js | 7 +- yarn.lock | 1247 +++++++++++------ 162 files changed, 1470 insertions(+), 1039 deletions(-) delete mode 100644 postcss.config.js delete mode 100644 tailwind.config.js diff --git a/biome.json b/biome.json index b9de57c17c..e63c69ecd1 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/1.8.1/schema.json", + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", "organizeImports": { "enabled": true }, @@ -47,7 +47,7 @@ "noSwitchDeclarations": "off", "noChildrenProp": "off", "noUnusedVariables": "warn", - "noUnusedImports":"warn", + "noUnusedImports": "warn", "useJsxKeyInIterable": "off" }, "a11y": { @@ -55,7 +55,8 @@ "useAltText": "off", "useKeyWithMouseEvents": "off", "useKeyWithClickEvents": "off", - "noSvgWithoutTitle": "off" + "noSvgWithoutTitle": "off", + "noLabelWithoutControl": "off" } } }, diff --git a/package.json b/package.json index c5520dde7b..6b92fc1876 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@sentry/react": "8.47.0", "@stripe/react-stripe-js": "3.1.1", "@stripe/stripe-js": "5.3.0", + "@tailwindcss/vite": "^4.0.0", "@vercel/blob": "0.27.1", "@vercel/kv": "3.0.0", "@vercel/remix": "2.15.2", @@ -95,10 +96,9 @@ }, "devDependencies": { "@aws-lite/dynamodb-types": "0.3.11", - "@biomejs/biome": "1.8.1", + "@biomejs/biome": "1.9.4", "@remix-run/dev": "2.15.2", "@remix-run/testing": "2.15.2", - "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/typography": "0.5.15", "@testing-library/dom": "10.1.0", "@testing-library/jest-dom": "6.4.6", @@ -110,15 +110,12 @@ "@types/react": "18.2.62", "@types/react-csv": "1.1.10", "@types/react-dom": "18.2.19", - "autoprefixer": "10.4.20", "jsdom": "24.1.0", "lefthook": "1.6.15", "msw": "2.3.1", - "postcss": "8.4.49", - "postcss-import": "16.1.0", - "tailwindcss": "3.4.3", + "tailwindcss": "^4.0.0", "typescript": "5.5", - "vite": "5.1.0", + "vite": "5.2.0", "vite-tsconfig-paths": "5.1.4", "vitest": "2.1.8" } diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 2aa7205d4b..0000000000 --- a/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/src/components/BankDetails/BankDetails.tsx b/src/components/BankDetails/BankDetails.tsx index 29480dc62c..3df6f232ff 100644 --- a/src/components/BankDetails/BankDetails.tsx +++ b/src/components/BankDetails/BankDetails.tsx @@ -71,7 +71,7 @@ export default function BankDetails({ disabled={isSubmitting} /> - + ); } diff --git a/src/components/CountrySelector/Options.tsx b/src/components/CountrySelector/Options.tsx index a4dba40b96..113ea3a377 100644 --- a/src/components/CountrySelector/Options.tsx +++ b/src/components/CountrySelector/Options.tsx @@ -3,7 +3,7 @@ import { isEmpty } from "helpers"; import type { Country } from "types/components"; const containerStyle = - "absolute top-full mt-2 z-10 w-full bg-white dark:bg-blue-d6 shadow-lg rounded overflow-y-scroll scroller"; + "absolute top-full mt-2 z-10 w-full bg-white dark:bg-blue-d6 shadow-lg rounded-sm overflow-y-scroll scroller"; type Props = { query: string; @@ -22,7 +22,7 @@ export default function Options({ query, options }: Props) { {(!isEmpty(options) && filtered.map((country) => ( diff --git a/src/components/CurrencySelector/CurrencyOptions.tsx b/src/components/CurrencySelector/CurrencyOptions.tsx index e347823175..6840b14c20 100644 --- a/src/components/CurrencySelector/CurrencyOptions.tsx +++ b/src/components/CurrencySelector/CurrencyOptions.tsx @@ -43,19 +43,19 @@ export default function CurrencyOptions({ classes={{ container: classes + - " font-heading bg-white w-full rounded border border-gray-l4 p-2 text-sm text-navy-l1 shadow-lg", + " font-heading bg-white w-full rounded-sm border border-gray-l4 p-2 text-sm text-navy-l1 shadow-lg", }} > {(currencies) => ( {currencies.map(({ code, name, min, rate }) => ( {!!name ? `${code.toUpperCase()} - ${name}` : code.toUpperCase()} diff --git a/src/components/DonateMethods/DonateMethods.tsx b/src/components/DonateMethods/DonateMethods.tsx index 6d890fc418..6c936e7475 100644 --- a/src/components/DonateMethods/DonateMethods.tsx +++ b/src/components/DonateMethods/DonateMethods.tsx @@ -91,7 +91,7 @@ function Method({ dragControls={controls} id={value.id} style={{ y }} - className="flex items-center gap-2 border border-gray-l4 p-3 aria-disabled:bg-gray-l4 aria-disabled:text-gray rounded bg-white select-none" + className="flex items-center gap-2 border border-gray-l4 p-3 aria-disabled:bg-gray-l4 aria-disabled:text-gray rounded-sm bg-white select-none" > ((props, ref) => { data-disabled={props.disabled || props.value === "loading"} {...getRootProps({ className: `relative grid place-items-center rounded border border-gray-l2 border-dashed w-full h-[11.375rem] - focus:outline-none focus:ring-2 data-[drag="true"]:ring-2 has-[:active]:ring-2 ring-blue-d1 ring-offset-2 + focus:outline-hidden focus:ring-2 data-[drag="true"]:ring-2 has-active:ring-2 ring-blue-d1 ring-offset-2 hover:bg-blue-l5 data-[disabled="true"]:bg-gray-l5 data-[disabled="true"]:pointer-events-none data-[disabled="true"]:ring-0 data-[invalid="true"]:border-red diff --git a/src/components/Group.tsx b/src/components/Group.tsx index e4bf231e14..7209d71e8d 100644 --- a/src/components/Group.tsx +++ b/src/components/Group.tsx @@ -12,7 +12,7 @@ export default function Group({ }>) { return (
{title &&

{title}

} {description && ( diff --git a/src/components/Header/NavDropdown.tsx b/src/components/Header/NavDropdown.tsx index 79ef56cf8e..ee258c8ea2 100644 --- a/src/components/Header/NavDropdown.tsx +++ b/src/components/Header/NavDropdown.tsx @@ -24,17 +24,17 @@ export default function NavDropdown({ user, isInAuth }: Props) { @@ -43,7 +43,7 @@ export default function NavDropdown({ user, isInAuth }: Props) { transition anchor={{ to: "bottom end", gap: 10 }} as="nav" - className="grid isolate z-40 rounded-lg bg-gray-l6 drop-shadow-2xl scroller origin-top transition duration-100 ease-out data-[closed]:scale-95 data-[closed]:opacity-0" + className="grid isolate z-40 rounded-lg bg-gray-l6 drop-shadow-2xl scroller origin-top transition duration-100 ease-out data-closed:scale-95 data-closed:opacity-0" >
diff --git a/src/components/Header/UserMenu/EndowmentLink.tsx b/src/components/Header/UserMenu/EndowmentLink.tsx index ad78d49bf8..c536eecc95 100644 --- a/src/components/Header/UserMenu/EndowmentLink.tsx +++ b/src/components/Header/UserMenu/EndowmentLink.tsx @@ -46,7 +46,7 @@ export function Skeleton() { aria-disabled={true} > - + ); } diff --git a/src/components/ImgEditor/ImgCropper.tsx b/src/components/ImgEditor/ImgCropper.tsx index 74f889d4c7..915fa4d87b 100644 --- a/src/components/ImgEditor/ImgCropper.tsx +++ b/src/components/ImgEditor/ImgCropper.tsx @@ -39,9 +39,9 @@ export function ImgCropper({ return ( - +

I just donated to The Better Giving 501(c)(3) on{" "} @BetterDotGiving! They can choose to diff --git a/src/components/donation/Steps/Submit/Crypto/DirectMode.tsx b/src/components/donation/Steps/Submit/Crypto/DirectMode.tsx index 13991e7556..2f4fbd881c 100644 --- a/src/components/donation/Steps/Submit/Crypto/DirectMode.tsx +++ b/src/components/donation/Steps/Submit/Crypto/DirectMode.tsx @@ -89,7 +89,7 @@ export default function DirectMode({ donation, classes = "" }: Props) { isError: !!error, }} messages={{ - loading: , + loading: , error: "Failed to load donation address", }} > diff --git a/src/components/donation/Steps/Submit/Loader.tsx b/src/components/donation/Steps/Submit/Loader.tsx index dc2469657c..50180c16d9 100644 --- a/src/components/donation/Steps/Submit/Loader.tsx +++ b/src/components/donation/Steps/Submit/Loader.tsx @@ -11,7 +11,7 @@ export default function Loader({ msg }: Props) { > {msg &&

{msg}

}
diff --git a/src/components/donation/Steps/Submit/Stocks.tsx b/src/components/donation/Steps/Submit/Stocks.tsx index bbede0d2ab..2086b888d6 100644 --- a/src/components/donation/Steps/Submit/Stocks.tsx +++ b/src/components/donation/Steps/Submit/Stocks.tsx @@ -21,7 +21,7 @@ export default function Stocks(props: StockCheckoutStep) { To complete this donation, please email or provide your broker with the following information:

-
+

Please transfer [  {props.details.numShares + (props.tip?.value ?? 0)} @@ -39,7 +39,7 @@ export default function Stocks(props: StockCheckoutStep) {

You may also need the following information:

- + Better Giving is a nonprofit with 501(c)(3) tax-exempt status, Federal ID #: 87-3758939. @@ -62,7 +62,7 @@ export default function Stocks(props: StockCheckoutStep) { +props.details.numShares, props.details.symbol )} - className="btn btn-blue bg-[--accent-primary] enabled:hover:bg-[--accent-primary] rounded-full px-4 py-2 justify-self-end mt-2 text-xs font-normal" + className="btn btn-blue bg-(--accent-primary) enabled:hover:bg-(--accent-primary) rounded-full px-4 py-2 justify-self-end mt-2 text-xs font-normal" > Generate email diff --git a/src/components/donation/Steps/Submit/StripeCheckout/Checkout.tsx b/src/components/donation/Steps/Submit/StripeCheckout/Checkout.tsx index dba89a22fc..beef2598b5 100644 --- a/src/components/donation/Steps/Submit/StripeCheckout/Checkout.tsx +++ b/src/components/donation/Steps/Submit/StripeCheckout/Checkout.tsx @@ -106,7 +106,7 @@ export default function Checkout(props: StripeCheckoutStep) { ) : (