Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
0b3f84d
patch: package update + client for rabbitmq tasks
neue-dev Feb 16, 2026
e17780b
fix: forms ui doesn't wait for cache to be invalidated
jayylmao Feb 17, 2026
dc129a0
fix: editing profile doesn't save changes
jayylmao Feb 17, 2026
3d0f88f
chore: the `rounded-[0.33em]` disease
anaj00 Feb 18, 2026
9d6c22e
fix: formDocument -> formTemplate and temp fix for useAsyncProcess
neue-dev Feb 18, 2026
09aa265
chore: no wonder shiny text was black
anaj00 Feb 19, 2026
37a5a69
style: make contact options more obvious on forms page with no forms
jayylmao Feb 23, 2026
d672f1b
style: add link to form generation when no forms are in history
jayylmao Feb 23, 2026
2ca05ec
fix case sensitive email and success messages in forgot pw
chua-e Feb 23, 2026
9f72d9b
fix case sensitive email and success messages in forgot pw (#425)
chua-e Feb 23, 2026
188551c
forgot to remove console log
chua-e Feb 23, 2026
1c37063
forgot to remove console log (#426)
chua-e Feb 23, 2026
71f6b54
chore (temp): disable ADMU for now
anaj00 Feb 23, 2026
d0bf849
chore: remove bottom nav bar for mobile verification pages
anaj00 Feb 23, 2026
e07c165
feat: pdf gen (manual sign) works with rabbitmq
neue-dev Feb 23, 2026
50515e6
fix: rm thrown error on fetch client
neue-dev Feb 25, 2026
b839b64
feat: form fillout process client impl for rabbitmq
neue-dev Feb 25, 2026
4227e00
feat: initial impl of client form process state handling
neue-dev Feb 25, 2026
f92f6cb
fix: outdated package (?)
neue-dev Feb 25, 2026
1308e8c
fix: outdated package (2!)
neue-dev Feb 25, 2026
292f375
fix: npm cache clean during gh action
neue-dev Feb 25, 2026
ed6530b
FAH
anaj00 Feb 25, 2026
d8f47f2
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Feb 25, 2026
1cbc6e0
fix: posthog deprecated a package
neue-dev Feb 25, 2026
277bd98
feat: added the logic of Submit to BetterInternship if there is anoth…
anaj00 Feb 27, 2026
93075dc
temp: new form flow impl
neue-dev Mar 1, 2026
3441736
feat: link form data to new generate forms page flow
neue-dev Mar 1, 2026
607f621
patch: enable form preview button
neue-dev Mar 1, 2026
3c526d6
patch: enable form preview button
neue-dev Mar 1, 2026
d2b3109
Merge branch 'form-flow-playground' of https://github.com/BetterInter…
neue-dev Mar 1, 2026
372fb2d
feat: trigger specify signing parties after clicking 'sign via better…
neue-dev Mar 1, 2026
cab484b
fix: transition for signing flow
neue-dev Mar 2, 2026
863a6dc
feat: back and forth between form fillout and form gen layout
neue-dev Mar 2, 2026
ec55525
feat: add form history log, remove tabs
neue-dev Mar 2, 2026
be6316a
patch: make the form gen collapsible so it doesnt intrude history
neue-dev Mar 2, 2026
3048505
patch: remove signing party modal
neue-dev Mar 2, 2026
e28e82e
chore: fix qol issues
neue-dev Mar 2, 2026
27f8017
feat: add inputs for recipient emails
neue-dev Mar 2, 2026
cc6055f
patch: next handling of email inputs
neue-dev Mar 2, 2026
df8788f
feat: 3-step flow for signing
neue-dev Mar 2, 2026
04e7e85
fix: change layout to be more consistent with site
neue-dev Mar 2, 2026
e58de35
fix: issues with flow movement between form filler and template list
neue-dev Mar 2, 2026
9f434f2
feat: add confirm step
neue-dev Mar 2, 2026
a698378
feat: do signing and fillout flows
neue-dev Mar 2, 2026
2b5fb27
fix: can't set pay frequency to hour when creating a job
jayylmao Mar 3, 2026
c59dc51
fix: use auth context to conditionally display optional job requirements
jayylmao Mar 3, 2026
db85f82
fix: delete listing button overflows on narrow screens
jayylmao Mar 3, 2026
8e0c7c9
fix: app crash on displaying job details in some instances
jayylmao Mar 3, 2026
d5978f6
feat: add buffer when confirming, make it split pane instead
neue-dev Mar 3, 2026
e1a5431
feat: add currency formatter utility function
jayylmao Mar 3, 2026
18b921d
patch: add loader for next button, lengthen confirm buffer
neue-dev Mar 3, 2026
062adc2
fix: controls overflow off screen for dedicated listing page
jayylmao Mar 3, 2026
7ac0455
feat: link form init / gen with new flow
neue-dev Mar 3, 2026
29e98d2
Form flow playground (#427)
neue-dev Mar 3, 2026
3043ea0
feat: integrated the new form preview
anaj00 Mar 3, 2026
c1a643d
fix: signature, tooltip clipping, wrapping and font scaling on the pr…
anaj00 Mar 3, 2026
4c17fb6
chore: move the tooltip higher
anaj00 Mar 3, 2026
3511409
feat: auto and derived fields now show in the previewer
anaj00 Mar 4, 2026
66b3919
fix: font size unaffected by zoom
anaj00 Mar 4, 2026
4d9aed0
feat: enhance PreviewField type and normalization logic for improved …
anaj00 Mar 4, 2026
57619b1
feat: email validation and submission
neue-dev Mar 4, 2026
34ea04a
chore: state record util
neue-dev Mar 4, 2026
143e742
chore: rm old impl + refactor form process hooks
neue-dev Mar 4, 2026
cef8e99
chore: rm old layout artifacts
neue-dev Mar 4, 2026
3e36d0b
chore: modal cleanup
neue-dev Mar 4, 2026
8d7757c
patch: change pdf preview modal to use framer motion instead
neue-dev Mar 4, 2026
005b864
chore: deprecate old modal impl, clean up modal layout components
neue-dev Mar 5, 2026
c8c1aaf
chore: rm old form layout files, done cleanup modal impl
neue-dev Mar 5, 2026
f79ee25
chore: migrate form preview
neue-dev Mar 5, 2026
7a548c0
chore: separate template list into own component
neue-dev Mar 5, 2026
9ebe47b
chore: cleanup form timeline and form action accordion
neue-dev Mar 5, 2026
e558a45
fix: allow exit animation
neue-dev Mar 5, 2026
5801a42
feat: mobile forms view
neue-dev Mar 5, 2026
748f93e
fix: early return if document.body is undefined
neue-dev Mar 5, 2026
7fb8525
patch: export state record contract
neue-dev Mar 6, 2026
b9c40a1
patch: update timeline to include other emails
neue-dev Mar 6, 2026
41d6ad7
fix: go to forms should go to form templates
neue-dev Mar 6, 2026
4be5e5e
patch: update CTA after initiating form
neue-dev Mar 6, 2026
c555678
fix: remove placeholder email, include first recipient in confirmatio…
neue-dev Mar 6, 2026
734df6e
patch: show timeline when confirming inputs
neue-dev Mar 6, 2026
7978895
fix: confirm before exiting on mobile + exit signing flow on mobile l…
neue-dev Mar 6, 2026
9e8c76a
chore: simplify up preview shape + fix for showing autosave fields th…
anaj00 Mar 6, 2026
b8482f6
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Mar 6, 2026
7d5ff25
feat: enhance FormDashboard and FormTemplatesList UI with improved la…
anaj00 Mar 6, 2026
13d5768
chore: adjusted padding
anaj00 Mar 6, 2026
69d8f9e
feat: update FormActionAccordion and FormActionButtons for improved l…
anaj00 Mar 6, 2026
fc07942
chore: removed the top header on the formsigninglayout, integrated it…
anaj00 Mar 6, 2026
534d3b1
fix: adjust layout and styling in FormSigningLayout and FormFillerRen…
anaj00 Mar 6, 2026
9bf819e
fix: adjust padding and styling in FormSigningLayout and TimelineItem…
anaj00 Mar 6, 2026
79a915c
fix: remove form label on mobile
neue-dev Mar 6, 2026
e30f92f
feat: enhance date handling in preview model; add utility functions f…
anaj00 Mar 8, 2026
cc216ad
chore: package update
anaj00 Mar 9, 2026
00d115d
feat: implement CreateSuperJobPage and integrate super job creation f…
anaj00 Mar 9, 2026
e06a722
feat(temp): add super listing access and update listing creation hand…
anaj00 Mar 9, 2026
7426ffc
feat: enhance application row and applications content for super list…
anaj00 Mar 9, 2026
a14c44c
feat: enhance job application process for super listings; add challen…
anaj00 Mar 9, 2026
7270c4c
feat: update job editing functionality for super listings; integrate …
anaj00 Mar 9, 2026
109c50b
feat: really cool job card for super listing
anaj00 Mar 9, 2026
cdbe32a
chore: remove checkbox for super listing. shouldnt be able to mass ap…
anaj00 Mar 9, 2026
67c5a7e
feat: adjust positioning and styling of SuperListingBorderBadge for i…
anaj00 Mar 9, 2026
a6754bb
feat: add premium styles and animations for Super Listings; enhance j…
anaj00 Mar 10, 2026
314a7ba
feat: refactor Super Listing components; improve badge rendering and …
anaj00 Mar 10, 2026
41601a1
feat: enhance ApplyConfirmModal for Super Listings; add SuperChalleng…
anaj00 Mar 10, 2026
425dd63
feat: enhance SuperChallengeDetails component for mobile responsivene…
anaj00 Mar 10, 2026
6fb2f2c
feat: add mobileFullscreen option to modal components
anaj00 Mar 11, 2026
0722348
fix: improve button layout and responsiveness for mobile in FormSigni…
anaj00 Mar 11, 2026
4b7503f
fix: remove unused state and effect in FormSubmissionSuccessModal; ad…
anaj00 Mar 11, 2026
2ac40d4
feat: enhance FormPreviewPdfDisplay to support dynamic scaling based …
anaj00 Mar 11, 2026
1916438
fix: update handleNavigateToForms to close specific modal instead of …
anaj00 Mar 11, 2026
7f86ffc
fix: update autoScrollToSelectedField logic to prevent scrolling on m…
anaj00 Mar 11, 2026
aabe871
fix: make pdf and form filler 50/50 in size
anaj00 Mar 11, 2026
1cd11bb
feat: enhance job listings display and loading state; improve sorting…
anaj00 Mar 11, 2026
805ac84
feat: turn confirm into a checkbox instead
neue-dev Mar 11, 2026
7f7595e
feat: make sure 'student email' will not come from someone else + cle…
neue-dev Mar 11, 2026
4b80364
feat: improve layout of job listings grid in JobsContent component
anaj00 Mar 11, 2026
fb28345
feat: show badge for total applicants or action needed based on new a…
anaj00 Mar 11, 2026
34321e9
fix: make mobile flow have steps to preview/clarify pdf
neue-dev Mar 11, 2026
d6bd28c
feat: enhance Autocomplete component for mobile support; adjust dropd…
anaj00 Mar 12, 2026
50f7ef3
fix: typo suibmit
neue-dev Mar 12, 2026
e53d7ef
refactor: replace context bridges with providers in FormDashboard com…
anaj00 Mar 12, 2026
3b2c354
feat(temp): fresh mode for forms
anaj00 Mar 14, 2026
471953c
feat(temp): autofill fields temporarily gone
anaj00 Mar 14, 2026
b17cfdf
Revert "refactor: replace context bridges with providers in FormDashb…
anaj00 Mar 14, 2026
0a7d6d9
feat: enhance field value retrieval logic in FormFiller and FormSigni…
anaj00 Mar 14, 2026
863caff
fix: rm ad hoc ':default' checks
neue-dev Mar 14, 2026
fc28dfa
fix: form dashboard state lag + modal provider bad set state
neue-dev Mar 14, 2026
eeaaf06
feat: enhance Autocomplete component for mobile support; adjust dropd…
anaj00 Mar 12, 2026
4d8429e
feat: improve dropdown and autocomplete components for mobile usabili…
anaj00 Mar 14, 2026
6ab6040
chore: add back you
neue-dev Mar 16, 2026
b3758a4
chore: recipient email validation
neue-dev Mar 16, 2026
6e548c3
chore: allow next only after email valid
neue-dev Mar 16, 2026
d390b4a
chore: remove previewer borders
anaj00 Mar 16, 2026
2985a72
feat: implement desktop header visibility control and enhance signing…
anaj00 Mar 16, 2026
16bef64
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Mar 16, 2026
a3052ba
refactor: streamline autofill logic and remove unused fresh history c…
anaj00 Mar 16, 2026
7454954
feat: add contextual label for field value changes in PDF preview
anaj00 Mar 16, 2026
b15ab49
Merge branch 'develop' into feat/super-listing
anaj00 Mar 18, 2026
9f55a16
Feat/super listing (#430)
anaj00 Mar 18, 2026
98e7abc
fix: show recipient email even if they don't sign
neue-dev Mar 20, 2026
39df7ed
fix: resend -> follow-up, distinguish follow up and cancel actions
neue-dev Mar 20, 2026
25fe5b6
fix: 'pending' -> 'waiting for recipients...'
neue-dev Mar 20, 2026
a1cf40c
feat: rm mobile preview step, turn into separate preview tab
neue-dev Mar 20, 2026
a291400
bugfix: complete-profile page dropdowns resets on input
neue-dev Mar 22, 2026
ecc1c97
fix: add back step after filling in inputs; pdf preview to check inputs
neue-dev Mar 22, 2026
14bac0f
fix: disable next button if checkbox not ticked
neue-dev Mar 22, 2026
5f0f231
fix: improve scrolling behavior and responsiveness in PDF preview
anaj00 Mar 22, 2026
47d141d
fix: blur controls if they arent the right step
anaj00 Mar 22, 2026
323effe
fix: implement pinch-to-zoom functionality in PDF preview and patched…
anaj00 Mar 22, 2026
cec96bc
refactor: remove unused pinch gesture handling from PDF preview compo…
anaj00 Mar 22, 2026
60f4ed7
fix: update grid column sizing for improved responsiveness in FormDas…
anaj00 Mar 22, 2026
2433e5c
fix: enhance mobile layout handling in FormSigningLayout for better r…
anaj00 Mar 22, 2026
906e6eb
fix: update background colors and layout adjustments for improved UI …
anaj00 Mar 22, 2026
defab50
fix: adjust height calculation for SlideUpModalLayout to improve mobi…
anaj00 Mar 22, 2026
c394640
fix: add popstate event handling for mobile signing flow in FormDashb…
anaj00 Mar 22, 2026
44e33e6
fix: improve viewport height handling and focus change management in …
anaj00 Mar 22, 2026
f60b539
fix: rm pdf preview when filling out emails
neue-dev Mar 22, 2026
3729522
fix: simplify popstate event handling in FormDashboard for mobile flow
anaj00 Mar 22, 2026
8488afb
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Mar 22, 2026
1b5f8f4
fix: integrate global modal close functionality in FormDashboard
anaj00 Mar 22, 2026
1474aa8
fix: update modal height handling for mobile fullscreen and standard …
anaj00 Mar 23, 2026
e35dbd2
fix: remove print for wet sig
neue-dev Mar 23, 2026
a54322b
fix: reset mobile template modal state on page hide/show events
anaj00 Mar 23, 2026
848003e
Merge branch 'develop' of https://github.com/BetterInternship/Client …
anaj00 Mar 23, 2026
b5dbac0
Revert "fix: remove print for wet sig"
neue-dev Mar 23, 2026
4a0ce60
Merge branch 'main' into develop
anaj00 Mar 23, 2026
bab35a0
chore: rm duplicate lines of code
anaj00 Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/fork-sync-trigger-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ jobs:
with:
node-version: '20'

- name: Clean npm cache
run: npm cache clean --force

- name: Install Dependencies
run: npm i --legacy-peer-deps

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ npm run dev
## Jest Testing
```bash
npm run test
```
```
283 changes: 283 additions & 0 deletions app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,46 @@ button[role="checkbox"]:checked {
} /* move right */
}

@keyframes tab-attention-jitter {
0%,
72%,
100% {
transform: translateX(0);
}
76% {
transform: translateX(4px);
}
82% {
transform: translateX(-3px);
}
88% {
transform: translateX(4px);
}
94% {
transform: translateX(-2px);
}
}

@keyframes tab-attention-dot-jitter {
0%,
72%,
100% {
transform: translateX(0) scale(1);
}
76% {
transform: translateX(4px) scale(1.16);
}
82% {
transform: translateX(-3px) scale(0.92);
}
88% {
transform: translateX(4px) scale(1.16);
}
94% {
transform: translateX(-2px) scale(0.96);
}
}

/* Mobile-specific utilities */
@layer utilities {
.pb-safe {
Expand All @@ -630,6 +670,14 @@ button[role="checkbox"]:checked {
.webkit-overflow-scrolling-touch {
-webkit-overflow-scrolling: touch;
}

.tab-attention-jitter {
animation: tab-attention-jitter 1.8s ease-in-out infinite;
}

.tab-attention-dot-jitter {
animation: tab-attention-dot-jitter 1.8s ease-in-out infinite;
}
}

.input-wrap {
Expand Down Expand Up @@ -717,4 +765,239 @@ button[role="checkbox"]:checked {
.shiny-text {
animation: none;
}

.tab-attention-jitter,
.tab-attention-dot-jitter {
animation: none;
}
}

/* ─── Super Listing Premium Styles ─── */

@keyframes super-border-glow {
0%,
100% {
border-color: rgba(245, 158, 11, 0.5);
}
50% {
border-color: rgba(249, 115, 22, 0.7);
}
}

@keyframes super-shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}

@keyframes float-zap {
0%,
100% {
transform: translateY(0) scale(1);
opacity: 0.7;
}
50% {
transform: translateY(-3px) scale(1.1);
opacity: 1;
}
}

@keyframes float-zap-alt {
0%,
100% {
transform: translateY(0) scale(1) rotate(0deg);
opacity: 0.5;
}
33% {
transform: translateY(-4px) scale(1.15) rotate(8deg);
opacity: 0.9;
}
66% {
transform: translateY(-1px) scale(1.05) rotate(-5deg);
opacity: 0.7;
}
}

@keyframes super-cta-pulse {
0%,
100% {
box-shadow: 0 10px 18px rgba(249, 115, 22, 0.24);
}
50% {
box-shadow:
0 12px 28px rgba(249, 115, 22, 0.38),
0 0 12px rgba(251, 191, 36, 0.2);
}
}

@keyframes badge-shimmer {
0% {
background-position: -100% 0;
}
100% {
background-position: 200% 0;
}
}

/* Scrapbook sticker bobbing — three offset variants for organic feel */
@keyframes sticker-bob {
0%,
100% {
transform: translateY(0) rotate(var(--r, 0deg));
}
50% {
transform: translateY(-3px) rotate(calc(var(--r, 0deg) + 4deg));
}
}

@keyframes sticker-bob-delayed {
0%,
100% {
transform: translateY(0) rotate(var(--r, 0deg));
}
40% {
transform: translateY(-2.5px) rotate(calc(var(--r, 0deg) - 3deg));
}
70% {
transform: translateY(-1px) rotate(calc(var(--r, 0deg) + 2deg));
}
}

@keyframes sticker-bob-slow {
0%,
100% {
transform: translateY(0) rotate(var(--r, 0deg)) scale(1);
}
50% {
transform: translateY(-2px) rotate(calc(var(--r, 0deg) + 3deg)) scale(1.05);
}
}

.super-sticker {
filter: drop-shadow(0 3px 6px rgba(120, 53, 15, 0.25))
drop-shadow(0 0 2px rgba(245, 158, 11, 0.3));
animation: sticker-bob 3s ease-in-out infinite;
}

.super-sticker-delayed {
filter: drop-shadow(0 3px 6px rgba(120, 53, 15, 0.25))
drop-shadow(0 0 2px rgba(245, 158, 11, 0.3));
animation: sticker-bob-delayed 3.4s ease-in-out 0.6s infinite;
}

.super-sticker-slow {
filter: drop-shadow(0 3px 6px rgba(120, 53, 15, 0.25))
drop-shadow(0 0 2px rgba(245, 158, 11, 0.3));
animation: sticker-bob-slow 4s ease-in-out 1.1s infinite;
}

.super-card {
border: 1.5px solid rgba(245, 158, 11, 0.4);
animation: super-border-glow 3s ease-in-out infinite;
}

.super-card::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: linear-gradient(
105deg,
transparent 40%,
rgba(251, 191, 36, 0.08) 45%,
rgba(251, 191, 36, 0.15) 50%,
rgba(251, 191, 36, 0.08) 55%,
transparent 60%
);
background-size: 200% 100%;
animation: super-shimmer 4s ease-in-out infinite;
pointer-events: none;
z-index: 1;
}

.super-badge-shimmer {
background: linear-gradient(
110deg,
rgba(245, 158, 11, 0.08) 0%,
rgba(245, 158, 11, 0.08) 40%,
rgba(255, 255, 255, 0.6) 50%,
rgba(245, 158, 11, 0.08) 60%,
rgba(245, 158, 11, 0.08) 100%
);
background-size: 200% 100%;
animation: badge-shimmer 3s ease-in-out infinite;
}

.super-cta-glow {
animation: super-cta-pulse 2.5s ease-in-out infinite;
}

.super-zap {
animation: float-zap 2.5s ease-in-out infinite;
}

.super-zap-alt {
animation: float-zap-alt 3.2s ease-in-out infinite;
}

.super-zap-delayed {
animation: float-zap 2.5s ease-in-out 0.8s infinite;
}

.super-zap-delayed-alt {
animation: float-zap-alt 3.2s ease-in-out 1.2s infinite;
}

.super-challenge-card {
border: 1.5px solid rgba(245, 158, 11, 0.35);
animation: super-border-glow 3s ease-in-out infinite;
position: relative;
overflow: visible;
}

.super-challenge-card::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: linear-gradient(
105deg,
transparent 40%,
rgba(251, 191, 36, 0.06) 45%,
rgba(251, 191, 36, 0.12) 50%,
rgba(251, 191, 36, 0.06) 55%,
transparent 60%
);
background-size: 200% 100%;
animation: super-shimmer 5s ease-in-out infinite;
pointer-events: none;
}

.super-header-badge {
border: 1px solid rgba(245, 158, 11, 0.35);
box-shadow:
0 4px 12px rgba(245, 158, 11, 0.14),
0 0 0 1px rgba(245, 158, 11, 0.08);
}

@media (prefers-reduced-motion: reduce) {
.super-card,
.super-card::before,
.super-badge-shimmer,
.super-cta-glow,
.super-zap,
.super-zap-alt,
.super-zap-delayed,
.super-zap-delayed-alt,
.super-challenge-card::before {
animation: none;
}
.super-sticker,
.super-sticker-delayed,
.super-sticker-slow {
animation: none;
}
}
Loading