Replace the heavy `google-libphonenumber` dependency with a custom,
ultra-lightweight (~3KB) mapping of country calling codes to reduce
bundle size.
- Remove `google-libphonenumber` and `react-icons` from dependencies
- Add `src/data/country-calling-codes.ts` for efficient lookup
- Update `src/lib/geo-region.ts` to use the new lookup utility
- Add font preloading for Faminela and YekanX in `src/app/layout.tsx` to
improve perceived performance
- Improve cookie parsing robustness in `auth-bridge` and add tests for
URI-encoded Persian text support
- Add new test suite for marriage cookie encoding/decoding strategies
- Update `next.config.ts` to use `stale-while-revalidate` for application HTML shells to improve WebView rendering speed.
- Implement immutable caching for static assets in `/assets/fonts/`.
- Add `.woff2` versions of various fonts to `public/assets/fonts/` and `public/fonts/` to improve performance and reduce payload size.
- Update `globals.css` to prioritize `.woff2` font formats.
- Increase `staleTime` from 30s to 3m for various marriage-related queries in `use-form-schema.ts` and client components to reduce redundant network requests.
- Refactor `QuestionSheet` to use CSS-based `min-h-[52px]` instead of dynamic inline style calculations for option buttons, improving layout stability and simplifying the component.
- Improve loading state handling in `QuestionDetailClient` by incorporating `isPending` from TanStack Query.
- Update test assertions in `question-sheet.test.tsx` to reflect the shift from inline styles to Tailwind CSS classes.
Refactor the `TermsSheet` component to achieve better parity with Flutter's
`DraggableScrollableSheet`. This includes implementing a snapping mechanism
between two resting states (0.75 and 1.0) and updating the CSS to handle
safe area insets and dynamic height calculations.
- Add `.flutter-draggable-sheet` class to `globals.css` for height scaling
against available screen space below the status bar.
- Implement `snapTo` logic in `TermsSheet` to handle transitions between
initial and expanded states.
- Add `restingStateRef` to track the current snapped position.
- Update `TermsSheet` touch event handlers to support snapping based on
drag distance and current size.
- Add unit tests to verify snapping behavior for pulling up, pulling down,
and reaching the minimum size threshold.