Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,6 @@ vite.config.ts.timestamp-*
supabase/.branches/
supabase/.temp/

tmp/
tmp/
.agents
.claude
2 changes: 1 addition & 1 deletion apps/org-portal/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"svelte-check": "^4.4.7",
"tailwindcss": "^4.2.4",
"typescript": "^6.0.3",
"vite": "^8.0.10",
"vite": "^8.0.12",
"vitest": "^4.1.5"
}
}
2 changes: 1 addition & 1 deletion apps/public/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"svelte-check": "^4.4.7",
"tailwindcss": "^4.2.4",
"typescript": "^6.0.3",
"vite": "^8.0.10",
"vite": "^8.0.12",
"vitest": "^4.1.5"
}
}
45 changes: 12 additions & 33 deletions apps/public/src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -285,15 +285,15 @@
}

.site-header-main {
@apply grid min-w-0 gap-3;
@apply flex min-w-0 flex-wrap items-center justify-between gap-3;
}

.service-nav {
@apply min-w-0;
}

.service-nav-list {
@apply m-0 grid list-none gap-2 p-0;
@apply m-0 flex list-none flex-wrap items-center gap-2 p-0;
}

.service-nav-link {
Expand All @@ -313,31 +313,23 @@
}

.language-nav {
@apply grid justify-items-start gap-1;
}

.language-nav-label {
@apply text-muted-foreground inline-flex min-h-8 items-center gap-2 text-[0.7rem] font-semibold tracking-[0.08em] uppercase whitespace-nowrap;
@apply inline-flex items-center;
}

