=== .gitignore ===
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
=== AI_RULES.md ===
# Tech Stack
- You are building a React application.
- Use TypeScript.
- Use React Router. KEEP the routes in src/App.tsx
- Always put source code in the src folder.
- Put pages into src/pages/
- Put components into src/components/
- The main page (default page) is src/pages/Index.tsx
- UPDATE the main page to include the new components. OTHERWISE, the user can NOT see any components!
- ALWAYS try to use the shadcn/ui library.
- Tailwind CSS: always use Tailwind CSS for styling components. Utilize Tailwind classes extensively for layout, spacing, colors, and other design aspects.
Available packages and libraries:
- The lucide-react package is installed for icons.
- You ALREADY have ALL the shadcn/ui components and their dependencies installed. So you don't need to install them again.
- You have ALL the necessary Radix UI components installed.
- Use prebuilt components from the shadcn/ui library after importing them. Note that these files shouldn't be edited, so make new components if you need to change them.
=== android/.gitignore ===
# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore
# Built application files
*.apk
*.aar
*.ap_
*.aab
# Files for the ART/Dalvik VM
*.dex
# Java class files
*.class
# Generated files
bin/
gen/
out/
# Uncomment the following line in case you need and you don't have the release build type files in your app
# release/
# Gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
# Log Files
*.log
# Android Studio Navigation editor temp files
.navigation/
# Android Studio captures folder
captures/
# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
# Android Studio 3 in .gitignore file.
.idea/caches
.idea/modules.xml
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
.idea/navEditor.xml
# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore
# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild
.cxx/
# Google Services (e.g. APIs or Firebase)
# google-services.json
# Freeline
freeline.py
freeline/
freeline_project_description.json
# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md
# Version control
vcs.xml
# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/
# Android Profiling
*.hprof
# Cordova plugins for Capacitor
capacitor-cordova-android-plugins
# Copied web assets
app/src/main/assets/public
# Generated Config files
app/src/main/assets/capacitor.config.json
app/src/main/assets/capacitor.plugins.json
app/src/main/res/xml/config.xml
=== android/app/.gitignore ===
/build/*
!/build/.npmkeep
=== android/app/build.gradle ===
apply plugin: 'com.android.application'
android {
namespace "com.example.[[normalizedAppName]]"
compileSdk rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.example.[[normalizedAppName]]"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
// Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61
ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
flatDir{
dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs'
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
implementation project(':capacitor-android')
testImplementation "junit:junit:$junitVersion"
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
implementation project(':capacitor-cordova-android-plugins')
}
apply from: 'capacitor.build.gradle'
try {
def servicesJSON = file('google-services.json')
if (servicesJSON.text) {
apply plugin: 'com.google.gms.google-services'
}
} catch(Exception e) {
logger.info("google-services.json not found, google-services plugin not applied. Push Notifications won't work")
}
=== android/app/build/.npmkeep ===
=== android/app/proguard-rules.pro ===
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
=== android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java ===
package com.getcapacitor.myapp;
import static org.junit.Assert.*;
import android.content.Context;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Instrumented test, which will execute on an Android device.
*
* @see Testing documentation
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.getcapacitor.app", appContext.getPackageName());
}
}
=== android/app/src/main/AndroidManifest.xml ===
=== android/app/src/main/java/com/example/[[normalizedAppName]]/MainActivity.java ===
package com.example.[[normalizedAppName]];
import com.getcapacitor.BridgeActivity;
public class MainActivity extends BridgeActivity {}
=== android/app/src/main/res/drawable-land-hdpi/splash.png ===
[binary hash="08cc34ad7713fe7ed58bceaa37b2387b670c53cd60264b4bd6442db3098e75dc"]
=== android/app/src/main/res/drawable-land-mdpi/splash.png ===
[binary hash="5cf98b4451bd99b20df26f9e608a46946118be6b0ae90762f9ca1786a30c76ff"]
=== android/app/src/main/res/drawable-land-xhdpi/splash.png ===
[binary hash="22f87e1e3bc89aa01a7dbc39c9a4db058cd0bf4ad3fe9f55712bf69eb997f4bf"]
=== android/app/src/main/res/drawable-land-xxhdpi/splash.png ===
[binary hash="42aa26392546fcdee1b8d3ac6d4b41bfcceb41dc6a4f3a3c30c24a8a8f4db862"]
=== android/app/src/main/res/drawable-land-xxxhdpi/splash.png ===
[binary hash="60393ce8636fd263e4e1fea3fd4ab2de948c6295e898fda9b50ac4e5283be809"]
=== android/app/src/main/res/drawable-port-hdpi/splash.png ===
[binary hash="c5015f4ba3628392b538386c5e210f0b94f352a3160adab934fd0311972137ca"]
=== android/app/src/main/res/drawable-port-mdpi/splash.png ===
[binary hash="07fa579e1c83e04ba7f9cbcbfcf41b68e15fe3638f2c44a04e58b809103e6b69"]
=== android/app/src/main/res/drawable-port-xhdpi/splash.png ===
[binary hash="b73049cb37fe76d6c11b87a796766bf6af0c85483b31eb6a921657b0d764a4b9"]
=== android/app/src/main/res/drawable-port-xxhdpi/splash.png ===
[binary hash="0c7f1212f25b7b90e9a6e1d320013e4ff3d3e03e634cbb07b7b7981cac51627f"]
=== android/app/src/main/res/drawable-port-xxxhdpi/splash.png ===
[binary hash="3db071a03b2f8ffe0dfd4170fc59842d53cd15bba5e88af59401d58efabf7827"]
=== android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml ===
=== android/app/src/main/res/drawable/ic_launcher_background.xml ===
=== android/app/src/main/res/drawable/splash.png ===
[binary hash="5cf98b4451bd99b20df26f9e608a46946118be6b0ae90762f9ca1786a30c76ff"]
=== android/app/src/main/res/layout/activity_main.xml ===
=== android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml ===
=== android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml ===
=== android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png ===
[binary hash="32baa10d2632a4417454a579f992bd640e0a3cec79321423559b2c9940de58a9"]
=== android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png ===
[binary hash="bfcc1b0fa931b14bb241372c76ab4f04374b67d02363c98d9cb12edfdacdf5f3"]
=== android/app/src/main/res/mipmap-hdpi/ic_launcher.png ===
[binary hash="72b71c3581ca3b5a23b1c168d69b9d855b3f184fa079902a01f088eb4f0607d5"]
=== android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png ===
[binary hash="58e78a618778926b1f6d9472a6468de878de8530970934e94aab5ba4ba08cc00"]
=== android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png ===
[binary hash="0166fc333074c373fbd0ce6b5defd71552166165ac778121ca9c9dff6b83f0fc"]
=== android/app/src/main/res/mipmap-mdpi/ic_launcher.png ===
[binary hash="27ed3603010ebc278f64f8645741ab132ff517abb5308eb9df6c8e42a48956b2"]
=== android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png ===
[binary hash="6f88083b8166cc559102f7044688de7525287632ebe09ac45d001ac8bf4b3eae"]
=== android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png ===
[binary hash="40911a00922868686854a4804b93fd6e56b503664696de03f450bff690affb6d"]
=== android/app/src/main/res/mipmap-xhdpi/ic_launcher.png ===
[binary hash="d35dbfff175b83c13ef59cf924abfc810f7b6a158595d7417c5498ea8c7c7ed1"]
=== android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png ===
[binary hash="4a82bc1e9923576275869998925ce0ae021a79aa18b24a0dd87ad6b61ca85053"]
=== android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png ===
[binary hash="1ee4cd9ff371dcb2e3938097e434f6fb8731688ed7165e61fc63693ad5b2f455"]
=== android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png ===
[binary hash="ed346eb1e3f0280f15709393705899b3ff55c20b88f4e0308006b3c33cf5fe14"]
=== android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png ===
[binary hash="bd24fd383253bf8d43f0a81f11c071d76d1d555114376dd647cd9fb38fa0a9da"]
=== android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png ===
[binary hash="ab93096331e7cd8ec379f73f1e9adcaaa9ee1115c9f4ff10411a811fb9700174"]
=== android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png ===
[binary hash="87cb2f2ffe992652bb4fa768c73719a37b5852ab17fbf8e170e888f7a42b0761"]
=== android/app/src/main/res/values/ic_launcher_background.xml ===
#FFFFFF
=== android/app/src/main/res/values/strings.xml ===
[[appName]]
[[appName]]
com.example.[[normalizedAppName]]
com.example.[[normalizedAppName]]
=== android/app/src/main/res/values/styles.xml ===
=== android/app/src/main/res/xml/file_paths.xml ===
=== android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java ===
package com.getcapacitor.myapp;
import static org.junit.Assert.*;
import org.junit.Test;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see Testing documentation
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
=== android/build.gradle ===
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.7.2'
classpath 'com.google.gms:google-services:4.4.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
apply from: "variables.gradle"
allprojects {
repositories {
google()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
=== android/gradle.properties ===
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
=== android/gradle/wrapper/gradle-wrapper.jar ===
PK ! META-INF/LICENSEUT �Z[s�6~ϯ�hfg�FI���}Rc�U7�3���>B$(aC,@Z���=�(�N�u=�֢���s��w�J|�g��r��]�ΩW/��/e�6��v����n��(�}���g퇡��͛��0�����ݛ��ro^�������X݈ww�����n�����as[��������;|\�[7���z��>!��ō�u�P��_ymf�D3���iD�d'8�l��*Q���U�6V�Nªޚj,�q�Eổv�����D�[�Jl�b�J�
ȷf������A�{�[�
�z{�Xi��ջ� ̡SV�J�PG!�ao�����\Z1�� `ӝ�����K��j'qK�ϔ;< i��,IJ�� �z1^�
j�xk0�`MSiU�А����]�JӶ����⠇=��
�⽱�G?��@�$�F�ͼ�ʼn+}�K�A��g�K�����BF����y)�'�����N��p_7�{�X!{E��Ӿ�d�9h�&�r�Ar���%պk�ʖ(���������
�����p�U.H�[ՁJ
��H��L.�Ì3qk�7;�ν��&��Q�y|x� ���[�<�'��,�6�[ )�՞FZoU�����ך,��hM��h��*8Xwe3�) Eg��V���Gg����hCpJ��G��~��_��h����Fe�q��7�¹�;�3p��P~�ִ��r/;�:$DE��M��4�c-�`�bz@/�䘐6�Ƅ2��?�"� �'��N����P�n�*-�p��c2��(�!iL8���R@w�1�t�X�� H�n� ���R�h�XJJ2�B@70��-/k2��-d���qPO��agX�a���E�+�� ��1��d�e�#X�Q 4���F �q���^� (����Q*V�F?DcnE��\8�u��� �5@
�̴�Q�+1��4>O�>���<��0�r�A���%lfJ
X�w��]�}~����I���|�z��w$�W
�Z�c~�^Z���UV5Gȃ�3nтq��V]�k "[˒�D���h�3��:������}������)��
�.�Ҩ
���b��L$H2lZN�"K�Q���M�m7n;h#��3Z�L���j�De��}���5��y��u�^��f^��˰H5��� 腭l(��uD>��[_`�FW�Ph���d!����R�+��%� u���� -+Y�
��T�r��;*,!%�H��+��ȵr��L� �6�
8n9:��cKx�i�'B�T��S0���!�(���hF��J���&v(�rz��C(��Ȱ#�j�{K���|v��'�:;d�)On@���dS�e�
� (�"$��}R:����ඥ{s�F�ѷs��*��]<~`Vb3rq��z����,GeURd!�3�8�@���z5�eB��5�A#��L��<�����5�����e3_�V�'
��є�g����a�`�X�q|�t ��qk���}#!��ЙK��'�X�}[N�#Y>��B9'la�5s�G�����+X��Z�!P$P�qCt-z>k�=�� l/����Ѧ���AP
�/��q�e�
f���죰����MӁ��ʈ]^������f�+��ܺ7;�^�Ք��� �ҡ��审
6���Id���tA8w��ڂ�L���-�P��bY��c/� �0��S�c�N� �|�~�
V���8����(͈��?��h���z��6j�E ,�O��_8� ���v�S&�ñ�?Zb� ���4e
ͨϔ�h��%/�*����+��V��|Ѻ
�Ċ�X�|24��[yL�v�B��:p� ����%Ha�@��
��Ċ
3%� ��s��un���D���C>�!R�e���-B��d6ˆ�*��b��Gd&%��-�5�P��8"?�S8ި*�Uch�$b�p��y�id�0� 3\L&�VA��<����džy��⢉RWA����L N_�+P�?G�2��4�� ˽���h����L}A�"�MM���V$���T"y�u6�K
��VM�pd�8K&*�q4��N��8�{jv�M �����x蠊:r�z��J��/I�.H�|�x�"�aV6�zvt��>�x:�a��ͧ��Kk�i���`�Z��G^�2.��7T_���2L��wXFH57B9p�R|�i���o���`�������?���L=�2�x�h�v���i����P�CX�xte9��ٍ�_�1} ��ŹYd48�R�g��#��c�_A4���T����=��'X�ɥP�M��Ө
XxG ���MNj��!���|5�P�R����u�K�Z|� v9�$��n���R�-V��"5/i
V$���wI�+���-j�6�/'νƹ@�l���L���,7�������=܋O��z��_�n��:���{/�?�?���;�o��p:��I4�J��ISќT�:B�K���ȞC,�~y�� ��^/W����/��߮�����ݯ�������B����
}`�e|\��ak��a��ns�Ֆo�Y �{�Tӭ��pW8
�5��H���5D�B�7����9�Dx� ���;S��&3��{V������,��?��9�}�r��<_b�@���`�a'��v6j 7Y@C>2�Ԯ���Ju]���b2ʍ��/����7zK�����<"�[�-���������9)8� .k4m�'�Z���t����Wҗ\��n=�}��b�W H`x��r^h@h����8��|g�U<�j�5>mtɚcĘ����;3��|bp��x�
��؝1�A7���3e����� FT���-W#��c��
���[ ����r8�H�Oq^F���Q�%i���������s�0�kZ! /�H�:K�O{���t=�,|�-��roOAi�9�l��+�Z� ԑ��+��1�G�#ŝj;�jI��Y���0��O����A�A��W-p��_造������V2�� N�o�tMv9���!��@�`��%��nQ��IQ~&�=���1�9��6u�M�jhWx0����\ږ�(��hŔΣ���O���+�f������x{�d#�H6�d��EcF�.���������PK����
�' PK ! META-INF/MANIFEST.MFUT �M��LK-.�
K-*��ϳR0�3����-�I�M�+I,
�d��Z)�%��*�%��r�r PKm�>=@ ? PK ! 1 org/gradle/cli/CommandLineArgumentException.classUT MO�J1�����^/sR��R�a�"H�SO-xO��46�.�n�>�o�I���P�,(:���}~� ��3x�ng�_�F��1�K��2��6��l�"�
��$�D��
�:�6��R��}��Ȋ<��\\���y}�ۿ,�!"�D4�,Ni��S�n��E|2
�(�
ncЙg��x�
2�e^�ʋ�`,��'��¥S�t�Ui������4=����p*������M�+�tq���x�g��Y�'�]h�nZ�aИ�0��U0JR�v @��y�{���G�j
��PK�`zX! p PK ! &