├── .editorconfig ├── .env.example ├── .eslintrc.cjs ├── .gitattributes ├── .gitignore ├── README.md ├── _ide_helper.php ├── app ├── Actions │ ├── Candle.php │ ├── Signature.php │ └── Uploads.php ├── Console │ └── Commands │ │ ├── UpdatePoolStats.php │ │ ├── UpdateTokenHolders.php │ │ └── UpdateTradeCandles.php ├── Enums │ ├── LaunchpadStatus.php │ ├── MsgStatus.php │ ├── SettingRpc.php │ └── TradeType.php ├── Events │ ├── NewMessage.php │ └── NewTradeEvent.php ├── Http │ ├── Controllers │ │ ├── Admin │ │ │ ├── DashboardController.php │ │ │ ├── FactoriesController.php │ │ │ ├── HoldersController.php │ │ │ ├── LaunchpadsController.php │ │ │ ├── MsgsController.php │ │ │ ├── PromosController.php │ │ │ ├── SettingsController.php │ │ │ └── TradesController.php │ │ ├── Auth │ │ │ ├── OtpController.php │ │ │ └── Web3AuthController.php │ │ ├── Controller.php │ │ ├── LaunchpadsController.php │ │ ├── MsgsController.php │ │ ├── ProfileController.php │ │ ├── S3Controller.php │ │ └── TradesController.php │ ├── Middleware │ │ ├── AppkitCsp.php │ │ ├── DemoMode.php │ │ ├── HandleInertiaRequests.php │ │ └── IsAdmin.php │ ├── Requests │ │ ├── Auth │ │ │ └── LoginRequest.php │ │ └── ProfileUpdateRequest.php │ └── Resources │ │ ├── Factory.php │ │ ├── Holder.php │ │ ├── Launchpad.php │ │ ├── Msg.php │ │ ├── Poolstat.php │ │ ├── Promo.php │ │ ├── Rate.php │ │ ├── Setting.php │ │ ├── Trade.php │ │ ├── TradeCandle.php │ │ ├── Upload.php │ │ ├── User.php │ │ └── ViewUser.php ├── Install │ ├── Controllers │ │ └── InstallController.php │ ├── Helpers │ │ └── EnvHelper.php │ ├── Middleware │ │ └── InstallMiddleware.php │ └── routes.php ├── Models │ ├── Factory.php │ ├── Holder.php │ ├── Launchpad.php │ ├── Msg.php │ ├── Poolstat.php │ ├── Promo.php │ ├── Rate.php │ ├── Setting.php │ ├── Trade.php │ ├── TradeCandle.php │ ├── Upload.php │ └── User.php ├── Notifications │ ├── OTPActivation.php │ └── OTPNotification.php ├── Observers │ └── TradeObserver.php ├── Policies │ ├── LaunchpadPolicy.php │ └── MsgPolicy.php ├── Providers │ └── AppServiceProvider.php ├── Services │ ├── CandleService.php │ ├── Rate.php │ ├── TokenHolderService.php │ ├── UniswapV3GraphService.php │ ├── UrlCrypt.php │ └── Util.php └── Traits │ ├── HasProfilePhoto.php │ ├── HasUuid.php │ └── WhenMorphed.php ├── artisan ├── bootstrap ├── app.php ├── cache │ └── .gitignore └── providers.php ├── components.json ├── composer.json ├── composer.lock ├── config ├── app.php ├── auth.php ├── broadcasting.php ├── cache.php ├── crudstrap.php ├── database.php ├── evm.php ├── filepond.php ├── filesystems.php ├── laravel-translatable-string-exporter.php ├── logging.php ├── mail.php ├── queue.php ├── reverb.php ├── services.php └── session.php ├── crud └── done │ ├── 1_factory.json │ ├── 2_launchpads.json │ ├── holders.json │ ├── msgs.json │ ├── poolstats.json │ ├── promos.json │ ├── rates.json │ ├── settings.json │ └── trades.json ├── database ├── .gitignore ├── factories │ └── UserFactory.php ├── migrations │ ├── 0001_01_01_000000_create_users_table.php │ ├── 0001_01_01_000001_create_cache_table.php │ ├── 0001_01_01_000002_create_jobs_table.php │ ├── 2024_07_09_204717_create_uploads_table.php │ ├── 2024_11_28_161534_create_factories_table.php │ ├── 2024_11_28_161535_create_launchpads_table.php │ ├── 2024_11_28_161536_create_holders_table.php │ ├── 2024_11_28_161537_create_msgs_table.php │ ├── 2024_11_29_004842_create_trades_table.php │ ├── 2024_11_30_234718_create_settings_table.php │ ├── 2024_12_01_083211_create_trade_candles_table.php │ ├── 2024_12_04_215702_create_rates_table.php │ ├── 2024_12_05_173559_create_poolstats_table.php │ ├── 2024_12_07_111004_create_promos_table.php │ ├── 2024_12_11_212713_add_unique_keys_to_holders_table.php │ └── 2025_01_04_041834_add_livestream_id_to_launchpads_table.php └── seeders │ ├── DatabaseSeeder.php │ ├── RatesTableSeeder.php │ ├── TestLaunchpadSeeder.php │ └── TestTradeCandlesSeeder.php ├── docker-compose.yml ├── docker ├── 8.0 │ ├── Dockerfile │ ├── php.ini │ ├── start-container │ └── supervisord.conf ├── 8.1 │ ├── Dockerfile │ ├── php.ini │ ├── start-container │ └── supervisord.conf ├── 8.2 │ ├── Dockerfile │ ├── php.ini │ ├── start-container │ └── supervisord.conf ├── 8.3 │ ├── Dockerfile │ ├── php.ini │ ├── start-container │ └── supervisord.conf ├── 8.4 │ ├── Dockerfile │ ├── php.ini │ ├── start-container │ └── supervisord.conf ├── mariadb │ └── create-testing-database.sh ├── mysql │ └── create-testing-database.sh └── pgsql │ └── create-testing-database.sql ├── evm ├── BondingCurve.json ├── Factory.json ├── Foundry.json └── Lock.json ├── install-components.sh ├── jsconfig.json ├── lang ├── en.json └── en │ ├── auth.php │ ├── pagination.php │ ├── passwords.php │ └── validation.php ├── laravel-reverb-setup.sh ├── package-lock.json ├── package.json ├── phpunit.xml ├── postcss.config.js ├── process_queue.sh ├── project-stack.md ├── public ├── .htaccess ├── ads │ ├── kayen.jpeg │ ├── taus.jpg │ └── urus.jpg ├── apple-touch-icon.png ├── charting_library │ ├── bundles │ │ ├── 1013.8bf558e5776449ee9b26.css │ │ ├── 1013.8bf558e5776449ee9b26.rtl.css │ │ ├── 1033.5197f9f8b8500206d06c.css │ │ ├── 1033.5197f9f8b8500206d06c.rtl.css │ │ ├── 1054.53487a2be7f0ef3c0ac6.css │ │ ├── 1054.53487a2be7f0ef3c0ac6.rtl.css │ │ ├── 1109.ec16a629917db2baf412.css │ │ ├── 1109.ec16a629917db2baf412.rtl.css │ │ ├── 1365.0116666d16b5bc64c47a.css │ │ ├── 1365.0116666d16b5bc64c47a.rtl.css │ │ ├── 1553.c076714f5e24887f0b94.js │ │ ├── 1762.7ff6b353c441db2276da.css │ │ ├── 1762.7ff6b353c441db2276da.rtl.css │ │ ├── 1849.aa435f081ad57a6d0121.css │ │ ├── 1849.aa435f081ad57a6d0121.rtl.css │ │ ├── 1958.5ca25f504685c5c94792.js │ │ ├── 2109.39627406fe95483ff7db.css │ │ ├── 2109.39627406fe95483ff7db.rtl.css │ │ ├── 2158.4b603780e909661194b1.js │ │ ├── 218.249783b12e388c783204.css │ │ ├── 218.249783b12e388c783204.rtl.css │ │ ├── 2191.4be2f56dab5aeadfe0eb.css │ │ ├── 2191.4be2f56dab5aeadfe0eb.rtl.css │ │ ├── 2215.e87235d359e4c375c7b9.js │ │ ├── 2260.b98824e4829a1aa9b444.css │ │ ├── 2260.b98824e4829a1aa9b444.rtl.css │ │ ├── 2587.1403c0d79d2217a73053.css │ │ ├── 2587.1403c0d79d2217a73053.rtl.css │ │ ├── 2639.86605a3197db99aca0f7.css │ │ ├── 2639.86605a3197db99aca0f7.rtl.css │ │ ├── 2666.fbb750fd312778403036.css │ │ ├── 2666.fbb750fd312778403036.rtl.css │ │ ├── 2676.2d3cabbd39a3b0d6e9ea.css │ │ ├── 2676.2d3cabbd39a3b0d6e9ea.rtl.css │ │ ├── 2731.e35a685bdfdffcff2797.css │ │ ├── 2731.e35a685bdfdffcff2797.rtl.css │ │ ├── 2842.61ec1448858319f48d5a.js │ │ ├── 2984.4082296827cdc2ce3974.css │ │ ├── 2984.4082296827cdc2ce3974.rtl.css │ │ ├── 3016.1dc744fe35e3e3b00f00.js │ │ ├── 3066.dc07d1c6b25360d267dd.css │ │ ├── 3066.dc07d1c6b25360d267dd.rtl.css │ │ ├── 3179.f9de135d1febd7be2652.js │ │ ├── 3291.99dfe1742621fe5892b1.js │ │ ├── 3502.c49903f7222870ff8aca.css │ │ ├── 3502.c49903f7222870ff8aca.rtl.css │ │ ├── 3610.609aa04cdd061440d0ef.css │ │ ├── 3610.609aa04cdd061440d0ef.rtl.css │ │ ├── 3717.cccda056797616f8ac78.css │ │ ├── 3717.cccda056797616f8ac78.rtl.css │ │ ├── 3842.6a8a7842ee841f6d2cff.css │ │ ├── 3842.6a8a7842ee841f6d2cff.rtl.css │ │ ├── 3889.a2646d6c3b33d166eee2.css │ │ ├── 3889.a2646d6c3b33d166eee2.rtl.css │ │ ├── 3980.f4c75de9958b6594bac6.css │ │ ├── 3980.f4c75de9958b6594bac6.rtl.css │ │ ├── 3986.2611a114cb0cc5d3d639.js │ │ ├── 4015.1d0e3a62a59d173c81f3.css │ │ ├── 4015.1d0e3a62a59d173c81f3.rtl.css │ │ ├── 4062.9229fac3ef3db26fd5bc.js │ │ ├── 4215.d24836a292b1969ab4bb.css │ │ ├── 4215.d24836a292b1969ab4bb.rtl.css │ │ ├── 4378.36f45309c7af8e3cbf38.js │ │ ├── 4387.04308bdc36942462914c.css │ │ ├── 4387.04308bdc36942462914c.rtl.css │ │ ├── 4403.fc4cac3ecee3925b9ec2.js │ │ ├── 4713.e40c2c44bf79ceb73d67.js │ │ ├── 4717.48fa365046162fcf8939.js │ │ ├── 4894.670543ec1a8c4786a3a0.css │ │ ├── 4894.670543ec1a8c4786a3a0.rtl.css │ │ ├── 4928.4a1b6faf9161be473ce9.css │ │ ├── 4928.4a1b6faf9161be473ce9.rtl.css │ │ ├── 4987.9eeb86c4d3cfacadc52c.css │ │ ├── 4987.9eeb86c4d3cfacadc52c.rtl.css │ │ ├── 5007.fba5211a5d34374a0759.js │ │ ├── 5050.ab76a0ed297bdbf8d13f.js │ │ ├── 5145.a2b224fd27ab2941c565.css │ │ ├── 5145.a2b224fd27ab2941c565.rtl.css │ │ ├── 5163.b9129281858e3f6afb05.css │ │ ├── 5163.b9129281858e3f6afb05.rtl.css │ │ ├── 5403.28a935ee45ece03c1da9.css │ │ ├── 5403.28a935ee45ece03c1da9.rtl.css │ │ ├── 5649.b60ed09c5ea8c55827d4.css │ │ ├── 5649.b60ed09c5ea8c55827d4.rtl.css │ │ ├── 5711.85a69ca8e546ea6966e9.js │ │ ├── 5866.c89b7fc29afe92efc1f3.css │ │ ├── 5866.c89b7fc29afe92efc1f3.rtl.css │ │ ├── 5871.bc27dc50e79bd2545e97.js │ │ ├── 5899.49534f304fa5f1815584.js │ │ ├── 5901.e7195b28a21254f01dd4.js │ │ ├── 5993.31e4b81e8ea99883150e.css │ │ ├── 5993.31e4b81e8ea99883150e.rtl.css │ │ ├── 6.362fa6a7ab1f3e3b06c4.css │ │ ├── 6.362fa6a7ab1f3e3b06c4.rtl.css │ │ ├── 6025.263b457b1a7f9ca139b2.css │ │ ├── 6025.263b457b1a7f9ca139b2.rtl.css │ │ ├── 6036.069ebb4bad0f5dd27147.css │ │ ├── 6036.069ebb4bad0f5dd27147.rtl.css │ │ ├── 6106.cf6f129517250c80b39f.css │ │ ├── 6106.cf6f129517250c80b39f.rtl.css │ │ ├── 6151.b1a247016649e9fadde0.js │ │ ├── 6214.65b7dbf8be6cca5ac143.css │ │ ├── 6214.65b7dbf8be6cca5ac143.rtl.css │ │ ├── 6221.5c115302948a4482dfc1.css │ │ ├── 6221.5c115302948a4482dfc1.rtl.css │ │ ├── 6494.f36c8c07be959ab522bb.css │ │ ├── 6494.f36c8c07be959ab522bb.rtl.css │ │ ├── 6625.eb019e3a6facc625daff.css │ │ ├── 6625.eb019e3a6facc625daff.rtl.css │ │ ├── 6639.2c6ed608ae2da878c517.css │ │ ├── 6639.2c6ed608ae2da878c517.rtl.css │ │ ├── 6752.207eb3cc75b3ed2c6754.css │ │ ├── 6752.207eb3cc75b3ed2c6754.rtl.css │ │ ├── 6783.6a1bfc6cd105f6a266ca.css │ │ ├── 6783.6a1bfc6cd105f6a266ca.rtl.css │ │ ├── 6831.ac1745947bd2665f6c9a.css │ │ ├── 6831.ac1745947bd2665f6c9a.rtl.css │ │ ├── 6884.bb7d30a7bbbe5af36556.css │ │ ├── 6884.bb7d30a7bbbe5af36556.rtl.css │ │ ├── 6949.6b6148a8f15c8898c9e9.css │ │ ├── 6949.6b6148a8f15c8898c9e9.rtl.css │ │ ├── 6959.b688f948e1f896f359ed.css │ │ ├── 6959.b688f948e1f896f359ed.rtl.css │ │ ├── 7111.2382715e5643d27ea88a.css │ │ ├── 7111.2382715e5643d27ea88a.rtl.css │ │ ├── 7149.5233dd4b27b2f1bea43f.css │ │ ├── 7149.5233dd4b27b2f1bea43f.rtl.css │ │ ├── 7194.e04f69c8933166966874.css │ │ ├── 7194.e04f69c8933166966874.rtl.css │ │ ├── 7350.a9502dc8f01e37d9fa02.css │ │ ├── 7350.a9502dc8f01e37d9fa02.rtl.css │ │ ├── 7391.9c809fa91ed0c8f75bc0.css │ │ ├── 7391.9c809fa91ed0c8f75bc0.rtl.css │ │ ├── 7413.f830ad1ad6ee6f9b1cb3.css │ │ ├── 7413.f830ad1ad6ee6f9b1cb3.rtl.css │ │ ├── 7555.c7630ad44b7d7a2f8a0c.css │ │ ├── 7555.c7630ad44b7d7a2f8a0c.rtl.css │ │ ├── 7871.cb99fc4ec9bbe0895a26.css │ │ ├── 7871.cb99fc4ec9bbe0895a26.rtl.css │ │ ├── 8049.5e06299815b664b331e2.css │ │ ├── 8049.5e06299815b664b331e2.rtl.css │ │ ├── 8056.82b5717ea9f014c8ca2d.css │ │ ├── 8056.82b5717ea9f014c8ca2d.rtl.css │ │ ├── 8149.21f2b01074a4d082e268.css │ │ ├── 8149.21f2b01074a4d082e268.rtl.css │ │ ├── 8167.ddf1e0f7ca2caf9285fe.js │ │ ├── 8180.640f9faeb3f5f9fa190f.js │ │ ├── 84.d345a68da9c285edb24f.css │ │ ├── 84.d345a68da9c285edb24f.rtl.css │ │ ├── 855.eac699ce13c5f226e490.css │ │ ├── 855.eac699ce13c5f226e490.rtl.css │ │ ├── 8904.a302177fe7e3ccd50cb0.css │ │ ├── 8904.a302177fe7e3ccd50cb0.rtl.css │ │ ├── 898.3efb27a9750af83ed9c6.css │ │ ├── 898.3efb27a9750af83ed9c6.rtl.css │ │ ├── 9138.c6bf63d3695b7e98a4e1.css │ │ ├── 9138.c6bf63d3695b7e98a4e1.rtl.css │ │ ├── 9322.3d936c180e77685183dd.css │ │ ├── 9322.3d936c180e77685183dd.rtl.css │ │ ├── 9327.cb8f92015e0b667cbd6e.css │ │ ├── 9327.cb8f92015e0b667cbd6e.rtl.css │ │ ├── 962.e2eb6a85de39a3d76e5d.js │ │ ├── 9727.59df6902f69a26f0225a.js │ │ ├── 9789.cb5ad20bc727d3820b6c.css │ │ ├── 9789.cb5ad20bc727d3820b6c.rtl.css │ │ ├── 9842.dde7652ee3c148414acf.css │ │ ├── 9842.dde7652ee3c148414acf.rtl.css │ │ ├── 9916.d034c6ed4305c99b15ce.css │ │ ├── 9916.d034c6ed4305c99b15ce.rtl.css │ │ ├── EuclidCircular.be8f862db48c2976009f.woff2 │ │ ├── add-compare-dialog.fd9f91929c939a260ad3.js │ │ ├── ar.2014.ac41a755cbd36fd3ce84.js │ │ ├── ar.2427.596db67d26c83197588d.js │ │ ├── ar.2684.25cb9ba0254ab5298f14.js │ │ ├── ar.3753.abc1ac9bcf134df94dec.js │ │ ├── ar.4053.929467332218f26dc70f.js │ │ ├── ar.505.978e053ffa4899c28da8.js │ │ ├── ar.5652.209eb64b624dfe3c853a.js │ │ ├── ar.6196.3e28185b53cd2346f10d.js │ │ ├── ar.7201.028a386569caa7df9e56.js │ │ ├── ar.77.5401b8766c940f90b3e9.js │ │ ├── ar.8884.515644758428ad7e8263.js │ │ ├── ca_ES.2014.ac41a755cbd36fd3ce84.js │ │ ├── ca_ES.2427.596db67d26c83197588d.js │ │ ├── ca_ES.2684.25cb9ba0254ab5298f14.js │ │ ├── ca_ES.3753.abc1ac9bcf134df94dec.js │ │ ├── ca_ES.4053.929467332218f26dc70f.js │ │ ├── ca_ES.505.978e053ffa4899c28da8.js │ │ ├── ca_ES.5652.209eb64b624dfe3c853a.js │ │ ├── ca_ES.6196.3e28185b53cd2346f10d.js │ │ ├── ca_ES.7201.028a386569caa7df9e56.js │ │ ├── ca_ES.77.5401b8766c940f90b3e9.js │ │ ├── ca_ES.8884.515644758428ad7e8263.js │ │ ├── change-interval-dialog.297f80c00bf8731bd9fb.js │ │ ├── chart-bottom-toolbar.744ccf6a4674f31cb2ea.js │ │ ├── chart-event-hint.b2c7a312767fa4f97aa5.js │ │ ├── chart-screenshot-hint.ebff97a1a4b1c5914bdd.js │ │ ├── chart-widget-gui.27649072aafee4246ec8.js │ │ ├── compare-model.c3a2bff7c7c12b7ebc38.js │ │ ├── context-menu-renderer.d6dfc888e4d8fe785fa7.js │ │ ├── cs.2014.ac41a755cbd36fd3ce84.js │ │ ├── cs.2427.596db67d26c83197588d.js │ │ ├── cs.2684.25cb9ba0254ab5298f14.js │ │ ├── cs.3753.abc1ac9bcf134df94dec.js │ │ ├── cs.4053.929467332218f26dc70f.js │ │ ├── cs.505.978e053ffa4899c28da8.js │ │ ├── cs.5652.209eb64b624dfe3c853a.js │ │ ├── cs.6196.3e28185b53cd2346f10d.js │ │ ├── cs.7201.028a386569caa7df9e56.js │ │ ├── cs.77.5401b8766c940f90b3e9.js │ │ ├── cs.8884.515644758428ad7e8263.js │ │ ├── currency-label-menu.58ca1d91873babec49b8.js │ │ ├── custom-intervals-add-dialog.1d320236ba24da2e3a2f.js │ │ ├── de.2014.ac41a755cbd36fd3ce84.js │ │ ├── de.2427.596db67d26c83197588d.js │ │ ├── de.2684.25cb9ba0254ab5298f14.js │ │ ├── de.3753.abc1ac9bcf134df94dec.js │ │ ├── de.4053.929467332218f26dc70f.js │ │ ├── de.505.978e053ffa4899c28da8.js │ │ ├── de.5652.209eb64b624dfe3c853a.js │ │ ├── de.6196.3e28185b53cd2346f10d.js │ │ ├── de.7201.028a386569caa7df9e56.js │ │ ├── de.77.5401b8766c940f90b3e9.js │ │ ├── de.8884.515644758428ad7e8263.js │ │ ├── dot.3d617b6b01edba83a7f4.cur │ │ ├── drawing-toolbar.41ed460b4ed63c37a623.js │ │ ├── el.2014.ac41a755cbd36fd3ce84.js │ │ ├── el.2427.596db67d26c83197588d.js │ │ ├── el.2684.25cb9ba0254ab5298f14.js │ │ ├── el.3753.abc1ac9bcf134df94dec.js │ │ ├── el.4053.929467332218f26dc70f.js │ │ ├── el.505.978e053ffa4899c28da8.js │ │ ├── el.5652.209eb64b624dfe3c853a.js │ │ ├── el.6196.3e28185b53cd2346f10d.js │ │ ├── el.7201.028a386569caa7df9e56.js │ │ ├── el.77.5401b8766c940f90b3e9.js │ │ ├── el.8884.515644758428ad7e8263.js │ │ ├── en.2014.ac41a755cbd36fd3ce84.js │ │ ├── en.2427.596db67d26c83197588d.js │ │ ├── en.2684.25cb9ba0254ab5298f14.js │ │ ├── en.3753.abc1ac9bcf134df94dec.js │ │ ├── en.4053.929467332218f26dc70f.js │ │ ├── en.505.978e053ffa4899c28da8.js │ │ ├── en.5652.209eb64b624dfe3c853a.js │ │ ├── en.6196.3e28185b53cd2346f10d.js │ │ ├── en.7201.028a386569caa7df9e56.js │ │ ├── en.77.5401b8766c940f90b3e9.js │ │ ├── en.8884.515644758428ad7e8263.js │ │ ├── eraser.c80610a04a92d2465b03.cur │ │ ├── es.2014.ac41a755cbd36fd3ce84.js │ │ ├── es.2427.596db67d26c83197588d.js │ │ ├── es.2684.25cb9ba0254ab5298f14.js │ │ ├── es.3753.abc1ac9bcf134df94dec.js │ │ ├── es.4053.929467332218f26dc70f.js │ │ ├── es.505.978e053ffa4899c28da8.js │ │ ├── es.5652.209eb64b624dfe3c853a.js │ │ ├── es.6196.3e28185b53cd2346f10d.js │ │ ├── es.7201.028a386569caa7df9e56.js │ │ ├── es.77.5401b8766c940f90b3e9.js │ │ ├── es.8884.515644758428ad7e8263.js │ │ ├── export-data.02a7668fbb079d66566d.js │ │ ├── fa.2014.ac41a755cbd36fd3ce84.js │ │ ├── fa.2427.596db67d26c83197588d.js │ │ ├── fa.2684.25cb9ba0254ab5298f14.js │ │ ├── fa.3753.abc1ac9bcf134df94dec.js │ │ ├── fa.4053.929467332218f26dc70f.js │ │ ├── fa.505.978e053ffa4899c28da8.js │ │ ├── fa.5652.209eb64b624dfe3c853a.js │ │ ├── fa.6196.3e28185b53cd2346f10d.js │ │ ├── fa.7201.028a386569caa7df9e56.js │ │ ├── fa.77.5401b8766c940f90b3e9.js │ │ ├── fa.8884.515644758428ad7e8263.js │ │ ├── favorite-drawings-api.685c412f518848b85b89.js │ │ ├── flag-square-mock-dark.16b5f3a431f502b03ae3.svg │ │ ├── flag-square-mock.d201313017eb2c1b989f.svg │ │ ├── floating-toolbars.6db0236a7aedcdedac97.js │ │ ├── fr.2014.ac41a755cbd36fd3ce84.js │ │ ├── fr.2427.596db67d26c83197588d.js │ │ ├── fr.2684.25cb9ba0254ab5298f14.js │ │ ├── fr.3753.abc1ac9bcf134df94dec.js │ │ ├── fr.4053.929467332218f26dc70f.js │ │ ├── fr.505.978e053ffa4899c28da8.js │ │ ├── fr.5652.209eb64b624dfe3c853a.js │ │ ├── fr.6196.3e28185b53cd2346f10d.js │ │ ├── fr.7201.028a386569caa7df9e56.js │ │ ├── fr.77.5401b8766c940f90b3e9.js │ │ ├── fr.8884.515644758428ad7e8263.js │ │ ├── full-tooltips-popup.0fccf890139dbb10791b.js │ │ ├── general-chart-properties-dialog.82cac28ab24654c72a42.js │ │ ├── general-property-page.b320e14febaf0719a734.js │ │ ├── get-error-card.6635b794027eb9971ec9.js │ │ ├── go-to-date-dialog-impl.4aa6daee1b7dcb2f2f62.js │ │ ├── hammerjs.6e30e0c48af40bf2f6c0.js │ │ ├── he_IL.2014.ac41a755cbd36fd3ce84.js │ │ ├── he_IL.2427.596db67d26c83197588d.js │ │ ├── he_IL.2684.25cb9ba0254ab5298f14.js │ │ ├── he_IL.3753.abc1ac9bcf134df94dec.js │ │ ├── he_IL.4053.929467332218f26dc70f.js │ │ ├── he_IL.505.978e053ffa4899c28da8.js │ │ ├── he_IL.5652.209eb64b624dfe3c853a.js │ │ ├── he_IL.6196.3e28185b53cd2346f10d.js │ │ ├── he_IL.7201.028a386569caa7df9e56.js │ │ ├── he_IL.77.5401b8766c940f90b3e9.js │ │ ├── he_IL.8884.515644758428ad7e8263.js │ │ ├── header-toolbar.80a73372e759c9cc0b8e.js │ │ ├── hu_HU.2014.ac41a755cbd36fd3ce84.js │ │ ├── hu_HU.2427.596db67d26c83197588d.js │ │ ├── hu_HU.2684.25cb9ba0254ab5298f14.js │ │ ├── hu_HU.3753.abc1ac9bcf134df94dec.js │ │ ├── hu_HU.4053.929467332218f26dc70f.js │ │ ├── hu_HU.505.978e053ffa4899c28da8.js │ │ ├── hu_HU.5652.209eb64b624dfe3c853a.js │ │ ├── hu_HU.6196.3e28185b53cd2346f10d.js │ │ ├── hu_HU.7201.028a386569caa7df9e56.js │ │ ├── hu_HU.77.5401b8766c940f90b3e9.js │ │ ├── hu_HU.8884.515644758428ad7e8263.js │ │ ├── icons.4d39018d0766cf7006bc.png │ │ ├── id_ID.2014.ac41a755cbd36fd3ce84.js │ │ ├── id_ID.2427.596db67d26c83197588d.js │ │ ├── id_ID.2684.25cb9ba0254ab5298f14.js │ │ ├── id_ID.3753.abc1ac9bcf134df94dec.js │ │ ├── id_ID.4053.929467332218f26dc70f.js │ │ ├── id_ID.505.978e053ffa4899c28da8.js │ │ ├── id_ID.5652.209eb64b624dfe3c853a.js │ │ ├── id_ID.6196.3e28185b53cd2346f10d.js │ │ ├── id_ID.7201.028a386569caa7df9e56.js │ │ ├── id_ID.77.5401b8766c940f90b3e9.js │ │ ├── id_ID.8884.515644758428ad7e8263.js │ │ ├── it.2014.ac41a755cbd36fd3ce84.js │ │ ├── it.2427.596db67d26c83197588d.js │ │ ├── it.2684.25cb9ba0254ab5298f14.js │ │ ├── it.3753.abc1ac9bcf134df94dec.js │ │ ├── it.4053.929467332218f26dc70f.js │ │ ├── it.505.978e053ffa4899c28da8.js │ │ ├── it.5652.209eb64b624dfe3c853a.js │ │ ├── it.6196.3e28185b53cd2346f10d.js │ │ ├── it.7201.028a386569caa7df9e56.js │ │ ├── it.77.5401b8766c940f90b3e9.js │ │ ├── it.8884.515644758428ad7e8263.js │ │ ├── ja.2014.ac41a755cbd36fd3ce84.js │ │ ├── ja.2427.596db67d26c83197588d.js │ │ ├── ja.2684.25cb9ba0254ab5298f14.js │ │ ├── ja.3753.abc1ac9bcf134df94dec.js │ │ ├── ja.4053.929467332218f26dc70f.js │ │ ├── ja.505.978e053ffa4899c28da8.js │ │ ├── ja.5652.209eb64b624dfe3c853a.js │ │ ├── ja.6196.3e28185b53cd2346f10d.js │ │ ├── ja.7201.028a386569caa7df9e56.js │ │ ├── ja.77.5401b8766c940f90b3e9.js │ │ ├── ja.8884.515644758428ad7e8263.js │ │ ├── ko.2014.ac41a755cbd36fd3ce84.js │ │ ├── ko.2427.596db67d26c83197588d.js │ │ ├── ko.2684.25cb9ba0254ab5298f14.js │ │ ├── ko.3753.abc1ac9bcf134df94dec.js │ │ ├── ko.4053.929467332218f26dc70f.js │ │ ├── ko.505.978e053ffa4899c28da8.js │ │ ├── ko.5652.209eb64b624dfe3c853a.js │ │ ├── ko.6196.3e28185b53cd2346f10d.js │ │ ├── ko.7201.028a386569caa7df9e56.js │ │ ├── ko.77.5401b8766c940f90b3e9.js │ │ ├── ko.8884.515644758428ad7e8263.js │ │ ├── large-slider-handle.18e9ee5923db4eac2c43.svg │ │ ├── library.f735e5630512a49de4f4.js │ │ ├── line-tools-icons.ec9907a13590a74ff995.js │ │ ├── linewidth-slider.8e3d0520d28ce8259ccf.png │ │ ├── load-chart-dialog.2bc8d3998e1a2392ad03.js │ │ ├── lollipop-tooltip-renderer.cbacd2a74fa2249c23ad.js │ │ ├── lt-icons-atlas.aceb77470f3039ad2f63.js │ │ ├── lt-pane-views.fe06b5162a88616539a9.js │ │ ├── lt-property-pages-with-definitions.33f2eb46049d6d74ca06.js │ │ ├── lt-stickers-atlas.52ad6e6d7d7b134ab0ba.js │ │ ├── manage-drawings-dialog.3f5b604134bebba28c6c.js │ │ ├── ms_MY.2014.ac41a755cbd36fd3ce84.js │ │ ├── ms_MY.2427.596db67d26c83197588d.js │ │ ├── ms_MY.2684.25cb9ba0254ab5298f14.js │ │ ├── ms_MY.3753.abc1ac9bcf134df94dec.js │ │ ├── ms_MY.4053.929467332218f26dc70f.js │ │ ├── ms_MY.505.978e053ffa4899c28da8.js │ │ ├── ms_MY.5652.209eb64b624dfe3c853a.js │ │ ├── ms_MY.6196.3e28185b53cd2346f10d.js │ │ ├── ms_MY.7201.028a386569caa7df9e56.js │ │ ├── ms_MY.77.5401b8766c940f90b3e9.js │ │ ├── ms_MY.8884.515644758428ad7e8263.js │ │ ├── new-confirm-inputs-dialog.700f756efb60fe024812.js │ │ ├── new-edit-object-dialog.ea1d15219003b54e9f1c.js │ │ ├── nl_NL.2014.ac41a755cbd36fd3ce84.js │ │ ├── nl_NL.2427.596db67d26c83197588d.js │ │ ├── nl_NL.2684.25cb9ba0254ab5298f14.js │ │ ├── nl_NL.3753.abc1ac9bcf134df94dec.js │ │ ├── nl_NL.4053.929467332218f26dc70f.js │ │ ├── nl_NL.505.978e053ffa4899c28da8.js │ │ ├── nl_NL.5652.209eb64b624dfe3c853a.js │ │ ├── nl_NL.6196.3e28185b53cd2346f10d.js │ │ ├── nl_NL.7201.028a386569caa7df9e56.js │ │ ├── nl_NL.77.5401b8766c940f90b3e9.js │ │ ├── nl_NL.8884.515644758428ad7e8263.js │ │ ├── object-tree-dialog.e45c37aa49fc3245f8f0.js │ │ ├── opacity-pattern.4d8fbb552dde3db26f4a.svg │ │ ├── opacity-slider.4f3ca6b00b45fd71da5f.png │ │ ├── pl.2014.ac41a755cbd36fd3ce84.js │ │ ├── pl.2427.596db67d26c83197588d.js │ │ ├── pl.2684.25cb9ba0254ab5298f14.js │ │ ├── pl.3753.abc1ac9bcf134df94dec.js │ │ ├── pl.4053.929467332218f26dc70f.js │ │ ├── pl.505.978e053ffa4899c28da8.js │ │ ├── pl.5652.209eb64b624dfe3c853a.js │ │ ├── pl.6196.3e28185b53cd2346f10d.js │ │ ├── pl.7201.028a386569caa7df9e56.js │ │ ├── pl.77.5401b8766c940f90b3e9.js │ │ ├── pl.8884.515644758428ad7e8263.js │ │ ├── prediction-clock-white.c4675d37769f1df4c9ec.png │ │ ├── prediction-failure-white.a838a6689f951970e715.png │ │ ├── prediction-success-white.2fb9966b4c0f3529a2ea.png │ │ ├── pt.2014.ac41a755cbd36fd3ce84.js │ │ ├── pt.2427.596db67d26c83197588d.js │ │ ├── pt.2684.25cb9ba0254ab5298f14.js │ │ ├── pt.3753.abc1ac9bcf134df94dec.js │ │ ├── pt.4053.929467332218f26dc70f.js │ │ ├── pt.505.978e053ffa4899c28da8.js │ │ ├── pt.5652.209eb64b624dfe3c853a.js │ │ ├── pt.6196.3e28185b53cd2346f10d.js │ │ ├── pt.7201.028a386569caa7df9e56.js │ │ ├── pt.77.5401b8766c940f90b3e9.js │ │ ├── pt.8884.515644758428ad7e8263.js │ │ ├── restricted-toolset.1b7bc1402f30983626f1.js │ │ ├── ro.2014.ac41a755cbd36fd3ce84.js │ │ ├── ro.2427.596db67d26c83197588d.js │ │ ├── ro.2684.25cb9ba0254ab5298f14.js │ │ ├── ro.3753.abc1ac9bcf134df94dec.js │ │ ├── ro.4053.929467332218f26dc70f.js │ │ ├── ro.505.978e053ffa4899c28da8.js │ │ ├── ro.5652.209eb64b624dfe3c853a.js │ │ ├── ro.6196.3e28185b53cd2346f10d.js │ │ ├── ro.7201.028a386569caa7df9e56.js │ │ ├── ro.77.5401b8766c940f90b3e9.js │ │ ├── ro.8884.515644758428ad7e8263.js │ │ ├── ru.2014.ac41a755cbd36fd3ce84.js │ │ ├── ru.2427.596db67d26c83197588d.js │ │ ├── ru.2684.25cb9ba0254ab5298f14.js │ │ ├── ru.3753.abc1ac9bcf134df94dec.js │ │ ├── ru.4053.929467332218f26dc70f.js │ │ ├── ru.505.978e053ffa4899c28da8.js │ │ ├── ru.5652.209eb64b624dfe3c853a.js │ │ ├── ru.6196.3e28185b53cd2346f10d.js │ │ ├── ru.7201.028a386569caa7df9e56.js │ │ ├── ru.77.5401b8766c940f90b3e9.js │ │ ├── ru.8884.515644758428ad7e8263.js │ │ ├── runtime.2d7205dfd0e311e18ff9.js │ │ ├── series-icons-map.6b7b2f52a18274053c99.js │ │ ├── series-pane-views.97a8e6dbe1a94532eb49.js │ │ ├── share-chart-to-social-utils.d7331dbca4a2aa0909e7.js │ │ ├── show-theme-save-dialog.d599965fb89ec8e183eb.js │ │ ├── simple-dialog.2bb0f228f3ba2ab7961a.js │ │ ├── source-properties-editor.574ad472c0635857c0e7.js │ │ ├── study-inputs-pane-views.a80a3e282aa441e156d1.js │ │ ├── study-market.9e70f3c55a48dea9582d.js │ │ ├── study-pane-views.cc5bd003161b0ea73f75.js │ │ ├── study-property-pages-with-definitions.ce85b8b8af55fc2902f6.js │ │ ├── study-template-dialog.faf557ce6d32f93e5a9a.js │ │ ├── sv.2014.ac41a755cbd36fd3ce84.js │ │ ├── sv.2427.596db67d26c83197588d.js │ │ ├── sv.2684.25cb9ba0254ab5298f14.js │ │ ├── sv.3753.abc1ac9bcf134df94dec.js │ │ ├── sv.4053.929467332218f26dc70f.js │ │ ├── sv.505.978e053ffa4899c28da8.js │ │ ├── sv.5652.209eb64b624dfe3c853a.js │ │ ├── sv.6196.3e28185b53cd2346f10d.js │ │ ├── sv.7201.028a386569caa7df9e56.js │ │ ├── sv.77.5401b8766c940f90b3e9.js │ │ ├── sv.8884.515644758428ad7e8263.js │ │ ├── svg-renderer.f065beaf6b5b37da27d9.js │ │ ├── symbol-info-dialog-impl.391e1e1a29220b089537.js │ │ ├── symbol-search-dialog.9eb046ffc9fedac1edf1.js │ │ ├── take-chart-image-impl.c0ec40f417c36a1c6179.js │ │ ├── th.2014.ac41a755cbd36fd3ce84.js │ │ ├── th.2427.596db67d26c83197588d.js │ │ ├── th.2684.25cb9ba0254ab5298f14.js │ │ ├── th.3753.abc1ac9bcf134df94dec.js │ │ ├── th.4053.929467332218f26dc70f.js │ │ ├── th.505.978e053ffa4899c28da8.js │ │ ├── th.5652.209eb64b624dfe3c853a.js │ │ ├── th.6196.3e28185b53cd2346f10d.js │ │ ├── th.7201.028a386569caa7df9e56.js │ │ ├── th.77.5401b8766c940f90b3e9.js │ │ ├── th.8884.515644758428ad7e8263.js │ │ ├── tr.2014.ac41a755cbd36fd3ce84.js │ │ ├── tr.2427.596db67d26c83197588d.js │ │ ├── tr.2684.25cb9ba0254ab5298f14.js │ │ ├── tr.3753.abc1ac9bcf134df94dec.js │ │ ├── tr.4053.929467332218f26dc70f.js │ │ ├── tr.505.978e053ffa4899c28da8.js │ │ ├── tr.5652.209eb64b624dfe3c853a.js │ │ ├── tr.6196.3e28185b53cd2346f10d.js │ │ ├── tr.7201.028a386569caa7df9e56.js │ │ ├── tr.77.5401b8766c940f90b3e9.js │ │ ├── tr.8884.515644758428ad7e8263.js │ │ ├── user-defined-bars-marks-tooltip.520f315000510aab3003.js │ │ ├── vi.2014.ac41a755cbd36fd3ce84.js │ │ ├── vi.2427.596db67d26c83197588d.js │ │ ├── vi.2684.25cb9ba0254ab5298f14.js │ │ ├── vi.3753.abc1ac9bcf134df94dec.js │ │ ├── vi.4053.929467332218f26dc70f.js │ │ ├── vi.505.978e053ffa4899c28da8.js │ │ ├── vi.5652.209eb64b624dfe3c853a.js │ │ ├── vi.6196.3e28185b53cd2346f10d.js │ │ ├── vi.7201.028a386569caa7df9e56.js │ │ ├── vi.77.5401b8766c940f90b3e9.js │ │ ├── vi.8884.515644758428ad7e8263.js │ │ ├── zh.2014.ac41a755cbd36fd3ce84.js │ │ ├── zh.2427.596db67d26c83197588d.js │ │ ├── zh.2684.25cb9ba0254ab5298f14.js │ │ ├── zh.3753.abc1ac9bcf134df94dec.js │ │ ├── zh.4053.929467332218f26dc70f.js │ │ ├── zh.505.978e053ffa4899c28da8.js │ │ ├── zh.5652.209eb64b624dfe3c853a.js │ │ ├── zh.6196.3e28185b53cd2346f10d.js │ │ ├── zh.7201.028a386569caa7df9e56.js │ │ ├── zh.77.5401b8766c940f90b3e9.js │ │ ├── zh.8884.515644758428ad7e8263.js │ │ ├── zh_TW.2014.ac41a755cbd36fd3ce84.js │ │ ├── zh_TW.2427.596db67d26c83197588d.js │ │ ├── zh_TW.2684.25cb9ba0254ab5298f14.js │ │ ├── zh_TW.3753.abc1ac9bcf134df94dec.js │ │ ├── zh_TW.4053.929467332218f26dc70f.js │ │ ├── zh_TW.505.978e053ffa4899c28da8.js │ │ ├── zh_TW.5652.209eb64b624dfe3c853a.js │ │ ├── zh_TW.6196.3e28185b53cd2346f10d.js │ │ ├── zh_TW.7201.028a386569caa7df9e56.js │ │ ├── zh_TW.77.5401b8766c940f90b3e9.js │ │ └── zh_TW.8884.515644758428ad7e8263.js │ ├── charting_library.cjs.js │ ├── charting_library.d.ts │ ├── charting_library.esm.js │ ├── charting_library.js │ ├── charting_library.standalone.js │ ├── datafeed-api.d.ts │ └── package.json ├── favicon-96x96.png ├── favicon.ico ├── favicon.svg ├── index.php ├── robots.txt ├── site.webmanifest ├── tradingview.css ├── web-app-manifest-192x192.png └── web-app-manifest-512x512.png ├── purge-dstore.sh ├── queue-worker-setup-fedora.sh ├── queue-worker-setup.sh ├── resources ├── crud-strap │ ├── enum.stub │ ├── inertia-controller.stub │ ├── migration.stub │ ├── model.stub │ ├── policy.stub │ ├── resource.stub │ ├── user.stub │ └── views │ │ ├── create.vue.stub │ │ ├── edit.vue.stub │ │ └── index.vue.stub ├── css │ ├── app.css │ ├── filepond.css │ ├── multiselect.css │ └── vcalendar-theme.css ├── js │ ├── Components │ │ ├── AddressLink.vue │ │ ├── ApplicationLogo.vue │ │ ├── ApproveTokenButton.vue │ │ ├── Banner.vue │ │ ├── BaseButton.vue │ │ ├── ChainInfo.vue │ │ ├── ChainSymbol.vue │ │ ├── Checkbox.vue │ │ ├── CollapseTransition.vue │ │ ├── ConfirmationModal.vue │ │ ├── CountDownWhite.vue │ │ ├── DangerButton.vue │ │ ├── Dropdown.vue │ │ ├── DropdownLink.vue │ │ ├── FileUploader.vue │ │ ├── FileUploaderLocal.vue │ │ ├── FormInput.vue │ │ ├── FormLabel.vue │ │ ├── FormSwitch.vue │ │ ├── FormTextArea.vue │ │ ├── InputError.vue │ │ ├── InputLabel.vue │ │ ├── LargeDecimal.vue │ │ ├── Loading.vue │ │ ├── LogoInput.vue │ │ ├── LogoInputLocal.vue │ │ ├── Modal.vue │ │ ├── Multiselect │ │ │ ├── Multiselect.vue │ │ │ ├── composables │ │ │ │ ├── useA11y.js │ │ │ │ ├── useClasses.js │ │ │ │ ├── useData.js │ │ │ │ ├── useDropdown.js │ │ │ │ ├── useI18n.js │ │ │ │ ├── useKeyboard.js │ │ │ │ ├── useMultiselect.js │ │ │ │ ├── useOptions.js │ │ │ │ ├── usePointer.js │ │ │ │ ├── usePointerAction.js │ │ │ │ ├── useScroll.js │ │ │ │ ├── useSearch.js │ │ │ │ └── useValue.js │ │ │ └── utils │ │ │ │ ├── arraysEqual.js │ │ │ │ ├── isNullish.js │ │ │ │ ├── isObject.js │ │ │ │ ├── normalize.js │ │ │ │ └── resolveDeps.js │ │ ├── NavLink.vue │ │ ├── Pagination.vue │ │ ├── PrimaryButton.vue │ │ ├── RadioCards.vue │ │ ├── RadioSelect.vue │ │ ├── ResponsiveNavLink.vue │ │ ├── SearchInput.vue │ │ ├── SecondaryButton.vue │ │ ├── SmallSwitch.vue │ │ ├── TextInput.vue │ │ ├── TxHash.vue │ │ ├── TxStatus.vue │ │ ├── VueIcon.vue │ │ ├── WeCopy.vue │ │ ├── YoutubeInput.vue │ │ ├── no-image-available-icon.jpeg │ │ └── ui │ │ │ ├── accordion │ │ │ ├── Accordion.vue │ │ │ ├── AccordionContent.vue │ │ │ ├── AccordionItem.vue │ │ │ ├── AccordionTrigger.vue │ │ │ └── index.js │ │ │ ├── alert-dialog │ │ │ ├── AlertDialog.vue │ │ │ ├── AlertDialogAction.vue │ │ │ ├── AlertDialogCancel.vue │ │ │ ├── AlertDialogContent.vue │ │ │ ├── AlertDialogDescription.vue │ │ │ ├── AlertDialogFooter.vue │ │ │ ├── AlertDialogHeader.vue │ │ │ ├── AlertDialogTitle.vue │ │ │ ├── AlertDialogTrigger.vue │ │ │ └── index.js │ │ │ ├── alert │ │ │ ├── Alert.vue │ │ │ ├── AlertDescription.vue │ │ │ ├── AlertTitle.vue │ │ │ └── index.js │ │ │ ├── aspect-ratio │ │ │ ├── AspectRatio.vue │ │ │ └── index.js │ │ │ ├── avatar │ │ │ ├── Avatar.vue │ │ │ ├── AvatarFallback.vue │ │ │ ├── AvatarImage.vue │ │ │ └── index.js │ │ │ ├── badge │ │ │ ├── Badge.vue │ │ │ └── index.js │ │ │ ├── button │ │ │ ├── Button.vue │ │ │ └── index.js │ │ │ ├── calendar │ │ │ ├── Calendar.vue │ │ │ ├── CalendarCell.vue │ │ │ ├── CalendarCellTrigger.vue │ │ │ ├── CalendarGrid.vue │ │ │ ├── CalendarGridBody.vue │ │ │ ├── CalendarGridHead.vue │ │ │ ├── CalendarGridRow.vue │ │ │ ├── CalendarHeadCell.vue │ │ │ ├── CalendarHeader.vue │ │ │ ├── CalendarHeading.vue │ │ │ ├── CalendarNextButton.vue │ │ │ ├── CalendarPrevButton.vue │ │ │ └── index.js │ │ │ ├── card │ │ │ ├── Card.vue │ │ │ ├── CardContent.vue │ │ │ ├── CardDescription.vue │ │ │ ├── CardFooter.vue │ │ │ ├── CardHeader.vue │ │ │ ├── CardTitle.vue │ │ │ └── index.js │ │ │ ├── checkbox │ │ │ ├── Checkbox.vue │ │ │ └── index.js │ │ │ ├── collapsible │ │ │ ├── Collapsible.vue │ │ │ ├── CollapsibleContent.vue │ │ │ ├── CollapsibleTrigger.vue │ │ │ └── index.js │ │ │ ├── command │ │ │ ├── Command.vue │ │ │ ├── CommandDialog.vue │ │ │ ├── CommandEmpty.vue │ │ │ ├── CommandGroup.vue │ │ │ ├── CommandInput.vue │ │ │ ├── CommandItem.vue │ │ │ ├── CommandList.vue │ │ │ ├── CommandSeparator.vue │ │ │ ├── CommandShortcut.vue │ │ │ └── index.js │ │ │ ├── context-menu │ │ │ ├── ContextMenu.vue │ │ │ ├── ContextMenuCheckboxItem.vue │ │ │ ├── ContextMenuContent.vue │ │ │ ├── ContextMenuGroup.vue │ │ │ ├── ContextMenuItem.vue │ │ │ ├── ContextMenuLabel.vue │ │ │ ├── ContextMenuPortal.vue │ │ │ ├── ContextMenuRadioGroup.vue │ │ │ ├── ContextMenuRadioItem.vue │ │ │ ├── ContextMenuSeparator.vue │ │ │ ├── ContextMenuShortcut.vue │ │ │ ├── ContextMenuSub.vue │ │ │ ├── ContextMenuSubContent.vue │ │ │ ├── ContextMenuSubTrigger.vue │ │ │ ├── ContextMenuTrigger.vue │ │ │ └── index.js │ │ │ ├── dialog │ │ │ ├── Dialog.vue │ │ │ ├── DialogClose.vue │ │ │ ├── DialogContent.vue │ │ │ ├── DialogDescription.vue │ │ │ ├── DialogFooter.vue │ │ │ ├── DialogHeader.vue │ │ │ ├── DialogScrollContent.vue │ │ │ ├── DialogTitle.vue │ │ │ ├── DialogTrigger.vue │ │ │ └── index.js │ │ │ ├── dropdown-menu │ │ │ ├── DropdownMenu.vue │ │ │ ├── DropdownMenuCheckboxItem.vue │ │ │ ├── DropdownMenuContent.vue │ │ │ ├── DropdownMenuGroup.vue │ │ │ ├── DropdownMenuItem.vue │ │ │ ├── DropdownMenuLabel.vue │ │ │ ├── DropdownMenuRadioGroup.vue │ │ │ ├── DropdownMenuRadioItem.vue │ │ │ ├── DropdownMenuSeparator.vue │ │ │ ├── DropdownMenuShortcut.vue │ │ │ ├── DropdownMenuSub.vue │ │ │ ├── DropdownMenuSubContent.vue │ │ │ ├── DropdownMenuSubTrigger.vue │ │ │ ├── DropdownMenuTrigger.vue │ │ │ └── index.js │ │ │ ├── form │ │ │ ├── FormControl.vue │ │ │ ├── FormDescription.vue │ │ │ ├── FormItem.vue │ │ │ ├── FormLabel.vue │ │ │ ├── FormMessage.vue │ │ │ ├── index.js │ │ │ ├── injectionKeys.js │ │ │ └── useFormField.js │ │ │ ├── hover-card │ │ │ ├── HoverCard.vue │ │ │ ├── HoverCardContent.vue │ │ │ ├── HoverCardTrigger.vue │ │ │ └── index.js │ │ │ ├── input │ │ │ ├── Input.vue │ │ │ └── index.js │ │ │ ├── label │ │ │ ├── Label.vue │ │ │ └── index.js │ │ │ ├── menubar │ │ │ ├── Menubar.vue │ │ │ ├── MenubarCheckboxItem.vue │ │ │ ├── MenubarContent.vue │ │ │ ├── MenubarGroup.vue │ │ │ ├── MenubarItem.vue │ │ │ ├── MenubarLabel.vue │ │ │ ├── MenubarMenu.vue │ │ │ ├── MenubarRadioGroup.vue │ │ │ ├── MenubarRadioItem.vue │ │ │ ├── MenubarSeparator.vue │ │ │ ├── MenubarShortcut.vue │ │ │ ├── MenubarSub.vue │ │ │ ├── MenubarSubContent.vue │ │ │ ├── MenubarSubTrigger.vue │ │ │ ├── MenubarTrigger.vue │ │ │ └── index.js │ │ │ ├── navigation-menu │ │ │ ├── NavigationMenu.vue │ │ │ ├── NavigationMenuContent.vue │ │ │ ├── NavigationMenuIndicator.vue │ │ │ ├── NavigationMenuItem.vue │ │ │ ├── NavigationMenuLink.vue │ │ │ ├── NavigationMenuList.vue │ │ │ ├── NavigationMenuTrigger.vue │ │ │ ├── NavigationMenuViewport.vue │ │ │ └── index.js │ │ │ ├── popover │ │ │ ├── Popover.vue │ │ │ ├── PopoverContent.vue │ │ │ ├── PopoverTrigger.vue │ │ │ └── index.js │ │ │ ├── progress │ │ │ ├── Progress.vue │ │ │ └── index.js │ │ │ ├── radio-group │ │ │ ├── RadioGroup.vue │ │ │ ├── RadioGroupItem.vue │ │ │ └── index.js │ │ │ ├── scroll-area │ │ │ ├── ScrollArea.vue │ │ │ ├── ScrollBar.vue │ │ │ └── index.js │ │ │ ├── select │ │ │ ├── Select.vue │ │ │ ├── SelectContent.vue │ │ │ ├── SelectGroup.vue │ │ │ ├── SelectItem.vue │ │ │ ├── SelectItemText.vue │ │ │ ├── SelectLabel.vue │ │ │ ├── SelectScrollDownButton.vue │ │ │ ├── SelectScrollUpButton.vue │ │ │ ├── SelectSeparator.vue │ │ │ ├── SelectTrigger.vue │ │ │ ├── SelectValue.vue │ │ │ └── index.js │ │ │ ├── separator │ │ │ ├── Separator.vue │ │ │ └── index.js │ │ │ ├── sheet │ │ │ ├── Sheet.vue │ │ │ ├── SheetClose.vue │ │ │ ├── SheetContent.vue │ │ │ ├── SheetDescription.vue │ │ │ ├── SheetFooter.vue │ │ │ ├── SheetHeader.vue │ │ │ ├── SheetTitle.vue │ │ │ ├── SheetTrigger.vue │ │ │ └── index.js │ │ │ ├── skeleton │ │ │ ├── Skeleton.vue │ │ │ └── index.js │ │ │ ├── slider │ │ │ ├── Slider.vue │ │ │ └── index.js │ │ │ ├── switch │ │ │ ├── Switch.vue │ │ │ └── index.js │ │ │ ├── table │ │ │ ├── Table.vue │ │ │ ├── TableBody.vue │ │ │ ├── TableCaption.vue │ │ │ ├── TableCell.vue │ │ │ ├── TableEmpty.vue │ │ │ ├── TableFooter.vue │ │ │ ├── TableHead.vue │ │ │ ├── TableHeader.vue │ │ │ ├── TableRow.vue │ │ │ └── index.js │ │ │ ├── tabs │ │ │ ├── Tabs.vue │ │ │ ├── TabsContent.vue │ │ │ ├── TabsList.vue │ │ │ ├── TabsTrigger.vue │ │ │ └── index.js │ │ │ ├── textarea │ │ │ ├── Textarea.vue │ │ │ └── index.js │ │ │ ├── toast │ │ │ ├── Toast.vue │ │ │ ├── ToastAction.vue │ │ │ ├── ToastClose.vue │ │ │ ├── ToastDescription.vue │ │ │ ├── ToastProvider.vue │ │ │ ├── ToastTitle.vue │ │ │ ├── ToastViewport.vue │ │ │ ├── Toaster.vue │ │ │ ├── index.js │ │ │ └── use-toast.js │ │ │ ├── toggle │ │ │ ├── Toggle.vue │ │ │ └── index.js │ │ │ └── tooltip │ │ │ ├── Tooltip.vue │ │ │ ├── TooltipContent.vue │ │ │ ├── TooltipProvider.vue │ │ │ ├── TooltipTrigger.vue │ │ │ └── index.js │ ├── Icons │ │ ├── CoinbaseWalletIcon.vue │ │ ├── EtherscanIcon.vue │ │ ├── GasIcon.vue │ │ ├── GnosisSafeIcon.vue │ │ ├── MediumIcon.vue │ │ ├── MetamaskIcon.vue │ │ ├── NetworkIcon.vue │ │ ├── TrustWalletIcon.vue │ │ ├── TwitterIcon.vue │ │ ├── WalletConnectIcon.vue │ │ ├── WalletIcon.vue │ │ ├── YoutubeIcon.vue │ │ ├── index.js │ │ └── network │ │ │ └── svg │ │ │ ├── Metis.svg │ │ │ ├── arbitrum-nova.svg │ │ │ ├── arbitrum.svg │ │ │ ├── aurora.svg │ │ │ ├── avax.svg │ │ │ ├── base.svg │ │ │ ├── binance.svg │ │ │ ├── blast.svg │ │ │ ├── boba.svg │ │ │ ├── celo.svg │ │ │ ├── cronos.svg │ │ │ ├── ethereum.svg │ │ │ ├── ftm.svg │ │ │ ├── fuse.svg │ │ │ ├── gnosis.svg │ │ │ ├── harmony.svg │ │ │ ├── hoo.svg │ │ │ ├── huobi.svg │ │ │ ├── index.js │ │ │ ├── iotex.svg │ │ │ ├── kava.svg │ │ │ ├── linea.svg │ │ │ ├── moonbeam.svg │ │ │ ├── moonriver.svg │ │ │ ├── okex.svg │ │ │ ├── optimism.svg │ │ │ ├── palm.svg │ │ │ ├── polygon.svg │ │ │ ├── syscoin.svg │ │ │ ├── telos.png │ │ │ ├── worldchain.svg │ │ │ ├── zksync.svg │ │ │ └── zora.png │ ├── Layouts │ │ ├── AdminLayout.vue │ │ ├── AppLayout.vue │ │ ├── AppLayout │ │ │ ├── FlashMessages.vue │ │ │ ├── Footer.vue │ │ │ ├── HowItWorksModal.vue │ │ │ ├── ModalListItem.vue │ │ │ └── TopNav.vue │ │ ├── AuthenticatedLayout.vue │ │ └── GuestLayout.vue │ ├── Pages │ │ ├── Admin │ │ │ ├── Dashboard.vue │ │ │ ├── Dashboard │ │ │ │ ├── History.vue │ │ │ │ ├── LatestUsers.vue │ │ │ │ ├── Mail │ │ │ │ │ ├── LaravelMailGun.vue │ │ │ │ │ ├── LaravelMailersend.vue │ │ │ │ │ ├── LaravelPostmark.vue │ │ │ │ │ ├── LaravelResend.vue │ │ │ │ │ └── LaravelSmtp.vue │ │ │ │ ├── MailSettings.vue │ │ │ │ ├── OrderBadge.vue │ │ │ │ ├── SiteSettings.vue │ │ │ │ └── btc.svg │ │ │ ├── Factories │ │ │ │ ├── Create.vue │ │ │ │ ├── CreateForm.vue │ │ │ │ ├── Edit.vue │ │ │ │ └── Index.vue │ │ │ ├── Holders │ │ │ │ ├── Create.vue │ │ │ │ ├── Edit.vue │ │ │ │ └── Index.vue │ │ │ ├── Launchpads │ │ │ │ └── Index.vue │ │ │ ├── Msgs │ │ │ │ └── Index.vue │ │ │ ├── Promos │ │ │ │ ├── Create.vue │ │ │ │ ├── Edit.vue │ │ │ │ └── Index.vue │ │ │ ├── Trades │ │ │ │ └── Index.vue │ │ │ └── Users │ │ │ │ └── Index.vue │ │ ├── Auth │ │ │ ├── AuthLink.vue │ │ │ ├── AuthModal.vue │ │ │ ├── OtpInput.vue │ │ │ └── Web3Auth.vue │ │ ├── Install │ │ │ ├── Layout.vue │ │ │ └── Steps │ │ │ │ ├── Environment copy.vue │ │ │ │ ├── Environment.vue │ │ │ │ ├── Final.vue │ │ │ │ ├── Permissions.vue │ │ │ │ ├── Requirements.vue │ │ │ │ └── Welcome.vue │ │ ├── Launchpads │ │ │ ├── AnimationsRow.vue │ │ │ ├── BarButton.vue │ │ │ ├── Chat.vue │ │ │ ├── Create.vue │ │ │ ├── IndexCard.vue │ │ │ ├── RecentTrade.vue │ │ │ ├── Show.vue │ │ │ └── TradingView │ │ │ │ ├── ArrowLeftRight.vue │ │ │ │ ├── BuyCard.vue │ │ │ │ ├── DevStream.vue │ │ │ │ ├── Holders.vue │ │ │ │ ├── Info.vue │ │ │ │ ├── LockCard.vue │ │ │ │ ├── Progress.vue │ │ │ │ ├── Trades.vue │ │ │ │ ├── TradingStats.vue │ │ │ │ ├── TradingView.vue │ │ │ │ ├── TradingViewChart.vue │ │ │ │ ├── UniswapGraph.vue │ │ │ │ └── charting_library │ │ │ │ ├── bundles │ │ │ │ ├── 1013.8bf558e5776449ee9b26.css │ │ │ │ ├── 1013.8bf558e5776449ee9b26.rtl.css │ │ │ │ ├── 1033.5197f9f8b8500206d06c.css │ │ │ │ ├── 1033.5197f9f8b8500206d06c.rtl.css │ │ │ │ ├── 1054.53487a2be7f0ef3c0ac6.css │ │ │ │ ├── 1054.53487a2be7f0ef3c0ac6.rtl.css │ │ │ │ ├── 1109.ec16a629917db2baf412.css │ │ │ │ ├── 1109.ec16a629917db2baf412.rtl.css │ │ │ │ ├── 1365.0116666d16b5bc64c47a.css │ │ │ │ ├── 1365.0116666d16b5bc64c47a.rtl.css │ │ │ │ ├── 1553.c076714f5e24887f0b94.js │ │ │ │ ├── 1762.7ff6b353c441db2276da.css │ │ │ │ ├── 1762.7ff6b353c441db2276da.rtl.css │ │ │ │ ├── 1849.aa435f081ad57a6d0121.css │ │ │ │ ├── 1849.aa435f081ad57a6d0121.rtl.css │ │ │ │ ├── 1958.5ca25f504685c5c94792.js │ │ │ │ ├── 2109.39627406fe95483ff7db.css │ │ │ │ ├── 2109.39627406fe95483ff7db.rtl.css │ │ │ │ ├── 2158.4b603780e909661194b1.js │ │ │ │ ├── 218.249783b12e388c783204.css │ │ │ │ ├── 218.249783b12e388c783204.rtl.css │ │ │ │ ├── 2191.4be2f56dab5aeadfe0eb.css │ │ │ │ ├── 2191.4be2f56dab5aeadfe0eb.rtl.css │ │ │ │ ├── 2215.e87235d359e4c375c7b9.js │ │ │ │ ├── 2260.b98824e4829a1aa9b444.css │ │ │ │ ├── 2260.b98824e4829a1aa9b444.rtl.css │ │ │ │ ├── 2587.1403c0d79d2217a73053.css │ │ │ │ ├── 2587.1403c0d79d2217a73053.rtl.css │ │ │ │ ├── 2639.86605a3197db99aca0f7.css │ │ │ │ ├── 2639.86605a3197db99aca0f7.rtl.css │ │ │ │ ├── 2666.fbb750fd312778403036.css │ │ │ │ ├── 2666.fbb750fd312778403036.rtl.css │ │ │ │ ├── 2676.2d3cabbd39a3b0d6e9ea.css │ │ │ │ ├── 2676.2d3cabbd39a3b0d6e9ea.rtl.css │ │ │ │ ├── 2731.e35a685bdfdffcff2797.css │ │ │ │ ├── 2731.e35a685bdfdffcff2797.rtl.css │ │ │ │ ├── 2842.61ec1448858319f48d5a.js │ │ │ │ ├── 2984.4082296827cdc2ce3974.css │ │ │ │ ├── 2984.4082296827cdc2ce3974.rtl.css │ │ │ │ ├── 3016.1dc744fe35e3e3b00f00.js │ │ │ │ ├── 3066.dc07d1c6b25360d267dd.css │ │ │ │ ├── 3066.dc07d1c6b25360d267dd.rtl.css │ │ │ │ ├── 3179.f9de135d1febd7be2652.js │ │ │ │ ├── 3291.99dfe1742621fe5892b1.js │ │ │ │ ├── 3502.c49903f7222870ff8aca.css │ │ │ │ ├── 3502.c49903f7222870ff8aca.rtl.css │ │ │ │ ├── 3610.609aa04cdd061440d0ef.css │ │ │ │ ├── 3610.609aa04cdd061440d0ef.rtl.css │ │ │ │ ├── 3717.cccda056797616f8ac78.css │ │ │ │ ├── 3717.cccda056797616f8ac78.rtl.css │ │ │ │ ├── 3842.6a8a7842ee841f6d2cff.css │ │ │ │ ├── 3842.6a8a7842ee841f6d2cff.rtl.css │ │ │ │ ├── 3889.a2646d6c3b33d166eee2.css │ │ │ │ ├── 3889.a2646d6c3b33d166eee2.rtl.css │ │ │ │ ├── 3980.f4c75de9958b6594bac6.css │ │ │ │ ├── 3980.f4c75de9958b6594bac6.rtl.css │ │ │ │ ├── 3986.2611a114cb0cc5d3d639.js │ │ │ │ ├── 4015.1d0e3a62a59d173c81f3.css │ │ │ │ ├── 4015.1d0e3a62a59d173c81f3.rtl.css │ │ │ │ ├── 4062.9229fac3ef3db26fd5bc.js │ │ │ │ ├── 4215.d24836a292b1969ab4bb.css │ │ │ │ ├── 4215.d24836a292b1969ab4bb.rtl.css │ │ │ │ ├── 4378.36f45309c7af8e3cbf38.js │ │ │ │ ├── 4387.04308bdc36942462914c.css │ │ │ │ ├── 4387.04308bdc36942462914c.rtl.css │ │ │ │ ├── 4403.fc4cac3ecee3925b9ec2.js │ │ │ │ ├── 4713.e40c2c44bf79ceb73d67.js │ │ │ │ ├── 4717.48fa365046162fcf8939.js │ │ │ │ ├── 4894.670543ec1a8c4786a3a0.css │ │ │ │ ├── 4894.670543ec1a8c4786a3a0.rtl.css │ │ │ │ ├── 4928.4a1b6faf9161be473ce9.css │ │ │ │ ├── 4928.4a1b6faf9161be473ce9.rtl.css │ │ │ │ ├── 4987.9eeb86c4d3cfacadc52c.css │ │ │ │ ├── 4987.9eeb86c4d3cfacadc52c.rtl.css │ │ │ │ ├── 5007.fba5211a5d34374a0759.js │ │ │ │ ├── 5050.ab76a0ed297bdbf8d13f.js │ │ │ │ ├── 5145.a2b224fd27ab2941c565.css │ │ │ │ ├── 5145.a2b224fd27ab2941c565.rtl.css │ │ │ │ ├── 5163.b9129281858e3f6afb05.css │ │ │ │ ├── 5163.b9129281858e3f6afb05.rtl.css │ │ │ │ ├── 5403.28a935ee45ece03c1da9.css │ │ │ │ ├── 5403.28a935ee45ece03c1da9.rtl.css │ │ │ │ ├── 5649.b60ed09c5ea8c55827d4.css │ │ │ │ ├── 5649.b60ed09c5ea8c55827d4.rtl.css │ │ │ │ ├── 5711.85a69ca8e546ea6966e9.js │ │ │ │ ├── 5866.c89b7fc29afe92efc1f3.css │ │ │ │ ├── 5866.c89b7fc29afe92efc1f3.rtl.css │ │ │ │ ├── 5871.bc27dc50e79bd2545e97.js │ │ │ │ ├── 5899.49534f304fa5f1815584.js │ │ │ │ ├── 5901.e7195b28a21254f01dd4.js │ │ │ │ ├── 5993.31e4b81e8ea99883150e.css │ │ │ │ ├── 5993.31e4b81e8ea99883150e.rtl.css │ │ │ │ ├── 6.362fa6a7ab1f3e3b06c4.css │ │ │ │ ├── 6.362fa6a7ab1f3e3b06c4.rtl.css │ │ │ │ ├── 6025.263b457b1a7f9ca139b2.css │ │ │ │ ├── 6025.263b457b1a7f9ca139b2.rtl.css │ │ │ │ ├── 6036.069ebb4bad0f5dd27147.css │ │ │ │ ├── 6036.069ebb4bad0f5dd27147.rtl.css │ │ │ │ ├── 6106.cf6f129517250c80b39f.css │ │ │ │ ├── 6106.cf6f129517250c80b39f.rtl.css │ │ │ │ ├── 6151.b1a247016649e9fadde0.js │ │ │ │ ├── 6214.65b7dbf8be6cca5ac143.css │ │ │ │ ├── 6214.65b7dbf8be6cca5ac143.rtl.css │ │ │ │ ├── 6221.5c115302948a4482dfc1.css │ │ │ │ ├── 6221.5c115302948a4482dfc1.rtl.css │ │ │ │ ├── 6494.f36c8c07be959ab522bb.css │ │ │ │ ├── 6494.f36c8c07be959ab522bb.rtl.css │ │ │ │ ├── 6625.eb019e3a6facc625daff.css │ │ │ │ ├── 6625.eb019e3a6facc625daff.rtl.css │ │ │ │ ├── 6639.2c6ed608ae2da878c517.css │ │ │ │ ├── 6639.2c6ed608ae2da878c517.rtl.css │ │ │ │ ├── 6752.207eb3cc75b3ed2c6754.css │ │ │ │ ├── 6752.207eb3cc75b3ed2c6754.rtl.css │ │ │ │ ├── 6783.6a1bfc6cd105f6a266ca.css │ │ │ │ ├── 6783.6a1bfc6cd105f6a266ca.rtl.css │ │ │ │ ├── 6831.ac1745947bd2665f6c9a.css │ │ │ │ ├── 6831.ac1745947bd2665f6c9a.rtl.css │ │ │ │ ├── 6884.bb7d30a7bbbe5af36556.css │ │ │ │ ├── 6884.bb7d30a7bbbe5af36556.rtl.css │ │ │ │ ├── 6949.6b6148a8f15c8898c9e9.css │ │ │ │ ├── 6949.6b6148a8f15c8898c9e9.rtl.css │ │ │ │ ├── 6959.b688f948e1f896f359ed.css │ │ │ │ ├── 6959.b688f948e1f896f359ed.rtl.css │ │ │ │ ├── 7111.2382715e5643d27ea88a.css │ │ │ │ ├── 7111.2382715e5643d27ea88a.rtl.css │ │ │ │ ├── 7149.5233dd4b27b2f1bea43f.css │ │ │ │ ├── 7149.5233dd4b27b2f1bea43f.rtl.css │ │ │ │ ├── 7194.e04f69c8933166966874.css │ │ │ │ ├── 7194.e04f69c8933166966874.rtl.css │ │ │ │ ├── 7350.a9502dc8f01e37d9fa02.css │ │ │ │ ├── 7350.a9502dc8f01e37d9fa02.rtl.css │ │ │ │ ├── 7391.9c809fa91ed0c8f75bc0.css │ │ │ │ ├── 7391.9c809fa91ed0c8f75bc0.rtl.css │ │ │ │ ├── 7413.f830ad1ad6ee6f9b1cb3.css │ │ │ │ ├── 7413.f830ad1ad6ee6f9b1cb3.rtl.css │ │ │ │ ├── 7555.c7630ad44b7d7a2f8a0c.css │ │ │ │ ├── 7555.c7630ad44b7d7a2f8a0c.rtl.css │ │ │ │ ├── 7871.cb99fc4ec9bbe0895a26.css │ │ │ │ ├── 7871.cb99fc4ec9bbe0895a26.rtl.css │ │ │ │ ├── 8049.5e06299815b664b331e2.css │ │ │ │ ├── 8049.5e06299815b664b331e2.rtl.css │ │ │ │ ├── 8056.82b5717ea9f014c8ca2d.css │ │ │ │ ├── 8056.82b5717ea9f014c8ca2d.rtl.css │ │ │ │ ├── 8149.21f2b01074a4d082e268.css │ │ │ │ ├── 8149.21f2b01074a4d082e268.rtl.css │ │ │ │ ├── 8167.ddf1e0f7ca2caf9285fe.js │ │ │ │ ├── 8180.640f9faeb3f5f9fa190f.js │ │ │ │ ├── 84.d345a68da9c285edb24f.css │ │ │ │ ├── 84.d345a68da9c285edb24f.rtl.css │ │ │ │ ├── 855.eac699ce13c5f226e490.css │ │ │ │ ├── 855.eac699ce13c5f226e490.rtl.css │ │ │ │ ├── 8904.a302177fe7e3ccd50cb0.css │ │ │ │ ├── 8904.a302177fe7e3ccd50cb0.rtl.css │ │ │ │ ├── 898.3efb27a9750af83ed9c6.css │ │ │ │ ├── 898.3efb27a9750af83ed9c6.rtl.css │ │ │ │ ├── 9138.c6bf63d3695b7e98a4e1.css │ │ │ │ ├── 9138.c6bf63d3695b7e98a4e1.rtl.css │ │ │ │ ├── 9322.3d936c180e77685183dd.css │ │ │ │ ├── 9322.3d936c180e77685183dd.rtl.css │ │ │ │ ├── 9327.cb8f92015e0b667cbd6e.css │ │ │ │ ├── 9327.cb8f92015e0b667cbd6e.rtl.css │ │ │ │ ├── 962.e2eb6a85de39a3d76e5d.js │ │ │ │ ├── 9727.59df6902f69a26f0225a.js │ │ │ │ ├── 9789.cb5ad20bc727d3820b6c.css │ │ │ │ ├── 9789.cb5ad20bc727d3820b6c.rtl.css │ │ │ │ ├── 9842.dde7652ee3c148414acf.css │ │ │ │ ├── 9842.dde7652ee3c148414acf.rtl.css │ │ │ │ ├── 9916.d034c6ed4305c99b15ce.css │ │ │ │ ├── 9916.d034c6ed4305c99b15ce.rtl.css │ │ │ │ ├── EuclidCircular.be8f862db48c2976009f.woff2 │ │ │ │ ├── add-compare-dialog.fd9f91929c939a260ad3.js │ │ │ │ ├── ar.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ar.2427.596db67d26c83197588d.js │ │ │ │ ├── ar.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ar.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ar.4053.929467332218f26dc70f.js │ │ │ │ ├── ar.505.978e053ffa4899c28da8.js │ │ │ │ ├── ar.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ar.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ar.7201.028a386569caa7df9e56.js │ │ │ │ ├── ar.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ar.8884.515644758428ad7e8263.js │ │ │ │ ├── ca_ES.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ca_ES.2427.596db67d26c83197588d.js │ │ │ │ ├── ca_ES.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ca_ES.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ca_ES.4053.929467332218f26dc70f.js │ │ │ │ ├── ca_ES.505.978e053ffa4899c28da8.js │ │ │ │ ├── ca_ES.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ca_ES.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ca_ES.7201.028a386569caa7df9e56.js │ │ │ │ ├── ca_ES.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ca_ES.8884.515644758428ad7e8263.js │ │ │ │ ├── change-interval-dialog.297f80c00bf8731bd9fb.js │ │ │ │ ├── chart-bottom-toolbar.744ccf6a4674f31cb2ea.js │ │ │ │ ├── chart-event-hint.b2c7a312767fa4f97aa5.js │ │ │ │ ├── chart-screenshot-hint.ebff97a1a4b1c5914bdd.js │ │ │ │ ├── chart-widget-gui.27649072aafee4246ec8.js │ │ │ │ ├── compare-model.c3a2bff7c7c12b7ebc38.js │ │ │ │ ├── context-menu-renderer.d6dfc888e4d8fe785fa7.js │ │ │ │ ├── cs.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── cs.2427.596db67d26c83197588d.js │ │ │ │ ├── cs.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── cs.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── cs.4053.929467332218f26dc70f.js │ │ │ │ ├── cs.505.978e053ffa4899c28da8.js │ │ │ │ ├── cs.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── cs.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── cs.7201.028a386569caa7df9e56.js │ │ │ │ ├── cs.77.5401b8766c940f90b3e9.js │ │ │ │ ├── cs.8884.515644758428ad7e8263.js │ │ │ │ ├── currency-label-menu.58ca1d91873babec49b8.js │ │ │ │ ├── custom-intervals-add-dialog.1d320236ba24da2e3a2f.js │ │ │ │ ├── de.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── de.2427.596db67d26c83197588d.js │ │ │ │ ├── de.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── de.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── de.4053.929467332218f26dc70f.js │ │ │ │ ├── de.505.978e053ffa4899c28da8.js │ │ │ │ ├── de.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── de.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── de.7201.028a386569caa7df9e56.js │ │ │ │ ├── de.77.5401b8766c940f90b3e9.js │ │ │ │ ├── de.8884.515644758428ad7e8263.js │ │ │ │ ├── dot.3d617b6b01edba83a7f4.cur │ │ │ │ ├── drawing-toolbar.41ed460b4ed63c37a623.js │ │ │ │ ├── el.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── el.2427.596db67d26c83197588d.js │ │ │ │ ├── el.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── el.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── el.4053.929467332218f26dc70f.js │ │ │ │ ├── el.505.978e053ffa4899c28da8.js │ │ │ │ ├── el.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── el.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── el.7201.028a386569caa7df9e56.js │ │ │ │ ├── el.77.5401b8766c940f90b3e9.js │ │ │ │ ├── el.8884.515644758428ad7e8263.js │ │ │ │ ├── en.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── en.2427.596db67d26c83197588d.js │ │ │ │ ├── en.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── en.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── en.4053.929467332218f26dc70f.js │ │ │ │ ├── en.505.978e053ffa4899c28da8.js │ │ │ │ ├── en.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── en.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── en.7201.028a386569caa7df9e56.js │ │ │ │ ├── en.77.5401b8766c940f90b3e9.js │ │ │ │ ├── en.8884.515644758428ad7e8263.js │ │ │ │ ├── eraser.c80610a04a92d2465b03.cur │ │ │ │ ├── es.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── es.2427.596db67d26c83197588d.js │ │ │ │ ├── es.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── es.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── es.4053.929467332218f26dc70f.js │ │ │ │ ├── es.505.978e053ffa4899c28da8.js │ │ │ │ ├── es.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── es.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── es.7201.028a386569caa7df9e56.js │ │ │ │ ├── es.77.5401b8766c940f90b3e9.js │ │ │ │ ├── es.8884.515644758428ad7e8263.js │ │ │ │ ├── export-data.02a7668fbb079d66566d.js │ │ │ │ ├── fa.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── fa.2427.596db67d26c83197588d.js │ │ │ │ ├── fa.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── fa.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── fa.4053.929467332218f26dc70f.js │ │ │ │ ├── fa.505.978e053ffa4899c28da8.js │ │ │ │ ├── fa.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── fa.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── fa.7201.028a386569caa7df9e56.js │ │ │ │ ├── fa.77.5401b8766c940f90b3e9.js │ │ │ │ ├── fa.8884.515644758428ad7e8263.js │ │ │ │ ├── favorite-drawings-api.685c412f518848b85b89.js │ │ │ │ ├── flag-square-mock-dark.16b5f3a431f502b03ae3.svg │ │ │ │ ├── flag-square-mock.d201313017eb2c1b989f.svg │ │ │ │ ├── floating-toolbars.6db0236a7aedcdedac97.js │ │ │ │ ├── fr.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── fr.2427.596db67d26c83197588d.js │ │ │ │ ├── fr.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── fr.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── fr.4053.929467332218f26dc70f.js │ │ │ │ ├── fr.505.978e053ffa4899c28da8.js │ │ │ │ ├── fr.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── fr.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── fr.7201.028a386569caa7df9e56.js │ │ │ │ ├── fr.77.5401b8766c940f90b3e9.js │ │ │ │ ├── fr.8884.515644758428ad7e8263.js │ │ │ │ ├── full-tooltips-popup.0fccf890139dbb10791b.js │ │ │ │ ├── general-chart-properties-dialog.82cac28ab24654c72a42.js │ │ │ │ ├── general-property-page.b320e14febaf0719a734.js │ │ │ │ ├── get-error-card.6635b794027eb9971ec9.js │ │ │ │ ├── go-to-date-dialog-impl.4aa6daee1b7dcb2f2f62.js │ │ │ │ ├── hammerjs.6e30e0c48af40bf2f6c0.js │ │ │ │ ├── he_IL.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── he_IL.2427.596db67d26c83197588d.js │ │ │ │ ├── he_IL.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── he_IL.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── he_IL.4053.929467332218f26dc70f.js │ │ │ │ ├── he_IL.505.978e053ffa4899c28da8.js │ │ │ │ ├── he_IL.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── he_IL.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── he_IL.7201.028a386569caa7df9e56.js │ │ │ │ ├── he_IL.77.5401b8766c940f90b3e9.js │ │ │ │ ├── he_IL.8884.515644758428ad7e8263.js │ │ │ │ ├── header-toolbar.80a73372e759c9cc0b8e.js │ │ │ │ ├── hu_HU.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── hu_HU.2427.596db67d26c83197588d.js │ │ │ │ ├── hu_HU.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── hu_HU.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── hu_HU.4053.929467332218f26dc70f.js │ │ │ │ ├── hu_HU.505.978e053ffa4899c28da8.js │ │ │ │ ├── hu_HU.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── hu_HU.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── hu_HU.7201.028a386569caa7df9e56.js │ │ │ │ ├── hu_HU.77.5401b8766c940f90b3e9.js │ │ │ │ ├── hu_HU.8884.515644758428ad7e8263.js │ │ │ │ ├── icons.4d39018d0766cf7006bc.png │ │ │ │ ├── id_ID.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── id_ID.2427.596db67d26c83197588d.js │ │ │ │ ├── id_ID.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── id_ID.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── id_ID.4053.929467332218f26dc70f.js │ │ │ │ ├── id_ID.505.978e053ffa4899c28da8.js │ │ │ │ ├── id_ID.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── id_ID.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── id_ID.7201.028a386569caa7df9e56.js │ │ │ │ ├── id_ID.77.5401b8766c940f90b3e9.js │ │ │ │ ├── id_ID.8884.515644758428ad7e8263.js │ │ │ │ ├── it.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── it.2427.596db67d26c83197588d.js │ │ │ │ ├── it.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── it.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── it.4053.929467332218f26dc70f.js │ │ │ │ ├── it.505.978e053ffa4899c28da8.js │ │ │ │ ├── it.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── it.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── it.7201.028a386569caa7df9e56.js │ │ │ │ ├── it.77.5401b8766c940f90b3e9.js │ │ │ │ ├── it.8884.515644758428ad7e8263.js │ │ │ │ ├── ja.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ja.2427.596db67d26c83197588d.js │ │ │ │ ├── ja.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ja.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ja.4053.929467332218f26dc70f.js │ │ │ │ ├── ja.505.978e053ffa4899c28da8.js │ │ │ │ ├── ja.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ja.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ja.7201.028a386569caa7df9e56.js │ │ │ │ ├── ja.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ja.8884.515644758428ad7e8263.js │ │ │ │ ├── ko.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ko.2427.596db67d26c83197588d.js │ │ │ │ ├── ko.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ko.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ko.4053.929467332218f26dc70f.js │ │ │ │ ├── ko.505.978e053ffa4899c28da8.js │ │ │ │ ├── ko.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ko.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ko.7201.028a386569caa7df9e56.js │ │ │ │ ├── ko.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ko.8884.515644758428ad7e8263.js │ │ │ │ ├── large-slider-handle.18e9ee5923db4eac2c43.svg │ │ │ │ ├── library.f735e5630512a49de4f4.js │ │ │ │ ├── line-tools-icons.ec9907a13590a74ff995.js │ │ │ │ ├── linewidth-slider.8e3d0520d28ce8259ccf.png │ │ │ │ ├── load-chart-dialog.2bc8d3998e1a2392ad03.js │ │ │ │ ├── lollipop-tooltip-renderer.cbacd2a74fa2249c23ad.js │ │ │ │ ├── lt-icons-atlas.aceb77470f3039ad2f63.js │ │ │ │ ├── lt-pane-views.fe06b5162a88616539a9.js │ │ │ │ ├── lt-property-pages-with-definitions.33f2eb46049d6d74ca06.js │ │ │ │ ├── lt-stickers-atlas.52ad6e6d7d7b134ab0ba.js │ │ │ │ ├── manage-drawings-dialog.3f5b604134bebba28c6c.js │ │ │ │ ├── ms_MY.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ms_MY.2427.596db67d26c83197588d.js │ │ │ │ ├── ms_MY.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ms_MY.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ms_MY.4053.929467332218f26dc70f.js │ │ │ │ ├── ms_MY.505.978e053ffa4899c28da8.js │ │ │ │ ├── ms_MY.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ms_MY.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ms_MY.7201.028a386569caa7df9e56.js │ │ │ │ ├── ms_MY.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ms_MY.8884.515644758428ad7e8263.js │ │ │ │ ├── new-confirm-inputs-dialog.700f756efb60fe024812.js │ │ │ │ ├── new-edit-object-dialog.ea1d15219003b54e9f1c.js │ │ │ │ ├── nl_NL.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── nl_NL.2427.596db67d26c83197588d.js │ │ │ │ ├── nl_NL.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── nl_NL.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── nl_NL.4053.929467332218f26dc70f.js │ │ │ │ ├── nl_NL.505.978e053ffa4899c28da8.js │ │ │ │ ├── nl_NL.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── nl_NL.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── nl_NL.7201.028a386569caa7df9e56.js │ │ │ │ ├── nl_NL.77.5401b8766c940f90b3e9.js │ │ │ │ ├── nl_NL.8884.515644758428ad7e8263.js │ │ │ │ ├── object-tree-dialog.e45c37aa49fc3245f8f0.js │ │ │ │ ├── opacity-pattern.4d8fbb552dde3db26f4a.svg │ │ │ │ ├── opacity-slider.4f3ca6b00b45fd71da5f.png │ │ │ │ ├── pl.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── pl.2427.596db67d26c83197588d.js │ │ │ │ ├── pl.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── pl.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── pl.4053.929467332218f26dc70f.js │ │ │ │ ├── pl.505.978e053ffa4899c28da8.js │ │ │ │ ├── pl.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── pl.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── pl.7201.028a386569caa7df9e56.js │ │ │ │ ├── pl.77.5401b8766c940f90b3e9.js │ │ │ │ ├── pl.8884.515644758428ad7e8263.js │ │ │ │ ├── prediction-clock-white.c4675d37769f1df4c9ec.png │ │ │ │ ├── prediction-failure-white.a838a6689f951970e715.png │ │ │ │ ├── prediction-success-white.2fb9966b4c0f3529a2ea.png │ │ │ │ ├── pt.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── pt.2427.596db67d26c83197588d.js │ │ │ │ ├── pt.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── pt.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── pt.4053.929467332218f26dc70f.js │ │ │ │ ├── pt.505.978e053ffa4899c28da8.js │ │ │ │ ├── pt.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── pt.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── pt.7201.028a386569caa7df9e56.js │ │ │ │ ├── pt.77.5401b8766c940f90b3e9.js │ │ │ │ ├── pt.8884.515644758428ad7e8263.js │ │ │ │ ├── restricted-toolset.1b7bc1402f30983626f1.js │ │ │ │ ├── ro.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ro.2427.596db67d26c83197588d.js │ │ │ │ ├── ro.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ro.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ro.4053.929467332218f26dc70f.js │ │ │ │ ├── ro.505.978e053ffa4899c28da8.js │ │ │ │ ├── ro.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ro.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ro.7201.028a386569caa7df9e56.js │ │ │ │ ├── ro.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ro.8884.515644758428ad7e8263.js │ │ │ │ ├── ru.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── ru.2427.596db67d26c83197588d.js │ │ │ │ ├── ru.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── ru.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── ru.4053.929467332218f26dc70f.js │ │ │ │ ├── ru.505.978e053ffa4899c28da8.js │ │ │ │ ├── ru.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── ru.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── ru.7201.028a386569caa7df9e56.js │ │ │ │ ├── ru.77.5401b8766c940f90b3e9.js │ │ │ │ ├── ru.8884.515644758428ad7e8263.js │ │ │ │ ├── runtime.2d7205dfd0e311e18ff9.js │ │ │ │ ├── series-icons-map.6b7b2f52a18274053c99.js │ │ │ │ ├── series-pane-views.97a8e6dbe1a94532eb49.js │ │ │ │ ├── share-chart-to-social-utils.d7331dbca4a2aa0909e7.js │ │ │ │ ├── show-theme-save-dialog.d599965fb89ec8e183eb.js │ │ │ │ ├── simple-dialog.2bb0f228f3ba2ab7961a.js │ │ │ │ ├── source-properties-editor.574ad472c0635857c0e7.js │ │ │ │ ├── study-inputs-pane-views.a80a3e282aa441e156d1.js │ │ │ │ ├── study-market.9e70f3c55a48dea9582d.js │ │ │ │ ├── study-pane-views.cc5bd003161b0ea73f75.js │ │ │ │ ├── study-property-pages-with-definitions.ce85b8b8af55fc2902f6.js │ │ │ │ ├── study-template-dialog.faf557ce6d32f93e5a9a.js │ │ │ │ ├── sv.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── sv.2427.596db67d26c83197588d.js │ │ │ │ ├── sv.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── sv.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── sv.4053.929467332218f26dc70f.js │ │ │ │ ├── sv.505.978e053ffa4899c28da8.js │ │ │ │ ├── sv.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── sv.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── sv.7201.028a386569caa7df9e56.js │ │ │ │ ├── sv.77.5401b8766c940f90b3e9.js │ │ │ │ ├── sv.8884.515644758428ad7e8263.js │ │ │ │ ├── svg-renderer.f065beaf6b5b37da27d9.js │ │ │ │ ├── symbol-info-dialog-impl.391e1e1a29220b089537.js │ │ │ │ ├── symbol-search-dialog.9eb046ffc9fedac1edf1.js │ │ │ │ ├── take-chart-image-impl.c0ec40f417c36a1c6179.js │ │ │ │ ├── th.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── th.2427.596db67d26c83197588d.js │ │ │ │ ├── th.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── th.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── th.4053.929467332218f26dc70f.js │ │ │ │ ├── th.505.978e053ffa4899c28da8.js │ │ │ │ ├── th.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── th.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── th.7201.028a386569caa7df9e56.js │ │ │ │ ├── th.77.5401b8766c940f90b3e9.js │ │ │ │ ├── th.8884.515644758428ad7e8263.js │ │ │ │ ├── tr.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── tr.2427.596db67d26c83197588d.js │ │ │ │ ├── tr.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── tr.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── tr.4053.929467332218f26dc70f.js │ │ │ │ ├── tr.505.978e053ffa4899c28da8.js │ │ │ │ ├── tr.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── tr.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── tr.7201.028a386569caa7df9e56.js │ │ │ │ ├── tr.77.5401b8766c940f90b3e9.js │ │ │ │ ├── tr.8884.515644758428ad7e8263.js │ │ │ │ ├── user-defined-bars-marks-tooltip.520f315000510aab3003.js │ │ │ │ ├── vi.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── vi.2427.596db67d26c83197588d.js │ │ │ │ ├── vi.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── vi.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── vi.4053.929467332218f26dc70f.js │ │ │ │ ├── vi.505.978e053ffa4899c28da8.js │ │ │ │ ├── vi.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── vi.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── vi.7201.028a386569caa7df9e56.js │ │ │ │ ├── vi.77.5401b8766c940f90b3e9.js │ │ │ │ ├── vi.8884.515644758428ad7e8263.js │ │ │ │ ├── zh.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── zh.2427.596db67d26c83197588d.js │ │ │ │ ├── zh.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── zh.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── zh.4053.929467332218f26dc70f.js │ │ │ │ ├── zh.505.978e053ffa4899c28da8.js │ │ │ │ ├── zh.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── zh.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── zh.7201.028a386569caa7df9e56.js │ │ │ │ ├── zh.77.5401b8766c940f90b3e9.js │ │ │ │ ├── zh.8884.515644758428ad7e8263.js │ │ │ │ ├── zh_TW.2014.ac41a755cbd36fd3ce84.js │ │ │ │ ├── zh_TW.2427.596db67d26c83197588d.js │ │ │ │ ├── zh_TW.2684.25cb9ba0254ab5298f14.js │ │ │ │ ├── zh_TW.3753.abc1ac9bcf134df94dec.js │ │ │ │ ├── zh_TW.4053.929467332218f26dc70f.js │ │ │ │ ├── zh_TW.505.978e053ffa4899c28da8.js │ │ │ │ ├── zh_TW.5652.209eb64b624dfe3c853a.js │ │ │ │ ├── zh_TW.6196.3e28185b53cd2346f10d.js │ │ │ │ ├── zh_TW.7201.028a386569caa7df9e56.js │ │ │ │ ├── zh_TW.77.5401b8766c940f90b3e9.js │ │ │ │ └── zh_TW.8884.515644758428ad7e8263.js │ │ │ │ ├── charting_library.cjs.js │ │ │ │ ├── charting_library.d.ts │ │ │ │ ├── charting_library.esm.js │ │ │ │ ├── charting_library.js │ │ │ │ ├── charting_library.standalone.js │ │ │ │ ├── datafeed-api.d.ts │ │ │ │ └── package.json │ │ ├── Privacy.vue │ │ ├── Profile │ │ │ ├── Edit.vue │ │ │ └── Partials │ │ │ │ ├── DeleteUserForm.vue │ │ │ │ ├── UpdatePasswordForm.vue │ │ │ │ └── UpdateProfileInformationForm.vue │ │ ├── Terms.vue │ │ └── Welcome.vue │ ├── app.js │ ├── bootstrap.js │ ├── echo.js │ ├── hooks │ │ ├── explorers.js │ │ ├── index.js │ │ ├── multicall.js │ │ ├── positionManager.json │ │ ├── swapMath.js │ │ ├── useCamelToTitle.js │ │ ├── useContractCall.js │ │ ├── useCountDown.js │ │ ├── useLaunchpadsData.js │ │ └── usePriceInfo.js │ ├── install.js │ ├── lib │ │ ├── utils.js │ │ └── wagmi.js │ └── vue-i18n-locales.generated.js └── views │ ├── app.blade.php │ └── errors │ ├── 403.blade.php │ ├── 404.blade.php │ ├── 419.blade.php │ ├── 429.blade.php │ ├── 500.blade.php │ ├── 503.blade.php │ └── layout.blade.php ├── routes ├── admin.php ├── channels.php ├── console.php ├── otp.php ├── web.php └── web3.php ├── storage ├── app │ ├── .gitignore │ ├── private │ │ └── .gitignore │ └── public │ │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ ├── .gitignore │ │ └── data │ │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ ├── testing │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore ├── tailwind.config.js ├── tests ├── Feature │ ├── Auth │ │ ├── AuthenticationTest.php │ │ ├── EmailVerificationTest.php │ │ ├── PasswordConfirmationTest.php │ │ ├── PasswordResetTest.php │ │ ├── PasswordUpdateTest.php │ │ └── RegistrationTest.php │ ├── ExampleTest.php │ └── ProfileTest.php ├── TestCase.php └── Unit │ └── ExampleTest.php └── vite.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [docker-compose.yml] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.blade.php diff=html 4 | *.css diff=css 5 | *.html diff=html 6 | *.md diff=markdown 7 | *.php diff=php 8 | 9 | /.github export-ignore 10 | CHANGELOG.md export-ignore 11 | .styleci.yml export-ignore 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.phpunit.cache 2 | /node_modules 3 | /public/build 4 | /public/hot 5 | /public/storage 6 | /storage/*.key 7 | /storage/pail 8 | /vendor 9 | .env 10 | .env.backup 11 | .env.production 12 | .phpactor.json 13 | .phpunit.result.cache 14 | Homestead.json 15 | Homestead.yaml 16 | auth.json 17 | npm-debug.log 18 | yarn-error.log 19 | /.fleet 20 | /.idea 21 | /.nova 22 | /.vscode 23 | /.zed 24 | .DS_Store 25 | **/.DS_Store 26 | -------------------------------------------------------------------------------- /app/Console/Commands/UpdateTokenHolders.php: -------------------------------------------------------------------------------- 1 | updateAllHolders(); 30 | $this->info('Updated holders for all active launchpads'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Enums/LaunchpadStatus.php: -------------------------------------------------------------------------------- 1 | header( 15 | 'Content-Security-Policy-Report-Only', 16 | "frame-ancestors 'self' http://localhost:* https://*.pages.dev https://*.vercel.app https://*.ngrok-free.app https://secure-mobile.walletconnect.com https://secure-mobile.walletconnect.org https://secure.walletconnect.org" 17 | ); 18 | $response->header('Cross-Origin-Opener-Policy', 'unsafe-none'); 19 | return $response; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/DemoMode.php: -------------------------------------------------------------------------------- 1 | user()?->isAdmin()) { 18 | return redirect() 19 | ->back() 20 | ->with('error', 'Updating this item is disabled on the demo'); 21 | } 22 | 23 | return $next($request); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Http/Middleware/IsAdmin.php: -------------------------------------------------------------------------------- 1 | user()?->isAdmin())) 20 | return $next($request); 21 | return redirect('/'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Http/Requests/ProfileUpdateRequest.php: -------------------------------------------------------------------------------- 1 | |string> 15 | */ 16 | public function rules(): array 17 | { 18 | return [ 19 | 'name' => ['required', 'string', 'max:255'], 20 | 'email' => [ 21 | 'required', 22 | 'string', 23 | 'lowercase', 24 | 'email', 25 | 'max:255', 26 | Rule::unique(User::class)->ignore($this->user()->id), 27 | ], 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Http/Resources/Holder.php: -------------------------------------------------------------------------------- 1 | $this->id, 20 | 'launchpad_id' => $this->launchpad_id, 21 | 'user_id' => $this->user_id, 22 | 'address' => $this->address, 23 | 'percentage' => bcdiv(bcmul("$this->qty", "100", 18), '1000000000', 4), 24 | 'qty' => $this->qty, 25 | 'prebond' => $this->prebond, 26 | 'launchpad' => new Launchpad($this->whenLoaded('launchpad')), 27 | 'user' => new User($this->whenLoaded('user')), 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Http/Resources/Promo.php: -------------------------------------------------------------------------------- 1 | $this->id, 20 | 'name' => $this->name, 21 | 'image' => $this->image, 22 | 'url' => $this->url, 23 | 'starts_at' => $this->starts_at->toFormattedDateString(), 24 | 'ends_at' => $this->ends_at->toFormattedDateString(), 25 | 'active' => $this->active, 26 | 27 | ]; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Http/Resources/Rate.php: -------------------------------------------------------------------------------- 1 | $this->symbol, 20 | 'chainId'=>$this->chainId, 21 | 'usd_rate'=>$this->usd_rate, 22 | 23 | ]; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/Http/Resources/Setting.php: -------------------------------------------------------------------------------- 1 | $this->logo, 20 | 'name'=>$this->name, 21 | 'twitter'=>$this->twitter, 22 | 'youtube'=>$this->youtube, 23 | 'telegram_group'=>$this->telegram_group, 24 | 'telegram_channel'=>$this->telegram_channel, 25 | 'discord'=>$this->discord, 26 | 'documentation'=>$this->documentation, 27 | 'rpc'=>$this->rpc, 28 | 'ankr'=>$this->ankr, 29 | 'infura'=>$this->infura, 30 | 'blast'=>$this->blast, 31 | 'chat'=>$this->chat, 32 | 'featured'=>$this->featured, 33 | 34 | ]; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/Http/Resources/TradeCandle.php: -------------------------------------------------------------------------------- 1 | $this->launchpad_id, 20 | 'timeframe' => $this->timeframe, 21 | 'timestamp' => $this->timestamp->timestamp, 22 | 'open' => $this->open, 23 | 'high' => $this->high, 24 | 'low' => $this->low, 25 | 'close' => $this->close, 26 | 'volume' => $this->volume, 27 | 'trades_count' => $this->trades_count, 28 | ]; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Install/routes.php: -------------------------------------------------------------------------------- 1 | group(function () { 9 | Route::get('/', 'index')->name('index'); 10 | Route::get('/requirements', 'requirements')->name('requirements'); 11 | Route::get('/permissions', 'permissions')->name('permissions'); 12 | Route::get('/environment', 'environment')->name('environment'); 13 | Route::post('/environment/save', 'saveEnvironment')->name('environment.save'); 14 | // should pass for now 15 | Route::get('/final', 'final')->name('final')->withoutMiddleware(InstallMiddleware::class); 16 | }); 17 | -------------------------------------------------------------------------------- /app/Models/Rate.php: -------------------------------------------------------------------------------- 1 | candleService = $candleService; 16 | } 17 | 18 | /** 19 | * Handle the Trade "created" event. 20 | */ 21 | public function created(Trade $trade): void 22 | { 23 | 24 | NewTradeEvent::dispatch($trade); 25 | // Update current period candles 26 | $this->candleService->updateCurrentPeriod($trade); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | uuid = Str::uuid()->toString(); 17 | }); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/Traits/WhenMorphed.php: -------------------------------------------------------------------------------- 1 | whenLoaded($relationship, function () use ($relationship) { 10 | $morphType = $relationship . '_type'; 11 | $morphAlias = $this->resource->$morphType; 12 | $morphResourceClass = "App\\Http\\Resources\\" . class_basename($morphAlias); 13 | return new $morphResourceClass($this->resource->{$relationship}); 14 | }); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /artisan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | handleCommand(new ArgvInput); 14 | 15 | exit($status); 16 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /bootstrap/providers.php: -------------------------------------------------------------------------------- 1 | bigIncrements('id'); 16 | $table->string('symbol')->nullable(); 17 | $table->integer('chainId')->unique(); 18 | $table->string('usd_rate')->nullable(); 19 | $table->timestamps(); 20 | $table->softDeletes(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | * 27 | * @return void 28 | */ 29 | public function down() 30 | { 31 | Schema::drop('rates'); 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /database/migrations/2024_12_11_212713_add_unique_keys_to_holders_table.php: -------------------------------------------------------------------------------- 1 | truncate(); 17 | 18 | Schema::table('holders', function (Blueprint $table) { 19 | $table->unique(['launchpad_id', 'address']); 20 | }); 21 | } 22 | 23 | /** 24 | * Reverse the migrations. 25 | */ 26 | public function down(): void 27 | { 28 | Schema::table('holders', function (Blueprint $table) { 29 | $table->dropUnique(['launchpad_id', 'address']); 30 | }); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /database/migrations/2025_01_04_041834_add_livestream_id_to_launchpads_table.php: -------------------------------------------------------------------------------- 1 | string('livestreamId', 60)->nullable()->after('website'); 17 | }); 18 | } 19 | 20 | /** 21 | * Reverse the migrations. 22 | */ 23 | public function down(): void 24 | { 25 | Schema::table('launchpads', function (Blueprint $table) { 26 | // 27 | $table->dropColumn(['livestreamId']); 28 | }); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /database/seeders/RatesTableSeeder.php: -------------------------------------------------------------------------------- 1 | reject(function ($evm) { 19 | return !is_array($evm) || !isset($evm['chainId']) || !isset($evm['symbol']); 20 | })->map(function (array $evm) { 21 | Rate::query()->updateOrCreate(['chainId' => $evm['chainId']], [ 22 | 'chainId' => $evm['chainId'], 23 | 'symbol' => $evm['symbol'] 24 | ]); 25 | }); 26 | ServicesRate::update(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /docker/8.0/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | post_max_size = 100M 3 | upload_max_filesize = 100M 4 | variables_order = EGPCS 5 | pcov.directory = . 6 | -------------------------------------------------------------------------------- /docker/8.0/start-container: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$SUPERVISOR_PHP_USER" != "root" ] && [ "$SUPERVISOR_PHP_USER" != "sail" ]; then 4 | echo "You should set SUPERVISOR_PHP_USER to either 'sail' or 'root'." 5 | exit 1 6 | fi 7 | 8 | if [ ! -z "$WWWUSER" ]; then 9 | usermod -u $WWWUSER sail 10 | fi 11 | 12 | if [ ! -d /.composer ]; then 13 | mkdir /.composer 14 | fi 15 | 16 | chmod -R ugo+rw /.composer 17 | 18 | if [ $# -gt 0 ]; then 19 | if [ "$SUPERVISOR_PHP_USER" = "root" ]; then 20 | exec "$@" 21 | else 22 | exec gosu $WWWUSER "$@" 23 | fi 24 | else 25 | exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf 26 | fi 27 | -------------------------------------------------------------------------------- /docker/8.0/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | user=root 4 | logfile=/var/log/supervisor/supervisord.log 5 | pidfile=/var/run/supervisord.pid 6 | 7 | [program:php] 8 | command=%(ENV_SUPERVISOR_PHP_COMMAND)s 9 | user=%(ENV_SUPERVISOR_PHP_USER)s 10 | environment=LARAVEL_SAIL="1" 11 | stdout_logfile=/dev/stdout 12 | stdout_logfile_maxbytes=0 13 | stderr_logfile=/dev/stderr 14 | stderr_logfile_maxbytes=0 15 | -------------------------------------------------------------------------------- /docker/8.1/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | post_max_size = 100M 3 | upload_max_filesize = 100M 4 | variables_order = EGPCS 5 | pcov.directory = . 6 | -------------------------------------------------------------------------------- /docker/8.1/start-container: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$SUPERVISOR_PHP_USER" != "root" ] && [ "$SUPERVISOR_PHP_USER" != "sail" ]; then 4 | echo "You should set SUPERVISOR_PHP_USER to either 'sail' or 'root'." 5 | exit 1 6 | fi 7 | 8 | if [ ! -z "$WWWUSER" ]; then 9 | usermod -u $WWWUSER sail 10 | fi 11 | 12 | if [ ! -d /.composer ]; then 13 | mkdir /.composer 14 | fi 15 | 16 | chmod -R ugo+rw /.composer 17 | 18 | if [ $# -gt 0 ]; then 19 | if [ "$SUPERVISOR_PHP_USER" = "root" ]; then 20 | exec "$@" 21 | else 22 | exec gosu $WWWUSER "$@" 23 | fi 24 | else 25 | exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf 26 | fi 27 | -------------------------------------------------------------------------------- /docker/8.1/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | user=root 4 | logfile=/var/log/supervisor/supervisord.log 5 | pidfile=/var/run/supervisord.pid 6 | 7 | [program:php] 8 | command=%(ENV_SUPERVISOR_PHP_COMMAND)s 9 | user=%(ENV_SUPERVISOR_PHP_USER)s 10 | environment=LARAVEL_SAIL="1" 11 | stdout_logfile=/dev/stdout 12 | stdout_logfile_maxbytes=0 13 | stderr_logfile=/dev/stderr 14 | stderr_logfile_maxbytes=0 15 | -------------------------------------------------------------------------------- /docker/8.2/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | post_max_size = 100M 3 | upload_max_filesize = 100M 4 | variables_order = EGPCS 5 | pcov.directory = . 6 | -------------------------------------------------------------------------------- /docker/8.2/start-container: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$SUPERVISOR_PHP_USER" != "root" ] && [ "$SUPERVISOR_PHP_USER" != "sail" ]; then 4 | echo "You should set SUPERVISOR_PHP_USER to either 'sail' or 'root'." 5 | exit 1 6 | fi 7 | 8 | if [ ! -z "$WWWUSER" ]; then 9 | usermod -u $WWWUSER sail 10 | fi 11 | 12 | if [ ! -d /.composer ]; then 13 | mkdir /.composer 14 | fi 15 | 16 | chmod -R ugo+rw /.composer 17 | 18 | if [ $# -gt 0 ]; then 19 | if [ "$SUPERVISOR_PHP_USER" = "root" ]; then 20 | exec "$@" 21 | else 22 | exec gosu $WWWUSER "$@" 23 | fi 24 | else 25 | exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf 26 | fi 27 | -------------------------------------------------------------------------------- /docker/8.2/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | user=root 4 | logfile=/var/log/supervisor/supervisord.log 5 | pidfile=/var/run/supervisord.pid 6 | 7 | [program:php] 8 | command=%(ENV_SUPERVISOR_PHP_COMMAND)s 9 | user=%(ENV_SUPERVISOR_PHP_USER)s 10 | environment=LARAVEL_SAIL="1" 11 | stdout_logfile=/dev/stdout 12 | stdout_logfile_maxbytes=0 13 | stderr_logfile=/dev/stderr 14 | stderr_logfile_maxbytes=0 15 | -------------------------------------------------------------------------------- /docker/8.3/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | post_max_size = 100M 3 | upload_max_filesize = 100M 4 | variables_order = EGPCS 5 | pcov.directory = . 6 | -------------------------------------------------------------------------------- /docker/8.3/start-container: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$SUPERVISOR_PHP_USER" != "root" ] && [ "$SUPERVISOR_PHP_USER" != "sail" ]; then 4 | echo "You should set SUPERVISOR_PHP_USER to either 'sail' or 'root'." 5 | exit 1 6 | fi 7 | 8 | if [ ! -z "$WWWUSER" ]; then 9 | usermod -u $WWWUSER sail 10 | fi 11 | 12 | if [ ! -d /.composer ]; then 13 | mkdir /.composer 14 | fi 15 | 16 | chmod -R ugo+rw /.composer 17 | 18 | if [ $# -gt 0 ]; then 19 | if [ "$SUPERVISOR_PHP_USER" = "root" ]; then 20 | exec "$@" 21 | else 22 | exec gosu $WWWUSER "$@" 23 | fi 24 | else 25 | exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf 26 | fi 27 | -------------------------------------------------------------------------------- /docker/8.3/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | user=root 4 | logfile=/var/log/supervisor/supervisord.log 5 | pidfile=/var/run/supervisord.pid 6 | 7 | [program:php] 8 | command=%(ENV_SUPERVISOR_PHP_COMMAND)s 9 | user=%(ENV_SUPERVISOR_PHP_USER)s 10 | environment=LARAVEL_SAIL="1" 11 | stdout_logfile=/dev/stdout 12 | stdout_logfile_maxbytes=0 13 | stderr_logfile=/dev/stderr 14 | stderr_logfile_maxbytes=0 15 | 16 | [program:reverb] 17 | command=php /var/www/html/artisan reverb:start --host="0.0.0.0" --port=8080 18 | autostart=true 19 | autorestart=true 20 | user=%(ENV_SUPERVISOR_PHP_USER)s 21 | redirect_stderr=true 22 | stdout_logfile=/var/www/html/storage/logs/reverb.log 23 | -------------------------------------------------------------------------------- /docker/8.4/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | post_max_size = 100M 3 | upload_max_filesize = 100M 4 | variables_order = EGPCS 5 | pcov.directory = . 6 | -------------------------------------------------------------------------------- /docker/8.4/start-container: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$SUPERVISOR_PHP_USER" != "root" ] && [ "$SUPERVISOR_PHP_USER" != "sail" ]; then 4 | echo "You should set SUPERVISOR_PHP_USER to either 'sail' or 'root'." 5 | exit 1 6 | fi 7 | 8 | if [ ! -z "$WWWUSER" ]; then 9 | usermod -u $WWWUSER sail 10 | fi 11 | 12 | if [ ! -d /.composer ]; then 13 | mkdir /.composer 14 | fi 15 | 16 | chmod -R ugo+rw /.composer 17 | 18 | if [ $# -gt 0 ]; then 19 | if [ "$SUPERVISOR_PHP_USER" = "root" ]; then 20 | exec "$@" 21 | else 22 | exec gosu $WWWUSER "$@" 23 | fi 24 | else 25 | exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf 26 | fi 27 | -------------------------------------------------------------------------------- /docker/8.4/supervisord.conf: -------------------------------------------------------------------------------- 1 | [supervisord] 2 | nodaemon=true 3 | user=root 4 | logfile=/var/log/supervisor/supervisord.log 5 | pidfile=/var/run/supervisord.pid 6 | 7 | [program:php] 8 | command=%(ENV_SUPERVISOR_PHP_COMMAND)s 9 | user=%(ENV_SUPERVISOR_PHP_USER)s 10 | environment=LARAVEL_SAIL="1" 11 | stdout_logfile=/dev/stdout 12 | stdout_logfile_maxbytes=0 13 | stderr_logfile=/dev/stderr 14 | stderr_logfile_maxbytes=0 15 | 16 | [program:reverb] 17 | command=php /var/www/html/artisan reverb:start --host="0.0.0.0" --port=8080 18 | autostart=true 19 | autorestart=true 20 | user=%(ENV_SUPERVISOR_PHP_USER)s 21 | redirect_stderr=true 22 | stdout_logfile=/var/www/html/storage/logs/reverb.log 23 | -------------------------------------------------------------------------------- /docker/mariadb/create-testing-database.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /usr/bin/mariadb --user=root --password="$MYSQL_ROOT_PASSWORD" <<-EOSQL 4 | CREATE DATABASE IF NOT EXISTS testing; 5 | GRANT ALL PRIVILEGES ON \`testing%\`.* TO '$MYSQL_USER'@'%'; 6 | EOSQL 7 | -------------------------------------------------------------------------------- /docker/mysql/create-testing-database.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" <<-EOSQL 4 | CREATE DATABASE IF NOT EXISTS testing; 5 | GRANT ALL PRIVILEGES ON \`testing%\`.* TO '$MYSQL_USER'@'%'; 6 | EOSQL 7 | -------------------------------------------------------------------------------- /docker/pgsql/create-testing-database.sql: -------------------------------------------------------------------------------- 1 | SELECT 'CREATE DATABASE testing' 2 | WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'testing')\gexec 3 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "@/*": ["resources/js/*"], 6 | "ziggy-js": ["./vendor/tightenco/ziggy"] 7 | } 8 | }, 9 | "exclude": ["node_modules", "public"] 10 | } 11 | -------------------------------------------------------------------------------- /lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'password' => 'The provided password is incorrect.', 18 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | 'Prev', 17 | 'next' => 'Next', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Your password has been reset.', 17 | 'sent' => 'We have emailed your password reset link.', 18 | 'throttled' => 'Please wait before retrying.', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that email address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /process_queue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Get the directory of the script 3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | 5 | # Set maximum execution time (in seconds) 6 | TIMEOUT=290 7 | 8 | # Start time 9 | START_TIME=$(date +%s) 10 | 11 | # Process a limited number of jobs 12 | /usr/local/bin/php $DIR/artisan queue:work --stop-when-empty --max-jobs=20 --max-time=$TIMEOUT 13 | 14 | # Log completion 15 | echo "$(date): Queue processed" >> $DIR/storage/logs/queue.log -------------------------------------------------------------------------------- /project-stack.md: -------------------------------------------------------------------------------- 1 | ## Core Technologies 2 | 3 | - Laravel v11.31 4 | - Vue.js 3.x (Composition API with ` 15 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ApplicationLogo.vue: -------------------------------------------------------------------------------- 1 | 4 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ChainInfo.vue: -------------------------------------------------------------------------------- 1 | 15 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ChainSymbol.vue: -------------------------------------------------------------------------------- 1 | 14 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/Checkbox.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 35 | -------------------------------------------------------------------------------- /resources/js/Components/DropdownLink.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/FormLabel.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /resources/js/Components/InputError.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/InputLabel.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/Loading.vue: -------------------------------------------------------------------------------- 1 | 23 | -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/composables/useDropdown.js: -------------------------------------------------------------------------------- 1 | import { getCurrentInstance, ref, toRefs } from 'vue'; 2 | 3 | export default function useDropdown (props, context, dep) 4 | { 5 | const { disabled } = toRefs(props); 6 | 7 | const $this = getCurrentInstance().proxy; 8 | 9 | // ================ DATA ================ 10 | 11 | const isOpen = ref(false); 12 | 13 | // =============== METHODS ============== 14 | 15 | const open = () => { 16 | if (isOpen.value || disabled.value) { 17 | return; 18 | } 19 | 20 | isOpen.value = true; 21 | context.emit('open', $this); 22 | }; 23 | 24 | const close = () => { 25 | if (!isOpen.value) { 26 | return; 27 | } 28 | 29 | isOpen.value = false; 30 | context.emit('close', $this); 31 | }; 32 | 33 | return { 34 | isOpen, 35 | open, 36 | close, 37 | }; 38 | } -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/composables/usePointer.js: -------------------------------------------------------------------------------- 1 | import { ref, toRefs } from 'vue'; 2 | 3 | export default function usePointer (props, context, dep) 4 | { 5 | const { groupSelect, mode, groups, disabledProp } = toRefs(props); 6 | 7 | // ================ DATA ================ 8 | 9 | const pointer = ref(null); 10 | 11 | // =============== METHODS ============== 12 | 13 | const setPointer = (option) => { 14 | if (option === undefined || (option !== null && option[disabledProp.value])) { 15 | return; 16 | } 17 | 18 | if (groups.value && option && option.group && (mode.value === 'single' || !groupSelect.value)) { 19 | return; 20 | } 21 | 22 | pointer.value = option; 23 | }; 24 | 25 | const clearPointer = () => { 26 | setPointer(null); 27 | }; 28 | 29 | return { 30 | pointer, 31 | setPointer, 32 | clearPointer, 33 | }; 34 | } -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/utils/arraysEqual.js: -------------------------------------------------------------------------------- 1 | export default function arraysEqual (array1, array2) { 2 | const array2Sorted = array2.slice().sort(); 3 | 4 | return array1.length === array2.length && array1.slice().sort().every(function(value, index) { 5 | return value === array2Sorted[index]; 6 | }); 7 | } -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/utils/isNullish.js: -------------------------------------------------------------------------------- 1 | export default function isNullish (val) { 2 | return [null, undefined].indexOf(val) !== -1; 3 | } -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/utils/isObject.js: -------------------------------------------------------------------------------- 1 | export default function isObject (variable) { 2 | return Object.prototype.toString.call(variable) === '[object Object]'; 3 | } -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/utils/normalize.js: -------------------------------------------------------------------------------- 1 | export default function normalize(str, strict = true) { 2 | return strict 3 | ? String(str).toLowerCase().trim() 4 | : String(str).toLowerCase() 5 | .normalize('NFD') 6 | .trim() 7 | .replace(/æ/g, 'ae') 8 | .replace(/œ/g, 'oe') 9 | .replace(/ø/g, 'o') 10 | .replace(/\p{Diacritic}/gu, ''); 11 | } -------------------------------------------------------------------------------- /resources/js/Components/Multiselect/utils/resolveDeps.js: -------------------------------------------------------------------------------- 1 | export default function (props, context, features, deps = {}) { 2 | features.forEach((composable) => { 3 | /* istanbul ignore else */ 4 | if (composable) { 5 | deps = { 6 | ...deps, 7 | ...composable(props, context, deps) 8 | }; 9 | } 10 | 11 | }); 12 | 13 | return deps; 14 | } -------------------------------------------------------------------------------- /resources/js/Components/TextInput.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/TxHash.vue: -------------------------------------------------------------------------------- 1 | 15 | 23 | -------------------------------------------------------------------------------- /resources/js/Components/TxStatus.vue: -------------------------------------------------------------------------------- 1 | 4 | 30 | -------------------------------------------------------------------------------- /resources/js/Components/VueIcon.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /resources/js/Components/no-image-available-icon.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Components/no-image-available-icon.jpeg -------------------------------------------------------------------------------- /resources/js/Components/ui/accordion/Accordion.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ui/accordion/AccordionContent.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 30 | -------------------------------------------------------------------------------- /resources/js/Components/ui/accordion/AccordionItem.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 28 | -------------------------------------------------------------------------------- /resources/js/Components/ui/accordion/index.js: -------------------------------------------------------------------------------- 1 | export { default as Accordion } from './Accordion.vue'; 2 | export { default as AccordionContent } from './AccordionContent.vue'; 3 | export { default as AccordionItem } from './AccordionItem.vue'; 4 | export { default as AccordionTrigger } from './AccordionTrigger.vue'; 5 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialog.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogAction.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 28 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogCancel.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 30 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogDescription.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogFooter.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogHeader.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogTitle.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/AlertDialogTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert-dialog/index.js: -------------------------------------------------------------------------------- 1 | export { default as AlertDialog } from './AlertDialog.vue'; 2 | export { default as AlertDialogAction } from './AlertDialogAction.vue'; 3 | export { default as AlertDialogCancel } from './AlertDialogCancel.vue'; 4 | export { default as AlertDialogContent } from './AlertDialogContent.vue'; 5 | export { default as AlertDialogDescription } from './AlertDialogDescription.vue'; 6 | export { default as AlertDialogFooter } from './AlertDialogFooter.vue'; 7 | export { default as AlertDialogHeader } from './AlertDialogHeader.vue'; 8 | export { default as AlertDialogTitle } from './AlertDialogTitle.vue'; 9 | export { default as AlertDialogTrigger } from './AlertDialogTrigger.vue'; 10 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert/Alert.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert/AlertDescription.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/alert/AlertTitle.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/aspect-ratio/AspectRatio.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/aspect-ratio/index.js: -------------------------------------------------------------------------------- 1 | export { default as AspectRatio } from './AspectRatio.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/avatar/Avatar.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/avatar/AvatarFallback.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/avatar/AvatarImage.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/avatar/index.js: -------------------------------------------------------------------------------- 1 | import { cva } from 'class-variance-authority'; 2 | 3 | export { default as Avatar } from './Avatar.vue'; 4 | export { default as AvatarFallback } from './AvatarFallback.vue'; 5 | export { default as AvatarImage } from './AvatarImage.vue'; 6 | 7 | export const avatarVariant = cva( 8 | 'inline-flex items-center justify-center font-normal text-gray-950 select-none shrink-0 bg-gray-100 overflow-hidden dark:text-gray-50 dark:bg-gray-800', 9 | { 10 | variants: { 11 | size: { 12 | sm: 'h-10 w-10 text-xs', 13 | base: 'h-16 w-16 text-2xl', 14 | lg: 'h-32 w-32 text-5xl', 15 | }, 16 | shape: { 17 | circle: 'rounded-full', 18 | square: 'rounded-md', 19 | }, 20 | }, 21 | }, 22 | ); 23 | -------------------------------------------------------------------------------- /resources/js/Components/ui/badge/Badge.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/button/Button.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 24 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarGrid.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 29 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarGridBody.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarGridHead.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarGridRow.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarHeadCell.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 34 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarHeader.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 31 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/CalendarHeading.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 32 | -------------------------------------------------------------------------------- /resources/js/Components/ui/calendar/index.js: -------------------------------------------------------------------------------- 1 | export { default as Calendar } from './Calendar.vue'; 2 | export { default as CalendarCell } from './CalendarCell.vue'; 3 | export { default as CalendarCellTrigger } from './CalendarCellTrigger.vue'; 4 | export { default as CalendarGrid } from './CalendarGrid.vue'; 5 | export { default as CalendarGridBody } from './CalendarGridBody.vue'; 6 | export { default as CalendarGridHead } from './CalendarGridHead.vue'; 7 | export { default as CalendarGridRow } from './CalendarGridRow.vue'; 8 | export { default as CalendarHeadCell } from './CalendarHeadCell.vue'; 9 | export { default as CalendarHeader } from './CalendarHeader.vue'; 10 | export { default as CalendarHeading } from './CalendarHeading.vue'; 11 | export { default as CalendarNextButton } from './CalendarNextButton.vue'; 12 | export { default as CalendarPrevButton } from './CalendarPrevButton.vue'; 13 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/Card.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/CardContent.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/CardDescription.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/CardFooter.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/CardHeader.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/CardTitle.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/card/index.js: -------------------------------------------------------------------------------- 1 | export { default as Card } from './Card.vue'; 2 | export { default as CardContent } from './CardContent.vue'; 3 | export { default as CardDescription } from './CardDescription.vue'; 4 | export { default as CardFooter } from './CardFooter.vue'; 5 | export { default as CardHeader } from './CardHeader.vue'; 6 | export { default as CardTitle } from './CardTitle.vue'; 7 | -------------------------------------------------------------------------------- /resources/js/Components/ui/checkbox/index.js: -------------------------------------------------------------------------------- 1 | export { default as Checkbox } from './Checkbox.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/collapsible/Collapsible.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/collapsible/CollapsibleContent.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/collapsible/CollapsibleTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/collapsible/index.js: -------------------------------------------------------------------------------- 1 | export { default as Collapsible } from './Collapsible.vue'; 2 | export { default as CollapsibleContent } from './CollapsibleContent.vue'; 3 | export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue'; 4 | -------------------------------------------------------------------------------- /resources/js/Components/ui/command/CommandEmpty.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/command/CommandSeparator.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/command/CommandShortcut.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/command/index.js: -------------------------------------------------------------------------------- 1 | export { default as Command } from './Command.vue'; 2 | export { default as CommandDialog } from './CommandDialog.vue'; 3 | export { default as CommandEmpty } from './CommandEmpty.vue'; 4 | export { default as CommandGroup } from './CommandGroup.vue'; 5 | export { default as CommandInput } from './CommandInput.vue'; 6 | export { default as CommandItem } from './CommandItem.vue'; 7 | export { default as CommandList } from './CommandList.vue'; 8 | export { default as CommandSeparator } from './CommandSeparator.vue'; 9 | export { default as CommandShortcut } from './CommandShortcut.vue'; 10 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenu.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuGroup.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuLabel.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 34 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuPortal.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuRadioGroup.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuSeparator.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuShortcut.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuSub.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/context-menu/ContextMenuTrigger.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/Dialog.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/DialogClose.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/DialogDescription.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 29 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/DialogFooter.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/DialogHeader.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/DialogTitle.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 31 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/DialogTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dialog/index.js: -------------------------------------------------------------------------------- 1 | export { default as Dialog } from './Dialog.vue'; 2 | export { default as DialogClose } from './DialogClose.vue'; 3 | export { default as DialogContent } from './DialogContent.vue'; 4 | export { default as DialogDescription } from './DialogDescription.vue'; 5 | export { default as DialogFooter } from './DialogFooter.vue'; 6 | export { default as DialogHeader } from './DialogHeader.vue'; 7 | export { default as DialogScrollContent } from './DialogScrollContent.vue'; 8 | export { default as DialogTitle } from './DialogTitle.vue'; 9 | export { default as DialogTrigger } from './DialogTrigger.vue'; 10 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenu.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuGroup.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuLabel.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 32 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuRadioGroup.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuSeparator.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuShortcut.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuSub.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/dropdown-menu/DropdownMenuTrigger.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/FormControl.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/FormDescription.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 20 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/FormItem.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/FormLabel.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 24 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/FormMessage.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 17 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/index.js: -------------------------------------------------------------------------------- 1 | export { default as FormControl } from './FormControl.vue'; 2 | export { default as FormDescription } from './FormDescription.vue'; 3 | export { default as FormItem } from './FormItem.vue'; 4 | export { default as FormLabel } from './FormLabel.vue'; 5 | export { default as FormMessage } from './FormMessage.vue'; 6 | export { FORM_ITEM_INJECTION_KEY } from './injectionKeys'; 7 | export { Field as FormField, Form } from 'vee-validate'; 8 | -------------------------------------------------------------------------------- /resources/js/Components/ui/form/injectionKeys.js: -------------------------------------------------------------------------------- 1 | export const FORM_ITEM_INJECTION_KEY = Symbol(); 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/hover-card/HoverCard.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | -------------------------------------------------------------------------------- /resources/js/Components/ui/hover-card/HoverCardTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/hover-card/index.js: -------------------------------------------------------------------------------- 1 | export { default as HoverCard } from './HoverCard.vue'; 2 | export { default as HoverCardContent } from './HoverCardContent.vue'; 3 | export { default as HoverCardTrigger } from './HoverCardTrigger.vue'; 4 | -------------------------------------------------------------------------------- /resources/js/Components/ui/input/index.js: -------------------------------------------------------------------------------- 1 | export { default as Input } from './Input.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/label/Label.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 33 | -------------------------------------------------------------------------------- /resources/js/Components/ui/label/index.js: -------------------------------------------------------------------------------- 1 | export { default as Label } from './Label.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarGroup.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarLabel.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 22 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarMenu.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarRadioGroup.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 20 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarSeparator.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarShortcut.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/menubar/MenubarSub.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/navigation-menu/NavigationMenuItem.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/navigation-menu/NavigationMenuLink.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/navigation-menu/NavigationMenuList.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 34 | -------------------------------------------------------------------------------- /resources/js/Components/ui/popover/Popover.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/popover/PopoverTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/popover/index.js: -------------------------------------------------------------------------------- 1 | export { default as Popover } from './Popover.vue'; 2 | export { default as PopoverContent } from './PopoverContent.vue'; 3 | export { default as PopoverTrigger } from './PopoverTrigger.vue'; 4 | -------------------------------------------------------------------------------- /resources/js/Components/ui/progress/index.js: -------------------------------------------------------------------------------- 1 | export { default as Progress } from './Progress.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/radio-group/index.js: -------------------------------------------------------------------------------- 1 | export { default as RadioGroup } from './RadioGroup.vue'; 2 | export { default as RadioGroupItem } from './RadioGroupItem.vue'; 3 | -------------------------------------------------------------------------------- /resources/js/Components/ui/scroll-area/index.js: -------------------------------------------------------------------------------- 1 | export { default as ScrollArea } from './ScrollArea.vue'; 2 | export { default as ScrollBar } from './ScrollBar.vue'; 3 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/Select.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/SelectGroup.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 24 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/SelectItemText.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/SelectLabel.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/SelectSeparator.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 25 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/SelectValue.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/select/index.js: -------------------------------------------------------------------------------- 1 | export { default as Select } from './Select.vue'; 2 | export { default as SelectContent } from './SelectContent.vue'; 3 | export { default as SelectGroup } from './SelectGroup.vue'; 4 | export { default as SelectItem } from './SelectItem.vue'; 5 | export { default as SelectItemText } from './SelectItemText.vue'; 6 | export { default as SelectLabel } from './SelectLabel.vue'; 7 | export { default as SelectScrollDownButton } from './SelectScrollDownButton.vue'; 8 | export { default as SelectScrollUpButton } from './SelectScrollUpButton.vue'; 9 | export { default as SelectSeparator } from './SelectSeparator.vue'; 10 | export { default as SelectTrigger } from './SelectTrigger.vue'; 11 | export { default as SelectValue } from './SelectValue.vue'; 12 | -------------------------------------------------------------------------------- /resources/js/Components/ui/separator/index.js: -------------------------------------------------------------------------------- 1 | export { default as Separator } from './Separator.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/Sheet.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/SheetClose.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/SheetDescription.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/SheetFooter.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/SheetHeader.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/SheetTitle.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/sheet/SheetTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/skeleton/Skeleton.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /resources/js/Components/ui/skeleton/index.js: -------------------------------------------------------------------------------- 1 | export { default as Skeleton } from './Skeleton.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/slider/index.js: -------------------------------------------------------------------------------- 1 | export { default as Slider } from './Slider.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/switch/index.js: -------------------------------------------------------------------------------- 1 | export { default as Switch } from './Switch.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/Table.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableBody.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableCaption.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableCell.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableFooter.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableHead.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableHeader.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/TableRow.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 21 | -------------------------------------------------------------------------------- /resources/js/Components/ui/table/index.js: -------------------------------------------------------------------------------- 1 | export { default as Table } from './Table.vue'; 2 | export { default as TableBody } from './TableBody.vue'; 3 | export { default as TableCaption } from './TableCaption.vue'; 4 | export { default as TableCell } from './TableCell.vue'; 5 | export { default as TableEmpty } from './TableEmpty.vue'; 6 | export { default as TableFooter } from './TableFooter.vue'; 7 | export { default as TableHead } from './TableHead.vue'; 8 | export { default as TableHeader } from './TableHeader.vue'; 9 | export { default as TableRow } from './TableRow.vue'; 10 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tabs/Tabs.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tabs/TabsList.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 33 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tabs/index.js: -------------------------------------------------------------------------------- 1 | export { default as Tabs } from './Tabs.vue'; 2 | export { default as TabsContent } from './TabsContent.vue'; 3 | export { default as TabsList } from './TabsList.vue'; 4 | export { default as TabsTrigger } from './TabsTrigger.vue'; 5 | -------------------------------------------------------------------------------- /resources/js/Components/ui/textarea/index.js: -------------------------------------------------------------------------------- 1 | export { default as Textarea } from './Textarea.vue'; 2 | -------------------------------------------------------------------------------- /resources/js/Components/ui/toast/ToastDescription.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/toast/ToastProvider.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /resources/js/Components/ui/toast/ToastTitle.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tooltip/Tooltip.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tooltip/TooltipProvider.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tooltip/TooltipTrigger.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /resources/js/Components/ui/tooltip/index.js: -------------------------------------------------------------------------------- 1 | export { default as Tooltip } from './Tooltip.vue'; 2 | export { default as TooltipContent } from './TooltipContent.vue'; 3 | export { default as TooltipProvider } from './TooltipProvider.vue'; 4 | export { default as TooltipTrigger } from './TooltipTrigger.vue'; 5 | -------------------------------------------------------------------------------- /resources/js/Icons/CoinbaseWalletIcon.vue: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/js/Icons/GasIcon.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | -------------------------------------------------------------------------------- /resources/js/Icons/GnosisSafeIcon.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Icons/MediumIcon.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /resources/js/Icons/NetworkIcon.vue: -------------------------------------------------------------------------------- 1 | 10 | 13 | -------------------------------------------------------------------------------- /resources/js/Icons/TrustWalletIcon.vue: -------------------------------------------------------------------------------- 1 | 2 | 18 | -------------------------------------------------------------------------------- /resources/js/Icons/YoutubeIcon.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /resources/js/Icons/index.js: -------------------------------------------------------------------------------- 1 | export { default as CoinbaseWalletIcon } from './CoinbaseWalletIcon.vue'; 2 | export { default as EtherscanIcon } from './EtherscanIcon.vue'; 3 | export { default as GasIcon } from './GasIcon.vue'; 4 | export { default as GnosisSafeIcon } from './GnosisSafeIcon.vue'; 5 | export { default as MediumIcon } from './MediumIcon.vue'; 6 | export { default as MetamaskIcon } from './MetamaskIcon.vue'; 7 | export { default as NetworkIcon } from './NetworkIcon.vue'; 8 | export { default as TrustWalletIcon } from './TrustWalletIcon.vue'; 9 | export { default as TwitterIcon } from './TwitterIcon.vue'; 10 | export { default as WalletConnectIcon } from './WalletConnectIcon.vue'; 11 | export { default as YoutubeIcon } from './YoutubeIcon.vue'; 12 | 13 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/aurora.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/avax.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/base.svg: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 14 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/binance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/blast.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/celo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/hoo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/linea.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/telos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Icons/network/svg/telos.png -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/zksync.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Icons/network/svg/zora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Icons/network/svg/zora.png -------------------------------------------------------------------------------- /resources/js/Layouts/AppLayout/ModalListItem.vue: -------------------------------------------------------------------------------- 1 | 9 | 17 | -------------------------------------------------------------------------------- /resources/js/Layouts/GuestLayout.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 23 | -------------------------------------------------------------------------------- /resources/js/Pages/Auth/AuthLink.vue: -------------------------------------------------------------------------------- 1 | 8 | 16 | -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/ArrowLeftRight.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/1033.5197f9f8b8500206d06c.css: -------------------------------------------------------------------------------- 1 | .title-u3QJgF_p{cursor:default;font-size:11px;letter-spacing:.4px;line-height:16px;margin:6px 0;padding:0 12px;text-transform:uppercase}.title-u3QJgF_p,html.theme-dark .title-u3QJgF_p{color:var(--tv-color-popup-element-secondary-text,#787b86)} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/1033.5197f9f8b8500206d06c.rtl.css: -------------------------------------------------------------------------------- 1 | .title-u3QJgF_p{cursor:default;font-size:11px;letter-spacing:.4px;line-height:16px;margin:6px 0;padding:0 12px;text-transform:uppercase}.title-u3QJgF_p,html.theme-dark .title-u3QJgF_p{color:var(--tv-color-popup-element-secondary-text,#787b86)} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/1762.7ff6b353c441db2276da.css: -------------------------------------------------------------------------------- 1 | .separator-EI7Qsb2Q{border-top:1px solid #e0e3eb}html.theme-dark .separator-EI7Qsb2Q{border-top:1px solid #434651}.scrollable-EI7Qsb2Q{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-EI7Qsb2Q{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-EI7Qsb2Q{min-height:auto}}.scrollable-EI7Qsb2Q::-webkit-scrollbar{height:5px;width:5px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-EI7Qsb2Q::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/1762.7ff6b353c441db2276da.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-EI7Qsb2Q{border-top:1px solid #e0e3eb}html.theme-dark .separator-EI7Qsb2Q{border-top:1px solid #434651}.scrollable-EI7Qsb2Q{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-EI7Qsb2Q{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-EI7Qsb2Q{min-height:auto}}.scrollable-EI7Qsb2Q::-webkit-scrollbar{height:5px;width:5px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-EI7Qsb2Q::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/1849.aa435f081ad57a6d0121.css: -------------------------------------------------------------------------------- 1 | .item-zwyEh4hn{align-items:flex-start;font-size:16px;padding-right:20px;white-space:normal}.label-zwyEh4hn{line-height:24px;overflow:visible}.labelRow-zwyEh4hn{margin-bottom:2px;margin-top:2px}.toolbox-zwyEh4hn{margin-top:3px} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/1849.aa435f081ad57a6d0121.rtl.css: -------------------------------------------------------------------------------- 1 | .item-zwyEh4hn{align-items:flex-start;font-size:16px;padding-left:20px;white-space:normal}.label-zwyEh4hn{line-height:24px;overflow:visible}.labelRow-zwyEh4hn{margin-bottom:2px;margin-top:2px}.toolbox-zwyEh4hn{margin-top:3px} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/2666.fbb750fd312778403036.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/2666.fbb750fd312778403036.css -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/2666.fbb750fd312778403036.rtl.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/2666.fbb750fd312778403036.rtl.css -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/4215.d24836a292b1969ab4bb.css: -------------------------------------------------------------------------------- 1 | .footer-PhMf7PhQ{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-PhMf7PhQ{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-PhMf7PhQ{padding:10px 20px}}.footer-PhMf7PhQ .submitButton-PhMf7PhQ{padding-left:12px}.footer-PhMf7PhQ .buttons-PhMf7PhQ{margin-left:auto} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/4215.d24836a292b1969ab4bb.rtl.css: -------------------------------------------------------------------------------- 1 | .footer-PhMf7PhQ{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-PhMf7PhQ{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-PhMf7PhQ{padding:10px 20px}}.footer-PhMf7PhQ .submitButton-PhMf7PhQ{padding-right:12px}.footer-PhMf7PhQ .buttons-PhMf7PhQ{margin-right:auto} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/5145.a2b224fd27ab2941c565.css: -------------------------------------------------------------------------------- 1 | .separator-Pf4rIzEt{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-Pf4rIzEt{background-color:#434651} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/5145.a2b224fd27ab2941c565.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-Pf4rIzEt{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-Pf4rIzEt{background-color:#434651} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6.362fa6a7ab1f3e3b06c4.css: -------------------------------------------------------------------------------- 1 | .icon-WB2y0EnP{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-WB2y0EnP svg{fill:currentColor;display:block;height:4px;width:8px}.icon-WB2y0EnP.dropped-WB2y0EnP{transform:rotate(180deg)} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6.362fa6a7ab1f3e3b06c4.rtl.css: -------------------------------------------------------------------------------- 1 | .icon-WB2y0EnP{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-WB2y0EnP svg{fill:currentColor;display:block;height:4px;width:8px}.icon-WB2y0EnP.dropped-WB2y0EnP{transform:rotate(-180deg)} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6036.069ebb4bad0f5dd27147.css: -------------------------------------------------------------------------------- 1 | .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#434651)}.small-QjUlCDId{margin-bottom:4px;margin-top:4px}.normal-QjUlCDId{margin-bottom:6px;margin-top:6px}.large-QjUlCDId{margin-bottom:8px;margin-top:8px} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6036.069ebb4bad0f5dd27147.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#434651)}.small-QjUlCDId{margin-bottom:4px;margin-top:4px}.normal-QjUlCDId{margin-bottom:6px;margin-top:6px}.large-QjUlCDId{margin-bottom:8px;margin-top:8px} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6884.bb7d30a7bbbe5af36556.css: -------------------------------------------------------------------------------- 1 | .checkbox-vyj6oJxw{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-vyj6oJxw.reverse-vyj6oJxw{flex-direction:row-reverse}.checkbox-vyj6oJxw.reverse-vyj6oJxw .label-vyj6oJxw{margin-left:0;margin-right:8px}.checkbox-vyj6oJxw.baseline-vyj6oJxw{align-items:baseline}.checkbox-vyj6oJxw .label-vyj6oJxw{color:#131722;margin-left:8px;min-width:0}html.theme-dark .checkbox-vyj6oJxw .label-vyj6oJxw{color:#d1d4dc} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6884.bb7d30a7bbbe5af36556.rtl.css: -------------------------------------------------------------------------------- 1 | .checkbox-vyj6oJxw{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-vyj6oJxw.reverse-vyj6oJxw{flex-direction:row-reverse}.checkbox-vyj6oJxw.reverse-vyj6oJxw .label-vyj6oJxw{margin-left:8px;margin-right:0}.checkbox-vyj6oJxw.baseline-vyj6oJxw{align-items:baseline}.checkbox-vyj6oJxw .label-vyj6oJxw{color:#131722;margin-right:8px;min-width:0}html.theme-dark .checkbox-vyj6oJxw .label-vyj6oJxw{color:#d1d4dc} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6949.6b6148a8f15c8898c9e9.css: -------------------------------------------------------------------------------- 1 | .footer-dwINHZFL{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-dwINHZFL{background-color:#2a2e39} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/6949.6b6148a8f15c8898c9e9.rtl.css: -------------------------------------------------------------------------------- 1 | .footer-dwINHZFL{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-dwINHZFL{background-color:#2a2e39} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/7391.9c809fa91ed0c8f75bc0.css: -------------------------------------------------------------------------------- 1 | .defaultsButtonText-zcLkuEMM{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-zcLkuEMM{color:#d1d4dc}.defaultsButtonItem-zcLkuEMM{min-width:100px}.defaultsButtonIcon-zcLkuEMM{display:flex}.themesButtonText-AeBgp7zz{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-AeBgp7zz{color:#d1d4dc}.themesButtonIcon-AeBgp7zz{display:flex}.defaultsButtonText-AeBgp7zz{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-AeBgp7zz{color:#d1d4dc}.defaultsButtonItem-AeBgp7zz{min-width:100px} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/7391.9c809fa91ed0c8f75bc0.rtl.css: -------------------------------------------------------------------------------- 1 | .defaultsButtonText-zcLkuEMM{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-zcLkuEMM{color:#d1d4dc}.defaultsButtonItem-zcLkuEMM{min-width:100px}.defaultsButtonIcon-zcLkuEMM{display:flex}.themesButtonText-AeBgp7zz{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-AeBgp7zz{color:#d1d4dc}.themesButtonIcon-AeBgp7zz{display:flex}.defaultsButtonText-AeBgp7zz{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-AeBgp7zz{color:#d1d4dc}.defaultsButtonItem-AeBgp7zz{min-width:100px} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/7413.f830ad1ad6ee6f9b1cb3.css: -------------------------------------------------------------------------------- 1 | .dialog-lmxpCvnK{display:flex;min-height:300px;min-width:380px}.dialogWrapper-lmxpCvnK{flex-grow:1}.wrap-lmxpCvnK{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;position:relative;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-lmxpCvnK{scrollbar-color:#363a45 #0000}.wrap-lmxpCvnK::-webkit-scrollbar{height:5px;width:5px}.wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-lmxpCvnK::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-lmxpCvnK::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/7413.f830ad1ad6ee6f9b1cb3.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-lmxpCvnK{display:flex;min-height:300px;min-width:380px}.dialogWrapper-lmxpCvnK{flex-grow:1}.wrap-lmxpCvnK{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;position:relative;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-lmxpCvnK{scrollbar-color:#363a45 #0000}.wrap-lmxpCvnK::-webkit-scrollbar{height:5px;width:5px}.wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-lmxpCvnK::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-lmxpCvnK::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/9138.c6bf63d3695b7e98a4e1.css: -------------------------------------------------------------------------------- 1 | .dialog-UGdC69sw{min-width:254px;padding:40px;width:auto}.dialogInner-UGdC69sw{align-items:center;display:flex;flex-direction:column}.titleWrapper-UGdC69sw{align-items:center;display:flex;justify-content:center;margin-bottom:16px;max-width:100%}.title-UGdC69sw{color:#131722;cursor:default;font-size:20px;font-weight:700;line-height:28px;overflow:hidden;white-space:nowrap}html.theme-dark .title-UGdC69sw{color:#d1d4dc}.infoHint-UGdC69sw{color:#787b86;height:18px;margin-left:8px;width:18px}.form-UGdC69sw{display:flex;max-width:200px;width:100%}.inputWrapper-UGdC69sw{flex-grow:1}.input-UGdC69sw{font-size:24px;text-align:center}.hint-UGdC69sw{color:#787b86;cursor:default;font-size:12px;line-height:18px;margin-top:3px;max-width:100%;overflow:hidden;white-space:nowrap}.error-UGdC69sw{color:#f23645} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/9138.c6bf63d3695b7e98a4e1.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-UGdC69sw{min-width:254px;padding:40px;width:auto}.dialogInner-UGdC69sw{align-items:center;display:flex;flex-direction:column}.titleWrapper-UGdC69sw{align-items:center;display:flex;justify-content:center;margin-bottom:16px;max-width:100%}.title-UGdC69sw{color:#131722;cursor:default;font-size:20px;font-weight:700;line-height:28px;overflow:hidden;white-space:nowrap}html.theme-dark .title-UGdC69sw{color:#d1d4dc}.infoHint-UGdC69sw{color:#787b86;height:18px;margin-right:8px;width:18px}.form-UGdC69sw{display:flex;max-width:200px;width:100%}.inputWrapper-UGdC69sw{flex-grow:1}.input-UGdC69sw{font-size:24px;text-align:center}.hint-UGdC69sw{color:#787b86;cursor:default;font-size:12px;line-height:18px;margin-top:3px;max-width:100%;overflow:hidden;white-space:nowrap}.error-UGdC69sw{color:#f23645} -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/EuclidCircular.be8f862db48c2976009f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/EuclidCircular.be8f862db48c2976009f.woff2 -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/dot.3d617b6b01edba83a7f4.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/dot.3d617b6b01edba83a7f4.cur -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/eraser.c80610a04a92d2465b03.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/eraser.c80610a04a92d2465b03.cur -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/flag-square-mock-dark.16b5f3a431f502b03ae3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/flag-square-mock.d201313017eb2c1b989f.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/hammerjs.6e30e0c48af40bf2f6c0.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[2377],{13367:(e,a,r)=>{r.r(a),r.d(a,{HammerJS:()=>n.a});var i=r(11553),n=r.n(i)}}]); -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/icons.4d39018d0766cf7006bc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/icons.4d39018d0766cf7006bc.png -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/large-slider-handle.18e9ee5923db4eac2c43.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/linewidth-slider.8e3d0520d28ce8259ccf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/linewidth-slider.8e3d0520d28ce8259ccf.png -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/opacity-pattern.4d8fbb552dde3db26f4a.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/opacity-slider.4f3ca6b00b45fd71da5f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/opacity-slider.4f3ca6b00b45fd71da5f.png -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/prediction-clock-white.c4675d37769f1df4c9ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/prediction-clock-white.c4675d37769f1df4c9ec.png -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/prediction-failure-white.a838a6689f951970e715.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/prediction-failure-white.a838a6689f951970e715.png -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/bundles/prediction-success-white.2fb9966b4c0f3529a2ea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scriptoshi/memex/a7bfe60b45e6e7405159118a601a20b45c27455d/resources/js/Pages/Launchpads/TradingView/charting_library/bundles/prediction-success-white.2fb9966b4c0f3529a2ea.png -------------------------------------------------------------------------------- /resources/js/Pages/Launchpads/TradingView/charting_library/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "description": "CL v25.002 (internal id ea00b60e @ 2023-07-12T14:51:16.080Z)", 4 | "type": "module", 5 | "main": "charting_library.cjs.js", 6 | "module": "charting_library.esm.js", 7 | "types": "charting_library.d.ts" 8 | } 9 | -------------------------------------------------------------------------------- /resources/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | window.axios = axios; 3 | 4 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 5 | 6 | /** 7 | * Echo exposes an expressive API for subscribing to channels and listening 8 | * for events that are broadcast by Laravel. Echo and event broadcasting 9 | * allow your team to quickly build robust real-time web applications. 10 | */ 11 | 12 | import './echo'; 13 | -------------------------------------------------------------------------------- /resources/js/echo.js: -------------------------------------------------------------------------------- 1 | import Echo from 'laravel-echo'; 2 | import Pusher from 'pusher-js'; 3 | window.Pusher = Pusher; 4 | 5 | window.Echo = new Echo({ 6 | broadcaster: 'reverb', 7 | key: import.meta.env.VITE_REVERB_APP_KEY, 8 | wsHost: import.meta.env.VITE_REVERB_HOST, 9 | wsPort: import.meta.env.VITE_REVERB_PORT ?? 80, 10 | wssPort: import.meta.env.VITE_REVERB_PORT ?? 443, 11 | forceTLS: (import.meta.env.VITE_REVERB_SCHEME ?? 'https') === 'https', 12 | enabledTransports: ['ws', 'wss'], 13 | }); 14 | -------------------------------------------------------------------------------- /resources/js/hooks/useCamelToTitle.js: -------------------------------------------------------------------------------- 1 | export const camelToTitle = (camel) => { 2 | return camel 3 | .replace(/[0-9]{2,}/g, match => ` ${match} `) 4 | .replace(/[^A-Z0-9][A-Z]/g, match => `${match[0]} ${match[1]}`) 5 | .replace(/[A-Z][A-Z][^A-Z0-9]/g, match => `${match[0]} ${match[1]}${match[2]}`) 6 | .replace(/[ ]{2,}/g, match => ' ') 7 | .replace(/\s./g, match => match.toUpperCase()) 8 | .replace(/^./, match => match.toUpperCase()) 9 | .trim(); 10 | }; 11 | -------------------------------------------------------------------------------- /resources/js/lib/utils.js: -------------------------------------------------------------------------------- 1 | import { clsx } from "clsx"; 2 | import { twMerge } from "tailwind-merge"; 3 | 4 | export function cn(...inputs) { 5 | return twMerge(clsx(inputs)); 6 | } 7 | -------------------------------------------------------------------------------- /resources/views/errors/403.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.layout') 2 | 3 | @section('code', '403') 4 | @section('title', 'Forbidden') 5 | @section('message', 'Sorry, you don\'t have permission to access this page.') -------------------------------------------------------------------------------- /resources/views/errors/404.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.layout') 2 | 3 | @section('code', '404') 4 | @section('title', 'Page Not Found') 5 | @section('message', 'Sorry, we couldn\'t find the page you\'re looking for.') -------------------------------------------------------------------------------- /resources/views/errors/419.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.layout') 2 | 3 | @section('code', '419') 4 | @section('title', 'Page Expired') 5 | @section('message', 'Sorry, your session has expired. Please refresh and try again.') -------------------------------------------------------------------------------- /resources/views/errors/429.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.layout') 2 | 3 | @section('code', '429') 4 | @section('title', 'Too Many Requests') 5 | @section('message', 'Sorry, you are making too many requests to our servers.') -------------------------------------------------------------------------------- /resources/views/errors/500.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.layout') 2 | 3 | @section('code', '500') 4 | @section('title', 'Server Error') 5 | @section('message', 'Sorry, something went wrong on our servers.') -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | @extends('errors.layout') 2 | 3 | @section('code', '503') 4 | @section('title', 'Service Unavailable') 5 | @section('message', 'Sorry, we're doing some maintenance. Please check back soon.') -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 7 | }); 8 | -------------------------------------------------------------------------------- /routes/otp.php: -------------------------------------------------------------------------------- 1 | group(function () { 8 | // OTP email code 9 | Route::get('verify-otp/{code}', [OtpController::class, 'verifyOtp']) 10 | ->name('otp.verify'); 11 | 12 | Route::post('otp-resend', [OtpController::class, 'resend']) 13 | ->name('otp.resend'); 14 | // For modal login flow 15 | Route::post('send-otp', [OtpController::class, 'sendOtp']) 16 | ->name('otp.send'); 17 | 18 | Route::post('modal-verify', [OtpController::class, 'modalVerify']) 19 | ->name('modal.verify'); 20 | }); 21 | -------------------------------------------------------------------------------- /routes/web3.php: -------------------------------------------------------------------------------- 1 | group(function () { 7 | Route::post('login', [Web3AuthController::class, 'create']) 8 | ->name('login'); 9 | Route::post('code', [Web3AuthController::class, 'authCode'])->name('auth.code'); 10 | }); 11 | 12 | Route::middleware('auth')->group(function () { 13 | Route::post('logout', [Web3AuthController::class, 'destroy']) 14 | ->name('logout'); 15 | }); 16 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !private/ 3 | !public/ 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /storage/app/private/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | compiled.php 2 | config.php 3 | down 4 | events.scanned.php 5 | maintenance.php 6 | routes.php 7 | routes.scanned.php 8 | schedule-* 9 | services.json 10 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/Feature/Auth/RegistrationTest.php: -------------------------------------------------------------------------------- 1 | get('/register'); 15 | 16 | $response->assertStatus(200); 17 | } 18 | 19 | public function test_new_users_can_register(): void 20 | { 21 | $response = $this->post('/register', [ 22 | 'name' => 'Test User', 23 | 'email' => 'test@example.com', 24 | 'password' => 'password', 25 | 'password_confirmation' => 'password', 26 | ]); 27 | 28 | $this->assertAuthenticated(); 29 | $response->assertRedirect(route('dashboard', absolute: false)); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 16 | 17 | $response->assertStatus(200); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import vue from '@vitejs/plugin-vue'; 2 | import laravel from 'laravel-vite-plugin'; 3 | import { defineConfig } from 'vite'; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | laravel({ 8 | input: [ 9 | 'resources/js/app.js', 10 | 'resources/js/install.js' 11 | ], 12 | refresh: true, 13 | }), 14 | vue({ 15 | template: { 16 | transformAssetUrls: { 17 | base: null, 18 | includeAbsolute: false, 19 | }, 20 | }, 21 | }), 22 | ], 23 | }); 24 | --------------------------------------------------------------------------------