├── .env.sample
├── .gitignore
├── .idea
├── .gitignore
├── dataSources.local.xml
├── dataSources.xml
├── dataSources
│ ├── 2b57a9a1-4a84-4243-bb7f-4cf2df75cce3.xml
│ ├── 364c75f4-b927-49a2-a82f-9b43e367a584.xml
│ └── 7464403f-6496-4dfa-939e-000019f37fec.xml
├── devtool-python-converter.iml
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
└── vcs.xml
├── CHANGELOG.md
├── LICENSE.md
├── MANIFEST.in
├── README.md
├── app
├── __init__.py
├── config.py
├── googlee35aa2f2fd7b0c5b.html
├── robots.txt
├── sitemap.xml
├── static
│ └── assets
│ │ ├── common
│ │ ├── favicon-160x160.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-196x196.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-60x60.png
│ │ ├── favicon-96x96.png
│ │ ├── favicon.ico
│ │ ├── favicon.png
│ │ └── logo.png
│ │ ├── converter
│ │ ├── converter.css
│ │ └── converter.js
│ │ ├── css
│ │ ├── datatb-styles.css
│ │ ├── nucleo-icons.css
│ │ ├── nucleo-svg.css
│ │ ├── soft-design-system.css
│ │ └── soft-design-system.min.css
│ │ ├── fonts
│ │ ├── nucleo-icons.eot
│ │ ├── nucleo-icons.svg
│ │ ├── nucleo-icons.ttf
│ │ ├── nucleo-icons.woff
│ │ ├── nucleo-icons.woff2
│ │ ├── nucleo.eot
│ │ ├── nucleo.ttf
│ │ ├── nucleo.woff
│ │ └── nucleo.woff2
│ │ ├── img
│ │ ├── anastasia.jpg
│ │ ├── annie-spratt.jpg
│ │ ├── apple-icon.png
│ │ ├── blog7-1.jpg
│ │ ├── blog7-2.jpg
│ │ ├── blog7-3.jpg
│ │ ├── brooke.jpg
│ │ ├── bruce-mars.jpg
│ │ ├── card-2.jpg
│ │ ├── card-3.jpg
│ │ ├── charles.jpg
│ │ ├── curved-images
│ │ │ ├── curved-10.jpg
│ │ │ ├── curved-11.jpg
│ │ │ ├── curved-6.jpg
│ │ │ ├── curved-8.jpg
│ │ │ ├── curved.jpg
│ │ │ ├── curved1.jpg
│ │ │ ├── curved11-small.jpg
│ │ │ ├── curved11.jpg
│ │ │ ├── curved13.jpg
│ │ │ ├── curved14.jpg
│ │ │ ├── curved2.jpg
│ │ │ ├── curved5-small.jpg
│ │ │ ├── curved5.jpg
│ │ │ ├── curved6-small.jpg
│ │ │ ├── curved6.jpg
│ │ │ └── curved8.jpg
│ │ ├── down-arrow-dark.svg
│ │ ├── down-arrow-white.svg
│ │ ├── down-arrow.svg
│ │ ├── favicon.png
│ │ ├── illustrations
│ │ │ ├── chat.png
│ │ │ └── sign-up.png
│ │ ├── ivana-square.jpg
│ │ ├── ivana.jpg
│ │ ├── ivancik.jpg
│ │ ├── jordan.jpg
│ │ ├── kal-visuals-square.jpg
│ │ ├── kal-visuals.jpg
│ │ ├── logos
│ │ │ ├── gray-logos
│ │ │ │ ├── logo-apple.svg
│ │ │ │ ├── logo-behance.svg
│ │ │ │ ├── logo-coinbase.svg
│ │ │ │ ├── logo-digitalocean.svg
│ │ │ │ ├── logo-facebook.svg
│ │ │ │ ├── logo-nasa.svg
│ │ │ │ ├── logo-netflix.svg
│ │ │ │ ├── logo-pinterest.svg
│ │ │ │ ├── logo-spotify.svg
│ │ │ │ └── logo-vodafone.svg
│ │ │ ├── medium-logos
│ │ │ │ ├── logo-apple.svg
│ │ │ │ ├── logo-behance.svg
│ │ │ │ ├── logo-coinbase.svg
│ │ │ │ ├── logo-facebook.svg
│ │ │ │ ├── logo-google.svg
│ │ │ │ ├── logo-mailchimp.svg
│ │ │ │ ├── logo-nasa.svg
│ │ │ │ ├── logo-netflix.svg
│ │ │ │ ├── logo-pinterest.svg
│ │ │ │ └── logo-spotify.svg
│ │ │ ├── small-logos
│ │ │ │ ├── logo-apple.svg
│ │ │ │ ├── logo-asana.svg
│ │ │ │ ├── logo-atlassian.svg
│ │ │ │ ├── logo-google-drive.svg
│ │ │ │ ├── logo-invision.svg
│ │ │ │ ├── logo-jira.svg
│ │ │ │ ├── logo-shopify.svg
│ │ │ │ ├── logo-slack.svg
│ │ │ │ ├── logo-spotify.svg
│ │ │ │ ├── logo-weave.svg
│ │ │ │ ├── logo-webdev.svg
│ │ │ │ └── logo-xd.svg
│ │ │ └── white-logos
│ │ │ │ ├── logo-google-white.svg
│ │ │ │ └── logo-spotify-white.svg
│ │ ├── marie.jpg
│ │ ├── meeting.jpg
│ │ ├── nastuh.jpg
│ │ ├── office-dark.jpg
│ │ ├── shapes
│ │ │ ├── pattern-lines.svg
│ │ │ ├── waves-gray.svg
│ │ │ └── waves-white.svg
│ │ ├── team-1.jpg
│ │ ├── team-2.jpg
│ │ ├── team-3.jpg
│ │ ├── team-4.jpg
│ │ ├── toa-heftiba.jpg
│ │ └── wave-1.svg
│ │ ├── js
│ │ ├── core
│ │ │ ├── bootstrap.min.js
│ │ │ └── popper.min.js
│ │ ├── dyn_datatables
│ │ │ ├── data
│ │ │ │ └── index.js
│ │ │ └── src
│ │ │ │ └── index.js
│ │ ├── plugins
│ │ │ ├── choices.min.js
│ │ │ ├── countup.min.js
│ │ │ ├── flatpickr.min.js
│ │ │ ├── moment.min.js
│ │ │ ├── parallax.min.js
│ │ │ ├── perfect-scrollbar.min.js
│ │ │ ├── prism.min.js
│ │ │ ├── rellax.min.js
│ │ │ ├── tilt.min.js
│ │ │ └── typedjs.js
│ │ ├── soft-design-system.js
│ │ └── soft-design-system.min.js
│ │ └── scss
│ │ ├── soft-design-system.scss
│ │ └── soft-design-system
│ │ ├── _alert.scss
│ │ ├── _buttons.scss
│ │ ├── _cards.scss
│ │ ├── _dropdown.scss
│ │ ├── _footer.scss
│ │ ├── _gradients.scss
│ │ ├── _header.scss
│ │ ├── _info-areas.scss
│ │ ├── _misc.scss
│ │ ├── _nav.scss
│ │ ├── _navbar.scss
│ │ ├── _pagination.scss
│ │ ├── _popovers.scss
│ │ ├── _progress.scss
│ │ ├── _tooltips.scss
│ │ ├── _typography.scss
│ │ ├── _utilities.scss
│ │ ├── _variables.scss
│ │ ├── avatars
│ │ ├── _avatar-group.scss
│ │ └── _avatar.scss
│ │ ├── bootstrap
│ │ ├── _accordion.scss
│ │ ├── _alert.scss
│ │ ├── _badge.scss
│ │ ├── _breadcrumb.scss
│ │ ├── _button-group.scss
│ │ ├── _buttons.scss
│ │ ├── _card.scss
│ │ ├── _carousel.scss
│ │ ├── _close.scss
│ │ ├── _containers.scss
│ │ ├── _dropdown.scss
│ │ ├── _forms.scss
│ │ ├── _functions.scss
│ │ ├── _grid.scss
│ │ ├── _helpers.scss
│ │ ├── _images.scss
│ │ ├── _list-group.scss
│ │ ├── _mixins.scss
│ │ ├── _modal.scss
│ │ ├── _nav.scss
│ │ ├── _navbar.scss
│ │ ├── _pagination.scss
│ │ ├── _popover.scss
│ │ ├── _progress.scss
│ │ ├── _reboot.scss
│ │ ├── _root.scss
│ │ ├── _spinners.scss
│ │ ├── _tables.scss
│ │ ├── _toasts.scss
│ │ ├── _tooltip.scss
│ │ ├── _transitions.scss
│ │ ├── _type.scss
│ │ ├── _utilities.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap-grid.scss
│ │ ├── bootstrap-reboot.scss
│ │ ├── bootstrap-utilities.scss
│ │ ├── bootstrap.scss
│ │ ├── forms
│ │ │ ├── _floating-labels.scss
│ │ │ ├── _form-check.scss
│ │ │ ├── _form-control.scss
│ │ │ ├── _form-range.scss
│ │ │ ├── _form-select.scss
│ │ │ ├── _form-text.scss
│ │ │ ├── _input-group.scss
│ │ │ ├── _labels.scss
│ │ │ └── _validation.scss
│ │ ├── helpers
│ │ │ ├── _clearfix.scss
│ │ │ ├── _colored-links.scss
│ │ │ ├── _position.scss
│ │ │ ├── _ratio.scss
│ │ │ ├── _stretched-link.scss
│ │ │ ├── _text-truncation.scss
│ │ │ └── _visually-hidden.scss
│ │ ├── mixins
│ │ │ ├── _alert.scss
│ │ │ ├── _border-radius.scss
│ │ │ ├── _box-shadow.scss
│ │ │ ├── _breakpoints.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _caret.scss
│ │ │ ├── _clearfix.scss
│ │ │ ├── _container.scss
│ │ │ ├── _deprecate.scss
│ │ │ ├── _forms.scss
│ │ │ ├── _gradients.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _image.scss
│ │ │ ├── _list-group.scss
│ │ │ ├── _lists.scss
│ │ │ ├── _pagination.scss
│ │ │ ├── _reset-text.scss
│ │ │ ├── _resize.scss
│ │ │ ├── _table-variants.scss
│ │ │ ├── _text-truncate.scss
│ │ │ ├── _transition.scss
│ │ │ ├── _utilities.scss
│ │ │ └── _visually-hidden.scss
│ │ ├── utilities
│ │ │ └── _api.scss
│ │ └── vendor
│ │ │ └── _rfs.scss
│ │ ├── cards
│ │ └── card-background.scss
│ │ ├── custom
│ │ ├── _styles.scss
│ │ └── _variables.scss
│ │ ├── forms
│ │ ├── _form-check.scss
│ │ ├── _form-select.scss
│ │ ├── _form-switch.scss
│ │ ├── _forms.scss
│ │ ├── _input-group.scss
│ │ ├── _inputs.scss
│ │ └── _labels.scss
│ │ ├── mixins
│ │ ├── _hover.scss
│ │ └── mixins.scss
│ │ ├── theme.scss
│ │ ├── variables
│ │ ├── _animations.scss
│ │ ├── _avatars.scss
│ │ ├── _cards.scss
│ │ ├── _choices.scss
│ │ ├── _dropdowns.scss
│ │ ├── _form-switch.scss
│ │ ├── _header.scss
│ │ ├── _info-areas.scss
│ │ ├── _misc.scss
│ │ ├── _navbar.scss
│ │ ├── _pagination.scss
│ │ └── _utilities.scss
│ │ └── vendor
│ │ ├── _choices.scss
│ │ ├── _flatpickr.scss
│ │ ├── _nouislider.scss
│ │ ├── _prism.scss
│ │ └── plugins.scss
├── templates
│ ├── converter
│ │ └── index.html
│ ├── datatb
│ │ └── datatb.html
│ ├── includes
│ │ ├── footer.html
│ │ ├── navigation-light.html
│ │ └── scripts.html
│ ├── layouts
│ │ └── base.html
│ └── pages
│ │ ├── page-403.html
│ │ ├── page-404.html
│ │ └── page-500.html
├── util
│ ├── __init__.py
│ └── helpers.py
└── views.py
├── docs
└── blank.txt
├── get-pip.py
├── inputs
├── api.sqlite3
├── csv_sales.csv
├── csv_titanic.csv
├── oa_product_json.json
├── oa_product_yaml.yaml
├── pkl_sales.pkl
└── pkl_titanic.pkl
├── publish.txt
├── py_data_converter
├── __init__.py
├── common.py
├── config.py
├── converter_csv.py
├── converter_openapi.py
├── converter_pandas.py
├── jsonparser.py
└── util.py
├── requirements.txt
├── run.py
└── setup.py
/.env.sample:
--------------------------------------------------------------------------------
1 | # True for development, False for production
2 | DEBUG=True
3 |
4 | # Flask ENV
5 | FLASK_APP=run.py
6 | FLASK_ENV=development
7 |
8 | # Used for CDN (in production)
9 | # No Slash at the end
10 | ASSETS_ROOT=/static/assets
11 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/dataSources.local.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | no-auth
7 |
8 |
9 |
10 |
11 | "
12 |
13 |
14 | no-auth
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | "
24 |
25 |
26 | no-auth
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | "
36 |
37 |
38 | no-auth
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/.idea/dataSources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | sqlite.xerial
6 | true
7 | org.sqlite.JDBC
8 | jdbc:sqlite:C:\Users\Mahdi\Desktop\proj1\devtool-python-converter\app\samples\api-django.sqlite3
9 | $ProjectFileDir$
10 |
11 |
12 | sqlite.xerial
13 | true
14 | org.sqlite.JDBC
15 | jdbc:sqlite:C:\Users\Mahdi\Downloads\db (3).sqlite3
16 | $ProjectFileDir$
17 |
18 |
19 | sqlite.xerial
20 | true
21 | org.sqlite.JDBC
22 | jdbc:sqlite:C:\Users\Mahdi\Desktop\proj1\devtool-python-converter\app\temp\xcayjrpl.sqlite3
23 | $ProjectFileDir$
24 |
25 |
26 | file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.39.2/sqlite-jdbc-3.39.2.jar
27 |
28 |
29 |
30 |
31 | sqlite.xerial
32 | true
33 | org.sqlite.JDBC
34 | jdbc:sqlite:C:\Users\Mahdi\Desktop\proj1\devtool-python-converter\inputs\api.sqlite3
35 | $ProjectFileDir$
36 |
37 |
38 | file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.39.2/sqlite-jdbc-3.39.2.jar
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/.idea/devtool-python-converter.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | ## [1.0.10] 2023-01-19
4 | ### Changes
5 |
6 | - DOCS Update
7 | - Update LIVE Version
8 |
9 | ## [1.0.9] 2023-01-18
10 | ### Changes
11 |
12 | - `Update Pricing`: **$499** (one-time payment)
13 | - Shipped Items:
14 | - `Drop 2`: CSV Export
15 | - `Drop 2`: OpenAPI YAML processing
16 | - `Drop 2`: DBMS `Remote URL` (all actions)
17 | - Models Introspection, DataTables, Charts, Export
18 |
19 | ## [1.0.8] 2023-01-06
20 | ### Changes
21 |
22 | - Validation TAG (used for fixes)
23 | - Merge Pull #37
24 | - https://github.com/app-generator/devtool-python-converter/pull/37
25 |
26 | ## [1.0.7] 2023-01-02
27 | ### Changes
28 |
29 | - Validation TAG (used for fixes)
30 |
31 | ## [1.0.6] 2022-12-16
32 | ### Changes
33 |
34 | - `DOCS` Update:
35 | - **Recommended Python Version**: `3.8+`
36 |
37 | ## [1.0.5] 2022-12-16
38 | ### Changes
39 |
40 | - Fix: added missing dependency
41 |
42 | ## [1.0.4] 2022-12-15
43 | ### Changes
44 |
45 | - HOMEpage update (minor)
46 |
47 | ## [1.0.3] 2022-12-15
48 | ### Changes
49 |
50 | - `Python` [Generator & Converter](https://app-generator.dev/) - `LIVE demo`
51 | - `DOCS` Update (minor)
52 | - Update Package License
53 |
54 | ## [1.0.1] 2022-12-15
55 | ### Changes
56 |
57 | - UI Updates (minor)
58 | - Update License
59 |
60 | ## [1.0.0] 2022-12-15
61 | ### Changes
62 |
63 | - Flag STABLE_version
64 | - `Drop1` is validated
65 | - Minor codebase improvements
66 |
67 | ## [0.0.9] 2022-12-15
68 | ### Changes
69 |
70 | - Fixes: reset context at new drop
71 |
72 | ## [0.0.8] 2022-12-15
73 | ### Changes
74 |
75 | - Codebase cleanUP
76 | - PKL conversion stable
77 | - Remove file-based processing
78 |
79 | ## [0.0.7] 2022-12-14
80 | ### Changes
81 |
82 | - DOCS Update
83 | - Update LICENSE (more details)
84 |
85 | ## [0.0.6] 2022-12-14
86 | ### Changes
87 |
88 | - More conversions available
89 | - DOCS Update
90 |
91 | ## [0.0.6] 2022-11-24
92 | ### Changes
93 |
94 | - EULA: terms Update
95 |
96 | ## [0.0.4] 2022-11-24
97 | ### Changes
98 |
99 | - **LICENSE Update**
100 | - `EULA terms`
101 |
102 | ## [0.0.3] 2022-11-22
103 | ### Improvements
104 |
105 | - DOCS Update (README)
106 |
107 | ## [0.0.2] 2022-11-22
108 | ### Dummy
109 |
110 | - Minor Updates
111 |
112 | ## [0.0.1] 2022-11-22
113 | ### Dummy Release
114 |
115 | - No evolutions, just codebase
116 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # End User License Agreement
2 |
3 | Copyright (c) 2019 - present [AppSeed](http://appseed.us/)
4 |
5 |
6 |
7 | ## General Information
8 |
9 | This document explains the usage of this **open-source** product developed by **[AppSeed](http://appseed.us/)**.
10 |
11 | > The Terms:
12 |
13 | - `Solo-Developer`: code digital products as freelencer (without being incorporated in a company)
14 | - `StartUp` - young company founded 12mo (or less) in the past
15 | - `Small Company` - maximum 5 developers, active for more than 1year
16 | - `Company` - More than 5 developers and less than 50
17 | - `Corporate` - More than 50 developers
18 | - `NGO` - [Non Governmental Organization](https://en.wikipedia.org/wiki/Non-governmental_organization)
19 |
20 |
21 |
22 | ### Free Usage
23 |
24 | | **Target Entities** - Who can benefit | --- |
25 | | ---------------------------------- | --- |
26 | | Solo-Developers | **YES** |
27 | | [NGOs](https://en.wikipedia.org/wiki/Non-governmental_organization) | **YES** |
28 | | --- | --- |
29 | | **End Products** | --- |
30 | | Personal Use (hobby projects) | **YES** |
31 | | eLearning Activities | **YES** |
32 | | End-Product usage for [NGOs](https://en.wikipedia.org/wiki/Non-governmental_organization) | **YES** |
33 | | --- | --- |
34 | | **Support** | --- |
35 | | Github (issues tracker) | **YES** |
36 | | Email *support @ appseed.us* | **YES** |
37 | | --- | --- |
38 | | **Forbidden Usage** (without a license) | --- |
39 | | `End-products` for sale - paying, non-paying users | **NO** (license required) |
40 | | Used by `StartUPs` | **NO** (license required) |
41 | | Used by `Companies` | **NO** (license required) |
42 | | Used in `Corporates`, 50+ developers | **NO** (license required) |
43 | | `End-Product` for `Government` - All Countries | **NO** (license required) |
44 | | `End-Product sale` to users/companies | **NO** (license required) |
45 |
46 |
47 |
48 | ### Lifetime License
49 |
50 | > `One-time Payment` via GUMROAD - [$499](https://appseed.gumroad.com/l/devtool-python-converter) (payment link)
51 |
52 | The license covers:
53 |
54 | - `Usage in commercial` projects
55 | - `Usage in eLearning` activities
56 | - `Unlimited projects` (hobby, commercial)
57 | - `Premium` [Support](https://appseed.us/support/) via Email / `Discord`
58 |
59 | > `IMPORTANT`: The **end-product that used the tool should NOT compete with AppSeed**.
60 |
61 |
62 |
63 | ---
64 | For more information regarding licensing, please contact the AppSeed Service < *support@appseed.us* >
65 |
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include LICENSE.md
2 | include README.md
3 | recursive-include py_data_converter *
4 | recursive-include docs *
5 |
--------------------------------------------------------------------------------
/app/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | # import Flask
7 | from flask import Flask
8 | from flask_cors import CORS
9 |
10 | from .config import Config
11 |
12 | # Inject Flask magic
13 | app = Flask(__name__)
14 |
15 | CORS(app)
16 |
17 | # load Configuration
18 | app.config.from_object(Config)
19 |
20 | # Import routing to render the pages
21 | from app import views
22 |
--------------------------------------------------------------------------------
/app/config.py:
--------------------------------------------------------------------------------
1 | # -*- encoding: utf-8 -*-
2 | """
3 | Copyright (c) 2019 - present AppSeed.us
4 | """
5 |
6 | import os
7 |
8 | class Config(object):
9 |
10 | basedir = os.path.abspath(os.path.dirname(__file__))
11 |
12 | DEBUG = (os.getenv('DEBUG', 'False') == 'True')
13 |
14 | # Assets Management
15 | ASSETS_ROOT = os.getenv('ASSETS_ROOT', '/static/assets')
16 |
17 | # App Config - the minimal footprint
18 | SECRET_KEY = os.getenv('SECRET_KEY', 'S#perS3crEt_9999')
19 |
20 | # Google Apikey
21 | GOOGLE_API_KEY = os.getenv('GOOGLE_API_KEY', None)
22 |
23 | # temp directory for sqlite_dbms
24 | TEMP_FILE_DIRECTORY = 'app\\temp\\'
25 |
26 | # Input file limit
27 | INPUT_LIMIT = 500000
28 |
29 | # App Valid INPUTs
30 | ALLOWED_EXTENSIONS = {'json', 'yaml', 'csv', 'pkl'}
31 |
--------------------------------------------------------------------------------
/app/googlee35aa2f2fd7b0c5b.html:
--------------------------------------------------------------------------------
1 | google-site-verification: googlee35aa2f2fd7b0c5b.html
--------------------------------------------------------------------------------
/app/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
3 |
--------------------------------------------------------------------------------
/app/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 | https://app-generator.dev
11 | 1
12 | weekly
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/static/assets/common/favicon-160x160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon-160x160.png
--------------------------------------------------------------------------------
/app/static/assets/common/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon-16x16.png
--------------------------------------------------------------------------------
/app/static/assets/common/favicon-196x196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon-196x196.png
--------------------------------------------------------------------------------
/app/static/assets/common/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon-32x32.png
--------------------------------------------------------------------------------
/app/static/assets/common/favicon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon-60x60.png
--------------------------------------------------------------------------------
/app/static/assets/common/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon-96x96.png
--------------------------------------------------------------------------------
/app/static/assets/common/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon.ico
--------------------------------------------------------------------------------
/app/static/assets/common/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/favicon.png
--------------------------------------------------------------------------------
/app/static/assets/common/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/common/logo.png
--------------------------------------------------------------------------------
/app/static/assets/css/datatb-styles.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: rgb(247, 247, 247);
3 | font-family: system-ui, -apple-system, "Segoe UI", Roboto;
4 | }
5 |
6 | tr:hover {
7 | background-color: rgb(230, 229, 229);
8 | }
9 |
10 | .item {
11 | margin-bottom: 40px;
12 | }
13 |
14 | div.datatable-top::after {
15 | display: none; !important;
16 | }
17 |
18 | #search-container {
19 | width: 10%;
20 | }
21 |
22 | img {
23 | height: 40px;
24 | }
25 |
26 | img:hover {
27 | cursor: pointer;
28 | }
--------------------------------------------------------------------------------
/app/static/assets/css/nucleo-svg.css:
--------------------------------------------------------------------------------
1 | /* Generated using nucleoapp.com */
2 | /* --------------------------------
3 |
4 | Icon colors
5 |
6 | -------------------------------- */
7 |
8 | .icon {
9 | display: inline-block;
10 | /* icon primary color */
11 | color: #111111;
12 | height: 1em;
13 | width: 1em;
14 | }
15 |
16 | .icon use {
17 | /* icon secondary color - fill */
18 | fill: #7ea6f6;
19 | }
20 |
21 | .icon.icon-outline use {
22 | /* icon secondary color - stroke */
23 | stroke: #7ea6f6;
24 | }
25 |
26 | /* --------------------------------
27 |
28 | Change icon size
29 |
30 | -------------------------------- */
31 |
32 | .icon-xs {
33 | height: 0.5em;
34 | width: 0.5em;
35 | }
36 |
37 | .icon-sm {
38 | height: 0.8em;
39 | width: 0.8em;
40 | }
41 |
42 | .icon-lg {
43 | height: 1.6em;
44 | width: 1.6em;
45 | }
46 |
47 | .icon-xl {
48 | height: 2em;
49 | width: 2em;
50 | }
51 |
52 | /* --------------------------------
53 |
54 | Align icon and text
55 |
56 | -------------------------------- */
57 |
58 | .icon-text-aligner {
59 | /* add this class to parent element that contains icon + text */
60 | display: flex;
61 | align-items: center;
62 | }
63 |
64 | .icon-text-aligner .icon {
65 | color: inherit;
66 | margin-right: 0.4em;
67 | }
68 |
69 | .icon-text-aligner .icon use {
70 | color: inherit;
71 | fill: currentColor;
72 | }
73 |
74 | .icon-text-aligner .icon.icon-outline use {
75 | stroke: currentColor;
76 | }
77 |
78 | /* --------------------------------
79 |
80 | Icon reset values - used to enable color customizations
81 |
82 | -------------------------------- */
83 |
84 | .icon {
85 | fill: currentColor;
86 | stroke: none;
87 | }
88 |
89 | .icon.icon-outline {
90 | fill: none;
91 | stroke: currentColor;
92 | }
93 |
94 | .icon use {
95 | stroke: none;
96 | }
97 |
98 | .icon.icon-outline use {
99 | fill: none;
100 | }
101 |
102 | /* --------------------------------
103 |
104 | Stroke effects - Nucleo outline icons
105 |
106 | - 16px icons -> up to 1px stroke (16px outline icons do not support stroke changes)
107 | - 24px, 32px icons -> up to 2px stroke
108 | - 48px, 64px icons -> up to 4px stroke
109 |
110 | -------------------------------- */
111 |
112 | .icon-outline.icon-stroke-1 {
113 | stroke-width: 1px;
114 | }
115 |
116 | .icon-outline.icon-stroke-2 {
117 | stroke-width: 2px;
118 | }
119 |
120 | .icon-outline.icon-stroke-3 {
121 | stroke-width: 3px;
122 | }
123 |
124 | .icon-outline.icon-stroke-4 {
125 | stroke-width: 4px;
126 | }
127 |
128 | .icon-outline.icon-stroke-1 use,
129 | .icon-outline.icon-stroke-3 use {
130 | -webkit-transform: translateX(0.5px) translateY(0.5px);
131 | -moz-transform: translateX(0.5px) translateY(0.5px);
132 | -ms-transform: translateX(0.5px) translateY(0.5px);
133 | -o-transform: translateX(0.5px) translateY(0.5px);
134 | transform: translateX(0.5px) translateY(0.5px);
135 | }
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo-icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo-icons.eot
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo-icons.ttf
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo-icons.woff
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo-icons.woff2
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo.eot
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo.ttf
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo.woff
--------------------------------------------------------------------------------
/app/static/assets/fonts/nucleo.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/fonts/nucleo.woff2
--------------------------------------------------------------------------------
/app/static/assets/img/anastasia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/anastasia.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/annie-spratt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/annie-spratt.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/apple-icon.png
--------------------------------------------------------------------------------
/app/static/assets/img/blog7-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/blog7-1.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/blog7-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/blog7-2.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/blog7-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/blog7-3.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/brooke.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/brooke.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/bruce-mars.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/bruce-mars.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/card-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/card-2.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/card-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/card-3.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/charles.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/charles.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved-10.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved-11.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved-6.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved-8.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved1.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved11-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved11-small.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved11.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved13.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved14.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved2.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved5-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved5-small.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved5.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved6-small.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved6-small.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved6.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/curved-images/curved8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/curved-images/curved8.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/down-arrow-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/app/static/assets/img/down-arrow-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/static/assets/img/down-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/favicon.png
--------------------------------------------------------------------------------
/app/static/assets/img/illustrations/chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/illustrations/chat.png
--------------------------------------------------------------------------------
/app/static/assets/img/illustrations/sign-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/illustrations/sign-up.png
--------------------------------------------------------------------------------
/app/static/assets/img/ivana-square.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/ivana-square.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/ivana.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/ivana.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/ivancik.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/ivancik.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/jordan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/jordan.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/kal-visuals-square.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/kal-visuals-square.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/kal-visuals.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/kal-visuals.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/logos/gray-logos/logo-netflix.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/medium-logos/logo-netflix.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-apple.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-asana.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-atlassian.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-google-drive.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-invision.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-jira.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-shopify.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-slack.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-spotify.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-weave.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-webdev.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/logos/small-logos/logo-xd.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/img/marie.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/marie.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/meeting.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/meeting.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/nastuh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/nastuh.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/office-dark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/office-dark.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/team-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/team-1.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/team-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/team-2.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/team-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/team-3.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/team-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/team-4.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/toa-heftiba.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/app-generator/devtool-python-converter/3a69cd8e077525c34e7d8382c8ac7e9cb5f03088/app/static/assets/img/toa-heftiba.jpg
--------------------------------------------------------------------------------
/app/static/assets/img/wave-1.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/static/assets/js/dyn_datatables/data/index.js:
--------------------------------------------------------------------------------
1 | export let myData = {}
2 | export let modelName = ''
3 |
4 | export const setData = (headings , data) => {
5 | myData = {
6 | headings: headings,
7 | data: data,
8 | }
9 | }
10 |
11 | export const setModelName = (data) => {
12 | modelName = data
13 | }
--------------------------------------------------------------------------------
/app/static/assets/js/dyn_datatables/src/index.js:
--------------------------------------------------------------------------------
1 | import { myData } from "../data/index.js";
2 |
3 | // table
4 | window.dataTable = new simpleDatatables.DataTable("table", {
5 | data: myData,
6 | perPageSelect: [10, 25, 50],
7 | perPage: 10,
8 | labels: {
9 | placeholder: "Search...",
10 | perPage: "{select} entries per page",
11 | noRows: "No entries to found",
12 | info: "Showing {start} to {end} of {rows} entries",
13 | },
14 | searchable: true,
15 | });
16 |
--------------------------------------------------------------------------------
/app/static/assets/js/plugins/parallax.min.js:
--------------------------------------------------------------------------------
1 | var windowHeight = window.innerHeight;
2 |
3 | document.addEventListener('resize', function() {
4 | windowHeight = window.innerHeight;
5 | })
6 |
7 | function outerHeight(el) {
8 | var height = el.offsetHeight;
9 | var style = getComputedStyle(el);
10 |
11 | height += parseInt(style.marginTop) + parseInt(style.marginBottom);
12 | return height;
13 | }
14 |
15 | function parallax (el, speedFactor, outerHeight) {
16 | var foo = document.querySelectorAll(el);
17 |
18 | var getHeight;
19 | var firstTop;
20 | var paddingTop = 0;
21 |
22 | //get the starting position of each element to have parallax applied to it
23 | foo.forEach(function(subEl){
24 | firstTop = subEl.getBoundingClientRect().top;
25 | });
26 |
27 | if (outerHeight) {
28 | getHeight = function(el) {
29 | return outerHeight(el);
30 | };
31 | } else {
32 | getHeight = function(el) {
33 | return el.clientHeight;
34 | };
35 | }
36 |
37 | // function to be called whenever the window is scrolled or resized
38 | function update(){
39 | var pos = window.scrollY;
40 |
41 | foo.forEach(function(subEl){
42 | var element = subEl;
43 | var top = element.getBoundingClientRect().top;
44 | var height = getHeight(element);
45 |
46 | element.style.top = -(Math.round((firstTop - pos) * speedFactor)) + "px";
47 | });
48 | }
49 | document.addEventListener('scroll', update, true)
50 | document.addEventListener('resize', update)
51 | update()
52 | };
53 |
54 | parallax(".hero", -0.6);
55 |
--------------------------------------------------------------------------------
/app/static/assets/js/soft-design-system.min.js:
--------------------------------------------------------------------------------
1 | var popoverTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')),popoverList=popoverTriggerList.map(function(t){return new bootstrap.Popover(t)}),tooltipTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')),tooltipList=tooltipTriggerList.map(function(t){return new bootstrap.Tooltip(t)});function setAttributes(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}popoverList=(popoverTriggerList=[].slice.call(document.querySelectorAll('[data-toggle="popover"]'))).map(function(t){return new bootstrap.Popover(t)}),tooltipList=(tooltipTriggerList=[].slice.call(document.querySelectorAll('[data-toggle="tooltip"]'))).map(function(t){return new bootstrap.Tooltip(t)});function copyCode(t){const e=window.getSelection(),o=document.createRange();var r=t.nextElementSibling;o.selectNodeContents(r),e.removeAllRanges(),e.addRange(o);var n;document.execCommand("copy");window.getSelection().removeAllRanges(),t.parentElement.querySelector(".alert")||((n=document.createElement("div")).classList.add("alert","alert-success","position-absolute","top-0","border-0","text-white","w-25","end-0","start-0","mt-2","mx-auto","py-2"),n.style.transform="translate3d(0px, 0px, 0px)",n.style.opacity="0",n.style.transition=".35s ease",setTimeout(function(){n.style.transform="translate3d(0px, 20px, 0px)",n.style.setProperty("opacity","1","important")},100),n.innerHTML="Code successfully copied!",t.parentElement.appendChild(n),setTimeout(function(){n.style.transform="translate3d(0px, 0px, 0px)",n.style.setProperty("opacity","0","important")},2e3),setTimeout(function(){t.parentElement.querySelector(".alert").remove()},2500))}function debounce(o,r,n){var l;return function(){var t=this,e=arguments;clearTimeout(l),l=setTimeout(function(){l=null,n||o.apply(t,e)},r),n&&!l&&o.apply(t,e)}}
2 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system.scss:
--------------------------------------------------------------------------------
1 | // =========================================================
2 | // * Soft UI Design System - v1.0.1
3 | // =========================================================
4 | //
5 | // * Product Page: https://www.creative-tim.com/product/soft-ui-design-system
6 | // * Copyright 2021 Creative Tim (https://www.creative-tim.com)
7 | //
8 | // Coded by www.creative-tim.com
9 | //
10 | // =========================================================
11 | //
12 | // * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
13 |
14 | // Bootstrap Functions
15 | @import "soft-design-system/bootstrap/functions";
16 |
17 | // Custom Variables
18 | @import "soft-design-system/custom/variables";
19 |
20 | // Theme Variables
21 | @import "soft-design-system/variables";
22 |
23 | // Bootstrap Core
24 | @import "soft-design-system/bootstrap/bootstrap";
25 |
26 | // Theme Core
27 | @import "soft-design-system/theme";
28 |
29 | // Custom Variables
30 | @import "soft-design-system/custom/styles";
31 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_alert.scss:
--------------------------------------------------------------------------------
1 | @each $state, $value in $theme-gradient-colors {
2 | .alert-#{$state} {
3 | @include gradient-directional(nth($value, 1) 0%, darken(nth($value, -1), 8%) 100%, $deg: 310deg);
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_buttons.scss:
--------------------------------------------------------------------------------
1 | .btn {
2 | margin-bottom: $btn-margin-bottom;
3 | letter-spacing: $a-letter-spacing;
4 | text-transform: uppercase;
5 | box-shadow: $btn-box-shadow;
6 | background-size: $btn-background-size;
7 | background-position-x: $btn-background-position-x;
8 |
9 | &:not([class*="btn-outline-"]) {
10 | border: 0;
11 | }
12 |
13 | &:active,
14 | &:active:focus,
15 | &:active:hover {
16 | box-shadow: $btn-hover-box-shadow;
17 | transform: $btn-active-hover-transform;
18 | opacity: $btn-hover-opacity;
19 | }
20 |
21 | @include hover {
22 | box-shadow: $btn-hover-box-shadow;
23 | transform: $btn-hover-transform;
24 | }
25 |
26 | &.bg-white {
27 | @include hover {
28 | color: $body-color;
29 | }
30 | }
31 |
32 | &.btn-link{
33 | box-shadow: none;
34 | font-weight: $btn-font-weight;
35 |
36 | &:hover,
37 | &:focus{
38 | box-shadow: none;
39 | }
40 | }
41 | &.btn-round {
42 | border-radius: $btn-border-rounded;
43 | }
44 | // Button Just Icon
45 |
46 | &.btn-icon-only {
47 | width: $btn-just-icon-width;
48 | height: $btn-just-icon-height;
49 | padding: 0;
50 | }
51 |
52 | // Button Icon Sizes
53 |
54 | &.btn-sm {
55 | &.btn-icon-only {
56 | width: $btn-just-icon-width-sm;
57 | height: $btn-just-icon-height-sm;
58 | }
59 |
60 | i {
61 | font-size: $btn-just-icon-sm-font-size;
62 | }
63 | }
64 |
65 | &.btn-lg {
66 | &.btn-icon-only {
67 | width: $btn-just-icon-width-lg;
68 | height: $btn-just-icon-height-lg;
69 | }
70 |
71 | i {
72 | font-size: $btn-just-icon-lg-font-size;
73 | position: $btn-just-icon-lg-position;
74 | top: $btn-just-icon-lg-top;
75 | }
76 | }
77 |
78 | &.btn-rounded {
79 | border-radius: $btn-border-rounded;
80 | }
81 | }
82 |
83 | .icon-move-right {
84 | i {
85 | transition: $btn-icon-transition;
86 | }
87 | &:hover,
88 | &:focus {
89 | i {
90 | transform: $btn-icon-transform;
91 | }
92 | }
93 | }
94 |
95 | @each $color, $value in $theme-colors {
96 | .btn-#{$color},
97 | .btn.bg-gradient-#{$color} {
98 | @include hover {
99 | background-color: $value;
100 | border-color: $value;
101 | }
102 | .btn.bg-outline-#{$color} {
103 | border: $border-width solid $value;
104 | }
105 |
106 | &:not(:disabled):not(.disabled).active,
107 | &:not(:disabled):not(.disabled):active,
108 | .show > &.dropdown-toggle {
109 | color: color-yiq($value);
110 | background-color: $value;
111 | }
112 |
113 | @if $value != $white {
114 | &.focus,
115 | &:focus {
116 | color: $white;
117 | }
118 | }
119 | }
120 |
121 | .btn-outline-#{$color} {
122 | box-shadow: none;
123 | @include hover {
124 | background-color: transparent;
125 | opacity: .75;
126 | box-shadow: none;
127 | color: $value;
128 | }
129 | }
130 | }
131 |
132 | .btn-outline-white{
133 | border-color: rgba($white, .75);
134 | background: rgba($white, .1);
135 | }
136 |
137 | @each $color, $value in $btn-font-colors {
138 | .btn-#{$color},
139 | .btn.bg-gradient-#{$color} {
140 | color: $value;
141 | @include hover {
142 | color: $value;
143 | }
144 | }
145 | }
146 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_cards.scss:
--------------------------------------------------------------------------------
1 | .card {
2 | box-shadow: $card-box-shadow;
3 | .card-header {
4 | padding: $card-header-padding;
5 | }
6 |
7 | .card-body {
8 | font-family: $font-family-sans-serif;
9 | padding: $card-body-padding;
10 | }
11 |
12 | &.card-plain {
13 | background-color: $card-plain-bg-color;
14 | box-shadow: $card-plain-box-shadow;
15 | }
16 |
17 | .card-footer {
18 | padding: $card-footer-padding;
19 | background-color: transparent;
20 | }
21 | }
22 |
23 | .author {
24 | display: $card-author-display;
25 |
26 | .name > span {
27 | line-height: $card-author-name-line-height;
28 | font-weight: $font-weight-bold;
29 | font-size: $font-size-sm;
30 | color: $card-author-name-color;
31 | }
32 |
33 | .stats {
34 | font-size: $font-size-sm;
35 | font-weight: $font-weight-normal;
36 | }
37 | }
38 |
39 | @import 'cards/card-background';
40 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_footer.scss:
--------------------------------------------------------------------------------
1 | .footer {
2 | .nav-link {
3 | color: $dark;
4 | font-weight: $font-weight-normal;
5 | font-size: $font-size-sm;
6 | padding-top: 0;
7 | padding-bottom: $nav-link-footer-padding;
8 |
9 | &:hover {
10 | opacity: 1 !important;
11 | transition: $footer-link-animation;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_gradients.scss:
--------------------------------------------------------------------------------
1 | @each $prop, $value in $theme-gradient-colors {
2 | .bg-gradient-#{$prop} {
3 | @include gradient-directional(nth($value, 1) 0%, nth($value, -1) 100%, $deg: 310deg);
4 | }
5 | }
6 |
7 | @each $prop, $value in $theme-colors {
8 | .bg-gradient-faded-#{$prop} {
9 | background-image: radial-gradient(370px circle at 80% 50%,rgba($value, .6) 0,darken($value, 10%) 100%)
10 | }
11 | }
12 |
13 |
14 | @each $prop, $value in $theme-colors {
15 | &.bg-gradient-faded-#{$prop}-vertical{
16 | background-image: radial-gradient(200px circle at 50% 70%, rgba($value, .3) 0, $value 100%);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_header.scss:
--------------------------------------------------------------------------------
1 | .page-header {
2 | padding: $page-header-padding;
3 | position: $page-header-position;
4 | overflow: $page-header-overflow;
5 | display: $page-header-display;
6 | align-items: $page-header-align-items;
7 | background-size: $page-header-bg-size;
8 | background-position: $page-header-bg-position;
9 |
10 | .container {
11 | z-index: $page-header-conteiner-index;
12 | }
13 | }
14 |
15 | .oblique {
16 | transform: $header-oblique-transform;
17 | overflow: $header-oblique-overflow;
18 | width: $header-oblique-img-width;
19 | right: $header-oblique-img-right;
20 | border-bottom-left-radius: $border-radius-lg;
21 |
22 | .oblique-image {
23 | transform: $header-oblique-img-transform;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_nav.scss:
--------------------------------------------------------------------------------
1 | .nav {
2 | &.nav-pills {
3 | background: $nav-pills-background;
4 | border-radius: $nav-pills-border-radius;
5 | position: relative;
6 |
7 | &.nav-pills-vertical {
8 | border-radius: $nav-pills-vertical-radius;
9 |
10 | .nav-link {
11 | &.active {
12 | border-radius: $nav-pills-vertical-link-radius;
13 | }
14 | }
15 | }
16 |
17 | .nav-link {
18 | z-index: 3;
19 | color: $dark;
20 | border-radius: $nav-pills-link-border-radius;
21 | background-color: inherit;
22 |
23 | &.active {
24 | animation: $nav-pills-link-active-animation;
25 | box-shadow: $nav-pills-link-box-shadow;
26 | background-color: $white !important;
27 | }
28 |
29 | &:hover:not(.active) {
30 | color: $dark;
31 | }
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_navbar.scss:
--------------------------------------------------------------------------------
1 | .navbar {
2 | box-shadow: $navbar-box-shadow;
3 |
4 | .navbar-brand {
5 | color: $dark;
6 | @include font-size($font-size-sm);
7 | }
8 | .nav-link {
9 | color: $dark;
10 | padding: $navbar-nav-link-padding;
11 | font-weight: $font-weight-normal;
12 | font-size: $font-size-sm;
13 | }
14 |
15 | &.navbar-absolute {
16 | position: absolute;
17 | width: 100%;
18 | z-index: 1;
19 | }
20 |
21 | &.navbar-transparent {
22 | .nav-link {
23 | color: $white;
24 |
25 | &:hover,
26 | &:focus {
27 | color: rgba($white, .75);
28 | }
29 | }
30 |
31 | .navbar-toggler {
32 | .navbar-toggler-icon {
33 | .navbar-toggler-bar {
34 | background: $white;
35 | }
36 | }
37 | }
38 |
39 | .navbar-collapse{
40 | border-radius: $border-radius-xl;
41 | }
42 | }
43 |
44 | &.navbar-dark {
45 | .navbar-collapse.show,
46 | .navbar-collapse.collapsing
47 | {
48 | .dropdown-header.text-dark{
49 | color: $white !important;
50 | }
51 | }
52 | }
53 | }
54 | .navbar-light {
55 | background-color: $white !important;
56 | .navbar-toggler{
57 | border: none;
58 | &:focus{
59 | box-shadow: none;
60 | }
61 | }
62 | }
63 |
64 | .navbar-toggler {
65 | .navbar-toggler-icon {
66 | background-image: none;
67 |
68 | .navbar-toggler-bar {
69 | display: $navbar-toggler-bar-display;
70 | position: $navbar-toggler-bar-position;
71 | width: $navbar-toggler-bar-width;
72 | height: $navbar-toggler-bar-height;
73 | border-radius: $navbar-toggler-bar-radius;
74 | background: $gray-600;
75 | transition: $navbar-toggler-bar-transition;
76 | margin: 0 auto;
77 |
78 | &.bar2,
79 | &.bar3 {
80 | margin-top: $navbar-toggler-bar-margin-top;
81 | }
82 | }
83 | }
84 |
85 | &[aria-expanded="true"] {
86 | .navbar-toggler-bar {
87 | &.bar1 {
88 | transform: $navbar-toggler-bar-1-transform;
89 | transform-origin: $navbar-toggler-bar-1-transform-origin;
90 | margin-top: $navbar-toggler-bar-1-margin-top;
91 | }
92 |
93 | &.bar2 {
94 | opacity: $navbar-toggler-bar-2-opacity;
95 | }
96 |
97 | &.bar3 {
98 | transform: $navbar-toggler-bar-3-transform;
99 | transform-origin: $navbar-toggler-bar-3-transform-origin;
100 | margin-top: $navbar-toggler-bar-3-margin-top;
101 | }
102 | }
103 | }
104 | }
105 |
106 | @include media-breakpoint-down(lg) {
107 | .navbar{
108 | &.navbar-transparent{
109 | .navbar-collapse.collapsing{
110 | background: $white;
111 | }
112 |
113 | .navbar-collapse.show{
114 | background: $white;
115 | .nav-link{
116 | color: $dark;
117 | }
118 | }
119 | }
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_pagination.scss:
--------------------------------------------------------------------------------
1 | .page-item {
2 | &.active .page-link {
3 | box-shadow: $pagination-active-box-shadow;
4 | }
5 |
6 | .page-link,
7 | span {
8 | display: $page-link-display;
9 | align-items: $page-link-align-items;
10 | justify-content: $page-link-justify-content;
11 | color: $secondary;
12 | padding: 0;
13 | margin: $page-link-margin;
14 | border-radius: $page-link-radius !important;
15 | width: $page-link-width;
16 | height: $page-link-height;
17 | font-size: $font-size-sm;
18 | }
19 | }
20 |
21 | .pagination-lg {
22 | .page-item {
23 | .page-link,
24 | span {
25 | width: $page-link-width-lg;
26 | height: $page-link-height-lg;
27 | line-height: $page-link-line-height-lg;
28 | }
29 | }
30 | }
31 |
32 | .pagination-sm {
33 | .page-item {
34 | .page-link,
35 | span {
36 | width: $page-link-width-sm;
37 | height: $page-link-height-sm;
38 | line-height: $page-link-line-height-sm;
39 | }
40 | }
41 | }
42 |
43 |
44 | // Colors
45 | .pagination {
46 | @each $name, $value in $theme-gradient-colors {
47 | &.pagination-#{$name} {
48 | .page-item.active > .page-link {
49 | &,
50 | &:focus,
51 | &:hover {
52 | @include gradient-directional(nth($value, 1) 0%, nth($value, -1) 100%, $deg: 310deg);
53 | border: none;
54 | }
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_popovers.scss:
--------------------------------------------------------------------------------
1 | .popover {
2 | box-shadow: $popover-box-shadow;
3 | }
4 |
5 | // popover title
6 | .popover {
7 | .popover-header {
8 | font-weight: 600;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_progress.scss:
--------------------------------------------------------------------------------
1 | .progress-bar {
2 | height: $progress-bar-height;
3 | border-radius: $border-radius;
4 | margin-top: -2px;
5 | }
6 |
7 | .progress {
8 | overflow: visible;
9 |
10 | &.progress-sm {
11 | height: $progress-height-sm;
12 | }
13 | &.progress-lg {
14 | height: $progress-height-lg;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/_tooltips.scss:
--------------------------------------------------------------------------------
1 | .bs-tooltip-auto[x-placement^=right] .tooltip-arrow,
2 | .bs-tooltip-right .tooltip-arrow {
3 | left: $tooltip-arrow-left;
4 | }
5 |
6 | .bs-tooltip-auto[x-placement^=left] .tooltip-arrow,
7 | .bs-tooltip-left .tooltip-arrow {
8 | right: $tooltip-arrow-right;
9 | }
10 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/avatars/_avatar-group.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Avatar group
3 | //
4 |
5 | // General styles
6 |
7 | .avatar-group {
8 | .avatar {
9 | position: relative;
10 | z-index: $avatar-group-zindex;
11 | border: $avatar-group-border solid $card-bg;
12 |
13 | &:hover {
14 | z-index: $avatar-group-zindex-hover;
15 | }
16 | }
17 |
18 | .avatar + .avatar {
19 | margin-left: $avatar-group-double;
20 |
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/avatars/_avatar.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Avatar
3 | //
4 |
5 | // General styles
6 |
7 | .avatar {
8 | color: $white;
9 | display: inline-flex;
10 | align-items: center;
11 | justify-content: center;
12 | font-size: $avatar-font-size;
13 | border-radius: $border-radius-lg;
14 | height: $avatar-height;
15 | width: $avatar-width;
16 | transition: all .2s ease-in-out;
17 |
18 | img {
19 | width: 100%;
20 | border-radius: $border-radius;
21 | }
22 |
23 | &.rounded-circle {
24 | img {
25 | @extend .rounded-circle;
26 | }
27 | }
28 |
29 | + .avatar-content {
30 | display: inline-block;
31 | margin-left: $avatar-content-margin;
32 | }
33 |
34 |
35 | &.avatar-raised {
36 | margin-top: -($avatar-height / 2);
37 | }
38 |
39 | &.avatar-scale-up:hover {
40 | transform: scale(1.2);
41 |
42 | }
43 | }
44 |
45 | // Style for the Testimonials Carousel
46 | .active {
47 | .avatar.avatar-scale-up {
48 | transform: scale(1.2);
49 | }
50 | }
51 |
52 |
53 | // Avatar size variations
54 |
55 | .avatar-xxl {
56 | width: $avatar-xxl-width !important;
57 | height: $avatar-xxl-height !important;
58 |
59 | &.avatar-raised {
60 | margin-top: -($avatar-xxl-height / 2);
61 | }
62 | }
63 |
64 | .avatar-xl {
65 | width: $avatar-xl-width !important;
66 | height: $avatar-xl-height !important;
67 |
68 | &.avatar-raised {
69 | margin-top: -($avatar-xl-height / 2);
70 | }
71 | }
72 |
73 | .avatar-lg {
74 | width: $avatar-lg-width !important;
75 | height: $avatar-lg-height !important;
76 | font-size: $font-size-sm;
77 |
78 | &.avatar-raised {
79 | margin-top: -($avatar-lg-height / 2);
80 | }
81 | }
82 |
83 | .avatar-sm {
84 | width: $avatar-sm-width !important;
85 | height: $avatar-sm-height !important;
86 | font-size: $font-size-sm;
87 |
88 | &.avatar-raised {
89 | margin-top: -($avatar-sm-height / 2);
90 | }
91 | }
92 |
93 | .avatar-xs {
94 | width: $avatar-xs-width !important;
95 | height: $avatar-xs-height !important;
96 | font-size: $font-size-xs;
97 |
98 | &.avatar-raised {
99 | margin-top: -($avatar-xs-height / 2);
100 | }
101 | }
102 |
103 | // avatar group
104 | @import "avatar-group";
105 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_accordion.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .accordion-button {
6 | position: relative;
7 | display: flex;
8 | align-items: center;
9 | width: 100%;
10 | padding: $accordion-button-padding-y $accordion-button-padding-x;
11 | @include font-size($font-size-base);
12 | color: $accordion-button-color;
13 | text-align: left; // Reset button style
14 | background-color: $accordion-button-bg;
15 | border: $accordion-border-width solid $accordion-border-color;
16 | @include border-radius(0);
17 | overflow-anchor: none;
18 | @include transition($accordion-transition);
19 |
20 | &.collapsed {
21 | border-bottom-width: 0;
22 | }
23 |
24 | &:not(.collapsed) {
25 | color: $accordion-button-active-color;
26 | background-color: $accordion-button-active-bg;
27 |
28 | &::after {
29 | background-image: escape-svg($accordion-button-active-icon);
30 | transform: $accordion-icon-transform;
31 | }
32 | }
33 |
34 | // Accordion icon
35 | &::after {
36 | flex-shrink: 0;
37 | width: $accordion-icon-width;
38 | height: $accordion-icon-width;
39 | margin-left: auto;
40 | content: "";
41 | background-image: escape-svg($accordion-button-icon);
42 | background-repeat: no-repeat;
43 | background-size: $accordion-icon-width;
44 | @include transition($accordion-icon-transition);
45 | }
46 |
47 | &:hover {
48 | z-index: 2;
49 | }
50 |
51 | &:focus {
52 | z-index: 3;
53 | border-color: $accordion-button-focus-border-color;
54 | outline: 0;
55 | box-shadow: $accordion-button-focus-box-shadow;
56 | }
57 | }
58 |
59 | .accordion-header {
60 | margin-bottom: 0;
61 | }
62 |
63 | .accordion-item {
64 | &:first-of-type {
65 | .accordion-button {
66 | @include border-top-radius($accordion-border-radius);
67 | }
68 | }
69 |
70 | &:last-of-type {
71 | .accordion-button {
72 | // Only set a border-radius on the last item if the accordion is collapsed
73 | &.collapsed {
74 | border-bottom-width: $accordion-border-width;
75 | @include border-bottom-radius($accordion-border-radius);
76 | }
77 | }
78 |
79 | .accordion-collapse {
80 | border-bottom-width: $accordion-border-width;
81 | @include border-bottom-radius($accordion-border-radius);
82 | }
83 | }
84 | }
85 |
86 | .accordion-collapse {
87 | border: solid $accordion-border-color;
88 | border-width: 0 $accordion-border-width;
89 | }
90 |
91 | .accordion-body {
92 | padding: $accordion-body-padding-y $accordion-body-padding-x;
93 | }
94 |
95 |
96 | // Flush accordion items
97 | //
98 | // Remove borders and border-radius to keep accordion items edge-to-edge.
99 |
100 | .accordion-flush {
101 | .accordion-button {
102 | border-right: 0;
103 | border-left: 0;
104 | @include border-radius(0);
105 | }
106 |
107 | .accordion-collapse {
108 | border-width: 0;
109 | }
110 |
111 | .accordion-item {
112 | &:first-of-type {
113 | .accordion-button {
114 | border-top-width: 0;
115 | @include border-top-radius(0);
116 | }
117 | }
118 |
119 | &:last-of-type {
120 | .accordion-button.collapsed {
121 | border-bottom-width: 0;
122 | @include border-bottom-radius(0);
123 | }
124 | }
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_alert.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .alert {
6 | position: relative;
7 | padding: $alert-padding-y $alert-padding-x;
8 | margin-bottom: $alert-margin-bottom;
9 | border: $alert-border-width solid transparent;
10 | @include border-radius($alert-border-radius);
11 | }
12 |
13 | // Headings for larger alerts
14 | .alert-heading {
15 | // Specified to prevent conflicts of changing $headings-color
16 | color: inherit;
17 | }
18 |
19 | // Provide class for links that match alerts
20 | .alert-link {
21 | font-weight: $alert-link-font-weight;
22 | }
23 |
24 |
25 | // Dismissible alerts
26 | //
27 | // Expand the right padding and account for the close button's positioning.
28 |
29 | .alert-dismissible {
30 | padding-right: $alert-dismissible-padding-r;
31 |
32 | // Adjust close link position
33 | .btn-close {
34 | position: absolute;
35 | top: 0;
36 | right: 0;
37 | z-index: $stretched-link-z-index + 1;
38 | padding: $alert-padding-y * 1.25 $alert-padding-x;
39 | }
40 | }
41 |
42 |
43 | // scss-docs-start alert-modifiers
44 | // Generate contextual modifier classes for colorizing the alert.
45 |
46 | @each $state, $value in $theme-colors {
47 | $alert-background: shift-color($value, $alert-bg-scale);
48 | $alert-border: shift-color($value, $alert-border-scale);
49 | $alert-color: shift-color($value, $alert-color-scale);
50 | @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
51 | $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
52 | }
53 | .alert-#{$state} {
54 | @include alert-variant($alert-background, $alert-border, $alert-color);
55 | }
56 | }
57 | // scss-docs-end alert-modifiers
58 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_badge.scss:
--------------------------------------------------------------------------------
1 | // Base class
2 | //
3 | // Requires one of the contextual, color modifier classes for `color` and
4 | // `background-color`.
5 |
6 | .badge {
7 | display: inline-block;
8 | padding: $badge-padding-y $badge-padding-x;
9 | @include font-size($badge-font-size);
10 | font-weight: $badge-font-weight;
11 | line-height: 1;
12 | color: $badge-color;
13 | text-align: center;
14 | white-space: nowrap;
15 | vertical-align: baseline;
16 | @include border-radius($badge-border-radius);
17 | @include gradient-bg();
18 |
19 | // Empty badges collapse automatically
20 | &:empty {
21 | display: none;
22 | }
23 | }
24 |
25 | // Quick fix for badges in buttons
26 | .btn .badge {
27 | position: relative;
28 | top: -1px;
29 | }
30 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_breadcrumb.scss:
--------------------------------------------------------------------------------
1 | .breadcrumb {
2 | display: flex;
3 | flex-wrap: wrap;
4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5 | margin-bottom: $breadcrumb-margin-bottom;
6 | @include font-size($breadcrumb-font-size);
7 | list-style: none;
8 | background-color: $breadcrumb-bg;
9 | @include border-radius($breadcrumb-border-radius);
10 | }
11 |
12 | .breadcrumb-item {
13 | // The separator between breadcrumbs (by default, a forward-slash: "/")
14 | + .breadcrumb-item {
15 | padding-left: $breadcrumb-item-padding-x;
16 |
17 | &::before {
18 | float: left; // Suppress inline spacings and underlining of the separator
19 | padding-right: $breadcrumb-item-padding-x;
20 | color: $breadcrumb-divider-color;
21 | content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
22 | }
23 | }
24 |
25 | &.active {
26 | color: $breadcrumb-active-color;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_buttons.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .btn {
6 | display: inline-block;
7 | font-family: $btn-font-family;
8 | font-weight: $btn-font-weight;
9 | line-height: $btn-line-height;
10 | color: $body-color;
11 | text-align: center;
12 | text-decoration: if($link-decoration == none, null, none);
13 | white-space: $btn-white-space;
14 | vertical-align: middle;
15 | cursor: if($enable-button-pointers, pointer, null);
16 | user-select: none;
17 | background-color: transparent;
18 | border: $btn-border-width solid transparent;
19 | @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
20 | @include transition($btn-transition);
21 |
22 | &:hover {
23 | color: $body-color;
24 | text-decoration: if($link-hover-decoration == underline, none, null);
25 | }
26 |
27 | .btn-check:focus + &,
28 | &:focus {
29 | outline: 0;
30 | box-shadow: $btn-focus-box-shadow;
31 | }
32 |
33 | .btn-check:checked + &,
34 | .btn-check:active + &,
35 | &:active,
36 | &.active {
37 | @include box-shadow($btn-active-box-shadow);
38 |
39 | &:focus {
40 | @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
41 | }
42 | }
43 |
44 | &:disabled,
45 | &.disabled,
46 | fieldset:disabled & {
47 | pointer-events: none;
48 | opacity: $btn-disabled-opacity;
49 | @include box-shadow(none);
50 | }
51 | }
52 |
53 |
54 | //
55 | // Alternate buttons
56 | //
57 |
58 | @each $color, $value in $theme-colors {
59 | .btn-#{$color} {
60 | @include button-variant($value, $value);
61 | }
62 | }
63 |
64 | @each $color, $value in $theme-colors {
65 | .btn-outline-#{$color} {
66 | @include button-outline-variant($value);
67 | }
68 | }
69 |
70 |
71 | //
72 | // Link buttons
73 | //
74 |
75 | // Make a button look and behave like a link
76 | .btn-link {
77 | font-weight: $font-weight-normal;
78 | color: $btn-link-color;
79 | text-decoration: $link-decoration;
80 |
81 | &:hover {
82 | color: $btn-link-hover-color;
83 | text-decoration: $link-hover-decoration;
84 | }
85 |
86 | &:focus {
87 | text-decoration: $link-hover-decoration;
88 | }
89 |
90 | &:disabled,
91 | &.disabled {
92 | color: $btn-link-disabled-color;
93 | }
94 |
95 | // No need for an active state here
96 | }
97 |
98 |
99 | //
100 | // Button Sizes
101 | //
102 |
103 | .btn-lg {
104 | @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
105 | }
106 |
107 | .btn-sm {
108 | @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
109 | }
110 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_close.scss:
--------------------------------------------------------------------------------
1 | // transparent background and border properties included for button version.
2 | // iOS requires the button element instead of an anchor tag.
3 | // If you want the anchor version, it requires `href="#"`.
4 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
5 |
6 | .btn-close {
7 | box-sizing: content-box;
8 | width: $btn-close-width;
9 | height: $btn-close-height;
10 | padding: $btn-close-padding-y $btn-close-padding-x;
11 | color: $btn-close-color;
12 | background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
13 | border: 0; // for button elements
14 | @include border-radius();
15 | opacity: $btn-close-opacity;
16 |
17 | // Override 's hover style
18 | &:hover {
19 | color: $btn-close-color;
20 | text-decoration: none;
21 | opacity: $btn-close-hover-opacity;
22 | }
23 |
24 | &:focus {
25 | outline: 0;
26 | box-shadow: $btn-close-focus-shadow;
27 | opacity: $btn-close-focus-opacity;
28 | }
29 |
30 | &:disabled,
31 | &.disabled {
32 | pointer-events: none;
33 | user-select: none;
34 | opacity: $btn-close-disabled-opacity;
35 | }
36 | }
37 |
38 | .btn-close-white {
39 | filter: $btn-close-white-filter;
40 | }
41 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_containers.scss:
--------------------------------------------------------------------------------
1 | // Container widths
2 | //
3 | // Set the container width, and override it for fixed navbars in media queries.
4 |
5 | @if $enable-grid-classes {
6 | // Single container class with breakpoint max-widths
7 | .container,
8 | // 100% wide container at all breakpoints
9 | .container-fluid {
10 | @include make-container();
11 | }
12 |
13 | // Responsive containers that are 100% wide until a breakpoint
14 | @each $breakpoint, $container-max-width in $container-max-widths {
15 | .container-#{$breakpoint} {
16 | @extend .container-fluid;
17 | }
18 |
19 | @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
20 | %responsive-container-#{$breakpoint} {
21 | max-width: $container-max-width;
22 | }
23 |
24 | // Extend each breakpoint which is smaller or equal to the current breakpoint
25 | $extend-breakpoint: true;
26 |
27 | @each $name, $width in $grid-breakpoints {
28 | @if ($extend-breakpoint) {
29 | .container#{breakpoint-infix($name, $grid-breakpoints)} {
30 | @extend %responsive-container-#{$breakpoint};
31 | }
32 |
33 | // Once the current breakpoint is reached, stop extending
34 | @if ($breakpoint == $name) {
35 | $extend-breakpoint: false;
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_forms.scss:
--------------------------------------------------------------------------------
1 | @import "forms/labels";
2 | @import "forms/form-text";
3 | @import "forms/form-control";
4 | @import "forms/form-select";
5 | @import "forms/form-check";
6 | @import "forms/form-range";
7 | @import "forms/floating-labels";
8 | @import "forms/input-group";
9 | @import "forms/validation";
10 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_grid.scss:
--------------------------------------------------------------------------------
1 | // Row
2 | //
3 | // Rows contain your columns.
4 |
5 | @if $enable-grid-classes {
6 | .row {
7 | @include make-row();
8 |
9 | > * {
10 | @include make-col-ready();
11 | }
12 | }
13 | }
14 |
15 |
16 | // Columns
17 | //
18 | // Common styles for small and large grid columns
19 |
20 | @if $enable-grid-classes {
21 | @include make-grid-columns();
22 | }
23 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_helpers.scss:
--------------------------------------------------------------------------------
1 | @import "helpers/clearfix";
2 | @import "helpers/colored-links";
3 | @import "helpers/ratio";
4 | @import "helpers/position";
5 | @import "helpers/visually-hidden";
6 | @import "helpers/stretched-link";
7 | @import "helpers/text-truncation";
8 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_images.scss:
--------------------------------------------------------------------------------
1 | // Responsive images (ensure images don't scale beyond their parents)
2 | //
3 | // This is purposefully opt-in via an explicit class rather than being the default for all `
`s.
4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2,
5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6 | // which weren't expecting the images within themselves to be involuntarily resized.
7 | // See also https://github.com/twbs/bootstrap/issues/18178
8 | .img-fluid {
9 | @include img-fluid();
10 | }
11 |
12 |
13 | // Image thumbnails
14 | .img-thumbnail {
15 | padding: $thumbnail-padding;
16 | background-color: $thumbnail-bg;
17 | border: $thumbnail-border-width solid $thumbnail-border-color;
18 | @include border-radius($thumbnail-border-radius);
19 | @include box-shadow($thumbnail-box-shadow);
20 |
21 | // Keep them at most 100% wide
22 | @include img-fluid();
23 | }
24 |
25 | //
26 | // Figures
27 | //
28 |
29 | .figure {
30 | // Ensures the caption's text aligns with the image.
31 | display: inline-block;
32 | }
33 |
34 | .figure-img {
35 | margin-bottom: $spacer / 2;
36 | line-height: 1;
37 | }
38 |
39 | .figure-caption {
40 | @include font-size($figure-caption-font-size);
41 | color: $figure-caption-color;
42 | }
43 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Toggles
2 | //
3 | // Used in conjunction with global variables to enable certain theme features.
4 |
5 | // Vendor
6 | @import "vendor/rfs";
7 |
8 | // Deprecate
9 | @import "mixins/deprecate";
10 |
11 | // Helpers
12 | @import "mixins/breakpoints";
13 | @import "mixins/image";
14 | @import "mixins/resize";
15 | @import "mixins/visually-hidden";
16 | @import "mixins/reset-text";
17 | @import "mixins/text-truncate";
18 |
19 | // Utilities
20 | @import "mixins/utilities";
21 |
22 | // Components
23 | @import "mixins/alert";
24 | @import "mixins/buttons";
25 | @import "mixins/caret";
26 | @import "mixins/pagination";
27 | @import "mixins/lists";
28 | @import "mixins/list-group";
29 | @import "mixins/forms";
30 | @import "mixins/table-variants";
31 |
32 | // Skins
33 | @import "mixins/border-radius";
34 | @import "mixins/box-shadow";
35 | @import "mixins/gradients";
36 | @import "mixins/transition";
37 |
38 | // Layout
39 | @import "mixins/clearfix";
40 | @import "mixins/container";
41 | @import "mixins/grid";
42 |
--------------------------------------------------------------------------------
/app/static/assets/scss/soft-design-system/bootstrap/_nav.scss:
--------------------------------------------------------------------------------
1 | // Base class
2 | //
3 | // Kickstart any navigation component with a set of style resets. Works with
4 | // `