This page contains the full source code of all project files for backup and review purposes.
{
"compilerOptions": {
"target": "ES2017",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": [
"./src/*"
]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}
import type {Config} from 'tailwindcss';
export default {
darkMode: ['class'],
content: [
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
fontFamily: {
body: ['"PT Sans"', 'sans-serif'],
headline: ['"Space Grotesk"', 'sans-serif'],
code: ['monospace'],
},
colors: {
background: 'hsl(var(--background))',
foreground: 'hsl(var(--foreground))',
card: {
DEFAULT: 'hsl(var(--card))',
foreground: 'hsl(var(--card-foreground))',
},
popover: {
DEFAULT: 'hsl(var(--popover))',
foreground: 'hsl(var(--popover-foreground))',
},
primary: {
DEFAULT: 'hsl(var(--primary))',
foreground: 'hsl(var(--primary-foreground))',
},
secondary: {
DEFAULT: 'hsl(var(--secondary))',
foreground: 'hsl(var(--secondary-foreground))',
},
muted: {
DEFAULT: 'hsl(var(--muted))',
foreground: 'hsl(var(--muted-foreground))',
},
accent: {
DEFAULT: 'hsl(var(--accent))',
foreground: 'hsl(var(--accent-foreground))',
},
destructive: {
DEFAULT: 'hsl(var(--destructive))',
foreground: 'hsl(var(--destructive-foreground))',
},
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',
chart: {
'1': 'hsl(var(--chart-1))',
'2': 'hsl(var(--chart-2))',
'3': 'hsl(var(--chart-3))',
'4': 'hsl(var(--chart-4))',
'5': 'hsl(var(--chart-5))',
},
sidebar: {
DEFAULT: 'hsl(var(--sidebar-background))',
foreground: 'hsl(var(--sidebar-foreground))',
primary: 'hsl(var(--sidebar-primary))',
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
accent: 'hsl(var(--sidebar-accent))',
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
border: 'hsl(var(--sidebar-border))',
ring: 'hsl(var(--sidebar-ring))',
},
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)',
},
keyframes: {
'accordion-down': {
from: {
height: '0',
},
to: {
height: 'var(--radix-accordion-content-height)',
},
},
'accordion-up': {
from: {
height: 'var(--radix-accordion-content-height)',
},
to: {
height: '0',
},
},
},
animation: {
'accordion-down': 'accordion-down 0.2s ease-out',
'accordion-up': 'accordion-up 0.2s ease-out',
},
},
},
plugins: [require('tailwindcss-animate')],
} satisfies Config;
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
tailwindcss: {},
},
};
export default config;
{
"name": "nextn",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --turbopack -p 9002",
"genkit:dev": "genkit start -- tsx src/ai/dev.ts",
"genkit:watch": "genkit start -- tsx --watch src/ai/dev.ts",
"build": "NODE_ENV=production next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@genkit-ai/google-genai": "^1.20.0",
"@genkit-ai/next": "^1.20.0",
"@hookform/resolvers": "^4.1.3",
"@radix-ui/react-accordion": "^1.2.3",
"@radix-ui/react-alert-dialog": "^1.1.6",
"@radix-ui/react-avatar": "^1.1.3",
"@radix-ui/react-checkbox": "^1.1.4",
"@radix-ui/react-collapsible": "^1.1.11",
"@radix-ui/react-dialog": "^1.1.6",
"@radix-ui/react-dropdown-menu": "^2.1.6",
"@radix-ui/react-label": "^2.1.2",
"@radix-ui/react-menubar": "^1.1.6",
"@radix-ui/react-popover": "^1.1.6",
"@radix-ui/react-progress": "^1.1.2",
"@radix-ui/react-radio-group": "^1.2.3",
"@radix-ui/react-scroll-area": "^1.2.3",
"@radix-ui/react-select": "^2.1.6",
"@radix-ui/react-separator": "^1.1.2",
"@radix-ui/react-slider": "^1.2.3",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-switch": "^1.1.3",
"@radix-ui/react-tabs": "^1.1.3",
"@radix-ui/react-toast": "^1.2.6",
"@radix-ui/react-tooltip": "^1.1.8",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"date-fns": "^3.6.0",
"dotenv": "^16.5.0",
"embla-carousel-react": "^8.6.0",
"firebase": "^11.9.1",
"genkit": "^1.20.0",
"glob": "^11.0.0",
"lucide-react": "^0.475.0",
"next": "15.3.3",
"patch-package": "^8.0.0",
"react": "^18.3.1",
"react-day-picker": "^8.10.1",
"react-dom": "^18.3.1",
"react-hook-form": "^7.54.2",
"recharts": "^2.15.1",
"tailwind-merge": "^3.0.1",
"tailwindcss-animate": "^1.0.7",
"zod": "^3.24.2"
},
"devDependencies": {
"@types/glob": "^8.1.0",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"genkit-cli": "^1.20.0",
"postcss": "^8",
"tailwindcss": "^3.4.1",
"typescript": "^5"
}
}
import type {NextConfig} from 'next';
const nextConfig: NextConfig = {
/* config options here */
typescript: {
ignoreBuildErrors: true,
},
eslint: {
ignoreDuringBuilds: true,
},
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'placehold.co',
port: '',
pathname: '/**',
},
{
protocol: 'https',
hostname: 'images.unsplash.com',
port: '',
pathname: '/**',
},
{
protocol: 'https',
hostname: 'picsum.photos',
port: '',
pathname: '/**',
},
],
},
};
export default nextConfig;
/// <reference types="next" />
/// <reference types="next/image-types/global" />
import "./.next/dev/types/routes.d.ts";
import "./.next/dev/types/root-params.d.ts";
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
�PNG
IHDR \r�f IDATx��%U�5�V�E���Q1KF��V����
Fŀ����͒#����2�n�,J�� %t~�^��}��u��t��}�=���>Uuj�:�T���v�RFE �6yۡS��i��i����YC�L���͡�7���)�p��i���ѝ�'ot��p����ɏHCyD,�>�H�
>,���i��
N���Qi�'J��I�Js�C�NC�E����胏IC�h�ش���?�.yB/�oZtB��%�������I��iQW���K���l������iPX$t��d{߿��QxB|�m��xb<Fx�`�œdo�'-<�I�.|���<f�[��.|Ϧ��9��'i�]����]O>U�M��z궣��`�N �ԩ�
�:�uçM=�>mڏ�O�6T��/|ı�>�$x(���ؗ�. ��$aa<A���!���ҍ�E�6AD.4�������n�M �!@� P�Rmc' +3l�Q�l$�T���m�I��*��Y6vk�A����$\HK��@RL6RR�%�� 7!�$�xov!���/U�CA)߱`��4�b�]OR"��ໞr�ໟ��~�f�� �)S�7|�OԧM�Vrn
�F��pdJigɎ�QEWH�H�����{�A�$m���}�J�"�q�e�v��>b�EU��ߵɎ؇�j��1�?۳fn@M�|�ѷi�σ
)[���B�| �X�c�[WW�����3�1=.��E������jأ���DT�F�P�Q��$��~;'�H$^�:�6�Χ�UR�V���w=�y�r���uH�=b�t�ԗ�>�������WiEx���=$'��E��6�h��
ݖ�J�d��$��vq�tj�n��Ij�=8 Ep���Fu )M6b Ѐ @2`�xء".;3t����@UM�n��t_u� qRL�8T ��2k�Y#\(5�@كB�<�.f��
���d%�= ����U��|ڃ�G?�
�z�K�[���i�i�w �1�çO~k}���j��F�&^���)�+������@��|b��%�D&-=����(�c�;�!ew����e�����>ށm��� E����������J��]��:��2i��&o��d��6����v��^r�m6�[V�d�"�Me���}m�Fժ��76S�յG�����]��6So�������c=����0�U��k������g���%�ZI�E�oNX����x�e�G?����gh���� �1���gL�P}Ɣ��T��� <�d�YT��@��
��l.{�ѴJ�p�!(j- �R��2���V"�� 4����s�aG.�݉ �jJ�Zf)A2tfK� ͭ����a����l��ˇ6�
q6v�����B����4]�i���6�"��@cA.��"�_p�4�
m��ud=Zq�I�IY q`BunE�Zw�-<��'�;�zP���>6qS����ğ+럘v�����3{Ȧ���i^2 ���d�
Z�m�M>@�[>UY�]���>��OWQ_�s
ՍC��!��u����#]b�����<�Ƨ���c���e�P�Q5�bW�ء
��7��Q,U{��y2��n,j<.}|�y�VBjo2�[w_�ɬ*�j譔u��Xc��+��+&2�ׅ���3��e�5�>TU��ugp��#���v���u2�S�=}��IMu����X�/1ͭ4q�
I@�BW@cG�0 l��P�̄P��"$�S
{9R
/i����K�PMcG�.�*���qK�!�Kے)�2T��*aQHJ�B�k�.��э�Y%sK��-�I�����MBj�A�=v[��]�<���b�8A���I��%
#e1BCY �"�*]s�q��J���#��t9י�t�J �����>�Su5���(So����A�ZDU�ٽ�}�2�ʨj"(�KQϫ�-�m�Hv�[��v���W�����2t�ڍ�(�����6�"��o�����k�>�8�����fH�]��m�+�jxt�l3�/U1m�6:5���Y>+����
R\���Ae37�Kz�?j\�{���Um�Gm�a�lt��;P+]�p')r��D�ۖѫ�ǦK���b_��/�����y m,�1���������Gl��z�3u�H ��=㟓Xk����R!�r1"33k�"�^����0Ep��B栔�p�XH�UJ�i� @R6�`�c�eܨ��r�HGi�� N(d������ ق(�@6�� ��U�6 �դA���,�5�Ռ
[sH@Z.�%�P )&))
���]�u;%m���TK9�@��[Ȯ*��
@F� �,)�Ԏ 5����BLM�Ѩ�����s��l�����N �S�|�n���'���mJ�����P�u��3rȦQ���c�K�@F��ۈ��8��=
�q�v��~�cΒ����$�,m�eJ�9�� ��1x��F�x֑��e����y�1�oq��G����}@��Y��ҾCj��1j�.�X`���m���qʞlR�Ӭ:��[[��U�c�A�8��?��\�՛�� �F��#>�}H�*U҆d)�2u�M�DF�6�V��˖�k�ly�'萺V�tG����v�+�6�3&�g�OI�}Y'M�� ���e S4ȥ��K�g$>�=�a |�0�Jܦ3T=�?���������|��g|�>x�tɥ��������½�N��2c�I����N�G}�>�#�L,G�7��,��_��;y1�"���Lw�b8��-O���qc���N_�8}��>N[�~����������K����?���]�����ߝ�g����<v�'�g����������6�-��% ���T���c�\�`a��6JϚIf���� �$,n'�k�������|���;��K �U?���ۤ�6)KC����CV�ٵ��v��a������ػ?qju�;v��]���������?p��3�}��Y���7������;[�K���w̞|���a�'s��vքO�ό�����>�?���k�'�{�q�IS�������j��.�9Bs��2 E] 6Z�4 _ ��Q�~�T{�
�X��$pƂ#6�T?�
�Uȫ�¼�ʯ- nP
� �U�P�6쒲!���]�|�1�>w�j��M�����w�W��U�R7���̝t�o�����������IUa�
�1 �%�%�R���#]@�`�Aw �Bi'H�JRu7�����"����V}l�Xub���I*��j�["I
b
Ɋ��HL��7�_��g�L��<n��<�ѷ4|x�m��>����}����;^&��.�W$�ܾ�F!���6Bo�:�5i� �5��-uG[����ZO ��/�>���J��ݗ8
�Z�7$�w"g?�%���J)X�L��o�1�3�~ S��`:C�� ][]�Z#�b�AJ�*�%�Ղ�u��!�
l��?�be�&