├── .github └── workflows │ └── build.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── api ├── api │ └── index.py ├── data │ └── style.py ├── requirements.txt └── vercel.json ├── command ├── __init__.py └── new_project.py ├── docs ├── docs │ ├── contribute.md │ ├── controls │ │ ├── alerts.md │ │ ├── annotations.md │ │ ├── badges.md │ │ ├── buttons.md │ │ ├── checkboxes.md │ │ ├── chips.md │ │ ├── dropdowns.md │ │ ├── index.md │ │ └── switches.md │ └── index.md ├── mkdocs.yml └── site │ ├── .gitignore │ ├── 404.html │ ├── assets │ ├── images │ │ └── favicon.png │ ├── javascripts │ │ ├── bundle.51198bba.min.js │ │ ├── bundle.51198bba.min.js.map │ │ ├── lunr │ │ │ ├── min │ │ │ │ ├── lunr.ar.min.js │ │ │ │ ├── lunr.da.min.js │ │ │ │ ├── lunr.de.min.js │ │ │ │ ├── lunr.du.min.js │ │ │ │ ├── lunr.es.min.js │ │ │ │ ├── lunr.fi.min.js │ │ │ │ ├── lunr.fr.min.js │ │ │ │ ├── lunr.hi.min.js │ │ │ │ ├── lunr.hu.min.js │ │ │ │ ├── lunr.it.min.js │ │ │ │ ├── lunr.ja.min.js │ │ │ │ ├── lunr.jp.min.js │ │ │ │ ├── lunr.ko.min.js │ │ │ │ ├── lunr.multi.min.js │ │ │ │ ├── lunr.nl.min.js │ │ │ │ ├── lunr.no.min.js │ │ │ │ ├── lunr.pt.min.js │ │ │ │ ├── lunr.ro.min.js │ │ │ │ ├── lunr.ru.min.js │ │ │ │ ├── lunr.stemmer.support.min.js │ │ │ │ ├── lunr.sv.min.js │ │ │ │ ├── lunr.ta.min.js │ │ │ │ ├── lunr.th.min.js │ │ │ │ ├── lunr.tr.min.js │ │ │ │ ├── lunr.vi.min.js │ │ │ │ └── lunr.zh.min.js │ │ │ ├── tinyseg.js │ │ │ └── wordcut.js │ │ └── workers │ │ │ ├── search.208ed371.min.js │ │ │ └── search.208ed371.min.js.map │ └── stylesheets │ │ ├── main.ded33207.min.css │ │ ├── main.ded33207.min.css.map │ │ ├── palette.a0c5b2b5.min.css │ │ └── palette.a0c5b2b5.min.css.map │ ├── contribute │ └── index.html │ ├── controls │ ├── alerts │ │ └── index.html │ ├── annotations │ │ └── index.html │ ├── badges │ │ └── index.html │ ├── buttons │ │ └── index.html │ ├── checkboxes │ │ └── index.html │ ├── chips │ │ └── index.html │ ├── dropdowns │ │ └── index.html │ ├── index.html │ └── switches │ │ └── index.html │ ├── index.html │ ├── search │ └── search_index.json │ ├── sitemap.xml │ └── sitemap.xml.gz ├── flet_material ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-310.pyc │ ├── admonition.cpython-310.pyc │ ├── alert.cpython-310.pyc │ ├── annotation.cpython-310.pyc │ ├── annotations.cpython-310.pyc │ ├── badge.cpython-310.pyc │ ├── base.cpython-310.pyc │ ├── button.cpython-310.pyc │ ├── checkbox.cpython-310.pyc │ ├── chip.cpython-310.pyc │ ├── code_block.cpython-310.pyc │ └── switch.cpython-310.pyc ├── admonition.py ├── admonition │ ├── admonition.py │ └── style.py ├── alert.py ├── annotation.py ├── badge.py ├── base.py ├── button.py ├── checkbox.py ├── chip.py ├── code_block.py └── switch.py ├── requirements.txt ├── setup.py ├── styles ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-310.pyc │ ├── admonition_style.cpython-310.pyc │ ├── alert_style.cpython-310.pyc │ ├── alert_styles.cpython-310.pyc │ ├── badge_style.cpython-310.pyc │ ├── fonts.cpython-310.pyc │ └── theme.cpython-310.pyc ├── admonition_style.py ├── alert_style.py ├── badge_style.py ├── fonts.py └── theme.py └── tests ├── test_admonitions.py ├── test_buttons.py └── test_switch.py /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and Publish to PyPI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | release: 9 | types: 10 | - published 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | strategy: 16 | matrix: 17 | python-version: [3.8, 3.9] 18 | 19 | steps: 20 | - name: Checkout code 21 | uses: actions/checkout@v2 22 | 23 | - name: Set up Python ${{ matrix.python-version }} 24 | uses: actions/setup-python@v2 25 | with: 26 | python-version: ${{ matrix.python-version }} 27 | 28 | - name: Upgrade Pip 29 | run: pip install --upgrade pip 30 | 31 | - name: Install dependencies 32 | run: pip install --no-cache-dir -r requirements.txt 33 | 34 | - name: Install build module 35 | run: pip install --no-cache-dir build 36 | 37 | - name: Run tests 38 | run: python -m unittest discover -s tests 39 | 40 | - name: Build package 41 | run: python -m build 42 | 43 | publish: 44 | needs: build 45 | runs-on: ubuntu-latest 46 | steps: 47 | - name: Checkout code 48 | uses: actions/checkout@v2 49 | 50 | - name: Set up Python 51 | uses: actions/setup-python@v2 52 | with: 53 | python-version: 3.x 54 | 55 | - name: Install twine & wheel 56 | run: pip install --no-cache-dir twine wheel 57 | 58 | - name: Create Distribution Package 59 | run: python setup.py sdist bdist_wheel 60 | 61 | - name: Publish to PyPI 62 | env: 63 | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} 64 | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} 65 | run: | 66 | python -m twine upload --skip-existing dist/* 67 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | envFlet 2 | zzz.py 3 | flet_material.egg-info/ 4 | dist/ 5 | .DS_Store 6 | build/ 7 | dist/ 8 | .vscode 9 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Seyed Ahmad Pour Hakimi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
14 |
18 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
42 | Modernize your websites and applications by implementing customized Flet controls that improve user experience and overall visual quality. The UI components are flexible and aligned with current design trends. 43 |
44 | 45 | 46 | 47 | ## 1. Installation 48 | 49 | To use Flet Material, you need to have the following installed: 50 | 51 | - Latest version of Flet 52 | - Python 3.5+ 53 | 54 | If you don't have Flet installed, installing Flet Material automatically installs it for you. You can install Flet Material using the following command: 55 | ``` 56 | $ pip install flet-material 57 | ``` 58 | 59 | 60 | 61 | ## 2. Application Setup 62 | 63 | After installing Flet Material, you can test if it's working properly by running the following code snippet: 64 | 65 | ```python 66 | import flet as ft 67 | import flet_material as fm 68 | 69 | fm.Theme.set_theme(theme="teal") 70 | 71 | def main(page: ft.Page): 72 | page.bgcolor = fm.Theme.bgcolor 73 | 74 | page.horizontal_alignment = "center" 75 | page.vertical_alignment = "center" 76 | 77 | button = fm.Buttons( 78 | width=220, 79 | height=55, 80 | title="Give this repo a star!", 81 | ) 82 | 83 | page.add(button) 84 | 85 | page.update() 86 | 87 | 88 | if __name__ == "__main__": 89 | ft.flet.app(target=main) 90 | ``` 91 | 92 | If the package was installed correctly, you should see a centered and customized button. 93 | 94 | ## 3. Code Breakdown 95 | 96 | The script is similar to the basic Flet application setup, with some minor additions. 97 | 98 | At the top of the main file, you need to import the Flet Material library and all its components: 99 | ```python 100 | import flet_material as fm 101 | ``` 102 | 103 | Below the imported modules is the Theme instance from Flet Material. It sets up the entire application theme so that all colors, primary and accent, are uniform, giving the applications being built a consistent look and feel. For a list of supported theme colors, you can visit the library's documentation online. 104 | 105 | For a list of supported theme colors, you can visit the library's documentation online. 106 | 107 | ```python 108 | fm.Theme.set_theme(theme="teal") 109 | ``` 110 | 111 | Finally, within the main() method, you can use a new control called fm.Buttons(), which inherits its properties from several Flet classes and can be customized to your liking: 112 | 113 | ```python 114 | button = fm.Buttons( 115 | width=220, 116 | height=55, 117 | title="Give this repo a star!", 118 | ) 119 | ``` 120 | 121 | That's it! You now have access to Flet Material library components! 122 | 123 | ## Contributing 124 | 125 | Contributions are highly encouraged and welcomed. Check out the [contributon section](https://flet-material.vercel.app/contribute/) of the documentation for more details. 126 | 127 | 128 | ## License 129 | 130 | Flet Material Library is open-source and licensed under the [MIT License](LICENSE). 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /api/api/index.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, jsonify 2 | import os 3 | import sys 4 | 5 | 6 | current_dir = os.path.dirname(os.path.abspath(__file__)) 7 | parent_dir = os.path.join(current_dir, "..") 8 | sys.path.append(parent_dir) 9 | 10 | from data.style import style_sheet 11 | 12 | app = Flask(__name__) 13 | 14 | 15 | @app.route("/") 16 | def home(): 17 | return jsonify(style_sheet) 18 | -------------------------------------------------------------------------------- /api/data/style.py: -------------------------------------------------------------------------------- 1 | style_sheet = { 2 | "admonitions": [ 3 | { 4 | "name": "note", 5 | "bgcolor": "#2f3851", 6 | "border_color": "#448afe", 7 | "icon": "event_note_rounded", 8 | }, 9 | { 10 | "name": "abstract", 11 | "bgcolor": "#293c51", 12 | "border_color": "#1eb0fe", 13 | "icon": "insert_drive_file_rounded", 14 | }, 15 | { 16 | "name": "info", 17 | "bgcolor": "#293d4d", 18 | "border_color": "#24b7d4", 19 | "icon": "info_rounded", 20 | }, 21 | { 22 | "name": "tip", 23 | "bgcolor": "#293f48", 24 | "border_color": "#2abfa4", 25 | "icon": "tips_and_updates_rounded", 26 | }, 27 | { 28 | "name": "success", 29 | "bgcolor": "#293e40", 30 | "border_color": "#2fc852", 31 | "icon": "check_sharp", 32 | }, 33 | { 34 | "name": "warning", 35 | "bgcolor": "#423a37", 36 | "border_color": "#fb9100", 37 | "icon": "warning_sharp", 38 | }, 39 | { 40 | "name": "danger", 41 | "bgcolor": "#432d3f", 42 | "border_color": "#fa1744", 43 | "icon": "dangerous_sharp", 44 | }, 45 | ], 46 | } 47 | -------------------------------------------------------------------------------- /api/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==2.2.2 -------------------------------------------------------------------------------- /api/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [ 3 | { 4 | "source": "/(.*)", 5 | "destination": "/api/index" 6 | } 7 | ] 8 | } -------------------------------------------------------------------------------- /command/__init__.py: -------------------------------------------------------------------------------- 1 | from command.new_project import init_code 2 | -------------------------------------------------------------------------------- /command/new_project.py: -------------------------------------------------------------------------------- 1 | import click 2 | 3 | 4 | @click.command() 5 | @click.argument("project_name") 6 | def init_code(project_name): 7 | """ 8 | Create a new Flet Material project with a main.py file. 9 | """ 10 | template_code = """import flet as ft 11 | import flet_material as fm 12 | 13 | # begin by changing your app theme color here ... 14 | fm.Theme.set_theme(theme="blue") 15 | 16 | def main(page:ft.Page): 17 | page.bgcolor = fm.Theme.bgcolor 18 | page.update() 19 | 20 | if __name__ == "__main__": 21 | ft.flet.app(target=main) 22 | """ 23 | 24 | with open(f"{project_name}/main.py", "w") as f: 25 | f.write(template_code) 26 | 27 | click.echo(f"Created {project_name}/main.py") 28 | 29 | 30 | if __name__ == "__main__": 31 | init_code() 32 | -------------------------------------------------------------------------------- /docs/docs/contribute.md: -------------------------------------------------------------------------------- 1 | # **Contributing to Flet Material** 2 | 3 | Contriubtions and suggustions are highly appreciated and welcomed. To contirubte to this library, follow the steps below in order to ensure optimal organization and implementation. 4 | 5 | Before you take the steps below, make sure you've forked the [repository](https://github.com/LineIndent/material_design_flet) before. 6 | 7 | 8 | ## Clone the repository 9 | 10 | Clone the forked repository to your local machine by running the following command in your terminal: 11 | 12 | git clone https://github.com/your-username/material_design_flet.git 13 | 14 | !!! warning "Make sure to replace ***your-username*** with your actual GitHub username." 15 | 16 | Navigate to the cloned repository by running the command: 17 | 18 | cd material_design_flet 19 | 20 | ## Makeing changes to the cloned repository 21 | 22 | Make the changes to the code on your local machine. For example, you could update the README file to include more information about the project. 23 | 24 | Once you have made your changes, commit them with a clear and descriptive message by running the following commands: 25 | 26 | 1. This will add all the changes made to the local repository. 27 | 28 | git add . 29 | 30 | 2. This will commit the changes to the local repository. 31 | 32 | git commit -m "Added more information to README" 33 | 34 | 3. Push the branch to your forked repository on GitHub by running the command: 35 | 36 | git push 37 | 38 | ## Submit a pull request 39 | 40 | Go to the original repository you forked from [Flet Material Library](https://github.com/LineIndent/material_design_flet) and click the "New pull request" button. Give your pull request a clear and descriptive title and description, explaining what changes you made and why. For example, "Added more information to README file". Review your pull request to make sure everything looks good and submit it for review by the repository owner or maintainers. -------------------------------------------------------------------------------- /docs/docs/controls/alerts.md: -------------------------------------------------------------------------------- 1 | # Alerts 2 | 3 | Alerts are commonly used to provide users with important information, such as warnings or errors, that require their attention. They can be designed to be visually prominent, with attention-grabbing colors and animations, to ensure that the user notices them. Alerts can also be used to confirm a successful action or completion of a task. 4 | 5 | 6 | The ***alerts*** class is straightforward and easy to use. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic Alerts Example 10 | 11 | !!! tip "Flet Material Alerts" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, the ```fm.Alerts()``` class inherits from Flet's ```ft.Container()``` class, this means all properties of the latter are accessable through the former. 14 | 15 | === "*Alerts*" 16 | 17 | ``` py linenums="1" 18 | import flet as ft 19 | import flet_material as fm 20 | 21 | 22 | fm.Theme.set_theme(theme="blue") 23 | 24 | 25 | def main(page: ft.Page): 26 | page.bgcolor = fm.Theme.bgcolor 27 | 28 | page.horizontal_alignment = "center" 29 | page.vertical_alignment = "center" 30 | 31 | alert = fm.Alerts( 32 | type_="info", 33 | size="lg", 34 | title="Did you know?", 35 | comment="Now you know what you know.", 36 | ) 37 | page.add(alert) 38 | 39 | page.update() 40 | 41 | 42 | if __name__ == "__main__": 43 | ft.flet.app(target=main) 44 | ``` 45 | 46 | === "*parameters*" 47 | 48 | ***type_: str -*** The type of alert to be displayed. 49 | 50 | - "info": displays a blue-colored alert. 51 | - "warn": displays a yellow-colored alert. 52 | - "question": displays a green-colored alert. 53 | 54 | ***size: str -*** Sets the width dimension of the alert. 55 | 56 | - "sm": sets width at 250. 57 | - "md": sets width at 300. 58 | - "lg": 350. 59 | 60 | ***title: str -*** The title to be displayed. This is the first row. 61 | 62 | ***comment: str -*** The message to be displayed. This is the second row. -------------------------------------------------------------------------------- /docs/docs/controls/annotations.md: -------------------------------------------------------------------------------- 1 | # Annotations 2 | 3 | Annotations, much like tootips, are used to provide additional context or information about a UI element. They can be used to provide instructions or tips for using a particular feature or to label specific parts of an interface. Annotations can also be used to indicate the status of an element, such as whether it is currently active or disabled. 4 | 5 | 6 | The ***annotations*** class is straightforward and easy to use. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic Annotation Example 10 | 11 | !!! tip "Flet Material Annotations" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, the ```fm.Annotations()``` class inherits from Flet's ```ft.Container()``` class, this means all properties of the latter are accessable through the former. 14 | 15 | === "*Annotations*" 16 | 17 | ``` py linenums="1" 18 | import flet as ft 19 | import flet_material as fm 20 | 21 | def main(page: ft.Page): 22 | 23 | page.bgcolor = fm.Theme.bgcolor 24 | 25 | annotation = fm.Annotations("This is an annotated message!") 26 | 27 | page.add(annotation) 28 | 29 | page.update() 30 | 31 | 32 | if __name__ == "__main__": 33 | ft.flet.app(target=main) 34 | ``` 35 | 36 | === "*parameters*" 37 | 38 | ***annotations_msg: str -*** The content to be shown when annotation is hovered. 39 | -------------------------------------------------------------------------------- /docs/docs/controls/badges.md: -------------------------------------------------------------------------------- 1 | # Badges 2 | 3 | Badges are used to display small amounts of information, such as notifications or counts, in a visually prominent way. They can be used to indicate the number of new messages, the number of items in a cart, or to show user status, such as whether they are online or offline. Badges can be designed in various styles, such as with a numerical count or an icon. 4 | 5 | 6 | The ***badges*** class is straightforward and easy to use. There are currently two types of badges, ***notifications*** and ***icon*** bagdes, each having its own unique material design. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic Notifications Badge Example 10 | 11 | !!! tip "Flet Material Badges" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, both the ```fm.NotificationBadge()``` and the ```fm.IconBadge()``` classes inherit from Flet's ```ft.Container()``` class, this means all properties of the latter are accessable through the former. 14 | 15 | === "*Notifications Badge*" 16 | 17 | ``` py linenums="1" 18 | import flet as ft 19 | import flet_material as fm 20 | 21 | 22 | fm.Theme.set_theme(theme="blue") 23 | 24 | 25 | def main(page: ft.Page): 26 | page.bgcolor = fm.Theme.bgcolor 27 | 28 | page.horizontal_alignment = "center" 29 | page.vertical_alignment = "center" 30 | 31 | def show_notification(e): 32 | badge.notification += 1 33 | badge.add_notification(badge.notification) 34 | 35 | btn = ft.ElevatedButton(on_click=lambda e: show_notification(e)) 36 | 37 | badge = fm.NotificationBadge(title="Hello!", size="md", notification=0) 38 | 39 | page.add(badge) 40 | page.add(btn) 41 | 42 | page.update() 43 | 44 | 45 | if __name__ == "__main__": 46 | ft.flet.app(target=main) 47 | ``` 48 | 49 | === "*parameters*" 50 | 51 | ***title: str -*** The text to be displayed. 52 | 53 | ***size: str -*** The width of the notifications badge: 54 | 55 | - "sm": sets the width at 55. 56 | - "md": sets the width at 90. 57 | - "lg": sets the width at 135. 58 | - "xl": sets the width at 165. 59 | 60 | 61 | ***notification: int -*** The starting notification count number. 62 | 63 | 64 | Basic Icon Badge Example 65 | 66 | === "*Icon Badge*" 67 | 68 | ``` py linenums="1" 69 | import flet as ft 70 | import flet_material as fm 71 | 72 | 73 | fm.Theme.set_theme(theme="blue") 74 | 75 | 76 | def main(page: ft.Page): 77 | page.bgcolor = fm.Theme.bgcolor 78 | 79 | page.horizontal_alignment = "center" 80 | page.vertical_alignment = "center" 81 | 82 | def show_notification(e): 83 | badge.notification += 1 84 | badge.add_notification(badge.notification) 85 | 86 | btn = ft.ElevatedButton(on_click=lambda e: show_notification(e)) 87 | 88 | badge = fm.IconBadge(bagde_icon="email", notification=0) 89 | 90 | page.add(badge) 91 | page.add(btn) 92 | 93 | page.update() 94 | 95 | 96 | if __name__ == "__main__": 97 | ft.flet.app(target=main) 98 | ``` 99 | 100 | === "*parameters*" 101 | 102 | ***bagde_icon: str -*** The icon to be displayed: 103 | 104 | Supported icons: 105 | 106 | - "email" 107 | - "facebook" 108 | - "notification" 109 | - "cart" 110 | 111 | ***notification: int -*** The starting notification count number. 112 | -------------------------------------------------------------------------------- /docs/docs/controls/buttons.md: -------------------------------------------------------------------------------- 1 | # Buttons 2 | 3 | Buttons are one of the most common UI elements used in applications. They are used to trigger actions, such as submitting a form or navigating to a different part of the application. Buttons can be designed in various styles, such as flat or raised, and can have different shapes and sizes depending on their purpose. 4 | 5 | 6 | The ***buttons*** class is straightforward and easy to use. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic Button Example 10 | 11 | !!! tip "Flet Material Button Class" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, the ***fm.Buttons()*** class inherits from Flet's ***ft.Container()*** class, this means all properties of the latter are accessable through the former. 14 | 15 | === "*Buttons*" 16 | 17 | ``` py linenums="1" 18 | import flet as ft 19 | import flet_material as fm 20 | 21 | 22 | fm.Theme.set_theme(theme="blue") 23 | 24 | 25 | def main(page: ft.Page): 26 | page.bgcolor = fm.Theme.bgcolor 27 | 28 | page.horizontal_alignment = "center" 29 | page.vertical_alignment = "center" 30 | 31 | button = fm.Buttons( 32 | width=220, 33 | height=55, 34 | title="Give this repo a star!", 35 | ) 36 | 37 | page.add(button) 38 | 39 | page.update() 40 | 41 | 42 | if __name__ == "__main__": 43 | ft.flet.app(target=main) 44 | ``` 45 | 46 | === "*parameters*" 47 | 48 | ***width: int -*** The width of the button. 49 | 50 | ***height: int -*** The height of the button. 51 | 52 | ***title: str -*** The text to be displayed inside the button. 53 | 54 | 55 | -------------------------------------------------------------------------------- /docs/docs/controls/checkboxes.md: -------------------------------------------------------------------------------- 1 | # CheckBoxes 2 | 3 | Checkboxes are used to allow users to select one or multiple options from a set of choices. They are commonly used in forms and settings menus to allow users to customize their preferences. Checkboxes can be designed in various styles, such as with a checkmark or a filled-in box, to provide visual feedback to the user. 4 | 5 | 6 | The ***checkbox*** class is straightforward and easy to use. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic CheckBox Example 10 | 11 | !!! tip "Flet Material CheckBox" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, the ```fm.CheckBox()``` class inherits from Flet's ```ft.Container()``` class, this means all properties of the latter are accessable through the former. 14 | 15 | === "*Checkboxes*" 16 | 17 | ``` py linenums="1" 18 | import flet as ft 19 | import flet_material as fm 20 | 21 | 22 | fm.Theme.set_theme(theme="blue") 23 | 24 | 25 | def main(page: ft.Page): 26 | page.bgcolor = fm.Theme.bgcolor 27 | 28 | page.horizontal_alignment = "center" 29 | page.vertical_alignment = "center" 30 | 31 | circle_checkbox = fm.CheckBox("circle") 32 | rectangular_checkbox = fm.CheckBox("rectangle") 33 | 34 | page.add(circle_checkbox) 35 | page.add(rectangular_checkbox) 36 | 37 | page.update() 38 | 39 | 40 | if __name__ == "__main__": 41 | ft.flet.app(target=main) 42 | ``` 43 | 44 | === "*parameters*" 45 | 46 | ***shape: str -*** The shape of the checkbox. 47 | 48 | - "circle": The checkbox is a circle. 49 | - "rectangle": The checkbox is a rectangle with no border adjustments. 50 | -------------------------------------------------------------------------------- /docs/docs/controls/chips.md: -------------------------------------------------------------------------------- 1 | # Chips 2 | 3 | Chips are small UI elements used to display small amounts of information in a compact way. They can be used to show user information, such as a profile picture or name, or to display tags or categories. Chips can be designed in various shapes and sizes, and can be used to represent different types of data. 4 | 5 | 6 | The ***chips*** class is straightforward and easy to use. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic Chips Example 10 | 11 | !!! tip "Flet Material Chips" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, the ```fm.FilterChip()``` class inherits from Flet's ```ft.Container()``` class, this means all properties of the latter are accessable through the former. 14 | 15 | === "*Chips*" 16 | 17 | ``` py linenums="1" 18 | import flet as ft 19 | import flet_material as fm 20 | 21 | 22 | fm.Theme.set_theme(theme="blue") 23 | 24 | 25 | def main(page: ft.Page): 26 | page.bgcolor = fm.Theme.bgcolor 27 | 28 | page.horizontal_alignment = "center" 29 | page.vertical_alignment = "center" 30 | 31 | chip = fm.FilterChip(title="Hello World!", chip_width=123) 32 | 33 | page.add(chip) 34 | 35 | page.update() 36 | 37 | 38 | if __name__ == "__main__": 39 | ft.flet.app(target=main) 40 | ``` 41 | 42 | === "*parameters*" 43 | 44 | ***title: str -*** The title to be displayed. 45 | 46 | ***width: int -*** Set the width to accomodate both controls. -------------------------------------------------------------------------------- /docs/docs/controls/dropdowns.md: -------------------------------------------------------------------------------- 1 | # Dropdown 2 | 3 | Dropdowns are used to allow users to select one option from a list of choices. They are commonly used in menus and settings to provide a compact way to present a large number of options. Dropdowns can be designed in various styles, such as with a simple list or with additional information, such as icons or descriptions. 4 | 5 | 6 | The ***dropdown*** class is straightforward and easy to use. Choose where you want to place your annotation then create an instance of it, like this: 7 | 8 | 9 | Basic Dropdown Example 10 | 11 | !!! tip "Flet Material Alerts" 12 | 13 | The Flet Material Library classes inherit from the controls provided by Flet. In this case, the ```fm.Admonitions()``` class inherits from Flet's ```ft.Container()``` class, this means all properties of the latter are accessable through the former. 14 | 15 | 16 | ### Expandable Dropdown 17 | 18 | === "*Expandable Dropdown*" 19 | 20 | ``` py linenums="1" 21 | import flet as ft 22 | import flet_material as fm 23 | 24 | 25 | fm.Theme.set_theme(theme="blue") 26 | 27 | 28 | def main(page: ft.Page): 29 | page.bgcolor = fm.Theme.bgcolor 30 | 31 | page.horizontal_alignment = "center" 32 | page.vertical_alignment = "center" 33 | 34 | drop = fm.Admonitions( 35 | type_="note", expanded_height=300, expanded=False, controls_list=None 36 | ) 37 | 38 | page.add(drop) 39 | 40 | page.update() 41 | 42 | 43 | if __name__ == "__main__": 44 | ft.flet.app(target=main) 45 | ``` 46 | 47 | === "*parameters*" 48 | 49 | ***type_: str -*** The type of title to be displayed. The following parameters are supported: 50 | 51 | - "note", "abstract", "info", "tip", "success", "warning", "danger" 52 | 53 | ***expanded_height: int -*** Sets the height when the dropdown is clicked. 54 | 55 | ***expanded: bool -*** If placed outside a ft.Row() or ft.Column(), should be set to ***False***, otherwise set to ***True***. 56 | 57 | ***controls_list: list -*** The list of controls that can be added inside the dropdown. 58 | 59 | 60 | ### Fixed Dropdown (Title only) 61 | 62 | This class simply displays the title and it's corresponding icon. It cannot be expanded. 63 | 64 | === "*Fixed Dropdown*" 65 | 66 | ``` py linenums="1" 67 | import flet as ft 68 | import flet_material as fm 69 | 70 | 71 | fm.Theme.set_theme(theme="blue") 72 | 73 | 74 | def main(page: ft.Page): 75 | page.bgcolor = fm.Theme.bgcolor 76 | 77 | page.horizontal_alignment = "center" 78 | page.vertical_alignment = "center" 79 | 80 | fixed_drop = fm.FixedAdmonitions( 81 | type_="tip", expanded=False, title="This is type of dropdown is not a dropdown!" 82 | ) 83 | 84 | page.add(fixed_drop) 85 | 86 | page.update() 87 | 88 | 89 | if __name__ == "__main__": 90 | ft.flet.app(target=main) 91 | ``` 92 | 93 | === "*parameters*" 94 | 95 | ***type_: str -*** The type of title to be displayed. The following parameters are supported: 96 | 97 | - "note", "abstract", "info", "tip", "success", "warning", "danger" 98 | 99 | ***expanded: bool -*** If placed outside a ft.Row() or ft.Column(), should be set to ***False***, otherwise set to ***True***. 100 | 101 | ***title: str -*** The title to be displayed on top, neaer the icon. -------------------------------------------------------------------------------- /docs/docs/controls/index.md: -------------------------------------------------------------------------------- 1 | # Configuration 2 | 3 | Flet Material Library has many customized controls that can be used in your Flet-based applications. This section of the documentation will go through the steps to customize your app's theme, which will set the appropriate settings for the rest of the controls. 4 | 5 | # Setting the theme in your Flet application 6 | 7 | ## Application setup 8 | Before selecting your application theme color, make sure the following line of code is included in your main script: 9 | 10 | ``` py 11 | fm.Theme.set_theme(theme="") 12 | ``` 13 | 14 | ## Choosing a theme color 15 | Below you'll find all the supported theme colors offered Flet Material Library. Once you've decided on a theme, you can set it in your Flet application like this: 16 | 17 | 18 | 19 | ``` py 20 | fm.Theme.set_theme(theme="indigo") 21 | ``` 22 | 23 | !!! warning "The theme argument is case sensitive - all colors names should be lower case and with spaces!" 24 | 25 | 26 | 43 | 44 |=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.hi.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.hu.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Hungarian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.it.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Italian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor =x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.ja.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n =C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.no.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Norwegian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a =a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.pt.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Portuguese` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.ro.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Romanian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.ru.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Russian` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor s||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor >1),f=0,l=o 0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o =0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.sv.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Lunr languages, `Swedish` language 3 | * https://github.com/MihaiValentin/lunr-languages 4 | * 5 | * Copyright 2014, Mihai Valentin 6 | * http://www.mozilla.org/MPL/ 7 | */ 8 | /*! 9 | * based on 10 | * Snowball JavaScript Library v0.3 11 | * http://code.google.com/p/urim/ 12 | * http://snowball.tartarus.org/ 13 | * 14 | * Copyright 2010, Oleg Mazko 15 | * http://www.mozilla.org/MPL/ 16 | */ 17 | 18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.ta.min.js: -------------------------------------------------------------------------------- 1 | !function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="-உஊ-ஏஐ-ஙச-ட-னப-யர-ஹ-ிீ-ொ-ௐ---௩௪-௯௰-௹௺-a-zA-Za-zA-Z0-90-9",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.th.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.vi.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); -------------------------------------------------------------------------------- /docs/site/assets/javascripts/lunr/min/lunr.zh.min.js: -------------------------------------------------------------------------------- 1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}}); -------------------------------------------------------------------------------- /docs/site/assets/stylesheets/palette.a0c5b2b5.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAKE,YAAA,CAGA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,gDAAA,CACA,gDAAA,CAGA,4BAAA,CACA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,iCAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,wDAAA,CAGA,0DAAA,CAKA,8DAAA,CAKA,0DCxDF,CD6DE,kHAEE,YC3DJ,CD+DE,gHAEE,eC7DJ,CDoFE,yDACE,4BClFJ,CDiFE,2DACE,4BC/EJ,CD8EE,gEACE,4BC5EJ,CD2EE,2DACE,4BCzEJ,CDwEE,yDACE,4BCtEJ,CDqEE,0DACE,4BCnEJ,CDkEE,gEACE,4BChEJ,CD+DE,0DACE,4BC7DJ,CD4DE,2OACE,4BCjDJ,CDwDA,+FAGE,iCCtDF,CACF,CClDE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8CN,CCxDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqDN,CC/DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4DN,CCtEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmEN,CC7EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD0EN,CCpFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDiFN,CC3FE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDwFN,CClGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD+FN,CCzGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDsGN,CChHE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD6GN,CCvHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoHN,CC9HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD8HN,CCrIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDqIN,CC5IE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD4IN,CCnJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDmJN,CC1JE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuJN,CE5JE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyJN,CEpKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFiKN,CE5KE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyKN,CEpLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFiLN,CE5LE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyLN,CEpME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFiMN,CE5ME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyMN,CEpNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFiNN,CE5NE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyNN,CEpOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFiON,CE5OE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyON,CEpPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFoPN,CE5PE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCF4PN,CEpQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFoQN,CE5QE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCF4QN,CEpRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFiRN,CE5RE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFyRN,CEpSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF6RN,CE7SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFsSN,CEvRE,sEACE,4BF0RJ,CE3RE,+DACE,4BF8RJ,CE/RE,iEACE,4BFkSJ,CEnSE,gEACE,4BFsSJ,CEvSE,iEACE,4BF0SJ,CEjSA,8BACE,0BAAA,CACA,sCAAA,CACA,qCAAA,CACA,+BAAA,CACA,sCAAA,CAGA,4BFkSF,CE/RE,yCACE,+BFiSJ,CE9RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,UFkSN,CG9MI,mCD1EA,+CACE,0BF2RJ,CExRI,qDACE,0BF0RN,CErRE,iEACE,eFuRJ,CACF,CGzNI,sCDvDA,uCACE,oCFmRJ,CACF,CE1QA,8BACE,0BAAA,CACA,sCAAA,CACA,gCAAA,CACA,0BAAA,CACA,sCAAA,CAGA,4BF2QF,CExQE,yCACE,+BF0QJ,CEvQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,UF2QN,CEpQE,yCACE,qBFsQJ,CG/NI,wCDhCA,8CACE,0BFkQJ,CACF,CGvPI,mCDJA,+CACE,0BF8PJ,CE3PI,qDACE,0BF6PN,CACF,CG5OI,wCDTA,iFACE,qBFwPJ,CACF,CGpQI,sCDmBA,uCACE,qBFoPJ,CACF","file":"palette.css"} -------------------------------------------------------------------------------- /docs/site/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/site/sitemap.xml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/docs/site/sitemap.xml.gz -------------------------------------------------------------------------------- /flet_material/__init__.py: -------------------------------------------------------------------------------- 1 | from flet_material.base import Theme 2 | from flet_material.admonition import Admonition, FixedAdmonitions 3 | from flet_material.annotation import Annotations 4 | from flet_material.checkbox import CheckBox 5 | from flet_material.button import Buttons 6 | from flet_material.chip import FilterChip 7 | from flet_material.badge import NotificationBadge, IconBadge 8 | from flet_material.switch import Switchs 9 | from flet_material.alert import Alerts 10 | from flet_material.code_block import Code 11 | -------------------------------------------------------------------------------- /flet_material/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/admonition.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/admonition.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/alert.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/alert.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/annotation.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/annotation.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/annotations.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/annotations.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/badge.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/badge.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/base.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/base.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/button.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/button.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/checkbox.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/checkbox.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/chip.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/chip.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/code_block.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/code_block.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/__pycache__/switch.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/flet_material/__pycache__/switch.cpython-310.pyc -------------------------------------------------------------------------------- /flet_material/admonition.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from styles import admon_style, font_scheme 3 | 4 | 5 | class Admonition(ft.Container): 6 | def __init__( 7 | self, 8 | type_: str, 9 | expanded_height: int, 10 | expand: bool, 11 | components: list, 12 | height=60, 13 | padding=0, 14 | border_radius=6, 15 | animate=ft.Animation(300, "decelerate"), 16 | clip_behavior=ft.ClipBehavior.HARD_EDGE, 17 | shadow=ft.BoxShadow( 18 | spread_radius=8, 19 | blur_radius=15, 20 | color=ft.colors.with_opacity(0.35, "black"), 21 | offset=ft.Offset(4, 4), 22 | ), 23 | ): 24 | self.type_ = type_ 25 | self.expanded_height = expanded_height 26 | self.components = components 27 | self.column = ft.Column( 28 | controls=self.components, 29 | ) 30 | 31 | # define admonition title properties 32 | bgcolor = admon_style.get(self.type_, {}).get("bgcolor", "#20222c") 33 | border_color = admon_style.get(self.type_, {}).get("border_color", "white24") 34 | icon = admon_style.get(self.type_, {}).get("icon", "white24") 35 | 36 | self.container = ft.Container( 37 | height=58, 38 | bgcolor=ft.colors.with_opacity(0.95, bgcolor), 39 | border_radius=6, 40 | padding=10, 41 | content=ft.Row( 42 | alignment=ft.MainAxisAlignment.SPACE_BETWEEN, 43 | controls=[ 44 | ft.Row( 45 | vertical_alignment="center", 46 | spacing=10, 47 | controls=[ 48 | ft.Icon( 49 | name=icon, 50 | color=border_color, 51 | size=18, 52 | ), 53 | ft.Text( 54 | self.type_.capitalize(), 55 | size=12, 56 | weight="w700", 57 | ), 58 | ], 59 | ), 60 | ft.IconButton( 61 | icon=ft.icons.ADD, 62 | icon_size=15, 63 | icon_color=border_color, 64 | rotate=ft.Rotate(0, ft.alignment.center), 65 | animate_rotation=ft.Animation(400, "easeOutBack"), 66 | on_click=lambda e: self.resize_admonition(e), 67 | ), 68 | ], 69 | ), 70 | ) 71 | 72 | super().__init__( 73 | expand=expand, 74 | height=height, 75 | padding=padding, 76 | border_radius=border_radius, 77 | animate=animate, 78 | clip_behavior=clip_behavior, 79 | border=ft.border.all(0.85, border_color), 80 | shadow=shadow, 81 | content=ft.Column( 82 | alignment="start", 83 | spacing=0, 84 | controls=[ 85 | self.container, 86 | self.column, 87 | ], 88 | ), 89 | ) 90 | 91 | # method: expand and retract admonition control + animation set 92 | def resize_admonition(self, e): 93 | if self.height != self.expanded_height: 94 | self.height = self.expanded_height 95 | self.container.border_radius = ft.border_radius.only(topLeft=6, topRight=6) 96 | e.control.rotate = ft.Rotate(0.75, ft.alignment.center) 97 | else: 98 | self.height = 60 99 | e.control.rotate = ft.Rotate(0, ft.alignment.center) 100 | self.container.border_radius = 6 101 | 102 | self.update() 103 | 104 | 105 | class FixedAdmonitions(ft.Container): 106 | def __init__( 107 | self, 108 | type_: str, 109 | expanded: bool, 110 | title: str, 111 | *args, 112 | **kwargs, 113 | ): 114 | self.title = title 115 | # define admonition title properties 116 | bgcolor = admon_style.get(type_, {}).get("bgcolor", "#20222c") 117 | border_color = admon_style.get(type_, {}).get("border_color", "white24") 118 | icon = admon_style.get(type_, {}).get("icon", "white24") 119 | 120 | fonts = font_scheme.get("admonitions_title", {}) 121 | title_font = fonts.get("font_family") 122 | title_size = fonts.get("size") 123 | 124 | self.container = ft.Container( 125 | height=58, 126 | bgcolor=ft.colors.with_opacity(0.95, bgcolor), 127 | border_radius=6, 128 | padding=10, 129 | content=ft.Row( 130 | alignment=ft.MainAxisAlignment.SPACE_BETWEEN, 131 | controls=[ 132 | ft.Row( 133 | vertical_alignment="center", 134 | spacing=10, 135 | controls=[ 136 | ft.Icon( 137 | name=icon, 138 | color=border_color, 139 | size=18, 140 | ), 141 | ft.Text( 142 | type_.capitalize(), 143 | size=title_size, 144 | font_family=title_font, 145 | weight="w700", 146 | ), 147 | ft.Text( 148 | self.title, 149 | size=13, 150 | font_family=title_font, 151 | weight="w400", 152 | ), 153 | ], 154 | ), 155 | ], 156 | ), 157 | ) 158 | 159 | # define self instance properties 160 | kwargs.setdefault( 161 | "shadow", 162 | ft.BoxShadow( 163 | spread_radius=8, 164 | blur_radius=15, 165 | color=ft.colors.with_opacity(0.35, "black"), 166 | offset=ft.Offset(4, 4), 167 | ), 168 | ) 169 | kwargs.setdefault("border", ft.border.all(0.85, border_color)) 170 | kwargs.setdefault("clip_behavior", ft.ClipBehavior.HARD_EDGE) 171 | kwargs.setdefault("animate", ft.Animation(300, "decelerate")) 172 | kwargs.setdefault("expand", expanded) 173 | kwargs.setdefault("border_radius", 6) 174 | kwargs.setdefault("height", 60) 175 | kwargs.setdefault("padding", 0) 176 | kwargs.setdefault( 177 | "content", 178 | ft.Column( 179 | alignment="start", 180 | spacing=0, 181 | controls=[ 182 | self.container, 183 | ], 184 | ), 185 | ) 186 | 187 | super().__init__(*args, **kwargs) 188 | -------------------------------------------------------------------------------- /flet_material/admonition/admonition.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | 3 | class Admonition(ft.Container): 4 | def __init__( 5 | self, 6 | type_: str, 7 | expanded_height: int, 8 | expand: bool, 9 | components: list, 10 | height=60, 11 | padding=0, 12 | border_radius=6, 13 | animate=ft.Animation(300, "decelerate"), 14 | clip_behavior=ft.ClipBehavior.HARD_EDGE, 15 | shadow=ft.BoxShadow( 16 | spread_radius=8, 17 | blur_radius=15, 18 | color=ft.colors.with_opacity(0.35, "black"), 19 | offset=ft.Offset(4, 4), 20 | ), 21 | ): 22 | self.type_ = type_ 23 | self.expanded_height = expanded_height 24 | self.components = components 25 | self.column = ft.Column( 26 | controls=self.components, 27 | ) 28 | 29 | # define admonition title properties 30 | bgcolor = admon_style.get(self.type_, {}).get("bgcolor", "#20222c") 31 | border_color = admon_style.get(self.type_, {}).get("border_color", "white24") 32 | icon = admon_style.get(self.type_, {}).get("icon", "white24") 33 | 34 | self.container = ft.Container( 35 | height=58, 36 | bgcolor=ft.colors.with_opacity(0.95, bgcolor), 37 | border_radius=6, 38 | padding=10, 39 | content=ft.Row( 40 | alignment=ft.MainAxisAlignment.SPACE_BETWEEN, 41 | controls=[ 42 | ft.Row( 43 | vertical_alignment="center", 44 | spacing=10, 45 | controls=[ 46 | ft.Icon( 47 | name=icon, 48 | color=border_color, 49 | size=18, 50 | ), 51 | ft.Text( 52 | self.type_.capitalize(), 53 | size=12, 54 | weight="w700", 55 | ), 56 | ], 57 | ), 58 | ft.IconButton( 59 | icon=ft.icons.ADD, 60 | icon_size=15, 61 | icon_color=border_color, 62 | rotate=ft.Rotate(0, ft.alignment.center), 63 | animate_rotation=ft.Animation(400, "easeOutBack"), 64 | on_click=lambda e: self.resize_admonition(e), 65 | ), 66 | ], 67 | ), 68 | ) 69 | 70 | super().__init__( 71 | expand=expand, 72 | height=height, 73 | padding=padding, 74 | border_radius=border_radius, 75 | animate=animate, 76 | clip_behavior=clip_behavior, 77 | border=ft.border.all(0.85, border_color), 78 | shadow=shadow, 79 | content=ft.Column( 80 | alignment="start", 81 | spacing=0, 82 | controls=[ 83 | self.container, 84 | self.column, 85 | ], 86 | ), 87 | ) 88 | 89 | # method: expand and retract admonition control + animation set 90 | def resize_admonition(self, e): 91 | if self.height != self.expanded_height: 92 | self.height = self.expanded_height 93 | self.container.border_radius = ft.border_radius.only(topLeft=6, topRight=6) 94 | e.control.rotate = ft.Rotate(0.75, ft.alignment.center) 95 | else: 96 | self.height = 60 97 | e.control.rotate = ft.Rotate(0, ft.alignment.center) 98 | self.container.border_radius = 6 99 | 100 | self.update() -------------------------------------------------------------------------------- /flet_material/admonition/style.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | 3 | admonition_style: dict = { 4 | "height": 60, 5 | "padding": 0, 6 | "border_radius": 6, 7 | "animate": ft.Animation(300, "decelerate"), 8 | "clip_behavior": ft.ClipBehavior.HARD_EDGE, 9 | "shadow": ft.BoxShadow( 10 | spread_radius=8, 11 | blur_radius=15, 12 | color=ft.colors.with_opacity(0.35, "black"), 13 | offset=ft.Offset(4, 4), 14 | ), 15 | } 16 | -------------------------------------------------------------------------------- /flet_material/alert.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from styles import alert_dimension, alert_settings 3 | from flet_material.base import Theme 4 | 5 | 6 | class Alerts(ft.Container, Theme): 7 | def __init__( 8 | self, 9 | type_: str, 10 | size: str, 11 | title: str, 12 | comment: str, 13 | *args, 14 | **kwargs, 15 | ): 16 | # get alert dimensions 17 | width = alert_dimension.get(size).get("width") 18 | height = alert_dimension.get(size).get("height") 19 | 20 | # get alert properties 21 | bgcolor = alert_settings.get(type_).get("bgcolor") 22 | icon = alert_settings.get(type_).get("icon") 23 | 24 | # props for inner row 25 | self.box1: ft.Control = ft.Container( 26 | width=5, 27 | border_radius=20, 28 | bgcolor=bgcolor, 29 | margin=ft.margin.only(left=5, right=5, top=5, bottom=5), 30 | ) 31 | self.box2: ft.Control = ft.Container( 32 | expand=1, 33 | alignment=ft.alignment.center, 34 | content=ft.Icon(name=icon, size=30, color=bgcolor), 35 | ) 36 | self.box3: ft.Control = ft.Container( 37 | expand=5, 38 | content=ft.Row( 39 | alignment="start", 40 | controls=[ 41 | ft.Column( 42 | spacing=2, 43 | alignment="center", 44 | controls=[ 45 | ft.Text(title, size=13, color="black", weight="bold"), 46 | ft.Text( 47 | comment, 48 | size=10, 49 | color=ft.colors.with_opacity(0.85, "black"), 50 | ), 51 | ], 52 | ) 53 | ], 54 | ), 55 | ) 56 | self.box4: ft.Control = ft.Container( 57 | width=45, 58 | alignment=ft.alignment.center, 59 | ink=True, 60 | content=ft.Text("×", color=ft.colors.with_opacity(0.5, "black")), 61 | ) 62 | 63 | # 64 | kwargs.setdefault( 65 | "shadow", 66 | ft.BoxShadow( 67 | spread_radius=8, 68 | blur_radius=15, 69 | color=ft.colors.with_opacity(0.25, "black"), 70 | offset=ft.Offset(4, 0), 71 | ), 72 | ) 73 | kwargs.setdefault("width", width) 74 | kwargs.setdefault("height", height) 75 | kwargs.setdefault("bgcolor", ft.colors.with_opacity(0.90, "white")) 76 | kwargs.setdefault("border_radius", 6) 77 | kwargs.setdefault( 78 | "content", 79 | ft.Row( 80 | spacing=0, 81 | alignment="center", 82 | controls=[self.box1, self.box2, self.box3, self.box4], 83 | ), 84 | ) 85 | 86 | super().__init__(*args, **kwargs) 87 | -------------------------------------------------------------------------------- /flet_material/annotation.py: -------------------------------------------------------------------------------- 1 | from flet_material.base import Theme 2 | import flet as ft 3 | 4 | 5 | class Annotations(ft.Container, Theme): 6 | def __init__( 7 | self, 8 | annotations_msg: str, 9 | *args, 10 | **kwargs, 11 | ): 12 | self.annotations_msg = annotations_msg 13 | 14 | self.annotation = ft.Tooltip( 15 | padding=10, 16 | vertical_offset=20, 17 | message=self.annotations_msg, 18 | bgcolor="#20222c", 19 | text_style=ft.TextStyle(color="white"), 20 | content=ft.Icon( 21 | name=ft.icons.ADD, 22 | size=15, 23 | rotate=ft.Rotate(0, ft.alignment.center), 24 | animate_rotation=ft.Animation(400, "easeOutBack"), 25 | ), 26 | ) 27 | 28 | kwargs.setdefault("width", 21) 29 | kwargs.setdefault("height", 21) 30 | kwargs.setdefault("bgcolor", "white24") 31 | kwargs.setdefault("shape", ft.BoxShape("circle")) 32 | kwargs.setdefault("alignment", ft.alignment.center) 33 | kwargs.setdefault("content", self.annotation) 34 | kwargs.setdefault("animate", 400) 35 | kwargs.setdefault("on_hover", lambda e: self.change_rotation(e)) 36 | super().__init__(*args, **kwargs) 37 | 38 | def change_rotation(self, e): 39 | if e.data == "true": 40 | self.bgcolor = Theme.primary_theme 41 | self.content.content.rotate = ft.Rotate(0.75, ft.alignment.center) 42 | 43 | else: 44 | self.bgcolor = "white24" 45 | self.content.content.rotate = ft.Rotate(0, ft.alignment.center) 46 | 47 | self.update() 48 | -------------------------------------------------------------------------------- /flet_material/badge.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from flet_material.base import Theme 3 | from styles import badge_size_dimensions, badge_icon 4 | import time 5 | 6 | 7 | class NotificationBadge(ft.Stack, Theme): 8 | def __init__( 9 | self, 10 | title: str, 11 | size: str, 12 | notification: int, 13 | *args, 14 | **kwargs, 15 | ): 16 | # set the start notification counter 17 | self.notification = notification 18 | 19 | # get the wdiget dimension 20 | size = badge_size_dimensions.get(size, {}) 21 | width = size.get("width", 55) 22 | height = size.get("height", 45) 23 | 24 | # 25 | self.notification_text = ft.Text( 26 | value=notification, weight="bold", size=9, text_align="center" 27 | ) 28 | 29 | self.notification_box: ft.Control = ft.Container( 30 | width=22, 31 | height=22, 32 | shape=ft.BoxShape("circle"), 33 | top=0, 34 | right=0, 35 | bgcolor="red800", 36 | border_radius=4, 37 | offset=ft.transform.Offset(0, -0.25), 38 | animate_offset=ft.Animation(50, "linear"), 39 | alignment=ft.alignment.center, 40 | content=self.notification_text, 41 | ) 42 | 43 | # 44 | kwargs.setdefault("width", width) 45 | kwargs.setdefault("height", height) 46 | kwargs.setdefault( 47 | "controls", 48 | [ 49 | ft.Container( 50 | width=width * 0.9, 51 | height=height * 0.9, 52 | bgcolor=Theme.primary_theme, 53 | top=1, 54 | border_radius=6, 55 | alignment=ft.alignment.center, 56 | content=ft.Text( 57 | title, 58 | weight="bold", 59 | size=12, 60 | text_align="center", 61 | font_family="Roboto", 62 | ), 63 | ), 64 | ft.Container( 65 | width=25, 66 | height=25, 67 | top=0, 68 | right=0, 69 | padding=10, 70 | shape=ft.BoxShape("circle"), 71 | offset=ft.transform.Offset(0, -0.25), 72 | bgcolor="#2e2f3e", 73 | alignment=ft.alignment.center, 74 | ), 75 | self.notification_box, 76 | ], 77 | ) 78 | 79 | super().__init__(*args, **kwargs) 80 | 81 | def add_notification(self, current): 82 | self.notification_text.value = current 83 | self.notification_box.offset = ft.transform.Offset(0.05, -0.25) 84 | self.notification_box.update() 85 | time.sleep(0.05) 86 | self.notification_box.offset = ft.transform.Offset(-0.05, -0.25) 87 | self.notification_box.update() 88 | time.sleep(0.05) 89 | self.notification_box.offset = ft.transform.Offset(0, -0.25) 90 | self.notification_box.update() 91 | 92 | 93 | class IconBadge(ft.Stack, Theme): 94 | def __init__( 95 | self, 96 | bagde_icon: str, 97 | notification: int, 98 | *args, 99 | **kwargs, 100 | ): 101 | # 102 | icon = badge_icon.get(bagde_icon) 103 | self.notification = notification 104 | 105 | # 106 | self.notification_text = ft.Text( 107 | value=notification, weight="bold", size=9, text_align="center" 108 | ) 109 | 110 | self.notification_box: ft.Control = ft.Container( 111 | width=22, 112 | height=18, 113 | top=0, 114 | right=0, 115 | bgcolor="red800", 116 | border_radius=4, 117 | offset=ft.transform.Offset(-0.30, 0.35), 118 | animate_offset=ft.Animation(50, "linear"), 119 | shape=ft.BoxShape("rectangle"), 120 | alignment=ft.alignment.center, 121 | content=self.notification_text, 122 | ) 123 | 124 | # 125 | kwargs.setdefault("width", 64) 126 | kwargs.setdefault("height", 64) 127 | kwargs.setdefault( 128 | "controls", 129 | [ 130 | self.notification_box, 131 | ft.Container( 132 | width=64 * 0.9, 133 | height=64 * 0.9, 134 | bgcolor="transparent", 135 | top=1, 136 | border_radius=6, 137 | alignment=ft.alignment.center, 138 | content=ft.Icon(name=icon, size=24), 139 | ), 140 | ], 141 | ) 142 | 143 | super().__init__(*args, **kwargs) 144 | 145 | def add_notification(self, current): 146 | self.notification_text.value = current 147 | self.notification_box.offset = ft.transform.Offset(-0.35, 0.35) 148 | self.notification_box.update() 149 | time.sleep(0.05) 150 | self.notification_box.offset = ft.transform.Offset(-0.25, 0.35) 151 | self.notification_box.update() 152 | time.sleep(0.05) 153 | self.notification_box.offset = ft.transform.Offset(-0.3, 0.35) 154 | self.notification_box.update() 155 | -------------------------------------------------------------------------------- /flet_material/base.py: -------------------------------------------------------------------------------- 1 | from styles.theme import flet_material_theme 2 | 3 | 4 | class Theme: 5 | primary_theme: str = None 6 | accent_theme: str = None 7 | 8 | bgcolor: str = "#2e2f3e" 9 | 10 | @classmethod 11 | def set_theme(cls, theme: str): 12 | app_theme = flet_material_theme.get(theme) 13 | cls.primary_theme = app_theme.get("primary") 14 | cls.accent_theme = app_theme.get("accent") 15 | -------------------------------------------------------------------------------- /flet_material/button.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from flet_material.base import Theme 3 | 4 | 5 | class Buttons(ft.Container, Theme): 6 | def __init__(self, width, height, title: str, *args, **kwargs): 7 | # 8 | self.title = title 9 | # 10 | self.text = ft.Text( 11 | self.title, 12 | weight="bold", 13 | color=ft.colors.with_opacity(0.85, Theme.primary_theme), 14 | ) 15 | # 16 | kwargs.setdefault("width", width) 17 | kwargs.setdefault("height", height) 18 | kwargs.setdefault("ink", True) 19 | kwargs.setdefault("bgcolor", "#2e2f3e") 20 | kwargs.setdefault("shape", ft.BoxShape("rectangle")) 21 | kwargs.setdefault( 22 | "border", 23 | ft.border.all(2, ft.colors.with_opacity(0.85, Theme.primary_theme)), 24 | ) 25 | kwargs.setdefault("border_radius", 4) 26 | kwargs.setdefault("on_hover", lambda e: self.animate_button(e)) 27 | kwargs.setdefault("alignment", ft.alignment.center) 28 | kwargs.setdefault("animate", ft.Animation(500, "ease")) 29 | kwargs.setdefault("content", self.text) 30 | 31 | super().__init__(*args, **kwargs) 32 | 33 | def animate_button(self, e): 34 | if self.bgcolor == "#2e2f3e": 35 | self.bgcolor = Theme.primary_theme 36 | self.text.color = ft.colors.with_opacity(0.95, "white") 37 | else: 38 | self.bgcolor = "#2e2f3e" 39 | self.text.color = ft.colors.with_opacity(0.85, Theme.primary_theme) 40 | 41 | self.update() 42 | -------------------------------------------------------------------------------- /flet_material/checkbox.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from flet_material.base import Theme 3 | import time 4 | 5 | 6 | class CheckBox(ft.Container, Theme): 7 | def __init__(self, shape: str, value: bool, disabled: bool, *args, **kwargs): 8 | self.checkbox: ft.Control = ft.Checkbox( 9 | fill_color=Theme.primary_theme, 10 | check_color="white", 11 | scale=ft.Scale(0.95), 12 | value=value, 13 | disabled=disabled, 14 | on_change=lambda e: self.animate_checkbox(e), 15 | ) 16 | 17 | kwargs.setdefault("width", 25) 18 | kwargs.setdefault("height", 25) 19 | kwargs.setdefault("shape", ft.BoxShape(shape)) 20 | kwargs.setdefault("bgcolor", Theme.primary_theme) 21 | kwargs.setdefault("content", self.checkbox) 22 | kwargs.setdefault("scale", 0.8) 23 | kwargs.setdefault("animate_scale", ft.Animation(500, "bounceOut")) 24 | kwargs.setdefault("on_click", lambda e: self.animate_checkbox(e)) 25 | 26 | super().__init__(*args, **kwargs) 27 | 28 | def animate_checkbox(self, e): 29 | self.scale = ft.Scale(0.65) 30 | self.update() 31 | time.sleep(0.15) 32 | self.scale = ft.Scale(0.8) 33 | self.update() 34 | -------------------------------------------------------------------------------- /flet_material/chip.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from flet_material.base import Theme 3 | 4 | 5 | class FilterChip(ft.Container, Theme): 6 | def __init__( 7 | self, 8 | title: str, 9 | chip_width: int, 10 | *args, 11 | **kwargs, 12 | ): 13 | # 14 | self.title = title 15 | self.chip_width = chip_width 16 | 17 | # 18 | self.tick = ft.Control = ft.Checkbox( 19 | width=2, 20 | height=2, 21 | scale=ft.Scale(0.7), 22 | fill_color="#2e2f3e", 23 | check_color="white", 24 | disabled=True, 25 | value=False, 26 | ) 27 | 28 | kwargs.setdefault("width", self.chip_width) 29 | kwargs.setdefault("bgcolor", "#2e2f3e") 30 | kwargs.setdefault("border", ft.border.all(1, Theme.primary_theme)) 31 | kwargs.setdefault("padding", 8) 32 | kwargs.setdefault("ink", True) 33 | kwargs.setdefault("border_radius", 6) 34 | kwargs.setdefault("alignment", ft.alignment.center) 35 | kwargs.setdefault("on_click", lambda e: self.toggle_filter_chip(e)) 36 | kwargs.setdefault( 37 | "content", 38 | ft.Row( 39 | spacing=0, 40 | alignment=ft.MainAxisAlignment.SPACE_AROUND, 41 | vertical_alignment="center", 42 | controls=[self.tick, ft.Text(self.title, size=11, weight="bold")], 43 | ), 44 | ) 45 | 46 | super().__init__(*args, **kwargs) 47 | 48 | def toggle_filter_chip(self, e): 49 | if self.tick.value == False: 50 | self.tick.value = True 51 | else: 52 | self.tick.value = False 53 | 54 | self.tick.update() 55 | -------------------------------------------------------------------------------- /flet_material/code_block.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | import asyncio 3 | 4 | 5 | class Code(ft.UserControl): 6 | def __init__(self, title): 7 | # 8 | self.title = title 9 | 10 | # 11 | self._hovered: bool | None = None 12 | 13 | self.copy_box = ft.Container( 14 | width=28, 15 | height=28, 16 | border=ft.border.all(1, "transparent"), 17 | right=1, 18 | top=1, 19 | border_radius=7, 20 | scale=ft.Scale(1), 21 | animate=ft.Animation(400, "ease"), 22 | alignment=ft.alignment.center, 23 | content=ft.Icon( 24 | name=ft.icons.COPY, 25 | size=14, 26 | color="white12", 27 | opacity=0, 28 | animate_opacity=ft.Animation(420, "ease"), 29 | ), 30 | on_click=lambda e: asyncio.run(self.get_copy_box_content(e)), 31 | ) 32 | 33 | super().__init__() 34 | 35 | async def get_copy_box_content(self, e): 36 | self.title = self.title.replace("`", "") 37 | self.title = self.title.replace("python", "") 38 | e.page.set_clipboard(self.title) 39 | 40 | while self._hovered: 41 | self.copy_box.disabled = True 42 | self.copy_box.update() 43 | 44 | self.copy_box.content.opacity = 0 45 | self.copy_box.content.name = ft.icons.CHECK 46 | self.copy_box.update() 47 | 48 | await asyncio.sleep(0.25) 49 | 50 | self.copy_box.content.opacity = 1 51 | self.copy_box.content.color = "teal" 52 | self.copy_box.update() 53 | 54 | await asyncio.sleep(1) 55 | 56 | self.copy_box.content.opacity = 0 57 | self.copy_box.content.name = ft.icons.COPY 58 | self.copy_box.content.color = "white12" 59 | self.copy_box.update() 60 | 61 | self.copy_box.disabled = False 62 | self.copy_box.update() 63 | 64 | break 65 | 66 | if self._hovered == True: 67 | self.copy_box.content.opacity = 1 68 | 69 | else: 70 | self.copy_box.content.opacity = 0 71 | 72 | self.copy_box.content.update() 73 | 74 | def show_copy_box(self, e): 75 | if e.data == "true": 76 | self.copy_box.border = ft.border.all(0.95, "white10") 77 | self.copy_box.content.opacity = 1 78 | self._hovered = True 79 | 80 | else: 81 | self.copy_box.content.opacity = 0 82 | self.copy_box.border = ft.border.all(0.95, "transparent") 83 | self._hovered = False 84 | 85 | self.copy_box.update() 86 | 87 | def build(self): 88 | return ft.Row( 89 | alignment="start", 90 | vertical_alignment="center", 91 | controls=[ 92 | ft.Container( 93 | expand=True, 94 | padding=8, 95 | border_radius=7, 96 | bgcolor="#282b33", 97 | on_hover=lambda e: self.show_copy_box(e), 98 | content=ft.Stack( 99 | controls=[ 100 | ft.Markdown( 101 | value=self.title, 102 | selectable=True, 103 | extension_set="gitHubWeb", 104 | code_theme="atom-one-dark-reasonable", 105 | code_style=ft.TextStyle(size=12), 106 | ), 107 | self.copy_box, 108 | ], 109 | ), 110 | ) 111 | ], 112 | ) 113 | -------------------------------------------------------------------------------- /flet_material/switch.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | from flet_material.base import Theme 3 | 4 | 5 | class Switchs(ft.Container, Theme): 6 | def __init__(self, animation: ft.Animation = "easeInOutBack", *args, **kwargs): 7 | self.toggle = ft.Container( 8 | bgcolor="white", 9 | shape=ft.BoxShape("circle"), 10 | offset=ft.transform.Offset(-0.25, 0), 11 | animate_offset=ft.Animation(600, animation), 12 | on_click=lambda e: self.toggle_switch(e), 13 | ) 14 | 15 | kwargs.setdefault("width", 54) 16 | kwargs.setdefault("height", 25) 17 | kwargs.setdefault("border_radius", 25) 18 | kwargs.setdefault("bgcolor", "white10") 19 | kwargs.setdefault("padding", 4) 20 | kwargs.setdefault("clip_behavior", ft.ClipBehavior.HARD_EDGE) 21 | kwargs.setdefault("content", self.toggle) 22 | kwargs.setdefault("animate", 400) 23 | kwargs.setdefault("on_click", lambda e: self.toggle_switch(e)) 24 | 25 | super().__init__(*args, **kwargs) 26 | 27 | def toggle_switch(self, e): 28 | if self.toggle.offset == ft.transform.Offset(-0.25, 0): 29 | self.toggle.offset = ft.transform.Offset(0.25, 0) 30 | self.bgcolor = Theme.primary_theme 31 | self.update() 32 | elif self.toggle.offset == ft.transform.Offset(0.25, 0): 33 | self.toggle.offset = ft.transform.Offset(-0.25, 0) 34 | self.bgcolor = "white10" 35 | self.update() 36 | else: 37 | pass 38 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | click>=8.1.3 2 | flet>=0.8.1 3 | twine>=4.0.2 -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name="flet-material", 5 | version="0.3.3", 6 | author="S. Ahmad P. Hakimi", 7 | author_email="pourhakimi@pm.me", 8 | description="Material UI Library for Flet", 9 | long_description="", 10 | long_description_content_type="text/markdown", 11 | url="https://github.com/LineIndent/material_design_flet", 12 | packages=["flet_material", "styles"], 13 | install_requires=["click>=8.1.3", "flet>=0.8.1"], 14 | classifiers=[ 15 | "Programming Language :: Python :: 3", 16 | "License :: OSI Approved :: MIT License", 17 | "Operating System :: OS Independent", 18 | ], 19 | entry_points={ 20 | "console_scripts": [ 21 | "flet_material_init=flet_material.command.new_project:init_code" 22 | ], 23 | }, 24 | keywords=["material design", "UI library", "Flet"], 25 | ) 26 | -------------------------------------------------------------------------------- /styles/__init__.py: -------------------------------------------------------------------------------- 1 | from styles.theme import flet_material_theme 2 | from styles.fonts import font_scheme 3 | from styles.admonition_style import admon_style 4 | from styles.badge_style import badge_size_dimensions, badge_icon 5 | from styles.alert_style import alert_dimension, alert_settings 6 | -------------------------------------------------------------------------------- /styles/__pycache__/__init__.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/__init__.cpython-310.pyc -------------------------------------------------------------------------------- /styles/__pycache__/admonition_style.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/admonition_style.cpython-310.pyc -------------------------------------------------------------------------------- /styles/__pycache__/alert_style.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/alert_style.cpython-310.pyc -------------------------------------------------------------------------------- /styles/__pycache__/alert_styles.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/alert_styles.cpython-310.pyc -------------------------------------------------------------------------------- /styles/__pycache__/badge_style.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/badge_style.cpython-310.pyc -------------------------------------------------------------------------------- /styles/__pycache__/fonts.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/fonts.cpython-310.pyc -------------------------------------------------------------------------------- /styles/__pycache__/theme.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LineIndent/material_design_flet/5c9c972f24cbc77f451c8e0fb3f9bd2b0a17afbc/styles/__pycache__/theme.cpython-310.pyc -------------------------------------------------------------------------------- /styles/admonition_style.py: -------------------------------------------------------------------------------- 1 | admon_style: dict = { 2 | "note": { 3 | "bgcolor": "#2f3851", 4 | "border_color": "#448afe", 5 | "icon": "event_note_rounded", 6 | }, 7 | "abstract": { 8 | "bgcolor": "#293c51", 9 | "border_color": "#1eb0fe", 10 | "icon": "insert_drive_file_rounded", 11 | }, 12 | "info": { 13 | "bgcolor": "#293d4d", 14 | "border_color": "#24b7d4", 15 | "icon": "info_rounded", 16 | }, 17 | "tip": { 18 | "bgcolor": "#293f48", 19 | "border_color": "#2abfa4", 20 | "icon": "tips_and_updates_rounded", 21 | }, 22 | "success": { 23 | "bgcolor": "#293e40", 24 | "border_color": "#2fc852", 25 | "icon": "check_sharp", 26 | }, 27 | "warning": { 28 | "bgcolor": "#423a37", 29 | "border_color": "#fb9100", 30 | "icon": "warning_sharp", 31 | }, 32 | "danger": { 33 | "bgcolor": "#432d3f", 34 | "border_color": "#fa1744", 35 | "icon": "dangerous_sharp", 36 | }, 37 | } 38 | -------------------------------------------------------------------------------- /styles/alert_style.py: -------------------------------------------------------------------------------- 1 | alert_dimension: dict = { 2 | "sm": {"width": 250, "height": 75}, 3 | "md": {"width": 300, "height": 75}, 4 | "lg": {"width": 350, "height": 75}, 5 | } 6 | 7 | 8 | alert_settings: dict = { 9 | "info": {"bgcolor": "blue800", "icon": "info_sharp"}, 10 | "warn": {"bgcolor": "yellow600", "icon": "priority_high_sharp"}, 11 | "question": {"bgcolor": "green700", "icon": "question_mark_rounded"}, 12 | } 13 | -------------------------------------------------------------------------------- /styles/badge_style.py: -------------------------------------------------------------------------------- 1 | badge_size_dimensions: dict = { 2 | "sm": {"width": 55, "height": 45}, 3 | "md": {"width": 90, "height": 45}, 4 | "lg": {"width": 135, "height": 45}, 5 | "xl": {"width": 165, "height": 45}, 6 | } 7 | 8 | 9 | badge_icon: dict = { 10 | "email": "email_rounded", 11 | "facebook": "facebook_rounded", 12 | "notification": "notifications_sharp", 13 | "cart": "shopping_cart_sharp", 14 | } 15 | -------------------------------------------------------------------------------- /styles/fonts.py: -------------------------------------------------------------------------------- 1 | font_scheme: dict = { 2 | "admonitions_title": {"font_family": "Roboto", "size": "12"}, 3 | } 4 | -------------------------------------------------------------------------------- /styles/theme.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | 4 | """ 5 | flet_material_theme: dict = { 6 | "red": { 7 | "primary": "#dd6058", 8 | "accent": "#dc2626", 9 | }, 10 | "pink": { 11 | "primary": "#d63863", 12 | "accent": "#9f1239", 13 | }, 14 | "purple": { 15 | "primary": "#a855f7", 16 | "accent": "#7e22ce", 17 | }, 18 | "indigo": { 19 | "primary": "#4f46e5", 20 | "accent": "#3730a3", 21 | }, 22 | "blue": { 23 | "primary": "#3b82f6", 24 | "accent": "#1d4ed8", 25 | }, 26 | "light blue": { 27 | "primary": "#0ea5e9", 28 | "accent": "#0369a1", 29 | }, 30 | "cyan": { 31 | "primary": "#06b6d4", 32 | "accent": "#0e7490", 33 | }, 34 | "teal": { 35 | "primary": "#14b8a6", 36 | "accent": "#0f766e", 37 | }, 38 | "green": { 39 | "primary": "#22c55e", 40 | "accent": "#15803d", 41 | }, 42 | "lime": { 43 | "primary": "#84cc16", 44 | "accent": "#4d7c0f", 45 | }, 46 | "yellow": { 47 | "primary": "#eab308", 48 | "accent": "#a16207", 49 | }, 50 | "amber": { 51 | "primary": "#f59e0b", 52 | "accent": "#b45309", 53 | }, 54 | "orange": { 55 | "primary": "#f97316", 56 | "accent": "#c2410c", 57 | }, 58 | "earth": { 59 | "primary": "#78716c", 60 | "accent": "#44403c", 61 | }, 62 | "slate": { 63 | "primary": "#64748b", 64 | "accent": "#334155", 65 | }, 66 | "black": { 67 | "primary": "#000000", 68 | "accent": "#000000", 69 | }, 70 | "white": { 71 | "primary": "#ffffff", 72 | "accent": "#ffffff", 73 | }, 74 | } 75 | -------------------------------------------------------------------------------- /tests/test_admonitions.py: -------------------------------------------------------------------------------- 1 | import flet_material as fm 2 | import unittest 3 | 4 | 5 | dropdown = fm.Admonitions( 6 | type_="note", expanded_height=300, expand=False, components=None 7 | ) 8 | 9 | 10 | class TestButtons(unittest.TestCase): 11 | def test_parameter_types(self): 12 | self.assertIsInstance(dropdown.type_, str) 13 | self.assertIsInstance(dropdown.expanded_height, int) 14 | self.assertIsInstance(dropdown.components, (list, type(None))) 15 | 16 | 17 | if __name__ == "__main__": 18 | unittest.main() 19 | -------------------------------------------------------------------------------- /tests/test_buttons.py: -------------------------------------------------------------------------------- 1 | import flet_material as fm 2 | import unittest 3 | 4 | 5 | button = fm.Buttons(width=220, height=55, title="Give this repo a star!") 6 | 7 | 8 | class TestButtons(unittest.TestCase): 9 | def test_parameter_types(self): 10 | self.assertIsInstance(button.width, int) 11 | self.assertIsInstance(button.height, int) 12 | self.assertIsInstance(button.title, str) 13 | 14 | 15 | if __name__ == "__main__": 16 | unittest.main() 17 | -------------------------------------------------------------------------------- /tests/test_switch.py: -------------------------------------------------------------------------------- 1 | import flet as ft 2 | import flet_material as fm 3 | import unittest 4 | 5 | 6 | switch = fm.Switchs() 7 | 8 | 9 | class TestButtons(unittest.TestCase): 10 | def test_attributes(self): 11 | self.assertEqual(switch.width, 54) 12 | self.assertEqual(switch.height, 25) 13 | self.assertEqual(switch.border_radius, 25) 14 | self.assertEqual(switch.bgcolor, "white10") 15 | self.assertEqual(switch.padding, 4) 16 | self.assertEqual(switch.clip_behavior, ft.ClipBehavior.HARD_EDGE) 17 | 18 | def test_parameter_types(self): 19 | # Test if switch is an instance of the Switchs class: 20 | self.assertIsInstance(switch, fm.Switchs) 21 | 22 | 23 | if __name__ == "__main__": 24 | unittest.main() 25 | --------------------------------------------------------------------------------4 | 8 |None 5 |2023-04-24 6 |daily 7 |9 | 13 |None 10 |2023-04-24 11 |daily 12 |14 | 18 |None 15 |2023-04-24 16 |daily 17 |19 | 23 |None 20 |2023-04-24 21 |daily 22 |24 | 28 |None 25 |2023-04-24 26 |daily 27 |29 | 33 |None 30 |2023-04-24 31 |daily 32 |34 | 38 |None 35 |2023-04-24 36 |daily 37 |39 | 43 |None 40 |2023-04-24 41 |daily 42 |44 | 48 |None 45 |2023-04-24 46 |daily 47 |49 | 53 |None 50 |2023-04-24 51 |daily 52 |54 | 58 |None 55 |2023-04-24 56 |daily 57 |