Skip to content

Commit 5cfff96

Browse files
github-actions[bot]JasonCWangbsiaotickchongAaryamanBhutematthappens
authored
Updates to core, ui (#458)
* Add new quote screen to demo send flow (#16461) Contributes to PX-263 ![Screenshot 2025-03-28 at 12.43.28 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/675581d8-e82f-44c5-9149-baa127b2dc1b.png) ![Screenshot 2025-03-28 at 12.43.35 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/577afe15-9085-40b0-99b2-705b4db065c3.png) GitOrigin-RevId: da28e36b2b116faad819aff5b0becf240474eb90 * [bridge] add new progress header design to card forms and design updates (#16591) - progress has a new design and is moved into the BridgeCardForm - progress is dynamic depending on the integration (minimum 5 steps, otherwise adds more bars) - the add-credentials page is hardcoded to be a step since the user isn't logged in yet - updates CardForm with an override for top margins since there's a bunch of hard coded values - updates Add Credentials page design - removes the top nav/banner for most screens - adds hover and active state to the icon with circle background component - add logo in top left corner for desktop - add x buttons for steps after home screen which navigates back to the home screen - add padding for verify-identity and request email - updated width for bridge modals - help button on right for choose uma - moved from BridgeFullPage to BridgeCardForm - has multiple forms depending on which step - updated help modal design - addressed some design nits for verify identity and connect bank screens ![Screenshot 2025-04-03 at 5.46.29 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/08e08ac8-1fd1-4809-a53e-fe4b897687d7.png) ![Screenshot 2025-04-03 at 6.21.56 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/7d51de60-3d0f-4545-80af-7123c74f95dc.png) ![Screenshot 2025-04-03 at 6.24.53 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/7116fe62-381a-4dcd-af47-c291b4788bff.png) ![Screenshot 2025-04-03 at 6.09.24 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/0cce05a2-e131-4155-ab57-a282d8b753ce.png) ![Screenshot 2025-04-07 at 1.54.30 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/25a28160-ed16-445b-b850-32f6b242a3ba.png) GitOrigin-RevId: 1cd050066364a65e960f9d4508240b410d50e9fa * Add send demo autopop modal (#16747) ![Screenshot 2025-04-10 at 3.14.54 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/3bf80775-31bc-4c07-8523-0ba9ef4da30e.png) Contributes to PX-136 GitOrigin-RevId: 41819091fde5e1f226de37bb547f2aeff7bcd7d6 * Add graphicHeader to CardForm and update ActivateUma (#16767) ![Screenshot 2025-04-11 at 9.34.25 AM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/f43f547f-16cc-4f2c-9938-05bb9e45cf22.png) GitOrigin-RevId: ff4b069e8bc542f27aff41417e1b8796fba2b637 * [bridge] updated mutations to support email/phone split (#16664) # Updated Password Reset Flow to Support Phone and Email This PR updates the password reset flow to support both email and phone number verification methods. It includes several key changes: - Modified the `ResetPasswordInput` type to use `identifier`, `identifier_type`, and `token` instead of `email` and `email_token` - Updated the `RequestPasswordResetMutation` to return delivery method and target information - Enhanced the UI for password reset requests with separate flows for email and phone verification - Added support for multi-login enabled accounts to choose between phone or email for password reset - Improved the CardForm component with new styling options and better layout control - Updated the BridgeCardForm component to use Icon instead of IconWithCircleBackground for better visual consistency - Added stretch configuration to CardFormBottomContent for flexible layouts - Updated the reset password confirmation page to handle both email and phone token verification These changes align the password reset flow with the frontend design and provide a more flexible authentication experience. Mockups: ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/ca26c881-719f-42e6-9bfa-77d7acbacedd.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/20b4a04a-4655-439b-be56-ae3b1815ddac.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/a1f148f6-89c4-441d-96df-188d24e782bb.png) GitOrigin-RevId: 530c84149b5122a28c5aac6b441362ead0d48d32 * Add toggle send and receive amount animation (#16570) ![Screenshot 2025-04-07 at 3.07.30 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/4fe19ea3-44ee-44c2-a557-aa8075610141.png) ![Screenshot 2025-04-07 at 3.08.03 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/6a795703-b7ee-4505-b81c-6e644e664bde.png) ![Screenshot 2025-04-07 at 3.07.58 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/63462a18-5842-44c5-8e39-a1896a553d74.png) ![Screenshot 2025-04-07 at 3.07.40 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/db0d806d-29d9-42dd-8bdd-514058b7db67.png) GitOrigin-RevId: 83943620283ae0942523d9771272ac00b03ac725 * clean up kyc page for 3a users (#16868) # provide a more correctly styled 3a kyc page + language strings we're negotiating about if we even need this page, but until then, here's the styling closes PX-343 & PX-169 | Design | Impl | |----------|----------| | ![Screenshot 2025-04-14 at 2.11.18 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/kXS0LK7Piva9kiHcEnGv/b5087cb1-9024-48db-a5ca-afee9a313715.png) | ![Screenshot 2025-04-14 at 2.11.52 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/kXS0LK7Piva9kiHcEnGv/f5336b6d-0d55-465c-a996-0451ad32f613.png) | GitOrigin-RevId: f2fb2523aa9a6bb55f55cfb2fe904c3e9cd1fc4c * [bridge] transactions zero state update (#16813) ### TL;DR Enhanced the empty state for the transaction list with a "Share UMA" call to action. ### What changed? - Redesigned the `NoTransactions` component to include: - Skeleton profile images - A blur gradient overlay - A "No activity, yet" message with descriptive text - A "Share UMA" button that uses the `useShareUma` hook - Added new translation strings for "No activity, yet", description text, and "Share UMA" button - Adjusted the styling of the skeleton containers to better match the design - Modified the Small button padding in the bridge theme from 13px to 8px ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/905bc55c-7243-43bd-bd02-6d7f8c4b0331.png) GitOrigin-RevId: ac10a3cede09ead632a55043097e36536d053eef * fix link bank styling, add language strings (#16879) # fix 3a link bank there were some styling and language string issues with linking 3a bank accounts this pr fixes up the style elements and adds string translations GitOrigin-RevId: 7dd4ca797b21a901c71f1dd1343b404a17d56fac * [uma-bridge] Fix CardForm key error (#16896) GitOrigin-RevId: 6a3c007d8341d2c90a6fcc5ea0ca0e7cc53e1532 * Remove us2mx invite before onboarding is complete and fix send page autofocus (#16866) This PR: - Removes autofocus on send page for send demo release - Adds lock icon to finish setup buttons for new design - Removes finish setup button from Send autopop modal once fully onboarded - Removes Us2Mx invite container until the user is fully onboarded - Adds required onBlur login to multiinput GitOrigin-RevId: 5d1e24ddca69a2970b31876475477e50196bd991 * [sparkcore] Validate ui logs input with pydantic (#16860) * [sparkcore] Validate ui logs input with pydantic * use TypeError instead of ValueError * fix type * fix pyre * fix sort * rename to objectToJSON, pass stringifyObjects true from logger * pass stringifyObjects in initAccount * fix core build * remove window debug * fix parent method not callable GitOrigin-RevId: 4d5c237cf4a255a01eb1b9e74f2d708d13228731 * [bridge] added UI changes for new reset password workflow (#16715) # Updated UI for reset password This PR enhances the password reset functionality by: 1. Adding a `LoginMethod` enum to replace string literals for identifier types (`EMAIL`, `PHONE`) 2. Implementing password validation for the Bridge app with specific requirements (10+ characters) 3. Adding a password confirmation field with matching validation 4. Improving the UI for the password reset flow with better error messages and validation feedback 5. Updating the backend password validation logic to support different requirements based on user type 6. Adding visual indicators for password validation status (success/error states) 7. Enhancing toast notifications with support for success/error/info types The changes ensure a more consistent and user-friendly password reset experience across the application. ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/46c35509-0cfe-4bfb-9fbf-db552617f0db.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/600a64bc-79d8-4fa5-8e57-6cfe05d06dfc.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/644ec8be-dd7d-4707-b693-e3cfbf0ece6e.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/8a7fedef-362f-4a06-a423-aa6e7b5bcae8.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/ab10a8b5-fe38-49ae-94dd-44fb783048ab.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/b9e9c932-86d1-4d2a-9361-e827c4d9e588.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/9badb43a-8317-45d6-b471-e1b5334e2ec2.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/33f23622-308a-4266-81c5-5856e0c595f3.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/c4f4374e-eece-4944-8945-cae10f85f4f1.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/ee9116d6-99a2-4466-8761-f503aa3e222a.png) GitOrigin-RevId: b7ec16c4ffc14d94873343526eebd633ab654b9c * [bridge] Fix gk loading create account state, add focus phone input event (#16967) GitOrigin-RevId: 5dd9012692a2e31df338957209c351173ed91e05 * [bridge] temporarily fix infinite render bug with useFields (#16992) GitOrigin-RevId: cb1812853d4c35aa23801551963bdb01d1f1d5d5 * [ui] Only set fields when defaultFields actually changes (#16997) [ui] Only set fields when default fields actually changes GitOrigin-RevId: 431f045cfbfbab1338b95373a381985a2c84dab6 * Revert "[bridge] temporarily fix infinite render bug with useFields" (#16998) Revert "[bridge] temporarily fix infinite render bug with useFields (#16992)" This reverts commit cb1812853d4c35aa23801551963bdb01d1f1d5d5. GitOrigin-RevId: 59dc9acdb4528f0a640bdf16bc74e82c6e14b8d8 * Add country code selector to CreateAccount (#16663) Contributes to PX-148. Has built in validation same as the PhoneInput. Uses react-phone-flags for this. This PR: - Adds react-phone-flags package - Removes unused select field in ListItem (my bad) - Adds option to pass in a ReactNode for ListItem image - Makes ListItem description optional - Replaces existing PhoneInput with CountryCodeSelector + TextInput ![Screenshot 2025-04-04 at 2.54.53 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/aa08959f-b333-491d-a12d-48bd6472c7ea.png) ![Screenshot 2025-04-04 at 2.54.57 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/8d7c9af4-a3fd-425e-a73f-834a794404ba.png) GitOrigin-RevId: b5014850b4552bb44eb69ced2b6388e58e533233 * CI update lock file for PR * [ui] Ensure fields memoized if haven't changed in call to mergeWithFields (#17015) GitOrigin-RevId: 0c519d6b0720d1ae1a7a2e936bc6219dd1b2a205 * Add search/auto focus to country code selector (#16909) Got Pat's sign off on this one 🙏 This PR: - Adds fade in and out animations to country code selector - Adds new medium padding between TextInput icon and placeholder - Adds option to fix drawer to bottom of the screen & set a max height - Makes all bridge modals with drawer smKind fixed to the bottom (I THINK THIS IS RIGHT? LMK) ![Screenshot 2025-04-17 at 5.06.51 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/d204a405-1924-48e0-8362-3a21455f4a74.png) ![Screenshot 2025-04-17 at 5.06.58 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/6c3ac9ee-5e55-425d-88ec-b2f8b202998f.png) ![Screenshot 2025-04-18 at 11.29.38 AM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/1f4dad5c-fb54-420f-a816-6d876c685fab.png) ![Screenshot 2025-04-18 at 11.29.43 AM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/EJphitdgYFvuACNazm1q/b4cfddd2-5b74-4e58-bb0d-3d4304a9bff6.png) GitOrigin-RevId: 2a0f4b7e55da06631960111d7dfd9c2cb1e707ff * [bridge] fix margins in onboarding steps, fix activate uma navigation (#17020) - fixes paddings and margins in various screens - redirects to email verification step from activate uma step so it doesn't show an error when attempting to navigate to the verify-identity step too early ![Screenshot 2025-04-18 at 2.25.41 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/7bd5e590-aa2e-4705-bc7b-45e1e8e4de24.png) ![Screenshot 2025-04-18 at 2.28.41 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/a7e125a5-ff79-4f43-bee4-fbfe7de8c036.png) ![Screenshot 2025-04-18 at 2.38.47 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/c6d2e5c6-dcf1-4eb8-bdcc-2618f178f55d.png) ![Screenshot 2025-04-18 at 2.01.26 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/266d1f26-b7a5-42b2-b00a-d91b2e23f234.png) GitOrigin-RevId: 927703ed10ce1874dea6c754af82762adc368ff5 * [bridge] Move flag SVGs to app and remove react-circle-flags dep (#17022) * [bridge] Move flag SVGs to app and remove react-circle-flags dep * fix GitOrigin-RevId: f8dfa429d321bccb45924edfc674c25731296fcd * CI update lock file for PR * [bridge] Support v2 query param to enable related features (#17116) GitOrigin-RevId: 00d014e5b2fc3f95d9e8147595c7035507c4370f * [bridge] updated verify email (#16890) ### TL;DR Added email update functionality to the UMA Bridge app, allowing users to update their email address and verify it. ### What changed? - Added a new `UpdateEmail` page component with corresponding route - Updated GraphQL mutation from `update_user_email` to `update_logged_in_user_email` for consistency - Enhanced the email verification flow with new modals for "Didn't receive email" and "Open email app" options - Added email client icons (Gmail, Outlook, Apple Mail) to help users open their email apps - Added new language strings for the email update and verification flows - Created a new `ImageIcon` component for displaying email client icons - Improved the UI of the email verification page with better spacing and layout ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/f42db8cb-9828-406d-83fa-dfa79a681b45.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/b01bcb5c-982d-40e2-a273-121897f349d0.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/6be5e653-c64e-4e31-b1f6-f419e54ee9b7.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/fe9bc14d-25c0-4458-bbb2-395234cc8d5a.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/cf843ac8-7ee9-43ec-a603-eb943034817a.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/62b93b07-4405-4ff5-94f1-b5fd4f9d094e.png) GitOrigin-RevId: ced428a41e10dfb717ff06819bec83c0ab6ac939 * Fix CountryCodeSelector height and keyboard accessibility (#17131) This PR: - Removes the ability to scroll on the CountryCodeSelector - Makes it smaller for mobile to take into account keyboard - Removes drawerHeight from drawer as its not needed anymore - Allows the user to press enter and select the first country in the list GitOrigin-RevId: f02da607486811bce0db92eb98472769cac2041b * [bridge] New start page (#17168) GitOrigin-RevId: f21173aca21eb96b5d853224cc9617b854bb6618 * [bridge] Fix inner border radius on start page (#17187) GitOrigin-RevId: 32a7a3e99c90a80b78176e5caff27bf2c2cc5eef * [s2c] gather clabe info (stage 1/2) (#17146) # Added CLABE Account Details Collection for Mexican Bank Transfers This PR implements the UI for collecting recipient CLABE account details when sending to Mexican bank accounts. Key changes include: - Added new translations for CLABE-related fields and instructions - Implemented the `CollectClabeReceiverData` component with form validation - Added support for entering recipient's legal name and CLABE number - Connected the CLABE collection flow to the main receiver data collection process - Updated the `getReceiverUmaAddress` function to handle CLABE addresses - Added CLABE validation to the `useFields` hook The implementation follows a step-based approach for collecting recipient information, with proper validation for the 18-digit CLABE format. ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/13494c2e-e9d5-4883-be68-9faeec5b86f4.png) GitOrigin-RevId: 9d35503aeae2a3f7dba2b5cb99ce5e9b62d1653a * [bridge] New start using UMA page (#17191) * [bridge] New start using UMA page * fixes GitOrigin-RevId: d9461988a2ef02c2395509cc60623272883dd0a9 * removed checkFieldForError from useFields return (#17204) ### TL;DR Removed `checkFieldForError` from the return object in `useFields` hook. ### What changed? Removed the `checkFieldForError` function from the object returned by the `useFields` hook. This function was previously exported alongside other field-related utilities like `blurredFields`, `getUpdateField`, `allFieldsValid`, and `fieldErrors` however using it caused infinite rendering issues because it calls setFieldErrors within it. GitOrigin-RevId: fb7ff01ca6adea82720d0b62838d363e7f8f0dfe * [site, docs] Update to new logo (#17235) * [site, docs] Update to new logo * more * fix GitOrigin-RevId: 9801df67d5315618607363320b64aceefea7975a * [s2c] updated nationality select (#17269) ### TL;DR Enhanced the NationalitySelector component with country flags and improved styling for a better user experience. ### What changed? - Added country flags to the NationalitySelector dropdown options - Improved styling of the NationalitySelector component: - Added proper border radius (16px) - Set border color to #B6BAC3 - Set border width to 0.5px - Created a styled RegionLabel component to properly align flags with country names - Added a new `selectMarginTop` prop to the CardForm component to allow customization of select element spacing - Applied the new `selectMarginTop` prop in the CollectClabeReceiverData component to improve layout - Added proper margin to the continue button in CollectClabeReceiverData ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/f8e0e218-6671-416a-b017-97065ac5b241.png) GitOrigin-RevId: 172ce283e29d4069a2e8ac3631fa54b8a6e0ce0c * Fix country code selector height again (#17306) GitOrigin-RevId: dffad37a6c15c4a7598370f324d3f84a8b0f8b02 * [js] Update favicons and manifest files with new logo (#17303) * [site, docs, ops, oauth-app] Update favicons and manifest files * docs and remove 48x48 * ui test app * issuance GitOrigin-RevId: dc855b3f7584a4282eb8442a9b6a696f30abfaa9 * [bridge] add new invite modal design (#17322) ![Screenshot 2025-04-28 at 5.46.55 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/b2b75bde-2e1d-4f34-9a72-7c9149165cbd.png) ![Screenshot 2025-04-28 at 5.47.16 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/0399c1cf-28d6-4c09-956e-b5d3adc1284a.png) ![Screenshot 2025-04-28 at 5.58.08 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/d5ad4a94-86dd-43de-94d8-ba5c5ee9cd23.png) GitOrigin-RevId: ef4aff5b64411ca37f68d79006386e9b505e32b3 * fix birthday input style and add hint (#17401) GitOrigin-RevId: 4dc181d0c35fa4adda5d00d102b940c0a185ffb0 * [bridge] add success notice after linking bank (#17437) ![Screenshot 2025-05-01 at 1.23.53 PM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/6d2f377e-5ef4-4f5a-bc53-30465c1591d8.png) GitOrigin-RevId: 6c7eef5c3e88b876cbc52e2d120b4aadeab8e93e * [s2c] added title margin (#17433) ### TL;DR Added a `titleMarginLeft` prop to the CardForm component to allow customizing the left margin of the title. ### What changed? - Added a new `titleMarginLeft` prop to the `CardForm` component with a default value of 0 - Updated the `CardHeadline` styled component to apply the left margin when the prop is provided - Implemented the new prop in the `InputReceiverTypeStep` component with a value of `Spacing.xs` ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/8bf1d836-7bf3-4172-9e3f-c0be068afb2c.png) GitOrigin-RevId: 1b9d99c53fb3da5f5233869513b313b3fa69c815 * [bridge] add carousel to home page (#17497) - shows header w buttons if the user is on desktop - allows user to horizontal scroll manually - looks for query params to determine input receiver type when on SplitSend page - links directly to clabe flow from "Send to a mexican bank" card in the carousel - should probably have more precise links to the demo - adds paddingX to cardform and bridgecardform because the carousel needs to go up to the edges of the form - adds smDontAdjustWidth bc there's common styles in cardForm that make the width smaller, which make it impossible for the carousel to go up to the edges of the form [Screen Recording 2025-05-05 at 8.30.51 AM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/NU8OmLauzLqa61yWDJkY/4e7ee5a8-5e6c-4f8b-80aa-b05a57d29219.mov" />](https://app.graphite.dev/media/video/NU8OmLauzLqa61yWDJkY/4e7ee5a8-5e6c-4f8b-80aa-b05a57d29219.mov) ![Screenshot 2025-05-05 at 9.19.45 AM.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/NU8OmLauzLqa61yWDJkY/4c866075-fc53-4848-844c-59421ade60ac.png) GitOrigin-RevId: edd145dff38e50b03deb210eed715443a5942f21 * [s2c] added stroke for input icon (#17492) ### TL;DR Added support for customizable stroke width in TextInput icons. ### What changed? - Added a new `strokeWidth` property to the icon configuration in TextInput component - Introduced `iconStrokeWidths` array with values `[1, 1.5, 2]` and corresponding type - Extended the icon width options to include `20` as a valid width - Updated the Icon component usage to pass the strokeWidth to iconProps - Applied these changes in the CLABE receiver data form by setting the question mark icon to have width 20 and strokeWidth 1.5 GitOrigin-RevId: 154b81051b87eeadcbcf4648d406ee693d653901 * [UMAaaS][DevTool] Add supported currencies to platform (#17514) GitOrigin-RevId: 07d38ae544a240696cc68bcf34ef30dd6ee5e60b * [s2c] added promo item and modal (#17526) ### TL;DR Added a new promotional carousel item offering $20 USD for first-time transactions to Mexico. ### What changed? - Added a new promotional carousel item that displays "Get $20 USD" for users in ZH who have Send2Clabe enabled - Created a new modal that appears when users click on the promo item, explaining the promotion details - Added new translations for the promo content in English, Spanish, and Portuguese - Added a new "CentralGift" icon to support the promo UI - Added a new "green37" button kind for styling - Added support for custom background and text colors in carousel item icons - Added a new promo graphic image ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/4e5b9860-e14e-4aeb-b2dd-47ae96ed310c.png) ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/oOuIssbrOKuvWkHIBu32/841ce63c-ab19-4e66-afd6-589bbc912296.png) GitOrigin-RevId: f8ff1108c3a6a469fa208719e9bded699d316969 * [s2c] Add express setup hook and banner (#17565) GitOrigin-RevId: 1e32d72a38ea14aa9f69d009c6752305a934494a * [s2c] receipt page (#17552) GitOrigin-RevId: 854efcc6c3fc67a199329cb1eca0439e0c20bd04 * [js] fix feature gating (#17595) - `getLocalStorageBoolean` would evaluate to false if the key is not set in local storage. This falsy value results in the GK to always act as a fallback. Even if you set the storage key to "0", it returns false, and falls back to the GK. - Fix this by returning either true, false, or null. Null indicates that the key is not set. Only in the scenario where the local storage key is NOT set, do we fallback to the GK. Otherwise, use the local storage setting as the higher priority. GitOrigin-RevId: 87b6ac4a9a00f1567ce737aaffcbc90f4c244e7c * [core] Async init Requester wsClient (#17603) * [core] Async init Requester wsClient * try/catch err * fix log GitOrigin-RevId: 1a9f051217a2a75369c55afdec3750e9c69a5f73 * Add changesets --------- Co-authored-by: Jason Wang <jason@lightspark.com> Co-authored-by: Brian Siao Tick Chong <bsiaotickchong@gmail.com> Co-authored-by: Aaryaman Bhute <35084309+AaryamanBhute@users.noreply.github.com> Co-authored-by: Matt Davis <matthappens@gmail.com> Co-authored-by: Corey Martin <coreyn.martin@gmail.com> Co-authored-by: Lightspark Eng <engineering@lightspark.com> Co-authored-by: Yun Yu <109704778+yunyuyunyu@users.noreply.github.com> Co-authored-by: wuvictor95 <38848800+wuvictor-95@users.noreply.github.com>
1 parent 59051af commit 5cfff96

77 files changed

Lines changed: 1546 additions & 347 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/grumpy-eagles-mix.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
"@lightsparkdev/core": minor
3+
---
4+
5+
- **Test script**
6+
- Renamed `test` to `test-cmd` and made `test` an alias that accepts arbitrary Jest patterns.
7+
- **Requester**
8+
- Switched `wsClient` to a lazily initialized `Promise` resolved in a new `initWsClient` method.
9+
- Moved `autoBind` into constructor and improved cleanup/cancellation logic in `subscribe()`.
10+
- **New tests**
11+
- Added `Requester.test.ts` covering query execution, error handling, subscriptions, and signing logic.
12+
- **Errors utility**
13+
- Enhanced `errorToJSON` to enumerate non-enumerable props and optionally stringify nested objects.
14+
- **LocalStorage utility**
15+
- Made `getLocalStorageBoolean` return `true`/`false`/`null`; `getLocalStorageConfigItem` now defaults missing keys to `false`.
16+
- **Type guards**
17+
- Tightened `isObject` signature, added `isRecord`, and removed a duplicate in `types.ts`.
18+
- **Static assets**
19+
- Replaced the monolithic SVG logo with an optimized, higher-resolution `lightspark-logo.svg`.

.changeset/small-lies-perform.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
"@lightsparkdev/ui": patch
3+
---
4+
5+
- **BirthdayInput**
6+
- Dropped internal validity state; added `formatDateToText` hint formatter and “must be before today” validation.
7+
- **TextInput**
8+
- Introduced `success` & `contentError` props, `hideNonErrorsIfBlurred`, configurable `iconOffsets`, `iconStrokeWidths`.
9+
- **PhoneInput**
10+
- Added `onFocus` callback.
11+
- **QRCode**
12+
- Swapped in new `LogoMark` asset (vs. `FramedLogoOnCircle`), adjusted image sizing.
13+
- **Drawer & Modal**
14+
- Added `alignBottom` and `disableTouchMove` flags to support bottom-aligned, non-dismissable drawers.
15+
- **Button & Checkbox**
16+
- New kinds: `green37`, `gray99`, `white21`.
17+
- Added margin props (`mb`, `ml`, `mr`) for fine-grained spacing.
18+
- **CardForm**
19+
- Major refactor: dozens of new props (`aboveHeaderContent`, `graphicHeader`, `centeredContent`, `paddingX`, `contentMarginTop`, `formButtonTopMargin`, `selectMarginTop`, `smDontAdjustWidth`, etc.).
20+
- Extracted `CardFormHeadline`/`CenteredHeader`, wrapped forms in a `Flex` when using graphic headers.
21+
- **InputSubtext**
22+
- Now supports rich React-node `content`, distinguishes error vs. success styling, and respects “hide if blurred” logic.
23+
- **Toasts**
24+
- Added optional `type` (`error` | `success` | `info`) to color toast backgrounds.
25+
- **Hooks**
26+
- **`useFields`**: validator signature now `(value, fields?)`; added `matchesField` and `clabe` validators; smarter merge to prevent unnecessary rerenders.
27+
- **`useQueryParamBooleans`**: new hook for parsing multiple boolean query parameters at once.
28+
- **Icons**
29+
- Introduced dozens of new icons (e.g. `LogoMark`, `LightningBoltOutline`, `NonagonCheckmark`, `NubankLogo`) plus a full “central” icon set under `icons/central/`.
30+
- Standardized on a `PathProps` interface for configurable strokes.
31+
- **Styles & Theme**
32+
- **Colors**: added `gray35`, `gray7`, `white21`, `green37`, `blue32`, `linkLight`.
33+
- **Layout helper**: `buildStandardContentInset` gains an `smDontAdjustWidth` opt-out.
34+
- Tweaked `smHeaderLogoMarginLeft` (30px → 20px).
35+
- **Button themes**: added `white21`, `linkLight`, and `tertiary` kinds.
36+
- **CardForm theme**: now allows zero padding for new layout options.

apps/examples/oauth-app/index.html

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8" />
5-
<link rel="icon" href="/favicon.ico" />
65
<meta name="viewport" content="width=device-width, initial-scale=1" />
7-
<meta name="theme-color" content="#000000" />
6+
<title>Lightspark OAuth Demo</title>
87
<meta
98
name="description"
109
content="A demo of using oauth with the Lightspark JS SDK"
1110
/>
12-
<link rel="apple-touch-icon" href="/logo192.png" />
13-
<link rel="manifest" href="/manifest.json" />
14-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1511

16-
<title>Lightspark OAuth Demo</title>
12+
<link rel="icon" href="/favicon.ico" />
13+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
14+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
15+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
16+
<link rel="manifest" href="/manifest.json" crossorigin="use-credentials" />
17+
<meta name="theme-color" content="#000000" />
18+
19+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1720
</head>
1821
<body>
1922
<noscript>You need to enable JavaScript to run this app.</noscript>
1.53 KB
Loading
4.16 KB
Loading
1.36 KB
Loading
426 Bytes
Loading
910 Bytes
Loading
686 Bytes
Loading
-1.52 KB
Binary file not shown.

0 commit comments

Comments
 (0)