Compare commits
4 Commits
mobile-bud
...
v25.2.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
05e2cbede1 | ||
|
|
fd42689f00 | ||
|
|
dd58376aa9 | ||
|
|
3c1f98daf1 |
30
.github/actions/bump-package-versions
vendored
@@ -1,30 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$#" -gt 0 ]; then
|
||||
version="${1#v}"
|
||||
else
|
||||
version=""
|
||||
fi
|
||||
|
||||
files_to_bump=(
|
||||
packages/api/package.json
|
||||
packages/desktop-client/package.json
|
||||
packages/desktop-electron/package.json
|
||||
)
|
||||
|
||||
for file in "${files_to_bump[@]}"; do
|
||||
if [ -z "$version" ]; then
|
||||
# version format: YY.MM.patch
|
||||
# logic: if before the 25th, bump patch, else set minor/major to next month
|
||||
version="$(jq -r .version "$file" | perl -e '($y,$m,$p)=split/\./,<>;$d=(localtime)[3];$d>25?($p=0,++$m,$m>12&&($m=1,++$y)):$p++;print"$y.$m.$p\n"')"
|
||||
if [ -z "$version" ]; then
|
||||
echo "Error: Failed to calculate new version" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Bumping $file to version $version"
|
||||
jq '.version = "'"$version"'"' "$file" > "$file.tmp"
|
||||
mv "$file.tmp" "$file"
|
||||
done
|
||||
14
.github/workflows/build.yml
vendored
@@ -68,17 +68,3 @@ jobs:
|
||||
with:
|
||||
name: build-stats
|
||||
path: packages/desktop-client/build-stats
|
||||
|
||||
server:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up environment
|
||||
uses: ./.github/actions/setup
|
||||
- name: Build Server
|
||||
run: cd packages/sync-server && yarn build
|
||||
- name: Upload Build
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: sync-server
|
||||
path: packages/sync-server/build
|
||||
|
||||
90
.github/workflows/docker-edge.yml
vendored
@@ -1,90 +0,0 @@
|
||||
name: Build Edge Docker Image
|
||||
|
||||
# Edge Docker images are built for every commit, and daily
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'packages/sync-server/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'packages/sync-server/**'
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
env:
|
||||
IMAGES: |
|
||||
actualbudget/actual-server
|
||||
ghcr.io/actualbudget/actual-server
|
||||
ghcr.io/actualbudget/actual
|
||||
|
||||
# Creates the following tags:
|
||||
# - actual-server:edge
|
||||
TAGS: |
|
||||
type=edge,value=edge
|
||||
type=sha
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.event.repository.fork == false }}
|
||||
name: Build Docker image
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu, alpine]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
# Push to both Docker Hub and Github Container Registry
|
||||
images: ${{ env.IMAGES }}
|
||||
flavor: ${{ matrix.os != 'ubuntu' && format('suffix=-{0}', matrix.os) || '' }}
|
||||
tags: ${{ env.TAGS }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Download artifacts
|
||||
run: ./packages/sync-server/docker/download-artifacts.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
file: packages/sync-server/docker/edge-${{ matrix.os }}.Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7${{ matrix.os == 'alpine' && ',linux/arm/v6' || '' }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
build-args: |
|
||||
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
|
||||
89
.github/workflows/docker-release.yml
vendored
@@ -1,89 +0,0 @@
|
||||
name: Build Stable Docker Image
|
||||
|
||||
# Stable Docker images are built for every new tag
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
paths-ignore:
|
||||
- README.md
|
||||
- LICENSE.txt
|
||||
|
||||
env:
|
||||
IMAGES: |
|
||||
actualbudget/actual-server
|
||||
ghcr.io/actualbudget/actual-server
|
||||
ghcr.io/actualbudget/actual
|
||||
|
||||
# Creates the following tags:
|
||||
# - actual-server:latest (see docker/metadata-action flavor inputs, below)
|
||||
# - actual-server:1.3
|
||||
# - actual-server:1.3.7
|
||||
# - actual-server:sha-90dd603
|
||||
TAGS: |
|
||||
type=semver,pattern={{version}}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build Docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
# Push to both Docker Hub and Github Container Registry
|
||||
images: ${{ env.IMAGES }}
|
||||
# Automatically update :latest
|
||||
flavor: latest=true
|
||||
tags: ${{ env.TAGS }}
|
||||
|
||||
- name: Docker meta for Alpine image
|
||||
id: alpine-meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ${{ env.IMAGES }}
|
||||
# Automatically update :latest
|
||||
flavor: |
|
||||
latest=true
|
||||
suffix=-alpine,onlatest=true
|
||||
tags: ${{ env.TAGS }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push ubuntu image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
file: packages/sync-server/docker/stable-ubuntu.Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
|
||||
- name: Build and push alpine image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
file: packages/sync-server/docker/stable-alpine.Dockerfile
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
|
||||
tags: ${{ steps.alpine-meta.outputs.tags }}
|
||||
3
.github/workflows/e2e-test.yml
vendored
@@ -1,7 +1,6 @@
|
||||
name: E2E Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
on: [pull_request]
|
||||
|
||||
env:
|
||||
GITHUB_PR_NUMBER: ${{github.event.pull_request.number}}
|
||||
|
||||
35
.github/workflows/generate-release-pr.yml
vendored
@@ -1,35 +0,0 @@
|
||||
name: Generate release PR
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ref:
|
||||
description: 'Commit or branch to release'
|
||||
required: true
|
||||
default: 'master'
|
||||
version:
|
||||
description: 'Version number for the release (optional)'
|
||||
required: false
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
generate-release-pr:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.inputs.ref }}
|
||||
- name: Bump package versions
|
||||
id: bump_package_versions
|
||||
shell: bash
|
||||
run: |
|
||||
.github/actions/bump-package-versions ${{ github.event.inputs.version }}
|
||||
echo "version=$(jq -r .version packages/desktop-client/package.json)" > $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
commit-message: '🔖 (${{ steps.bump_package_versions.outputs.version }})'
|
||||
title: '🔖 (${{ steps.bump_package_versions.outputs.version }})'
|
||||
body: 'Generated by [generate-release-pr.yml](../tree/master/.github/workflows/generate-release-pr.yml)'
|
||||
branch: 'release/v${{ steps.bump_package_versions.outputs.version }}'
|
||||
3
.github/workflows/size-compare.yml
vendored
@@ -13,9 +13,6 @@ name: Compare Sizes
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
paths:
|
||||
- 'packages/**'
|
||||
- '!packages/sync-server/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
|
||||
3
.gitignore
vendored
@@ -53,6 +53,3 @@ bundle.mobile.js.map
|
||||
|
||||
# build output
|
||||
package.tgz
|
||||
|
||||
# Fly.io configuration
|
||||
fly.toml
|
||||
|
||||
@@ -9,7 +9,6 @@ if ! [ -d packages/desktop-client/locale ]; then
|
||||
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
|
||||
fi
|
||||
pushd packages/desktop-client/locale > /dev/null
|
||||
git checkout .
|
||||
git pull
|
||||
popd > /dev/null
|
||||
packages/desktop-client/bin/remove-untranslated-languages
|
||||
|
||||
@@ -42,7 +42,6 @@ if ! [ -d packages/desktop-client/locale ]; then
|
||||
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
|
||||
fi
|
||||
pushd packages/desktop-client/locale > /dev/null
|
||||
git checkout .
|
||||
git pull
|
||||
popd > /dev/null
|
||||
packages/desktop-client/bin/remove-untranslated-languages
|
||||
|
||||
@@ -94,7 +94,6 @@ export default [
|
||||
'packages/api/@types',
|
||||
'packages/api/migrations',
|
||||
'packages/crdt/dist',
|
||||
'packages/component-library/src/icons/**/*',
|
||||
'packages/desktop-client/bundle.browser.js',
|
||||
'packages/desktop-client/build/',
|
||||
'packages/desktop-client/build-electron/',
|
||||
@@ -103,6 +102,7 @@ export default [
|
||||
'packages/desktop-client/public/data/',
|
||||
'packages/desktop-client/**/node_modules/*',
|
||||
'packages/desktop-client/node_modules/',
|
||||
'packages/desktop-client/src/icons/**/*',
|
||||
'packages/desktop-client/test-results/',
|
||||
'packages/desktop-client/playwright-report/',
|
||||
'packages/desktop-electron/client-build/',
|
||||
@@ -113,6 +113,7 @@ export default [
|
||||
'packages/loot-core/**/node_modules/*',
|
||||
'packages/loot-core/**/lib-dist/*',
|
||||
'packages/loot-core/**/proto/*',
|
||||
'packages/sync-server',
|
||||
'.yarn/*',
|
||||
'.github/*',
|
||||
],
|
||||
@@ -670,6 +671,7 @@ export default [
|
||||
},
|
||||
{
|
||||
files: ['packages/loot-core/src/**/*'],
|
||||
|
||||
rules: {
|
||||
'no-restricted-imports': [
|
||||
'warn',
|
||||
@@ -689,10 +691,6 @@ export default [
|
||||
message:
|
||||
'Please use relative imports in loot-core instead of importing from `loot-core/*`',
|
||||
},
|
||||
{
|
||||
group: ['@actual-app/web/*'],
|
||||
message: 'Please do not import `@actual-app/web` in `loot-core`',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
@@ -760,7 +758,7 @@ export default [
|
||||
'packages/desktop-client/src/components/budget/MobileBudget.tsx',
|
||||
'packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx',
|
||||
'packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx',
|
||||
'packages/component-library/src/Menu.tsx',
|
||||
'packages/desktop-client/src/components/common/Menu.tsx',
|
||||
'packages/desktop-client/src/components/FinancesApp.tsx',
|
||||
'packages/desktop-client/src/components/GlobalKeys.ts',
|
||||
'packages/desktop-client/src/components/LoggedInUser.tsx',
|
||||
@@ -789,6 +787,21 @@ export default [
|
||||
'packages/desktop-client/src/components/select/DateSelect.tsx',
|
||||
'packages/desktop-client/src/components/sidebar/Tools.tsx',
|
||||
'packages/desktop-client/src/components/sort.tsx',
|
||||
'packages/desktop-client/src/components/spreadsheet/useSheetValue.ts',
|
||||
'packages/desktop-client/src/components/table.tsx',
|
||||
'packages/desktop-client/src/components/Titlebar.tsx',
|
||||
'packages/desktop-client/src/components/transactions/MobileTransaction.jsx',
|
||||
'packages/desktop-client/src/components/transactions/SelectedTransactions.jsx',
|
||||
'packages/desktop-client/src/components/transactions/SimpleTransactionsTable.jsx',
|
||||
'packages/desktop-client/src/components/transactions/TransactionList.jsx',
|
||||
'packages/desktop-client/src/components/transactions/TransactionsTable.jsx',
|
||||
'packages/desktop-client/src/components/transactions/TransactionsTable.test.jsx',
|
||||
'packages/desktop-client/src/hooks/useAccounts.ts',
|
||||
'packages/desktop-client/src/hooks/useCategories.ts',
|
||||
'packages/desktop-client/src/hooks/usePayees.ts',
|
||||
'packages/desktop-client/src/hooks/useProperFocus.tsx',
|
||||
'packages/desktop-client/src/hooks/useSelected.tsx',
|
||||
'packages/loot-core/src/client/query-hooks.tsx',
|
||||
],
|
||||
|
||||
rules: {
|
||||
@@ -802,7 +815,6 @@ export default [
|
||||
'**/*.test.ts',
|
||||
'**/*.test.jsx',
|
||||
'**/*.test.tsx',
|
||||
'**/*.spec.js',
|
||||
],
|
||||
|
||||
rules: {
|
||||
@@ -820,21 +832,4 @@ export default [
|
||||
'@typescript-eslint/consistent-type-definitions': ['warn', 'type'],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['packages/sync-server/**/*'],
|
||||
// TODO: fix the issues in these files
|
||||
rules: {
|
||||
'import/extensions': 'off',
|
||||
'rulesdir/typography': 'off',
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['packages/sync-server/src/app-gocardless/banks/*.js'],
|
||||
rules: {
|
||||
'import/no-anonymous-default-export': 'off',
|
||||
'import/no-default-export': 'off',
|
||||
// can be re-enabled after https://github.com/actualbudget/actual/pull/4253
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
@@ -19,9 +19,6 @@
|
||||
},
|
||||
"scripts": {
|
||||
"start": "yarn start:browser",
|
||||
"start:server": "yarn workspace @actual-app/sync-server start",
|
||||
"start:server-monitor": "yarn workspace @actual-app/sync-server start-monitor",
|
||||
"start:server-dev": "NODE_ENV=development BROWSER_OPEN=localhost:5006 yarn npm-run-all --parallel 'start:server-monitor' 'start'",
|
||||
"start:desktop": "yarn rebuild-electron && npm-run-all --parallel 'start:desktop-*'",
|
||||
"start:desktop-node": "yarn workspace loot-core watch:node",
|
||||
"start:desktop-client": "yarn workspace @actual-app/web watch",
|
||||
@@ -43,7 +40,6 @@
|
||||
"rebuild-node": "yarn workspace loot-core rebuild",
|
||||
"lint": "eslint . --max-warnings 0",
|
||||
"lint:verbose": "DEBUG=eslint:cli-engine eslint . --max-warnings 0",
|
||||
"install:server": "yarn workspaces focus @actual-app/sync-server --production",
|
||||
"typecheck": "yarn tsc && tsc-strict",
|
||||
"jq": "./node_modules/node-jq/bin/jq",
|
||||
"prepare": "husky"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import type {
|
||||
RequestInfo as FetchInfo,
|
||||
RequestInit as FetchInit,
|
||||
} from 'node-fetch';
|
||||
// @ts-ignore: false-positive commonjs module error on build until typescript 5.3
|
||||
} from 'node-fetch'; // with { 'resolution-mode': 'import' };
|
||||
|
||||
// loot-core types
|
||||
import type { InitConfig } from 'loot-core/server/main';
|
||||
@@ -15,6 +16,9 @@ import { validateNodeVersion } from './validateNodeVersion';
|
||||
let actualApp: null | typeof bundle.lib;
|
||||
export const internal = bundle.lib;
|
||||
|
||||
// DEPRECATED: remove the next line in @actual-app/api v7
|
||||
export * as methods from './methods';
|
||||
|
||||
export * from './methods';
|
||||
export * as utils from './utils';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @ts-strict-ignore
|
||||
import type { Handlers } from 'loot-core/types/handlers';
|
||||
import type { Handlers } from 'loot-core/src/types/handlers';
|
||||
|
||||
import * as injected from './injected';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@actual-app/api",
|
||||
"version": "25.3.1",
|
||||
"version": "25.2.1",
|
||||
"license": "MIT",
|
||||
"description": "An API for Actual",
|
||||
"engines": {
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"outDir": "dist",
|
||||
"declarationDir": "@types",
|
||||
"paths": {
|
||||
"loot-core/src/*": ["./loot-core/*"],
|
||||
"loot-core/*": ["./@types/loot-core/*"]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
"name": "@actual-app/components",
|
||||
"version": "0.0.1",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": ">=18.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@emotion/css": "^11.13.4",
|
||||
"react-aria-components": "^1.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@svgr/cli": "^8.1.0",
|
||||
"@types/react": "^18.2.0",
|
||||
"react": "18.2.0"
|
||||
},
|
||||
"exports": {
|
||||
"./icons/logo": "./src/icons/logo/index.ts",
|
||||
"./icons/v0": "./src/icons/v0/index.ts",
|
||||
"./icons/v1": "./src/icons/v1/index.ts",
|
||||
"./icons/v2": "./src/icons/v2/index.ts",
|
||||
"./icons/AnimatedLoading": "./src/icons/AnimatedLoading.tsx",
|
||||
"./icons/Loading": "./src/icons/Loading.tsx",
|
||||
"./aligned-text": "./src/AlignedText.tsx",
|
||||
"./block": "./src/Block.tsx",
|
||||
"./button": "./src/Button.tsx",
|
||||
"./card": "./src/Card.tsx",
|
||||
"./form-error": "./src/FormError.tsx",
|
||||
"./initial-focus": "./src/InitialFocus.ts",
|
||||
"./inline-field": "./src/InlineField.tsx",
|
||||
"./input": "./src/Input.tsx",
|
||||
"./label": "./src/Label.tsx",
|
||||
"./menu": "./src/Menu.tsx",
|
||||
"./paragraph": "./src/Paragraph.tsx",
|
||||
"./popover": "./src/Popover.tsx",
|
||||
"./select": "./src/Select.tsx",
|
||||
"./space-between": "./src/SpaceBetween.tsx",
|
||||
"./stack": "./src/Stack.tsx",
|
||||
"./styles": "./src/styles.ts",
|
||||
"./text": "./src/Text.tsx",
|
||||
"./text-one-line": "./src/TextOneLine.tsx",
|
||||
"./theme": "./src/theme.ts",
|
||||
"./tokens": "./src/tokens.ts",
|
||||
"./toggle": "./src/Toggle.tsx",
|
||||
"./tooltip": "./src/Tooltip.tsx",
|
||||
"./view": "./src/View.tsx"
|
||||
},
|
||||
"scripts": {
|
||||
"generate:icons": "rm src/icons/*/*.tsx; cd src/icons && svgr --template template.ts --index-template index-template.ts --typescript --expand-props start -d . ."
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export { SvgLogo } from './Logo';
|
||||
@@ -1,9 +0,0 @@
|
||||
export { SvgAdd } from './Add';
|
||||
export { SvgDelete } from './Delete';
|
||||
export { SvgExpandArrow } from './ExpandArrow';
|
||||
export { SvgLeftArrow2 } from './LeftArrow2';
|
||||
export { SvgMath } from './Math';
|
||||
export { SvgRightArrow2 } from './RightArrow2';
|
||||
export { SvgSubtract } from './Subtract';
|
||||
export { SvgMerge } from './Merge';
|
||||
export { SvgSplit } from './Split';
|
||||
@@ -1,311 +0,0 @@
|
||||
export { SvgAddOutline } from './AddOutline';
|
||||
export { SvgAddSolid } from './AddSolid';
|
||||
export { SvgAdd } from './Add';
|
||||
export { SvgAdjust } from './Adjust';
|
||||
export { SvgAirplane } from './Airplane';
|
||||
export { SvgAlbum } from './Album';
|
||||
export { SvgAlignCenter } from './AlignCenter';
|
||||
export { SvgAlignJustified } from './AlignJustified';
|
||||
export { SvgAlignLeft } from './AlignLeft';
|
||||
export { SvgAlignRight } from './AlignRight';
|
||||
export { SvgAnchor } from './Anchor';
|
||||
export { SvgAnnouncement } from './Announcement';
|
||||
export { SvgApparel } from './Apparel';
|
||||
export { SvgArrowDown } from './ArrowDown';
|
||||
export { SvgArrowLeft } from './ArrowLeft';
|
||||
export { SvgArrowOutlineDown } from './ArrowOutlineDown';
|
||||
export { SvgArrowOutlineLeft } from './ArrowOutlineLeft';
|
||||
export { SvgArrowOutlineRight } from './ArrowOutlineRight';
|
||||
export { SvgArrowOutlineUp } from './ArrowOutlineUp';
|
||||
export { SvgArrowRight } from './ArrowRight';
|
||||
export { SvgArrowThickDown } from './ArrowThickDown';
|
||||
export { SvgArrowThickLeft } from './ArrowThickLeft';
|
||||
export { SvgArrowThickRight } from './ArrowThickRight';
|
||||
export { SvgArrowThickUp } from './ArrowThickUp';
|
||||
export { SvgArrowThinDown } from './ArrowThinDown';
|
||||
export { SvgArrowThinLeft } from './ArrowThinLeft';
|
||||
export { SvgArrowThinRight } from './ArrowThinRight';
|
||||
export { SvgArrowThinUp } from './ArrowThinUp';
|
||||
export { SvgArrowUp } from './ArrowUp';
|
||||
export { SvgArtist } from './Artist';
|
||||
export { SvgAtSymbol } from './AtSymbol';
|
||||
export { SvgAttachment } from './Attachment';
|
||||
export { SvgBackspace } from './Backspace';
|
||||
export { SvgBackwardStep } from './BackwardStep';
|
||||
export { SvgBackward } from './Backward';
|
||||
export { SvgBadge } from './Badge';
|
||||
export { SvgBatteryFull } from './BatteryFull';
|
||||
export { SvgBatteryHalf } from './BatteryHalf';
|
||||
export { SvgBatteryLow } from './BatteryLow';
|
||||
export { SvgBeverage } from './Beverage';
|
||||
export { SvgBlock } from './Block';
|
||||
export { SvgBluetooth } from './Bluetooth';
|
||||
export { SvgBolt } from './Bolt';
|
||||
export { SvgBookReference } from './BookReference';
|
||||
export { SvgBookmarkCopy2 } from './BookmarkCopy2';
|
||||
export { SvgBookmarkCopy3 } from './BookmarkCopy3';
|
||||
export { SvgBookmarkOutlineAdd } from './BookmarkOutlineAdd';
|
||||
export { SvgBookmarkOutline } from './BookmarkOutline';
|
||||
export { SvgBookmark } from './Bookmark';
|
||||
export { SvgBorderAll } from './BorderAll';
|
||||
export { SvgBorderBottom } from './BorderBottom';
|
||||
export { SvgBorderHorizontal } from './BorderHorizontal';
|
||||
export { SvgBorderInner } from './BorderInner';
|
||||
export { SvgBorderLeft } from './BorderLeft';
|
||||
export { SvgBorderNone } from './BorderNone';
|
||||
export { SvgBorderOuter } from './BorderOuter';
|
||||
export { SvgBorderRight } from './BorderRight';
|
||||
export { SvgBorderTop } from './BorderTop';
|
||||
export { SvgBorderVertical } from './BorderVertical';
|
||||
export { SvgBox } from './Box';
|
||||
export { SvgBrightnessDown } from './BrightnessDown';
|
||||
export { SvgBrightnessUp } from './BrightnessUp';
|
||||
export { SvgBrowserWindowNew } from './BrowserWindowNew';
|
||||
export { SvgBrowserWindowOpen } from './BrowserWindowOpen';
|
||||
export { SvgBrowserWindow } from './BrowserWindow';
|
||||
export { SvgBug } from './Bug';
|
||||
export { SvgBuoy } from './Buoy';
|
||||
export { SvgCalculator } from './Calculator';
|
||||
export { SvgCalendar } from './Calendar';
|
||||
export { SvgCamera } from './Camera';
|
||||
export { SvgChartArea } from './ChartArea';
|
||||
export { SvgChartBar } from './ChartBar';
|
||||
export { SvgChartPie } from './ChartPie';
|
||||
export { SvgChart } from './Chart';
|
||||
export { SvgChatBubbleDots } from './ChatBubbleDots';
|
||||
export { SvgCheckAlternative } from './CheckAlternative';
|
||||
export { SvgCheckmarkOutline } from './CheckmarkOutline';
|
||||
export { SvgCheckmark } from './Checkmark';
|
||||
export { SvgCheveronDown } from './CheveronDown';
|
||||
export { SvgCheveronLeft } from './CheveronLeft';
|
||||
export { SvgCheveronOutlineDown } from './CheveronOutlineDown';
|
||||
export { SvgCheveronOutlineLeft } from './CheveronOutlineLeft';
|
||||
export { SvgCheveronOutlineRight } from './CheveronOutlineRight';
|
||||
export { SvgCheveronOutlineUp } from './CheveronOutlineUp';
|
||||
export { SvgCheveronRight } from './CheveronRight';
|
||||
export { SvgCheveronUp } from './CheveronUp';
|
||||
export { SvgClipboard } from './Clipboard';
|
||||
export { SvgCloseOutline } from './CloseOutline';
|
||||
export { SvgCloseSolid } from './CloseSolid';
|
||||
export { SvgClose } from './Close';
|
||||
export { SvgCloudCheck } from './CloudCheck';
|
||||
export { SvgCloudDownload } from './CloudDownload';
|
||||
export { SvgCloudUpload } from './CloudUpload';
|
||||
export { SvgCloudWarning } from './CloudWarning';
|
||||
export { SvgCloud } from './Cloud';
|
||||
export { SvgCode } from './Code';
|
||||
export { SvgCoffee } from './Coffee';
|
||||
export { SvgCog } from './Cog';
|
||||
export { SvgColorPalette } from './ColorPalette';
|
||||
export { SvgCompose } from './Compose';
|
||||
export { SvgComputerDesktop } from './ComputerDesktop';
|
||||
export { SvgComputerLaptop } from './ComputerLaptop';
|
||||
export { SvgConversation } from './Conversation';
|
||||
export { SvgCopy } from './Copy';
|
||||
export { SvgCreditCard } from './CreditCard';
|
||||
export { SvgCurrencyDollar } from './CurrencyDollar';
|
||||
export { SvgDashboard } from './Dashboard';
|
||||
export { SvgDateAdd } from './DateAdd';
|
||||
export { SvgDialPad } from './DialPad';
|
||||
export { SvgDirections } from './Directions';
|
||||
export { SvgDocumentAdd } from './DocumentAdd';
|
||||
export { SvgDocument } from './Document';
|
||||
export { SvgDotsHorizontalDouble } from './DotsHorizontalDouble';
|
||||
export { SvgDotsHorizontalTriple } from './DotsHorizontalTriple';
|
||||
export { SvgDownload } from './Download';
|
||||
export { SvgDuplicate } from './Duplicate';
|
||||
export { SvgEditCopy } from './EditCopy';
|
||||
export { SvgEditCrop } from './EditCrop';
|
||||
export { SvgEditCut } from './EditCut';
|
||||
export { SvgEditPencil } from './EditPencil';
|
||||
export { SvgEducation } from './Education';
|
||||
export { SvgEnvelope } from './Envelope';
|
||||
export { SvgEquals } from './Equals';
|
||||
export { SvgExclamationOutline } from './ExclamationOutline';
|
||||
export { SvgExclamationSolid } from './ExclamationSolid';
|
||||
export { SvgExplore } from './Explore';
|
||||
export { SvgFactory } from './Factory';
|
||||
export { SvgFastForward } from './FastForward';
|
||||
export { SvgFastRewind } from './FastRewind';
|
||||
export { SvgFileDouble } from './FileDouble';
|
||||
export { SvgFilm } from './Film';
|
||||
export { SvgFilter } from './Filter';
|
||||
export { SvgFlag } from './Flag';
|
||||
export { SvgFlashlight } from './Flashlight';
|
||||
export { SvgFolderOutlineAdd } from './FolderOutlineAdd';
|
||||
export { SvgFolderOutline } from './FolderOutline';
|
||||
export { SvgFolder } from './Folder';
|
||||
export { SvgFormatBold } from './FormatBold';
|
||||
export { SvgFormatFontSize } from './FormatFontSize';
|
||||
export { SvgFormatItalic } from './FormatItalic';
|
||||
export { SvgFormatTextSize } from './FormatTextSize';
|
||||
export { SvgFormatUnderline } from './FormatUnderline';
|
||||
export { SvgForwardStep } from './ForwardStep';
|
||||
export { SvgForward } from './Forward';
|
||||
export { SvgGift } from './Gift';
|
||||
export { SvgGlobe } from './Globe';
|
||||
export { SvgHandStop } from './HandStop';
|
||||
export { SvgHardDrive } from './HardDrive';
|
||||
export { SvgHeadphones } from './Headphones';
|
||||
export { SvgHeart } from './Heart';
|
||||
export { SvgHome } from './Home';
|
||||
export { SvgHot } from './Hot';
|
||||
export { SvgHourGlass } from './HourGlass';
|
||||
export { SvgInboxCheck } from './InboxCheck';
|
||||
export { SvgInboxDownload } from './InboxDownload';
|
||||
export { SvgInboxFull } from './InboxFull';
|
||||
export { SvgInbox } from './Inbox';
|
||||
export { SvgIndentDecrease } from './IndentDecrease';
|
||||
export { SvgIndentIncrease } from './IndentIncrease';
|
||||
export { SvgInformationOutline } from './InformationOutline';
|
||||
export { SvgInformationSolid } from './InformationSolid';
|
||||
export { SvgKey } from './Key';
|
||||
export { SvgKeyboard } from './Keyboard';
|
||||
export { SvgLayers } from './Layers';
|
||||
export { SvgLibrary } from './Library';
|
||||
export { SvgLightBulb } from './LightBulb';
|
||||
export { SvgLink } from './Link';
|
||||
export { SvgListAdd } from './ListAdd';
|
||||
export { SvgListBullet } from './ListBullet';
|
||||
export { SvgList } from './List';
|
||||
export { SvgLoadBalancer } from './LoadBalancer';
|
||||
export { SvgLocationCurrent } from './LocationCurrent';
|
||||
export { SvgLocationFood } from './LocationFood';
|
||||
export { SvgLocationGasStation } from './LocationGasStation';
|
||||
export { SvgLocationHotel } from './LocationHotel';
|
||||
export { SvgLocationMarina } from './LocationMarina';
|
||||
export { SvgLocationPark } from './LocationPark';
|
||||
export { SvgLocationRestroom } from './LocationRestroom';
|
||||
export { SvgLocationShopping } from './LocationShopping';
|
||||
export { SvgLocation } from './Location';
|
||||
export { SvgLockClosed } from './LockClosed';
|
||||
export { SvgLockOpen } from './LockOpen';
|
||||
export { SvgMap } from './Map';
|
||||
export { SvgMenu } from './Menu';
|
||||
export { SvgMic } from './Mic';
|
||||
export { SvgMinusOutline } from './MinusOutline';
|
||||
export { SvgMinusSolid } from './MinusSolid';
|
||||
export { SvgMobileDevices } from './MobileDevices';
|
||||
export { SvgMoneyBag } from './MoneyBag';
|
||||
export { SvgMoodHappyOutline } from './MoodHappyOutline';
|
||||
export { SvgMoodHappySolid } from './MoodHappySolid';
|
||||
export { SvgMoodNeutralOutline } from './MoodNeutralOutline';
|
||||
export { SvgMoodNeutralSolid } from './MoodNeutralSolid';
|
||||
export { SvgMoodSadOutline } from './MoodSadOutline';
|
||||
export { SvgMoodSadSolid } from './MoodSadSolid';
|
||||
export { SvgMouse } from './Mouse';
|
||||
export { SvgMoveBack } from './MoveBack';
|
||||
export { SvgMusicAlbum } from './MusicAlbum';
|
||||
export { SvgMusicArtist } from './MusicArtist';
|
||||
export { SvgMusicNotes } from './MusicNotes';
|
||||
export { SvgMusicPlaylist } from './MusicPlaylist';
|
||||
export { SvgNavigationMore } from './NavigationMore';
|
||||
export { SvgNetwork } from './Network';
|
||||
export { SvgNewsPaper } from './NewsPaper';
|
||||
export { SvgNotification } from './Notification';
|
||||
export { SvgNotificationsOutline } from './NotificationsOutline';
|
||||
export { SvgNotifications } from './Notifications';
|
||||
export { SvgPaste } from './Paste';
|
||||
export { SvgPauseOutline } from './PauseOutline';
|
||||
export { SvgPauseSolid } from './PauseSolid';
|
||||
export { SvgPause } from './Pause';
|
||||
export { SvgPenTool } from './PenTool';
|
||||
export { SvgPencilWrite } from './PencilWrite';
|
||||
export { SvgPhone } from './Phone';
|
||||
export { SvgPhoto } from './Photo';
|
||||
export { SvgPhpElephant } from './PhpElephant';
|
||||
export { SvgPiggyBank } from './PiggyBank';
|
||||
export { SvgPin } from './Pin';
|
||||
export { SvgPlayOutline } from './PlayOutline';
|
||||
export { SvgPlay } from './Play';
|
||||
export { SvgPlaylist } from './Playlist';
|
||||
export { SvgPlugin } from './Plugin';
|
||||
export { SvgPortfolio } from './Portfolio';
|
||||
export { SvgPrinter } from './Printer';
|
||||
export { SvgPylon } from './Pylon';
|
||||
export { SvgQuestion } from './Question';
|
||||
export { SvgQueue } from './Queue';
|
||||
export { SvgRadarCopy2 } from './RadarCopy2';
|
||||
export { SvgRadar } from './Radar';
|
||||
export { SvgRadio } from './Radio';
|
||||
export { SvgRefresh } from './Refresh';
|
||||
export { SvgReload } from './Reload';
|
||||
export { SvgReplyAll } from './ReplyAll';
|
||||
export { SvgReply } from './Reply';
|
||||
export { SvgReports } from './Reports';
|
||||
export { SvgRepost } from './Repost';
|
||||
export { SvgSaveDisk } from './SaveDisk';
|
||||
export { SvgScreenFull } from './ScreenFull';
|
||||
export { SvgSearch } from './Search';
|
||||
export { SvgSend } from './Send';
|
||||
export { SvgServers } from './Servers';
|
||||
export { SvgShare01 } from './Share01';
|
||||
export { SvgShareAlt } from './ShareAlt';
|
||||
export { SvgShare } from './Share';
|
||||
export { SvgShield } from './Shield';
|
||||
export { SvgShoppingCart } from './ShoppingCart';
|
||||
export { SvgShowSidebar } from './ShowSidebar';
|
||||
export { SvgShuffle } from './Shuffle';
|
||||
export { SvgStandBy } from './StandBy';
|
||||
export { SvgStarFull } from './StarFull';
|
||||
export { SvgStation } from './Station';
|
||||
export { SvgStepBackward } from './StepBackward';
|
||||
export { SvgStepForward } from './StepForward';
|
||||
export { SvgStethoscope } from './Stethoscope';
|
||||
export { SvgStoreFront } from './StoreFront';
|
||||
export { SvgStrokeWidth } from './StrokeWidth';
|
||||
export { SvgSubdirectoryLeft } from './SubdirectoryLeft';
|
||||
export { SvgSubdirectoryRight } from './SubdirectoryRight';
|
||||
export { SvgSubtract } from './Subtract';
|
||||
export { SvgSwap } from './Swap';
|
||||
export { SvgTablet } from './Tablet';
|
||||
export { SvgTag } from './Tag';
|
||||
export { SvgTarget } from './Target';
|
||||
export { SvgTextBox } from './TextBox';
|
||||
export { SvgTextDecoration } from './TextDecoration';
|
||||
export { SvgThermometer } from './Thermometer';
|
||||
export { SvgThumbsDown } from './ThumbsDown';
|
||||
export { SvgThumbsUp } from './ThumbsUp';
|
||||
export { SvgTicket } from './Ticket';
|
||||
export { SvgTime } from './Time';
|
||||
export { SvgTimer } from './Timer';
|
||||
export { SvgToolsCopy } from './ToolsCopy';
|
||||
export { SvgTranslate } from './Translate';
|
||||
export { SvgTrash } from './Trash';
|
||||
export { SvgTravelBus } from './TravelBus';
|
||||
export { SvgTravelCar } from './TravelCar';
|
||||
export { SvgTravelCase } from './TravelCase';
|
||||
export { SvgTravelTaxiCab } from './TravelTaxiCab';
|
||||
export { SvgTravelTrain } from './TravelTrain';
|
||||
export { SvgTravelWalk } from './TravelWalk';
|
||||
export { SvgTravel } from './Travel';
|
||||
export { SvgTrophy } from './Trophy';
|
||||
export { SvgTuning } from './Tuning';
|
||||
export { SvgUpload } from './Upload';
|
||||
export { SvgUsb } from './Usb';
|
||||
export { SvgUserAdd } from './UserAdd';
|
||||
export { SvgUserGroup } from './UserGroup';
|
||||
export { SvgUserSolidCircle } from './UserSolidCircle';
|
||||
export { SvgUserSolidSquare } from './UserSolidSquare';
|
||||
export { SvgUser } from './User';
|
||||
export { SvgVector } from './Vector';
|
||||
export { SvgVideoCamera } from './VideoCamera';
|
||||
export { SvgViewCarousel } from './ViewCarousel';
|
||||
export { SvgViewColumn } from './ViewColumn';
|
||||
export { SvgViewHide } from './ViewHide';
|
||||
export { SvgViewList } from './ViewList';
|
||||
export { SvgViewShow } from './ViewShow';
|
||||
export { SvgViewTile } from './ViewTile';
|
||||
export { SvgVolumeDown } from './VolumeDown';
|
||||
export { SvgVolumeMute } from './VolumeMute';
|
||||
export { SvgVolumeOff } from './VolumeOff';
|
||||
export { SvgVolumeUp } from './VolumeUp';
|
||||
export { SvgWallet } from './Wallet';
|
||||
export { SvgWatch } from './Watch';
|
||||
export { SvgWindowNew } from './WindowNew';
|
||||
export { SvgWindowOpen } from './WindowOpen';
|
||||
export { SvgWindow } from './Window';
|
||||
export { SvgWrench } from './Wrench';
|
||||
export { SvgYinYang } from './YinYang';
|
||||
export { SvgZoomIn } from './ZoomIn';
|
||||
export { SvgZoomOut } from './ZoomOut';
|
||||
@@ -1,51 +0,0 @@
|
||||
export { SvgAlertTriangle } from './AlertTriangle';
|
||||
export { SvgArrowButtonDown1 } from './ArrowButtonDown1';
|
||||
export { SvgArrowButtonLeft1 } from './ArrowButtonLeft1';
|
||||
export { SvgArrowButtonRight1 } from './ArrowButtonRight1';
|
||||
export { SvgArrowButtonUp1 } from './ArrowButtonUp1';
|
||||
export { SvgArrowsExpand3 } from './ArrowsExpand3';
|
||||
export { SvgArrowsShrink3 } from './ArrowsShrink3';
|
||||
export { SvgArrowsSynchronize } from './ArrowsSynchronize';
|
||||
export { SvgCalendar } from './Calendar';
|
||||
export { SvgCalendar3 } from './Calendar3';
|
||||
export { SvgCheck } from './Check';
|
||||
export { SvgCheckAll } from './CheckAll';
|
||||
export { SvgCheckCircle1 } from './CheckCircle1';
|
||||
export { SvgCheckCircleHollow } from './CheckCircleHollow';
|
||||
export { SvgCloseParenthesis } from './CloseParenthesis';
|
||||
export { SvgCloudUnknown } from './CloudUnknown';
|
||||
export { SvgCloudUpload } from './CloudUpload';
|
||||
export { SvgCustomNotesPaper } from './CustomNotesPaper';
|
||||
export { SvgDownAndRightArrow } from './DownAndRightArrow';
|
||||
export { SvgDownloadThickBottom } from './DownloadThickBottom';
|
||||
export { SvgEditSkull1 } from './EditSkull1';
|
||||
export { SvgFavoriteStar } from './FavoriteStar';
|
||||
export { SvgFilter2 } from './Filter2';
|
||||
export { SvgHelp } from './Help';
|
||||
export { SvgHyperlink2 } from './Hyperlink2';
|
||||
export { SvgHyperlink3 } from './Hyperlink3';
|
||||
export { SvgInformationCircle } from './InformationCircle';
|
||||
export { SvgKey } from './Key';
|
||||
export { SvgLockClosed } from './LockClosed';
|
||||
export { SvgMoonStars } from './MoonStars';
|
||||
export { SvgNavigationMenu } from './NavigationMenu';
|
||||
export { SvgNotesPaper } from './NotesPaper';
|
||||
export { SvgNotesPaperText } from './NotesPaperText';
|
||||
export { SvgOpenParenthesis } from './OpenParenthesis';
|
||||
export { SvgPencil1 } from './Pencil1';
|
||||
export { SvgPencilWriteAlternate } from './PencilWriteAlternate';
|
||||
export { SvgRefreshArrow } from './RefreshArrow';
|
||||
export { SvgRemove } from './Remove';
|
||||
export { SvgRemoveAlternate } from './RemoveAlternate';
|
||||
export { SvgSearch1 } from './Search1';
|
||||
export { SvgSearchAlternate } from './SearchAlternate';
|
||||
export { SvgSettingsSliderAlternate } from './SettingsSliderAlternate';
|
||||
export { SvgSubtract } from './Subtract';
|
||||
export { SvgSum } from './Sum';
|
||||
export { SvgSun } from './Sun';
|
||||
export { SvgSystem } from './System';
|
||||
export { SvgUncheckAll } from './UncheckAll';
|
||||
export { SvgUploadThickBottom } from './UploadThickBottom';
|
||||
export { SvgValidationCheck } from './ValidationCheck';
|
||||
export { SvgViewHide } from './ViewHide';
|
||||
export { SvgViewShow } from './ViewShow';
|
||||
@@ -1,157 +0,0 @@
|
||||
import { keyframes } from '@emotion/css';
|
||||
|
||||
import { theme } from './theme';
|
||||
import { tokens } from './tokens';
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
export type CSSProperties = Record<string, any>;
|
||||
|
||||
const MOBILE_MIN_HEIGHT = 40;
|
||||
|
||||
const shadowLarge = {
|
||||
boxShadow: '0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08)',
|
||||
};
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
export const styles: Record<string, any> = {
|
||||
incomeHeaderHeight: 70,
|
||||
cardShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)',
|
||||
monthRightPadding: 5,
|
||||
menuBorderRadius: 4,
|
||||
mobileMinHeight: MOBILE_MIN_HEIGHT,
|
||||
mobileMenuItem: {
|
||||
fontSize: 17,
|
||||
fontWeight: 400,
|
||||
paddingTop: 8,
|
||||
paddingBottom: 8,
|
||||
height: MOBILE_MIN_HEIGHT,
|
||||
minHeight: MOBILE_MIN_HEIGHT,
|
||||
},
|
||||
mobileEditingPadding: 12,
|
||||
altMenuMaxHeight: 250,
|
||||
altMenuText: {
|
||||
fontSize: 13,
|
||||
},
|
||||
altMenuHeaderText: {
|
||||
fontSize: 13,
|
||||
fontWeight: 700,
|
||||
},
|
||||
veryLargeText: {
|
||||
fontSize: 30,
|
||||
fontWeight: 600,
|
||||
},
|
||||
largeText: {
|
||||
fontSize: 20,
|
||||
fontWeight: 700,
|
||||
letterSpacing: 0.5,
|
||||
},
|
||||
mediumText: {
|
||||
fontSize: 15,
|
||||
fontWeight: 500,
|
||||
},
|
||||
smallText: {
|
||||
fontSize: 13,
|
||||
},
|
||||
verySmallText: {
|
||||
fontSize: 12,
|
||||
},
|
||||
tinyText: {
|
||||
fontSize: 10,
|
||||
},
|
||||
page: {
|
||||
flex: 1,
|
||||
'@media (max-height: 550px)': {
|
||||
minHeight: 700, // ensure we can scroll on small screens
|
||||
},
|
||||
paddingTop: 8, // height of the titlebar
|
||||
[`@media (min-width: ${tokens.breakpoint_small})`]: {
|
||||
paddingTop: 36,
|
||||
},
|
||||
},
|
||||
pageContent: {
|
||||
paddingLeft: 2,
|
||||
paddingRight: 2,
|
||||
[`@media (min-width: ${tokens.breakpoint_small})`]: {
|
||||
paddingLeft: 20,
|
||||
paddingRight: 20,
|
||||
},
|
||||
},
|
||||
settingsPageContent: {
|
||||
padding: 20,
|
||||
[`@media (min-width: ${tokens.breakpoint_small})`]: {
|
||||
padding: 'inherit',
|
||||
},
|
||||
},
|
||||
staticText: {
|
||||
cursor: 'default',
|
||||
userSelect: 'none',
|
||||
},
|
||||
shadow: {
|
||||
boxShadow: '0 2px 4px 0 rgba(0,0,0,0.1)',
|
||||
},
|
||||
shadowLarge,
|
||||
tnum: {
|
||||
// eslint-disable-next-line rulesdir/typography
|
||||
fontFeatureSettings: '"tnum"',
|
||||
},
|
||||
notFixed: { fontFeatureSettings: '' },
|
||||
text: {
|
||||
fontSize: 16,
|
||||
// lineHeight: 22.4 // TODO: This seems like trouble, but what's the right value?
|
||||
},
|
||||
delayedFadeIn: {
|
||||
animationName: keyframes({
|
||||
'0%': { opacity: 0 },
|
||||
'100%': { opacity: 1 },
|
||||
}),
|
||||
animationDuration: '1s',
|
||||
animationFillMode: 'both',
|
||||
animationDelay: '0.5s',
|
||||
},
|
||||
underlinedText: {
|
||||
borderBottom: `2px solid`,
|
||||
},
|
||||
noTapHighlight: {
|
||||
WebkitTapHighlightColor: 'transparent',
|
||||
':focus': {
|
||||
outline: 'none',
|
||||
},
|
||||
},
|
||||
lineClamp: (lines: number) => {
|
||||
return {
|
||||
display: '-webkit-box',
|
||||
WebkitLineClamp: lines,
|
||||
WebkitBoxOrient: 'vertical',
|
||||
overflow: 'hidden',
|
||||
textOverflow: 'ellipsis',
|
||||
wordBreak: 'break-word',
|
||||
};
|
||||
},
|
||||
tooltip: {
|
||||
padding: 5,
|
||||
...shadowLarge,
|
||||
borderWidth: 2,
|
||||
borderRadius: 4,
|
||||
borderStyle: 'solid',
|
||||
borderColor: theme.tooltipBorder,
|
||||
backgroundColor: theme.tooltipBackground,
|
||||
color: theme.tooltipText,
|
||||
overflow: 'auto',
|
||||
},
|
||||
popover: {
|
||||
border: 'none',
|
||||
backgroundColor: theme.menuBackground,
|
||||
color: theme.menuItemText,
|
||||
},
|
||||
// Dynamically set
|
||||
horizontalScrollbar: null as CSSProperties | null,
|
||||
lightScrollbar: null as CSSProperties | null,
|
||||
darkScrollbar: null as CSSProperties | null,
|
||||
scrollbarWidth: null as number | null,
|
||||
editorPill: {
|
||||
color: theme.pillText,
|
||||
backgroundColor: theme.pillBackground,
|
||||
borderRadius: 4,
|
||||
padding: '3px 5px',
|
||||
},
|
||||
};
|
||||
@@ -1,203 +0,0 @@
|
||||
export const theme = {
|
||||
pageBackground: 'var(--color-pageBackground)',
|
||||
pageBackgroundModalActive: 'var(--color-pageBackgroundModalActive)',
|
||||
pageBackgroundTopLeft: 'var(--color-pageBackgroundTopLeft)',
|
||||
pageBackgroundBottomRight: 'var(--color-pageBackgroundBottomRight)',
|
||||
pageBackgroundLineTop: 'var(--color-pageBackgroundLineTop)',
|
||||
pageBackgroundLineMid: 'var(--color-pageBackgroundLineMid)',
|
||||
pageBackgroundLineBottom: 'var(--color-pageBackgroundLineBottom)',
|
||||
pageText: 'var(--color-pageText)',
|
||||
pageTextLight: 'var(--color-pageTextLight)',
|
||||
pageTextSubdued: 'var(--color-pageTextSubdued)',
|
||||
pageTextDark: 'var(--color-pageTextDark)',
|
||||
pageTextPositive: 'var(--color-pageTextPositive)',
|
||||
pageTextLink: 'var(--color-pageTextLink)',
|
||||
pageTextLinkLight: 'var(--color-pageTextLinkLight)',
|
||||
cardBackground: 'var(--color-cardBackground)',
|
||||
cardBorder: 'var(--color-cardBorder)',
|
||||
cardShadow: 'var(--color-cardShadow)',
|
||||
tableBackground: 'var(--color-tableBackground)',
|
||||
tableRowBackgroundHover: 'var(--color-tableRowBackgroundHover)',
|
||||
tableText: 'var(--color-tableText)',
|
||||
tableTextLight: 'var(--color-tableTextLight)',
|
||||
tableTextSubdued: 'var(--color-tableTextSubdued)',
|
||||
tableTextSelected: 'var(--color-tableTextSelected)',
|
||||
tableTextHover: 'var(--color-tableTextHover)',
|
||||
tableTextInactive: 'var(--color-tableTextInactive)',
|
||||
tableHeaderText: 'var(--color-tableHeaderText)',
|
||||
tableHeaderBackground: 'var(--color-tableHeaderBackground)',
|
||||
tableBorder: 'var(--color-tableBorder)',
|
||||
tableBorderSelected: 'var(--color-tableBorderSelected)',
|
||||
tableBorderHover: 'var(--color-tableBorderHover)',
|
||||
tableBorderSeparator: 'var(--color-tableBorderSeparator)',
|
||||
tableRowBackgroundHighlight: 'var(--color-tableRowBackgroundHighlight)',
|
||||
tableRowBackgroundHighlightText:
|
||||
'var(--color-tableRowBackgroundHighlightText)',
|
||||
tableRowHeaderBackground: 'var(--color-tableRowHeaderBackground)',
|
||||
tableRowHeaderText: 'var(--color-tableRowHeaderText)',
|
||||
sidebarBackground: 'var(--color-sidebarBackground)',
|
||||
sidebarItemBackgroundPending: 'var(--color-sidebarItemBackgroundPending)',
|
||||
sidebarItemBackgroundPositive: 'var(--color-sidebarItemBackgroundPositive)',
|
||||
sidebarItemBackgroundFailed: 'var(--color-sidebarItemBackgroundFailed)',
|
||||
sidebarItemAccentSelected: 'var(--color-sidebarItemAccentSelected)',
|
||||
sidebarItemBackgroundHover: 'var(--color-sidebarItemBackgroundHover)',
|
||||
sidebarItemText: 'var(--color-sidebarItemText)',
|
||||
sidebarItemTextSelected: 'var(--color-sidebarItemTextSelected)',
|
||||
menuBackground: 'var(--color-menuBackground)',
|
||||
menuItemBackground: 'var(--color-menuItemBackground)',
|
||||
menuItemBackgroundHover: 'var(--color-menuItemBackgroundHover)',
|
||||
menuItemText: 'var(--color-menuItemText)',
|
||||
menuItemTextHover: 'var(--color-menuItemTextHover)',
|
||||
menuItemTextSelected: 'var(--color-menuItemTextSelected)',
|
||||
menuItemTextHeader: 'var(--color-menuItemTextHeader)',
|
||||
menuBorder: 'var(--color-menuBorder)',
|
||||
menuBorderHover: 'var(--color-menuBorderHover)',
|
||||
menuKeybindingText: 'var(--color-menuKeybindingText)',
|
||||
menuAutoCompleteBackground: 'var(--color-menuAutoCompleteBackground)',
|
||||
menuAutoCompleteBackgroundHover:
|
||||
'var(--color-menuAutoCompleteBackgroundHover)',
|
||||
menuAutoCompleteText: 'var(--color-menuAutoCompleteText)',
|
||||
menuAutoCompleteTextHover: 'var(--color-menuAutoCompleteTextHover)',
|
||||
menuAutoCompleteTextHeader: 'var(--color-menuAutoCompleteTextHeader)',
|
||||
menuAutoCompleteItemTextHover: 'var(--color-menuAutoCompleteItemTextHover)',
|
||||
menuAutoCompleteItemText: 'var(--color-menuAutoCompleteItemText)',
|
||||
modalBackground: 'var(--color-modalBackground)',
|
||||
modalBorder: 'var(--color-modalBorder)',
|
||||
mobileHeaderBackground: 'var(--color-mobileHeaderBackground)',
|
||||
mobileHeaderText: 'var(--color-mobileHeaderText)',
|
||||
mobileHeaderTextSubdued: 'var(--color-mobileHeaderTextSubdued)',
|
||||
mobileHeaderTextHover: 'var(--color-mobileHeaderTextHover)',
|
||||
mobilePageBackground: 'var(--color-mobilePageBackground)',
|
||||
mobileNavBackground: 'var(--color-mobileNavBackground)',
|
||||
mobileNavItem: 'var(--color-mobileNavItem)',
|
||||
mobileNavItemSelected: 'var(--color-mobileNavItemSelected)',
|
||||
mobileAccountShadow: 'var(--color-mobileAccountShadow)',
|
||||
mobileAccountText: 'var(--color-mobileAccountText)',
|
||||
mobileTransactionSelected: 'var(--color-mobileTransactionSelected)',
|
||||
mobileViewTheme: 'var(--color-mobileViewTheme)',
|
||||
mobileConfigServerViewTheme: 'var(--color-mobileConfigServerViewTheme)',
|
||||
markdownNormal: 'var(--color-markdownNormal)',
|
||||
markdownDark: 'var(--color-markdownDark)',
|
||||
markdownLight: 'var(--color-markdownLight)',
|
||||
buttonMenuText: 'var(--color-buttonMenuText)',
|
||||
buttonMenuTextHover: 'var(--color-buttonMenuTextHover)',
|
||||
buttonMenuBackground: 'var(--color-buttonMenuBackground)',
|
||||
buttonMenuBackgroundHover: 'var(--color-buttonMenuBackgroundHover)',
|
||||
buttonMenuBorder: 'var(--color-buttonMenuBorder)',
|
||||
buttonMenuSelectedText: 'var(--color-buttonMenuSelectedText)',
|
||||
buttonMenuSelectedTextHover: 'var(--color-buttonMenuSelectedTextHover)',
|
||||
buttonMenuSelectedBackground: 'var(--color-buttonMenuSelectedBackground)',
|
||||
buttonMenuSelectedBackgroundHover:
|
||||
'var(--color-buttonMenuSelectedBackgroundHover)',
|
||||
buttonMenuSelectedBorder: 'var(--color-buttonMenuSelectedBorder)',
|
||||
buttonPrimaryText: 'var(--color-buttonPrimaryText)',
|
||||
buttonPrimaryTextHover: 'var(--color-buttonPrimaryTextHover)',
|
||||
buttonPrimaryBackground: 'var(--color-buttonPrimaryBackground)',
|
||||
buttonPrimaryBackgroundHover: 'var(--color-buttonPrimaryBackgroundHover)',
|
||||
buttonPrimaryBorder: 'var(--color-buttonPrimaryBorder)',
|
||||
buttonPrimaryShadow: 'var(--color-buttonPrimaryShadow)',
|
||||
buttonPrimaryDisabledText: 'var(--color-buttonPrimaryDisabledText)',
|
||||
buttonPrimaryDisabledBackground:
|
||||
'var(--color-buttonPrimaryDisabledBackground)',
|
||||
buttonPrimaryDisabledBorder: 'var(--color-buttonPrimaryDisabledBorder)',
|
||||
buttonNormalText: 'var(--color-buttonNormalText)',
|
||||
buttonNormalTextHover: 'var(--color-buttonNormalTextHover)',
|
||||
buttonNormalBackground: 'var(--color-buttonNormalBackground)',
|
||||
buttonNormalBackgroundHover: 'var(--color-buttonNormalBackgroundHover)',
|
||||
buttonNormalBorder: 'var(--color-buttonNormalBorder)',
|
||||
buttonNormalShadow: 'var(--color-buttonNormalShadow)',
|
||||
buttonNormalSelectedText: 'var(--color-buttonNormalSelectedText)',
|
||||
buttonNormalSelectedBackground: 'var(--color-buttonNormalSelectedBackground)',
|
||||
buttonNormalDisabledText: 'var(--color-buttonNormalDisabledText)',
|
||||
buttonNormalDisabledBackground: 'var(--color-buttonNormalDisabledBackground)',
|
||||
buttonNormalDisabledBorder: 'var(--color-buttonNormalDisabledBorder)',
|
||||
buttonBareText: 'var(--color-buttonBareText)',
|
||||
buttonBareTextHover: 'var(--color-buttonBareTextHover)',
|
||||
buttonBareBackground: 'var(--color-buttonBareBackground)',
|
||||
buttonBareBackgroundHover: 'var(--color-buttonBareBackgroundHover)',
|
||||
buttonBareBackgroundActive: 'var(--color-buttonBareBackgroundActive)',
|
||||
buttonBareDisabledText: 'var(--color-buttonBareDisabledText)',
|
||||
buttonBareDisabledBackground: 'var(--color-buttonBareDisabledBackground)',
|
||||
calendarText: 'var(--color-calendarText)',
|
||||
calendarBackground: 'var(--color-calendarBackground)',
|
||||
calendarItemText: 'var(--color-calendarItemText)',
|
||||
calendarItemBackground: 'var(--color-calendarItemBackground)',
|
||||
calendarSelectedBackground: 'var(--color-calendarSelectedBackground)',
|
||||
noticeBackground: 'var(--color-noticeBackground)',
|
||||
noticeBackgroundLight: 'var(--color-noticeBackgroundLight)',
|
||||
noticeBackgroundDark: 'var(--color-noticeBackgroundDark)',
|
||||
noticeText: 'var(--color-noticeText)',
|
||||
noticeTextLight: 'var(--color-noticeTextLight)',
|
||||
noticeTextDark: 'var(--color-noticeTextDark)',
|
||||
noticeTextMenu: 'var(--color-noticeTextMenu)',
|
||||
noticeTextMenuHover: 'var(--color-noticeTextMenuHover)',
|
||||
noticeBorder: 'var(--color-noticeBorder)',
|
||||
warningBackground: 'var(--color-warningBackground)',
|
||||
warningText: 'var(--color-warningText)',
|
||||
warningTextLight: 'var(--color-warningTextLight)',
|
||||
warningTextDark: 'var(--color-warningTextDark)',
|
||||
warningBorder: 'var(--color-warningBorder)',
|
||||
errorBackground: 'var(--color-errorBackground)',
|
||||
errorText: 'var(--color-errorText)',
|
||||
errorTextDark: 'var(--color-errorTextDark)',
|
||||
errorTextDarker: 'var(--color-errorTextDarker)',
|
||||
errorTextMenu: 'var(--color-errorTextMenu)',
|
||||
errorBorder: 'var(--color-errorBorder)',
|
||||
upcomingBackground: 'var(--color-upcomingBackground)',
|
||||
upcomingText: 'var(--color-upcomingText)',
|
||||
upcomingBorder: 'var(--color-upcomingBorder)',
|
||||
formLabelText: 'var(--color-formLabelText)',
|
||||
formLabelBackground: 'var(--color-formLabelBackground)',
|
||||
formInputBackground: 'var(--color-formInputBackground)',
|
||||
formInputBackgroundSelected: 'var(--color-formInputBackgroundSelected)',
|
||||
formInputBackgroundSelection: 'var(--color-formInputBackgroundSelection)',
|
||||
formInputBorder: 'var(--color-formInputBorder)',
|
||||
formInputTextReadOnlySelection: 'var(--color-formInputTextReadOnlySelection)',
|
||||
formInputBorderSelected: 'var(--color-formInputBorderSelected)',
|
||||
formInputText: 'var(--color-formInputText)',
|
||||
formInputTextSelected: 'var(--color-formInputTextSelected)',
|
||||
formInputTextPlaceholder: 'var(--color-formInputTextPlaceholder)',
|
||||
formInputTextPlaceholderSelected:
|
||||
'var(--color-formInputTextPlaceholderSelected)',
|
||||
formInputTextSelection: 'var(--color-formInputTextSelection)',
|
||||
formInputShadowSelected: 'var(--color-formInputShadowSelected)',
|
||||
formInputTextHighlight: 'var(--color-formInputTextHighlight)',
|
||||
checkboxText: 'var(--color-checkboxText)',
|
||||
checkboxBackgroundSelected: 'var(--color-checkboxBackgroundSelected)',
|
||||
checkboxBorderSelected: 'var(--color-checkboxBorderSelected)',
|
||||
checkboxShadowSelected: 'var(--color-checkboxShadowSelected)',
|
||||
checkboxToggleBackground: 'var(--color-checkboxToggleBackground)',
|
||||
checkboxToggleBackgroundSelected:
|
||||
'var(--color-checkboxToggleBackgroundSelected)',
|
||||
checkboxToggleDisabled: 'var(--color-checkboxToggleDisabled)',
|
||||
pillBackground: 'var(--color-pillBackground)',
|
||||
pillBackgroundLight: 'var(--color-pillBackgroundLight)',
|
||||
pillText: 'var(--color-pillText)',
|
||||
pillTextHighlighted: 'var(--color-pillTextHighlighted)',
|
||||
pillBorder: 'var(--color-pillBorder)',
|
||||
pillBorderDark: 'var(--color-pillBorderDark)',
|
||||
pillBackgroundSelected: 'var(--color-pillBackgroundSelected)',
|
||||
pillTextSelected: 'var(--color-pillTextSelected)',
|
||||
pillBorderSelected: 'var(--color-pillBorderSelected)',
|
||||
pillTextSubdued: 'var(--color-pillTextSubdued)',
|
||||
reportsRed: 'var(--color-reportsRed)',
|
||||
reportsBlue: 'var(--color-reportsBlue)',
|
||||
reportsGreen: 'var(--color-reportsGreen)',
|
||||
reportsGray: 'var(--color-reportsGray)',
|
||||
reportsLabel: 'var(--color-reportsLabel)',
|
||||
reportsInnerLabel: 'var(--color-reportsInnerLabel)',
|
||||
noteTagBackground: 'var(--color-noteTagBackground)',
|
||||
noteTagBackgroundHover: 'var(--color-noteTagBackgroundHover)',
|
||||
noteTagText: 'var(--color-noteTagText)',
|
||||
budgetOtherMonth: 'var(--color-budgetOtherMonth)',
|
||||
budgetCurrentMonth: 'var(--color-budgetCurrentMonth)',
|
||||
budgetHeaderOtherMonth: 'var(--color-budgetHeaderOtherMonth)',
|
||||
budgetHeaderCurrentMonth: 'var(--color-budgetHeaderCurrentMonth)',
|
||||
floatingActionBarBackground: 'var(--color-floatingActionBarBackground)',
|
||||
floatingActionBarBorder: 'var(--color-floatingActionBarBorder)',
|
||||
floatingActionBarText: 'var(--color-floatingActionBarText)',
|
||||
tooltipText: 'var(--color-tooltipText)',
|
||||
tooltipBackground: 'var(--color-tooltipBackground)',
|
||||
tooltipBorder: 'var(--color-tooltipBorder)',
|
||||
calendarCellBackground: 'var(--color-calendarCellBackground)',
|
||||
};
|
||||
@@ -1,35 +0,0 @@
|
||||
enum BreakpointNames {
|
||||
small = 'small',
|
||||
medium = 'medium',
|
||||
wide = 'wide',
|
||||
}
|
||||
|
||||
type NumericBreakpoints = {
|
||||
[key in BreakpointNames]: number;
|
||||
};
|
||||
|
||||
export const breakpoints: NumericBreakpoints = {
|
||||
small: 512,
|
||||
medium: 730,
|
||||
wide: 1100,
|
||||
};
|
||||
|
||||
type BreakpointsPx = {
|
||||
[B in keyof NumericBreakpoints as `breakpoint_${B}`]: string;
|
||||
};
|
||||
|
||||
// Provide the same breakpoints in a form usable by CSS media queries
|
||||
// {
|
||||
// breakpoint_small: '512px',
|
||||
// breakpoint_medium: '740px',
|
||||
// breakpoint_wide: '1100px',
|
||||
// }
|
||||
export const tokens: BreakpointsPx = Object.entries(
|
||||
breakpoints,
|
||||
).reduce<BreakpointsPx>(
|
||||
(acc, [key, val]) => ({
|
||||
...acc,
|
||||
[`breakpoint_${key}`]: `${val}px`,
|
||||
}),
|
||||
{} as BreakpointsPx,
|
||||
);
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
@@ -1,7 +1,7 @@
|
||||
import { type Page } from '@playwright/test';
|
||||
|
||||
import * as monthUtils from 'loot-core/shared/months';
|
||||
import { amountToCurrency, currencyToAmount } from 'loot-core/shared/util';
|
||||
import * as monthUtils from 'loot-core/src/shared/months';
|
||||
|
||||
import { expect, test } from './fixtures';
|
||||
import { ConfigurationPage } from './page-models/configuration-page';
|
||||
@@ -60,9 +60,6 @@ async function setBudgetAverage(
|
||||
await budgetPage.goToPreviousMonth();
|
||||
const spentButton = await budgetPage.getButtonForSpent(categoryName);
|
||||
const spent = await spentButton.textContent();
|
||||
if (!spent) {
|
||||
throw new Error('Failed to get spent amount');
|
||||
}
|
||||
totalSpent += currencyToAmount(spent) ?? 0;
|
||||
}
|
||||
|
||||
@@ -283,10 +280,6 @@ budgetTypes.forEach(budgetType => {
|
||||
|
||||
const lastMonthBudget = await budgetedButton.textContent();
|
||||
|
||||
if (!lastMonthBudget) {
|
||||
throw new Error('Failed to get last month budget');
|
||||
}
|
||||
|
||||
await budgetPage.goToNextMonth();
|
||||
|
||||
await copyLastMonthBudget(budgetPage, categoryName);
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |