Compare commits
101 Commits
609e9c1250
...
temp-andro
| Author | SHA1 | Date | |
|---|---|---|---|
|
f5799f2993
|
|||
|
7ecf0f10e8
|
|||
|
af095684a1
|
|||
|
b5e7ab5c48
|
|||
|
be1a21b746
|
|||
|
fa749b652f
|
|||
|
d9efaaae6e
|
|||
|
428e52ba3d
|
|||
|
8dbb1dc48e
|
|||
|
ee950aa4a9
|
|||
|
439cc012f0
|
|||
|
803fe36ed1
|
|||
|
80918b98d9
|
|||
|
d4235ef2ab
|
|||
|
d0a124ee75
|
|||
|
67a8a3fae6
|
|||
|
baef08475f
|
|||
|
265516c1a6
|
|||
|
01c9b2d0fb
|
|||
|
4ad96fe92f
|
|||
|
df1d23c0e3
|
|||
|
ce73256133
|
|||
|
fd661ba7e4
|
|||
|
316d45fe0c
|
|||
|
00bb8d7951
|
|||
|
393173f218
|
|||
|
8fd5fe2d4e
|
|||
|
d165e58443
|
|||
|
c23397a941
|
|||
|
4f8abe60da
|
|||
|
5085791f45
|
|||
|
dc3effe640
|
|||
|
999057314a
|
|||
|
41d0d83478
|
|||
|
0bca3ff872
|
|||
|
32c12186c1
|
|||
|
2f933d5302
|
|||
|
16db7ac2b9
|
|||
|
ae4c842180
|
|||
|
2ff947e6d6
|
|||
|
302d7caa8d
|
|||
|
2fdf09d041
|
|||
|
9cae1f2a3b
|
|||
|
9302a69553
|
|||
|
94059f14bb
|
|||
|
744e23aa66
|
|||
|
e9a208a9d1
|
|||
|
0f1dfbadf8
|
|||
|
907ddaacbe
|
|||
|
defddfadae
|
|||
|
8a0fae3b32
|
|||
|
f66b8301f0
|
|||
|
7112946e5b
|
|||
|
ac8a533079
|
|||
|
31e50e486b
|
|||
|
69e43805b9
|
|||
|
ab7fbdd569
|
|||
|
a0b7a23b7c
|
|||
|
8f3d144329
|
|||
|
3f9efeee3e
|
|||
|
d592a81b7c
|
|||
|
145214e6cc
|
|||
|
4271ec7c21
|
|||
|
1deffe8ee4
|
|||
|
bcac82b860
|
|||
|
9da7515042
|
|||
|
a088d90c6a
|
|||
|
9481498725
|
|||
|
3d28254ae1
|
|||
|
1666c25d13
|
|||
|
a3ebf712f9
|
|||
|
0ea3f3a118
|
|||
|
9d80e68a4e
|
|||
|
9ce77897d8
|
|||
|
bf4afb03e6
|
|||
|
f134e6d4c3
|
|||
|
97a3a24378
|
|||
|
7f5a524d4b
|
|||
|
dbd3a5841b
|
|||
|
60cf0b641d
|
|||
|
bfadb1c2b2
|
|||
|
da2291b6e7
|
|||
|
5b1df9577b
|
|||
|
0548c6cbea
|
|||
|
8dda8ec0dd
|
|||
|
5725c3e7da
|
|||
|
f688c7c2fa
|
|||
|
3677cc343c
|
|||
|
d7c4b0788d
|
|||
|
37ab61743f
|
|||
|
5a4716146e
|
|||
|
2b719e0c0f
|
|||
|
45a20cdaef
|
|||
|
da87cd95da
|
|||
|
6b2bfb5ebe
|
|||
|
a83b376f7b
|
|||
|
3646aa91c4
|
|||
|
149451cc77
|
|||
|
3ab06794e3
|
|||
|
c095a98c5b
|
|||
|
028f833cae
|
@@ -1,9 +1,14 @@
|
||||
/.dioxus/
|
||||
/.git/
|
||||
/.github/
|
||||
/debug/
|
||||
/node_modules/
|
||||
/static/
|
||||
/target/
|
||||
/docker-compose-dev.yml
|
||||
/docker-compose-prod.yml
|
||||
/.git
|
||||
/.gitea
|
||||
/.github
|
||||
/bundle
|
||||
/node_modules
|
||||
/scripts
|
||||
/target
|
||||
|
||||
/.dockerignore
|
||||
/docker-compose-dev.yaml
|
||||
/docker-compose-prod.yaml
|
||||
/docker-compose.yaml
|
||||
/docker/dev/*/Dockerfile
|
||||
/docker/prod/*/Dockerfile
|
||||
|
||||
2
.env.dev
2
.env.dev
@@ -1,2 +1,2 @@
|
||||
DATABASE_URL=postgres://app:app@db/todo_baggins
|
||||
LANGUAGE_CODE=en-US
|
||||
MOBILE_SERVER_URL=
|
||||
|
||||
1
.gitea/default_merge_message/MERGE_TEMPLATE.md
Normal file
1
.gitea/default_merge_message/MERGE_TEMPLATE.md
Normal file
@@ -0,0 +1 @@
|
||||
${PullRequestTitle} (${PullRequestReference})
|
||||
4
.github/config/markdownlint.yaml
vendored
Normal file
4
.github/config/markdownlint.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
# no-duplicate-heading
|
||||
MD024:
|
||||
siblings_only: true
|
||||
4
.github/config/yamllint.yaml
vendored
Normal file
4
.github/config/yamllint.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
rules:
|
||||
comments:
|
||||
# https://github.com/redhat-developer/vscode-yaml/issues/433
|
||||
min-spaces-from-content: 1
|
||||
1670
.github/dependencies/checkov-check/requirements.txt
vendored
Normal file
1670
.github/dependencies/checkov-check/requirements.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
41
.github/workflows/actionlint-check.yaml
vendored
Normal file
41
.github/workflows/actionlint-check.yaml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: actionlint check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: actionlint check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: actionlint installation
|
||||
working-directory: /bin
|
||||
run: |
|
||||
set -e
|
||||
|
||||
INSTALL_SCRIPT_URL="https://raw.githubusercontent.com/rhysd/actionlint/e11169d0656294827d65370a3c76a2325406da85/scripts/download-actionlint.bash"
|
||||
ACTIONLINT_VERSION="1.7.5"
|
||||
|
||||
INSTALL_SCRIPT_CHECKSUM="99ab9f1d97c31c9a051e6902305f7ea9f48e7e7e1b0ee41f64aa831c86655168 download-actionlint.bash"
|
||||
ACTIONLINT_CHECKSUM="3d74253aa0cf645e6224fd53f2d56776998c7c05a0d3c12307463285515898f8 actionlint"
|
||||
|
||||
wget -O download-actionlint.bash "$INSTALL_SCRIPT_URL"
|
||||
echo "$INSTALL_SCRIPT_CHECKSUM" | sha256sum --check
|
||||
|
||||
bash download-actionlint.bash "$ACTIONLINT_VERSION"
|
||||
echo "$ACTIONLINT_CHECKSUM" | sha256sum --check
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: actionlint check
|
||||
run: actionlint
|
||||
33
.github/workflows/checkov-check.yaml
vendored
Normal file
33
.github/workflows/checkov-check.yaml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name: checkov check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: checkov check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: Python installation
|
||||
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b
|
||||
with:
|
||||
python-version: "3.13.1"
|
||||
- name: Rust toolchain installation
|
||||
uses: dtolnay/rust-toolchain@9bc92bc5598b4f3bec5d910d352094982cb0c3b9 # 1.92.0
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: checkov installation
|
||||
run: pip install --no-cache-dir --require-hashes -r .github/dependencies/checkov-check/requirements.txt
|
||||
- name: checkov check
|
||||
run: checkov --directory .
|
||||
29
.github/workflows/conventional-commit-messages-check.yaml
vendored
Normal file
29
.github/workflows/conventional-commit-messages-check.yaml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: conventional commit messages check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: conventional commit messages check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: conventional commit messages check
|
||||
uses: davidglezz/action-conventional-commits-check@ea8ae44ab9c7b79c1da0bd811a6ee6c5768ce476
|
||||
with:
|
||||
target-branch: ${{ github.event.pull_request.base.ref }}
|
||||
current-branch: ${{ github.event.pull_request.head.ref }}
|
||||
pattern: "^(build|chore|ci|docs|feat|fix|hotfix|perf|refactor|revert|style|test){1}(\\([[:alnum:]._-]+\\))?(!)?: ([[:alnum:]])+([[:space:][:print:]]*)$"
|
||||
24
.github/workflows/conventional-commits.yml
vendored
24
.github/workflows/conventional-commits.yml
vendored
@@ -1,24 +0,0 @@
|
||||
name: conventional commits
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [ opened, synchronize, reopened, edited ]
|
||||
|
||||
permissions: { }
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: conventional commits
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: conventional commits check
|
||||
uses: webiny/action-conventional-commits@v1.3.0
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
24
.github/workflows/conventional-pull-request-title-check.yaml
vendored
Normal file
24
.github/workflows/conventional-pull-request-title-check.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
name: conventional pull request title check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: conventional pull request title check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: conventional pull request title check
|
||||
uses: ytanikin/PRConventionalCommits@b628c5a234cc32513014b7bfdd1e47b532124d98
|
||||
with:
|
||||
task_types: '["build","chore","ci","docs","feat","fix","hotfix","perf","refactor","revert","style","test"]'
|
||||
add_label: "false"
|
||||
23
.github/workflows/conventional-pull-requests.yml
vendored
23
.github/workflows/conventional-pull-requests.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: conventional pull requests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [ opened, synchronize, reopened, edited ]
|
||||
|
||||
permissions: { }
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: conventional pull requests
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: conventional pull requests check
|
||||
uses: ytanikin/PRConventionalCommits@1.1.0
|
||||
with:
|
||||
task_types: '["build","chore","ci","docs","feat","fix","perf","refactor","revert","style","test"]'
|
||||
add_label: 'false'
|
||||
41
.github/workflows/dotenv-linter-check.yaml
vendored
Normal file
41
.github/workflows/dotenv-linter-check.yaml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: dotenv-linter check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: dotenv-linter check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: dotenv-linter installation
|
||||
working-directory: /bin
|
||||
run: |
|
||||
set -e
|
||||
|
||||
INSTALL_SCRIPT_URL="https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/ced5b9b28d9a1a309fe900cb992d69dba91205dc/install.sh"
|
||||
DOTENV_LINTER_VERSION="v3.3.0"
|
||||
|
||||
INSTALL_SCRIPT_CHECKSUM="3b883cbc2bc3b48b6acd794802326a50fcbfeff7d5cd61e457c54fd6072bd809 dotenv-linter-install.sh"
|
||||
DOTENV_LINTER_CHECKSUM="4bf3efb743a1e3383ab3407ff48c6147dd527dac35b736e224a26425df00a2ee dotenv-linter"
|
||||
|
||||
wget -O dotenv-linter-install.sh "$INSTALL_SCRIPT_URL"
|
||||
echo "$INSTALL_SCRIPT_CHECKSUM" | sha256sum --check
|
||||
|
||||
sh dotenv-linter-install.sh -- -b . "$DOTENV_LINTER_VERSION"
|
||||
echo "$DOTENV_LINTER_CHECKSUM" | sha256sum --check
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: dotenv-linter check
|
||||
run: dotenv-linter
|
||||
38
.github/workflows/gitleaks-check.yaml
vendored
Normal file
38
.github/workflows/gitleaks-check.yaml
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
name: GitLeaks check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: GitLeaks check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: GitLeaks installation
|
||||
working-directory: /bin
|
||||
run: |
|
||||
set -e
|
||||
|
||||
VERSION="v8.22.0"
|
||||
CHECKSUM="3f95fef7e361adafed2b1bb9c591ba3bc6b595b4f296b346257301b7bf04be15 gitleaks.tar.gz"
|
||||
|
||||
wget -O "gitleaks.tar.gz" "https://github.com/gitleaks/gitleaks/releases/download/$VERSION/gitleaks_8.22.0_linux_arm64.tar.gz"
|
||||
echo "$CHECKSUM" | sha256sum --check
|
||||
|
||||
tar xzf gitleaks.tar.gz
|
||||
chmod +x gitleaks
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: GitLeaks check
|
||||
run: gitleaks git && gitleaks dir
|
||||
43
.github/workflows/hadolint-check.yaml
vendored
Normal file
43
.github/workflows/hadolint-check.yaml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: hadolint check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: hadolint check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: hadolint installation
|
||||
working-directory: /bin
|
||||
run: |
|
||||
set -e
|
||||
|
||||
VERSION="v2.12.0"
|
||||
CHECKSUM="5798551bf19f33951881f15eb238f90aef023f11e7ec7e9f4c37961cb87c5df6 hadolint"
|
||||
|
||||
wget -O hadolint "https://github.com/hadolint/hadolint/releases/download/$VERSION/hadolint-Linux-arm64"
|
||||
echo "$CHECKSUM" | sha256sum --check
|
||||
|
||||
chmod +x hadolint
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: hadolint check
|
||||
run: |
|
||||
STATUS=0
|
||||
while read -r file; do
|
||||
echo "Linting $file..."
|
||||
hadolint "$file" || STATUS=1
|
||||
done < <(find . -name "Dockerfile")
|
||||
exit $STATUS
|
||||
27
.github/workflows/htmlhint-check.yaml
vendored
Normal file
27
.github/workflows/htmlhint-check.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: htmlhint check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: htmlhint check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: dependencies installation
|
||||
run: npm install
|
||||
- name: htmlhint check
|
||||
run: npx htmlhint "**/*.html"
|
||||
43
.github/workflows/lint.yml
vendored
43
.github/workflows/lint.yml
vendored
@@ -1,43 +0,0 @@
|
||||
name: lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [ opened, synchronize, reopened, edited ]
|
||||
|
||||
permissions: { }
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: lint
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# Super-linter needs the full git history to get the list of files that changed across commits
|
||||
fetch-depth: 0
|
||||
- name: Super-linter check
|
||||
uses: super-linter/super-linter@v7.0.0 # x-release-please-version
|
||||
env:
|
||||
# to report GitHub Actions status checks
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
VALIDATE_ALL_CODEBASE: false
|
||||
VALIDATE_JAVASCRIPT_PRETTIER: false
|
||||
VALIDATE_JAVASCRIPT_STANDARD: false
|
||||
VALIDATE_JSCPD: false
|
||||
VALIDATE_RUST_2015: false
|
||||
VALIDATE_RUST_2018: false
|
||||
VALIDATE_SQLFLUFF: false
|
||||
FIX_CSS_PRETTIER: true
|
||||
FIX_HTML_PRETTIER: true
|
||||
FIX_JAVASCRIPT_ES: true
|
||||
FIX_JSON_PRETTIER: true
|
||||
FIX_RUST_2021: true
|
||||
FIX_RUST_CLIPPY: true
|
||||
FIX_TYPESCRIPT_ES: true
|
||||
FIX_YAML_PRETTIER: true
|
||||
27
.github/workflows/markdownlint-check.yaml
vendored
Normal file
27
.github/workflows/markdownlint-check.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: markdownlint check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: markdownlint check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: dependencies installation
|
||||
run: npm install
|
||||
- name: markdownlint check
|
||||
run: npx markdownlint --config .github/config/markdownlint.yaml "**/*.md" --ignore node_modules
|
||||
27
.github/workflows/prettier-check.yaml
vendored
Normal file
27
.github/workflows/prettier-check.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: Prettier check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Prettier check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: dependencies installation
|
||||
run: npm install
|
||||
- name: Prettier check
|
||||
run: npx prettier . --check
|
||||
45
.github/workflows/rust-check.yaml
vendored
Normal file
45
.github/workflows/rust-check.yaml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
name: Rust check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Rust check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: dependencies installation
|
||||
run: >
|
||||
apt-get update && apt-get install -y
|
||||
libgtk-3-dev=3.24.33-1ubuntu2.2
|
||||
libjavascriptcoregtk-4.1-dev=2.50.4-0ubuntu0.22.04.1
|
||||
libsoup-3.0-dev=3.0.7-0ubuntu1
|
||||
libwebkit2gtk-4.1-dev=2.50.4-0ubuntu0.22.04.1
|
||||
libxdo-dev=1:3.20160805.1-4
|
||||
- name: Rust toolchain installation
|
||||
uses: dtolnay/rust-toolchain@9bc92bc5598b4f3bec5d910d352094982cb0c3b9 # 1.92.0
|
||||
with:
|
||||
components: clippy, rustfmt
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: .env symlink creation
|
||||
run: ln -s .env.dev .env
|
||||
- name: Tailwind CSS output creation
|
||||
run: touch assets/tailwind.css
|
||||
- name: rustfmt check
|
||||
run: cargo fmt --all --check
|
||||
- name: Clippy check
|
||||
run: cargo clippy --locked --all-targets --all-features -- --deny warnings
|
||||
- name: test check
|
||||
run: cargo --locked test --all --all-targets --all-features
|
||||
34
.github/workflows/shellcheck-check.yaml
vendored
Normal file
34
.github/workflows/shellcheck-check.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: ShellCheck check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: ShellCheck check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: ShellCheck installation
|
||||
run: apt-get update && apt-get install -y shellcheck=0.8.0-2
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: ShellCheck check
|
||||
# https://www.shellcheck.net/wiki/Recursiveness
|
||||
run: |
|
||||
if find . -type f -name "*.sh" -print0 | grep -qz .; then
|
||||
find . -type f -name "*.sh" -print0 | xargs -0 shellcheck
|
||||
exit 0
|
||||
else
|
||||
echo "No shell scripts found. Skipping ShellCheck."
|
||||
fi
|
||||
27
.github/workflows/stylelint-check.yaml
vendored
Normal file
27
.github/workflows/stylelint-check.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: Stylelint check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Stylelint check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: dependencies installation
|
||||
run: npm install
|
||||
- name: Stylelint check
|
||||
run: npx stylelint "**/*.css"
|
||||
27
.github/workflows/yamllint-check.yaml
vendored
Normal file
27
.github/workflows/yamllint-check.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: yamllint check
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
pull_request:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: yamllint check
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
packages: read
|
||||
statuses: write
|
||||
steps:
|
||||
- name: yamllint installation
|
||||
run: apt-get update && apt-get install -y yamllint=1.26.3-1
|
||||
- name: code checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: yamllint check
|
||||
run: yamllint -c .github/config/yamllint.yaml .
|
||||
16
.gitignore
vendored
16
.gitignore
vendored
@@ -1,10 +1,10 @@
|
||||
/target/
|
||||
/dist/
|
||||
/static/
|
||||
/.dioxus/
|
||||
/node_modules/
|
||||
/.env
|
||||
|
||||
**/*.rs.bk
|
||||
/docker-compose.yaml
|
||||
|
||||
.env
|
||||
.env.prod
|
||||
/node_modules
|
||||
/target
|
||||
/bundle
|
||||
|
||||
/**/*.rs.bk
|
||||
/.DS_Store
|
||||
|
||||
5
.idea/.gitignore
generated
vendored
5
.idea/.gitignore
generated
vendored
@@ -1,5 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
20
.idea/dataSources.local.xml
generated
20
.idea/dataSources.local.xml
generated
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="dataSourceStorageLocal" created-in="RR-243.21565.245">
|
||||
<data-source name="todo_baggins@localhost" uuid="1658668c-c2b8-426d-a22f-16fbad9eff0b">
|
||||
<database-info product="PostgreSQL" version="16.4 (Debian 16.4-1.pgdg120+1)" jdbc-version="4.2" driver-name="PostgreSQL JDBC Driver" driver-version="42.6.0" dbms="POSTGRES" exact-version="16.4" exact-driver-version="42.6">
|
||||
<identifier-quote-string>"</identifier-quote-string>
|
||||
</database-info>
|
||||
<case-sensitivity plain-identifiers="lower" quoted-identifiers="exact" />
|
||||
<secret-storage>master_key</secret-storage>
|
||||
<user-name>app</user-name>
|
||||
<schema-mapping>
|
||||
<introspection-scope>
|
||||
<node kind="database" qname="@">
|
||||
<node kind="schema" qname="@" />
|
||||
</node>
|
||||
</introspection-scope>
|
||||
</schema-mapping>
|
||||
</data-source>
|
||||
</component>
|
||||
</project>
|
||||
12
.idea/dataSources.xml
generated
12
.idea/dataSources.xml
generated
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||
<data-source source="LOCAL" name="todo_baggins@localhost" uuid="1658668c-c2b8-426d-a22f-16fbad9eff0b">
|
||||
<driver-ref>postgresql</driver-ref>
|
||||
<synchronize>true</synchronize>
|
||||
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:postgresql://localhost:5432/todo_baggins</jdbc-url>
|
||||
<working-dir>$ProjectFileDir$</working-dir>
|
||||
</data-source>
|
||||
</component>
|
||||
</project>
|
||||
5014
.idea/dataSources/1658668c-c2b8-426d-a22f-16fbad9eff0b.xml
generated
5014
.idea/dataSources/1658668c-c2b8-426d-a22f-16fbad9eff0b.xml
generated
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
#n:todo_baggins
|
||||
@@ -1,2 +0,0 @@
|
||||
#n:information_schema
|
||||
!<md> [null, 0, null, null, -2147483648, -2147483648]
|
||||
@@ -1,2 +0,0 @@
|
||||
#n:pg_catalog
|
||||
!<md> [null, 0, null, null, -2147483648, -2147483648]
|
||||
@@ -1,2 +0,0 @@
|
||||
#n:public
|
||||
!<md> [785, 0, null, null, -2147483648, -2147483648]
|
||||
Binary file not shown.
6
.idea/jsLibraryMappings.xml
generated
6
.idea/jsLibraryMappings.xml
generated
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptLibraryMappings">
|
||||
<includedPredefinedLibrary name="Node.js Core" />
|
||||
</component>
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/todo-baggins.iml" filepath="$PROJECT_DIR$/.idea/todo-baggins.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
11
.idea/runConfigurations/dev.xml
generated
11
.idea/runConfigurations/dev.xml
generated
@@ -1,11 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="dev" type="docker-deploy" factoryName="docker-compose.yml" server-name="Docker">
|
||||
<deployment type="docker-compose.yml">
|
||||
<settings>
|
||||
<option name="envFilePath" value="" />
|
||||
<option name="sourceFilePath" value="docker-compose-dev.yml" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
8
.idea/sqldialects.xml
generated
8
.idea/sqldialects.xml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/migrations/00000000000000_diesel_initial_setup/down.sql" dialect="GenericSQL" />
|
||||
<file url="file://$PROJECT_DIR$/migrations/00000000000000_diesel_initial_setup/up.sql" dialect="PostgreSQL" />
|
||||
<file url="PROJECT" dialect="PostgreSQL" />
|
||||
</component>
|
||||
</project>
|
||||
11
.idea/todo-baggins.iml
generated
11
.idea/todo-baggins.iml
generated
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="EMPTY_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
12
.idea/vcs.xml
generated
12
.idea/vcs.xml
generated
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CommitMessageInspectionProfile">
|
||||
<profile version="1.0">
|
||||
<inspection_tool class="CommitFormat" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="CommitNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
14
.idea/webResources.xml
generated
14
.idea/webResources.xml
generated
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WebResourcesPaths">
|
||||
<contentEntries>
|
||||
<entry url="file://$PROJECT_DIR$">
|
||||
<entryData>
|
||||
<resourceRoots>
|
||||
<path value="file://$PROJECT_DIR$/assets" />
|
||||
</resourceRoots>
|
||||
</entryData>
|
||||
</entry>
|
||||
</contentEntries>
|
||||
</component>
|
||||
</project>
|
||||
1
.prettierrc
Normal file
1
.prettierrc
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
3
.stylelintrc.json
Normal file
3
.stylelintrc.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": ["stylelint-config-standard"]
|
||||
}
|
||||
11
.zed/settings.json
Normal file
11
.zed/settings.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"lsp": {
|
||||
"rust-analyzer": {
|
||||
"initialization_options": {
|
||||
"cargo": {
|
||||
"features": ["server", "web"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4463
Cargo.lock
generated
4463
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
68
Cargo.toml
68
Cargo.toml
@@ -1,36 +1,62 @@
|
||||
[package]
|
||||
name = "todo-baggins"
|
||||
name = "todo_baggins"
|
||||
version = "0.1.0"
|
||||
authors = ["Matouš Volf <66163112+matous-volf@users.noreply.github.com>"]
|
||||
edition = "2021"
|
||||
authors = ["Matouš Volf <git@matousvolf.cz>"]
|
||||
edition = "2024"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
dioxus = { version = "0.6.0", features = ["fullstack", "router"] }
|
||||
dioxus-query = "0.6.0"
|
||||
dioxus-i18n = "0.3.0"
|
||||
chrono = { version = "0.4.43", features = ["serde", "unstable-locales"] }
|
||||
# Remember to update the CLI as well.
|
||||
dioxus = { git = "https://github.com/matous-volf/dioxus", rev = "627d5ca5b80aeed57c23e253024665f103117f5e", features = ["fullstack", "router"] }
|
||||
# TODO: Remove this once https://github.com/DioxusLabs/dioxus/issues/4765 is resolved.
|
||||
dioxus-html = { git = "https://github.com/matous-volf/dioxus", rev = "627d5ca5b80aeed57c23e253024665f103117f5e", features = ["serialize"] }
|
||||
feruca = { version = "0.11.5" }
|
||||
serde = { version = "1.0.228" }
|
||||
serde_json = { version = "1.0.149" }
|
||||
serde_with = { version = "3.16.1", features = ["chrono_0_4"] }
|
||||
tracing = "0.1.44"
|
||||
unic-langid-impl = { version = "0.9.6", features = ["serde"] }
|
||||
validator = { version = "0.20.0", features = ["derive"] }
|
||||
|
||||
async-std = "1.12.0"
|
||||
chrono = { version = "0.4.38", features = ["serde", "unstable-locales"] }
|
||||
diesel = { version = "2.2.2", features = ["chrono", "postgres", "postgres_backend", "serde_json"] }
|
||||
diesel_migrations = { version = "2.2.0", features = ["postgres"] }
|
||||
dotenvy = "0.15.7"
|
||||
feruca = "0.10.0"
|
||||
serde = "1.0.208"
|
||||
serde_json = "1.0.125"
|
||||
serde_with = { version = "3.9.0", features = ["chrono_0_4"] }
|
||||
time = "0.3.36"
|
||||
tracing = "0.1.40"
|
||||
unic-langid-impl = { version = "0.9.5", features = ["serde"] }
|
||||
validator = { version = "0.19.0", features = ["derive"] }
|
||||
# Remember to update the CLI as well.
|
||||
diesel = { version = "2.3.6", features = [
|
||||
"chrono",
|
||||
"postgres",
|
||||
"postgres_backend",
|
||||
"serde_json",
|
||||
], optional = true }
|
||||
diesel_migrations = { version = "2.3.1", features = [
|
||||
"postgres",
|
||||
], optional = true }
|
||||
rand = { version = "0.9.2", optional = true }
|
||||
time = { version = "0.3.45", optional = true }
|
||||
tokio = { version = "1.49.0", optional = true }
|
||||
|
||||
async-std = { version = "1.13.2", optional = true }
|
||||
dioxus-i18n = { path = "dioxus-i18n" }
|
||||
voca_rs = "1.15.2"
|
||||
load-dotenv = "0.1.2"
|
||||
# TODO: Switch to upstream once it merges the changes.
|
||||
dioxus-free-icons = { path = "dioxus-free-icons/packages/lib", features = [
|
||||
"font-awesome-regular",
|
||||
"font-awesome-solid",
|
||||
] }
|
||||
|
||||
[features]
|
||||
default = ["web"]
|
||||
web = ["dioxus/web", "dep:async-std"]
|
||||
mobile = ["dioxus/mobile", "dep:async-std"]
|
||||
desktop = ["dioxus/desktop"]
|
||||
mobile = ["dioxus/mobile"]
|
||||
web = ["dioxus/web"]
|
||||
server = [
|
||||
"dioxus/server",
|
||||
"dep:diesel",
|
||||
"dep:diesel_migrations",
|
||||
"dep:rand",
|
||||
"dep:time",
|
||||
"dep:tokio",
|
||||
]
|
||||
|
||||
[profile]
|
||||
|
||||
|
||||
38
Dioxus.toml
38
Dioxus.toml
@@ -1,42 +1,6 @@
|
||||
[application]
|
||||
|
||||
# App (Project) Name
|
||||
name = "todo-baggins"
|
||||
|
||||
# Dioxus App Default Platform
|
||||
# web, desktop, fullstack
|
||||
default_platform = "fullstack"
|
||||
|
||||
# `build` & `serve` dist path
|
||||
out_dir = "dist"
|
||||
|
||||
# resource (assets) file folder
|
||||
asset_dir = "assets"
|
||||
|
||||
[web.app]
|
||||
|
||||
# HTML title tag content
|
||||
# HTML title tag content.
|
||||
title = "Todo Baggins"
|
||||
|
||||
[web.watcher]
|
||||
|
||||
# when watcher trigger, regenerate the `index.html`
|
||||
reload_html = true
|
||||
|
||||
# which files or dirs will be watcher monitoring
|
||||
watch_path = ["src", "assets"]
|
||||
|
||||
# include `assets` in web platform
|
||||
[web.resource]
|
||||
|
||||
# CSS style file
|
||||
style = []
|
||||
|
||||
# Javascript code file
|
||||
script = ["https://kit.fontawesome.com/3c1b409f8f.js"]
|
||||
|
||||
[web.resource.dev]
|
||||
|
||||
# Javascript code file
|
||||
# serve: [dev-server] only
|
||||
script = []
|
||||
|
||||
1
assets/.gitignore
vendored
Normal file
1
assets/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/tailwind.css
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,203 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 512 512"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
sodipodi:docname="icon.svg"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="px"
|
||||
inkscape:zoom="1.1020922"
|
||||
inkscape:cx="188.27826"
|
||||
inkscape:cy="204.15715"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<inkscape:path-effect
|
||||
effect="fillet_chamfer"
|
||||
id="path-effect2"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
|
||||
radius="0"
|
||||
unit="px"
|
||||
method="auto"
|
||||
mode="F"
|
||||
chamfer_steps="1"
|
||||
flexible="false"
|
||||
use_knot_distance="true"
|
||||
apply_no_radius="true"
|
||||
apply_with_radius="true"
|
||||
only_selected="false"
|
||||
hide_knots="false" />
|
||||
<inkscape:path-effect
|
||||
effect="fillet_chamfer"
|
||||
id="path-effect1"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
|
||||
radius="0"
|
||||
unit="px"
|
||||
method="auto"
|
||||
mode="F"
|
||||
chamfer_steps="1"
|
||||
flexible="false"
|
||||
use_knot_distance="true"
|
||||
apply_no_radius="true"
|
||||
apply_with_radius="true"
|
||||
only_selected="false"
|
||||
hide_knots="false" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<rect
|
||||
style="display:inline;fill:#27272a;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1"
|
||||
width="512"
|
||||
height="512"
|
||||
x="0"
|
||||
y="0"
|
||||
sodipodi:insensitive="true"
|
||||
inkscape:label="background"
|
||||
ry="128.00018"
|
||||
sodipodi:type="rect"
|
||||
rx="129.98714" />
|
||||
<g
|
||||
id="g17"
|
||||
inkscape:label="logo"
|
||||
transform="translate(8)">
|
||||
<g
|
||||
id="g8"
|
||||
inkscape:label="ring">
|
||||
<g
|
||||
id="g7"
|
||||
inkscape:label="back">
|
||||
<circle
|
||||
style="fill:#d97706;fill-opacity:1;stroke:#d97706;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1"
|
||||
cx="224"
|
||||
cy="256"
|
||||
r="128"
|
||||
inkscape:label="ring back" />
|
||||
<rect
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:21.8936;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect2"
|
||||
width="48"
|
||||
height="288"
|
||||
x="224"
|
||||
y="112"
|
||||
inkscape:label="rect2" />
|
||||
</g>
|
||||
<g
|
||||
id="g1"
|
||||
transform="translate(-4.163147,-0.69235229)"
|
||||
inkscape:label="front">
|
||||
<circle
|
||||
style="fill:#27272a;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1-5-2"
|
||||
cx="276.16315"
|
||||
cy="256.69235"
|
||||
r="128" />
|
||||
<circle
|
||||
style="fill:none;fill-opacity:1;stroke:#fbbf24;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1-5"
|
||||
cx="276.16315"
|
||||
cy="256.69235"
|
||||
r="128" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g16"
|
||||
inkscape:label="tick"
|
||||
transform="translate(16.000231,-8.3918418e-5)">
|
||||
<g
|
||||
id="g6"
|
||||
transform="rotate(45,-57.96574,415.4208)"
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-opacity:1"
|
||||
inkscape:label="back">
|
||||
<rect
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect9"
|
||||
width="32.000458"
|
||||
height="32"
|
||||
x="273.94067"
|
||||
y="210.74516"
|
||||
transform="rotate(-45,-57.96574,415.4208)" />
|
||||
<rect
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect8"
|
||||
width="32.000458"
|
||||
height="32"
|
||||
x="206.05841"
|
||||
y="233.37257"
|
||||
transform="rotate(-45,-57.96574,415.4208)" />
|
||||
<rect
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect7"
|
||||
height="16"
|
||||
x="228.686"
|
||||
y="285.255"
|
||||
width="32"
|
||||
transform="rotate(-45,-57.96574,415.4208)" />
|
||||
<rect
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5"
|
||||
width="64"
|
||||
height="32"
|
||||
x="0"
|
||||
y="100" />
|
||||
<rect
|
||||
style="fill:#d97706;fill-opacity:1;stroke:none;stroke-width:39.1918;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect6"
|
||||
width="32"
|
||||
height="96"
|
||||
x="32"
|
||||
y="36" />
|
||||
</g>
|
||||
<g
|
||||
id="g4"
|
||||
transform="rotate(45,-41.965512,454.04877)"
|
||||
style="fill:#fbbf24;fill-opacity:1;stroke:none;stroke-opacity:1"
|
||||
inkscape:label="front">
|
||||
<rect
|
||||
style="fill:#fbbf24;fill-opacity:1;stroke:none;stroke-width:32;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect3"
|
||||
width="64"
|
||||
height="32"
|
||||
x="0"
|
||||
y="100" />
|
||||
<rect
|
||||
style="fill:#fbbf24;fill-opacity:1;stroke:none;stroke-width:39.1918;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect4"
|
||||
width="32"
|
||||
height="96"
|
||||
x="32"
|
||||
y="36" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.4 KiB |
@@ -3,12 +3,13 @@
|
||||
"short_name": "Todo Baggins",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
"background_color": "#27272a",
|
||||
"theme_color": "#27272a",
|
||||
"background_color": "#101828",
|
||||
"theme_color": "#b89a2e",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/images/icon.png",
|
||||
"src": "/assets/images/icon.png",
|
||||
"sizes": "any",
|
||||
"purpose": "maskable",
|
||||
"type": "image/png"
|
||||
}
|
||||
]
|
||||
|
||||
1
assets/styles/.gitignore
vendored
1
assets/styles/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
/tailwind_output.css
|
||||
@@ -1,17 +0,0 @@
|
||||
@layer base {
|
||||
@font-face {
|
||||
font-family: Inter;
|
||||
font-style: normal;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url("/assets/fonts/inter_variable.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Inter;
|
||||
font-style: italic;
|
||||
font-weight: 100 900;
|
||||
font-display: swap;
|
||||
src: url("/assets/fonts/inter_variable_italic.woff2") format("woff2");
|
||||
}
|
||||
}
|
||||
@@ -6,5 +6,5 @@ input::-webkit-inner-spin-button {
|
||||
}
|
||||
|
||||
input[type="number"] {
|
||||
appearance:textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
|
||||
@@ -8,56 +8,37 @@ input[type="range"] {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
input[type="range"]::-moz-range-thumb {
|
||||
input[type="range"]::-moz-range-thumb,
|
||||
input[type="range"]::-webkit-slider-thumb {
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
background: rgba(228 228 231);
|
||||
background: var(--color-gray-400);
|
||||
filter: drop-shadow(0 var(--spacing) 0 var(--color-gray-500));
|
||||
border: 0;
|
||||
border-radius: 0.5rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[type="range"]::-moz-range-progress {
|
||||
background: #525259;
|
||||
input[type="range"]::-webkit-slider-thumb {
|
||||
position: relative;
|
||||
top: -9px;
|
||||
}
|
||||
|
||||
input[type="range"]::-moz-range-track,
|
||||
input[type="range"]::-webkit-slider-runnable-track {
|
||||
background: var(--color-gray-800-muted);
|
||||
height: 0.5rem;
|
||||
filter: drop-shadow(
|
||||
0 calc(0px - var(--spacing)) 0 var(--color-gray-900-muted)
|
||||
);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
input[type="range"]::-moz-range-track {
|
||||
background: rgba(39 39 42 / 50%);
|
||||
height: 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
input[type="range"].input-range-reverse::-moz-range-progress {
|
||||
background: #2d2d31;
|
||||
height: 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
input[type="range"].input-range-reverse::-moz-range-track {
|
||||
background: rgba(113 113 122 / 50%);
|
||||
height: 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
input[type="range"]::-webkit-slider-thumb {
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
background: rgba(228 228 231);
|
||||
border: 0;
|
||||
border-radius: 0.5rem;
|
||||
position: relative;
|
||||
top: -0.4rem;
|
||||
transform: translateY(3px);
|
||||
}
|
||||
|
||||
input[type="range"]::-webkit-slider-runnable-track {
|
||||
background: rgba(39 39 42 / 50%);
|
||||
height: 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
input[type="range"].input-range-reverse::-webkit-slider-runnable-track {
|
||||
background: rgba(39 39 42 / 50%);
|
||||
height: 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
7
assets/styles/select_arrow.css
Normal file
7
assets/styles/select_arrow.css
Normal file
@@ -0,0 +1,7 @@
|
||||
select {
|
||||
appearance: none;
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath fill='%239ca3af' d='M300.3 440.8C312.9 451 331.4 450.3 343.1 438.6L471.1 310.6C480.3 301.4 483 287.7 478 275.7C473 263.7 461.4 256 448.5 256L192.5 256C179.6 256 167.9 263.8 162.9 275.8C157.9 287.8 160.7 301.5 169.9 310.6L297.9 438.6L300.3 440.8z'/%3E%3C/svg%3E");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 2rem;
|
||||
background-position: right 0.5rem center;
|
||||
}
|
||||
48
dioxus-free-icons/.github/release-drafter.yml
vendored
Normal file
48
dioxus-free-icons/.github/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name-template: "Release v$RESOLVED_VERSION 🦀"
|
||||
tag-template: "v$RESOLVED_VERSION"
|
||||
categories:
|
||||
- title: "🚀 Features"
|
||||
label: "feature"
|
||||
- title: "🐛 Bug Fixes"
|
||||
label: "bug"
|
||||
- title: "♻️ Refactor"
|
||||
label: "refactor"
|
||||
- title: "📝 Documentation"
|
||||
label: "documentation"
|
||||
- title: "🧰 Maintenance"
|
||||
labels:
|
||||
- "chore"
|
||||
- "dependencies"
|
||||
change-template: "- $TITLE @$AUTHOR (#$NUMBER)"
|
||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
||||
version-resolver:
|
||||
major:
|
||||
labels:
|
||||
- "major"
|
||||
minor:
|
||||
labels:
|
||||
- "minor"
|
||||
patch:
|
||||
labels:
|
||||
- "patch"
|
||||
default: patch
|
||||
template: |
|
||||
## Changes
|
||||
|
||||
$CHANGES
|
||||
autolabeler:
|
||||
- label: feature
|
||||
branch:
|
||||
- "/^feat(ure)?[/-].+/"
|
||||
- label: bug
|
||||
branch:
|
||||
- "/^fix[/-].+/"
|
||||
- label: refactor
|
||||
branch:
|
||||
- "/(refactor|refactoring)[/-].+/"
|
||||
- label: documentation
|
||||
branch:
|
||||
- "/doc(s|umentation)[/-].+/"
|
||||
- label: chore
|
||||
branch:
|
||||
- "/^chore[/-].+/"
|
||||
25
dioxus-free-icons/.github/workflows/ci.yml
vendored
Normal file
25
dioxus-free-icons/.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Cargo Build & Test
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
build_and_test:
|
||||
name: Rust project - latest
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install the nightly toolchain
|
||||
uses: dtolnay/rust-toolchain@nightly
|
||||
- name: Install linux dependencies
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt update && sudo apt install build-essential libssl-dev pkg-config libglib2.0-dev libgtk-3-dev
|
||||
- run: cargo build --verbose
|
||||
- run: cargo test --verbose
|
||||
19
dioxus-free-icons/.github/workflows/publish.yml
vendored
Normal file
19
dioxus-free-icons/.github/workflows/publish.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
name: Cargo Publish
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: Publish to crate.io
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: cargo publish
|
||||
working-directory: ./packages/lib
|
||||
env:
|
||||
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
||||
23
dioxus-free-icons/.github/workflows/release-drafter.yml
vendored
Normal file
23
dioxus-free-icons/.github/workflows/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Release Drafter
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
# pull_request event is required only for autolabeler
|
||||
pull_request:
|
||||
# Only following types are handled by the action, but one can default to all as well
|
||||
types: [opened, reopened, synchronize]
|
||||
# pull_request_target event is required for autolabeler to support PRs from forks
|
||||
# pull_request_target:
|
||||
# types: [opened, reopened, synchronize]
|
||||
|
||||
jobs:
|
||||
update_release_draft:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: release-drafter/release-drafter@v5
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
16
dioxus-free-icons/.gitignore
vendored
Normal file
16
dioxus-free-icons/.gitignore
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# Generated by Cargo
|
||||
# will have compiled files and executables
|
||||
/target/
|
||||
|
||||
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
||||
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
||||
Cargo.lock
|
||||
|
||||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
|
||||
|
||||
# Added by cargo
|
||||
|
||||
/target
|
||||
/Cargo.lock
|
||||
27
dioxus-free-icons/.gitmodules
vendored
Normal file
27
dioxus-free-icons/.gitmodules
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
[submodule "icon_resources/font-awesome"]
|
||||
path = icon_resources/font-awesome
|
||||
url = https://github.com/FortAwesome/Font-Awesome
|
||||
[submodule "icon_resources/heroicons"]
|
||||
path = icon_resources/heroicons
|
||||
url = https://github.com/tailwindlabs/heroicons
|
||||
[submodule "icon_resources/ionicons"]
|
||||
path = icon_resources/ionicons
|
||||
url = https://github.com/ionic-team/ionicons
|
||||
[submodule "icon_resources/octicons"]
|
||||
path = icon_resources/octicons
|
||||
url = https://github.com/primer/octicons
|
||||
[submodule "icon_resources/bootstrap"]
|
||||
path = icon_resources/bootstrap
|
||||
url = https://github.com/twbs/icons
|
||||
[submodule "icon_resources/feather"]
|
||||
path = icon_resources/feather
|
||||
url = https://github.com/feathericons/feather
|
||||
[submodule "icon_resources/lucide"]
|
||||
path = icon_resources/lucide
|
||||
url = https://github.com/lucide-icons/lucide
|
||||
[submodule "icon_resources/material-design-icons"]
|
||||
path = icon_resources/material-design-icons
|
||||
url = https://github.com/google/material-design-icons
|
||||
[submodule "icon_resources/vscode-codicons"]
|
||||
path = icon_resources/vscode-codicons
|
||||
url = https://github.com/microsoft/vscode-codicons.git
|
||||
24
dioxus-free-icons/Cargo.toml
Normal file
24
dioxus-free-icons/Cargo.toml
Normal file
@@ -0,0 +1,24 @@
|
||||
# monorepo only work when using virtual manifest
|
||||
# see: https://github.com/rust-lang/cargo/issues/7467#issuecomment-867632379
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
members = ["packages/codegen", "packages/example", "packages/lib"]
|
||||
|
||||
[workspace.dependencies]
|
||||
dioxus = { git = "https://github.com/matous-volf/dioxus", rev = "627d5ca5b80aeed57c23e253024665f103117f5e", default-features = false, features = [
|
||||
"html",
|
||||
"macro",
|
||||
"signals",
|
||||
] }
|
||||
|
||||
[profile]
|
||||
|
||||
[profile.wasm-dev]
|
||||
inherits = "dev"
|
||||
opt-level = 1
|
||||
|
||||
[profile.server-dev]
|
||||
inherits = "dev"
|
||||
|
||||
[profile.android-dev]
|
||||
inherits = "dev"
|
||||
25
dioxus-free-icons/LICENSE
Normal file
25
dioxus-free-icons/LICENSE
Normal file
@@ -0,0 +1,25 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022-Present Daiki Nishikawa
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
Icons are taken from the other projects
|
||||
so please check each project licences accordingly.
|
||||
117
dioxus-free-icons/README.md
Normal file
117
dioxus-free-icons/README.md
Normal file
@@ -0,0 +1,117 @@
|
||||
[](https://discord.gg/sKJSVNSCDJ)
|
||||
[](https://crates.io/crates/dioxus-free-icons)
|
||||
|
||||
# dioxus-free-icons 🙂
|
||||
|
||||
Use free svg icons in your [Dioxus](https://dioxuslabs.com/) projects easily with dioxus-free-icons.
|
||||
|
||||
More information about this crate can be found in the [crate documentation](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/).
|
||||
|
||||
## Install
|
||||
|
||||
To use `dioxus-free-icons`, add this to your Cargo.toml:
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
dioxus-free-icons = { version = "0.9", features = ["font-awesome-brands"] }
|
||||
```
|
||||
|
||||
### Support features
|
||||
|
||||
The following features are available. Please see [react-icons site](https://react-icons.github.io/react-icons) to check the icon name and icon design.
|
||||
|
||||
- [bootstrap](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/bs_icons/index.html)
|
||||
- [codicons](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/vs_icons/index.html)
|
||||
- [font-awesome-brands](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/fa_brands_icons/index.html)
|
||||
- [font-awesome-regular](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/fa_regular_icons/index.html)
|
||||
- [font-awesome-solid](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/fa_solid_icons/index.html)
|
||||
- [feather](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/fi_icons/index.html)
|
||||
- [octicons](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/go_icons/index.html)
|
||||
- [hero-icons-outline](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/hi_outline_icons/index.html)
|
||||
- [hero-icons-solid](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/hi_solid_icons/index.html)
|
||||
- [ionicons](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/io_icons/index.html)
|
||||
- [lucide](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/ld_icons/index.html)
|
||||
- [material-design-icons-action](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_action_icons/index.html)
|
||||
- [material-design-icons-alert](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_alert_icons/index.html)
|
||||
- [material-design-icons-av](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_av_icons/index.html)
|
||||
- [material-design-icons-communication](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_communication_icons/index.html)
|
||||
- [material-design-icons-content](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_content_icons/index.html)
|
||||
- [material-design-icons-device](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/io_icons/index.html)
|
||||
- [material-design-icons-editor](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_editor_icons/index.html)
|
||||
- [material-design-icons-file](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_file_icons/index.html)
|
||||
- [material-design-icons-hardware](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_hardware_icons/index.html)
|
||||
- [material-design-icons-home](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_home_icons/index.html)
|
||||
- [material-design-icons-image](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_image_icons/index.html)
|
||||
- [material-design-icons-maps](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_maps_icons/index.html)
|
||||
- [material-design-icons-navigation](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_navigation_icons/index.html)
|
||||
- [material-design-icons-notification](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_notification_icons/index.html)
|
||||
- [material-design-icons-places](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_places_icons/index.html)
|
||||
- [material-design-icons-social](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_social_icons/index.html)
|
||||
- [material-design-icons-toggle](https://docs.rs/dioxus-free-icons/latest/dioxus_free_icons/icons/md_toggle_icons/index.html)
|
||||
|
||||
## Example
|
||||
|
||||
This library provides Icon component, which will generate SVG for a Font Awesome icon.
|
||||
|
||||
```rust
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_free_icons::icons::fa_brands_icons::FaRust;
|
||||
use dioxus_free_icons::Icon;
|
||||
|
||||
fn RustIcon() -> Element {
|
||||
rsx!(
|
||||
Icon {
|
||||
width: 30,
|
||||
height: 30,
|
||||
fill: "black",
|
||||
icon: FaRust,
|
||||
}
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT license.
|
||||
|
||||
### Icon
|
||||
|
||||
Icon Library|License|Version
|
||||
---|---|---
|
||||
[Bootstrap Icons](https://icons.getbootstrap.com/)|[MIT License](https://github.com/twbs/icons/blob/main/LICENSE.md)| [1.8.3](https://github.com/twbs/icons/tree/v1.8.3)
|
||||
[Codicons](https://microsoft.github.io/vscode-codicons/dist/codicon.html)|[MIT License](https://github.com/microsoft/vscode-codicons/blob/main/LICENSE-CODE) & [CC BY 4.0 License](https://github.com/microsoft/vscode-codicons/blob/main/LICENSE) | [0.0.36](https://github.com/microsoft/vscode-codicons/tree/0.0.36)
|
||||
[Feather](https://feathericons.com/)|[MIT License](https://github.com/feathericons/feather/blob/master/LICENSE)| [4.29.0](https://github.com/feathericons/feather/tree/v4.29.0)
|
||||
[Font Awesome](https://fontawesome.com/)|[CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/)| [7.1.0](https://github.com/FortAwesome/Font-Awesome/tree/7.1.0)
|
||||
[Heroicons](https://heroicons.com/)|[MIT License](https://github.com/tailwindlabs/heroicons/blob/master/LICENSE)| [1.0.6](https://github.com/tailwindlabs/heroicons/tree/v1.0.6)
|
||||
[Ionicons](https://ionic.io/ionicons)|[MIT License](https://github.com/ionic-team/ionicons/blob/main/LICENSE)| [6.0.2](https://github.com/ionic-team/ionicons/tree/v6.0.2)
|
||||
[Lucide](https://lucide.dev)|[ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE)| [0.555.0](https://github.com/lucide-icons/lucide/tree/v0.555.0)
|
||||
[Material Design icons](https://developers.google.com/fonts/docs/material_icons)|[Apache License 2.0](https://github.com/google/material-design-icons/blob/master/LICENSE)| [4.0.0](https://github.com/google/material-design-icons/tree/4.0.0)
|
||||
[Octicons](https://primer.style/octicons/)|[MIT License](https://github.com/primer/octicons/blob/main/LICENSE)| [17.3.0](https://github.com/primer/octicons/tree/v17.3.0)
|
||||
|
||||
## Contribution
|
||||
|
||||
The project welcomes all contributions from anyone willing to work in good faith with other contributors and the community.
|
||||
In particular, contributions regarding support for other free icons such as Material Design icons or Ionicons are welcome.
|
||||
This library aims to be a react-icons-like library for dioxus projects.
|
||||
|
||||
### Development
|
||||
|
||||
```sh
|
||||
// generate icon files
|
||||
cd packages/codegen
|
||||
cargo run
|
||||
```
|
||||
|
||||
### Preview
|
||||
|
||||
```sh
|
||||
cd packages/exmaple
|
||||
cargo install dioxus-cli
|
||||
dx serve
|
||||
```
|
||||
|
||||
### Update icons
|
||||
|
||||
1. checkout a new tag in the icon resource submodule
|
||||
2. create new icon files
|
||||
3. Update README.md and check the LICENSE
|
||||
13
dioxus-free-icons/packages/codegen/Cargo.toml
Normal file
13
dioxus-free-icons/packages/codegen/Cargo.toml
Normal file
@@ -0,0 +1,13 @@
|
||||
[package]
|
||||
name = "dioxus-fontawesome-examples"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
codegen = "0.1.3"
|
||||
heck = "0.4.0"
|
||||
regex = "1.6.0"
|
||||
scraper = "0.13.0"
|
||||
walkdir = "2.3.2"
|
||||
215
dioxus-free-icons/packages/codegen/src/create_icon_file.rs
Normal file
215
dioxus-free-icons/packages/codegen/src/create_icon_file.rs
Normal file
@@ -0,0 +1,215 @@
|
||||
use std::fs;
|
||||
use std::fs::File;
|
||||
use std::io::Write;
|
||||
use std::path::PathBuf;
|
||||
use std::{ffi::OsStr, path::Path};
|
||||
|
||||
use heck::ToSnakeCase;
|
||||
use heck::ToUpperCamelCase;
|
||||
use regex::Regex;
|
||||
use scraper::node::Element;
|
||||
use scraper::ElementRef;
|
||||
use scraper::Html;
|
||||
use walkdir::WalkDir;
|
||||
|
||||
const ICON_TEMPLATE: &str = r#"#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct {ICON_NAME};
|
||||
impl IconShape for {ICON_NAME} {
|
||||
fn view_box(&self) -> &str {
|
||||
"{VIEW_BOX}"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"{XMLNS}"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
({FILL_COLOR}, {STROKE_COLOR}, {STROKE_WIDTH})
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"{STROKE_LINECAP}"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"{STROKE_LINEJOIN}"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
{CHILD_ELEMENTS}
|
||||
}
|
||||
}
|
||||
}
|
||||
"#;
|
||||
|
||||
pub fn create_icon_file(svg_path: &str, output_path: &str, icon_prefix: &str) {
|
||||
let files = collect_svg_files(svg_path, icon_prefix);
|
||||
|
||||
let icon_file = files
|
||||
.into_iter()
|
||||
.map(|file| {
|
||||
let svg_str = fs::read_to_string(&file).unwrap();
|
||||
let fragment = Html::parse_fragment(&svg_str);
|
||||
|
||||
let elements = fragment
|
||||
.tree
|
||||
.nodes()
|
||||
.filter_map(|node| {
|
||||
if node.value().is_element() {
|
||||
let element = ElementRef::wrap(node).unwrap().value();
|
||||
if !element.attrs.is_empty() {
|
||||
return Some(element);
|
||||
}
|
||||
}
|
||||
None
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let svg_element = &elements[0];
|
||||
let svg_child_elements = &elements[1..];
|
||||
let icon_name = icon_name(&file, icon_prefix);
|
||||
let (view_box, xmlns) = extract_svg_attrs(svg_element);
|
||||
let child_elements = extract_svg_child_elements(svg_child_elements, icon_prefix);
|
||||
let (fill_color, stroke_color, stroke_width) = extract_svg_colors(icon_prefix);
|
||||
let stroke_linecap = extract_stroke_linecap(icon_prefix);
|
||||
let stroke_linejoin = extract_stroke_linejoin(icon_prefix);
|
||||
|
||||
ICON_TEMPLATE
|
||||
.replace("{ICON_NAME}", &format!("{}{}", icon_prefix, &icon_name))
|
||||
.replace("{VIEW_BOX}", &view_box)
|
||||
.replace("{XMLNS}", &xmlns)
|
||||
.replace("{CHILD_ELEMENTS}", &child_elements)
|
||||
.replace("{FILL_COLOR}", &fill_color)
|
||||
.replace("{STROKE_COLOR}", &stroke_color)
|
||||
.replace("{STROKE_WIDTH}", &stroke_width)
|
||||
.replace("{STROKE_LINECAP}", &stroke_linecap)
|
||||
.replace("{STROKE_LINEJOIN}", &stroke_linejoin)
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n");
|
||||
|
||||
// write to file
|
||||
let mut file = File::create(output_path).unwrap();
|
||||
file.write_all(
|
||||
format!(
|
||||
"{}\n\n{}",
|
||||
"use super::super::IconShape;\nuse dioxus::prelude::*;", icon_file
|
||||
)
|
||||
.as_bytes(),
|
||||
)
|
||||
.unwrap();
|
||||
file.flush().unwrap();
|
||||
}
|
||||
|
||||
fn collect_svg_files(svg_path: &str, icon_prefix: &str) -> Vec<PathBuf> {
|
||||
let dir_entries = WalkDir::new(svg_path)
|
||||
.sort_by_file_name()
|
||||
.into_iter()
|
||||
.filter_map(|e| e.ok())
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
dir_entries
|
||||
.into_iter()
|
||||
.filter(|e| match icon_prefix {
|
||||
"Go" => {
|
||||
let re = Regex::new(r".*-16.svg$").unwrap();
|
||||
return re.is_match(e.path().to_str().unwrap());
|
||||
}
|
||||
"Md" => {
|
||||
let split_vec = e.path().components().collect::<Vec<_>>();
|
||||
return split_vec.iter().any(|c| c.as_os_str() == "materialicons")
|
||||
&& e.file_name().to_str().unwrap() == "24px.svg";
|
||||
}
|
||||
_ => return e.path().extension() == Some(OsStr::new("svg")),
|
||||
})
|
||||
.map(|dir| PathBuf::from(dir.path()))
|
||||
.collect::<Vec<_>>()
|
||||
}
|
||||
|
||||
fn icon_name(path: &Path, icon_prefix: &str) -> String {
|
||||
match icon_prefix {
|
||||
"Go" => {
|
||||
let filename = path.file_name().unwrap().to_str().unwrap();
|
||||
let name = filename.split('.').next().unwrap();
|
||||
name.replace("-16", "").to_upper_camel_case()
|
||||
}
|
||||
"Md" => {
|
||||
let split_vec = path.components().collect::<Vec<_>>();
|
||||
let name = split_vec[split_vec.len() - 3];
|
||||
name.as_os_str().to_str().unwrap().to_upper_camel_case()
|
||||
}
|
||||
_ => {
|
||||
let filename = path.file_name().unwrap().to_str().unwrap();
|
||||
let name = filename.split('.').next().unwrap();
|
||||
name.to_upper_camel_case()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn extract_svg_attrs(element: &Element) -> (String, String) {
|
||||
let view_box = element.attr("viewBox").unwrap_or("0 0 16 16");
|
||||
let xmlns = element
|
||||
.attr("xmlns")
|
||||
.unwrap_or("http://www.w3.org/2000/svg");
|
||||
(String::from(view_box), String::from(xmlns))
|
||||
}
|
||||
|
||||
fn extract_svg_colors(icon_prefix: &str) -> (&str, &str, &str) {
|
||||
match icon_prefix {
|
||||
"Fi" => ("\"none\"", "user_color", "\"2\""),
|
||||
"Ld" => ("\"none\"", "user_color", "\"2\""),
|
||||
"Io" => ("user_color", "user_color", "\"0\""),
|
||||
_ => ("user_color", "\"none\"", "\"0\""),
|
||||
}
|
||||
}
|
||||
|
||||
fn extract_stroke_linecap(icon_prefix: &str) -> &str {
|
||||
match icon_prefix {
|
||||
"Ld" => "round",
|
||||
"Fi" => "round",
|
||||
_ => "butt",
|
||||
}
|
||||
}
|
||||
|
||||
fn extract_stroke_linejoin(icon_prefix: &str) -> &str {
|
||||
match icon_prefix {
|
||||
"Ld" => "round",
|
||||
"Fi" => "round",
|
||||
_ => "miter",
|
||||
}
|
||||
}
|
||||
|
||||
fn extract_svg_child_elements(elements: &[&Element], icon_prefix: &str) -> String {
|
||||
let elements = match icon_prefix {
|
||||
"Md" => &elements[1..],
|
||||
_ => elements,
|
||||
};
|
||||
elements
|
||||
.iter()
|
||||
.map(|element| {
|
||||
let tag_name = element.name();
|
||||
let mut element_attrs = element
|
||||
.attrs()
|
||||
.filter_map(|(name, value)| {
|
||||
let value = if icon_prefix == "Io" {
|
||||
value.replace("fill:none;stroke:#000;", "")
|
||||
} else {
|
||||
value.to_string()
|
||||
};
|
||||
let re = Regex::new(r"^data-.*$").unwrap();
|
||||
if !re.is_match(name) && name != "fill" {
|
||||
Some(format!(
|
||||
" {}: \"{}\",",
|
||||
name.to_snake_case(),
|
||||
value
|
||||
))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
element_attrs.sort();
|
||||
let attrs_str = element_attrs.join("\n");
|
||||
" {TAG_NAME} {\n{ATTRS}\n }"
|
||||
.replace("{TAG_NAME}", tag_name)
|
||||
.replace("{ATTRS}", &attrs_str)
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
.join("\n")
|
||||
}
|
||||
79
dioxus-free-icons/packages/codegen/src/main.rs
Normal file
79
dioxus-free-icons/packages/codegen/src/main.rs
Normal file
@@ -0,0 +1,79 @@
|
||||
mod create_icon_file;
|
||||
|
||||
fn main() {
|
||||
const OUTPUT_BASE_PATH: &str = "../lib/src/icons";
|
||||
|
||||
// create font awesome icons
|
||||
const FA_SVG_BASE_PATH: &str = "../../icon_resources/font-awesome/svgs";
|
||||
for icon_type in vec!["brands", "regular", "solid"].into_iter() {
|
||||
let svg_path = format!("{}/{}", FA_SVG_BASE_PATH, icon_type);
|
||||
let output_path = format!("{}/fa_{}_icons.rs", OUTPUT_BASE_PATH, icon_type);
|
||||
create_icon_file::create_icon_file(&svg_path, &output_path, "Fa");
|
||||
}
|
||||
|
||||
// create hero icons
|
||||
const HI_SVG_BASE_PATH: &str = "../../icon_resources/heroicons/src";
|
||||
for icon_type in vec!["outline", "solid"].into_iter() {
|
||||
let svg_path = format!("{}/{}", HI_SVG_BASE_PATH, icon_type);
|
||||
let output_path = format!("{}/hi_{}_icons.rs", OUTPUT_BASE_PATH, icon_type);
|
||||
create_icon_file::create_icon_file(&svg_path, &output_path, "Hi");
|
||||
}
|
||||
|
||||
// create ionicons
|
||||
const IO_SVG_BASE_PATH: &str = "../../icon_resources/ionicons/src/svg";
|
||||
let output_path = format!("{}/io_icons.rs", OUTPUT_BASE_PATH);
|
||||
create_icon_file::create_icon_file(IO_SVG_BASE_PATH, &output_path, "Io");
|
||||
|
||||
// create octicons
|
||||
const GO_SVG_BASE_PATH: &str = "../../icon_resources/octicons/icons";
|
||||
let go_output_path = format!("{}/go_icons.rs", OUTPUT_BASE_PATH);
|
||||
create_icon_file::create_icon_file(GO_SVG_BASE_PATH, &go_output_path, "Go");
|
||||
|
||||
// create bootstrap icons
|
||||
const BS_SVG_BASE_PATH: &str = "../../icon_resources/bootstrap/icons";
|
||||
let bs_output_path = format!("{}/bs_icons.rs", OUTPUT_BASE_PATH);
|
||||
create_icon_file::create_icon_file(BS_SVG_BASE_PATH, &bs_output_path, "Bs");
|
||||
|
||||
// create feather icons
|
||||
const FI_SVG_BASE_PATH: &str = "../../icon_resources/feather/icons";
|
||||
let fi_output_path = format!("{}/fi_icons.rs", OUTPUT_BASE_PATH);
|
||||
create_icon_file::create_icon_file(FI_SVG_BASE_PATH, &fi_output_path, "Fi");
|
||||
|
||||
// create feather icons
|
||||
const LD_SVG_BASE_PATH: &str = "../../icon_resources/lucide/icons";
|
||||
let ld_output_path = format!("{}/ld_icons.rs", OUTPUT_BASE_PATH);
|
||||
create_icon_file::create_icon_file(LD_SVG_BASE_PATH, &ld_output_path, "Ld");
|
||||
|
||||
// create material design icons
|
||||
const MI_SVG_BASE_PATH: &str = "../../icon_resources/material-design-icons/src";
|
||||
for icon_type in vec![
|
||||
"action",
|
||||
"alert",
|
||||
"av",
|
||||
"communication",
|
||||
"content",
|
||||
"device",
|
||||
"editor",
|
||||
"file",
|
||||
"hardware",
|
||||
"home",
|
||||
"image",
|
||||
"maps",
|
||||
"navigation",
|
||||
"notification",
|
||||
"places",
|
||||
"social",
|
||||
"toggle",
|
||||
]
|
||||
.into_iter()
|
||||
{
|
||||
let svg_path = format!("{}/{}", MI_SVG_BASE_PATH, icon_type);
|
||||
let output_path = format!("{}/md_{}_icons.rs", OUTPUT_BASE_PATH, icon_type);
|
||||
create_icon_file::create_icon_file(&svg_path, &output_path, "Md");
|
||||
}
|
||||
|
||||
// create vscode-codicons
|
||||
const VS_SVG_BASE_PATH: &str = "../../icon_resources/vscode-codicons/src/icons";
|
||||
let vs_output_path = format!("{}/vsc_icons.rs", OUTPUT_BASE_PATH);
|
||||
create_icon_file::create_icon_file(VS_SVG_BASE_PATH, &vs_output_path, "Vsc");
|
||||
}
|
||||
17
dioxus-free-icons/packages/example/.gitignore
vendored
Normal file
17
dioxus-free-icons/packages/example/.gitignore
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# Generated by Cargo
|
||||
# will have compiled files and executables
|
||||
/target/
|
||||
|
||||
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
||||
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
||||
Cargo.lock
|
||||
|
||||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
|
||||
|
||||
# Added by cargo
|
||||
|
||||
/target
|
||||
|
||||
/dist
|
||||
19
dioxus-free-icons/packages/example/Cargo.toml
Normal file
19
dioxus-free-icons/packages/example/Cargo.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
[package]
|
||||
name = "hello-dioxus"
|
||||
version = "0.1.0"
|
||||
authors = ["nissy-dev <nd.12021218@gmail.com>"]
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
dioxus = { workspace = true, features = ["launch", "web"] }
|
||||
dioxus-free-icons = { path = "../lib", features = ["font-awesome-brands"] }
|
||||
|
||||
log = "0.4.6"
|
||||
|
||||
# WebAssembly Debug
|
||||
wasm-logger = "0.2.0"
|
||||
console_error_panic_hook = "0.1.7"
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
opt-level = 's'
|
||||
42
dioxus-free-icons/packages/example/Dioxus.toml
Normal file
42
dioxus-free-icons/packages/example/Dioxus.toml
Normal file
@@ -0,0 +1,42 @@
|
||||
[application]
|
||||
|
||||
# App (Project) Name
|
||||
name = "hello-dioxus"
|
||||
|
||||
# Dioxus App Default Platform
|
||||
# desktop, web, mobile, ssr
|
||||
default_platform = "web"
|
||||
|
||||
# `build` & `serve` dist path
|
||||
out_dir = "dist"
|
||||
|
||||
# resource (public) file folder
|
||||
asset_dir = "public"
|
||||
|
||||
[web.app]
|
||||
|
||||
# HTML title tag content
|
||||
title = "dioxus | ⛺"
|
||||
|
||||
[web.watcher]
|
||||
|
||||
# when watcher trigger, regenerate the `index.html`
|
||||
reload_html = true
|
||||
|
||||
# which files or dirs will be watcher monitoring
|
||||
watch_path = ["src", "public"]
|
||||
|
||||
# include `assets` in web platform
|
||||
[web.resource]
|
||||
|
||||
# CSS style file
|
||||
style = []
|
||||
|
||||
# Javascript code file
|
||||
script = []
|
||||
|
||||
[web.resource.dev]
|
||||
|
||||
# Javascript code file
|
||||
# serve: [dev-server] only
|
||||
script = []
|
||||
21
dioxus-free-icons/packages/example/LICENSE
Normal file
21
dioxus-free-icons/packages/example/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022-Present Daiki Nishikawa
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
11
dioxus-free-icons/packages/example/README.md
Normal file
11
dioxus-free-icons/packages/example/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Example
|
||||
|
||||
> a template for starting a dioxus project to be used with [dioxus-cli](https://github.com/DioxusLabs/cli)
|
||||
|
||||
## Usage
|
||||
|
||||
#### Start a `dev-server` for the project:
|
||||
|
||||
```
|
||||
dioxus serve
|
||||
```
|
||||
0
dioxus-free-icons/packages/example/public/.gitkeep
Normal file
0
dioxus-free-icons/packages/example/public/.gitkeep
Normal file
28
dioxus-free-icons/packages/example/src/main.rs
Normal file
28
dioxus-free-icons/packages/example/src/main.rs
Normal file
@@ -0,0 +1,28 @@
|
||||
use dioxus::prelude::*;
|
||||
|
||||
use dioxus_free_icons::icons::fa_brands_icons::FaRust;
|
||||
use dioxus_free_icons::Icon;
|
||||
|
||||
fn main() {
|
||||
// init debug tool for WebAssembly
|
||||
wasm_logger::init(wasm_logger::Config::default());
|
||||
console_error_panic_hook::set_once();
|
||||
|
||||
launch(app);
|
||||
}
|
||||
|
||||
fn app() -> Element {
|
||||
rsx! (
|
||||
div {
|
||||
style: "text-align: center;",
|
||||
h1 { "🌗 Dioxus 🚀" }
|
||||
h3 { "Frontend that scales." }
|
||||
p { "Dioxus is a portable, performant, and ergonomic framework for building cross-platform user interfaces in Rust." },
|
||||
Icon {
|
||||
width: 60,
|
||||
height: 60,
|
||||
icon: FaRust,
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
45
dioxus-free-icons/packages/lib/Cargo.toml
Normal file
45
dioxus-free-icons/packages/lib/Cargo.toml
Normal file
@@ -0,0 +1,45 @@
|
||||
[package]
|
||||
name = "dioxus-free-icons"
|
||||
version = "0.10.0"
|
||||
edition = "2021"
|
||||
authors = ["Daiki Nishikawa <nd.12021218@gmail.com>", "Marc Espín <mespinsanz@gmail.com>"]
|
||||
description = "Use free svg icons in your Dioxus projects easily with dioxus-free-icons."
|
||||
license = "MIT"
|
||||
repository = "https://github.com/dioxus-community/dioxus-free-icons"
|
||||
readme = "../../README.md"
|
||||
|
||||
[dependencies]
|
||||
dioxus = { workspace = true }
|
||||
|
||||
[features]
|
||||
font-awesome-brands = []
|
||||
font-awesome-regular = []
|
||||
font-awesome-solid = []
|
||||
bootstrap = []
|
||||
feather = []
|
||||
octicons = []
|
||||
hero-icons-outline = []
|
||||
hero-icons-solid = []
|
||||
ionicons = []
|
||||
lucide = []
|
||||
material-design-icons-action = []
|
||||
material-design-icons-alert = []
|
||||
material-design-icons-av = []
|
||||
material-design-icons-communication = []
|
||||
material-design-icons-content = []
|
||||
material-design-icons-device = []
|
||||
material-design-icons-editor = []
|
||||
material-design-icons-file = []
|
||||
material-design-icons-hardware = []
|
||||
material-design-icons-home = []
|
||||
material-design-icons-image = []
|
||||
material-design-icons-maps = []
|
||||
material-design-icons-navigation = []
|
||||
material-design-icons-notification = []
|
||||
material-design-icons-places = []
|
||||
material-design-icons-social = []
|
||||
material-design-icons-toggle = []
|
||||
codicons = []
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
46
dioxus-free-icons/packages/lib/LICENSE
Normal file
46
dioxus-free-icons/packages/lib/LICENSE
Normal file
@@ -0,0 +1,46 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022-Present Daiki Nishikawa
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
Icons are taken from the Font Awesome projects,
|
||||
so please check the project license accordingly.
|
||||
|
||||
Bootstrap Icons - https://github.com/twbs/icons
|
||||
License: MIT License https://github.com/twbs/icons/blob/main/LICENSE.md
|
||||
|
||||
Feather - https://feathericons.com/
|
||||
License: MIT https://github.com/feathericons/feather/blob/master/LICENSE
|
||||
|
||||
Font Awesome - https://fontawesome.com/
|
||||
License: CC BY 4.0 License https://fontawesome.com/license/free
|
||||
|
||||
Heroicons - https://heroicons.com/
|
||||
License: MIT License https://github.com/tailwindlabs/heroicons/blob/master/LICENSE
|
||||
|
||||
Ionicons - https://ionic.io/ionicons/
|
||||
License: MIT License https://github.com/ionic-team/ionicons/blob/main/LICENSE
|
||||
|
||||
Material Design icons - https://developers.google.com/fonts/docs/material_icons
|
||||
License: Apache License 2.0 https://github.com/google/material-design-icons/blob/master/LICENSE
|
||||
|
||||
Octicons - https://primer.style/octicons/
|
||||
License: MIT https://github.com/primer/octicons/blob/master/LICENSE
|
||||
65
dioxus-free-icons/packages/lib/src/icon_component.rs
Normal file
65
dioxus-free-icons/packages/lib/src/icon_component.rs
Normal file
@@ -0,0 +1,65 @@
|
||||
use dioxus::prelude::*;
|
||||
|
||||
/// Icon shape trait
|
||||
pub trait IconShape {
|
||||
fn view_box(&self) -> &str;
|
||||
fn xmlns(&self) -> &str;
|
||||
fn child_elements(&self) -> Element;
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
("none", user_color, "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
}
|
||||
|
||||
/// Icon component Props
|
||||
#[derive(PartialEq, Props, Clone)]
|
||||
pub struct IconProps<T: IconShape + Clone + PartialEq + 'static> {
|
||||
/// The icon shape to use.
|
||||
pub icon: T,
|
||||
/// The height of the `<svg>` element. Defaults to 20. Pass None to omit.
|
||||
#[props(default = Some(20))]
|
||||
pub height: Option<u32>,
|
||||
/// The width of the `<svg>` element. Defaults to 20. Pass None to omit.
|
||||
#[props(default = Some(20))]
|
||||
pub width: Option<u32>,
|
||||
/// The color to use for filling the icon. Defaults to "currentColor".
|
||||
#[props(default = "currentColor".to_string())]
|
||||
pub fill: String,
|
||||
/// An class for the `<svg>` element.
|
||||
#[props(default = "".to_string())]
|
||||
pub class: String,
|
||||
/// An accessible, short-text description for the icon.
|
||||
pub title: Option<String>,
|
||||
/// The style of the `<svg>` element.
|
||||
pub style: Option<String>,
|
||||
}
|
||||
|
||||
/// Icon component which generates SVG elements
|
||||
#[allow(non_snake_case)]
|
||||
pub fn Icon<T: IconShape + Clone + PartialEq + 'static>(props: IconProps<T>) -> Element {
|
||||
let (fill, stroke, stroke_width) = props.icon.fill_and_stroke(&props.fill);
|
||||
rsx!(
|
||||
svg {
|
||||
class: "{props.class}",
|
||||
style: props.style,
|
||||
height: props.height.map(|height| height.to_string()),
|
||||
width: props.width.map(|width| width.to_string()),
|
||||
view_box: "{props.icon.view_box()}",
|
||||
xmlns: "{props.icon.xmlns()}",
|
||||
fill,
|
||||
stroke,
|
||||
stroke_width,
|
||||
stroke_linecap: "{props.icon.stroke_linecap()}",
|
||||
stroke_linejoin: "{props.icon.stroke_linejoin()}",
|
||||
if let Some(title_text) = props.title {
|
||||
title { "{title_text}" }
|
||||
}
|
||||
{props.icon.child_elements()}
|
||||
}
|
||||
)
|
||||
}
|
||||
56
dioxus-free-icons/packages/lib/src/icons.rs
Normal file
56
dioxus-free-icons/packages/lib/src/icons.rs
Normal file
@@ -0,0 +1,56 @@
|
||||
#[cfg(feature = "bootstrap")]
|
||||
pub mod bs_icons;
|
||||
#[cfg(feature = "font-awesome-brands")]
|
||||
pub mod fa_brands_icons;
|
||||
#[cfg(feature = "font-awesome-regular")]
|
||||
pub mod fa_regular_icons;
|
||||
#[cfg(feature = "font-awesome-solid")]
|
||||
pub mod fa_solid_icons;
|
||||
#[cfg(feature = "feather")]
|
||||
pub mod fi_icons;
|
||||
#[cfg(feature = "octicons")]
|
||||
pub mod go_icons;
|
||||
#[cfg(feature = "hero-icons-outline")]
|
||||
pub mod hi_outline_icons;
|
||||
#[cfg(feature = "hero-icons-solid")]
|
||||
pub mod hi_solid_icons;
|
||||
#[cfg(feature = "ionicons")]
|
||||
pub mod io_icons;
|
||||
#[cfg(feature = "lucide")]
|
||||
pub mod ld_icons;
|
||||
#[cfg(feature = "material-design-icons-action")]
|
||||
pub mod md_action_icons;
|
||||
#[cfg(feature = "material-design-icons-alert")]
|
||||
pub mod md_alert_icons;
|
||||
#[cfg(feature = "material-design-icons-av")]
|
||||
pub mod md_av_icons;
|
||||
#[cfg(feature = "material-design-icons-communication")]
|
||||
pub mod md_communication_icons;
|
||||
#[cfg(feature = "material-design-icons-content")]
|
||||
pub mod md_content_icons;
|
||||
#[cfg(feature = "material-design-icons-device")]
|
||||
pub mod md_device_icons;
|
||||
#[cfg(feature = "material-design-icons-editor")]
|
||||
pub mod md_editor_icons;
|
||||
#[cfg(feature = "material-design-icons-file")]
|
||||
pub mod md_file_icons;
|
||||
#[cfg(feature = "material-design-icons-hardware")]
|
||||
pub mod md_hardware_icons;
|
||||
#[cfg(feature = "material-design-icons-home")]
|
||||
pub mod md_home_icons;
|
||||
#[cfg(feature = "material-design-icons-image")]
|
||||
pub mod md_image_icons;
|
||||
#[cfg(feature = "material-design-icons-maps")]
|
||||
pub mod md_maps_icons;
|
||||
#[cfg(feature = "material-design-icons-navigation")]
|
||||
pub mod md_navigation_icons;
|
||||
#[cfg(feature = "material-design-icons-notification")]
|
||||
pub mod md_notification_icons;
|
||||
#[cfg(feature = "material-design-icons-places")]
|
||||
pub mod md_places_icons;
|
||||
#[cfg(feature = "material-design-icons-social")]
|
||||
pub mod md_social_icons;
|
||||
#[cfg(feature = "material-design-icons-toggle")]
|
||||
pub mod md_toggle_icons;
|
||||
#[cfg(feature = "codicons")]
|
||||
pub mod vsc_icons;
|
||||
47631
dioxus-free-icons/packages/lib/src/icons/bs_icons.rs
Normal file
47631
dioxus-free-icons/packages/lib/src/icons/bs_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
14825
dioxus-free-icons/packages/lib/src/icons/fa_brands_icons.rs
Normal file
14825
dioxus-free-icons/packages/lib/src/icons/fa_brands_icons.rs
Normal file
File diff suppressed because one or more lines are too long
7373
dioxus-free-icons/packages/lib/src/icons/fa_regular_icons.rs
Normal file
7373
dioxus-free-icons/packages/lib/src/icons/fa_regular_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
53570
dioxus-free-icons/packages/lib/src/icons/fa_solid_icons.rs
Normal file
53570
dioxus-free-icons/packages/lib/src/icons/fa_solid_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
10535
dioxus-free-icons/packages/lib/src/icons/fi_icons.rs
Normal file
10535
dioxus-free-icons/packages/lib/src/icons/fi_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
7548
dioxus-free-icons/packages/lib/src/icons/go_icons.rs
Normal file
7548
dioxus-free-icons/packages/lib/src/icons/go_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
7300
dioxus-free-icons/packages/lib/src/icons/hi_outline_icons.rs
Normal file
7300
dioxus-free-icons/packages/lib/src/icons/hi_outline_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
6982
dioxus-free-icons/packages/lib/src/icons/hi_solid_icons.rs
Normal file
6982
dioxus-free-icons/packages/lib/src/icons/hi_solid_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
47947
dioxus-free-icons/packages/lib/src/icons/io_icons.rs
Normal file
47947
dioxus-free-icons/packages/lib/src/icons/io_icons.rs
Normal file
File diff suppressed because one or more lines are too long
62452
dioxus-free-icons/packages/lib/src/icons/ld_icons.rs
Normal file
62452
dioxus-free-icons/packages/lib/src/icons/ld_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
9442
dioxus-free-icons/packages/lib/src/icons/md_action_icons.rs
Normal file
9442
dioxus-free-icons/packages/lib/src/icons/md_action_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
170
dioxus-free-icons/packages/lib/src/icons/md_alert_icons.rs
Normal file
170
dioxus-free-icons/packages/lib/src/icons/md_alert_icons.rs
Normal file
@@ -0,0 +1,170 @@
|
||||
use super::super::IconShape;
|
||||
use dioxus::prelude::*;
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdAddAlert;
|
||||
impl IconShape for MdAddAlert {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72C7.37 5.03 5.12 7.75 5.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdAutoDelete;
|
||||
impl IconShape for MdAutoDelete {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
polygon {
|
||||
points: "15,2 11.5,2 10.5,1 5.5,1 4.5,2 1,2 1,4 15,4",
|
||||
}
|
||||
path {
|
||||
d: "M16,9c-0.7,0-1.37,0.1-2,0.29V5H2v12c0,1.1,0.9,2,2,2h5.68c1.12,2.36,3.53,4,6.32,4c3.87,0,7-3.13,7-7 C23,12.13,19.87,9,16,9z M16,21c-2.76,0-5-2.24-5-5s2.24-5,5-5s5,2.24,5,5S18.76,21,16,21z",
|
||||
}
|
||||
polygon {
|
||||
points: "16.5,12 15,12 15,17 18.6,19.1 19.4,17.9 16.5,16.2",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdError;
|
||||
impl IconShape for MdError {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdErrorOutline;
|
||||
impl IconShape for MdErrorOutline {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdNotificationImportant;
|
||||
impl IconShape for MdNotificationImportant {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M18 16v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-5 0h-2v-2h2v2zm0-4h-2V8h2v4zm-1 10c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdWarning;
|
||||
impl IconShape for MdWarning {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3166
dioxus-free-icons/packages/lib/src/icons/md_av_icons.rs
Normal file
3166
dioxus-free-icons/packages/lib/src/icons/md_av_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
2418
dioxus-free-icons/packages/lib/src/icons/md_communication_icons.rs
Normal file
2418
dioxus-free-icons/packages/lib/src/icons/md_communication_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
1903
dioxus-free-icons/packages/lib/src/icons/md_content_icons.rs
Normal file
1903
dioxus-free-icons/packages/lib/src/icons/md_content_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
1720
dioxus-free-icons/packages/lib/src/icons/md_device_icons.rs
Normal file
1720
dioxus-free-icons/packages/lib/src/icons/md_device_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
2371
dioxus-free-icons/packages/lib/src/icons/md_editor_icons.rs
Normal file
2371
dioxus-free-icons/packages/lib/src/icons/md_editor_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
818
dioxus-free-icons/packages/lib/src/icons/md_file_icons.rs
Normal file
818
dioxus-free-icons/packages/lib/src/icons/md_file_icons.rs
Normal file
@@ -0,0 +1,818 @@
|
||||
use super::super::IconShape;
|
||||
use dioxus::prelude::*;
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdApproval;
|
||||
impl IconShape for MdApproval {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M4 16v6h16v-6c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2zm14 2H6v-2h12v2zM12 2C9.24 2 7 4.24 7 7l5 7 5-7c0-2.76-2.24-5-5-5zm0 9L9 7c0-1.66 1.34-3 3-3s3 1.34 3 3l-3 4z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdAttachEmail;
|
||||
impl IconShape for MdAttachEmail {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M21,10V4c0-1.1-0.9-2-2-2H3C1.9,2,1.01,2.9,1.01,4L1,16c0,1.1,0.9,2,2,2h11v-5c0-1.66,1.34-3,3-3H21z M11,11L3,6V4l8,5 l8-5v2L11,11z",
|
||||
}
|
||||
path {
|
||||
d: "M21,14v4c0,1.1-0.9,2-2,2s-2-0.9-2-2v-4.5c0-0.28,0.22-0.5,0.5-0.5s0.5,0.22,0.5,0.5V18h2v-4.5c0-1.38-1.12-2.5-2.5-2.5 S15,12.12,15,13.5V18c0,2.21,1.79,4,4,4s4-1.79,4-4v-4H21z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdAttachment;
|
||||
impl IconShape for MdAttachment {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloud;
|
||||
impl IconShape for MdCloud {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloudCircle;
|
||||
impl IconShape for MdCloudCircle {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01C8.58 8.28 10.13 7 12 7c2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5S17.88 16 16.5 16z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloudDone;
|
||||
impl IconShape for MdCloudDone {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloudDownload;
|
||||
impl IconShape for MdCloudDownload {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloudOff;
|
||||
impl IconShape for MdCloudOff {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloudQueue;
|
||||
impl IconShape for MdCloudQueue {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCloudUpload;
|
||||
impl IconShape for MdCloudUpload {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdCreateNewFolder;
|
||||
impl IconShape for MdCreateNewFolder {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdDriveFileMove;
|
||||
impl IconShape for MdDriveFileMove {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 12v-3h-4v-4h4V8l5 5-5 5z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdDriveFileMoveOutline;
|
||||
impl IconShape for MdDriveFileMoveOutline {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10zm-8.01-9l-1.41 1.41L12.16 12H8v2h4.16l-1.59 1.59L11.99 17 16 13.01 11.99 9z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdDriveFileRenameOutline;
|
||||
impl IconShape for MdDriveFileRenameOutline {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M18.41 5.8L17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83zM6.21 18H5v-1.21l8.66-8.66 1.21 1.21L6.21 18zM11 20l4-4h6v4H11z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdDriveFolderUpload;
|
||||
impl IconShape for MdDriveFolderUpload {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10zM8 13.01l1.41 1.41L11 12.84V17h2v-4.16l1.59 1.59L16 13.01 12.01 9 8 13.01z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdFileDownload;
|
||||
impl IconShape for MdFileDownload {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdFileDownloadDone;
|
||||
impl IconShape for MdFileDownloadDone {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M5 18h14v2H5v-2zm4.6-2.7L5 10.7l2-1.9 2.6 2.6L17 4l2 2-9.4 9.3z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdFileUpload;
|
||||
impl IconShape for MdFileUpload {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdFolder;
|
||||
impl IconShape for MdFolder {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdFolderOpen;
|
||||
impl IconShape for MdFolderOpen {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdFolderShared;
|
||||
impl IconShape for MdFolderShared {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdGridView;
|
||||
impl IconShape for MdGridView {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M0 0h24v24H0z",
|
||||
}
|
||||
path {
|
||||
d: "M3 3v8h8V3H3zm6 6H5V5h4v4zm-6 4v8h8v-8H3zm6 6H5v-4h4v4zm4-16v8h8V3h-8zm6 6h-4V5h4v4zm-6 4v8h8v-8h-8zm6 6h-4v-4h4v4z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdRequestQuote;
|
||||
impl IconShape for MdRequestQuote {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M14,2H6C4.9,2,4.01,2.9,4.01,4L4,20c0,1.1,0.89,2,1.99,2H18c1.1,0,2-0.9,2-2V8L14,2z M15,12h-4v1h3c0.55,0,1,0.45,1,1v3 c0,0.55-0.45,1-1,1h-1v1h-2v-1H9v-2h4v-1h-3c-0.55,0-1-0.45-1-1v-3c0-0.55,0.45-1,1-1h1V9h2v1h2V12z M13,8V3.5L17.5,8H13z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdRuleFolder;
|
||||
impl IconShape for MdRuleFolder {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20,6h-8l-2-2H4C2.9,4,2.01,4.9,2.01,6L2,18c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M7.83,16L5,13.17 l1.41-1.41l1.41,1.41l3.54-3.54l1.41,1.41L7.83,16z M17.41,13L19,14.59L17.59,16L16,14.41L14.41,16L13,14.59L14.59,13L13,11.41 L14.41,10L16,11.59L17.59,10L19,11.41L17.41,13z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdSnippetFolder;
|
||||
impl IconShape for MdSnippetFolder {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M15.88,10.5l1.62,1.62v3.38l-3,0v-5H15.88z M22,8v10c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2L2.01,6C2.01,4.9,2.9,4,4,4h6l2,2 h8C21.1,6,22,6.9,22,8z M19,11.5L16.5,9H13v8l6,0V11.5z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdTextSnippet;
|
||||
impl IconShape for MdTextSnippet {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20.41,8.41l-4.83-4.83C15.21,3.21,14.7,3,14.17,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V9.83 C21,9.3,20.79,8.79,20.41,8.41z M7,7h7v2H7V7z M17,17H7v-2h10V17z M17,13H7v-2h10V13z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdTopic;
|
||||
impl IconShape for MdTopic {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M20,6h-8l-2-2H4C2.9,4,2.01,4.9,2.01,6L2,18c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M14,16H6v-2h8V16z M18,12H6v-2h12V12z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdUploadFile;
|
||||
impl IconShape for MdUploadFile {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdWorkspacesFilled;
|
||||
impl IconShape for MdWorkspacesFilled {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M6 13c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-10C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdWorkspacesOutline;
|
||||
impl IconShape for MdWorkspacesOutline {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M6 15c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 12c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1501
dioxus-free-icons/packages/lib/src/icons/md_hardware_icons.rs
Normal file
1501
dioxus-free-icons/packages/lib/src/icons/md_hardware_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
56
dioxus-free-icons/packages/lib/src/icons/md_home_icons.rs
Normal file
56
dioxus-free-icons/packages/lib/src/icons/md_home_icons.rs
Normal file
@@ -0,0 +1,56 @@
|
||||
use super::super::IconShape;
|
||||
use dioxus::prelude::*;
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdSensorDoor;
|
||||
impl IconShape for MdSensorDoor {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M18,2H6C4.9,2,4,2.9,4,4v18h16V4C20,2.9,19.1,2,18,2z M15.5,13.5c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5 S17,11.17,17,12S16.33,13.5,15.5,13.5z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub struct MdSensorWindow;
|
||||
impl IconShape for MdSensorWindow {
|
||||
fn view_box(&self) -> &str {
|
||||
"0 0 24 24"
|
||||
}
|
||||
fn xmlns(&self) -> &str {
|
||||
"http://www.w3.org/2000/svg"
|
||||
}
|
||||
fn fill_and_stroke<'a>(&self, user_color: &'a str) -> (&'a str, &'a str, &'a str) {
|
||||
(user_color, "none", "0")
|
||||
}
|
||||
fn stroke_linecap(&self) -> &str {
|
||||
"butt"
|
||||
}
|
||||
fn stroke_linejoin(&self) -> &str {
|
||||
"miter"
|
||||
}
|
||||
fn child_elements(&self) -> Element {
|
||||
rsx! {
|
||||
path {
|
||||
d: "M18,4v16H6V4H18 M18,2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2L18,2z M7,19h10v-6H7 V19z M10,10h4v1h3V5H7v6h3V10z",
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
5941
dioxus-free-icons/packages/lib/src/icons/md_image_icons.rs
Normal file
5941
dioxus-free-icons/packages/lib/src/icons/md_image_icons.rs
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user