.language-list {
@apply m-0 flex flex-wrap items-center gap-1 list-none p-0;
.language-select-trigger {
@apply border-border/70 bg-background text-foreground hover:border-primary/45 hover:bg-accent/40 inline-flex h-10 items-center gap-2 rounded-full border px-3.5 text-sm font-medium shadow-xs transition-[border-color,background-color,box-shadow];
}

.language-link {
@apply text-muted-foreground hover:text-foreground focus-visible:ring-ring/50 inline-flex min-h-11 items-center rounded-lg px-3 text-sm font-medium no-underline underline-offset-4 transition-colors focus-visible:ring-3 whitespace-nowrap;
.language-select-icon {
@apply text-muted-foreground;
}

.language-link[aria-current="true"] {
@apply bg-muted text-foreground underline decoration-current;
.language-select-value {
@apply text-foreground;
}

.language-link:not([aria-current="true"]) {
@apply hover:bg-muted/60;
}

.language-link:focus-visible {
@apply rounded-lg;
.language-select-content {
@apply bg-popover text-popover-foreground border-border/80 min-w-[10rem] rounded-2xl border p-1.5 shadow-lg;
}

.task-grid {
Expand Down Expand Up @@ -615,10 +607,6 @@
@apply flex flex-wrap items-center gap-2;
}

.language-list {
@apply justify-end;
}

.language-nav {
@apply justify-items-end;
}
Expand All @@ -638,22 +626,13 @@
}

.brand,
.service-nav-link,
.language-link {
.service-nav-link {
min-height: 2.75rem;
}

.language-nav-label {
min-height: 2rem;
}

.service-nav-list {
grid-template-columns: 1fr;
}

.language-list {
@apply gap-1;
}
}

.directory-toolbar {
Expand Down
72 changes: 41 additions & 31 deletions apps/public/src/lib/content/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const ar = {
'chrome.tagline': 'إرشاد مستقل بشأن عملية التسوية في إسبانيا لعام 2026',
'chrome.primary_navigation': 'التنقل الرئيسي',
'chrome.nav.home': 'الرئيسية',
'chrome.nav.start': 'التحقق من الخطوة التالية',
'chrome.nav.start': 'خطوتي الأولى',
'chrome.nav.organisations': 'البحث عن منظمات',
'chrome.footer.eyebrow': 'Primer Paso',
'chrome.footer.title': 'حول هذه الأداة',
Expand All @@ -37,38 +37,38 @@ export const ar = {
'chrome.footer.disclaimer': 'لا تحل محل الاستشارة القانونية ولا تشكل قراراً رسمياً.',
'chrome.footer.link.official_portal': 'البوابة الرسمية',
'chrome.language_switcher_label': 'اللغة',
'pages.home.eyebrow': 'البدء',
'pages.home.title': 'اختر كيف تريد أن تبدأ',
'pages.home.eyebrow': 'ابدأ من هنا',
'pages.home.title': 'مسارك نحو التسوية',
'pages.home.meta_title': 'دعم لعملية التسوية الاستثنائية في إسبانيا 2026 | Primer Paso',
'pages.home.meta_description':
'يساعد Primer Paso الأشخاص على فهم عملية التسوية الاستثنائية في إسبانيا لعام 2026، ومعرفة الوثائق التي قد تكون ناقصة، واتخاذ قرار بين البوابة الرسمية أو طلب الدعم من منظمة متعاونة.',
'pages.home.lead':
'يمكنك استخدام الأداة لمعرفة الخطوة التالية أو الذهاب مباشرة إلى دليل الجهات المتعاونة.',
'pages.home.choose': 'اختر خياراً',
'pages.home.quiz_title': 'معرفة الخطوة التالية',
'pages.home.quiz_body': 'أجب عن بعض الأسئلة للحصول على توجيه حذر حول المسار الذي قد يناسب حالتك.',
'pages.home.quiz_action': 'ابدأ الأداة',
'pages.home.directory_title': 'البحث عن جهة متعاونة',
'pages.home.directory_body':
'تصفح الدليل من دون إكمال النموذج. ابحث بالاسم أو المقاطعة أو بيانات الاتصال.',
'pages.home.note_title': 'قبل أن تبدأ',
'pages.home.note_body':
'هذه الخدمة تقدم إرشاداً عملياً ولا تحل محل الاستشارة القانونية أو القرار الرسمي.',
'pages.home.seo_intro_title': 'إرشاد واضح قبل البدء',
'pages.home.seo_intro_body_1':
'في Primer Paso يمكنك اختيار كيف تريد أن تبدأ: استبيان قصير أو الانتقال مباشرة إلى دليل المنظمات المتعاونة.',
'pages.home.seo_intro_body_2':
'هذه الأداة مخصّصة للأشخاص الذين يبحثون عن دعم في عملية التسوية الاستثنائية في إسبانيا لعام 2026. تساعدك على فهم المعلومات المهمة، والوثائق التي قد ما زلت تحتاج إليها، ومتى يكون من الأفضل طلب دعم بشري مباشر.',
'pages.home.seo_intro_body_3':
'هذه أداة إرشادية بحذر. لا تحل محل الاستشارة القانونية ولا تمثل قراراً رسمياً. هدفها مساعدتك على الاستعداد واختيار الخطوة التالية المناسبة بسرعة أكبر.',
'pages.home.seo_help_title': 'ما الذي يمكنك فعله هنا',
'pages.home.seo_help_item_1': 'الإجابة عن سؤال واحد في كل صفحة ثم مراجعة الإجابات قبل النتيجة.',
'pages.home.seo_help_item_2': 'فهم ما إذا كانت البوابة الرسمية قد تناسب حالتك.',
'pages.home.seo_help_item_3': 'العثور على منظمات متعاونة قد تقدم دعماً داخل إسبانيا.',
'pages.home.seo_help_item_4': 'إعداد ملخص يمكن طباعته بالمعلومات الأساسية التي جمعتها.',
'pages.home.seo_support_title': 'هل تبحث عن دعم عملي داخل إسبانيا؟',
'pages.home.seo_support_body':
'إذا كنت تعرف مسبقاً أنك تريد دعماً بشرياً، يمكنك الذهاب مباشرة إلى دليل المنظمات. وإذا كنت تفضل فهم وضعك أولاً، فابدأ بالاستبيان ثم قرر بين المسار الرسمي أو طلب المساعدة من منظمة متعاونة.',
'pages.home.lead': 'اتبع هذه الخطوات الثلاث لإعداد طلبك. ضع علامة على كل خطوة عند إكمالها.',
'pages.home.steps.step_label': 'الخطوة {current} من {total}',
'pages.home.steps.toggle_aria': 'تحديد الخطوة كمكتملة',
'pages.home.steps.eligibility.title': 'اعرف خطوتك الأولى',
'pages.home.steps.eligibility.description':
'أجب عن استبيان قصير لمعرفة المسار الذي يناسب حالتك، والوثائق التي لديك بالفعل، وتلك التي ما زالت ناقصة.',
'pages.home.steps.eligibility.hint':
'يتم تحديد هذه الخطوة تلقائياً عند إنهاء الاستبيان — أو يمكنك تحديدها يدوياً.',
'pages.home.steps.eligibility.cta': 'ابدأ الاستبيان',
'pages.home.steps.eligibility.cta_again': 'مراجعة الاستبيان',
'pages.home.clear_progress_action': 'مسح تقدمي',
'pages.home.clear_confirm.title': 'هل تريد مسح تقدمك؟',
'pages.home.clear_confirm.description':
'سيؤدي هذا إلى إعادة تعيين إجاباتك المحفوظة والوثائق التي وضعت عليها علامة على هذا الجهاز.',
'pages.home.clear_confirm.confirm': 'نعم، امسح التقدم',
'pages.home.clear_confirm.cancel': 'إلغاء',
'pages.home.steps.documents.title': 'اجمع الوثائق المطلوبة',
'pages.home.steps.documents.description_personalised':
'قائمة مخصصة بناءً على إجاباتك. ضع علامة على الوثائق التي لديك بالفعل.',
'pages.home.steps.documents.description_generic':
'هذه وثائق تُطلب عادةً. أكمل الاستبيان للحصول على قائمة مخصصة.',
'pages.home.steps.documents.empty': 'لا توجد وثائق بعد. أكمل الاستبيان لمعرفة ما قد ينطبق عليك.',
'pages.home.steps.submission.title': 'قدّم طلبك',
'pages.home.steps.submission.digital_intro':
'إذا كانت لديك هوية رقمية، يمكنك التقديم عبر البوابة الرسمية.',
'pages.home.steps.submission.collaborating_intro':
'وإذا لم يكن لديك ذلك، يمكنك التقديم بمساعدة منظمة متعاونة.',
'pages.home.official_portal_action': 'البوابة الرسمية للتسوية',
'pages.start.eyebrow': 'المرحلة 1',
'pages.organisations.meta_title': 'البحث عن الجهات',
Expand Down Expand Up @@ -132,6 +132,16 @@ export const ar = {
'pages.result.eligibility_title': 'نتيجتك',
'pages.result.next_step_title': 'خطوتك التالية',
'pages.result.why_title': 'لماذا نعتقد ذلك',
'pages.result.continue_title': 'كيف تتابع',
'pages.result.continue_body':
'تابع طلبك وضع علامة على كل خطوة عند إكمالها. هناك يمكنك مراجعة وتحديد وثائقك.',
'pages.result.continue_action': 'الذهاب إلى طلبي',
'pages.result.review_documents_action': 'مراجعة الوثائق التي أحتاجها',
'pages.result.review_documents_body':
'تابع مع قائمة الوثائق في الصفحة الرئيسية — أصبحت الآن مخصصة بناءً على إجاباتك.',
'pages.result.summary_actions_title': 'ملخصك',
'pages.result.summary_actions_body':
'يمكنك حفظ هذا الملخص للرجوع إليه لاحقاً، أو إعادة بدء الاستبيان.',
'pages.result.checklist_title': 'ما الذي ينبغي تجهيزه',
'pages.result.checklist.already_have': 'ما لديك بالفعل',
'pages.result.checklist.still_need': 'ما قد لا يزال ينقصك',
Expand Down Expand Up @@ -331,7 +341,7 @@ export const ar = {
'result.checklist.item.asylum_case_documents_needed':
'أي أوراق ما زالت لديك عن قضية لجوء أو حماية، إذا كان ذلك ينطبق على وضعك.',
'result.checklist.item.official_document_requirements':
'أحدث المتطلبات الرسمية للمستندات، بما في ذلك مستندات السجل الجنائي إذا كانت تنطبق على حالتك.',
'شهادة السوابق الجنائية إذا كانت تنطبق على حالتك.',
'result.checklist.item.practical_support_helpful':
'مساعدة في اللغة أو الوصول الرقمي أو المسح الضوئي أو الطباعة أو فهم المستندات الأكثر أهمية.',
'result.checklist.item.complex_case_review':
Expand Down
75 changes: 42 additions & 33 deletions apps/public/src/lib/content/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export const en = {
'chrome.tagline': "Independent guidance for Spain's 2026 regularisation process",
'chrome.primary_navigation': 'Primary navigation',
'chrome.nav.home': 'Home',
'chrome.nav.start': 'Check next step',
'chrome.nav.start': 'See my first step',
'chrome.nav.organisations': 'Find organisations',
'chrome.footer.eyebrow': 'Primer Paso',
'chrome.footer.title': 'About this tool',
Expand All @@ -35,41 +35,40 @@ export const en = {
'chrome.footer.disclaimer': 'It does not replace legal advice or an official decision.',
'chrome.footer.link.official_portal': 'Official portal',
'chrome.language_switcher_label': 'Language',
'pages.home.eyebrow': 'Getting started',
'pages.home.title': 'Choose how you want to start',
'pages.home.eyebrow': 'Start here',
'pages.home.title': 'Your path to regularisation',
'pages.home.meta_title': "Support for Spain's 2026 regularisation process | Primer Paso",
'pages.home.meta_description':
"Primer Paso helps people understand Spain's 2026 extraordinary regularisation process, check what documents may be missing, and decide whether to use the official portal or seek support from a collaborating organisation.",
'pages.home.lead':
'You can use the screener to check your next step or go straight to the directory of collaborating organisations.',
'pages.home.choose': 'Choose an option',
'pages.home.quiz_title': 'Check my next step',
'pages.home.quiz_body':
'Answer a few questions to get cautious guidance on which route may fit your situation best.',
'pages.home.quiz_action': 'Start the screener',
'pages.home.directory_title': 'Find a collaborating organisation',
'pages.home.directory_body':
'Browse the directory without completing the form. Search by name, province, or contact details.',
'pages.home.note_title': 'Before you begin',
'pages.home.note_body':
'This service offers practical guidance. It does not replace legal advice or an official decision.',
'pages.home.seo_intro_title': 'Clear guidance before you start',
'pages.home.seo_intro_body_1':
'On Primer Paso, you can choose how you want to begin: use a short screener or go straight to the directory of collaborating organisations.',
'pages.home.seo_intro_body_2':
"This tool is designed for people looking for support with Spain's 2026 extraordinary regularisation process. It helps you understand what information matters, what documents you may still need, and when it may be better to ask for in-person support instead of continuing alone.",
'pages.home.seo_intro_body_3':
'The guidance is cautious. It does not replace legal advice, and it does not make an official decision. It helps people prepare, reduce confusion, and reach the right next step more quickly.',
'pages.home.seo_help_title': 'What you can do here',
'pages.home.seo_help_item_1':
'Answer one question at a time and review your answers before seeing a result.',
'pages.home.seo_help_item_2': 'Understand whether the official portal may fit your situation.',
'pages.home.seo_help_item_3': 'Find collaborating organisations that may offer support in Spain.',
'pages.home.seo_help_item_4':
'Prepare a handover summary with the key information you have already gathered.',
'pages.home.seo_support_title': 'Looking for practical support in Spain?',
'pages.home.seo_support_body':
'If you already know you want human support, you can go straight to the organisations directory. If you want to understand your situation first, start with the screener and then decide whether to use the official route or ask a collaborating organisation for help.',
'Follow these three steps to prepare your application. Tick each step as you complete it.',
'pages.home.steps.step_label': 'Step {current} of {total}',
'pages.home.steps.toggle_aria': 'Mark step as complete',
'pages.home.steps.eligibility.title': 'Find out your first step',
'pages.home.steps.eligibility.description':
'Answer a short questionnaire to see which of the four routes fits, which documents you already have, and which ones are still missing.',
'pages.home.steps.eligibility.hint':
'This step is checked automatically when you finish the questionnaire — or you can mark it manually.',
'pages.home.steps.eligibility.cta': 'Start the questionnaire',
'pages.home.steps.eligibility.cta_again': 'Review the questionnaire',
'pages.home.clear_progress_action': 'Clear my progress',
'pages.home.clear_confirm.title': 'Clear your progress?',
'pages.home.clear_confirm.description':
'This will reset your saved answers and document checks on this device.',
'pages.home.clear_confirm.confirm': 'Yes, clear progress',
'pages.home.clear_confirm.cancel': 'Cancel',
'pages.home.steps.documents.title': 'Get the documents you need',
'pages.home.steps.documents.description_personalised':
'Personalised list based on your answers. Tick the documents you already have.',
'pages.home.steps.documents.description_generic':
'These are documents people often need. Complete the questionnaire to see a personalised list.',
'pages.home.steps.documents.empty':
'No documents yet. Complete the questionnaire to see what may apply to you.',
'pages.home.steps.submission.title': 'Submit your application',
'pages.home.steps.submission.digital_intro':
'If you have a digital identity, you can submit through the official portal.',
'pages.home.steps.submission.collaborating_intro':
'If not, you can submit with the help of a collaborating organisation.',
'pages.home.official_portal_action': 'Official regularisation portal',
'pages.start.eyebrow': 'Milestone 1',
'pages.organisations.meta_title': 'Find organisations',
Expand Down Expand Up @@ -133,6 +132,16 @@ export const en = {
'pages.result.eligibility_title': 'Your result',
'pages.result.next_step_title': 'Your next step',
'pages.result.why_title': 'Why we think this',
'pages.result.continue_title': 'How to continue',
'pages.result.continue_body':
'Continue with your application and tick each step as you complete it. There you can review and check off your documents.',
'pages.result.continue_action': 'Go to my application',
'pages.result.review_documents_action': 'Review which documents I need',
'pages.result.review_documents_body':
'Continue with the documents checklist on the home page — your list is now personalised based on your answers.',
'pages.result.summary_actions_title': 'Your summary',
'pages.result.summary_actions_body':
'You can save this summary to come back to it later, or start the questionnaire again.',
'pages.result.checklist_title': 'What to get ready',
'pages.result.checklist.already_have': 'What you already have',
'pages.result.checklist.still_need': 'What you may still need',
Expand Down Expand Up @@ -341,7 +350,7 @@ export const en = {
'result.checklist.item.asylum_case_documents_needed':
'Any papers you still have about an asylum or protection case, if that applies to you.',
'result.checklist.item.official_document_requirements':
'The latest official document requirements, including criminal record documents if they apply to you.',
'Criminal record certificate if applicable to your case.',
'result.checklist.item.practical_support_helpful':
'Help with language, digital access, scanning, printing or understanding which papers matter.',
'result.checklist.item.complex_case_review':
Expand Down
Loading