diff --git a/.github/scripts/check_guide.py b/.github/scripts/check_guide.py new file mode 100644 index 0000000..1a16e86 --- /dev/null +++ b/.github/scripts/check_guide.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +"""Check the bilingual guide site under `docs/guide/`. + +This is the guide's test. It fails when: + +* an HTML page does not parse (unbalanced or mis-nested tags); +* a relative link or asset (`href`, `src`) points at a file that does not exist; +* a page shows a string in one language but not the other -- every element carrying + `data-lang="en"` must be paired, in the same parent, with one carrying `data-lang="ko"`, + and the reverse; +* visible text sits outside any `data-lang` element (it would show in both languages), unless it + is code, a diagram, a proper name in `NEUTRAL_TEXT`, or inside an element marked `translate="no"`; +* a page loads an external resource other than Google Fonts. + + python3 .github/scripts/check_guide.py # exit status 0 = clean, 1 = findings printed + +Standard library only, so it runs anywhere the repository's tests run. +""" + +from __future__ import annotations + +import sys +from html.parser import HTMLParser +from pathlib import Path +from urllib.parse import urlparse + +REPO = Path(__file__).resolve().parents[2] +GUIDE = REPO / "docs" / "guide" + +VOID = { + "area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "source", + "track", "wbr", "path", "circle", "rect", "line", "polyline", "polygon", "ellipse", "use", + "stop", +} +ALLOWED_EXTERNAL = ("fonts.googleapis.com", "fonts.gstatic.com") +# Links that leave the site on purpose (sibling repositories, the license, the source). +ALLOWED_LINK_HOSTS = ("github.com",) +# Text that reads the same in both languages and may appear without a `data-lang` pair. +NEUTRAL_TEXT = {"FAQ", "pythonx-compose", "GitHub", "Kotlin", "Python", "→", "←", "·"} +# Elements whose text is code, markup, or a diagram rather than prose. +EXEMPT_TAGS = {"code", "pre", "kbd", "svg", "script", "style", "title"} +REQUIRED_PAGES = ( + "index.html", + "getting-started.html", + "concepts.html", + "guide-composables.html", + "guide-modifiers.html", + "guide-manifest.html", + "ecosystem.html", + "status.html", +) + + +class Page(HTMLParser): + def __init__(self, path: Path) -> None: + super().__init__(convert_charrefs=True) + self.path = path + self.stack: list[tuple[str, int]] = [] + self.errors: list[str] = [] + self.refs: list[tuple[str, str, int]] = [] # (attr, value, line) + # Per open element: list of language markers of its direct children. + self.children_langs: list[list[str]] = [[]] + # Per open element: does it (or an ancestor) make its text language-neutral or bilingual? + self.covered: list[bool] = [False] + + def handle_starttag(self, tag, attrs): + line = self.getpos()[0] + attrs = dict(attrs) + for attr in ("href", "src"): + if attrs.get(attr): + self.refs.append((attr, attrs[attr], line)) + lang = attrs.get("data-lang") + if lang is not None: + if lang not in ("en", "ko"): + self.errors.append(f"{line}: data-lang={lang!r} is neither en nor ko") + self.children_langs[-1].append(lang) + if tag in VOID: + return + self.stack.append((tag, line)) + self.children_langs.append([]) + self.covered.append( + self.covered[-1] + or lang is not None + or tag in EXEMPT_TAGS + or attrs.get("translate") == "no" + ) + + def handle_startendtag(self, tag, attrs): + # `` and friends: record refs and language, never push. + line = self.getpos()[0] + attrs = dict(attrs) + for attr in ("href", "src"): + if attrs.get(attr): + self.refs.append((attr, attrs[attr], line)) + lang = attrs.get("data-lang") + if lang is not None: + self.children_langs[-1].append(lang) + + def handle_endtag(self, tag): + line = self.getpos()[0] + if tag in VOID: + return + if not self.stack: + self.errors.append(f"{line}: closes nothing") + return + open_tag, open_line = self.stack.pop() + langs = self.children_langs.pop() + self.covered.pop() + if open_tag != tag: + self.errors.append(f"{line}: closes <{open_tag}> opened on line {open_line}") + en, ko = langs.count("en"), langs.count("ko") + if en != ko: + self.errors.append( + f"{open_line}: <{open_tag}> has {en} English and {ko} Korean children -- " + "a string exists in one language only" + ) + + def handle_data(self, data): + text = data.strip() + if not text or self.covered[-1]: + return + words = [w for w in text.replace("·", " ").split() if any(ch.isalpha() for ch in w)] + if words and text not in NEUTRAL_TEXT: + self.errors.append(f"{self.getpos()[0]}: untranslated text outside data-lang: {text[:60]!r}") + + def close(self): + super().close() + for tag, line in self.stack: + self.errors.append(f"{line}: <{tag}> is never closed") + + +def check_ref(page: Path, attr: str, value: str) -> str | None: + parsed = urlparse(value) + if parsed.scheme in ("http", "https"): + host = parsed.netloc + if attr == "src" or (attr == "href" and value.endswith(".css")): + if not host.endswith(ALLOWED_EXTERNAL): + return f"external resource {value} (only Google Fonts is allowed)" + return None + if host.endswith(ALLOWED_EXTERNAL + ALLOWED_LINK_HOSTS): + return None + return f"external link to an unexpected host: {value}" + if parsed.scheme in ("mailto", "data") or value.startswith("#"): + return None + target = (page.parent / parsed.path).resolve() + if not target.exists(): + return f"{attr}={value!r} does not resolve ({target.relative_to(REPO) if target.is_relative_to(REPO) else target})" + return None + + +def main() -> int: + findings: list[str] = [] + if not GUIDE.is_dir(): + print(f"FAIL: {GUIDE.relative_to(REPO)} does not exist") + return 1 + for name in REQUIRED_PAGES: + if not (GUIDE / name).is_file(): + findings.append(f"{name}: required page is missing") + pages = sorted(GUIDE.rglob("*.html")) + for page in pages: + parser = Page(page) + parser.feed(page.read_text(encoding="utf-8")) + parser.close() + rel = page.relative_to(REPO) + findings += [f"{rel}:{e}" for e in parser.errors] + for attr, value, line in parser.refs: + problem = check_ref(page, attr, value) + if problem: + findings.append(f"{rel}:{line}: {problem}") + for finding in findings: + print(f"FAIL: {finding}") + print(f"{len(pages)} pages checked, {len(findings)} findings") + return 1 if findings else 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/.github/scripts/check_release_version.py b/.github/scripts/check_release_version.py new file mode 100644 index 0000000..4d854a5 --- /dev/null +++ b/.github/scripts/check_release_version.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +"""Fail unless a release tag is `v` + the version in `pyproject.toml`. + + python3 .github/scripts/check_release_version.py "$GITHUB_REF_NAME" # exit 0 = match, 1 = not + +`publish-pypi.yml` runs this before building, so a tag cannot publish a version it does not name. +A full ref (`refs/tags/v0.1.0a1`) is accepted too. Standard library only. +""" + +from __future__ import annotations + +import sys +import tomllib +from pathlib import Path + +REPO = Path(__file__).resolve().parents[2] + + +def main(argv: list[str]) -> int: + if len(argv) != 2: + print("usage: check_release_version.py ", file=sys.stderr) + return 2 + tag = argv[1].removeprefix("refs/tags/") + with open(REPO / "pyproject.toml", "rb") as f: + version = tomllib.load(f)["project"]["version"] + expected = f"v{version}" + if tag != expected: + print(f"error: tag {tag!r} does not match pyproject.toml, which expects {expected!r}.\n" + f"Fix the version in pyproject.toml or tag the right commit.", file=sys.stderr) + return 1 + print(f"ok: tag {tag} matches pyproject.toml version {version}") + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/.github/scripts/release/README.md b/.github/scripts/release/README.md new file mode 100644 index 0000000..9288dc3 --- /dev/null +++ b/.github/scripts/release/README.md @@ -0,0 +1,49 @@ +# Release flow + + develop --push--> release (auto) --PR--> main + +`release` is CI-generated and disposable, not a long-lived branch. It may not exist +between runs, and any existing `release` (e.g. a stale one from an older workflow) is +ignored and overwritten. + +1. Every push to `develop` triggers `.github/workflows/release-sync.yml`, which runs + `.github/scripts/release/sync-release.sh --push`. It rebuilds `release` from scratch as exactly + one commit (`Release: sync from develop `) whose parent is that develop commit and + whose tree is the develop tree minus the files below. This happens even when nothing + is dropped. It is a no-op only if `release` already has that tree and that parent. + The push uses `--force-with-lease` pinned to the remote sha the run observed. +2. The workflow opens (or updates) a pull request `release` -> `main` with the default + `GITHUB_TOKEN`. This needs the repository setting *Actions -> General -> Allow GitHub + Actions to create and approve pull requests*. No PAT is needed; an optional + `RELEASE_PR_TOKEN` secret is used for the PR step when present. +3. Merging that PR is the only way to change `main`. The maintainer merges it after checking + that its source branch is `release`; repository settings alone protect `main` (below). +4. On push to `main`, `pages.yml` deploys `docs/guide/` to GitHub Pages. + +## What is dropped on release + +- every `*.md` at the repository root except `README.md` (including `AGENTS.md`, `PROJECT.md`) +- every `*.md` directly inside `docs/` + +Kept: everything else, including Markdown in `docs//` and nested `README.md` files. +Only Markdown is ever dropped. + +## Local use + + .github/scripts/release/sync-release.sh --dry-run # list paths that would be dropped + .github/scripts/release/sync-release.sh # regenerate local release branch + .github/scripts/release/sync-release.sh --push # also push to origin + .github/scripts/release/test-sync-release.sh # tests (throwaway repo in .tmp/) + +The script uses plumbing and a private index, so your working tree, index and HEAD are untouched. +It refuses to run while `release` is checked out. + +## Protecting main + + .github/scripts/release/protect-main.sh # print what would be applied + .github/scripts/release/protect-main.sh --apply # apply via gh api (needs admin) + +The settings (the maintainer's decision, 2026-10-03): a pull request is required with no +approving review, direct push, force-push and deletion are blocked, the branch is not locked, and +only administrators may merge. No workflow checks the source branch; the maintainer does, when +merging the release PR. diff --git a/.github/scripts/release/protect-main.sh b/.github/scripts/release/protect-main.sh new file mode 100755 index 0000000..4bc6514 --- /dev/null +++ b/.github/scripts/release/protect-main.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Print (default) or apply (--apply) branch protection for main. +# Usage: protect-main.sh [--apply] [--repo OWNER/NAME] [--branch main] +set -eu +APPLY=0; REPO=""; BRANCH=main +while [ $# -gt 0 ]; do + case "$1" in + --apply) APPLY=1; shift ;; + --repo) REPO="$2"; shift 2 ;; + --branch) BRANCH="$2"; shift 2 ;; + *) echo "unknown argument: $1" >&2; exit 2 ;; + esac +done +[ -n "$REPO" ] || REPO="{owner}/{repo}" # gh expands these placeholders from the current repo + +BODY='{ + "required_status_checks": null, + "enforce_admins": false, + "required_pull_request_reviews": {"required_approving_review_count": 0}, + "restrictions": {"users": [], "teams": [], "apps": []}, + "allow_force_pushes": false, + "allow_deletions": false, + "lock_branch": false +}' +CMD="gh api --method PUT repos/$REPO/branches/$BRANCH/protection --input -" + +if [ "$APPLY" -eq 1 ]; then + printf '%s' "$BODY" | gh api --method PUT "repos/$REPO/branches/$BRANCH/protection" --input - + echo "applied protection to $BRANCH" +else + echo "[dry run] would run: $CMD" + echo "$BODY" + echo "Re-run with --apply to apply (needs admin). 'restrictions' with empty lists means only" + echo "administrators may merge; it is accepted for organisation repositories only." +fi diff --git a/.github/scripts/release/sync-release.sh b/.github/scripts/release/sync-release.sh new file mode 100755 index 0000000..26f23d9 --- /dev/null +++ b/.github/scripts/release/sync-release.sh @@ -0,0 +1,115 @@ +#!/usr/bin/env bash +# Regenerate the release branch from a source ref (default: develop). +# release is CI-generated and disposable: exactly one commit on top of the +# source commit, rebuilt every run; existing release branches are ignored. +# +# release tree = source tree minus Markdown files that must not reach main: +# (a) every *.md at the repository root except README.md +# (b) every *.md directly inside docs/ (docs//... is untouched) +# Everything else is kept. Always one generated commit (parent = source); +# no-op only if target already has that tree and that parent. +# Uses plumbing + a private index file: the caller's working tree, index and +# HEAD are never touched. +# +# Usage: sync-release.sh [--source REF] [--target BRANCH] [--push] [--dry-run] +set -eu + +SOURCE=develop +TARGET=release +PUSH=0 +DRY=0 +while [ $# -gt 0 ]; do + case "$1" in + --source) SOURCE="$2"; shift 2 ;; + --target) TARGET="$2"; shift 2 ;; + --push) PUSH=1; shift ;; + --dry-run) DRY=1; shift ;; + -h|--help) sed -n '2,16p' "$0"; exit 0 ;; + *) echo "unknown argument: $1" >&2; exit 2 ;; + esac +done + +die() { echo "sync-release: $*" >&2; exit 1; } + +# Source: local ref, else origin's. +if src_commit="$(git rev-parse -q --verify "$SOURCE^{commit}" 2>/dev/null)"; then : +elif src_commit="$(git rev-parse -q --verify "refs/remotes/origin/$SOURCE^{commit}" 2>/dev/null)"; then : +else die "cannot resolve source ref '$SOURCE'"; fi +short="$(git rev-parse --short=7 "$src_commit")" + +# Paths to drop (NUL-safe list in a file, newline listing for humans). +GITDIR="$(git rev-parse --absolute-git-dir)" +WORK="$GITDIR/sync-release.$$" +mkdir -p "$WORK" +trap 'rm -rf "$WORK"' EXIT + +git ls-tree -r -z --name-only "$src_commit" | while IFS= read -r -d '' p; do + case "$p" in + README.md) ;; + */*) + case "$p" in + docs/*/*) ;; # inside a docs subdirectory: keep + docs/*.md) printf '%s\0' "$p" ;; + esac ;; + *.md) printf '%s\0' "$p" ;; + esac +done > "$WORK/drop.z" + +if [ "$DRY" -eq 1 ]; then + tr '\0' '\n' < "$WORK/drop.z" + exit 0 +fi + +# Filtered tree through a private index. +export GIT_INDEX_FILE="$WORK/index" +git read-tree "$src_commit" +git update-index --force-remove -z --stdin < "$WORK/drop.z" +new_tree="$(git write-tree)" +unset GIT_INDEX_FILE + +# Refuse to move a branch that is checked out in this worktree. +if [ "$(git symbolic-ref -q HEAD || true)" = "refs/heads/$TARGET" ]; then + die "'$TARGET' is checked out here; switch away first" +fi + +# release is a generated, disposable branch: always exactly one commit on top of +# the source commit. Any existing local/remote release (possibly stale, from an +# older workflow) is NOT used as a base; it is only compared for the no-op case. +old_local="" +old_local="$(git rev-parse -q --verify "refs/heads/$TARGET^{commit}" 2>/dev/null)" || old_local="" + +# main may hold commits develop lacks (earlier release merges, hotfixes). Then +# release also takes main as a second parent: the tree stays the filtered source +# tree, and main can always fast-forward to release -- the PR never conflicts. +main_commit="" +for ref in refs/remotes/origin/main refs/heads/main; do + main_commit="$(git rev-parse -q --verify "$ref^{commit}" 2>/dev/null)" && break + main_commit="" +done +parents="$src_commit" +if [ -n "$main_commit" ] && ! git merge-base --is-ancestor "$main_commit" "$src_commit"; then + parents="$src_commit $main_commit" +fi + +# No-op only if the existing target has exactly this tree AND these parents. +if [ -n "$old_local" ] \ + && [ "$(git rev-parse "$old_local^{tree}")" = "$new_tree" ] \ + && [ "$(git rev-list --parents -n 1 "$old_local" | cut -d' ' -f2-)" = "$parents" ]; then + echo "no changes: $TARGET already regenerated from $short" + new_commit="$old_local" +else + pargs=""; for p in $parents; do pargs="$pargs -p $p"; done + new_commit="$(git commit-tree "$new_tree" $pargs -m "Release: sync from $SOURCE $short")" + git update-ref "refs/heads/$TARGET" "$new_commit" + echo "$TARGET -> $(git rev-parse --short "$new_commit") (parent $short)" +fi + +if [ "$PUSH" -eq 1 ]; then + # release is rewritten from scratch on every run, so a plain push would be + # rejected as non-fast-forward. --force-with-lease pinned to the remote sha we + # observed overwrites only that exact state: if someone else moved release in + # the meantime we fail instead of clobbering. Without a remote release there + # is nothing to lose, so an empty expectation (must not exist) is used. + old_remote="$(git ls-remote origin "refs/heads/$TARGET" | cut -f1)" + git push --force-with-lease="refs/heads/$TARGET:$old_remote" origin "$new_commit:refs/heads/$TARGET" +fi diff --git a/.github/scripts/release/test-sync-release.sh b/.github/scripts/release/test-sync-release.sh new file mode 100755 index 0000000..fb6f028 --- /dev/null +++ b/.github/scripts/release/test-sync-release.sh @@ -0,0 +1,165 @@ +#!/usr/bin/env bash +# Tests for sync-release.sh. Builds a throwaway repo under /.tmp/. +set -u +HERE="$(cd "$(dirname "$0")" && pwd)" +ROOT="$(cd "$HERE/../../.." && pwd)" +SYNC="$HERE/sync-release.sh" +SCRATCH="$ROOT/.tmp/release-sync-test.$$" +FAILS=0; PASSES=0 +cleanup() { rm -rf "$SCRATCH"; } +trap cleanup EXIT +mkdir -p "$SCRATCH" + +ok() { PASSES=$((PASSES+1)); echo "ok - $1"; } +fail() { FAILS=$((FAILS+1)); echo "FAIL - $1"; } +check() { # desc, command... + local d="$1"; shift + if "$@" >/dev/null 2>&1; then ok "$d"; else fail "$d"; fi +} +in_rel() { git cat-file -e "release:$1" 2>/dev/null; } + +R="$SCRATCH/repo" +mkdir -p "$R" && cd "$R" || exit 1 +git init -q -b develop . +git config user.name t; git config user.email t@example.com +mkdir -p docs/guide docs/sub sub/deeper +for f in README.md PROJECT.md AGENTS.md ROADMAP.md docs/a.md docs/b.md \ + docs/sub/c.md docs/guide/index.html docs/x.png sub/README.md \ + sub/deeper/notes.md build.gradle.kts LICENSE; do + echo "$f" > "$f" +done +git add -A && git commit -q -m init +echo dirty > README.md # unstaged change +echo staged > STAGED.txt; git add STAGED.txt +before_status="$(git status --porcelain)" +before_head="$(git rev-parse HEAD)" + +if [ ! -x "$SYNC" ] && [ ! -f "$SYNC" ]; then + fail "sync-release.sh exists"; echo "$PASSES passed, $FAILS failed"; exit 1 +fi + +# A stale release (unrelated history, old content), both local and as a +# remote-tracking ref, must be ignored and overwritten. +stale_tree="$(git hash-object -w -t tree /dev/null)" +stale="$(git commit-tree "$stale_tree" -m "stale 2025 release")" +git update-ref refs/heads/release "$stale" +git update-ref refs/remotes/origin/release "$stale" + +out="$(bash "$SYNC" --dry-run 2>&1)"; rc=$? +check "dry-run exits 0" test $rc -eq 0 +echo "$out" | grep -qx "ROADMAP.md" && ok "dry-run lists ROADMAP.md" || fail "dry-run lists ROADMAP.md" +check "dry-run leaves stale release alone" test "$(git rev-parse refs/heads/release)" = "$stale" + +bash "$SYNC" >"$SCRATCH/run1.log" 2>&1; rc=$? +check "first run exits 0 (release created)" test $rc -eq 0 +check "release branch exists" git rev-parse -q --verify refs/heads/release + +for p in README.md docs/sub/c.md docs/guide/index.html docs/x.png sub/README.md \ + sub/deeper/notes.md build.gradle.kts LICENSE; do + check "kept: $p" in_rel "$p" +done +for p in PROJECT.md AGENTS.md ROADMAP.md docs/a.md docs/b.md; do + check "dropped: $p" bash -c "! git cat-file -e release:$p" +done +check "release README is the committed one" test "$(git show release:README.md)" = "README.md" + +check "caller HEAD unchanged" test "$(git rev-parse HEAD)" = "$before_head" +check "caller branch still develop" test "$(git symbolic-ref --short HEAD)" = develop +check "caller status unchanged" test "$(git status --porcelain)" = "$before_status" +check "caller working file kept" test "$(cat ROADMAP.md)" = "ROADMAP.md" + +check "stale release overwritten: parent is source" test "$(git rev-parse release^)" = "$before_head" +check "stale release not an ancestor" bash -c '! git merge-base --is-ancestor '"$stale"' release' +check "exactly one commit over source" test "$(git rev-list --count "$before_head..release")" = 1 +check "message format" bash -c 'git log -1 --format=%s release | grep -Eq "^Release: sync from develop [0-9a-f]{7,}$"' + +h1="$(git rev-parse release)" +bash "$SYNC" >"$SCRATCH/run2.log" 2>&1 +check "second run is a no-op" test "$(git rev-parse release)" = "$h1" + +# New develop commit -> release regenerated: still one commit on top of the NEW source +echo more >> build.gradle.kts; echo "new" > NEW.md +git add build.gradle.kts NEW.md +git commit -q -m "more"; git reset -q # leave index sane +d2="$(git rev-parse develop)" +bash "$SYNC" >"$SCRATCH/run3.log" 2>&1 +check "regenerated: parent is new source" test "$(git rev-parse release^)" = "$d2" +check "regenerated: one commit over source" test "$(git rev-list --count "$d2..release")" = 1 +check "regenerated: old release not an ancestor" bash -c '! git merge-base --is-ancestor '"$h1"' release' +check "new root md dropped" bash -c '! git cat-file -e release:NEW.md' +check "new change propagated" bash -c 'git show release:build.gradle.kts | grep -q more' +h3="$(git rev-parse release)" +bash "$SYNC" >"$SCRATCH/run3b.log" 2>&1 +check "no-op again after regeneration" test "$(git rev-parse release)" = "$h3" + +# Docs-only md change -> new source commit, so release is regenerated (parent moves) +echo edit >> ROADMAP.md; git add ROADMAP.md; git commit -q -m "docs only" +d3="$(git rev-parse develop)" +bash "$SYNC" >"$SCRATCH/run4.log" 2>&1 +check "dropped-file-only change still regenerates onto new source" test "$(git rev-parse release^)" = "$d3" +check "tree unchanged by dropped-only change" test "$(git rev-parse release^{tree})" = "$(git rev-parse "$h3^{tree}")" + +# Nothing to drop: still one distinct generated commit on top of source +R2="$SCRATCH/repo2"; git init -q -b develop "$R2" +( cd "$R2" && git config user.name t && git config user.email t@example.com \ + && echo r > README.md && echo k > f.txt && git add -A && git commit -q -m i \ + && s2="$(git rev-parse HEAD)" && bash "$SYNC" >/dev/null 2>&1 \ + && test "$(git rev-parse release^)" = "$s2" && test "$(git rev-parse release)" != "$s2" \ + && test "$(git rev-parse release^{tree})" = "$(git rev-parse "$s2^{tree}")" ) \ + && ok "nothing dropped: still one generated commit on top of source" \ + || fail "nothing dropped: still one generated commit on top of source" + +# Created when missing +git branch -D release -q +bash "$SYNC" >"$SCRATCH/run5.log" 2>&1 +check "created when missing, parent is source" test "$(git rev-parse release^)" = "$d3" + +check "caller HEAD unchanged at end" test "$(git rev-parse HEAD)" = "$d3" + +# --push: creates remote release, then overwrites it after a new source commit +git init -q --bare "$SCRATCH/remote.git" +git remote add origin "$SCRATCH/remote.git" +git branch -D release -q 2>/dev/null +bash "$SYNC" --push >"$SCRATCH/push1.log" 2>&1 +check "push creates remote release" test "$(git --git-dir="$SCRATCH/remote.git" rev-parse refs/heads/release)" = "$(git rev-parse release)" +echo again >> LICENSE; git add LICENSE; git commit -q -m again; git reset -q +bash "$SYNC" --push >"$SCRATCH/push2.log" 2>&1 +check "push force-overwrites regenerated release" test "$(git --git-dir="$SCRATCH/remote.git" rev-parse refs/heads/release)" = "$(git rev-parse release)" +git push -q -f origin "$stale:refs/heads/release" 2>/dev/null +git update-ref refs/remotes/origin/release "$stale" +bash "$SYNC" --push >"$SCRATCH/push3.log" 2>&1 +check "push overwrites stale remote release" test "$(git --git-dir="$SCRATCH/remote.git" rev-parse refs/heads/release)" = "$(git rev-parse release)" + +# main has diverged from develop (a commit main has and develop lacks, with a +# conflicting edit): release must still fast-forward main, keep develop's tree. +git branch -D release -q 2>/dev/null +base="$(git rev-parse HEAD~1)" +git checkout -q -b main "$base" +echo "main-only edit" > LICENSE; git add LICENSE; git commit -q -m "main-only" +main_tip="$(git rev-parse HEAD)" +git checkout -q develop +dev_tip="$(git rev-parse HEAD)" +bash "$SYNC" >"$SCRATCH/main1.log" 2>&1 +check "diverged main: first parent is source" test "$(git rev-parse release^1)" = "$dev_tip" +check "diverged main: second parent is main" test "$(git rev-parse -q --verify release^2)" = "$main_tip" +check "diverged main: main fast-forwards to release" git merge-base --is-ancestor "$main_tip" release +check "diverged main: tree is develop's, not main's" test "$(git show release:LICENSE)" = "$(git show develop:LICENSE)" +bash "$SYNC" >"$SCRATCH/main2.log" 2>&1 +h_main="$(git rev-parse release)" +bash "$SYNC" >"$SCRATCH/main3.log" 2>&1 +check "diverged main: repeat run is a no-op" test "$(git rev-parse release)" = "$h_main" +# once main is an ancestor of develop, no second parent is added +git branch -f main "$base" +git branch -D release -q +bash "$SYNC" >"$SCRATCH/main4.log" 2>&1 +check "main behind develop: single parent" bash -c '! git rev-parse -q --verify release^2 >/dev/null' +git branch -D main -q + +# Refuses when target is checked out +git checkout -q release 2>/dev/null +bash "$SYNC" >/dev/null 2>&1; rc=$? +check "refuses when release is checked out" test $rc -ne 0 +git checkout -q develop + +echo "$PASSES passed, $FAILS failed" +[ "$FAILS" -eq 0 ] diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..f8cb97f --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,30 @@ +name: Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/checkout@v4 + - uses: actions/configure-pages@v5 + - uses: actions/upload-pages-artifact@v3 + with: + path: docs/guide + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml new file mode 100644 index 0000000..7e97030 --- /dev/null +++ b/.github/workflows/publish-pypi.yml @@ -0,0 +1,59 @@ +name: Publish to PyPI + +# Publishing a GitHub Release releases its tag's commit. A version cannot be uploaded to PyPI +# twice, so publishing is a deliberate step: a Release records the tag and its notes together, +# where a `v*` tag trigger would fire on a stray `git push --tags`. The Release's tag must be `v` + +# the version in pyproject.toml. The upload uses PyPI trusted publishing: no token is stored +# anywhere; PyPI trusts this workflow and the `pypi` environment, whose deployment policy allows +# `v*` tags only (a Release runs on its tag's ref). +on: + release: + types: [published] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 1 + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + - run: python -m pip install build twine + - name: Check the Release's tag against pyproject.toml + env: + RELEASE_TAG: ${{ github.event.release.tag_name }} + run: python .github/scripts/check_release_version.py "$RELEASE_TAG" + - name: Build the sdist and the wheel + run: python -m build + - run: twine check dist/* + # Importing needs no binder: names resolve lazily, on first use. + - name: Smoke-install the wheel in a fresh venv + run: | + python -m venv .smoke + .smoke/bin/pip install dist/*.whl + .smoke/bin/python -c "import pythonx.compose, pythonx.compose.ui, pythonx.compose.material3; import importlib.resources as r; assert r.files('pythonx.compose').joinpath('pythonx-map.toml').is_file()" + - uses: actions/upload-artifact@v4 + with: + name: dist + path: dist/ + if-no-files-found: error + + publish: + needs: build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/pythonx-compose + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v4 + with: + name: dist + path: dist/ + - uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/release-sync.yml b/.github/workflows/release-sync.yml new file mode 100644 index 0000000..8914610 --- /dev/null +++ b/.github/workflows/release-sync.yml @@ -0,0 +1,52 @@ +name: Release sync + +# `release` is generated here, not maintained: every push to develop rebuilds it +# as one commit on top of that develop commit (develop minus the Markdown files +# that must not reach main), force-pushes it, and keeps one release -> main PR open. +on: + push: + branches: [develop] + +permissions: + contents: write + pull-requests: write + +concurrency: + group: release-sync + cancel-in-progress: false + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Sync release branch + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + # Not used as a base (release is regenerated); the script reads the + # remote sha itself for --force-with-lease. + bash .github/scripts/release/sync-release.sh --source "${GITHUB_SHA}" --push + + - name: Open or update PR release -> main + env: + # Needs "Allow GitHub Actions to create and approve pull requests" in the + # repository's Actions settings. RELEASE_PR_TOKEN is optional. + GH_TOKEN: ${{ secrets.RELEASE_PR_TOKEN || github.token }} + run: | + set -eu + if ! git rev-parse -q --verify refs/heads/release >/dev/null; then exit 0; fi + if [ "$(git rev-parse release^{tree})" = "$(git rev-parse origin/main^{tree} 2>/dev/null || true)" ]; then + echo "release already equals main; nothing to PR"; exit 0 + fi + title="Release: merge release into main" + body="Automated sync of \`develop\` (${GITHUB_SHA::7}) into \`release\`. Markdown outside README.md and docs/ subfolders is removed by .github/scripts/release/sync-release.sh." + existing="$(gh pr list --head release --base main --state open --json number --jq '.[0].number // empty')" + if [ -n "$existing" ]; then + gh pr edit "$existing" --title "$title" --body "$body" + else + gh pr create --head release --base main --title "$title" --body "$body" + fi diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..da3f22d --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,90 @@ +name: Tests + +# The suite runs twice: without the binder checkout (its tests skip) and with +# python-multiplatform develop beside it. The tests only read three Kotlin +# source files from it, so no JVM or Gradle is needed. +on: + pull_request: + branches: [develop] + push: + branches: ['feat/**'] + workflow_dispatch: + # Daily against python-multiplatform develop as it is that day: the binder's contract moves under + # this package without a pull request here, and #41 found out only at the next PR. + schedule: + - cron: '17 3 * * *' + +permissions: + contents: read + +concurrency: + group: test-${{ github.ref }} + cancel-in-progress: true + +jobs: + no-binder: + runs-on: ubuntu-latest + env: + # A path that does not exist, so the binder tests skip. + PYTHONMULTIPLATFORM_HOME: /nonexistent + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 1 + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + - run: pip install pytest mypy setuptools wheel + - name: Run the suite + run: python -m pytest tests -q -rs + + with-binder: + runs-on: ubuntu-latest + env: + # The two repositories side by side, as on a developer machine. The binder is not checked out + # inside this one: tests/test_wheel.py copies this repository to build the wheel. + PYTHONMULTIPLATFORM_HOME: ${{ github.workspace }}/python-multiplatform + defaults: + run: + working-directory: pythonx-compose + steps: + - uses: actions/checkout@v4 + with: + path: pythonx-compose + fetch-depth: 1 + - uses: actions/checkout@v4 + with: + repository: thisisthepy/python-multiplatform + ref: develop + path: python-multiplatform + fetch-depth: 1 + - uses: actions/setup-python@v5 + with: + python-version: '3.13' + - run: pip install pytest mypy setuptools wheel + - name: Run the suite + run: python -m pytest tests -q -rs + + # A failed daily run opens one issue (or comments on the open one) so a binder change that breaks + # this package is seen without anyone watching the Actions tab. + report-scheduled-failure: + needs: [no-binder, with-binder] + if: failure() && github.event_name == 'schedule' + runs-on: ubuntu-latest + permissions: + issues: write + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + steps: + - name: Open or update the tracking issue + run: | + title="Daily tests fail against python-multiplatform develop" + number=$(gh issue list --state open --search "in:title \"$title\"" --json number --jq '.[0].number') + body="The scheduled run failed: $RUN_URL" + if [ -n "$number" ]; then + gh issue comment "$number" --body "$body" + else + gh issue create --title "$title" --body "$body" + fi diff --git a/.gitignore b/.gitignore index 2dc53ca..df86cf4 100644 --- a/.gitignore +++ b/.gitignore @@ -158,3 +158,12 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. .idea/ +.DS_Store +__pycache__/ + +# The specification notebook is the user's working file, not a repository artefact. +UI.ipynb + +# Agent workspace (AGENTS.md rule 2): worktrees and scratch files stay inside the repository. +.worktrees/ +.tmp/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 0bb76e1..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "pythonx/compose/native"] - path = pythonx/compose/native - url = https://github.com/thisisthepy/swing-graalvm-demo.git diff --git a/README.md b/README.md index 0b5e3c1..a178167 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,203 @@ -# pythonx - pycomposeui +English | [한국어](https://github.com/thisisthepy/pythonx-compose/blob/main/docs/locale/README_ko.md) -> pythonx is a python extension for kotlin integration +
-### Description +# pythonx-compose -Python Wrapper for Kotlin Compose Multiplatform. +**Write Compose user interfaces in Python — with Compose's own widgets, spelled the Python way.** +[![License: MIT](https://img.shields.io/badge/license-MIT-7c4dff.svg)](https://github.com/thisisthepy/pythonx-compose/blob/main/LICENSE) +[![Python](https://img.shields.io/badge/python-3.11%2B-7c4dff.svg)](https://github.com/thisisthepy/pythonx-compose/blob/main/pyproject.toml) +[![pip](https://img.shields.io/badge/pip-pythonx--compose-7c4dff.svg)](https://github.com/thisisthepy/pythonx-compose/blob/main/pyproject.toml) +[![Status](https://img.shields.io/badge/status-pre--alpha-lightgrey.svg)](#-status) -#### Maintainer -| Name | Detailed Part | Period | -|--------------------------------------------|---------------------|------------| -| [@b-re-w](https://github.com/b-re-w) | Composable Runtime | 2023 ~ now | -| [@rnoro5122](https://github.com/rnoro5122) | Material3 | 2024 ~ now | +[Guide](https://thisisthepy.github.io/pythonx-compose/) · [Getting started](https://thisisthepy.github.io/pythonx-compose/getting-started.html) · [Concepts](https://thisisthepy.github.io/pythonx-compose/concepts.html) · [Status](https://thisisthepy.github.io/pythonx-compose/status.html) +
+--- -### Template ToDo list -- [x] Composable Runtime -- [x] Material3 Wrapper +## Why +Jetpack Compose and Compose Multiplatform are a superb way to build UI — if you write Kotlin. +`pythonx-compose` is for people who write Python. It does not reimplement Compose and it does not +invent a new widget set: it takes the real `androidx.compose.*` API, which +[python-multiplatform](https://github.com/thisisthepy/python-multiplatform) exposes to Python under +its Kotlin names, and restructures it into a Pythonic package, `pythonx.compose`. -___ +```python +from pythonx.compose.runtime import Composable +from pythonx.compose.material3 import Text, Button -## Integration +@Composable +def Greeting(): + Button(on_click=lambda: print("hi"), content=lambda: Text("Hello from Python")) +``` ---- +These names resolve today, by one rule, inside an app that embeds the binder; per-widget render +proofs are still pending. See [Status](#-status). + +## ✨ Principles + +- **The original API, Pythonic names.** Every parameter is Compose's own parameter, in + `snake_case`: `onClick` → `on_click`, `horizontalAlignment` → `horizontal_alignment`. Upper-case + names (types, objects, composables) keep their Kotlin spelling; every other name is `snake_case` + only (`fillMaxWidth` → `fill_max_width`, `toURLString` → `to_url_string`), and an explicit + overload keeps its suffix (`padding__Dp`). +- **Extension functions are methods.** `Modifier.padding(16).size(24).fill_max_width()` chains + exactly as it does in Kotlin. Keyword arguments to such a method are `snake_case` + too (`m.padding(padding_values=...)`), as they are on the module function + `padding(m, padding_values=...)`; Kotlin's own spelling still works at run time, and the type + stubs offer only the Pythonic one. +- **Kotlin objects are namespaces.** `Alignment.Center` and `Arrangement.End` are read without + parentheses; functions inside them are `snake_case`: `Arrangement.spaced_by(8)`. Constants can + also be reached grouped by their declared type, as the notebook writes them: + `Alignment.Horizontal.End` is `Alignment.End`. +- **`@Composable` stays.** Screens are decorated Python functions. +- **A real package.** `pythonx/` is ordinary Python source that imports `androidx.compose.*` and + reshapes it. The binder never renames anything — renaming is this package's job. +- **One manifest.** [`pythonx-map.toml`](https://github.com/thisisthepy/pythonx-compose/blob/main/pythonx/compose/pythonx-map.toml) says which `pythonx.compose.*` module + stands for which Kotlin package. It lives inside the package and ships in the wheel. The runtime + and the `.pyi` generator read the same file, so what your editor completes is what the interpreter + resolves. + +## 🧩 Architecture at a glance + +```mermaid +flowchart LR + app["Your Python UI
@Composable def Screen()"] --> px["pythonx.compose
(this package, real Python)"] + px --> ax["androidx.compose.*
Kotlin names, exposed by python-multiplatform"] + ax --> compose["Jetpack / Compose Multiplatform"] + map["pythonx-map.toml"] -.-> px + map -.-> pyi[".pyi stubs
(in the wheel)"] +``` -## Usage -```python -from pycomposeui.runtime import Composable, EmptyComposable, remember_saveable -from pycomposeui.material3 import Text, Column, Row, Button -from pycomposeui.ui import modifier, Alignment +| Python module | Kotlin package | +|---|---| +| `pythonx.compose.runtime` | `androidx.compose.runtime` | +| `pythonx.compose.ui` | `androidx.compose.ui` | +| `pythonx.compose.layout` | `androidx.compose.foundation.layout` | +| `pythonx.compose.material3` | `androidx.compose.material3` | +Each module is a real file whose `__init__.py` calls one re-export rule; names resolve on first use. +`Column`, `Row` and `Spacer` are importable from `pythonx.compose.material3` as well as +`pythonx.compose.layout`, as the notebook writes them (the manifest's `[aliases]`). -@Composable -def UiTestCase(text: str = "UiTestCase"): - """ Simple way to create a Composable """ - Text(text) +## 🚀 Quick start +> [!NOTE] +> `pythonx-compose` is **pre-alpha**. The first alpha, `0.1.0a1`, is released to PyPI when the +> maintainer tags it; a pre-release needs `pip install --pre pythonx-compose`. -@Composable -class UiTest: - """ Class-based Composable """ - def compose(self, content: Composable = EmptyComposable): - Column(modifier, content=lambda: { - UiTestCase(text="UiTestCase in UiTest"), - content() - }) +From a clone, to run the tests: + +```bash +git clone https://github.com/thisisthepy/pythonx-compose +cd pythonx-compose +python3 -m pip install pytest # inside a virtual environment +python3 -m pytest tests -q +``` +What runs today, from the repository root: -@Composable -class BasicText: - """ Class-based Composable 2 """ - @classmethod - def compose(cls, text: str = "BasicText"): - Text(text) +```python +from pythonx.compose.runtime import Composable +@Composable # an identity decorator: the function stays a plain function +def Screen(): + """A screen.""" + return "drawn" -@Composable -class RichText(Composable): - """ Inheritance-based Composable """ - @staticmethod - def compose(content: Composable = EmptyComposable): - Column(modifier, content=Composable(lambda: { - Text("Basic Text inside of Rich Text"), - Row(lambda: { # Unlike Kotlin Compose, pycompose does not require Composable functions as content parameters - Text("Row Left Side "), - Text("Row Right Side") - }), - content() - })) +assert Screen() == "drawn" and Screen.__name__ == "Screen" +``` +```python +import tomllib # the manifest: the one place the mapping is written down + +with open("pythonx/compose/pythonx-map.toml", "rb") as f: + manifest = tomllib.load(f) + +manifest["modules"]["pythonx.compose.layout"] +# 'androidx.compose.foundation.layout' +manifest["value-classes"]["raw-primitive-allowed"] +# ['androidx.compose.ui.unit.Dp'] -> padding(16) means padding(16.dp) ``` + +```python +from pythonx.compose._reexport import python_name # the naming rule, no binder needed + +python_name("fillMaxWidth") # 'fill_max_width' +python_name("toURLString") # 'to_url_string' +python_name("Modifier") # 'Modifier' +``` + +Reading a Compose name such as `pythonx.compose.material3.Text` needs the binder, which the Kotlin +host installs; outside an app it raises a `RuntimeError` saying so. + +The tests that drive a `Modifier` chain and overload dispatch read the binder's adaptation layer +from a sibling [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) checkout +(or `PYTHONMULTIPLATFORM_HOME`); without one they are skipped. + +## 📦 Installation + +Distributed as the pip package **`pythonx-compose`** (Python 3.11 or later), providing the import +package `pythonx.compose`, with the manifest inside the wheel, and typed: `.pyi` stubs generated from +real Compose 1.11.1 and `py.typed` ship with it. It runs inside an app that embeds CPython +through [python-multiplatform](https://github.com/thisisthepy/python-multiplatform); it is not a +standalone desktop toolkit. + +## 🧪 Status + +| Area | State | +|---|---| +| Mapping manifest `pythonx-map.toml` | ✅ implemented and tested | +| `@Composable` decorator | ✅ implemented and tested | +| `pythonx` as a real on-disk package re-exporting `androidx.compose.*` by one rule | ✅ implemented and tested | +| `Modifier` chains with snake_case methods, overload dispatch, `Dp` as a number | ✅ implemented and tested against the binder's layer | +| `Column`, `Row`, `Spacer` from `material3` as well as `layout` | ✅ implemented and tested | +| Method keyword arguments in `snake_case` | ✅ implemented and tested — module functions and methods (methods need python-multiplatform's `describe_member`) | +| The empty `Modifier` | 🟡 partial — `Modifier.padding(16)` from the class needs an app-supplied factory against real Compose | +| `Alignment` / `Arrangement` | ✅ implemented and tested — `Alignment.Center`, `Arrangement.spaced_by(8)`, and grouped `Alignment.Horizontal.End` beside `Alignment.End` | +| Material 3 widgets (`Text`, `Button`, `Card`, `TextField`, …) | 🟡 partial — re-exported by rule; render proofs per widget pending (#9) | +| Type stubs (`.pyi`) from real Compose 1.11.1, `py.typed` | ✅ implemented and checked with mypy; many types are still `Any` (#12) | +| Distribution (`pythonx-compose`) | 🟡 partial — the wheel carries the manifest, the re-export rule, the stubs and `py.typed` | +| Declared app root (`@app`) and Pythonic state (`state`), no update call | 🟡 partial — binder path tested against a fake host shaped after python-multiplatform #38; real Compose is the E2E module (#11, #19); numbers and strings round-trip through `state` | +| `TextField(state=...)` with `TextFieldState` (`pythonx.compose.foundation.text.input`) | 🟡 partial — tested against a fake host shaped after python-multiplatform #73; the input-method (IME) composing proof is python-multiplatform E2E #26 (#10) | +| `DefaultIcons` (`Icons.Default`), written `DefaultIcons.Add` | 🟡 partial — tested against a fake host shaped after python-multiplatform #37/#38; `Icon(DefaultIcons.Add, …)` is drawn in python-multiplatform's render test | +| Colour schemes | ⏳ planned | +| `remember_saveable`, coroutine scopes | ⏳ planned | + +The full list is on the guide's [Status page](https://thisisthepy.github.io/pythonx-compose/status.html). + +## 📖 Documentation + +- **Guide** — [`docs/guide/`](https://thisisthepy.github.io/pythonx-compose/), bilingual (English / 한국어) +- **Korean README** — [`docs/locale/README_ko.md`](https://github.com/thisisthepy/pythonx-compose/blob/main/docs/locale/README_ko.md) + +## 🔌 Ecosystem + +| Repository | Role | +|---|---| +| [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) | The binder: CPython embedded in Kotlin Multiplatform, exposing Kotlin to Python under Kotlin names | +| **pythonx-compose** | Compose, restructured for Python — this repository | +| [toolchain](https://github.com/thisisthepy/toolchain) | Gradle build plugin for Python Multiplatform apps | +| [pypackpack](https://github.com/thisisthepy/pypackpack) | Distributing Python projects across platforms | +| [torchnative](https://github.com/thisisthepy/torchnative) | Run the real PyTorch ecosystem on device | +| [Gemstone](https://github.com/LogitAI/Gemstone) | A Kotlin Multiplatform AI app built alongside the stack | + +## 🤝 Contributing + +Development is intent-first and test-first: a change starts as a specification change, then a +failing test, then code. The [guide](https://thisisthepy.github.io/pythonx-compose/status.html) lists what is open and where help is +useful. Please open an issue before large changes. + +## Maintainers + +| Name | Area | Since | +|---|---|---| +| [@b-re-w](https://github.com/b-re-w) | Composable runtime | 2023 | +| [@rnoro5122](https://github.com/rnoro5122) | Material 3 | 2024 | + +## License + +[MIT](https://github.com/thisisthepy/pythonx-compose/blob/main/LICENSE) © 2023–2024 BREW (b-re-w), Jong-uk Lee (rnoro5122) diff --git a/pythonx/compose/material3/bottom_app_bar.py b/docs/guide/.nojekyll similarity index 100% rename from pythonx/compose/material3/bottom_app_bar.py rename to docs/guide/.nojekyll diff --git a/docs/guide/assets/site.js b/docs/guide/assets/site.js new file mode 100644 index 0000000..65dfef8 --- /dev/null +++ b/docs/guide/assets/site.js @@ -0,0 +1,46 @@ +/* pythonx-compose guide: language and theme toggles. + * The initial language and theme are applied by a tiny inline script in each page's + * (so nothing flashes); this file wires the buttons and keeps the document title in step. */ +(function () { + "use strict"; + var root = document.documentElement; + + function load(key) { try { return window.localStorage.getItem(key); } catch (e) { return null; } } + function save(key, value) { try { window.localStorage.setItem(key, value); } catch (e) { /* private mode */ } } + + function syncTitle() { + var body = document.body; + var title = body && body.getAttribute("data-title-" + root.lang); + if (title) document.title = title + " · pythonx-compose"; + } + + function setLang(lang) { + root.lang = lang; + save("pxc-lang", lang); + syncTitle(); + } + + function systemDark() { + return !!(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches); + } + + function setTheme(theme) { + root.setAttribute("data-theme", theme); + save("pxc-theme", theme); + } + + document.addEventListener("DOMContentLoaded", function () { + syncTitle(); + var langButton = document.getElementById("lang-toggle"); + if (langButton) { + langButton.addEventListener("click", function () { setLang(root.lang === "ko" ? "en" : "ko"); }); + } + var themeButton = document.getElementById("theme-toggle"); + if (themeButton) { + themeButton.addEventListener("click", function () { + var current = root.getAttribute("data-theme") || (systemDark() ? "dark" : "light"); + setTheme(current === "dark" ? "light" : "dark"); + }); + } + }); +})(); diff --git a/docs/guide/assets/style.css b/docs/guide/assets/style.css new file mode 100644 index 0000000..932d708 --- /dev/null +++ b/docs/guide/assets/style.css @@ -0,0 +1,179 @@ +/* pythonx-compose guide — shared thisisthepy family tokens, accent #7c4dff. */ +:root { + --bg: #fbfbfa; --fg: #16181d; --muted: #5b6270; --line: #e6e6e3; --code-bg: #f3f3f1; + --radius: 10px; --maxw: 72rem; + --font-sans: "Inter", "IBM Plex Sans KR", system-ui, sans-serif; + --font-mono: "JetBrains Mono", ui-monospace, monospace; + --accent: #7c4dff; --accent-ink: #5b2fe0; --accent-soft: rgba(124, 77, 255, 0.09); + --ok: #0f9d76; --partial: #b7791f; --planned: #5b6270; + color-scheme: light; +} +@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { + --bg: #0f1115; --fg: #e8e9ec; --muted: #9aa1ad; --line: #252a33; --code-bg: #161a21; + --accent: #a68bff; --accent-ink: #c2b1ff; --accent-soft: rgba(166, 139, 255, 0.12); + --ok: #3cc89c; --partial: #e0a84a; --planned: #9aa1ad; + color-scheme: dark; } } +:root[data-theme="dark"] { + --bg: #0f1115; --fg: #e8e9ec; --muted: #9aa1ad; --line: #252a33; --code-bg: #161a21; + --accent: #a68bff; --accent-ink: #c2b1ff; --accent-soft: rgba(166, 139, 255, 0.12); + --ok: #3cc89c; --partial: #e0a84a; --planned: #9aa1ad; + color-scheme: dark; +} + +/* Language switching: only the active language is shown. */ +html[lang="en"] [data-lang="ko"], html[lang="ko"] [data-lang="en"] { display: none !important; } + +*, *::before, *::after { box-sizing: border-box; } +html { -webkit-text-size-adjust: 100%; } +body { + margin: 0; background: var(--bg); color: var(--fg); + font-family: var(--font-sans); font-size: 16.5px; line-height: 1.65; + -webkit-font-smoothing: antialiased; overflow-x: hidden; +} +html[lang="ko"] body { word-break: keep-all; line-height: 1.75; } +a { color: var(--accent-ink); text-decoration: none; } +a:hover { text-decoration: underline; text-underline-offset: 3px; } +code, pre, kbd { font-family: var(--font-mono); font-size: 0.88em; } +:not(pre) > code { background: var(--code-bg); padding: 0.1em 0.38em; border-radius: 5px; overflow-wrap: anywhere; } +pre { + background: var(--code-bg); border: 1px solid var(--line); border-radius: var(--radius); + padding: 1rem 1.15rem; overflow-x: auto; line-height: 1.6; margin: 1.1rem 0; +} +pre code { font-size: 0.86rem; } +.c { color: var(--muted); } /* comment */ +.k { color: var(--accent-ink); } /* keyword / emphasis inside code */ + +.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 1.25rem; } +@media (max-width: 480px) { .wrap { padding: 0 1rem; } } + +/* Header */ +.site-header { + position: sticky; top: 0; z-index: 10; + background: color-mix(in srgb, var(--bg) 86%, transparent); + backdrop-filter: saturate(140%) blur(10px); -webkit-backdrop-filter: saturate(140%) blur(10px); + border-bottom: 1px solid var(--line); +} +.bar { display: flex; align-items: center; gap: 1.25rem; min-height: 3.6rem; } +.brand { display: inline-flex; align-items: center; gap: 0.55rem; color: var(--fg); font-weight: 650; letter-spacing: -0.01em; white-space: nowrap; } +.brand:hover { text-decoration: none; } +.brand .mark { width: 22px; height: 22px; flex: none; } +.nav { display: flex; gap: 0.15rem; flex: 1; min-width: 0; } +.site-header .nav a { + color: var(--muted); padding: 0.35rem 0.6rem; border-radius: 7px; font-size: 0.93rem; white-space: nowrap; +} +.nav a:hover { color: var(--fg); background: var(--code-bg); text-decoration: none; } +.nav a[aria-current="page"] { color: var(--fg); background: var(--accent-soft); } +.tools { display: flex; gap: 0.4rem; margin-left: auto; } +.btn-ghost { + font: inherit; font-size: 0.86rem; color: var(--fg); background: transparent; + border: 1px solid var(--line); border-radius: 8px; padding: 0.3rem 0.65rem; cursor: pointer; + display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2rem; +} +.btn-ghost:hover { border-color: var(--accent); } +.btn-ghost svg { width: 16px; height: 16px; } +@media (max-width: 860px) { + .bar { flex-wrap: wrap; gap: 0.5rem 1rem; padding: 0.5rem 0; } + .nav { order: 3; flex-basis: 100%; overflow-x: auto; scrollbar-width: none; padding-bottom: 0.2rem; } + .nav::-webkit-scrollbar { display: none; } +} + +/* Hero */ +section.hero { padding: 5.5rem 0 3.5rem; border-top: 0; } +.eyebrow { + display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: var(--muted); + border: 1px solid var(--line); border-radius: 999px; padding: 0.2rem 0.75rem; margin-bottom: 1.6rem; +} +.dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); } +h1, h2, h3 { letter-spacing: -0.022em; line-height: 1.2; font-weight: 680; } +.hero h1 { font-size: clamp(2.3rem, 6vw, 4.1rem); margin: 0 0 1.1rem; letter-spacing: -0.035em; } +.hero h1 em { font-style: normal; color: var(--accent); } +.lead { font-size: clamp(1.08rem, 2.1vw, 1.3rem); color: var(--muted); max-width: 44rem; margin: 0 0 2rem; } +.cta { display: flex; flex-wrap: wrap; gap: 0.7rem; } +.btn { + display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.62rem 1.1rem; border-radius: 9px; + font-weight: 560; font-size: 0.97rem; border: 1px solid var(--line); color: var(--fg); background: var(--bg); +} +.btn:hover { text-decoration: none; border-color: var(--accent); } +a.btn.primary, .btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; } +:root[data-theme="dark"] .btn.primary { color: #0f1115; } +@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .btn.primary { color: #0f1115; } } + +/* Sections */ +section { padding: 3rem 0; border-top: 1px solid var(--line); } +section.flush { border-top: 0; padding-top: 0; } +.kicker { font-family: var(--font-mono); font-size: 0.78rem; color: var(--accent-ink); letter-spacing: 0.04em; text-transform: uppercase; margin: 0 0 0.6rem; } +h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 1rem; } +h3 { font-size: 1.12rem; margin: 1.8rem 0 0.5rem; } +p { margin: 0 0 1rem; } +.muted { color: var(--muted); } +.narrow { max-width: 46rem; } + +/* Translation pair: Kotlin on the left, Python on the right. */ +.pair { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 0.9rem; align-items: stretch; margin: 1.5rem 0; } +.pair .pane { min-width: 0; } +.pair .pane pre { margin: 0; height: calc(100% - 1.8rem); } +.pair .label { font-family: var(--font-mono); font-size: 0.76rem; color: var(--muted); margin: 0 0 0.45rem; } +.pair .arrow { align-self: center; color: var(--accent); font-family: var(--font-mono); font-size: 1.3rem; } +@media (max-width: 760px) { + .pair { grid-template-columns: minmax(0, 1fr); } + .pair .arrow { justify-self: center; transform: rotate(90deg); } +} + +/* Diagram */ +.figure { margin: 1.5rem 0 0.5rem; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; background: var(--bg); } +.figure svg { width: 100%; height: auto; display: block; } +.figure svg text { font-family: var(--font-mono); font-size: 13px; fill: var(--fg); } +.figure svg .sub { fill: var(--muted); font-size: 11.5px; } +.figure svg .box { fill: var(--code-bg); stroke: var(--line); } +.figure svg .box.us { fill: var(--accent-soft); stroke: var(--accent); } +.figure svg .edge { stroke: var(--muted); stroke-width: 1.4; fill: none; } +.figure svg .edge.dash { stroke-dasharray: 4 4; stroke: var(--accent); } +.figure svg .head { fill: var(--muted); } +.figure svg .head.us { fill: var(--accent); } +figcaption { font-size: 0.9rem; color: var(--muted); margin-top: 0.8rem; } +.figure svg.fig-wide { display: block; } +.figure svg.fig-tall { display: none; max-width: 22rem; margin: 0 auto; } +@media (max-width: 640px) { .figure svg.fig-wide { display: none; } .figure svg.fig-tall { display: block; } } + +/* Grids and cards */ +.grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); } +.card { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.15rem 1.2rem; background: var(--bg); } +.card h3 { margin: 0 0 0.4rem; font-size: 1.02rem; } +.card p { margin: 0; color: var(--muted); font-size: 0.95rem; } +.card .glyph { font-family: var(--font-mono); color: var(--accent-ink); font-size: 0.85rem; margin-bottom: 0.55rem; display: block; } +a.card { color: inherit; display: block; } +a.card:hover { text-decoration: none; border-color: var(--accent); } + +ul.clean { padding-left: 1.1rem; margin: 0 0 1rem; } +ul.clean li { margin: 0.3rem 0; } +.not li::marker { content: "— "; color: var(--muted); } + +/* Tables */ +.table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); } +table { border-collapse: collapse; width: 100%; font-size: 0.93rem; } +th, td { text-align: left; padding: 0.6rem 0.85rem; border-bottom: 1px solid var(--line); vertical-align: top; } +th { font-weight: 600; color: var(--muted); font-size: 0.82rem; background: var(--code-bg); } +tr:last-child td { border-bottom: 0; } + +/* Status chips */ +.chip { display: inline-block; font-family: var(--font-mono); font-size: 0.74rem; padding: 0.08rem 0.5rem; border-radius: 999px; border: 1px solid currentColor; white-space: nowrap; } +.chip.ok { color: var(--ok); } +.chip.partial { color: var(--partial); } +.chip.planned { color: var(--planned); } + +.note { border-left: 3px solid var(--accent); background: var(--accent-soft); padding: 0.8rem 1rem; border-radius: 0 var(--radius) var(--radius) 0; margin: 1.2rem 0; font-size: 0.95rem; } +.note p:last-child { margin: 0; } + +/* Page layout for inner pages */ +.page-head { padding: 3.5rem 0 1.5rem; } +.page-head h1 { font-size: clamp(1.9rem, 4.5vw, 2.8rem); margin: 0 0 0.6rem; } +.doc { padding-bottom: 3rem; } +.doc section { padding: 2.2rem 0; } +.pager { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-top: 1px solid var(--line); padding: 1.5rem 0 0; margin-top: 1rem; } + +details { border: 1px solid var(--line); border-radius: var(--radius); padding: 0.85rem 1.1rem; margin: 0.6rem 0; } +details summary { cursor: pointer; font-weight: 600; } +details[open] summary { margin-bottom: 0.5rem; } + +footer { border-top: 1px solid var(--line); padding: 2rem 0 3rem; color: var(--muted); font-size: 0.88rem; } +footer .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; } diff --git a/docs/guide/concepts.html b/docs/guide/concepts.html new file mode 100644 index 0000000..3619414 --- /dev/null +++ b/docs/guide/concepts.html @@ -0,0 +1,113 @@ + + + + + +Concepts · pythonx-compose + + + + + + + + + + +
+

Concepts개념

How the pieces fit구성 요소가 맞물리는 방식

Two layers, one naming rule, one manifest.두 계층, 이름 규칙 하나, 매니페스트 하나.

+ +
+
+

The two layers두 계층

+

python-multiplatform — the binder — embeds CPython in a Kotlin Multiplatform app and exposes Kotlin declarations to Python under their Kotlin names: androidx.compose.material3 is androidx.compose.material3. It never renames a namespace.

python-multiplatform — 바인더 — 는 Kotlin Multiplatform 앱에 CPython 을 임베딩하고, Kotlin 선언을 Kotlin 이름 그대로 파이썬에 노출합니다: androidx.compose.material3 는 androidx.compose.material3 입니다. 네임스페이스 이름을 절대 바꾸지 않습니다.

+

pythonx-compose — this package — is real Python on disk. Its modules import those androidx.compose.* modules and restructure them into pythonx.compose.*.

pythonx-compose — 이 패키지 — 는 디스크에 있는 실제 파이썬입니다. 이 패키지의 모듈이 androidx.compose.* 를 import 해 pythonx.compose.* 로 재구성합니다.

+
@Composable def Screen()your Pythonpythonx.composethis package · real .pyandroidx.compose.*Kotlin names · binderComposeJetpack / Multiplatformpythonx-map.tomlthe one mapping.pyi stubsin the wheel@Composable def Screen()your Pythonpythonx.composethis package · real .pyandroidx.compose.*Kotlin names · binderComposeJetpack / Multiplatformpythonx-map.toml→ pythonx.compose, .pyi
+
+ +
+

The naming rule이름 규칙

+

Expose the original Kotlin declarations and parameters with Pythonic names. A name that starts upper-case — a type, an object, a composable — keeps its Kotlin spelling. Every other name is reached by its snake_case spelling only; the camelCase spelling is not a second name. An explicit overload keeps its type suffix.

Kotlin 의 원래 선언과 매개변수를 파이썬다운 이름으로 노출합니다. 대문자로 시작하는 이름 — 타입, 객체, 컴포저블 — 은 Kotlin 표기를 유지합니다. 그 밖의 이름은 snake_case 표기로만 접근하며, camelCase 표기가 또 하나의 이름이 되지는 않습니다. 명시적 오버로드는 타입 접미사를 유지합니다.

+
+ + + + + + + + + + +
KotlinPython
onClickon_click
fillMaxWidthfill_max_width
horizontalAlignmenthorizontal_alignment
zIndexz_index
toURLStringto_url_string
padding__Dppadding__Dp
ModifierModifier
ArrangementArrangement
+

The rule is applied forward to the module's real Kotlin names and never inverted, so a name the reverse rule could not reconstruct (to_url_string) still resolves. Keyword arguments to a module function are snake_case too (padding_values= reaches paddingValues), and inspect.signature reports the snake_case names, with python_multiplatform.KOTLIN_DEFAULT as the default of every parameter Kotlin defaults.

규칙은 모듈의 실제 Kotlin 이름에 정방향으로만 적용되고 역으로 계산하지 않으므로, 역규칙으로는 복원할 수 없는 이름(to_url_string)도 해석됩니다. 모듈 함수의 키워드 인자도 snake_case 이며(padding_values= 가 paddingValues 에 닿음), inspect.signature 는 snake_case 이름을 보여 주고 Kotlin 이 기본값을 가진 매개변수에는 python_multiplatform.KOTLIN_DEFAULT 를 기본값으로 보여 줍니다.

+

The user's notebook writes signatures such as Button(onclick, corner_radius, color). Those are naming examples; where they differ from Kotlin, the Kotlin parameter, snake-cased, wins.

사용자 노트북은 Button(onclick, corner_radius, color) 같은 시그니처를 씁니다. 이는 이름 예시이며, Kotlin 과 다르면 Kotlin 매개변수를 snake_case 로 바꾼 것이 이깁니다.

+
+ +
+

One re-export rule재노출 규칙 하나

+

Every module in pythonx-map.toml is a real file on disk whose __init__.py is one line. Nothing is resolved at import; a name is looked up in the mapped Kotlin package the first time it is read, and then lives in the module like any attribute. There is no per-widget wrapper.

pythonx-map.toml 의 모든 모듈은 디스크에 있는 실제 파일이며, __init__.py 는 한 줄입니다. import 할 때는 아무것도 해석하지 않고, 이름을 처음 읽을 때 대응된 Kotlin 패키지에서 찾은 뒤 보통의 속성처럼 모듈에 남습니다. 위젯별 래퍼는 없습니다.

+
# pythonx/compose/material3/__init__.py
+from pythonx.compose._reexport import reexport
+
+__getattr__, __dir__ = reexport(__name__)
+
+ +
+

Extension functions are methods확장 함수는 메서드

+

Most of Modifier is Kotlin extension functions. In Python each one is a method on the receiver's proxy, so a chain reads as it does in Kotlin. The binder's proxy class keeps Kotlin names; the same naming rule is registered as the binder's member resolver, so the snake_case spelling reaches the Kotlin member.

Modifier 의 대부분은 Kotlin 확장 함수입니다. 파이썬에서는 각각이 수신 객체 프록시의 메서드가 되어, 체인이 Kotlin 에서처럼 읽힙니다. 바인더의 프록시 클래스는 Kotlin 이름을 유지하며, 같은 이름 규칙이 바인더의 멤버 리졸버로 등록되어 snake_case 표기가 Kotlin 멤버에 닿습니다.

+
Modifier.padding(16).size(24).fill_max_width()
+

Keyword arguments to such a method are snake_case too — m.padding(padding_values=…), as the module function takes padding(m, padding_values=…). The resolver also hands the binder a keyword map read from the declaration's own parameter names. Kotlin's spelling (paddingValues=) still works at run time; the type stubs offer only the Pythonic one.

이런 메서드의 키워드 인자도 snake_case 입니다 — m.padding(padding_values=…) 이며, 모듈 함수는 padding(m, padding_values=…) 를 받습니다. 리졸버는 선언의 실제 파라미터 이름에서 읽은 키워드 맵도 바인더에 넘깁니다. Kotlin 이름(paddingValues=)도 실행 시에는 그대로 통하지만, 타입 스텁은 Pythonic 이름만 제시합니다.

+
+ +
+

Kotlin objectsKotlin 객체

+

Alignment and Arrangement are Kotlin objects, served as namespaces read by the same rule. Constants keep their Kotlin spelling and are read without parentheses; functions inside the object are snake_case.

Alignment 와 Arrangement 는 Kotlin 객체이며, 같은 규칙으로 읽는 네임스페이스로 제공됩니다. 상수는 Kotlin 표기를 유지하고 괄호 없이 읽으며, 객체 안의 함수는 snake_case 입니다.

+
from pythonx.compose.ui import Alignment
+from pythonx.compose.layout import Arrangement
+
+Alignment.Center
+Arrangement.End
+Arrangement.spaced_by(8)
+Alignment.Horizontal.End      # the same constant as Alignment.End
+

A constant can also be read grouped by its declared type, as the notebook writes it: Alignment.Horizontal.End is Alignment.End, read the same way. A group holds only the constants declared as exactly that type, so Alignment.Center (declared Alignment) is in no group, and Arrangement.SpaceBetween is under Arrangement.HorizontalOrVertical, not Arrangement.Horizontal.

노트북처럼 상수를 선언된 타입별로 묶어서 읽을 수도 있습니다. Alignment.Horizontal.End 는 Alignment.End 이며 같은 방식으로 읽힙니다. 묶음에는 정확히 그 타입으로 선언된 상수만 들어가므로 Alignment.Center(선언 타입 Alignment)는 어느 묶음에도 없고, Arrangement.SpaceBetween 은 Arrangement.Horizontal 이 아니라 Arrangement.HorizontalOrVertical 아래에 있습니다.

+
+ +
+

Value classes값 클래스

+

Dp wraps a single float, so a raw number may stand for it: padding(16) means padding(16.dp). That permission is the manifest's allowlist, handed to the binder when a pythonx.compose module first resolves a name. Color and TextUnit pack several fields into one value, so a raw number would decode as something else entirely — they are refused, with a message saying why. A colour is written through Kotlin's own factory: Color(0xFFFF0000).

Dp 는 float 하나를 감싸므로 숫자로 쓸 수 있습니다: padding(16) 은 padding(16.dp) 입니다. 이 허용은 매니페스트의 허용 목록이며, pythonx.compose 모듈이 처음 이름을 해석할 때 바인더에 전달됩니다. Color 와 TextUnit 은 여러 필드를 한 값에 담으므로 숫자를 넣으면 전혀 다른 값으로 해석됩니다 — 그래서 이유를 밝히며 거절합니다. 색은 Kotlin 자신의 팩토리로 씁니다: Color(0xFFFF0000).

+
+ +
+

One manifest, two readers매니페스트 하나, 읽는 쪽 둘

+

pythonx/compose/pythonx-map.toml says which pythonx.compose.* module stands for which Kotlin package; it lives inside the package and ships in the wheel. The runtime and the .pyi generator read the same file, so the name your editor completes is the name the interpreter resolves. Stubs generated from real Compose, and py.typed, are not shipped yet (issue #12).

pythonx/compose/pythonx-map.toml 이 어떤 pythonx.compose.* 모듈이 어떤 Kotlin 패키지에 대응하는지 적습니다. 이 파일은 패키지 안에 있고 wheel 에 함께 담깁니다. 런타임과 .pyi 생성기가 같은 파일을 읽으므로, 편집기가 완성하는 이름과 인터프리터가 해석하는 이름이 같습니다. 실제 Compose 에서 생성한 스텁과 py.typed 는 아직 함께 배포되지 않습니다(이슈 #12).

+
+ +
+

@Composable@Composable

+

The decorator stays, and it is an identity: it returns the function unchanged. The composer each nested call needs is threaded by the binding from the callee's declared parameters, never by anything the caller does.

데코레이터는 유지되며 항등 함수입니다: 함수를 그대로 돌려줍니다. 중첩 호출마다 필요한 composer 는 호출되는 쪽의 선언된 매개변수를 보고 바인딩이 넘기며, 호출하는 쪽은 아무것도 하지 않습니다.

+ +
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/ecosystem.html b/docs/guide/ecosystem.html new file mode 100644 index 0000000..671590e --- /dev/null +++ b/docs/guide/ecosystem.html @@ -0,0 +1,51 @@ + + + + + +Ecosystem · pythonx-compose + + + + + + + + + + +
+

Ecosystem생태계

The thisisthepy familythisisthepy 프로젝트들

Python and Kotlin, each doing what it is good at.파이썬과 Kotlin, 각자 잘하는 일을.

+ + + +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/getting-started.html b/docs/guide/getting-started.html new file mode 100644 index 0000000..cb403e6 --- /dev/null +++ b/docs/guide/getting-started.html @@ -0,0 +1,117 @@ + + + + + +Getting started · pythonx-compose + + + + + + + + + + +
+

Getting started시작하기

From clone to first call클론부터 첫 호출까지

Five minutes, honest about what runs.5 분, 동작하는 범위를 솔직하게.

+ +
+

pythonx-compose is pre-alpha. The first alpha, 0.1.0a1, is released to PyPI when the maintainer tags it; install a pre-release with pip install --pre pythonx-compose. This page shows how to get the source, run the tests, and what you can call today.

pythonx-compose 는 pre-alpha 입니다. 첫 알파 0.1.0a1 은 메인테이너가 태그를 달면 PyPI 에 배포되며, 프리릴리스는 pip install --pre pythonx-compose 로 설치합니다. 이 페이지는 소스를 받고, 테스트를 돌리고, 지금 호출할 수 있는 것을 보여줍니다.

+ +
+

1. Get the source1. 소스 받기

+
git clone https://github.com/thisisthepy/pythonx-compose
+cd pythonx-compose
+python3 -m venv .venv && . .venv/bin/activate
+python3 -m pip install pytest mypy      # Python 3.11 or later
+
+ +
+

2. Run the tests2. 테스트 실행

+
python3 -m pytest tests -q
+

Expect 139 passed, 112 skipped. One skipped test reads the maintainer's UI.ipynb, which a clone does not have; mypy type-checks the stubs. The other skipped tests drive the binder's adaptation layer and need a python-multiplatform checkout beside this one, or:

139 passed, 112 skipped 가 정상입니다. 건너뛴 테스트 하나는 클론에는 없는 메인테이너의 UI.ipynb 를 읽으며, mypy 는 스텁을 타입 검사합니다. 나머지 건너뛴 테스트는 바인더의 적응 계층을 구동하며, 옆에 python-multiplatform 체크아웃이 있거나 다음이 필요합니다:

+
PYTHONMULTIPLATFORM_HOME=/path/to/python-multiplatform python3 -m pytest tests -q
+

With a current one (31c092f0 or later) 250 pass and 1 skips (the UI.ipynb test); an older one skips 5 that call a snake_case method on a proxy the binder returned. That is expected and recorded.

최신 체크아웃(31c092f0 이후)이면 230 개가 통과하고 1 개(UI.ipynb 테스트)를 건너뛰며, 오래된 체크아웃은 바인더가 돌려준 proxy 의 snake_case 메서드를 부르는 5 개를 건너뜁니다. 예상된 상태이며 기록되어 있습니다.

+
+ +
+

3. What you can call today3. 지금 호출할 수 있는 것

+

From the repository root:

저장소 루트에서:

+
from pythonx.compose.runtime import Composable
+
+@Composable                 # identity: the function stays a plain function
+def Screen():
+    """A screen."""
+    return "drawn"
+
+assert Screen() == "drawn" and Screen.__name__ == "Screen"
+
import tomllib
+
+with open("pythonx/compose/pythonx-map.toml", "rb") as f:
+    manifest = tomllib.load(f)
+
+manifest["modules"]["pythonx.compose.layout"]
+# 'androidx.compose.foundation.layout'
+

The naming rule itself needs no binder either:

이름 규칙 자체도 바인더 없이 동작합니다:

+
from pythonx.compose._reexport import python_name
+
+python_name("fillMaxWidth")   # 'fill_max_width'
+python_name("toURLString")    # 'to_url_string'
+python_name("padding__Dp")    # 'padding__Dp'  (an explicit overload keeps its suffix)
+python_name("Modifier")       # 'Modifier'     (upper-case names keep their spelling)
+

Every mapped module imports on its own. Reading a Compose name from it needs the binder, which the Kotlin host installs; outside an app the error says so:

대응된 모듈은 모두 그 자체로 import 됩니다. 그 모듈에서 Compose 이름을 읽으려면 Kotlin 호스트가 설치하는 바인더가 필요하며, 앱 밖에서는 오류가 그 사실을 알려 줍니다:

+
import pythonx.compose.material3 as material3   # fine: a real file on disk
+
+material3.Text
+# RuntimeError: the python-multiplatform binding layer is not installed:
+# the Kotlin host must run PythonxAdapter.install() before pythonx.compose
+# can resolve a Kotlin declaration
+
+ +
+

4. What you write in an app4. 앱 안에서 쓰는 코드

+

Inside an app whose Kotlin host has installed the binder, a screen looks like this — every name and parameter is Compose's own, spelled by the one rule:

Kotlin 호스트가 바인더를 설치한 앱 안에서는, 화면이 이렇게 됩니다 — 모든 이름과 매개변수는 Compose 자신의 것이며, 규칙 하나로 표기됩니다:

+
from pythonx.compose.runtime import Composable
+from pythonx.compose.material3 import Text, Button, Column   # Column also from layout
+from pythonx.compose.layout import Arrangement
+from pythonx.compose.ui import Alignment, Modifier
+
+@Composable
+def Practice():
+    Column(
+        modifier=Modifier.padding(16).fill_max_width(),
+        vertical_arrangement=Arrangement.spaced_by(8),
+        horizontal_alignment=Alignment.CenterHorizontally,   # read, not called
+        content=lambda: (
+            Text("Hello"),
+            Button(on_click=lambda: None, content=lambda: Text("Press")),
+        ),
+    )
+

Two things to know. A chain that starts from the class, Modifier.padding(16), needs the app to register an empty-Modifier factory against real Compose — see Modifiers. And the screen above runs inside the app; a declared app root that redefining a screen replaces (issue #11) is planned, not built.

알아 둘 것이 두 가지 있습니다. 클래스에서 시작하는 체인 Modifier.padding(16) 은 실제 Compose 에서 앱이 빈 Modifier 팩토리를 등록해야 합니다 — 모디파이어를 보세요. 그리고 위 화면은 앱 안에서 실행됩니다. 화면을 다시 정의하면 교체되는 선언형 앱 루트(이슈 #11)는 계획 단계이며 아직 만들어지지 않았습니다.

+ +
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/guide-composables.html b/docs/guide/guide-composables.html new file mode 100644 index 0000000..9eea091 --- /dev/null +++ b/docs/guide/guide-composables.html @@ -0,0 +1,131 @@ + + + + + +Composables · pythonx-compose + + + + + + + + + + +
+

Guide가이드

Writing composables컴포저블 작성하기

Screens are functions; widgets are Compose's own.화면은 함수이고, 위젯은 Compose 의 것입니다.

+ +
+
+

partial부분

+

pythonx.compose.material3 re-exports androidx.compose.material3 by the one naming rule: composables keep their Kotlin names and take snake_case keywords (on_click=), with no per-widget file. The widgets have been rendered from Python in python-multiplatform's own tests (Text, Button, Card, ListItem, Badge, MaterialTheme, IconButton, Checkbox, Switch, TextField); a render proof per widget through this package is still pending (#9).

pythonx.compose.material3 는 이름 규칙 하나로 androidx.compose.material3 를 재노출합니다: 컴포저블은 Kotlin 이름을 유지하고 snake_case 키워드(on_click=)를 받으며, 위젯별 파일은 없습니다. 이 위젯들은 python-multiplatform 자체 테스트에서 파이썬으로 렌더링되었습니다 (Text, Button, Card, ListItem, Badge, MaterialTheme, IconButton, Checkbox, Switch, TextField). 이 패키지를 거친 위젯별 렌더링 증거는 아직 대기 중입니다(#9).

+
+ +
+

Write a screen화면 하나 쓰기

+
from pythonx.compose.runtime import Composable
+from pythonx.compose.material3 import Text, Card
+
+@Composable
+def Profile(name: str):
+    Card(content=lambda: Text(f"Hello, {name}"))
+

A screen is a plain function. @Composable marks it; it does not wrap it. Content slots take a lambda.

화면은 평범한 함수입니다. @Composable 은 표시만 하고 감싸지 않습니다. content 슬롯은 람다를 받습니다.

+

Column, Row and Spacer are declared in Kotlin's layout package, and the notebook imports them from material3. Both work, and both give the same object — the manifest's [aliases] section lends them to material3:

Column, Row, Spacer 는 Kotlin 의 layout 패키지에 선언되어 있고, 노트북은 이들을 material3 에서 import 합니다. 둘 다 되며 같은 객체를 줍니다 — 매니페스트의 [aliases] 섹션이 이들을 material3 에 빌려줍니다:

+
from pythonx.compose.material3 import Column, Row, Spacer   # as the notebook writes
+from pythonx.compose.layout import Column                   # Kotlin's home; same object
+
+ +
+

Declare the app and keep state앱 선언과 상태

+
from pythonx.compose.runtime import app, state
+from pythonx.compose.material3 import Text, Button
+
+count = state(0)
+
+@app
+def Main():
+    Button(on_click=lambda: setattr(count, "value", count.value + 1),
+           content=lambda: Text(f"Clicked {count.value}"))
+

@app declares the screen the host draws and returns the function unchanged. Declaring it again, for example in a notebook cell, replaces the screen; there is no update call. state(initial) is a Compose state, read and written through .value. The host is configured once with PythonContent("pythonx.compose.runtime", "app_root").

@app 은 호스트가 그리는 화면을 선언하고 함수를 그대로 돌려줍니다. 노트북 셀 등에서 다시 선언하면 화면이 바뀌며, 갱신 호출은 없습니다. state(initial) 는 Compose 상태이며 .value 로 읽고 씁니다. 호스트는 PythonContent("pythonx.compose.runtime", "app_root") 로 한 번만 설정합니다.

+

Status: partial. The binder path, which creates the state through Compose's mutableStateOf, is tested against a fake host shaped after python-multiplatform #38; proof against real Compose is still the E2E module. Numbers and strings round-trip: state(0) and count.value += 1 work (python-multiplatform #69).

상태: 부분. Compose 의 mutableStateOf 로 상태를 만드는 바인더 경로는 python-multiplatform #38 모양의 가짜 호스트로 테스트되었으며, 실제 Compose 증거는 아직 E2E 모듈입니다. 숫자와 문자열은 왕복됩니다: state(0) 과 count.value += 1 이 동작합니다(python-multiplatform #69).

+
+ +
+

A text field텍스트 필드

+
from pythonx.compose.material3 import TextField, Text
+from pythonx.compose.foundation.text.input import remember_text_field_state
+
+field = remember_text_field_state("")          # inside a composable
+TextField(state=field, label=lambda scope: Text("Message"))
+field.text                                      # the committed text, read when you need it (say, on submit)
+
+# outside composition, such as a notebook cell
+from pythonx.compose.foundation.text.input import TextFieldState
+draft = TextFieldState("hi")
+draft.set_text_and_place_cursor_at_end("hello")
+draft.clear_text()
+

Compose keeps the text and the input method's composing region, so nothing is sent to Python per keystroke; you read field.text on demand. Keep this state apart from state you stream output into, such as messages = state(""). The notebook's TextField(text_state=…, padding=8) has no Kotlin counterpart and is written TextField(state=…, modifier=Modifier.padding(8)). Status: partial — tested against a fake host; the input-method proof is python-multiplatform's end-to-end test (#26).

Compose 가 텍스트와 입력기의 조합 영역을 보관하므로 키 입력마다 파이썬으로 보내지는 것이 없고, 필요할 때 field.text 를 읽습니다. 이 상태는 출력을 흘려 넣는 상태(예: messages = state(""))와 분리해 두세요. 노트북의 TextField(text_state=…, padding=8) 은 Kotlin 에 대응이 없으며 TextField(state=…, modifier=Modifier.padding(8)) 로 씁니다. 상태: 부분 — 가짜 호스트로 테스트되었으며, 입력기 증거는 python-multiplatform 의 종단 간 테스트(#26)입니다.

+
+ +
+

From the notebook's spelling to the real parameters노트북 표기에서 실제 매개변수로

+

The notebook's signatures are examples. The surface follows Compose:

노트북의 시그니처는 예시입니다. 실제 표면은 Compose 를 따릅니다:

+
+ + + + + + + +
Notebook노트북Compose parameterCompose 매개변수Python
Button(onclick=…)onClickon_click
Text(font_size=30)fontSizefont_size
Column(horizontal_alignment=…)horizontalAlignmenthorizontal_alignment
Button(corner_radius=50)none — Compose takes a shape없음 — Compose 는 shape 를 받음shape
TextField(text_state=…, padding=8)state, modifierstate=…, modifier=Modifier.padding(8)
+

fontSize is a TextUnit, which packs several fields into one value, so font_size refuses a raw number such as 30.

fontSize 는 여러 필드를 한 값에 담는 TextUnit 이므로, font_size 는 30 같은 숫자를 거절합니다.

+
+ +
+

Spellings that changed바뀐 표기

+

A few of the notebook's convenience spellings are written differently, because Kotlin has no such thing:

노트북의 편의 표기 몇 가지는 Kotlin 에 그런 것이 없으므로 다르게 씁니다:

+
+ + + + + +
Notebook노트북PythonWhy이유
modifier=modifiermodifier=ModifierIn Kotlin the empty modifier is Modifier; there is no lower-case second name.Kotlin 에서 빈 모디파이어는 Modifier 이며, 소문자로 된 두 번째 이름은 없습니다.
color=0xFFFF0000color=Color(0xFFFF0000)Color packs several fields; a raw number would decode as something else.Color 는 여러 필드를 담으므로, 숫자를 넣으면 다른 값으로 해석됩니다.
Spacer(start=…, top=…)Spacer(modifier=Modifier.padding(…))Spacer has no such parameters in Kotlin.Kotlin 의 Spacer 에는 그런 매개변수가 없습니다.
+
+ +
+

What does not work yet아직 안 되는 것

+
    +
  • The colour-scheme factories cannot be called yet: they take 36 colour parameters. DefaultIcons is Icons.Default, an icon is a value (an ImageVector to a type checker) read without parentheses — Icon(DefaultIcons.Add, content_description=None), not the notebook's DefaultIcons.Add() — and it is tested here against a fake host only; the real draw is in python-multiplatform's render test.색 스킴 팩토리는 색 매개변수를 36 개 받아 아직 호출할 수 없습니다. DefaultIcons 는 Icons.Default 이고, 아이콘은 괄호 없이 읽는 값(타입 검사기에는 ImageVector)입니다 — 노트북의 DefaultIcons.Add() 가 아니라 Icon(DefaultIcons.Add, content_description=None). 여기서는 가짜 호스트로만 테스트되며, 실제 그리기는 python-multiplatform 의 렌더 테스트에 있습니다.
  • +
  • A declared app root and Pythonic state — redefining a screen replaces it, with no update call — are planned (issue #11).선언형 앱 루트와 파이썬다운 상태 — 화면을 다시 정의하면 교체되고, 갱신 호출은 없음 — 는 계획 단계입니다(이슈 #11).
  • +
  • TextField(state=…) is wired and tested against a fake host only; that the input method's composing sequence survives, with no Python callback per keystroke, is proved in python-multiplatform's end-to-end test (#26).TextField(state=…) 는 가짜 호스트로만 테스트되었습니다. 입력기의 조합 입력이 키 입력마다 파이썬 콜백 없이 유지되는지는 python-multiplatform 의 종단 간 테스트(#26)에서 증명합니다.
  • +
  • remember_saveable and the coroutine scopes the notebook imports are planned.노트북이 import 하는 remember_saveable, 코루틴 스코프는 계획 단계입니다.
  • +
+ +
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/guide-manifest.html b/docs/guide/guide-manifest.html new file mode 100644 index 0000000..5e556f5 --- /dev/null +++ b/docs/guide/guide-manifest.html @@ -0,0 +1,78 @@ + + + + + +Manifest · pythonx-compose + + + + + + + + + + +
+

Guide가이드

The mapping manifest매핑 매니페스트

One file says which Python module is which Kotlin package.어떤 파이썬 모듈이 어떤 Kotlin 패키지인지, 파일 하나가 말합니다.

+ +
+
+

implemented구현

+

pythonx-map.toml is implemented and tested (tests/test_pythonx_map.py). It lives at pythonx/compose/pythonx-map.toml, inside the package, and ships in the wheel.

pythonx-map.toml 은 구현되어 있고 테스트됩니다 (tests/test_pythonx_map.py). 패키지 안의 pythonx/compose/pythonx-map.toml 에 있으며 wheel 에 함께 담깁니다.

+
+ +
+

Mapping a module모듈 대응시키기

+
[modules]
+"pythonx.compose.material3" = "androidx.compose.material3"
+"pythonx.compose.layout"    = "androidx.compose.foundation.layout"
+

The second row is why the mapping is written down rather than derived: it drops foundation. from the middle of the name, which no prefix rule can do.

두 번째 줄이 대응을 유도하지 않고 적어 두는 이유입니다: 이름 중간의 foundation. 을 빼는 것은 어떤 접두사 규칙으로도 할 수 없습니다.

+

Every row is a real file on disk: a new pythonx.compose.* module gets a row here and an __init__.py that calls reexport(__name__), in the same change.

모든 줄은 디스크에 있는 실제 파일입니다: 새 pythonx.compose.* 모듈은 같은 변경 안에서 여기 한 줄과, reexport(__name__) 를 부르는 __init__.py 를 함께 얻습니다.

+
+ +
+

Allowing a raw number숫자로 쓰기 허용

+
[value-classes]
+raw-primitive-allowed = [
+    "androidx.compose.ui.unit.Dp",
+]
+

Only add a value class whose constructor is the identity on its number. Color and TextUnit are deliberately absent, and a test fails if they appear.

생성자가 숫자에 대한 항등인 값 클래스만 추가합니다. Color 와 TextUnit 은 의도적으로 빠져 있으며, 들어가면 테스트가 실패합니다.

+
+ +
+

Lending a name to another module다른 모듈에 이름 빌려주기

+
[aliases."pythonx.compose.material3"]
+"pythonx.compose.layout" = ["Column", "Row", "Spacer"]
+

The notebook imports Column, Row and Spacer from material3, while Kotlin declares them in the layout package. This section makes material3 answer for them too. It is data, not a wrapper: the object is the same one either way, and a name not listed is not borrowed.

노트북은 Column, Row, Spacer 를 material3 에서 import 하지만, Kotlin 은 이들을 layout 패키지에 선언합니다. 이 섹션이 material3 도 이 이름들에 답하게 합니다. 래퍼가 아니라 데이터입니다: 어느 쪽에서 가져와도 같은 객체이고, 목록에 없는 이름은 빌려주지 않습니다.

+
+ +
+

Keeping it in step with the notebook노트북과 맞춰 두기

+

A test reads every pythonx import in the user's notebook and fails if the manifest does not map it. The notebook lives only in the maintainer's checkout, so elsewhere that test has nothing to check — run it there before claiming coverage.

테스트 하나가 사용자 노트북의 모든 pythonx import 를 읽고, 매니페스트가 대응시키지 않으면 실패합니다. 노트북은 메인테이너의 체크아웃에만 있으므로 다른 곳에서는 그 테스트가 확인할 것이 없습니다 — 커버리지를 주장하기 전에 그곳에서 돌리세요.

+ +
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/guide-modifiers.html b/docs/guide/guide-modifiers.html new file mode 100644 index 0000000..5a25434 --- /dev/null +++ b/docs/guide/guide-modifiers.html @@ -0,0 +1,99 @@ + + + + + +Modifiers · pythonx-compose + + + + + + + + + + +
+

Guide가이드

Modifier chainsModifier 체인

Kotlin extension functions, as Python methods.Kotlin 확장 함수를 파이썬 메서드로.

+ +
+
+

partial부분

+

Chains, snake_case method names, overload dispatch and Dp as a number are implemented and pass against the binder's adaptation layer (python-multiplatform ba4c6f49 or later). The partial piece is where a chain starts against real Compose — see the empty Modifier below.

체인, snake_case 메서드 이름, 오버로드 디스패치, 숫자로 쓰는 Dp 는 구현되어 있고 바인더의 적응 계층(python-multiplatform ba4c6f49 이후)에서 통과합니다. 부분적인 것은 실제 Compose 에서 체인이 시작되는 지점입니다 — 아래 빈 Modifier 를 보세요.

+
+ +
+

Chaining체이닝

+
from pythonx.compose.ui import Modifier
+
+m = Modifier.padding(16).size(24).fill_max_width()
+

Each link returns a new receiver; nothing is mutated. Method names are snake_case (fill_max_width reaches fillMaxWidth): the naming rule is registered as the binder's member resolver, while the binder's proxy class itself keeps Kotlin names in dir(). A name that is not bound raises AttributeError naming the type it looked on.

각 단계는 새 수신 객체를 돌려주며, 아무것도 변경하지 않습니다. 메서드 이름은 snake_case 입니다(fill_max_width 가 fillMaxWidth 에 닿음): 이름 규칙이 바인더의 멤버 리졸버로 등록되어 있고, 바인더의 프록시 클래스 자체는 dir() 에 Kotlin 이름을 유지합니다. 바인딩되지 않은 이름은 어느 타입에서 찾았는지 밝히는 AttributeError 를 냅니다.

+
+ +
+

Overloads오버로드

+

Compose declares several padding functions. A call picks one by keyword names, then argument count, then declared type; if none matches, the error lists the candidates.

Compose 는 padding 함수를 여러 개 선언합니다. 호출은 키워드 이름, 인자 개수, 선언 타입 순으로 하나를 고르며, 맞는 것이 없으면 후보를 나열한 오류를 냅니다.

+
m.padding(16)                          # all sides
+m.padding(horizontal=8, vertical=4)    # selected by keyword names
+m.padding(1, 2, 3, 4)                  # selected by argument count
+m.padding__Dp(16)                      # explicit overload: no dispatch
+
+ +
+

Keywords: method or module function키워드: 메서드와 모듈 함수

+

The member resolver maps keywords as well as names, so a method takes snake_case keywords exactly as the same extension does when called as a module function; inspect.signature shows them. Kotlin's own spelling still works at run time, the type stubs offer only the Pythonic one, and the mapping needs python-multiplatform's describe_member (on an older binder a method's keywords are Kotlin's):

멤버 리졸버는 이름뿐 아니라 키워드도 대응시키므로, 메서드는 같은 확장 함수를 모듈 함수로 부를 때와 똑같이 snake_case 키워드를 받고, inspect.signature 도 그 이름을 보여 줍니다. Kotlin 이름도 실행 시에는 그대로 통하고 타입 스텁은 Pythonic 이름만 제시하며, 이 대응에는 python-multiplatform 의 describe_member 가 필요합니다(오래된 바인더에서는 메서드의 키워드가 Kotlin 이름입니다):

+
import inspect
+import pythonx.compose.layout as layout
+
+values = layout.padding_values_of(8)
+m.padding(padding_values=values)              # method: snake_case keyword
+m.padding(paddingValues=values)               # Kotlin spelling still accepted at run time
+layout.padding(m, padding_values=values)      # module function: snake_case keyword
+
+inspect.signature(layout.padding__PaddingValues)
+# (receiver, padding_values)
+
+ +
+

Numbers and value classes숫자와 값 클래스

+

Dp takes a raw number because the manifest allows it; a plain Float parameter is just a float; a packed value class such as TextUnit refuses a raw number and says why.

Dp 는 매니페스트가 허용하므로 숫자를 받습니다. 평범한 Float 매개변수는 그냥 float 이고, TextUnit 같은 묶인 값 클래스는 숫자를 거절하며 이유를 밝힙니다.

+
m.padding(16)                  # Dp from a number
+m.z_index(1.5)                 # a plain Float
+m.padding_from_baseline(16)    # TypeError: TextUnit would be reinterpreted
+
+ +
+

The empty Modifier빈 Modifier

+

In Kotlin, Modifier as an expression is an object, and bindings are functions — so there is no bound name for the empty modifier a chain starts from. pythonx/compose/ui/modifier.py is the seam: an application registers a one-line Kotlin factory.

Kotlin 에서 식으로 쓰인 Modifier 는 객체이고 바인딩은 함수이므로, 체인이 시작하는 빈 모디파이어에는 바인딩된 이름이 없습니다. pythonx/compose/ui/modifier.py 가 그 접점이며, 앱이 한 줄짜리 Kotlin 팩토리를 등록합니다.

+
// in the application's Kotlin
+fun emptyModifier(): Modifier = Modifier
+
import pythonx.compose.ui.modifier as seam
+
+seam.install("com.example.emptyModifier")   # then Modifier.padding(16) works
+

Without it, Modifier.padding(16) raises a TypeError naming register_empty. A Modifier instance Kotlin hands out chains without it.

이것이 없으면 Modifier.padding(16) 은 register_empty 를 밝히는 TypeError 를 냅니다. Kotlin 이 건네준 Modifier 인스턴스는 이것 없이도 체이닝됩니다.

+ +
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/index.html b/docs/guide/index.html new file mode 100644 index 0000000..bddf0b7 --- /dev/null +++ b/docs/guide/index.html @@ -0,0 +1,101 @@ + + + + + +Compose, in Python · pythonx-compose + + + + + + + + + + +
+ + +
+
+pre-alpha · pip install --pre pythonx-composepre-alpha · pip install --pre pythonx-compose +

Compose, in Python.Compose 를, 파이썬으로.

+

The real Compose widgets with their real parameters — restructured into a Python package, spelled the way Python spells things.진짜 Compose 위젯과 진짜 매개변수를 — 파이썬 패키지로 재구성해, 파이썬이 쓰는 방식대로 씁니다.

+ +
+ +
+

The idea아이디어

+

Same widgets. Python names.같은 위젯, 파이썬 이름.

+

Nothing is reimplemented and nothing is invented. Every parameter on the right is a Compose parameter on the left, renamed by one rule: camelCase becomes snake_case.

다시 구현하는 것도, 새로 지어내는 것도 없습니다. 오른쪽의 모든 매개변수는 왼쪽 Compose 의 매개변수이고, 규칙 하나로 이름만 바뀝니다: camelCase 가 snake_case 가 됩니다.

+
+

Kotlin · androidx.compose.material3

Button(
+    onClick = { send() },
+    modifier = Modifier.padding(16.dp),
+    enabled = true,
+) {
+    Text("Send")
+}
+ +

Python · pythonx.compose.material3

Button(
+    on_click=lambda: send(),
+    modifier=Modifier.padding(16),
+    enabled=True,
+    content=lambda: Text("Send"),
+)
+
+

These names resolve today, by one rule, inside an app that embeds the binder. Per-widget render proofs through this package are still pending; the status page says what is done and what is not.

이 이름들은 바인더를 임베딩한 앱 안에서 지금 규칙 하나로 해석됩니다. 이 패키지를 거친 위젯별 렌더링 증거는 아직 대기 중이며, 무엇이 되고 무엇이 안 되는지는 현황 페이지에 있습니다.

+
+ +
+

Architecture구조

+

Two layers, one rule about names.두 계층, 이름에 관한 규칙 하나.

+
@Composable def Screen()your Pythonpythonx.composethis package · real .pyandroidx.compose.*Kotlin names · binderComposeJetpack / Multiplatformpythonx-map.tomlthe one mapping.pyi stubsin the wheel@Composable def Screen()your Pythonpythonx.composethis package · real .pyandroidx.compose.*Kotlin names · binderComposeJetpack / Multiplatformpythonx-map.toml→ pythonx.compose, .pyi +
The binder exposes Kotlin under its Kotlin names and never renames. This package is real Python that imports those modules and reshapes them. One manifest says which module maps to which.바인더는 Kotlin 을 Kotlin 이름 그대로 노출하고 절대 이름을 바꾸지 않습니다. 이 패키지는 그 모듈을 import 해 재구성하는 실제 파이썬입니다. 어떤 모듈이 무엇에 대응하는지는 매니페스트 하나가 말합니다.
+
+
+ +
+

Philosophy철학

+

What it holds to지키는 것

+
+
onClick → on_click

The original API원래 API 그대로

Compose's own parameters, in snake_case. No convenience parameters Kotlin does not have.

Compose 자신의 매개변수를 snake_case 로. Kotlin 에 없는 편의 매개변수는 만들지 않습니다.

+
Modifier.padding(16).size(24)

Extensions are methods확장 함수는 메서드

A Kotlin extension function is a method on its receiver, so chains read as they do in Kotlin — fill_max_width() included.

Kotlin 확장 함수는 수신 객체의 메서드가 되어, 체인이 Kotlin 에서처럼 읽힙니다 — fill_max_width() 도 마찬가지입니다.

+
import androidx.compose…

A real package실제 패키지

pythonx/ is ordinary Python on disk. Renaming happens here, never in the binder.

pythonx/ 는 디스크에 있는 평범한 파이썬입니다. 이름 바꾸기는 여기서 하고, 바인더에서는 하지 않습니다.

+
@Composable

Composable stays@Composable 은 그대로

Screens are decorated Python functions, the way the notebook writes them.

화면은 노트북이 쓰는 그대로, 데코레이터가 붙은 파이썬 함수입니다.

+
+

What it is not이것이 아닌 것

+
    +
  • Not the binder — embedding CPython and the FFI belong to python-multiplatform.바인더가 아닙니다 — CPython 임베딩과 FFI 는 python-multiplatform 의 몫입니다.
  • +
  • Not a reimplementation of Compose, and not a new widget set.Compose 의 재구현도, 새 위젯 세트도 아닙니다.
  • +
  • Not runtime reflection — bindings are produced at build time, because native images and Kotlin/Native have none.런타임 리플렉션이 아닙니다 — 네이티브 이미지와 Kotlin/Native 에는 리플렉션이 없으므로 바인딩은 빌드 타임에 만듭니다.
  • +
+
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/guide/status.html b/docs/guide/status.html new file mode 100644 index 0000000..aec2835 --- /dev/null +++ b/docs/guide/status.html @@ -0,0 +1,56 @@ + + + + + +Status & FAQ · pythonx-compose + + + + + + + + + + +
+

Status현황

What works today지금 되는 것

Honest about partial things.부분적인 것은 부분적이라고 씁니다.

+ +
+
+

Implemented means code in this repository and a passing test that exercises it. Tests that only assert an absence are not counted.

구현은 이 저장소의 코드와 그것을 실행하는 통과 테스트가 함께 있다는 뜻입니다. 부재만 확인하는 테스트는 세지 않습니다.

+
+ + +
State상태Item항목
implemented구현Mapping manifest pythonx/compose/pythonx-map.toml — inside the package, ships in the wheel매핑 매니페스트 pythonx/compose/pythonx-map.toml — 패키지 안에 있으며 wheel 에 포함
implemented구현@Composable identity decorator@Composable 항등 데코레이터
implemented구현pythonx as a real on-disk package re-exporting androidx.compose.* by one rule — names, keywords, signatures, Dp allowlistandroidx.compose.* 를 규칙 하나로 재노출하는 실제 디스크 패키지 pythonx — 이름, 키워드, 시그니처, Dp 허용 목록
implemented구현Modifier chains with snake_case methods, overload dispatch, Dp as a numbersnake_case 메서드를 쓰는 Modifier 체인, 오버로드 디스패치, 숫자 Dp
implemented구현Column, Row, Spacer importable from material3 as well as layout (manifest [aliases])layout 뿐 아니라 material3 에서도 import 되는 Column, Row, Spacer (매니페스트 [aliases])
implemented구현Type stubs (.pyi) generated from real Compose 1.11.1 by the runtime's naming rule, with py.typed, checked with mypy (#12); many types are still Any런타임과 같은 이름 규칙으로 실제 Compose 1.11.1 에서 생성한 타입 스텁(.pyi)과 py.typed, mypy 로 검사(#12); 아직 많은 타입이 Any 입니다
implemented구현Snake-case names, keywords and signatures — modules and methods; a method's keywords need python-multiplatform's describe_member, and Kotlin's own spelling still works at run timesnake_case 이름·키워드·시그니처 — 모듈과 메서드; 메서드 키워드에는 python-multiplatform 의 describe_member 가 필요하고, Kotlin 이름도 실행 시에는 그대로 통합니다
partial부분The empty Modifier — Modifier.padding(16) from the class needs an app-supplied factory against real Compose빈 Modifier — 클래스에서 시작하는 Modifier.padding(16) 은 실제 Compose 에서 앱이 제공하는 팩토리가 필요
implemented구현Alignment / Arrangement — Alignment.Center, Arrangement.End, Arrangement.spaced_by(8), and the grouped Alignment.Horizontal.End beside Alignment.EndAlignment / Arrangement — Alignment.Center, Arrangement.End, Arrangement.spaced_by(8), 그리고 Alignment.End 와 나란히 묶음 표기 Alignment.Horizontal.End
partial부분Material 3 widgets — re-exported by rule; render proofs per widget pending (#9)Material 3 위젯 — 규칙으로 재노출됨; 위젯별 렌더 증거 대기(#9)
partial부분Distribution as pythonx-compose — the wheel carries the manifest, the re-export rule, the type stubs and py.typedpythonx-compose 배포 — wheel 에 매니페스트, 재노출 규칙, 타입 스텁, py.typed 포함
partial부분A declared app root (@app) and Pythonic state (state), with no update call — binder path tested against a fake host shaped after python-multiplatform #38; real Compose is the E2E module (#11, #19)갱신 호출 없는 선언형 앱 루트(@app)와 파이썬다운 상태(state) — 바인더 경로는 python-multiplatform #38 모양의 가짜 호스트로 테스트됨, 실제 Compose 는 E2E 모듈(#11, #19)
partial부분DefaultIcons is Icons.Default, written DefaultIcons.Add — tested against a fake host shaped after python-multiplatform #37/#38; the real draw is in python-multiplatform's render testDefaultIcons 는 Icons.Default 이며 DefaultIcons.Add 로 씁니다 — python-multiplatform #37/#38 모양의 가짜 호스트로 테스트됨; 실제 그리기는 python-multiplatform 의 렌더 테스트에 있음
partial부분TextField(state=…) with TextFieldState from pythonx.compose.foundation.text.input — tested against a fake host shaped after python-multiplatform #73; the input-method (IME) composing proof is python-multiplatform E2E #26 (#10)pythonx.compose.foundation.text.input 의 TextFieldState 를 쓰는 TextField(state=…) — python-multiplatform #73 모양의 가짜 호스트로 테스트됨; 입력기(IME) 조합 증거는 python-multiplatform E2E #26 (#10)
planned계획Colour schemes (36 colour parameters)색 스킴 (색 매개변수 36 개)
planned계획remember_saveable, coroutine scopesremember_saveable, 코루틴 스코프
+

Test baseline: 139 passed, 112 skipped without a python-multiplatform checkout; 250 passed, 1 skipped with a current one. The one skip with a current checkout reads the maintainer's UI.ipynb.

테스트 기준선: python-multiplatform 체크아웃이 없으면 132 passed, 99 skipped, 최신 체크아웃이면 250 passed, 1 skipped. 최신 체크아웃에서 건너뛰는 1 개는 메인테이너의 UI.ipynb 를 읽는 테스트입니다.

+
+
+

FAQ

+
Can I pip install it?pip 으로 설치할 수 있나요?

Yes, once the maintainer tags the first alpha: pip install --pre pythonx-compose (version 0.1.0a1). Until it is out, clone the repository.

메인테이너가 첫 알파를 태그하면 가능합니다: pip install --pre pythonx-compose (버전 0.1.0a1). 배포 전에는 저장소를 클론하세요.

Do I need to know Kotlin?Kotlin 을 알아야 하나요?

No. The widgets and parameters are Compose's, so Compose documentation applies — read onClick as on_click.

아니요. 위젯과 매개변수가 Compose 의 것이므로 Compose 문서가 그대로 적용됩니다 — onClick 을 on_click 으로 읽으면 됩니다.

Does it run on its own?단독으로 실행되나요?

No. It runs inside an app that embeds CPython through python-multiplatform.

아니요. python-multiplatform 으로 CPython 을 임베딩한 앱 안에서 동작합니다.

Why not look classes up at run time?왜 런타임에 클래스를 찾지 않나요?

GraalVM native images and Kotlin/Native have no reflection, so bindings are generated at build time.

GraalVM 네이티브 이미지와 Kotlin/Native 에는 리플렉션이 없으므로, 바인딩을 빌드 타임에 생성합니다.

What happened to the test/ directory?test/ 디렉터리는 어떻게 되었나요?

It no longer exists. It was a 2023–2024 Kotlin Multiplatform sample from the project's first generation, and it was deleted; the tag archive/pre-restructure keeps it.

더 이상 없습니다. 프로젝트 첫 세대의 2023–2024 Kotlin Multiplatform 샘플이었고 삭제되었으며, 태그 archive/pre-restructure 로 되찾을 수 있습니다.

+ +
+
+ +
+
+
+pythonx-compose — Compose, restructured for Python.pythonx-compose — 파이썬을 위해 재구성한 Compose. +GitHub · MIT LicenseMIT 라이선스 +
+
+ + diff --git a/docs/locale/README_ko.md b/docs/locale/README_ko.md new file mode 100644 index 0000000..5a6715a --- /dev/null +++ b/docs/locale/README_ko.md @@ -0,0 +1,200 @@ +[English](https://github.com/thisisthepy/pythonx-compose/blob/main/README.md) | 한국어 + +
+ +# pythonx-compose + +**Compose UI 를 파이썬으로 — Compose 의 위젯 그대로, 파이썬다운 이름으로.** + +[![License: MIT](https://img.shields.io/badge/license-MIT-7c4dff.svg)](https://github.com/thisisthepy/pythonx-compose/blob/main/LICENSE) +[![Python](https://img.shields.io/badge/python-3.11%2B-7c4dff.svg)](https://github.com/thisisthepy/pythonx-compose/blob/main/pyproject.toml) +[![pip](https://img.shields.io/badge/pip-pythonx--compose-7c4dff.svg)](https://github.com/thisisthepy/pythonx-compose/blob/main/pyproject.toml) +[![Status](https://img.shields.io/badge/status-pre--alpha-lightgrey.svg)](#-현황) + +[가이드](https://thisisthepy.github.io/pythonx-compose/) · [시작하기](https://thisisthepy.github.io/pythonx-compose/getting-started.html) · [개념](https://thisisthepy.github.io/pythonx-compose/concepts.html) · [현황](https://thisisthepy.github.io/pythonx-compose/status.html) + +
+ +--- + +## 왜 만드는가 + +Jetpack Compose 와 Compose Multiplatform 은 UI 를 만드는 훌륭한 방법입니다 — Kotlin 을 쓴다면요. +`pythonx-compose` 는 파이썬을 쓰는 사람을 위한 것입니다. Compose 를 다시 구현하지도, 새 위젯 세트를 +만들지도 않습니다. [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) 이 +Kotlin 이름 그대로 파이썬에 노출한 실제 `androidx.compose.*` API 를 가져와, 파이썬다운 패키지 +`pythonx.compose` 로 재구성합니다. + +```python +from pythonx.compose.runtime import Composable +from pythonx.compose.material3 import Text, Button + +@Composable +def Greeting(): + Button(on_click=lambda: print("hi"), content=lambda: Text("Hello from Python")) +``` + +이 이름들은 바인더를 임베딩한 앱 안에서 지금 규칙 하나로 해석됩니다. 위젯별 렌더링 증거는 아직 +대기 중입니다. [현황](#-현황)을 보세요. + +## ✨ 원칙 + +- **원래 API, 파이썬다운 이름.** 모든 매개변수는 Compose 자신의 매개변수이고, 이름만 `snake_case` + 입니다: `onClick` → `on_click`, `horizontalAlignment` → `horizontal_alignment`. 대문자로 시작하는 + 이름(타입, 객체, 컴포저블)은 Kotlin 표기를 유지하고, 그 밖의 이름은 `snake_case` 로만 접근하며 + (`fillMaxWidth` → `fill_max_width`, `toURLString` → `to_url_string`), 명시적 오버로드는 접미사를 + 유지합니다(`padding__Dp`). +- **확장 함수는 메서드.** `Modifier.padding(16).size(24).fill_max_width()` 가 Kotlin 에서와 똑같이 + 체이닝됩니다. 이런 메서드의 키워드 인자도 `snake_case` 이며(`m.padding(padding_values=...)`), + 모듈 함수 `padding(m, padding_values=...)` 와 같습니다. Kotlin 이름도 실행 시에는 그대로 통하지만 + 타입 스텁은 Pythonic 이름만 제시합니다. +- **Kotlin 객체는 네임스페이스.** `Alignment.Center`, `Arrangement.End` 는 괄호 없이 읽고, 그 안의 + 함수는 `snake_case` 입니다: `Arrangement.spaced_by(8)`. 노트북처럼 선언된 타입별로 묶어서 읽을 + 수도 있습니다: `Alignment.Horizontal.End` 는 `Alignment.End` 입니다. +- **`@Composable` 은 그대로.** 화면은 데코레이터가 붙은 파이썬 함수입니다. +- **실제 패키지.** `pythonx/` 는 `androidx.compose.*` 를 import 해 재구성하는 평범한 파이썬 + 소스입니다. 바인더는 아무 이름도 바꾸지 않습니다 — 이름을 바꾸는 것은 이 패키지의 일입니다. +- **하나의 매니페스트.** [`pythonx-map.toml`](https://github.com/thisisthepy/pythonx-compose/blob/main/pythonx/compose/pythonx-map.toml) 이 어떤 `pythonx.compose.*` + 모듈이 어떤 Kotlin 패키지에 대응하는지 적습니다. 이 파일은 패키지 안에 있으며 wheel 에 함께 + 담깁니다. 런타임과 `.pyi` 생성기가 같은 파일을 읽으므로, 편집기가 자동완성하는 이름과 인터프리터가 + 해석하는 이름이 어긋나지 않습니다. + +## 🧩 한눈에 보는 구조 + +```mermaid +flowchart LR + app["파이썬 UI 코드
@Composable def Screen()"] --> px["pythonx.compose
(이 패키지, 실제 파이썬)"] + px --> ax["androidx.compose.*
python-multiplatform 이 Kotlin 이름 그대로 노출"] + ax --> compose["Jetpack / Compose Multiplatform"] + map["pythonx-map.toml"] -.-> px + map -.-> pyi[".pyi 스텁
(wheel 에 포함)"] +``` + +| 파이썬 모듈 | Kotlin 패키지 | +|---|---| +| `pythonx.compose.runtime` | `androidx.compose.runtime` | +| `pythonx.compose.ui` | `androidx.compose.ui` | +| `pythonx.compose.layout` | `androidx.compose.foundation.layout` | +| `pythonx.compose.material3` | `androidx.compose.material3` | + +각 모듈은 재노출 규칙 하나를 부르는 `__init__.py` 를 가진 실제 파일이며, 이름은 처음 쓸 때 +해석됩니다. `Column`, `Row`, `Spacer` 는 노트북이 쓰는 대로 `pythonx.compose.layout` 뿐 아니라 +`pythonx.compose.material3` 에서도 import 됩니다(매니페스트의 `[aliases]`). + +## 🚀 빠른 시작 + +> [!NOTE] +> `pythonx-compose` 는 **pre-alpha** 단계입니다. 첫 알파 `0.1.0a1` 은 메인테이너가 태그를 달면 PyPI 에 +> 배포되며, 프리릴리스이므로 `pip install --pre pythonx-compose` 로 설치합니다. + +클론에서 테스트를 돌리려면: + +```bash +git clone https://github.com/thisisthepy/pythonx-compose +cd pythonx-compose +python3 -m pip install pytest # 가상환경 안에서 +python3 -m pytest tests -q +``` + +저장소 루트에서 지금 동작하는 것: + +```python +from pythonx.compose.runtime import Composable + +@Composable # 항등 데코레이터: 함수는 평범한 함수 그대로 남는다 +def Screen(): + """A screen.""" + return "drawn" + +assert Screen() == "drawn" and Screen.__name__ == "Screen" +``` + +```python +import tomllib # 매니페스트: 대응 관계가 적힌 유일한 곳 + +with open("pythonx/compose/pythonx-map.toml", "rb") as f: + manifest = tomllib.load(f) + +manifest["modules"]["pythonx.compose.layout"] +# 'androidx.compose.foundation.layout' +manifest["value-classes"]["raw-primitive-allowed"] +# ['androidx.compose.ui.unit.Dp'] -> padding(16) 은 padding(16.dp) 를 뜻한다 +``` + +```python +from pythonx.compose._reexport import python_name # 이름 규칙, 바인더 없이 동작 + +python_name("fillMaxWidth") # 'fill_max_width' +python_name("toURLString") # 'to_url_string' +python_name("Modifier") # 'Modifier' +``` + +`pythonx.compose.material3.Text` 같은 Compose 이름을 읽으려면 Kotlin 호스트가 설치하는 바인더가 +필요합니다. 앱 밖에서는 그 사실을 알려 주는 `RuntimeError` 가 납니다. + +`Modifier` 체인과 오버로드 디스패치를 검사하는 테스트는 바인더의 적응 계층을 옆에 있는 +[python-multiplatform](https://github.com/thisisthepy/python-multiplatform) 체크아웃(또는 +`PYTHONMULTIPLATFORM_HOME`)에서 읽습니다. 없으면 건너뜁니다. + +## 📦 설치 + +pip 패키지 **`pythonx-compose`**(파이썬 3.11 이상)로 배포되며, import 패키지 `pythonx.compose` 와 +매니페스트를 wheel 안에 담으며, 타입 정보도 함께 배포합니다: 실제 Compose 1.11.1 에서 생성한 `.pyi` +스텁과 `py.typed`. [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) +으로 CPython 을 임베딩한 앱 안에서 동작하며, 단독 데스크톱 툴킷이 아닙니다. + +## 🧪 현황 + +| 영역 | 상태 | +|---|---| +| 매핑 매니페스트 `pythonx-map.toml` | ✅ 구현, 테스트됨 | +| `@Composable` 데코레이터 | ✅ 구현, 테스트됨 | +| `androidx.compose.*` 를 규칙 하나로 재노출하는 실제 디스크 패키지 `pythonx` | ✅ 구현, 테스트됨 | +| snake_case 메서드를 쓰는 `Modifier` 체인, 오버로드 디스패치, 숫자로 쓰는 `Dp` | ✅ 구현, 바인더 계층으로 테스트됨 | +| `layout` 뿐 아니라 `material3` 에서도 쓰는 `Column`, `Row`, `Spacer` | ✅ 구현, 테스트됨 | +| `snake_case` 메서드 키워드 인자 | ✅ 구현, 테스트됨 — 모듈 함수와 메서드(메서드는 python-multiplatform 의 `describe_member` 필요) | +| 빈 `Modifier` | 🟡 부분 — 클래스에서 시작하는 `Modifier.padding(16)` 은 실제 Compose 에서 앱이 제공하는 팩토리가 필요 | +| `Alignment` / `Arrangement` | ✅ 구현 및 테스트 — `Alignment.Center`, `Arrangement.spaced_by(8)`, 그리고 `Alignment.End` 와 나란히 묶음 표기 `Alignment.Horizontal.End` | +| Material 3 위젯 (`Text`, `Button`, `Card`, `TextField`, …) | 🟡 부분 — 규칙으로 재노출됨; 위젯별 렌더 증거 대기(#9) | +| 실제 Compose 1.11.1 에서 생성한 타입 스텁(`.pyi`), `py.typed` | ✅ 구현, mypy 로 검사; 아직 많은 타입이 `Any` 입니다(#12) | +| 배포 (`pythonx-compose`) | 🟡 부분 — wheel 에 매니페스트, 재노출 규칙, 스텁, `py.typed` 포함 | +| 갱신 호출 없는 선언형 앱 루트(`@app`)와 파이썬다운 상태(`state`) | 🟡 부분 — 바인더 경로는 python-multiplatform #38 모양의 가짜 호스트로 테스트됨, 실제 Compose 는 E2E 모듈(#11, #19), 숫자와 문자열은 `state` 로 왕복됨 | +| `TextField(state=...)` 와 `TextFieldState` (`pythonx.compose.foundation.text.input`) | 🟡 부분 — python-multiplatform #73 모양의 가짜 호스트로 테스트됨; 입력기(IME) 조합 증거는 python-multiplatform E2E #26 (#10) | +| `DefaultIcons`(`Icons.Default`), `DefaultIcons.Add` 로 씀 | 🟡 부분 — python-multiplatform #37/#38 모양의 가짜 호스트로 테스트됨; `Icon(DefaultIcons.Add, …)` 의 실제 그리기는 python-multiplatform 의 렌더 테스트에 있음 | +| 색 스킴 | ⏳ 계획 | +| `remember_saveable`, 코루틴 스코프 | ⏳ 계획 | + +전체 목록은 가이드의 [현황 페이지](https://thisisthepy.github.io/pythonx-compose/status.html)에 있습니다. + +## 📖 문서 + +- **가이드** — [`docs/guide/`](https://thisisthepy.github.io/pythonx-compose/), 영어 / 한국어 +- **English README** — [`README.md`](https://github.com/thisisthepy/pythonx-compose/blob/main/README.md) + +## 🔌 생태계 + +| 저장소 | 역할 | +|---|---| +| [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) | 바인더: Kotlin Multiplatform 에 임베딩한 CPython, Kotlin 을 Kotlin 이름 그대로 파이썬에 노출 | +| **pythonx-compose** | 파이썬을 위해 재구성한 Compose — 이 저장소 | +| [toolchain](https://github.com/thisisthepy/toolchain) | Python Multiplatform 앱을 위한 Gradle 빌드 플러그인 | +| [pypackpack](https://github.com/thisisthepy/pypackpack) | 파이썬 프로젝트의 멀티플랫폼 배포 | +| [torchnative](https://github.com/thisisthepy/torchnative) | 실제 PyTorch 생태계를 기기에서 실행 | +| [Gemstone](https://github.com/LogitAI/Gemstone) | 이 스택과 함께 만들어지는 Kotlin Multiplatform AI 앱 | + +## 🤝 기여 + +개발은 의도 우선, 테스트 우선입니다: 변경은 스펙 변경으로 시작해, 실패하는 테스트를 거쳐, 코드로 +끝납니다. 열린 항목과 도움이 필요한 곳은 [가이드](https://thisisthepy.github.io/pythonx-compose/status.html)에 있습니다. 큰 변경 전에는 +이슈를 먼저 열어 주세요. + +## 메인테이너 + +| 이름 | 영역 | 시작 | +|---|---|---| +| [@b-re-w](https://github.com/b-re-w) | Composable 런타임 | 2023 | +| [@rnoro5122](https://github.com/rnoro5122) | Material 3 | 2024 | + +## 라이선스 + +[MIT](https://github.com/thisisthepy/pythonx-compose/blob/main/LICENSE) © 2023–2024 BREW (b-re-w), Jong-uk Lee (rnoro5122) diff --git a/pyproject.toml b/pyproject.toml index cd3751a..b6797f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,29 +1,49 @@ [build-system] -requires = ["setuptools>=42", "wheel"] +requires = ["setuptools>=77", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "pycomposeui" -version = "0.0.1" +name = "pythonx-compose" +version = "0.1.0a1" +description = "Pythonic Compose UI for Python on Kotlin Multiplatform, through python-multiplatform" +readme = {file = "README.md", content-type = "text/markdown"} +license = "MIT" +license-files = ["LICENSE"] +authors = [ + {name = "BREW (b-re-w)"}, + {name = "Jong-uk Lee (rnoro5122)"}, +] +keywords = ["compose", "jetpack-compose", "compose-multiplatform", "kotlin-multiplatform", "ui", "python-multiplatform"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Software Development :: User Interfaces", + "Typing :: Typed", +] dependencies = [ ] #dependencies-kotlin = [ # "org.jetbrains.compose:compose-ui:0.4.0", #] -requires-python = ">= 3.8" +requires-python = ">= 3.11" # tomllib, which reads the manifest at run time #requires-kotlin = ">= 1.4.32" -#authors = [ -# {name = "Pradyun Gedam", email = "irack000@gmail.com"}, -# {name = "Tzu-Ping Chung", email = "tzu-ping@example.com"} -#] -#maintainers = [ -# {name = "Brett Cannon", email = "brett@example.com"} -#] -#description = "Lovely Spam! Wonderful Spam!" -#readme = "README.rst" -#license = {file = "LICENSE.txt"} -#keywords = ["egg", "bacon", "sausage", "tomatoes", "Lobster Thermidor"] -#classifiers = [ -# "Development Status :: 4 - Beta", -# "Programming Language :: Python" -#] + +[project.urls] +Homepage = "https://github.com/thisisthepy/pythonx-compose" +Source = "https://github.com/thisisthepy/pythonx-compose" +Issues = "https://github.com/thisisthepy/pythonx-compose/issues" +Documentation = "https://thisisthepy.github.io/pythonx-compose/" + +[tool.setuptools.packages.find] +include = ["pythonx.compose*"] + +[tool.setuptools.package-data] +# Every package, not just `pythonx.compose` itself: a package-data key names one package and does +# not descend, so `"pythonx.compose"` alone would ship `pythonx/compose/*.pyi` and drop +# `pythonx/compose/ui/*.pyi` -- which is where most of the generated stubs land. +"*" = ["*.pyi", "py.typed", "pythonx-map.toml"] diff --git a/pythonx/_build/gen_stubs.py b/pythonx/_build/gen_stubs.py new file mode 100644 index 0000000..2ea0680 --- /dev/null +++ b/pythonx/_build/gen_stubs.py @@ -0,0 +1,727 @@ +"""Generate `pythonx.compose` stubs from the binder's Kotlin-named stubs, by the runtime's own rule. + + python3 pythonx/_build/gen_stubs.py [--out pythonx/compose/..] + +The input is what python-multiplatform's `PythonStubsTask` writes, either as its CI artefact +`kotlin-stubs` (a zip, read in place) or unpacked: one `androidx/compose/.../__init__.pyi` per Kotlin +package, Kotlin names unchanged. For each module in `pythonx-map.toml`, this reads the stub of the +Kotlin package it maps to and writes the Pythonic one next to the module's `__init__.py`: + +- a module function or constant is renamed with `pythonx.compose._reexport.python_name`, the + function the runtime resolves names with, so an editor completes what the interpreter answers; +- a parameter is renamed with `snake_case`, except the positional-only `receiver` and anonymous + `__aN` slots, which a caller never writes by name; keyword-only markers stay; +- a function whose explicit overload set is named like a class of the same stub (a constructor-shaped + `DpRect__Dp_Dp_Dp_Dp` beside `class DpRect`) gets no base name: the class and its `__init__` are that name; +- the binder's own `@overload` sets are kept in its order (with its `# type: ignore` comments). An + input with explicit overloads only (`padding__Dp`, the first upstream format) also gets + `@overload`s of the base name, fewest parameters first because a type checker takes the first + match; +- a stub class keeps its name. Its members are renamed with `python_name`, which is the binder's + member-resolver rule, and the parameters of a member's callable protocol are snake_case like a + module function's, because the resolver also translates a method's keywords (the receiver and + anonymous slots keep their names). The stubs are Pythonic-only: a method's Kotlin keyword still + works at run time and is a type error here. A static method (a function of a Kotlin object) is + reached through `KotlinObject`, so its parameters are snake_case too; +- a Kotlin object served as a sub-package (`Alignment`) becomes a class in its parent module's stub, + whether the input has it as `/__init__.pyi` or already as a class in the parent stub + (python-multiplatform #44). A sub-package directory holding only `__init__.pyi` would be a + namespace package at run time and shadow the `KotlinObject` the re-export rule serves. An object + whose name the parent uses for a function is left out: at run time that name is the function; +- a property keeps its decorators in step with its name (`@layout_direction.setter`); an object's + nested Kotlin types (`class Horizontal` in `Alignment`'s stub, `End: Horizontal`) become classes of + its class, referenced as `Alignment.Horizontal` (from another module `pythonx.compose.ui.Alignment.Horizontal`), + except a type derived from exactly one other nested type, which is `Any` (see `_Qualify`); an object's + explicit overload set (`spacedBy__Dp`) also gets its base name, as a static method; +- an object's constants are also grouped by the type nested in it that their docstring declares + them as (`Alignment.End(): Alignment.Horizontal`), as a class nested in the object's class + (`Alignment.Horizontal.End`), the runtime's `ConstantGroup` rule; a member of that name wins, unless + it is the nested Kotlin type itself, which then is the group; +- a reference to another Kotlin package names the `pythonx.compose` module the manifest lists first + for it, and its import is rewritten to match; a package the manifest does not map, or a name the + target stub does not declare as a class, becomes `typing.Any`; +- a module that maps a Kotlin package an earlier module already maps re-exports that module, and + the manifest's `[aliases]` are re-exported, because at run time those names are the same objects + (a name lent under another one, through an attribute path, is assigned that path of the source's stub); +- names the module's own `__init__.py` defines (`runtime.Composable`) are carried over, because a + `.pyi` beside a module replaces everything a type checker knows about it; so is a bare + annotation (`app_root: State`), the way a module declares a name its `__getattr__` creates. + +Nothing here names a Kotlin declaration; it is the same rule `_reexport.py` applies at run time. +The output is deterministic: the same input regenerates the same text. +""" + +from __future__ import annotations + +import argparse +import ast +import keyword +import re +import sys +import zipfile +from functools import cached_property +from pathlib import Path + +REPO = Path(__file__).resolve().parents[2] +if str(REPO) not in sys.path: + sys.path.insert(0, str(REPO)) + +from pythonx.compose._reexport import manifest, python_name, snake_case # noqa: E402 + +STUB_NAME = "__init__.pyi" +TYPING = "_t" +_ANY = f"{TYPING}.Any" + + +def header(source: str) -> str: + return f"# GENERATED by pythonx/_build/gen_stubs.py from {source}. Do not edit.\n" + + +# ---------------------------------------------------------------------------------------------- input + + +class KotlinStubs: + """The Kotlin-named stubs, from a zip (read in place) or a directory, keyed by package.""" + + def __init__(self, path: Path): + self.path = Path(path) + self.files: dict[str, str] = {} + if self.path.is_file() and zipfile.is_zipfile(self.path): + # Read in place: the artefact holds paths that differ only in case + # (`ui/graphics/shadow/` and `ui/graphics/Shadow/`), which a case-insensitive disk merges. + with zipfile.ZipFile(self.path) as archive: + for name in archive.namelist(): + if name.endswith((".pyi", ".md")): + self.files[name] = archive.read(name).decode("utf-8") + elif self.path.is_dir(): + for file in self.path.rglob("*"): + if file.is_file() and file.suffix in (".pyi", ".md"): + self.files[file.relative_to(self.path).as_posix()] = file.read_text(encoding="utf-8") + else: + raise FileNotFoundError(f"{self.path} is neither a zip nor a directory of Kotlin-named stubs") + + def stub(self, kotlin_package: str) -> str | None: + return self.files.get(kotlin_package.replace(".", "/") + "/" + STUB_NAME) + + def objects(self, kotlin_package: str) -> list[str]: + """Kotlin objects served as sub-packages of [kotlin_package] (`Alignment`), sorted.""" + prefix = kotlin_package.replace(".", "/") + "/" + found = set() + for name in self.files: + if name.startswith(prefix) and name.endswith("/" + STUB_NAME): + child = name[len(prefix):-len("/" + STUB_NAME)] + if child[:1].isupper() and "/" not in child: + found.add(child) + return sorted(found) + + @cached_property + def provenance(self) -> str: + """Where the input came from, for the generated header: the artefact's README, if any.""" + readme = self.files.get("README.md", "") + details = [f"artifact {self.path.stem}"] + for label, pattern in ( + ("workflow run", r"actions/runs/(\d+)"), + ("commit", r"python-multiplatform commit \| ([0-9a-f]{8})"), + ("Compose", r"\| Compose \| ([0-9][^ |]*)"), + ): + match = re.search(pattern, readme) + if match: + details.append(f"{label} {match.group(1)}") + return "python-multiplatform's Kotlin-named stubs (" + ", ".join(details) + ")" + + +def parse(source: str, dropped: list[str] | None = None) -> ast.Module: + """A stub's syntax tree, with `# type: ignore` comments kept. + + A Kotlin constant named like a Python keyword (`FilterQuality.None`) makes the upstream stub + unparsable; it cannot be written as an attribute in Python either, so its line (and its + docstring) is blanked and named in [dropped]. Any other syntax error is raised. + """ + lines = source.split("\n") + while True: + try: + return ast.parse("\n".join(lines), type_comments=True) + except SyntaxError as error: + index = (error.lineno or 0) - 1 + match = re.match(r"\s*(\w+)\s*:", lines[index]) if 0 <= index < len(lines) else None + if match is None or not keyword.iskeyword(match.group(1)): + raise + if dropped is not None: + dropped.append(match.group(1)) + lines[index] = "" + if index + 1 < len(lines) and lines[index + 1].lstrip().startswith('"""'): + lines[index + 1] = "" + + +# ------------------------------------------------------------------------------------------ renaming + + +def _keeps_its_name(name: str) -> bool: + return name == "receiver" or name.startswith("__a") + + +def _rename_arguments(arguments: ast.arguments) -> ast.arguments: + for group in (arguments.posonlyargs, arguments.args, arguments.kwonlyargs): + for argument in group: + if not _keeps_its_name(argument.arg): + argument.arg = snake_case(argument.arg) + return arguments + + +def _arity(arguments: ast.arguments) -> int: + return len(arguments.posonlyargs) + len(arguments.args) + len(arguments.kwonlyargs) + + +def _rename_property_decorators(function: ast.FunctionDef) -> None: + """`@layoutDirection.setter` follows its property: the decorator names the renamed property.""" + for decorator in function.decorator_list: + if (isinstance(decorator, ast.Attribute) and decorator.attr in ("setter", "getter", "deleter") + and isinstance(decorator.value, ast.Name)): + decorator.value.id = python_name(decorator.value.id) + + +def _is_overload(function: ast.FunctionDef) -> bool: + return any(ast.unparse(d) in ("overload", f"{TYPING}.overload") for d in function.decorator_list) + + +def _is_static(function: ast.FunctionDef) -> bool: + return any(ast.unparse(d) == "staticmethod" for d in function.decorator_list) + + +def _is_protocol(cls: ast.ClassDef) -> bool: + return any(ast.unparse(base) in (f"{TYPING}.Protocol", "Protocol") for base in cls.bases) + + +def _annotation(text: str) -> ast.expr: + return ast.parse(text, mode="eval").body + + +def _overload(function: ast.FunctionDef, name: str, single: bool = False) -> ast.FunctionDef: + """A copy of [function] named [name], as one `@overload` -- or plain when it is the only variant.""" + copy = ast.parse(ast.unparse(function)).body[0] + copy.name = name + if single: + return copy + decorators = [d for d in copy.decorator_list if ast.unparse(d) == "staticmethod"] + others = [d for d in copy.decorator_list if ast.unparse(d) != "staticmethod"] + copy.decorator_list = decorators + [_annotation(f"{TYPING}.overload")] + others + return copy + + +def _base_overloads(variants: list[ast.FunctionDef], base: str) -> list[ast.FunctionDef]: + """The base name of an explicit overload set (`padding__Dp`, ...): fewest parameters first.""" + ordered = sorted(variants, key=lambda variant: _arity(variant.args)) + return [_overload(variant, base, single=len(ordered) == 1) for variant in ordered] + + +def _name_of(node: ast.stmt) -> str | None: + if isinstance(node, (ast.FunctionDef, ast.ClassDef)): + return node.name + if isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + return node.target.id + return None + + +def _mark_ignores(tree: ast.Module) -> None: + """Carry each `# type: ignore[...]` onto the definition its line belongs to.""" + tags = {ignore.lineno: ignore.tag for ignore in tree.type_ignores} + if not tags: + return + for node in ast.walk(tree): + if isinstance(node, (ast.FunctionDef, ast.AnnAssign)) and node.lineno in tags: + node.type_ignore = tags[node.lineno] + + +_DECLARED_CONSTANT = re.compile(r"Kotlin: (?P[\w.]+)\.\w+\(\): (?P[\w.]+)$") + + +def _add_constant_groups(cls: ast.ClassDef, kotlin_name: str) -> None: + """Nest in [cls] a class per type nested in it that its constants are declared as (SPEC S7.1). + + The runtime's `ConstantGroup` rule, read off the stub: a constant whose docstring + (`Kotlin: .End(): .Horizontal`) declares it as exactly + `.`, for one simple upper-case name `G`, is repeated in `class G`, which is + emitted unless [cls] already has a member named `G` (a Kotlin member wins). When that member is + a class -- the Kotlin type nested in the object, `Alignment.Horizontal` -- it is the group: the + constants are added to it, so it is the type and the notebook's grouped spelling at once. A constant declared + as anything else -- [cls] itself, a deeper or a foreign type -- stays flat only. + """ + members = {_name_of(node) for node in cls.body} - {None} + nested = {node.name: node for node in cls.body if isinstance(node, ast.ClassDef)} + groups: dict[str, list[ast.stmt]] = {} + for index, node in enumerate(cls.body): + if not (isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name)): + continue + following = cls.body[index + 1] if index + 1 < len(cls.body) else None + if not (isinstance(following, ast.Expr) and isinstance(following.value, ast.Constant) + and isinstance(following.value.value, str)): + continue + declared = _DECLARED_CONSTANT.match(following.value.value.strip()) + if declared is None or declared["owner"] != kotlin_name: + continue + group = declared["type"][len(kotlin_name) + 1:] if declared["type"].startswith(kotlin_name + ".") else "" + if not group[:1].isupper() or "." in group or (group in members and group not in nested): + continue + groups.setdefault(group, []).extend( + ast.parse(ast.unparse(statement)).body[0] for statement in (node, following) + ) + for group in sorted(groups): + if group in nested: + # The Kotlin type nested in the object is the group too: `Alignment.Horizontal.End`. + have = {_name_of(node) for node in nested[group].body} + nested[group].body.extend( + statement for statement in groups[group] if _name_of(statement) not in have + ) + continue + doc = f"Kotlin: the constants of {kotlin_name} declared as {kotlin_name}.{group}" + cls.body.append(ast.ClassDef( + name=group, bases=[], keywords=[], decorator_list=[], + body=[ast.Expr(ast.Constant(doc))] + groups[group], + )) + + +class _Qualify(ast.NodeTransformer): + """A Kotlin type nested in an object, named bare in its stub (`End: Horizontal`), as `Alignment.Horizontal`. + + Once the object is a class of its parent stub the bare name resolves to nothing, and the object's + own class holds the nested type under it. A nested type that the stub derives from exactly one + other nested type (`HorizontalOrVertical(Horizontal)`) is [untrusted]: Kotlin's is both an + `Arrangement.Horizontal` and an `Arrangement.Vertical`, which the first upstream format could not + say with one base, so an annotation naming it is `Any` rather than a type that rejects half of its + uses. An input that lists every base (`HorizontalOrVertical(Horizontal, Vertical)`) is typed. + """ + + def __init__(self, owner: str, nested: set[str], untrusted: frozenset[str] = frozenset()): + self.owner = owner + self.nested = nested + self.untrusted = untrusted + + def visit_Name(self, node: ast.Name) -> ast.expr: + if node.id in self.untrusted and isinstance(node.ctx, ast.Load): + return _annotation(_ANY) + if node.id in self.nested and isinstance(node.ctx, ast.Load): + return _annotation(f"{self.owner}.{node.id}") + return node + + def annotations(self, function: ast.FunctionDef) -> None: + arguments = function.args + for argument in (*arguments.posonlyargs, *arguments.args, *arguments.kwonlyargs, + *filter(None, (arguments.vararg, arguments.kwarg))): + if argument.annotation is not None: + argument.annotation = self.visit(argument.annotation) + if function.returns is not None: + function.returns = self.visit(function.returns) + + +# -------------------------------------------------------------------------------------- references + + +class _References(ast.NodeTransformer): + """Rewrite `androidx.compose.ui.Modifier` to `pythonx.compose.ui.Modifier`, or to `Any`.""" + + def __init__(self, converter: "Converter", kotlin_package: str, imported: set[str]): + self.converter = converter + self.kotlin_package = kotlin_package + self.imported = imported + self.used: set[str] = set() + + def visit_Attribute(self, node: ast.Attribute) -> ast.expr: + dotted = ast.unparse(node) + root = dotted.split(".", 1)[0] + if root == TYPING or not all( + isinstance(n, (ast.Attribute, ast.Name, ast.expr_context)) for n in ast.walk(node) + ): + return self.generic_visit(node) + package = max( + (module for module in self.imported | {self.kotlin_package} if dotted.startswith(module + ".")), + key=len, default=None, + ) + if package is None: + return self.generic_visit(node) + rest = dotted[len(package) + 1:] + if package == self.kotlin_package: + return _annotation(rest) if self.converter.declares(package, rest) else _annotation(_ANY) + target = self.converter.first_module.get(package) + if target is None or not self.converter.declares(package, rest): + return _annotation(_ANY) + self.used.add(target) + return _annotation(f"{target}.{rest}") + + +# -------------------------------------------------------------------------------------- conversion + + +class Converter: + """Converts the stubs of one input against the manifest; collects what it had to leave out.""" + + def __init__(self, stubs: KotlinStubs): + self.stubs = stubs + self.notes: list[str] = [] + self.first_module: dict[str, str] = {} + for module_name, kotlin_package in manifest()["modules"].items(): + self.first_module.setdefault(kotlin_package, module_name) + self._declared: dict[str, set[str]] = {} + + # What a Kotlin package's stub declares as a class (what a reference may name). + def declares(self, kotlin_package: str, dotted: str) -> bool: + if kotlin_package not in self._declared: + declared: set[str] = set() + source = self.stubs.stub(kotlin_package) + functions: set[str] = set() + if source is not None: + tree = parse(source) + + def collect(prefix: str, body: list[ast.stmt]) -> None: + for node in body: + if isinstance(node, ast.ClassDef): + declared.add(prefix + node.name) + collect(prefix + node.name + ".", node.body) + + collect("", tree.body) + functions = {_name_of(n) for n in tree.body if not isinstance(n, ast.ClassDef)} - {None} + for name in self.stubs.objects(kotlin_package): + if name in functions: + continue + declared.add(name) + # The Kotlin types an object nests (`Alignment.Horizontal`) are folded into its class. + object_stub = self.stubs.stub(f"{kotlin_package}.{name}") + if object_stub is not None: + declared.update( + f"{name}.{node.name}" for node in parse(object_stub).body if isinstance(node, ast.ClassDef) + ) + self._declared[kotlin_package] = declared + return dotted in self._declared[kotlin_package] + + def _packages(self, tree: ast.Module) -> set[str]: + """The Kotlin packages a stub imports. An object's own stub is a package upstream + (`import androidx.compose.ui.Alignment`) but not a module here: a reference below it is the + parent's, `androidx.compose.ui` + `Alignment.Horizontal`.""" + found = set() + for node in tree.body: + if isinstance(node, ast.Import): + for alias in node.names: + parent, _, child = alias.name.rpartition(".") + if alias.name != "typing" and child not in self.stubs.objects(parent): + found.add(alias.name) + return found + + def convert(self, source: str, kotlin_package: str = "", module_name: str = "") -> str: + """One Kotlin-named stub module, rewritten to the Pythonic surface.""" + dropped: list[str] = [] + tree = parse(source, dropped) + _mark_ignores(tree) + for name in dropped: + self.notes.append(f"{kotlin_package}: constant {name!r} is a Python keyword; left out") + imported = self._packages(tree) + body: list[ast.stmt] = [] + explicit: dict[str, list[ast.FunctionDef]] = {} + for node in tree.body: + if isinstance(node, (ast.Import, ast.ImportFrom)): + continue + if isinstance(node, ast.FunctionDef): + node.name = python_name(node.name) + _rename_property_decorators(node) + _rename_arguments(node.args) + base, sep, _ = node.name.partition("__") + if sep: + explicit.setdefault(base, []).append(node) + elif isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + node.target.id = python_name(node.target.id) + elif isinstance(node, ast.ClassDef): + self._convert_class(node) + body.append(node) + + defined = {node.name for node in body if isinstance(node, ast.FunctionDef)} + classes = {node.name for node in body if isinstance(node, ast.ClassDef)} + for base, variants in explicit.items(): + if base in defined: + continue # the binder's own overload set (current format) stands as it is + if base in classes: + # A constructor-shaped function (`DpRect__Dp_Dp_Dp_Dp`) beside the class it builds: + # the class stub already carries `__init__`, and one name cannot be both in a stub. + continue + body.extend(_base_overloads(variants, base)) + + for name in self.stubs.objects(kotlin_package) if kotlin_package else (): + self._add_object(body, kotlin_package, name, imported) + for node in body: + if isinstance(node, ast.ClassDef) and not _is_protocol(node): + _add_constant_groups(node, f"{kotlin_package}.{node.name}") + + self._check_unique(body, kotlin_package) + references = _References(self, kotlin_package, imported) + body = [references.visit(node) for node in body] + + lines = [header(self.stubs.provenance), "import typing as _t\n"] + lines.extend(f"import {module}\n" for module in sorted(references.used)) + declared: list[str] = [] + for source_module, lent in sorted(manifest().get("aliases", {}).get(module_name, {}).items()): + pairs = {name: name for name in lent} if isinstance(lent, list) else dict(lent) + for name, path in sorted(pairs.items()): + if path == name: + lines.append(f"from {source_module} import {name} as {name}\n") + else: + # A name lent under another one, through an attribute path (`DefaultIcons` is + # `Icons.Default`): not an import but the same expression, so the type checker + # reads whatever the source's own stub says `Icons.Default` is. + lines.append(f"import {source_module} as _alias_{len(declared)}\n") + declared.append(f"{name} = _alias_{len(declared)}.{path}\n") + lines.append("\n") + lines.extend(declared) + if declared: + lines.append("\n") + lines.append(_emit_module(body)) + return "".join(lines) + + def _convert_class(self, cls: ast.ClassDef) -> None: + if _is_protocol(cls): + # A member's callable protocol: its `__call__` is the method, whose keywords the runtime + # translates like a module function's. + for member in cls.body: + if isinstance(member, ast.FunctionDef) and member.name == "__call__": + _rename_arguments(member.args) + return + for member in cls.body: + if isinstance(member, ast.AnnAssign) and isinstance(member.target, ast.Name): + member.target.id = python_name(member.target.id) + elif isinstance(member, ast.FunctionDef) and not member.name.startswith("__"): + _rename_property_decorators(member) + member.name = python_name(member.name) + if _is_static(member): + # A function of a Kotlin object: `KotlinObject` translates its keywords. + _rename_arguments(member.args) + elif isinstance(member, ast.ClassDef): + self._convert_class(member) + + def _add_object(self, body: list[ast.stmt], kotlin_package: str, name: str, imported: set[str]) -> None: + """Fold the object stub `//__init__.pyi` into a class of the parent.""" + existing = {_name_of(node): node for node in body} + holder = existing.get(name) + if holder is not None and not isinstance(holder, ast.ClassDef): + self.notes.append( + f"{kotlin_package}.{name}: the object is shadowed by the module's {name!r} " + "(a function at run time); left out" + ) + return + dropped: list[str] = [] + tree = parse(self.stubs.stub(f"{kotlin_package}.{name}") or "", dropped) + _mark_ignores(tree) + for constant in dropped: + self.notes.append(f"{kotlin_package}.{name}: constant {constant!r} is a Python keyword; left out") + imported.update(self._packages(tree)) + nested = {node.name for node in tree.body if isinstance(node, ast.ClassDef)} + # A nested type that lists exactly one other nested type as its base is what the first + # upstream format wrote for a type that is several (`HorizontalOrVertical(Horizontal)`); + # one that lists two or more says all it is (python-multiplatform #71) and is trusted. + derived = frozenset( + node.name for node in tree.body if isinstance(node, ast.ClassDef) + and sum(isinstance(b, ast.Name) and b.id in nested for b in node.bases) == 1 + ) + bases = _Qualify(name, nested) + qualify = _Qualify(name, nested, derived) + groups: list[list[ast.stmt]] = [] # each member with the docstring that follows it + explicit: dict[str, list[ast.FunctionDef]] = {} + for node in tree.body: + if isinstance(node, ast.ClassDef): + # A Kotlin type the object nests (`Alignment.Horizontal`): a class of the folded object. + node.bases = [bases.visit(base) for base in node.bases] + groups.append([node]) + elif isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + node.target.id = python_name(node.target.id) + node.annotation = qualify.visit(node.annotation) + if not ast.unparse(node.annotation).startswith(f"{TYPING}.ClassVar["): + node.annotation = _annotation(f"{TYPING}.ClassVar[{ast.unparse(node.annotation)}]") + groups.append([node]) + elif isinstance(node, ast.FunctionDef): + node.name = python_name(node.name) + _rename_arguments(node.args) + qualify.annotations(node) + node.decorator_list = [ast.Name(id="staticmethod", ctx=ast.Load())] + [ + d for d in node.decorator_list if ast.unparse(d) != "staticmethod" + ] + groups.append([node]) + base, sep, _ = node.name.partition("__") + if sep: + explicit.setdefault(base, []).append(node) + elif isinstance(node, ast.Expr) and groups and isinstance(groups[-1][0], ast.AnnAssign): + groups[-1].append(node) + defined = {_name_of(group[0]) for group in groups} + for base, variants in explicit.items(): + if base not in defined: + groups.extend([function] for function in _base_overloads(variants, base)) + if holder is None: + holder = ast.ClassDef( + name=name, bases=[], keywords=[], decorator_list=[], + body=[ast.Expr(ast.Constant(f"Kotlin: {kotlin_package}.{name}"))], + ) + body.append(holder) + present = {_name_of(member) for member in holder.body} + for group in groups: + if _name_of(group[0]) not in present: + holder.body.extend(group) + + def _check_unique(self, body: list[ast.stmt], kotlin_package: str) -> None: + """The runtime refuses two Kotlin names that become one Pythonic name; so does the stub.""" + seen: dict[str, str] = {} + for node in body: + name = _name_of(node) + if name is None or (isinstance(node, ast.FunctionDef) and _is_overload(node)): + continue + if name in seen: + raise ValueError(f"{kotlin_package}: two declarations become {name!r}") + seen[name] = type(node).__name__ + + +# ------------------------------------------------------------------------------------------ output + + +def _docstring(text: str) -> str: + if '"""' in text or "\\" in text or text.endswith('"'): + return repr(text) + return f'"""{text}"""' + + +def _parameter(argument: ast.arg, default: ast.expr | None) -> str: + text = argument.arg + if argument.annotation is not None: + text += f": {ast.unparse(argument.annotation)}" + if default is not None: + text += f" = {ast.unparse(default)}" + elif default is not None: + text += f"={ast.unparse(default)}" + return text + + +def _parameters(arguments: ast.arguments) -> str: + positional = arguments.posonlyargs + arguments.args + defaults = [None] * (len(positional) - len(arguments.defaults)) + list(arguments.defaults) + parts = [_parameter(a, d) for a, d in zip(positional, defaults)] + if arguments.posonlyargs: + parts.insert(len(arguments.posonlyargs), "/") + if arguments.vararg is not None: + parts.append("*" + _parameter(arguments.vararg, None)) + elif arguments.kwonlyargs: + parts.append("*") + parts.extend(_parameter(a, d) for a, d in zip(arguments.kwonlyargs, arguments.kw_defaults)) + if arguments.kwarg is not None: + parts.append("**" + _parameter(arguments.kwarg, None)) + return ", ".join(parts) + + +def _ignore(node: ast.AST) -> str: + tag = getattr(node, "type_ignore", None) + return f" # type: ignore{tag}" if tag is not None else "" + + +def _emit(node: ast.stmt, indent: str = "") -> list[str]: + if isinstance(node, ast.FunctionDef): + lines = [f"{indent}@{ast.unparse(d)}" for d in node.decorator_list] + head = f"{indent}def {node.name}({_parameters(node.args)})" + if node.returns is not None: + head += f" -> {ast.unparse(node.returns)}" + head += ":" + doc = ast.get_docstring(node, clean=False) + if doc is None: + lines.append(f"{head} ...{_ignore(node)}") + else: + lines += [f"{head}{_ignore(node)}", f"{indent} {_docstring(doc)}", f"{indent} ..."] + return lines + if isinstance(node, ast.ClassDef): + bases = ", ".join(ast.unparse(b) for b in node.bases) + lines = [f"{indent}class {node.name}({bases}):" if bases else f"{indent}class {node.name}:"] + for member in node.body: + lines += _emit(member, indent + " ") + if len(lines) == 1: + lines.append(f"{indent} ...") + return lines + if isinstance(node, ast.Expr) and isinstance(node.value, ast.Constant) and isinstance(node.value.value, str): + return [f"{indent}{_docstring(node.value.value)}"] + return [f"{indent}{ast.unparse(node)}{_ignore(node)}"] + + +def _emit_module(body: list[ast.stmt]) -> str: + out: list[str] = [] + previous: ast.stmt | None = None + for node in body: + attached = previous is not None and ( + (isinstance(node, ast.Expr) and isinstance(previous, ast.AnnAssign)) + or (isinstance(node, ast.FunctionDef) and isinstance(previous, ast.FunctionDef) + and _is_overload(node) and _is_overload(previous) and node.name == previous.name) + ) + if previous is not None and not attached: + out.append("") + out.extend(_emit(node)) + previous = node + return "\n".join(out) + "\n" if out else "" + + +def own_definitions(init_py: Path) -> list[str]: + """Stub text for the public functions and classes a package's own `__init__.py` defines.""" + if not init_py.is_file(): + return [] + stubs = [] + for node in ast.parse(init_py.read_text(encoding="utf-8")).body: + if isinstance(node, ast.FunctionDef) and not node.name.startswith("_"): + node.body = [ast.Expr(ast.Constant(...))] + node.decorator_list = [] + stubs.append(ast.unparse(node) + "\n") + elif ( + isinstance(node, ast.AnnAssign) + and node.value is None + and isinstance(node.target, ast.Name) + and not node.target.id.startswith("_") + ): + # A name the module answers through its own `__getattr__` (`runtime.app_root`). + stubs.append(ast.unparse(node) + "\n") + elif isinstance(node, ast.ClassDef) and not node.name.startswith("_"): + stubs.append(f"class {node.name}: ...\n") + return stubs + + +def generate(kotlin_stubs: Path, package_root: Path, notes: list[str] | None = None) -> dict[Path, str]: + """Every stub this manifest yields: output path -> text. Writes nothing. + + [kotlin_stubs] is the artefact zip or a directory; what had to be left out is appended to [notes]. + """ + stubs = KotlinStubs(kotlin_stubs) + converter = Converter(stubs) + out: dict[Path, str] = {} + for module_name, kotlin_package in manifest()["modules"].items(): + module_dir = package_root.joinpath(*module_name.split(".")[1:]) + first = converter.first_module[kotlin_package] + source = stubs.stub(kotlin_package) + if first != module_name: + # The same Kotlin package under a second name: at run time, the same objects. + text = header(stubs.provenance) + f"from {first} import *\n" + elif source is not None: + text = converter.convert(source, kotlin_package, module_name) + else: + text = header(stubs.provenance) + own = own_definitions(module_dir / "__init__.py") + if own: + text += "\n" + "\n".join(own) + out[module_dir / STUB_NAME] = text + if notes is not None: + notes.extend(converter.notes) + return out + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + parser.add_argument("kotlin_stubs", type=Path, help="the `kotlin-stubs` zip, or a directory of Kotlin-named stubs") + parser.add_argument("--out", type=Path, default=REPO / "pythonx") + args = parser.parse_args(argv) + if not args.kotlin_stubs.exists(): + parser.error(f"{args.kotlin_stubs} does not exist") + notes: list[str] = [] + for path, text in generate(args.kotlin_stubs, args.out, notes).items(): + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(text, encoding="utf-8") + print(path) + for note in notes: + print(f"left out: {note}", file=sys.stderr) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/pythonx/compose/__init__.py b/pythonx/compose/__init__.py index e69de29..e23ca37 100644 --- a/pythonx/compose/__init__.py +++ b/pythonx/compose/__init__.py @@ -0,0 +1,4 @@ + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/__init__.pyi b/pythonx/compose/__init__.pyi new file mode 100644 index 0000000..b912439 --- /dev/null +++ b/pythonx/compose/__init__.pyi @@ -0,0 +1 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. diff --git a/pythonx/compose/_reexport.py b/pythonx/compose/_reexport.py new file mode 100644 index 0000000..a38afb7 --- /dev/null +++ b/pythonx/compose/_reexport.py @@ -0,0 +1,512 @@ +"""The one rule that makes a `pythonx.compose.*` module a Pythonic view of a Kotlin package. + +The binder (`python-multiplatform`) serves every bound Kotlin package under its **Kotlin** name -- +`androidx.compose.foundation.layout` -- with Kotlin's own surface: declaration names, keyword +arguments by Kotlin parameter name, Kotlin defaults, overload dispatch. It renames nothing, and it +publishes what a Pythonic layer needs to rename by rule: `inspect.signature(fn)` with the Kotlin +parameter names, and `python_multiplatform.describe(fn)` with one dict per overload. + +This module is that layer. A mapped package's `__init__.py` is one line:: + + __getattr__, __dir__ = reexport(__name__) + +and every name in it then resolves against the Kotlin package `pythonx-map.toml` maps it to: + +- **Names.** A name that starts upper-case -- a type, an object, a `@Composable` -- keeps its Kotlin + spelling (`Modifier`, `Text`). Any other name is reached by its snake_case spelling only + (`fillMaxWidth` -> `fill_max_width`, `toURLString` -> `to_url_string`), and an explicit overload + keeps its suffix (`padding__Dp`). The inverse is never computed: the module's real Kotlin names + are converted forward and looked up, so a name the reverse rule could not invert still resolves. +- **Keywords.** `on_click=` reaches the parameter Kotlin calls `onClick`, matched against the + declaration's own parameter names (every overload's), never derived. +- **Signatures.** A re-exported function answers `inspect.signature` with the snake_case names; + defaults stay `python_multiplatform.KOTLIN_DEFAULT`. +- **Value classes.** The manifest's `raw-primitive-allowed` list is handed to the binder once per + installed binding layer, so `padding(16)` reaches a `Dp` parameter. +- **Methods on a proxy.** The same name rule is registered as the binder's member resolver, so + `Modifier.padding(16).fill_max_width()` reaches `fillMaxWidth` on a proxy Kotlin returned, and + `m.padding(padding_values=...)` reaches `paddingValues`: the resolver also answers a keyword map, + read from `python_multiplatform.describe_member`. The Kotlin spelling still works. The binder + caches the alias in its own registry; its proxy classes keep Kotlin names in `dir()`. + +- **Grouped constants.** Inside a Kotlin object served as a namespace, a type nested in it that + is not one of its members groups the constants declared as exactly that type, so the notebook's + `Alignment.Horizontal.End` reads `Alignment.End` (`ConstantGroup`). Declared types come from + `python_multiplatform.describe(module, name)`, which never runs a constant's getter. + +A module may also answer for names the manifest's `[aliases]` section lends it from another mapped +module (`material3` answers for `Column`, `Row`, `Spacer` from `layout`, as the notebook imports +them); the object is the same one either way. An alias may also lend a name under a different one, +through an attribute path (`DefaultIcons` is `Icons.Default` of `pythonx.compose.material.icons`, +INTENT section 5.7); a path with attribute steps is read afresh on every access, as the binder +serves a live property. + +Nothing here names a Kotlin declaration. Names defined in the package's own `__init__.py` (such as +`runtime.Composable`) are ordinary module attributes and win, because `__getattr__` only runs for a +name the module does not already have. +""" + +from __future__ import annotations + +import importlib +import importlib.util +import inspect +import re +import sys +import types +import weakref +from functools import lru_cache +from pathlib import Path + +ROOT_MODULE = "python_multiplatform" +BINDING_MODULE = "python_multiplatform.binding" + +_MANIFEST = Path(__file__).resolve().parent / "pythonx-map.toml" + +_LOWER_UPPER = re.compile(r"([a-z0-9])([A-Z])") +_ACRONYM_WORD = re.compile(r"([A-Z]+)([A-Z][a-z])") + + +def snake_case(kotlin_name: str) -> str: + """`fillMaxWidth` -> `fill_max_width`, `toURLString` -> `to_url_string`, `zIndex` -> `z_index`.""" + return _LOWER_UPPER.sub(r"\1_\2", _ACRONYM_WORD.sub(r"\1_\2", kotlin_name)).lower() + + +def python_name(kotlin_name: str) -> str: + """The one Pythonic spelling of a Kotlin declaration name. + + Upper-case names are types, objects and composables and keep their Kotlin spelling. An explicit + overload (`padding__Dp`) converts its base and keeps the type suffix, which names Kotlin types. + """ + if kotlin_name[:1].isupper(): + return kotlin_name + base, sep, suffix = kotlin_name.partition("__") + return snake_case(base) + sep + suffix + + +@lru_cache(maxsize=1) +def manifest() -> dict: + """`pythonx-map.toml`, parsed once.""" + import tomllib + + with _MANIFEST.open("rb") as handle: + return tomllib.load(handle) + + +def kotlin_package_of(module_name: str) -> str: + try: + return manifest()["modules"][module_name] + except KeyError: + raise LookupError( + f"{module_name} has no row in pythonx-map.toml; a re-exported module needs one" + ) from None + + +def binding_layer(): + """The binder's installed binding module, or a `RuntimeError` that says what did not happen.""" + binding = sys.modules.get(BINDING_MODULE) + if binding is None: + raise RuntimeError( + "the python-multiplatform binding layer is not installed: the Kotlin host must run " + "PythonxAdapter.install() before pythonx.compose can resolve a Kotlin declaration" + ) + return binding + + +_PRIMED = weakref.WeakSet() + + +_MEMBER_KEYWORDS: "weakref.WeakKeyDictionary" = weakref.WeakKeyDictionary() + + +def _method_keywords(kotlin_type_name: str, kotlin_member_name: str) -> dict: + """`{snake_case(p): p}` for every parameter `p` of every declaration of a proxy's member. + + Read with `python_multiplatform.describe_member`, which lists each overload's parameters without + invoking anything (the receiver slot is not among them). It is metadata, so it is kept per + (type, member), under the `describe_member` of the binding layer that answered: a new layer + starts with an empty table. A keyword whose snake_case spelling is its own is left out, and a + binder without `describe_member`, or a member it does not describe, has no map. + """ + describe_member = getattr(sys.modules.get(ROOT_MODULE), "describe_member", None) + if describe_member is None: + return {} + try: + known = _MEMBER_KEYWORDS.setdefault(describe_member, {}) + except TypeError: # something that cannot be weakly referenced: nothing to key a cache by + known = {} + key = (kotlin_type_name, kotlin_member_name) + if key not in known: + keywords: dict = {} + try: + declarations = describe_member(kotlin_type_name, kotlin_member_name) + except (TypeError, AttributeError): + declarations = () + for declaration in declarations: + for parameter in declaration.get("parameters", ()): + kotlin_parameter = parameter.get("name") + if kotlin_parameter and snake_case(kotlin_parameter) != kotlin_parameter: + keywords.setdefault(snake_case(kotlin_parameter), kotlin_parameter) + known[key] = keywords + return known[key] + + +def member_name(kotlin_type_name: str, requested: str, kotlin_member_names): + """The binder's member-resolver hook: the Kotlin member a Pythonic name means on a proxy, and + the keywords it takes. + + The binder asks for a name its proxy has no Kotlin member of + (`python_multiplatform.binding.add_member_resolver`): the rule is the module rule applied + forward to the proxy's real member names, so `fill_max_width` finds `fillMaxWidth`. It asks + again for a Kotlin member name when a call passes keywords. The answer is then + `(kotlin_name, {python_keyword: kotlinParameter})`, the parameters of every overload of that + member, so `m.padding(padding_values=...)` reaches `paddingValues`. Without a keyword to map the + answer is the name alone, which is all a binder without `describe_member` can be given. + """ + if requested in kotlin_member_names: + target = requested + else: + matches = [name for name in kotlin_member_names if python_name(name) == requested] + target = matches[0] if len(matches) == 1 else None + if target is None: + return None + keywords = _method_keywords(kotlin_type_name, target) + return (target, keywords) if keywords else target + + +def _prime(binding) -> None: + """Hand this binding layer the manifest's value-class allowlist and the member rule, once. + + The member rule needs python-multiplatform's `add_member_resolver`; on a binder without it, + methods on a returned proxy stay reachable by their Kotlin names only. + """ + if binding in _PRIMED: + return + for kotlin_type in manifest().get("value-classes", {}).get("raw-primitive-allowed", ()): + binding.allow_raw_primitive(kotlin_type) + add_member_resolver = getattr(binding, "add_member_resolver", None) + if add_member_resolver is not None: + add_member_resolver(member_name) + _PRIMED.add(binding) + + +def kotlin_module(module_name: str): + """The binder's module for the Kotlin package `module_name` maps to.""" + _prime(binding_layer()) + return importlib.import_module(kotlin_package_of(module_name)) + + +def _name_table(kotlin) -> dict: + """Pythonic name -> Kotlin name for everything the Kotlin module reports, with collisions refused.""" + table = {} + for kotlin_name in dir(kotlin): + if kotlin_name.startswith("_"): + continue + pythonic = python_name(kotlin_name) + other = table.get(pythonic) + if other is not None and other != kotlin_name: + raise AttributeError( + f"{pythonic!r} would name both {other!r} and {kotlin_name!r} in {kotlin.__name__}; " + "reach one by its explicit overload spelling" + ) + table[pythonic] = kotlin_name + return table + + +def _declared_type(kotlin, kotlin_name: str): + """`(kind, declared return type)` of the bound name [kotlin_name] in [kotlin], without reading it. + + `python_multiplatform.describe(module, name)` answers from the binder's table and never runs a + constant's getter (python-multiplatform #36). A binder without the two-argument form, or a name + that is not a single bound declaration (an overload set, a child package), answers `None`. + """ + root = sys.modules.get(ROOT_MODULE) + describe = getattr(root, "describe", None) + if describe is None: + return None + try: + described = describe(kotlin, kotlin_name) + except (TypeError, AttributeError): + return None + if not isinstance(described, dict): + return None + return described.get("kind"), described.get("returns") + + +def _describe(fn): + root = sys.modules.get(ROOT_MODULE) + if root is None or not hasattr(root, "describe"): + return () + try: + return root.describe(fn) + except (TypeError, AttributeError): + return () + + +class PythonicFunction: + """A binder callable seen through the naming rule: snake_case keywords and signature. + + Calls go straight to the binder's callable with the keywords translated; overload selection, + defaults and value classes are the binder's. A keyword that matches no parameter is passed on + unchanged, so the binder's own refusal -- which lists the candidates -- is what the caller sees. + """ + + __slots__ = ("_kotlin", "_keywords", "__name__", "__qualname__") + + def __init__(self, kotlin_fn, name): + self._kotlin = kotlin_fn + self.__name__ = name + self.__qualname__ = name + keywords = {} + for row in _describe(kotlin_fn): + for parameter in row.get("parameters", ()): + kotlin_parameter = parameter["name"] + keywords.setdefault(snake_case(kotlin_parameter), kotlin_parameter) + self._keywords = keywords + + @property + def __kotlin__(self): + """The binder's callable this wraps.""" + return self._kotlin + + @property + def __kotlin_rows__(self): + return self._kotlin.__kotlin_rows__ + + @property + def __signature__(self): + kotlin_signature = inspect.signature(self._kotlin) + return kotlin_signature.replace(parameters=[ + parameter if parameter.kind in (parameter.VAR_POSITIONAL, parameter.VAR_KEYWORD) + else parameter.replace(name=snake_case(parameter.name)) + for parameter in kotlin_signature.parameters.values() + ]) + + def __call__(self, *args, **kwargs): + if kwargs: + kwargs = {self._keywords.get(key, key): value for key, value in kwargs.items()} + return self._kotlin(*args, **kwargs) + + def __repr__(self): + return f" {self._kotlin!r}>" + + +def _pythonic(value, name): + if isinstance(value, types.ModuleType): + # A Kotlin object served as a sub-package. Since python-multiplatform #35 the binder lists it + # and exposes it as an attribute of its parent, so the name table reaches it directly. + return KotlinObject(value) + if isinstance(value, type) or not callable(value): + return value + return PythonicFunction(value, name) + + +def _resolve(kotlin, name: str): + """What the Pythonic [name] means in the binder's module [kotlin]: `(value, cacheable)` or `None`. + + A name the module lists is looked up by the rule. An upper-case name it does not list may be a + Kotlin object served as a sub-package (`androidx.compose.ui.Alignment`), which the binder imports + on demand but does not list or expose as an attribute before that (python-multiplatform #35); + it comes back as a `KotlinObject` namespace read by the same rule. + """ + kotlin_name = _name_table(kotlin).get(name) + if kotlin_name is not None: + value = getattr(kotlin, kotlin_name) + # The binder declined to cache it -- a live property, read again on every access -- so this + # layer does not freeze it either. + return _pythonic(value, name), kotlin_name in vars(kotlin) + if name[:1].isupper(): + try: + nested = importlib.import_module(kotlin.__name__ + "." + name) + except ImportError: + return None + return KotlinObject(nested), True + return None + + +_STATIC_GETTER = "STATIC_GETTER" + + +def _constant_groups(kotlin) -> dict: + """Group name -> {Pythonic constant name: Kotlin name}, for the Kotlin object [kotlin]. + + A group is a type nested in the object, `P.G`, that some constant of `P` is declared as; it holds + exactly the constants declared as `P.G` (SPEC S7.1). A constant declared as `P` itself or as any + other type is in no group. Declared types come from `describe(module, name)`, never from a value. + A name the object already has is a Kotlin member and wins, so it is never a group. + """ + prefix = kotlin.__name__ + "." + members = _name_table(kotlin) + groups: dict = {} + for pythonic, kotlin_name in members.items(): + declared = _declared_type(kotlin, kotlin_name) + if declared is None or declared[0] != _STATIC_GETTER or not declared[1]: + continue + group = declared[1][len(prefix):] if declared[1].startswith(prefix) else "" + if not group[:1].isupper() or "." in group or group in members: + continue + groups.setdefault(group, {})[pythonic] = kotlin_name + return groups + + +class KotlinObject: + """A Kotlin object (`Arrangement`, `Alignment`) served as a namespace, read by the module rule. + + Constants are read again on every access, as the binder serves them; functions inside the object + are snake_case (`Arrangement.spaced_by`) and are resolved once. A type nested in the object that + is no member of it groups the constants declared as that type (`Alignment.Horizontal.End`, + `ConstantGroup`); which constants those are is worked out once per object, from declared types. + """ + + __slots__ = ("_kotlin", "_cache", "_groups") + + def __init__(self, kotlin_module): + object.__setattr__(self, "_kotlin", kotlin_module) + object.__setattr__(self, "_cache", {}) + object.__setattr__(self, "_groups", None) + + def _constant_groups(self) -> dict: + if self._groups is None: + object.__setattr__(self, "_groups", _constant_groups(self._kotlin)) + return self._groups + + def __getattr__(self, name): + if name.startswith("__") and name.endswith("__"): + raise AttributeError(name) + cached = self._cache.get(name) + if cached is not None: + return cached + resolved = _resolve(self._kotlin, name) + if resolved is None: + members = self._constant_groups().get(name) if name[:1].isupper() else None + if members is None: + raise AttributeError( + f"{self._kotlin.__name__} has nothing spelled {name!r} under pythonx's naming rule" + ) + # The grouping is metadata and is kept; the constants inside are read on each access. + resolved = ConstantGroup(self, f"{self._kotlin.__name__}.{name}", members), True + value, cacheable = resolved + if cacheable: + self._cache[name] = value + return value + + def __setattr__(self, name, value): + raise AttributeError(f"{self._kotlin.__name__} is a Kotlin object; its members are read-only here") + + def __dir__(self): + return sorted(set(_name_table(self._kotlin)) | set(self._constant_groups())) + + def __repr__(self): + return f"" + + +class ConstantGroup: + """The constants of a Kotlin object declared as one type nested in it: `Alignment.Horizontal`. + + The notebook's grouped spelling (INTENT section 5.3). Reading `Alignment.Horizontal.End` reads + `Alignment.End` through its `KotlinObject`, so both spellings are the same live read of the same + Kotlin getter. Only constants whose *declared* type is exactly this one are here. + """ + + __slots__ = ("_owner", "_kotlin_type", "_members") + + def __init__(self, owner, kotlin_type, members): + object.__setattr__(self, "_owner", owner) + object.__setattr__(self, "_kotlin_type", kotlin_type) + object.__setattr__(self, "_members", dict(members)) + + def __getattr__(self, name): + if name.startswith("__") and name.endswith("__"): + raise AttributeError(name) + if name not in self._members: + raise AttributeError( + f"{self._kotlin_type} groups no constant spelled {name!r}; it holds the constants of " + f"{self._owner._kotlin.__name__} declared as {self._kotlin_type}: " + + ", ".join(sorted(self._members)) + ) + return getattr(self._owner, name) + + def __setattr__(self, name, value): + raise AttributeError(f"{self._kotlin_type} is a group of Kotlin constants; they are read-only here") + + def __dir__(self): + return sorted(self._members) + + def __repr__(self): + return f"" + + +def _aliases(module_name: str) -> dict: + """Name -> `(source module, attribute path in it)`, per the manifest's `[aliases]`. + + An entry under a source module is a list of names (lent under the same name, path = the name) or + a table `{ lent = "Path.To.Attr" }` (a different name, through an attribute path). + """ + borrowed = {} + for source, lent in manifest().get("aliases", {}).get(module_name, {}).items(): + pairs = ((name, name) for name in lent) if isinstance(lent, list) else lent.items() + for name, path in pairs: + borrowed[name] = (source, path) + return borrowed + + +def _borrow(module_name: str, name: str, source: str, path: str): + """The value of the alias [name]: [path] read in [source]. + + A bare name is resolved once and kept in the owner's namespace. A path with attribute steps is + read on every access and not kept, because what it ends in may be a live property -- the binder + serves `Icons.Default` afresh on every read and this layer does not freeze it either. + """ + head, *rest = path.split(".") + value = getattr(importlib.import_module(source), head) + for step in rest: + value = getattr(value, step) + if not rest: + setattr(sys.modules[module_name], name, value) + return value + + +def reexport(module_name: str): + """The module-level `__getattr__` and `__dir__` for the mapped package `module_name`. + + Nothing is resolved here, only when a name is first read, so importing a `pythonx.compose` + module needs neither the manifest row's Kotlin package nor an installed binder. + """ + + def __getattr__(name): + if name.startswith("__") and name.endswith("__"): + raise AttributeError(name) + if importlib.util.find_spec(module_name + "." + name) is not None: + # A submodule file of this package (`ui.modifier`). `from package import name` asks for + # the attribute before it imports a submodule, and only an AttributeError lets it + # fall back -- so this has to answer before anything that needs the binder. + return importlib.import_module(module_name + "." + name) + borrowed = _aliases(module_name).get(name) + if borrowed is not None: + return _borrow(module_name, name, *borrowed) + try: + kotlin = kotlin_module(module_name) + except ImportError as missing: + raise AttributeError( + f"module {module_name!r} has no attribute {name!r} ({missing})" + ) from missing + resolved = _resolve(kotlin, name) + if resolved is None: + raise AttributeError( + f"module {module_name!r} has no attribute {name!r} (nothing in Kotlin package " + f"{kotlin.__name__} is spelled that way under pythonx's naming rule)" + ) + value, cacheable = resolved + if cacheable: + setattr(sys.modules[module_name], name, value) + return value + + def __dir__(): + own = set(vars(sys.modules[module_name])) | set(_aliases(module_name)) + try: + own.update(_name_table(kotlin_module(module_name))) + except (RuntimeError, ImportError): + pass + return sorted(own) + + return __getattr__, __dir__ diff --git a/pythonx/compose/foundation/__init__.py b/pythonx/compose/foundation/__init__.py new file mode 100644 index 0000000..174a2af --- /dev/null +++ b/pythonx/compose/foundation/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.foundation` -- the Pythonic view of `androidx.compose.foundation` (see `pythonx/compose/_reexport.py`).""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/foundation/__init__.pyi b/pythonx/compose/foundation/__init__.pyi new file mode 100644 index 0000000..1b89d73 --- /dev/null +++ b/pythonx/compose/foundation/__init__.pyi @@ -0,0 +1,17 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t + +class BorderStroke: + """Kotlin: androidx.compose.foundation.BorderStroke""" + +class Indication: + """Kotlin: androidx.compose.foundation.Indication""" + +class IndicationNodeFactory(Indication): + """Kotlin: androidx.compose.foundation.IndicationNodeFactory""" + +class MutatorMutex: + """Kotlin: androidx.compose.foundation.MutatorMutex""" + +class ScrollState: + """Kotlin: androidx.compose.foundation.ScrollState""" diff --git a/pythonx/compose/foundation/layout/__init__.py b/pythonx/compose/foundation/layout/__init__.py new file mode 100644 index 0000000..d736780 --- /dev/null +++ b/pythonx/compose/foundation/layout/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.foundation.layout` -- the Pythonic view of `androidx.compose.foundation.layout` (see `pythonx/compose/_reexport.py`).""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/foundation/layout/__init__.pyi b/pythonx/compose/foundation/layout/__init__.pyi new file mode 100644 index 0000000..1c77602 --- /dev/null +++ b/pythonx/compose/foundation/layout/__init__.pyi @@ -0,0 +1,2 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +from pythonx.compose.layout import * diff --git a/pythonx/compose/foundation/text/__init__.py b/pythonx/compose/foundation/text/__init__.py new file mode 100644 index 0000000..35431b0 --- /dev/null +++ b/pythonx/compose/foundation/text/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.foundation.text` -- only the container of `pythonx.compose.foundation.text.input`. + +No manifest row maps `androidx.compose.foundation.text` itself; this file exists so the package +is found by the wheel (`packages.find` does not descend into a directory without one). +""" diff --git a/pythonx/compose/foundation/text/input/__init__.py b/pythonx/compose/foundation/text/input/__init__.py new file mode 100644 index 0000000..e18c8c9 --- /dev/null +++ b/pythonx/compose/foundation/text/input/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.foundation.text.input` -- the Pythonic view of `androidx.compose.foundation.text.input` (see `pythonx/compose/_reexport.py`).""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/foundation/text/input/__init__.pyi b/pythonx/compose/foundation/text/input/__init__.pyi new file mode 100644 index 0000000..f40d055 --- /dev/null +++ b/pythonx/compose/foundation/text/input/__init__.pyi @@ -0,0 +1,78 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t + +class _TextFieldState_clearText(_t.Protocol): + def __call__(self) -> None: ... + +class _TextFieldState_setTextAndPlaceCursorAtEnd(_t.Protocol): + def __call__(self, text: str) -> None: ... + +class _TextFieldState_setTextAndSelectAll(_t.Protocol): + def __call__(self, text: str) -> None: ... + +class _TextFieldState_toTextFieldBuffer(_t.Protocol): + def __call__(self) -> TextFieldBuffer: ... + +class InputTransformation: + """Kotlin: androidx.compose.foundation.text.input.InputTransformation""" + +class KeyboardActionHandler: + """Kotlin: androidx.compose.foundation.text.input.KeyboardActionHandler""" + +class OutputTransformation: + """Kotlin: androidx.compose.foundation.text.input.OutputTransformation""" + +class TextFieldBuffer: + """Kotlin: androidx.compose.foundation.text.input.TextFieldBuffer""" + +class TextFieldLineLimits: + """Kotlin: androidx.compose.foundation.text.input.TextFieldLineLimits""" + +class TextFieldState: + """Kotlin: androidx.compose.foundation.text.input.TextFieldState""" + def __init__(self, initialText: str = ..., initialSelection: _t.Any = ...) -> None: + """Kotlin constructor: androidx.compose.foundation.text.input.TextFieldState (androidx.compose.foundation.text.input.TextFieldState(initialText: kotlin.String, initialSelection: androidx.compose.ui.text.TextRange): androidx.compose.foundation.text.input.TextFieldState)""" + ... + clear_text: _t.ClassVar[_TextFieldState_clearText] + set_text_and_place_cursor_at_end: _t.ClassVar[_TextFieldState_setTextAndPlaceCursorAtEnd] + set_text_and_select_all: _t.ClassVar[_TextFieldState_setTextAndSelectAll] + to_text_field_buffer: _t.ClassVar[_TextFieldState_toTextFieldBuffer] + @property + def composition(self) -> _t.Any | None: + """Kotlin property: androidx.compose.foundation.text.input.TextFieldState.composition (androidx.compose.foundation.text.input.TextFieldState.composition: androidx.compose.ui.text.TextRange?)""" + ... + @property + def selection(self) -> _t.Any: + """Kotlin property: androidx.compose.foundation.text.input.TextFieldState.selection (androidx.compose.foundation.text.input.TextFieldState.selection: androidx.compose.ui.text.TextRange)""" + ... + @property + def text(self) -> str: + """Kotlin property: androidx.compose.foundation.text.input.TextFieldState.text (androidx.compose.foundation.text.input.TextFieldState.text: kotlin.CharSequence)""" + ... + @property + def undo_state(self) -> UndoState: + """Kotlin property: androidx.compose.foundation.text.input.TextFieldState.undoState (androidx.compose.foundation.text.input.TextFieldState.undoState: androidx.compose.foundation.text.input.UndoState)""" + ... + +class UndoState: + """Kotlin: androidx.compose.foundation.text.input.UndoState""" + +def clear_text(receiver: TextFieldState, /) -> None: + """Kotlin: androidx.compose.foundation.text.input.TextFieldState.clearText(): kotlin.Unit""" + ... + +def remember_text_field_state(initial_text: str = ..., initial_selection: _t.Any = ...) -> TextFieldState: + """Kotlin: androidx.compose.foundation.text.input.rememberTextFieldState(initialText: kotlin.String, initialSelection: androidx.compose.ui.text.TextRange): androidx.compose.foundation.text.input.TextFieldState""" + ... + +def set_text_and_place_cursor_at_end(receiver: TextFieldState, /, text: str) -> None: + """Kotlin: androidx.compose.foundation.text.input.TextFieldState.setTextAndPlaceCursorAtEnd(text: kotlin.String): kotlin.Unit""" + ... + +def set_text_and_select_all(receiver: TextFieldState, /, text: str) -> None: + """Kotlin: androidx.compose.foundation.text.input.TextFieldState.setTextAndSelectAll(text: kotlin.String): kotlin.Unit""" + ... + +def to_text_field_buffer(receiver: TextFieldState, /) -> TextFieldBuffer: + """Kotlin: androidx.compose.foundation.text.input.TextFieldState.toTextFieldBuffer(): androidx.compose.foundation.text.input.TextFieldBuffer""" + ... diff --git a/pythonx/compose/layout/__init__.py b/pythonx/compose/layout/__init__.py index a44b584..be61559 100644 --- a/pythonx/compose/layout/__init__.py +++ b/pythonx/compose/layout/__init__.py @@ -1,13 +1,25 @@ -from __future__ import annotations -import traceback +"""`pythonx/compose/layout/__init__.py` -- the Pythonic view of `androidx.compose.foundation.layout`. -try: - from .arrangement import Arrangement +## What used to be here, and why it is gone +A try...except block executing relative import `from .arrangement import Arrangement`. `arrangement.py` +is a docstring module (no `Arrangement` class is declared inside it). Attempting to import `Arrangement` +from `.arrangement` raised `ImportError`. -except Exception as e: - print("-----------------------------------------------------------------------------------------------------------") - traceback.print_exc() - print("ERROR: PyComposeUI Layout Library is not Found.") - print("-----------------------------------------------------------------------------------------------------------") - raise e +## How `pythonx.compose.layout` resolves + +`import pythonx.compose.layout` loads this file. The binder serves the declarations (`Arrangement`, +`Column`, `Row`, `Spacer`, ...) under their Kotlin package, `androidx.compose.foundation.layout`, and +renames nothing; this file re-exports them under Pythonic names by the one rule in +`pythonx/compose/_reexport.py` (SPEC section 3). + +## Calling convention for constants + +Constants on layout objects (e.g., `Arrangement.Start`, `Arrangement.Center`, `Arrangement.SpaceBetween`) +are read as attributes, **without parentheses** (`Arrangement.Start`, `TextStyle.Default`), since +PythonMultiplatform `46be0212`. +""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/layout/__init__.pyi b/pythonx/compose/layout/__init__.pyi new file mode 100644 index 0000000..9899f8d --- /dev/null +++ b/pythonx/compose/layout/__init__.pyi @@ -0,0 +1,878 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.material3 +import pythonx.compose.ui +import pythonx.compose.ui.unit + +class _RowScope_NavigationBarItem(_t.Protocol): + def __call__(self, selected: bool, on_click: _t.Callable[[], None], icon: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., label: _t.Callable[[], None] | None = ..., always_show_label: bool = ..., colors: pythonx.compose.material3.NavigationBarItemColors = ..., interaction_source: _t.Any | None = ...) -> None: ... + +class BoxScope: + """Kotlin: androidx.compose.foundation.layout.BoxScope""" + +class BoxWithConstraintsScope: + """Kotlin: androidx.compose.foundation.layout.BoxWithConstraintsScope""" + @property + def constraints(self) -> _t.Any: + """Kotlin property: androidx.compose.foundation.layout.BoxWithConstraintsScope.constraints (androidx.compose.foundation.layout.BoxWithConstraintsScope.constraints: androidx.compose.ui.unit.Constraints)""" + ... + @property + def max_height(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.BoxWithConstraintsScope.maxHeight (androidx.compose.foundation.layout.BoxWithConstraintsScope.maxHeight: androidx.compose.ui.unit.Dp)""" + ... + @property + def max_width(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.BoxWithConstraintsScope.maxWidth (androidx.compose.foundation.layout.BoxWithConstraintsScope.maxWidth: androidx.compose.ui.unit.Dp)""" + ... + @property + def min_height(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.BoxWithConstraintsScope.minHeight (androidx.compose.foundation.layout.BoxWithConstraintsScope.minHeight: androidx.compose.ui.unit.Dp)""" + ... + @property + def min_width(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.BoxWithConstraintsScope.minWidth (androidx.compose.foundation.layout.BoxWithConstraintsScope.minWidth: androidx.compose.ui.unit.Dp)""" + ... + +class ColumnScope: + """Kotlin: androidx.compose.foundation.layout.ColumnScope""" + +class ContextualFlowColumnScope: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowColumnScope""" + @property + def index_in_line(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowColumnScope.indexInLine (androidx.compose.foundation.layout.ContextualFlowColumnScope.indexInLine: kotlin.Int)""" + ... + @property + def line_index(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowColumnScope.lineIndex (androidx.compose.foundation.layout.ContextualFlowColumnScope.lineIndex: kotlin.Int)""" + ... + @property + def max_height_in_line(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowColumnScope.maxHeightInLine (androidx.compose.foundation.layout.ContextualFlowColumnScope.maxHeightInLine: androidx.compose.ui.unit.Dp)""" + ... + @property + def max_width(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowColumnScope.maxWidth (androidx.compose.foundation.layout.ContextualFlowColumnScope.maxWidth: androidx.compose.ui.unit.Dp)""" + ... + +class ContextualFlowRowScope: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowRowScope""" + @property + def index_in_line(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowRowScope.indexInLine (androidx.compose.foundation.layout.ContextualFlowRowScope.indexInLine: kotlin.Int)""" + ... + @property + def line_index(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowRowScope.lineIndex (androidx.compose.foundation.layout.ContextualFlowRowScope.lineIndex: kotlin.Int)""" + ... + @property + def max_height(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowRowScope.maxHeight (androidx.compose.foundation.layout.ContextualFlowRowScope.maxHeight: androidx.compose.ui.unit.Dp)""" + ... + @property + def max_width_in_line(self) -> float: + """Kotlin property: androidx.compose.foundation.layout.ContextualFlowRowScope.maxWidthInLine (androidx.compose.foundation.layout.ContextualFlowRowScope.maxWidthInLine: androidx.compose.ui.unit.Dp)""" + ... + +class FlexBoxConfig: + """Kotlin: androidx.compose.foundation.layout.FlexBoxConfig""" + +class FlexBoxConfigScope: + """Kotlin: androidx.compose.foundation.layout.FlexBoxConfigScope""" + @property + def constraints(self) -> _t.Any: + """Kotlin property: androidx.compose.foundation.layout.FlexBoxConfigScope.constraints (androidx.compose.foundation.layout.FlexBoxConfigScope.constraints: androidx.compose.ui.unit.Constraints)""" + ... + +class FlexBoxScope: + """Kotlin: androidx.compose.foundation.layout.FlexBoxScope""" + +class FlexConfigScope: + """Kotlin: androidx.compose.foundation.layout.FlexConfigScope""" + @property + def flex_box_cross_axis_max(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlexConfigScope.flexBoxCrossAxisMax (androidx.compose.foundation.layout.FlexConfigScope.flexBoxCrossAxisMax: kotlin.Int)""" + ... + @property + def flex_box_cross_axis_min(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlexConfigScope.flexBoxCrossAxisMin (androidx.compose.foundation.layout.FlexConfigScope.flexBoxCrossAxisMin: kotlin.Int)""" + ... + @property + def flex_box_main_axis_max(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlexConfigScope.flexBoxMainAxisMax (androidx.compose.foundation.layout.FlexConfigScope.flexBoxMainAxisMax: kotlin.Int)""" + ... + @property + def flex_box_main_axis_min(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlexConfigScope.flexBoxMainAxisMin (androidx.compose.foundation.layout.FlexConfigScope.flexBoxMainAxisMin: kotlin.Int)""" + ... + +class FlowColumnOverflowScope: + """Kotlin: androidx.compose.foundation.layout.FlowColumnOverflowScope""" + @property + def shown_item_count(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlowColumnOverflowScope.shownItemCount (androidx.compose.foundation.layout.FlowColumnOverflowScope.shownItemCount: kotlin.Int)""" + ... + @property + def total_item_count(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlowColumnOverflowScope.totalItemCount (androidx.compose.foundation.layout.FlowColumnOverflowScope.totalItemCount: kotlin.Int)""" + ... + +class FlowColumnScope: + """Kotlin: androidx.compose.foundation.layout.FlowColumnScope""" + +class FlowRowOverflowScope: + """Kotlin: androidx.compose.foundation.layout.FlowRowOverflowScope""" + @property + def shown_item_count(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlowRowOverflowScope.shownItemCount (androidx.compose.foundation.layout.FlowRowOverflowScope.shownItemCount: kotlin.Int)""" + ... + @property + def total_item_count(self) -> int: + """Kotlin property: androidx.compose.foundation.layout.FlowRowOverflowScope.totalItemCount (androidx.compose.foundation.layout.FlowRowOverflowScope.totalItemCount: kotlin.Int)""" + ... + +class FlowRowScope: + """Kotlin: androidx.compose.foundation.layout.FlowRowScope""" + +class GridConfigurationScope: + """Kotlin: androidx.compose.foundation.layout.GridConfigurationScope""" + @property + def constraints(self) -> _t.Any: + """Kotlin property: androidx.compose.foundation.layout.GridConfigurationScope.constraints (androidx.compose.foundation.layout.GridConfigurationScope.constraints: androidx.compose.ui.unit.Constraints)""" + ... + @property + def flow(self) -> _t.Any: + """Kotlin property: androidx.compose.foundation.layout.GridConfigurationScope.flow (androidx.compose.foundation.layout.GridConfigurationScope.flow: androidx.compose.foundation.layout.GridFlow)""" + ... + @flow.setter + def flow(self, value: _t.Any) -> None: + """Kotlin property: androidx.compose.foundation.layout.GridConfigurationScope.flow=""" + ... + +class IntrinsicSize: + """Kotlin: androidx.compose.foundation.layout.IntrinsicSize""" + +class MutableWindowInsets: + """Kotlin: androidx.compose.foundation.layout.MutableWindowInsets""" + def __init__(self, initialInsets: _t.Any = ...) -> None: + """Kotlin constructor: androidx.compose.foundation.layout.MutableWindowInsets (androidx.compose.foundation.layout.MutableWindowInsets(initialInsets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.foundation.layout.MutableWindowInsets)""" + ... + @property + def insets(self) -> _t.Any: + """Kotlin property: androidx.compose.foundation.layout.MutableWindowInsets.insets (androidx.compose.foundation.layout.MutableWindowInsets.insets: androidx.compose.foundation.layout.WindowInsets)""" + ... + @insets.setter + def insets(self, value: _t.Any) -> None: + """Kotlin property: androidx.compose.foundation.layout.MutableWindowInsets.insets=""" + ... + +class RowScope: + """Kotlin: androidx.compose.foundation.layout.RowScope""" + NavigationBarItem: _t.ClassVar[_RowScope_NavigationBarItem] + +def BoxWithConstraints(modifier: pythonx.compose.ui.Modifier = ..., content_alignment: _t.Any = ..., propagate_min_constraints: bool = ..., *, content: _t.Callable[[BoxWithConstraintsScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.BoxWithConstraints(modifier: androidx.compose.ui.Modifier, contentAlignment: androidx.compose.ui.Alignment, propagateMinConstraints: kotlin.Boolean, content: kotlin.Function1): kotlin.Unit""" + ... + +def Box__Modifier(modifier: pythonx.compose.ui.Modifier) -> None: + """Kotlin: androidx.compose.foundation.layout.Box(modifier: androidx.compose.ui.Modifier): kotlin.Unit""" + ... + +def Box__Modifier_Alignment_Boolean_Unit(modifier: pythonx.compose.ui.Modifier = ..., content_alignment: _t.Any = ..., propagate_min_constraints: bool = ..., *, content: _t.Callable[[BoxScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.Box(modifier: androidx.compose.ui.Modifier, contentAlignment: androidx.compose.ui.Alignment, propagateMinConstraints: kotlin.Boolean, content: kotlin.Function1): kotlin.Unit""" + ... + +def Column(modifier: pythonx.compose.ui.Modifier = ..., vertical_arrangement: Arrangement.Vertical = ..., horizontal_alignment: pythonx.compose.ui.Alignment.Horizontal = ..., *, content: _t.Callable[[ColumnScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.Column(modifier: androidx.compose.ui.Modifier, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, horizontalAlignment: androidx.compose.ui.Alignment.Horizontal, content: kotlin.Function1): kotlin.Unit""" + ... + +def ContextualFlowColumn(item_count: int, modifier: pythonx.compose.ui.Modifier = ..., vertical_arrangement: Arrangement.Vertical = ..., horizontal_arrangement: Arrangement.Horizontal = ..., item_horizontal_alignment: pythonx.compose.ui.Alignment.Horizontal = ..., max_items_in_each_column: int = ..., max_lines: int = ..., overflow: _t.Any = ..., *, content: _t.Callable[[ContextualFlowColumnScope, int], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowColumn(itemCount: kotlin.Int, modifier: androidx.compose.ui.Modifier, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, itemHorizontalAlignment: androidx.compose.ui.Alignment.Horizontal, maxItemsInEachColumn: kotlin.Int, maxLines: kotlin.Int, overflow: androidx.compose.foundation.layout.ContextualFlowColumnOverflow, content: kotlin.Function2): kotlin.Unit""" + ... + +def ContextualFlowRow(item_count: int, modifier: pythonx.compose.ui.Modifier = ..., horizontal_arrangement: Arrangement.Horizontal = ..., vertical_arrangement: Arrangement.Vertical = ..., item_vertical_alignment: pythonx.compose.ui.Alignment.Vertical = ..., max_items_in_each_row: int = ..., max_lines: int = ..., overflow: _t.Any = ..., *, content: _t.Callable[[ContextualFlowRowScope, int], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowRow(itemCount: kotlin.Int, modifier: androidx.compose.ui.Modifier, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, itemVerticalAlignment: androidx.compose.ui.Alignment.Vertical, maxItemsInEachRow: kotlin.Int, maxLines: kotlin.Int, overflow: androidx.compose.foundation.layout.ContextualFlowRowOverflow, content: kotlin.Function2): kotlin.Unit""" + ... + +def FlexBox(modifier: pythonx.compose.ui.Modifier = ..., config: FlexBoxConfig = ..., *, content: _t.Callable[[FlexBoxScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.FlexBox(modifier: androidx.compose.ui.Modifier, config: androidx.compose.foundation.layout.FlexBoxConfig, content: kotlin.Function1): kotlin.Unit""" + ... + +def FlowColumn__Modifier_Vertical_Horizontal_Horizontal_Int_Int_FlowColumnOverflow_Unit(modifier: pythonx.compose.ui.Modifier = ..., vertical_arrangement: Arrangement.Vertical = ..., horizontal_arrangement: Arrangement.Horizontal = ..., item_horizontal_alignment: pythonx.compose.ui.Alignment.Horizontal = ..., max_items_in_each_column: int = ..., max_lines: int = ..., overflow: _t.Any = ..., *, content: _t.Callable[[FlowColumnScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.FlowColumn(modifier: androidx.compose.ui.Modifier, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, itemHorizontalAlignment: androidx.compose.ui.Alignment.Horizontal, maxItemsInEachColumn: kotlin.Int, maxLines: kotlin.Int, overflow: androidx.compose.foundation.layout.FlowColumnOverflow, content: kotlin.Function1): kotlin.Unit""" + ... + +def FlowColumn__Modifier_Vertical_Horizontal_Horizontal_Int_Int_Unit(modifier: pythonx.compose.ui.Modifier = ..., vertical_arrangement: Arrangement.Vertical = ..., horizontal_arrangement: Arrangement.Horizontal = ..., item_horizontal_alignment: pythonx.compose.ui.Alignment.Horizontal = ..., max_items_in_each_column: int = ..., max_lines: int = ..., *, content: _t.Callable[[FlowColumnScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.FlowColumn(modifier: androidx.compose.ui.Modifier, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, itemHorizontalAlignment: androidx.compose.ui.Alignment.Horizontal, maxItemsInEachColumn: kotlin.Int, maxLines: kotlin.Int, content: kotlin.Function1): kotlin.Unit""" + ... + +def FlowRow__Modifier_Horizontal_Vertical_Vertical_Int_Int_FlowRowOverflow_Unit(modifier: pythonx.compose.ui.Modifier = ..., horizontal_arrangement: Arrangement.Horizontal = ..., vertical_arrangement: Arrangement.Vertical = ..., item_vertical_alignment: pythonx.compose.ui.Alignment.Vertical = ..., max_items_in_each_row: int = ..., max_lines: int = ..., overflow: _t.Any = ..., *, content: _t.Callable[[FlowRowScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.FlowRow(modifier: androidx.compose.ui.Modifier, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, itemVerticalAlignment: androidx.compose.ui.Alignment.Vertical, maxItemsInEachRow: kotlin.Int, maxLines: kotlin.Int, overflow: androidx.compose.foundation.layout.FlowRowOverflow, content: kotlin.Function1): kotlin.Unit""" + ... + +def FlowRow__Modifier_Horizontal_Vertical_Vertical_Int_Int_Unit(modifier: pythonx.compose.ui.Modifier = ..., horizontal_arrangement: Arrangement.Horizontal = ..., vertical_arrangement: Arrangement.Vertical = ..., item_vertical_alignment: pythonx.compose.ui.Alignment.Vertical = ..., max_items_in_each_row: int = ..., max_lines: int = ..., *, content: _t.Callable[[FlowRowScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.FlowRow(modifier: androidx.compose.ui.Modifier, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, itemVerticalAlignment: androidx.compose.ui.Alignment.Vertical, maxItemsInEachRow: kotlin.Int, maxLines: kotlin.Int, content: kotlin.Function1): kotlin.Unit""" + ... + +def Fr(value: float) -> float: + """Kotlin: androidx.compose.foundation.layout.Fr(value: kotlin.Float): androidx.compose.foundation.layout.Fr""" + ... + +def Grid(config: _t.Callable[[GridConfigurationScope], None], modifier: pythonx.compose.ui.Modifier = ..., *, content: _t.Callable[[_t.Any], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.Grid(config: kotlin.Function1, modifier: androidx.compose.ui.Modifier, content: kotlin.Function1): kotlin.Unit""" + ... + +def PaddingValues__Dp(all: float) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.PaddingValues(all: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + +def PaddingValues__Dp_Dp(horizontal: float = ..., vertical: float = ...) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.PaddingValues(horizontal: androidx.compose.ui.unit.Dp, vertical: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + +def PaddingValues__Dp_Dp_Dp_Dp(start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.PaddingValues(start: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + +def Row(modifier: pythonx.compose.ui.Modifier = ..., horizontal_arrangement: Arrangement.Horizontal = ..., vertical_alignment: pythonx.compose.ui.Alignment.Vertical = ..., *, content: _t.Callable[[RowScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.Row(modifier: androidx.compose.ui.Modifier, horizontalArrangement: androidx.compose.foundation.layout.Arrangement.Horizontal, verticalAlignment: androidx.compose.ui.Alignment.Vertical, content: kotlin.Function1): kotlin.Unit""" + ... + +def Spacer(modifier: pythonx.compose.ui.Modifier) -> None: + """Kotlin: androidx.compose.foundation.layout.Spacer(modifier: androidx.compose.ui.Modifier): kotlin.Unit""" + ... + +def WindowInsets__0() -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets(): androidx.compose.foundation.layout.WindowInsets""" + ... + +def WindowInsets__Dp_Dp_Dp_Dp(left: float = ..., top: float = ..., right: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets(left: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, right: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.WindowInsets""" + ... + +def WindowInsets__Int_Int_Int_Int(left: int = ..., top: int = ..., right: int = ..., bottom: int = ...) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets(left: kotlin.Int, top: kotlin.Int, right: kotlin.Int, bottom: kotlin.Int): androidx.compose.foundation.layout.WindowInsets""" + ... + +def absolute_offset__Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, x: float = ..., y: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.absoluteOffset(x: androidx.compose.ui.unit.Dp, y: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def absolute_offset__IntOffset(receiver: pythonx.compose.ui.Modifier, /, offset: _t.Callable[[_t.Any], _t.Any]) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.absoluteOffset(offset: kotlin.Function1): androidx.compose.ui.Modifier""" + ... + +def absolute_padding(receiver: pythonx.compose.ui.Modifier, /, left: float = ..., top: float = ..., right: float = ..., bottom: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.absolutePadding(left: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, right: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def add(receiver: _t.Any, /, insets: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets.add(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.foundation.layout.WindowInsets""" + ... + +def as_padding_values__0(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets.asPaddingValues(): androidx.compose.foundation.layout.PaddingValues""" + ... + +def as_padding_values__Density(receiver: _t.Any, /, density: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets.asPaddingValues(density: androidx.compose.ui.unit.Density): androidx.compose.foundation.layout.PaddingValues""" + ... + +def aspect_ratio(receiver: pythonx.compose.ui.Modifier, /, ratio: float, match_height_constraints_first: bool = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.aspectRatio(ratio: kotlin.Float, matchHeightConstraintsFirst: kotlin.Boolean): androidx.compose.ui.Modifier""" + ... + +def calculate_end_padding(receiver: _t.Any, /, layout_direction: pythonx.compose.ui.unit.LayoutDirection) -> float: + """Kotlin: androidx.compose.foundation.layout.PaddingValues.calculateEndPadding(layoutDirection: androidx.compose.ui.unit.LayoutDirection): androidx.compose.ui.unit.Dp""" + ... + +def calculate_start_padding(receiver: _t.Any, /, layout_direction: pythonx.compose.ui.unit.LayoutDirection) -> float: + """Kotlin: androidx.compose.foundation.layout.PaddingValues.calculateStartPadding(layoutDirection: androidx.compose.ui.unit.LayoutDirection): androidx.compose.ui.unit.Dp""" + ... + +def caption_bar_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.captionBarPadding(): androidx.compose.ui.Modifier""" + ... + +def consume_window_insets__PaddingValues(receiver: pythonx.compose.ui.Modifier, /, padding_values: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.consumeWindowInsets(paddingValues: androidx.compose.foundation.layout.PaddingValues): androidx.compose.ui.Modifier""" + ... + +def consume_window_insets__WindowInsets(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.consumeWindowInsets(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.ui.Modifier""" + ... + +def default_min_size(receiver: pythonx.compose.ui.Modifier, /, min_width: float = ..., min_height: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.defaultMinSize(minWidth: androidx.compose.ui.unit.Dp, minHeight: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def display_cutout_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.displayCutoutPadding(): androidx.compose.ui.Modifier""" + ... + +def exclude(receiver: _t.Any, /, insets: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets.exclude(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.foundation.layout.WindowInsets""" + ... + +def fill_max_height(receiver: pythonx.compose.ui.Modifier, /, fraction: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.fillMaxHeight(fraction: kotlin.Float): androidx.compose.ui.Modifier""" + ... + +def fill_max_size(receiver: pythonx.compose.ui.Modifier, /, fraction: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.fillMaxSize(fraction: kotlin.Float): androidx.compose.ui.Modifier""" + ... + +def fill_max_width(receiver: pythonx.compose.ui.Modifier, /, fraction: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.fillMaxWidth(fraction: kotlin.Float): androidx.compose.ui.Modifier""" + ... + +def fit_inside(receiver: pythonx.compose.ui.Modifier, /, rulers: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.fitInside(rulers: androidx.compose.ui.layout.RectRulers): androidx.compose.ui.Modifier""" + ... + +def fit_outside(receiver: pythonx.compose.ui.Modifier, /, rulers: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.fitOutside(rulers: androidx.compose.ui.layout.RectRulers): androidx.compose.ui.Modifier""" + ... + +def height_in(receiver: pythonx.compose.ui.Modifier, /, min: float = ..., max: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.heightIn(min: androidx.compose.ui.unit.Dp, max: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def height__Dp(receiver: pythonx.compose.ui.Modifier, /, height: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.height(height: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def height__IntrinsicSize(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.height(intrinsicSize: androidx.compose.foundation.layout.IntrinsicSize): androidx.compose.ui.Modifier""" + ... + +def ime_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.imePadding(): androidx.compose.ui.Modifier""" + ... + +def mandatory_system_gestures_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.mandatorySystemGesturesPadding(): androidx.compose.ui.Modifier""" + ... + +def minus(receiver: _t.Any, /, other: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.PaddingValues.minus(other: androidx.compose.foundation.layout.PaddingValues): androidx.compose.foundation.layout.PaddingValues""" + ... + +def navigation_bars_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.navigationBarsPadding(): androidx.compose.ui.Modifier""" + ... + +def offset__Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, x: float = ..., y: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.offset(x: androidx.compose.ui.unit.Dp, y: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def offset__IntOffset(receiver: pythonx.compose.ui.Modifier, /, offset: _t.Callable[[_t.Any], _t.Any]) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.offset(offset: kotlin.Function1): androidx.compose.ui.Modifier""" + ... + +def on_consumed_window_insets_changed(receiver: pythonx.compose.ui.Modifier, /, block: _t.Callable[[_t.Any], None]) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.onConsumedWindowInsetsChanged(block: kotlin.Function1): androidx.compose.ui.Modifier""" + ... + +def only(receiver: _t.Any, /, sides: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets.only(sides: androidx.compose.foundation.layout.WindowInsetsSides): androidx.compose.foundation.layout.WindowInsets""" + ... + +def padding_from_baseline__Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, top: float = ..., bottom: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.paddingFromBaseline(top: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def padding_from_baseline__TextUnit_TextUnit(receiver: pythonx.compose.ui.Modifier, /, top: _t.Any = ..., bottom: _t.Any = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.paddingFromBaseline(top: androidx.compose.ui.unit.TextUnit, bottom: androidx.compose.ui.unit.TextUnit): androidx.compose.ui.Modifier""" + ... + +def padding_from__AlignmentLine_Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, alignment_line: _t.Any, before: float = ..., after: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.paddingFrom(alignmentLine: androidx.compose.ui.layout.AlignmentLine, before: androidx.compose.ui.unit.Dp, after: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def padding_from__AlignmentLine_TextUnit_TextUnit(receiver: pythonx.compose.ui.Modifier, /, alignment_line: _t.Any, before: _t.Any = ..., after: _t.Any = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.paddingFrom(alignmentLine: androidx.compose.ui.layout.AlignmentLine, before: androidx.compose.ui.unit.TextUnit, after: androidx.compose.ui.unit.TextUnit): androidx.compose.ui.Modifier""" + ... + +def padding__Dp(receiver: pythonx.compose.ui.Modifier, /, all: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.padding(all: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def padding__Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, horizontal: float = ..., vertical: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.padding(horizontal: androidx.compose.ui.unit.Dp, vertical: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def padding__Dp_Dp_Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.padding(start: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def padding__PaddingValues(receiver: pythonx.compose.ui.Modifier, /, padding_values: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.padding(paddingValues: androidx.compose.foundation.layout.PaddingValues): androidx.compose.ui.Modifier""" + ... + +def plus(receiver: _t.Any, /, other: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.PaddingValues.plus(other: androidx.compose.foundation.layout.PaddingValues): androidx.compose.foundation.layout.PaddingValues""" + ... + +def recalculate_window_insets(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.recalculateWindowInsets(): androidx.compose.ui.Modifier""" + ... + +def required_height_in(receiver: pythonx.compose.ui.Modifier, /, min: float = ..., max: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredHeightIn(min: androidx.compose.ui.unit.Dp, max: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_height__Dp(receiver: pythonx.compose.ui.Modifier, /, height: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredHeight(height: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_height__IntrinsicSize(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredHeight(intrinsicSize: androidx.compose.foundation.layout.IntrinsicSize): androidx.compose.ui.Modifier""" + ... + +def required_size_in(receiver: pythonx.compose.ui.Modifier, /, min_width: float = ..., min_height: float = ..., max_width: float = ..., max_height: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredSizeIn(minWidth: androidx.compose.ui.unit.Dp, minHeight: androidx.compose.ui.unit.Dp, maxWidth: androidx.compose.ui.unit.Dp, maxHeight: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_size__Dp(receiver: pythonx.compose.ui.Modifier, /, size: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredSize(size: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_size__DpSize(receiver: pythonx.compose.ui.Modifier, /, size: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredSize(size: androidx.compose.ui.unit.DpSize): androidx.compose.ui.Modifier""" + ... + +def required_size__Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, width: float, height: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredSize(width: androidx.compose.ui.unit.Dp, height: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_width_in(receiver: pythonx.compose.ui.Modifier, /, min: float = ..., max: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredWidthIn(min: androidx.compose.ui.unit.Dp, max: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_width__Dp(receiver: pythonx.compose.ui.Modifier, /, width: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredWidth(width: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def required_width__IntrinsicSize(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.requiredWidth(intrinsicSize: androidx.compose.foundation.layout.IntrinsicSize): androidx.compose.ui.Modifier""" + ... + +def safe_content_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.safeContentPadding(): androidx.compose.ui.Modifier""" + ... + +def safe_drawing_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.safeDrawingPadding(): androidx.compose.ui.Modifier""" + ... + +def safe_gestures_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.safeGesturesPadding(): androidx.compose.ui.Modifier""" + ... + +def size_in(receiver: pythonx.compose.ui.Modifier, /, min_width: float = ..., min_height: float = ..., max_width: float = ..., max_height: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.sizeIn(minWidth: androidx.compose.ui.unit.Dp, minHeight: androidx.compose.ui.unit.Dp, maxWidth: androidx.compose.ui.unit.Dp, maxHeight: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def size__Dp(receiver: pythonx.compose.ui.Modifier, /, size: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.size(size: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def size__DpSize(receiver: pythonx.compose.ui.Modifier, /, size: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.size(size: androidx.compose.ui.unit.DpSize): androidx.compose.ui.Modifier""" + ... + +def size__Dp_Dp(receiver: pythonx.compose.ui.Modifier, /, width: float, height: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.size(width: androidx.compose.ui.unit.Dp, height: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def status_bars_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.statusBarsPadding(): androidx.compose.ui.Modifier""" + ... + +def system_bars_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.systemBarsPadding(): androidx.compose.ui.Modifier""" + ... + +def system_gestures_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.systemGesturesPadding(): androidx.compose.ui.Modifier""" + ... + +def union(receiver: _t.Any, /, insets: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.WindowInsets.union(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.foundation.layout.WindowInsets""" + ... + +def visible(receiver: pythonx.compose.ui.Modifier, /, visible: bool) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.visible(visible: kotlin.Boolean): androidx.compose.ui.Modifier""" + ... + +def waterfall_padding(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.waterfallPadding(): androidx.compose.ui.Modifier""" + ... + +def width_in(receiver: pythonx.compose.ui.Modifier, /, min: float = ..., max: float = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.widthIn(min: androidx.compose.ui.unit.Dp, max: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def width__Dp(receiver: pythonx.compose.ui.Modifier, /, width: float) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.width(width: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def width__IntrinsicSize(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.width(intrinsicSize: androidx.compose.foundation.layout.IntrinsicSize): androidx.compose.ui.Modifier""" + ... + +def window_insets_bottom_height(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.windowInsetsBottomHeight(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.ui.Modifier""" + ... + +def window_insets_end_width(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.windowInsetsEndWidth(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.ui.Modifier""" + ... + +def window_insets_padding(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.windowInsetsPadding(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.ui.Modifier""" + ... + +def window_insets_start_width(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.windowInsetsStartWidth(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.ui.Modifier""" + ... + +def window_insets_top_height(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.windowInsetsTopHeight(insets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.ui.Modifier""" + ... + +def wrap_content_height(receiver: pythonx.compose.ui.Modifier, /, align: pythonx.compose.ui.Alignment.Vertical = ..., unbounded: bool = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.wrapContentHeight(align: androidx.compose.ui.Alignment.Vertical, unbounded: kotlin.Boolean): androidx.compose.ui.Modifier""" + ... + +def wrap_content_size(receiver: pythonx.compose.ui.Modifier, /, align: _t.Any = ..., unbounded: bool = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.wrapContentSize(align: androidx.compose.ui.Alignment, unbounded: kotlin.Boolean): androidx.compose.ui.Modifier""" + ... + +def wrap_content_width(receiver: pythonx.compose.ui.Modifier, /, align: pythonx.compose.ui.Alignment.Horizontal = ..., unbounded: bool = ...) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.wrapContentWidth(align: androidx.compose.ui.Alignment.Horizontal, unbounded: kotlin.Boolean): androidx.compose.ui.Modifier""" + ... + +@_t.overload +def Box(modifier: pythonx.compose.ui.Modifier) -> None: ... +@_t.overload +def Box(modifier: pythonx.compose.ui.Modifier = ..., content_alignment: _t.Any = ..., propagate_min_constraints: bool = ..., *, content: _t.Callable[[BoxScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def FlowColumn(modifier: pythonx.compose.ui.Modifier = ..., vertical_arrangement: Arrangement.Vertical = ..., horizontal_arrangement: Arrangement.Horizontal = ..., item_horizontal_alignment: pythonx.compose.ui.Alignment.Horizontal = ..., max_items_in_each_column: int = ..., max_lines: int = ..., overflow: _t.Any = ..., *, content: _t.Callable[[FlowColumnScope], None]) -> None: ... +@_t.overload +def FlowColumn(modifier: pythonx.compose.ui.Modifier = ..., vertical_arrangement: Arrangement.Vertical = ..., horizontal_arrangement: Arrangement.Horizontal = ..., item_horizontal_alignment: pythonx.compose.ui.Alignment.Horizontal = ..., max_items_in_each_column: int = ..., max_lines: int = ..., *, content: _t.Callable[[FlowColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def FlowRow(modifier: pythonx.compose.ui.Modifier = ..., horizontal_arrangement: Arrangement.Horizontal = ..., vertical_arrangement: Arrangement.Vertical = ..., item_vertical_alignment: pythonx.compose.ui.Alignment.Vertical = ..., max_items_in_each_row: int = ..., max_lines: int = ..., overflow: _t.Any = ..., *, content: _t.Callable[[FlowRowScope], None]) -> None: ... +@_t.overload +def FlowRow(modifier: pythonx.compose.ui.Modifier = ..., horizontal_arrangement: Arrangement.Horizontal = ..., vertical_arrangement: Arrangement.Vertical = ..., item_vertical_alignment: pythonx.compose.ui.Alignment.Vertical = ..., max_items_in_each_row: int = ..., max_lines: int = ..., *, content: _t.Callable[[FlowRowScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def PaddingValues(all: float) -> _t.Any: ... +@_t.overload +def PaddingValues(horizontal: float = ..., vertical: float = ...) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def PaddingValues(start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def WindowInsets() -> _t.Any: ... +@_t.overload +def WindowInsets(left: float = ..., top: float = ..., right: float = ..., bottom: float = ...) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def WindowInsets(left: int = ..., top: int = ..., right: int = ..., bottom: int = ...) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def absolute_offset(receiver: pythonx.compose.ui.Modifier, /, x: float = ..., y: float = ...) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def absolute_offset(receiver: pythonx.compose.ui.Modifier, /, offset: _t.Callable[[_t.Any], _t.Any]) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def as_padding_values(receiver: _t.Any, /) -> _t.Any: ... +@_t.overload +def as_padding_values(receiver: _t.Any, /, density: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def consume_window_insets(receiver: pythonx.compose.ui.Modifier, /, padding_values: _t.Any) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def consume_window_insets(receiver: pythonx.compose.ui.Modifier, /, insets: _t.Any) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def height(receiver: pythonx.compose.ui.Modifier, /, height: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def height(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def offset(receiver: pythonx.compose.ui.Modifier, /, x: float = ..., y: float = ...) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def offset(receiver: pythonx.compose.ui.Modifier, /, offset: _t.Callable[[_t.Any], _t.Any]) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def padding(receiver: pythonx.compose.ui.Modifier, /, all: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def padding(receiver: pythonx.compose.ui.Modifier, /, horizontal: float = ..., vertical: float = ...) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] +@_t.overload +def padding(receiver: pythonx.compose.ui.Modifier, /, start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] +@_t.overload +def padding(receiver: pythonx.compose.ui.Modifier, /, padding_values: _t.Any) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def padding_from(receiver: pythonx.compose.ui.Modifier, /, alignment_line: _t.Any, before: float = ..., after: float = ...) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def padding_from(receiver: pythonx.compose.ui.Modifier, /, alignment_line: _t.Any, before: _t.Any = ..., after: _t.Any = ...) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def padding_from_baseline(receiver: pythonx.compose.ui.Modifier, /, top: float = ..., bottom: float = ...) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def padding_from_baseline(receiver: pythonx.compose.ui.Modifier, /, top: _t.Any = ..., bottom: _t.Any = ...) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def required_height(receiver: pythonx.compose.ui.Modifier, /, height: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def required_height(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def required_size(receiver: pythonx.compose.ui.Modifier, /, size: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def required_size(receiver: pythonx.compose.ui.Modifier, /, size: _t.Any) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] +@_t.overload +def required_size(receiver: pythonx.compose.ui.Modifier, /, width: float, height: float) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def required_width(receiver: pythonx.compose.ui.Modifier, /, width: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def required_width(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def size(receiver: pythonx.compose.ui.Modifier, /, size: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def size(receiver: pythonx.compose.ui.Modifier, /, size: _t.Any) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] +@_t.overload +def size(receiver: pythonx.compose.ui.Modifier, /, width: float, height: float) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def width(receiver: pythonx.compose.ui.Modifier, /, width: float) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def width(receiver: pythonx.compose.ui.Modifier, /, intrinsic_size: IntrinsicSize) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +class Arrangement: + """Kotlin: androidx.compose.foundation.layout.Arrangement""" + class Horizontal: + """Kotlin: androidx.compose.foundation.layout.Arrangement.Horizontal""" + End: _t.ClassVar[Arrangement.Horizontal] + Start: _t.ClassVar[Arrangement.Horizontal] + class HorizontalOrVertical(Arrangement.Horizontal, Arrangement.Vertical): + """Kotlin: androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + Center: _t.ClassVar[Arrangement.HorizontalOrVertical] + SpaceAround: _t.ClassVar[Arrangement.HorizontalOrVertical] + SpaceBetween: _t.ClassVar[Arrangement.HorizontalOrVertical] + SpaceEvenly: _t.ClassVar[Arrangement.HorizontalOrVertical] + class Vertical: + """Kotlin: androidx.compose.foundation.layout.Arrangement.Vertical""" + Bottom: _t.ClassVar[Arrangement.Vertical] + Top: _t.ClassVar[Arrangement.Vertical] + Bottom: _t.ClassVar[Arrangement.Vertical] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Bottom(): androidx.compose.foundation.layout.Arrangement.Vertical""" + Center: _t.ClassVar[Arrangement.HorizontalOrVertical] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Center(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + End: _t.ClassVar[Arrangement.Horizontal] + """Kotlin: androidx.compose.foundation.layout.Arrangement.End(): androidx.compose.foundation.layout.Arrangement.Horizontal""" + SpaceAround: _t.ClassVar[Arrangement.HorizontalOrVertical] + """Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceAround(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + SpaceBetween: _t.ClassVar[Arrangement.HorizontalOrVertical] + """Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceBetween(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + SpaceEvenly: _t.ClassVar[Arrangement.HorizontalOrVertical] + """Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceEvenly(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + Start: _t.ClassVar[Arrangement.Horizontal] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Start(): androidx.compose.foundation.layout.Arrangement.Horizontal""" + Top: _t.ClassVar[Arrangement.Vertical] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Top(): androidx.compose.foundation.layout.Arrangement.Vertical""" + @staticmethod + def aligned__Horizontal(alignment: pythonx.compose.ui.Alignment.Horizontal) -> Arrangement.Horizontal: + """Kotlin: androidx.compose.foundation.layout.Arrangement.aligned(alignment: androidx.compose.ui.Alignment.Horizontal): androidx.compose.foundation.layout.Arrangement.Horizontal""" + ... + @staticmethod + def aligned__Vertical(alignment: pythonx.compose.ui.Alignment.Vertical) -> Arrangement.Vertical: + """Kotlin: androidx.compose.foundation.layout.Arrangement.aligned(alignment: androidx.compose.ui.Alignment.Vertical): androidx.compose.foundation.layout.Arrangement.Vertical""" + ... + @staticmethod + def spaced_by__Dp(space: float) -> Arrangement.HorizontalOrVertical: + """Kotlin: androidx.compose.foundation.layout.Arrangement.spacedBy(space: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + ... + @staticmethod + def spaced_by__Dp_Horizontal(space: float, alignment: pythonx.compose.ui.Alignment.Horizontal) -> Arrangement.Horizontal: + """Kotlin: androidx.compose.foundation.layout.Arrangement.spacedBy(space: androidx.compose.ui.unit.Dp, alignment: androidx.compose.ui.Alignment.Horizontal): androidx.compose.foundation.layout.Arrangement.Horizontal""" + ... + @staticmethod + def spaced_by__Dp_Vertical(space: float, alignment: pythonx.compose.ui.Alignment.Vertical) -> Arrangement.Vertical: + """Kotlin: androidx.compose.foundation.layout.Arrangement.spacedBy(space: androidx.compose.ui.unit.Dp, alignment: androidx.compose.ui.Alignment.Vertical): androidx.compose.foundation.layout.Arrangement.Vertical""" + ... + @staticmethod + @_t.overload + def aligned(alignment: pythonx.compose.ui.Alignment.Horizontal) -> Arrangement.Horizontal: ... + @staticmethod + @_t.overload + def aligned(alignment: pythonx.compose.ui.Alignment.Vertical) -> Arrangement.Vertical: ... # type: ignore[overload-cannot-match] + @staticmethod + @_t.overload + def spaced_by(space: float) -> Arrangement.HorizontalOrVertical: ... + @staticmethod + @_t.overload + def spaced_by(space: float, alignment: pythonx.compose.ui.Alignment.Horizontal) -> Arrangement.Horizontal: ... # type: ignore[overload-cannot-match] + @staticmethod + @_t.overload + def spaced_by(space: float, alignment: pythonx.compose.ui.Alignment.Vertical) -> Arrangement.Vertical: ... # type: ignore[overload-cannot-match] + +class ContextualFlowColumnOverflow: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowColumnOverflow""" + Clip: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.ContextualFlowColumnOverflow.Clip(): androidx.compose.foundation.layout.ContextualFlowColumnOverflow""" + Visible: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.ContextualFlowColumnOverflow.Visible(): androidx.compose.foundation.layout.ContextualFlowColumnOverflow""" + +class ContextualFlowRowOverflow: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowRowOverflow""" + Clip: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.ContextualFlowRowOverflow.Clip(): androidx.compose.foundation.layout.ContextualFlowRowOverflow""" + Visible: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.ContextualFlowRowOverflow.Visible(): androidx.compose.foundation.layout.ContextualFlowRowOverflow""" + +class FlexAlignContent: + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent.Center(): androidx.compose.foundation.layout.FlexAlignContent""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent.End(): androidx.compose.foundation.layout.FlexAlignContent""" + SpaceAround: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent.SpaceAround(): androidx.compose.foundation.layout.FlexAlignContent""" + SpaceBetween: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent.SpaceBetween(): androidx.compose.foundation.layout.FlexAlignContent""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent.Start(): androidx.compose.foundation.layout.FlexAlignContent""" + Stretch: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignContent.Stretch(): androidx.compose.foundation.layout.FlexAlignContent""" + +class FlexAlignItems: + """Kotlin: androidx.compose.foundation.layout.FlexAlignItems""" + Baseline: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignItems.Baseline(): androidx.compose.foundation.layout.FlexAlignItems""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignItems.Center(): androidx.compose.foundation.layout.FlexAlignItems""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignItems.End(): androidx.compose.foundation.layout.FlexAlignItems""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignItems.Start(): androidx.compose.foundation.layout.FlexAlignItems""" + Stretch: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignItems.Stretch(): androidx.compose.foundation.layout.FlexAlignItems""" + +class FlexAlignSelf: + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf""" + Auto: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf.Auto(): androidx.compose.foundation.layout.FlexAlignSelf""" + Baseline: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf.Baseline(): androidx.compose.foundation.layout.FlexAlignSelf""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf.Center(): androidx.compose.foundation.layout.FlexAlignSelf""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf.End(): androidx.compose.foundation.layout.FlexAlignSelf""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf.Start(): androidx.compose.foundation.layout.FlexAlignSelf""" + Stretch: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexAlignSelf.Stretch(): androidx.compose.foundation.layout.FlexAlignSelf""" + +class FlexBasis: + """Kotlin: androidx.compose.foundation.layout.FlexBasis""" + Auto: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexBasis.Auto(): androidx.compose.foundation.layout.FlexBasis""" + +class FlexDirection: + """Kotlin: androidx.compose.foundation.layout.FlexDirection""" + Column: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexDirection.Column(): androidx.compose.foundation.layout.FlexDirection""" + ColumnReverse: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexDirection.ColumnReverse(): androidx.compose.foundation.layout.FlexDirection""" + Row: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexDirection.Row(): androidx.compose.foundation.layout.FlexDirection""" + RowReverse: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexDirection.RowReverse(): androidx.compose.foundation.layout.FlexDirection""" + +class FlexJustifyContent: + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent.Center(): androidx.compose.foundation.layout.FlexJustifyContent""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent.End(): androidx.compose.foundation.layout.FlexJustifyContent""" + SpaceAround: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent.SpaceAround(): androidx.compose.foundation.layout.FlexJustifyContent""" + SpaceBetween: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent.SpaceBetween(): androidx.compose.foundation.layout.FlexJustifyContent""" + SpaceEvenly: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent.SpaceEvenly(): androidx.compose.foundation.layout.FlexJustifyContent""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexJustifyContent.Start(): androidx.compose.foundation.layout.FlexJustifyContent""" + +class FlexWrap: + """Kotlin: androidx.compose.foundation.layout.FlexWrap""" + NoWrap: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexWrap.NoWrap(): androidx.compose.foundation.layout.FlexWrap""" + Wrap: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexWrap.Wrap(): androidx.compose.foundation.layout.FlexWrap""" + WrapReverse: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlexWrap.WrapReverse(): androidx.compose.foundation.layout.FlexWrap""" + +class FlowColumnOverflow: + """Kotlin: androidx.compose.foundation.layout.FlowColumnOverflow""" + Clip: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlowColumnOverflow.Clip(): androidx.compose.foundation.layout.FlowColumnOverflow""" + Visible: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlowColumnOverflow.Visible(): androidx.compose.foundation.layout.FlowColumnOverflow""" + +class FlowRowOverflow: + """Kotlin: androidx.compose.foundation.layout.FlowRowOverflow""" + Clip: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlowRowOverflow.Clip(): androidx.compose.foundation.layout.FlowRowOverflow""" + Visible: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.FlowRowOverflow.Visible(): androidx.compose.foundation.layout.FlowRowOverflow""" + +class GridFlow: + """Kotlin: androidx.compose.foundation.layout.GridFlow""" + Column: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.GridFlow.Column(): androidx.compose.foundation.layout.GridFlow""" + Row: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.GridFlow.Row(): androidx.compose.foundation.layout.GridFlow""" + +class GridScope: + """Kotlin: androidx.compose.foundation.layout.GridScope""" + GridIndexUnspecified: _t.ClassVar[int] + """Kotlin: androidx.compose.foundation.layout.GridScope.GridIndexUnspecified(): kotlin.Int""" + MaxGridIndex: _t.ClassVar[int] + """Kotlin: androidx.compose.foundation.layout.GridScope.MaxGridIndex(): kotlin.Int""" + +class GridTrackSize: + """Kotlin: androidx.compose.foundation.layout.GridTrackSize""" + Auto: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.GridTrackSize.Auto(): androidx.compose.foundation.layout.GridTrackSize""" + MaxContent: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.GridTrackSize.MaxContent(): androidx.compose.foundation.layout.GridTrackSize""" + MinContent: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.GridTrackSize.MinContent(): androidx.compose.foundation.layout.GridTrackSize""" + +class WindowInsetsSides: + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides""" + Bottom: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Bottom(): androidx.compose.foundation.layout.WindowInsetsSides""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.End(): androidx.compose.foundation.layout.WindowInsetsSides""" + Horizontal: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Horizontal(): androidx.compose.foundation.layout.WindowInsetsSides""" + Left: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Left(): androidx.compose.foundation.layout.WindowInsetsSides""" + Right: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Right(): androidx.compose.foundation.layout.WindowInsetsSides""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Start(): androidx.compose.foundation.layout.WindowInsetsSides""" + Top: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Top(): androidx.compose.foundation.layout.WindowInsetsSides""" + Vertical: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.WindowInsetsSides.Vertical(): androidx.compose.foundation.layout.WindowInsetsSides""" diff --git a/pythonx/compose/layout/arrangement.py b/pythonx/compose/layout/arrangement.py index 00ce92d..d5fdb41 100644 --- a/pythonx/compose/layout/arrangement.py +++ b/pythonx/compose/layout/arrangement.py @@ -1,41 +1,34 @@ -from __future__ import annotations -from ..wrapper import KotlinWrapper +"""`pythonx/compose/layout/arrangement.py` -- what the adaptation layer now produces, and how to spell it. -from java import jclass +The same story as `pythonx/compose/ui/alignment.py`, and the same two facts. `Arrangement`'s constants +are bound by the walker since `PythonMultiplatform`'s `80318c16`, and `6d896fba` is the proof: the +same child in the same row lands at opposite edges under `Start` and `End`, which is what says the +value crossed rather than that something merely composed. +## The names the layer produces -_arrangement = jclass("androidx.compose.foundation.layout.Arrangement").INSTANCE + Bottom Center End SpaceAround SpaceBetween SpaceEvenly Start Top +Read out of the walked table. Compose declares more (`spacedBy`, for one) -- those are functions +rather than constants and reach Python through the ordinary function path, not this one. -class Arrangement(KotlinWrapper): - """ - Used to specify the horizontal arrangement of the layout's children in layouts like [Row]. - """ - class Horizontal(KotlinWrapper): - pass +## They are read, not called - class Vertical(KotlinWrapper): - pass + from pythonx.compose.layout import Row, Arrangement + from pythonx.compose.material3 import Text + from pythonx.compose.ui import Modifier # its empty factory registered (ui/modifier.py) - class HorizontalOrVertical(Horizontal, Vertical): - pass + Row( + modifier=Modifier.width(80), + horizontal_arrangement=Arrangement.End, # no parentheses + content=lambda scope: Text('X'), + ) - Start = _arrangement.getStart() - End = _arrangement.getEnd() - Top = _arrangement.getTop() - Bottom = _arrangement.getBottom() - Center = _arrangement.getCenter() +Since upstream's `46be0212` a static getter is evaluated on attribute access, so `Arrangement.End()` +raises `TypeError` -- the value is not callable. A function inside the object follows the module +rule: `Arrangement.spaced_by(8)`, never `spacedBy`. - SpaceEvenly = _arrangement.getSpaceEvenly() - SpaceBetween = _arrangement.getSpaceBetween() - SpaceAround = _arrangement.getSpaceAround() - - # # Type Overriding - # Start.__class__ = Horizontal - # End.__class__ = Horizontal - # Top.__class__ = Vertical - # Bottom.__class__ = Vertical - # Center.__class__ = HorizontalOrVertical - # SpaceEvenly.__class__ = HorizontalOrVertical - # SpaceBetween.__class__ = HorizontalOrVertical - # SpaceAround.__class__ = HorizontalOrVertical +The width matters as much as the spelling: a row wraps its content, so with no width constraint +there is no spare space and every arrangement puts the child in the same place. Upstream's proof +passed for that wrong reason once, before its opposite-end control caught it. +""" diff --git a/pythonx/compose/lite/.gitignore b/pythonx/compose/lite/.gitignore deleted file mode 100644 index b1dff0d..0000000 --- a/pythonx/compose/lite/.gitignore +++ /dev/null @@ -1,45 +0,0 @@ -.gradle -build/ -!gradle/wrapper/gradle-wrapper.jar -!**/src/main/**/build/ -!**/src/test/**/build/ - -### IntelliJ IDEA ### -.idea/modules.xml -.idea/jarRepositories.xml -.idea/compiler.xml -.idea/libraries/ -*.iws -*.iml -*.ipr -out/ -!**/src/main/**/out/ -!**/src/test/**/out/ - -### Kotlin ### -.kotlin - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache -bin/ -!**/src/main/**/bin/ -!**/src/test/**/bin/ - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store \ No newline at end of file diff --git a/pythonx/compose/lite/app.py b/pythonx/compose/lite/app.py deleted file mode 100644 index 6b9a244..0000000 --- a/pythonx/compose/lite/app.py +++ /dev/null @@ -1,23 +0,0 @@ -import jvm - -jvm.init_jvm() # Initialize the JVM - -from org.example.project import AppKt - -from material3 import Text, Spacer, Card, Button -from runtime import Composable, register_composer - - -@Composable -def MainScreen(*args, **kwargs): - """ Main Screen Composable """ - Text("Welcome to Compose for Desktop with Python!", font_size=20.0) - Spacer(start=0, top=10.0, end=0, bottom=10.0) - Button( - on_click=lambda: print("Card Clicked"), - color=0xfff14f4d, - content=lambda: Text("This is a Card Composable", color=0xffffffff), - ) - - -AppKt.launch(MainScreen, register_composer) # Launch the App diff --git a/pythonx/compose/lite/build.gradle.kts b/pythonx/compose/lite/build.gradle.kts deleted file mode 100644 index 473f3b2..0000000 --- a/pythonx/compose/lite/build.gradle.kts +++ /dev/null @@ -1,64 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - kotlin("jvm").version("2.0.20") - alias(libs.plugins.jetbrainsCompose) - alias(libs.plugins.compose.compiler) - id("com.github.johnrengelman.shadow").version("7.1.2") -} - -group = "org.example" -version = "1.0" - -repositories { - google { - mavenContent { - includeGroupAndSubgroups("androidx") - includeGroupAndSubgroups("com.android") - includeGroupAndSubgroups("com.google") - } - } - mavenCentral() -} - -dependencies { - testImplementation(kotlin("test")) - - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.ui) - implementation(compose.components.resources) - implementation(compose.components.uiToolingPreview) - implementation(libs.androidx.lifecycle.viewmodel) - implementation(libs.androidx.lifecycle.runtime.compose) - - implementation(compose.desktop.currentOs) - implementation(libs.kotlinx.coroutines.swing) -} - -tasks.test { - useJUnitPlatform() -} - -kotlin { - jvmToolchain(19) -} - -compose.desktop { - application { - mainClass = "org.example.project.AppKt" - - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "org.example.project" - packageVersion = "1.0.0" - } - } -} - -tasks.shadowJar { - manifest { - attributes(mapOf("Main-Class" to "org.example.project.AppKt")) - } -} diff --git a/pythonx/compose/lite/gradle.properties b/pythonx/compose/lite/gradle.properties deleted file mode 100644 index 7fc6f1f..0000000 --- a/pythonx/compose/lite/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -kotlin.code.style=official diff --git a/pythonx/compose/lite/gradle/libs.versions.toml b/pythonx/compose/lite/gradle/libs.versions.toml deleted file mode 100644 index adb624a..0000000 --- a/pythonx/compose/lite/gradle/libs.versions.toml +++ /dev/null @@ -1,19 +0,0 @@ -[versions] -androidx-lifecycle = "2.8.0" -compose-plugin = "1.6.11" -junit = "4.13.2" -kotlin = "2.0.20" -kotlinx-coroutines = "1.8.1" - -[libraries] -kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } -kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } -junit = { group = "junit", name = "junit", version.ref = "junit" } -androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" } -androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } -kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" } - -[plugins] -jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } -compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } -kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } \ No newline at end of file diff --git a/pythonx/compose/lite/gradle/wrapper/gradle-wrapper.jar b/pythonx/compose/lite/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 249e583..0000000 Binary files a/pythonx/compose/lite/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/pythonx/compose/lite/gradle/wrapper/gradle-wrapper.properties b/pythonx/compose/lite/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index eb448b9..0000000 --- a/pythonx/compose/lite/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Sun Oct 06 15:45:50 KST 2024 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/pythonx/compose/lite/gradlew b/pythonx/compose/lite/gradlew deleted file mode 100644 index 1b6c787..0000000 --- a/pythonx/compose/lite/gradlew +++ /dev/null @@ -1,234 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/pythonx/compose/lite/gradlew.bat b/pythonx/compose/lite/gradlew.bat deleted file mode 100644 index 107acd3..0000000 --- a/pythonx/compose/lite/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/pythonx/compose/lite/jvm.py b/pythonx/compose/lite/jvm.py deleted file mode 100644 index eefc760..0000000 --- a/pythonx/compose/lite/jvm.py +++ /dev/null @@ -1,28 +0,0 @@ -import os -import ctypes -os.environ['JAVA_HOME'] = os.path.join(os.getcwd(), "release", "runtime") -print("JVM Location:", os.environ['JAVA_HOME']) - - -if os.name == 'nt': - ctypes.windll.user32.SetProcessDPIAware() - - -import jpype.imports -from jpype.types import * - -jvm_options = [ - '-Dsun.java2d.uiScale=1.0', - '-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel', - '-Dawt.useSystemAAFontSettings=on', - '-Dswing.aatext=true' -] - - -def init_jvm(): - jpype.startJVM(classpath=["./build/libs/ComposeLite-1.0-all.jar", *jvm_options]) - - from org.example.project import PlatformKt - - print("JVM Runtime Version:", PlatformKt.getPlatform().getName()) - print() diff --git a/pythonx/compose/lite/material3.py b/pythonx/compose/lite/material3.py deleted file mode 100644 index bd25fe0..0000000 --- a/pythonx/compose/lite/material3.py +++ /dev/null @@ -1,33 +0,0 @@ -from runtime import Composable -from thisisthepy.pycomposeui import Material3Kt - -_Text = Material3Kt.SimpleTextWidget -_Spacer = Material3Kt.SimpleSpacer -_Card = Material3Kt.SimpleCardWidget -_Button = Material3Kt.SimpleButtonWidget - - -@Composable -def Text(text: str, color: int = 0xff000000, font_size: float = 12.0, composer=None): - return _Text(text, color, font_size, composer, 1) - - -@Composable -def Spacer(start: float = 0.0, top: float = 0.0, end: float = 0.0, bottom: float = 0.0, composer=None): - return _Spacer(start, top, end, bottom, composer, 1) - - -@Composable -def Card( - corner_radius: float = 10.0, color: int = 0xff745faa, - composer=None, content: callable = lambda: None -): - return _Card(corner_radius, color, content, composer, 1) - - -@Composable -def Button( - on_click: callable, enabled: bool = True, corner_radius: float = 10.0, - color: int = 0xff745faa, composer=None, content: callable = lambda: None -): - return _Button(on_click, enabled, corner_radius, color, content, composer, 1) diff --git a/pythonx/compose/lite/release/app/.package b/pythonx/compose/lite/release/app/.package deleted file mode 100644 index e1bfb7b..0000000 --- a/pythonx/compose/lite/release/app/.package +++ /dev/null @@ -1 +0,0 @@ -org.example.project \ No newline at end of file diff --git a/pythonx/compose/lite/release/app/animation-core-desktop-1.6.11-f6bda2293864bf7fb78e7d97c1f783.jar b/pythonx/compose/lite/release/app/animation-core-desktop-1.6.11-f6bda2293864bf7fb78e7d97c1f783.jar deleted file mode 100644 index 28c7966..0000000 Binary files a/pythonx/compose/lite/release/app/animation-core-desktop-1.6.11-f6bda2293864bf7fb78e7d97c1f783.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/animation-desktop-1.6.11-421ef34d9e87c3adeeaef576e9ca771.jar b/pythonx/compose/lite/release/app/animation-desktop-1.6.11-421ef34d9e87c3adeeaef576e9ca771.jar deleted file mode 100644 index b5b60e3..0000000 Binary files a/pythonx/compose/lite/release/app/animation-desktop-1.6.11-421ef34d9e87c3adeeaef576e9ca771.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/annotation-jvm-1.8.0-3c74b73c0c75521f67964f11b28dec9.jar b/pythonx/compose/lite/release/app/annotation-jvm-1.8.0-3c74b73c0c75521f67964f11b28dec9.jar deleted file mode 100644 index d0c7a21..0000000 Binary files a/pythonx/compose/lite/release/app/annotation-jvm-1.8.0-3c74b73c0c75521f67964f11b28dec9.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/annotations-23.0.0-8484cd17d040d837983323f760b2c660.jar b/pythonx/compose/lite/release/app/annotations-23.0.0-8484cd17d040d837983323f760b2c660.jar deleted file mode 100644 index 5119f5e..0000000 Binary files a/pythonx/compose/lite/release/app/annotations-23.0.0-8484cd17d040d837983323f760b2c660.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/atomicfu-jvm-0.23.2-5e4f88ed1c37222d791f5dcadf481498.jar b/pythonx/compose/lite/release/app/atomicfu-jvm-0.23.2-5e4f88ed1c37222d791f5dcadf481498.jar deleted file mode 100644 index 8838cc4..0000000 Binary files a/pythonx/compose/lite/release/app/atomicfu-jvm-0.23.2-5e4f88ed1c37222d791f5dcadf481498.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/collection-jvm-1.4.0-3f0597ec99a52ecdbf6f3962c5dc77a.jar b/pythonx/compose/lite/release/app/collection-jvm-1.4.0-3f0597ec99a52ecdbf6f3962c5dc77a.jar deleted file mode 100644 index 3a90822..0000000 Binary files a/pythonx/compose/lite/release/app/collection-jvm-1.4.0-3f0597ec99a52ecdbf6f3962c5dc77a.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/composeApp-desktop-65183ad29c803151b1b5ef775d6326e.jar b/pythonx/compose/lite/release/app/composeApp-desktop-65183ad29c803151b1b5ef775d6326e.jar deleted file mode 100644 index 59a450d..0000000 Binary files a/pythonx/compose/lite/release/app/composeApp-desktop-65183ad29c803151b1b5ef775d6326e.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/core-common-2.2.0-2212d240dfe1e8a7598ee117ccc316d.jar b/pythonx/compose/lite/release/app/core-common-2.2.0-2212d240dfe1e8a7598ee117ccc316d.jar deleted file mode 100644 index b2efafc..0000000 Binary files a/pythonx/compose/lite/release/app/core-common-2.2.0-2212d240dfe1e8a7598ee117ccc316d.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/desktop-jvm-1.6.11-e52a91ad685258dcfa37a67fcd2715.jar b/pythonx/compose/lite/release/app/desktop-jvm-1.6.11-e52a91ad685258dcfa37a67fcd2715.jar deleted file mode 100644 index f205478..0000000 Binary files a/pythonx/compose/lite/release/app/desktop-jvm-1.6.11-e52a91ad685258dcfa37a67fcd2715.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/foundation-desktop-1.6.11-d57ca3c56cf347041370b1b7f7d1fd.jar b/pythonx/compose/lite/release/app/foundation-desktop-1.6.11-d57ca3c56cf347041370b1b7f7d1fd.jar deleted file mode 100644 index 09557d0..0000000 Binary files a/pythonx/compose/lite/release/app/foundation-desktop-1.6.11-d57ca3c56cf347041370b1b7f7d1fd.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/foundation-layout-desktop-1.6.11-3b8aaccd5c58a7ac358f9562b221cee.jar b/pythonx/compose/lite/release/app/foundation-layout-desktop-1.6.11-3b8aaccd5c58a7ac358f9562b221cee.jar deleted file mode 100644 index be9e60a..0000000 Binary files a/pythonx/compose/lite/release/app/foundation-layout-desktop-1.6.11-3b8aaccd5c58a7ac358f9562b221cee.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/icudtl.dat b/pythonx/compose/lite/release/app/icudtl.dat deleted file mode 100644 index 7e9602b..0000000 Binary files a/pythonx/compose/lite/release/app/icudtl.dat and /dev/null differ diff --git a/pythonx/compose/lite/release/app/kotlin-stdlib-2.0.20-1ff18c14651c34e7fdcd2de19b5c923d.jar b/pythonx/compose/lite/release/app/kotlin-stdlib-2.0.20-1ff18c14651c34e7fdcd2de19b5c923d.jar deleted file mode 100644 index dbbba3a..0000000 Binary files a/pythonx/compose/lite/release/app/kotlin-stdlib-2.0.20-1ff18c14651c34e7fdcd2de19b5c923d.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/kotlin-stdlib-jdk7-1.9.23-3818d01fbd742c4ef31bdccaa1825524.jar b/pythonx/compose/lite/release/app/kotlin-stdlib-jdk7-1.9.23-3818d01fbd742c4ef31bdccaa1825524.jar deleted file mode 100644 index 6fea5e1..0000000 Binary files a/pythonx/compose/lite/release/app/kotlin-stdlib-jdk7-1.9.23-3818d01fbd742c4ef31bdccaa1825524.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/kotlin-stdlib-jdk8-1.9.23-c98840426f611d821234387f646e8.jar b/pythonx/compose/lite/release/app/kotlin-stdlib-jdk8-1.9.23-c98840426f611d821234387f646e8.jar deleted file mode 100644 index aeebf1f..0000000 Binary files a/pythonx/compose/lite/release/app/kotlin-stdlib-jdk8-1.9.23-c98840426f611d821234387f646e8.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/kotlinx-coroutines-core-jvm-1.8.1-c477c52e713d7633276652efdcaee272.jar b/pythonx/compose/lite/release/app/kotlinx-coroutines-core-jvm-1.8.1-c477c52e713d7633276652efdcaee272.jar deleted file mode 100644 index 9c28628..0000000 Binary files a/pythonx/compose/lite/release/app/kotlinx-coroutines-core-jvm-1.8.1-c477c52e713d7633276652efdcaee272.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/kotlinx-coroutines-swing-1.8.1-f9f8397967cd393f2ecdfb29b162293.jar b/pythonx/compose/lite/release/app/kotlinx-coroutines-swing-1.8.1-f9f8397967cd393f2ecdfb29b162293.jar deleted file mode 100644 index fcb6a03..0000000 Binary files a/pythonx/compose/lite/release/app/kotlinx-coroutines-swing-1.8.1-f9f8397967cd393f2ecdfb29b162293.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/library-desktop-1.6.11-c9ed281cd56647b2223f30b4f2db2518.jar b/pythonx/compose/lite/release/app/library-desktop-1.6.11-c9ed281cd56647b2223f30b4f2db2518.jar deleted file mode 100644 index 006e400..0000000 Binary files a/pythonx/compose/lite/release/app/library-desktop-1.6.11-c9ed281cd56647b2223f30b4f2db2518.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/library-desktop-1.6.11-edece0f638dbac4f4bec07e22191d5c.jar b/pythonx/compose/lite/release/app/library-desktop-1.6.11-edece0f638dbac4f4bec07e22191d5c.jar deleted file mode 100644 index 23df61f..0000000 Binary files a/pythonx/compose/lite/release/app/library-desktop-1.6.11-edece0f638dbac4f4bec07e22191d5c.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/lifecycle-common-jvm-2.8.0-8c81b745cb7664b0f78619d2e523d018.jar b/pythonx/compose/lite/release/app/lifecycle-common-jvm-2.8.0-8c81b745cb7664b0f78619d2e523d018.jar deleted file mode 100644 index 27480c0..0000000 Binary files a/pythonx/compose/lite/release/app/lifecycle-common-jvm-2.8.0-8c81b745cb7664b0f78619d2e523d018.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/lifecycle-runtime-compose-desktop-2.8.0-61a1ae9c54eba4fff14f826359eaa068.jar b/pythonx/compose/lite/release/app/lifecycle-runtime-compose-desktop-2.8.0-61a1ae9c54eba4fff14f826359eaa068.jar deleted file mode 100644 index 9d95a5d..0000000 Binary files a/pythonx/compose/lite/release/app/lifecycle-runtime-compose-desktop-2.8.0-61a1ae9c54eba4fff14f826359eaa068.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/lifecycle-runtime-desktop-2.8.0-7fc568586d392d3d5dbda79492e18d.jar b/pythonx/compose/lite/release/app/lifecycle-runtime-desktop-2.8.0-7fc568586d392d3d5dbda79492e18d.jar deleted file mode 100644 index cbf9d9c..0000000 Binary files a/pythonx/compose/lite/release/app/lifecycle-runtime-desktop-2.8.0-7fc568586d392d3d5dbda79492e18d.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/lifecycle-viewmodel-desktop-2.8.0-4d5e53f5de6b49d3f3473ec75c92bf.jar b/pythonx/compose/lite/release/app/lifecycle-viewmodel-desktop-2.8.0-4d5e53f5de6b49d3f3473ec75c92bf.jar deleted file mode 100644 index 97d30fd..0000000 Binary files a/pythonx/compose/lite/release/app/lifecycle-viewmodel-desktop-2.8.0-4d5e53f5de6b49d3f3473ec75c92bf.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/material-desktop-1.6.11-763f2a3ffac95a961165ac457d95134.jar b/pythonx/compose/lite/release/app/material-desktop-1.6.11-763f2a3ffac95a961165ac457d95134.jar deleted file mode 100644 index 25f48bc..0000000 Binary files a/pythonx/compose/lite/release/app/material-desktop-1.6.11-763f2a3ffac95a961165ac457d95134.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/material-icons-core-desktop-1.6.11-4395614468f1d94339341dbef681bef.jar b/pythonx/compose/lite/release/app/material-icons-core-desktop-1.6.11-4395614468f1d94339341dbef681bef.jar deleted file mode 100644 index 68aea7a..0000000 Binary files a/pythonx/compose/lite/release/app/material-icons-core-desktop-1.6.11-4395614468f1d94339341dbef681bef.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/material-ripple-desktop-1.6.11-5bea7737b38682ed4ff518823d5fadfb.jar b/pythonx/compose/lite/release/app/material-ripple-desktop-1.6.11-5bea7737b38682ed4ff518823d5fadfb.jar deleted file mode 100644 index 2bc0447..0000000 Binary files a/pythonx/compose/lite/release/app/material-ripple-desktop-1.6.11-5bea7737b38682ed4ff518823d5fadfb.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/org.example.project.cfg b/pythonx/compose/lite/release/app/org.example.project.cfg deleted file mode 100644 index 0b7dd1c..0000000 --- a/pythonx/compose/lite/release/app/org.example.project.cfg +++ /dev/null @@ -1,44 +0,0 @@ -[Application] -app.classpath=$APPDIR\composeApp-desktop-65183ad29c803151b1b5ef775d6326e.jar -app.mainclass=org.example.project.MainKt -app.classpath=$APPDIR\animation-core-desktop-1.6.11-f6bda2293864bf7fb78e7d97c1f783.jar -app.classpath=$APPDIR\animation-desktop-1.6.11-421ef34d9e87c3adeeaef576e9ca771.jar -app.classpath=$APPDIR\annotation-jvm-1.8.0-3c74b73c0c75521f67964f11b28dec9.jar -app.classpath=$APPDIR\annotations-23.0.0-8484cd17d040d837983323f760b2c660.jar -app.classpath=$APPDIR\atomicfu-jvm-0.23.2-5e4f88ed1c37222d791f5dcadf481498.jar -app.classpath=$APPDIR\collection-jvm-1.4.0-3f0597ec99a52ecdbf6f3962c5dc77a.jar -app.classpath=$APPDIR\core-common-2.2.0-2212d240dfe1e8a7598ee117ccc316d.jar -app.classpath=$APPDIR\desktop-jvm-1.6.11-e52a91ad685258dcfa37a67fcd2715.jar -app.classpath=$APPDIR\foundation-desktop-1.6.11-d57ca3c56cf347041370b1b7f7d1fd.jar -app.classpath=$APPDIR\foundation-layout-desktop-1.6.11-3b8aaccd5c58a7ac358f9562b221cee.jar -app.classpath=$APPDIR\kotlin-stdlib-2.0.20-1ff18c14651c34e7fdcd2de19b5c923d.jar -app.classpath=$APPDIR\kotlin-stdlib-jdk7-1.9.23-3818d01fbd742c4ef31bdccaa1825524.jar -app.classpath=$APPDIR\kotlin-stdlib-jdk8-1.9.23-c98840426f611d821234387f646e8.jar -app.classpath=$APPDIR\kotlinx-coroutines-core-jvm-1.8.1-c477c52e713d7633276652efdcaee272.jar -app.classpath=$APPDIR\kotlinx-coroutines-swing-1.8.1-f9f8397967cd393f2ecdfb29b162293.jar -app.classpath=$APPDIR\library-desktop-1.6.11-c9ed281cd56647b2223f30b4f2db2518.jar -app.classpath=$APPDIR\library-desktop-1.6.11-edece0f638dbac4f4bec07e22191d5c.jar -app.classpath=$APPDIR\lifecycle-common-jvm-2.8.0-8c81b745cb7664b0f78619d2e523d018.jar -app.classpath=$APPDIR\lifecycle-runtime-compose-desktop-2.8.0-61a1ae9c54eba4fff14f826359eaa068.jar -app.classpath=$APPDIR\lifecycle-runtime-desktop-2.8.0-7fc568586d392d3d5dbda79492e18d.jar -app.classpath=$APPDIR\lifecycle-viewmodel-desktop-2.8.0-4d5e53f5de6b49d3f3473ec75c92bf.jar -app.classpath=$APPDIR\material-desktop-1.6.11-763f2a3ffac95a961165ac457d95134.jar -app.classpath=$APPDIR\material-icons-core-desktop-1.6.11-4395614468f1d94339341dbef681bef.jar -app.classpath=$APPDIR\material-ripple-desktop-1.6.11-5bea7737b38682ed4ff518823d5fadfb.jar -app.classpath=$APPDIR\runtime-desktop-1.6.11-c4c7435bd1b5e7358975e707f9755b4.jar -app.classpath=$APPDIR\runtime-saveable-desktop-1.6.11-51768b3f4657857dfafdac2638c34d6e.jar -app.classpath=$APPDIR\skiko-awt-0.8.4-dc4d7370d91848f24fb446893b07c29.jar -app.classpath=$APPDIR\skiko-awt-runtime-windows-x64-0.8.4-4f417bdb77fe99da2372f9ab3c4be.jar -app.classpath=$APPDIR\ui-desktop-1.6.11-ed76707e98a555acd548642c28ada762.jar -app.classpath=$APPDIR\ui-geometry-desktop-1.6.11-27e6b8999564c5014dd9a26f6a34cfb.jar -app.classpath=$APPDIR\ui-graphics-desktop-1.6.11-6424628696c3992640c7459bfab43f69.jar -app.classpath=$APPDIR\ui-text-desktop-1.6.11-391e7e5b65e997685d94977fd3d3a23e.jar -app.classpath=$APPDIR\ui-tooling-preview-desktop-1.6.11-f86e811916e9fcecb72a5e1ce6eac638.jar -app.classpath=$APPDIR\ui-unit-desktop-1.6.11-ba41f960a6b8ce70b221a84418782ad.jar -app.classpath=$APPDIR\ui-util-desktop-1.6.11-8328c72186b6aef847af879d0bdb726.jar - -[JavaOptions] -java-options=-Djpackage.app-version=1.0.0 -java-options=-Dcompose.application.resources.dir=$APPDIR\resources -java-options=-Dcompose.application.configure.swing.globals=true -java-options=-Dskiko.library.path=$APPDIR diff --git a/pythonx/compose/lite/release/app/runtime-desktop-1.6.11-c4c7435bd1b5e7358975e707f9755b4.jar b/pythonx/compose/lite/release/app/runtime-desktop-1.6.11-c4c7435bd1b5e7358975e707f9755b4.jar deleted file mode 100644 index bfd88e2..0000000 Binary files a/pythonx/compose/lite/release/app/runtime-desktop-1.6.11-c4c7435bd1b5e7358975e707f9755b4.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/runtime-saveable-desktop-1.6.11-51768b3f4657857dfafdac2638c34d6e.jar b/pythonx/compose/lite/release/app/runtime-saveable-desktop-1.6.11-51768b3f4657857dfafdac2638c34d6e.jar deleted file mode 100644 index e9a4f52..0000000 Binary files a/pythonx/compose/lite/release/app/runtime-saveable-desktop-1.6.11-51768b3f4657857dfafdac2638c34d6e.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/skiko-awt-0.8.4-dc4d7370d91848f24fb446893b07c29.jar b/pythonx/compose/lite/release/app/skiko-awt-0.8.4-dc4d7370d91848f24fb446893b07c29.jar deleted file mode 100644 index 60043d6..0000000 Binary files a/pythonx/compose/lite/release/app/skiko-awt-0.8.4-dc4d7370d91848f24fb446893b07c29.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/skiko-awt-runtime-windows-x64-0.8.4-4f417bdb77fe99da2372f9ab3c4be.jar b/pythonx/compose/lite/release/app/skiko-awt-runtime-windows-x64-0.8.4-4f417bdb77fe99da2372f9ab3c4be.jar deleted file mode 100644 index b7f5b48..0000000 Binary files a/pythonx/compose/lite/release/app/skiko-awt-runtime-windows-x64-0.8.4-4f417bdb77fe99da2372f9ab3c4be.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/skiko-windows-x64.dll b/pythonx/compose/lite/release/app/skiko-windows-x64.dll deleted file mode 100644 index d94a992..0000000 Binary files a/pythonx/compose/lite/release/app/skiko-windows-x64.dll and /dev/null differ diff --git a/pythonx/compose/lite/release/app/skiko-windows-x64.dll.sha256 b/pythonx/compose/lite/release/app/skiko-windows-x64.dll.sha256 deleted file mode 100644 index abedec7..0000000 --- a/pythonx/compose/lite/release/app/skiko-windows-x64.dll.sha256 +++ /dev/null @@ -1 +0,0 @@ -1af4ee19332ed4d6e49736b682169156441810a37589c852cea0529cd125890f \ No newline at end of file diff --git a/pythonx/compose/lite/release/app/ui-desktop-1.6.11-ed76707e98a555acd548642c28ada762.jar b/pythonx/compose/lite/release/app/ui-desktop-1.6.11-ed76707e98a555acd548642c28ada762.jar deleted file mode 100644 index 747acc2..0000000 Binary files a/pythonx/compose/lite/release/app/ui-desktop-1.6.11-ed76707e98a555acd548642c28ada762.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/ui-geometry-desktop-1.6.11-27e6b8999564c5014dd9a26f6a34cfb.jar b/pythonx/compose/lite/release/app/ui-geometry-desktop-1.6.11-27e6b8999564c5014dd9a26f6a34cfb.jar deleted file mode 100644 index 49bf8a4..0000000 Binary files a/pythonx/compose/lite/release/app/ui-geometry-desktop-1.6.11-27e6b8999564c5014dd9a26f6a34cfb.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/ui-graphics-desktop-1.6.11-6424628696c3992640c7459bfab43f69.jar b/pythonx/compose/lite/release/app/ui-graphics-desktop-1.6.11-6424628696c3992640c7459bfab43f69.jar deleted file mode 100644 index 4efa311..0000000 Binary files a/pythonx/compose/lite/release/app/ui-graphics-desktop-1.6.11-6424628696c3992640c7459bfab43f69.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/ui-text-desktop-1.6.11-391e7e5b65e997685d94977fd3d3a23e.jar b/pythonx/compose/lite/release/app/ui-text-desktop-1.6.11-391e7e5b65e997685d94977fd3d3a23e.jar deleted file mode 100644 index 5974c8a..0000000 Binary files a/pythonx/compose/lite/release/app/ui-text-desktop-1.6.11-391e7e5b65e997685d94977fd3d3a23e.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/ui-tooling-preview-desktop-1.6.11-f86e811916e9fcecb72a5e1ce6eac638.jar b/pythonx/compose/lite/release/app/ui-tooling-preview-desktop-1.6.11-f86e811916e9fcecb72a5e1ce6eac638.jar deleted file mode 100644 index a922f40..0000000 Binary files a/pythonx/compose/lite/release/app/ui-tooling-preview-desktop-1.6.11-f86e811916e9fcecb72a5e1ce6eac638.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/ui-unit-desktop-1.6.11-ba41f960a6b8ce70b221a84418782ad.jar b/pythonx/compose/lite/release/app/ui-unit-desktop-1.6.11-ba41f960a6b8ce70b221a84418782ad.jar deleted file mode 100644 index 6f01a39..0000000 Binary files a/pythonx/compose/lite/release/app/ui-unit-desktop-1.6.11-ba41f960a6b8ce70b221a84418782ad.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/app/ui-util-desktop-1.6.11-8328c72186b6aef847af879d0bdb726.jar b/pythonx/compose/lite/release/app/ui-util-desktop-1.6.11-8328c72186b6aef847af879d0bdb726.jar deleted file mode 100644 index 76d5c00..0000000 Binary files a/pythonx/compose/lite/release/app/ui-util-desktop-1.6.11-8328c72186b6aef847af879d0bdb726.jar and /dev/null differ diff --git a/pythonx/compose/lite/release/org.example.project.exe b/pythonx/compose/lite/release/org.example.project.exe deleted file mode 100644 index dc0f74f..0000000 Binary files a/pythonx/compose/lite/release/org.example.project.exe and /dev/null differ diff --git a/pythonx/compose/lite/release/runtime/conf/logging.properties b/pythonx/compose/lite/release/runtime/conf/logging.properties deleted file mode 100644 index 99a3850..0000000 --- a/pythonx/compose/lite/release/runtime/conf/logging.properties +++ /dev/null @@ -1,63 +0,0 @@ -############################################################ -# Default Logging Configuration File -# -# You can use a different file by specifying a filename -# with the java.util.logging.config.file system property. -# For example, java -Djava.util.logging.config.file=myfile -############################################################ - -############################################################ -# Global properties -############################################################ - -# "handlers" specifies a comma-separated list of log Handler -# classes. These handlers will be installed during VM startup. -# Note that these classes must be on the system classpath. -# By default we only configure a ConsoleHandler, which will only -# show messages at the INFO and above levels. -handlers= java.util.logging.ConsoleHandler - -# To also add the FileHandler, use the following line instead. -#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler - -# Default global logging level. -# This specifies which kinds of events are logged across -# all loggers. For any given facility this global level -# can be overridden by a facility-specific level -# Note that the ConsoleHandler also has a separate level -# setting to limit messages printed to the console. -.level= INFO - -############################################################ -# Handler specific properties. -# Describes specific configuration info for Handlers. -############################################################ - -# default file output is in user's home directory. -java.util.logging.FileHandler.pattern = %h/java%u.log -java.util.logging.FileHandler.limit = 50000 -java.util.logging.FileHandler.count = 1 -# Default number of locks FileHandler can obtain synchronously. -# This specifies maximum number of attempts to obtain lock file by FileHandler -# implemented by incrementing the unique field %u as per FileHandler API documentation. -java.util.logging.FileHandler.maxLocks = 100 -java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter - -# Limit the messages that are printed on the console to INFO and above. -java.util.logging.ConsoleHandler.level = INFO -java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter - -# Example to customize the SimpleFormatter output format -# to print one-line log message like this: -# : [] -# -# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n - -############################################################ -# Facility-specific properties. -# Provides extra control for each logger. -############################################################ - -# For example, set the com.xyz.foo logger to only log SEVERE -# messages: -# com.xyz.foo.level = SEVERE diff --git a/pythonx/compose/lite/release/runtime/conf/net.properties b/pythonx/compose/lite/release/runtime/conf/net.properties deleted file mode 100644 index 4e64aaf..0000000 --- a/pythonx/compose/lite/release/runtime/conf/net.properties +++ /dev/null @@ -1,151 +0,0 @@ -############################################################ -# Default Networking Configuration File -# -# This file may contain default values for the networking system properties. -# These values are only used when the system properties are not specified -# on the command line or set programmatically. -# For now, only the various proxy settings can be configured here. -############################################################ - -# Whether or not the DefaultProxySelector will default to System Proxy -# settings when they do exist. -# Set it to 'true' to enable this feature and check for platform -# specific proxy settings -# Note that the system properties that do explicitly set proxies -# (like http.proxyHost) do take precedence over the system settings -# even if java.net.useSystemProxies is set to true. - -java.net.useSystemProxies=false - -#------------------------------------------------------------------------ -# Proxy configuration for the various protocol handlers. -# DO NOT uncomment these lines if you have set java.net.useSystemProxies -# to true as the protocol specific properties will take precedence over -# system settings. -#------------------------------------------------------------------------ - -# HTTP Proxy settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 80) and nonProxyHosts is a '|' separated list of hostnames which -# should be accessed directly, ignoring the proxy server (default value is -# localhost & 127.0.0.1). -# -# http.proxyHost= -# http.proxyPort=80 -http.nonProxyHosts=localhost|127.*|[::1] -# -# HTTPS Proxy Settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 443). The HTTPS protocol handlers uses the http nonProxyHosts list. -# -# https.proxyHost= -# https.proxyPort=443 -# -# FTP Proxy settings. proxyHost is the name of the proxy server -# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default -# value is 80) and nonProxyHosts is a '|' separated list of hostnames which -# should be accessed directly, ignoring the proxy server (default value is -# localhost & 127.0.0.1). -# -# ftp.proxyHost= -# ftp.proxyPort=80 -ftp.nonProxyHosts=localhost|127.*|[::1] -# -# Socks proxy settings. socksProxyHost is the name of the proxy server -# (e.g. socks.domain.com), socksProxyPort is the port number to use -# (default value is 1080) -# -# socksProxyHost= -# socksProxyPort=1080 -# -# HTTP Keep Alive settings. remainingData is the maximum amount of data -# in kilobytes that will be cleaned off the underlying socket so that it -# can be reused (default value is 512K), queuedConnections is the maximum -# number of Keep Alive connections to be on the queue for clean up (default -# value is 10). -# http.KeepAlive.remainingData=512 -# http.KeepAlive.queuedConnections=10 - -# Authentication Scheme restrictions for HTTP and HTTPS. -# -# In some environments certain authentication schemes may be undesirable -# when proxying HTTP or HTTPS. For example, "Basic" results in effectively the -# cleartext transmission of the user's password over the physical network. -# This section describes the mechanism for disabling authentication schemes -# based on the scheme name. Disabled schemes will be treated as if they are not -# supported by the implementation. -# -# The 'jdk.http.auth.tunneling.disabledSchemes' property lists the authentication -# schemes that will be disabled when tunneling HTTPS over a proxy, HTTP CONNECT. -# The 'jdk.http.auth.proxying.disabledSchemes' property lists the authentication -# schemes that will be disabled when proxying HTTP. -# -# In both cases the property is a comma-separated list of, case-insensitive, -# authentication scheme names, as defined by their relevant RFCs. An -# implementation may, but is not required to, support common schemes whose names -# include: 'Basic', 'Digest', 'NTLM', 'Kerberos', 'Negotiate'. A scheme that -# is not known, or not supported, by the implementation is ignored. -# -# Note: This property is currently used by the JDK Reference implementation. It -# is not guaranteed to be examined and used by other implementations. -# -#jdk.http.auth.proxying.disabledSchemes= -jdk.http.auth.tunneling.disabledSchemes=Basic - -# -# Allow restricted HTTP request headers -# -# By default, the following request headers are not allowed to be set by user code -# in HttpRequests: "connection", "content-length", "expect", "host" and "upgrade". -# The 'jdk.httpclient.allowRestrictedHeaders' property allows one or more of these -# headers to be specified as a comma separated list to override the default restriction. -# The names are case-insensitive and white-space is ignored (removed before processing -# the list). Note, this capability is mostly intended for testing and isn't expected -# to be used in real deployments. Protocol errors or other undefined behavior is likely -# to occur when using them. The property is not set by default. -# Note also, that there may be other headers that are restricted from being set -# depending on the context. This includes the "Authorization" header when the -# relevant HttpClient has an authenticator set. These restrictions cannot be -# overridden by this property. -# -# jdk.httpclient.allowRestrictedHeaders=host -# -# -# Transparent NTLM HTTP authentication mode on Windows. Transparent authentication -# can be used for the NTLM scheme, where the security credentials based on the -# currently logged in user's name and password can be obtained directly from the -# operating system, without prompting the user. This property has three possible -# values which regulate the behavior as shown below. Other unrecognized values -# are handled the same as 'disabled'. Note, that NTLM is not considered to be a -# strongly secure authentication scheme and care should be taken before enabling -# this mechanism. -# -# Transparent authentication never used. -#jdk.http.ntlm.transparentAuth=disabled -# -# Enabled for all hosts. -#jdk.http.ntlm.transparentAuth=allHosts -# -# Enabled for hosts that are trusted in Windows Internet settings -#jdk.http.ntlm.transparentAuth=trustedHosts -# -jdk.http.ntlm.transparentAuth=disabled -# -# Default directory where automatically bound Unix domain server -# sockets are stored. Sockets are automatically bound when bound -# with a null address. -# -# The search order for the directory on Windows is: -# -# 1. System property "jdk.net.unixdomain.tmpdir" -# -# 2. Networking property "jdk.net.unixdomain.tmpdir" specified -# in this file (not set by default) -# -# 3. The TEMP environment variable (the effective default) -# -# 4. The java.io.tmpdir system property -# -#jdk.net.unixdomain.tmpdir= -# - diff --git a/pythonx/compose/lite/release/runtime/conf/security/java.policy b/pythonx/compose/lite/release/runtime/conf/security/java.policy deleted file mode 100644 index 88e8753..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/java.policy +++ /dev/null @@ -1,46 +0,0 @@ -// -// This system policy file grants a set of default permissions to all domains -// and can be configured to grant additional permissions to modules and other -// code sources. The code source URL scheme for modules linked into a -// run-time image is "jrt". -// -// For example, to grant permission to read the "foo" property to the module -// "com.greetings", the grant entry is: -// -// grant codeBase "jrt:/com.greetings" { -// permission java.util.PropertyPermission "foo", "read"; -// }; -// - -// default permissions granted to all domains -grant { - // allows anyone to listen on dynamic ports - permission java.net.SocketPermission "localhost:0", "listen"; - - // "standard" properties that can be read by anyone - permission java.util.PropertyPermission "java.version", "read"; - permission java.util.PropertyPermission "java.vendor", "read"; - permission java.util.PropertyPermission "java.vendor.url", "read"; - permission java.util.PropertyPermission "java.class.version", "read"; - permission java.util.PropertyPermission "os.name", "read"; - permission java.util.PropertyPermission "os.version", "read"; - permission java.util.PropertyPermission "os.arch", "read"; - permission java.util.PropertyPermission "file.separator", "read"; - permission java.util.PropertyPermission "path.separator", "read"; - permission java.util.PropertyPermission "line.separator", "read"; - permission java.util.PropertyPermission - "java.specification.version", "read"; - permission java.util.PropertyPermission - "java.specification.maintenance.version", "read"; - permission java.util.PropertyPermission "java.specification.vendor", "read"; - permission java.util.PropertyPermission "java.specification.name", "read"; - permission java.util.PropertyPermission - "java.vm.specification.version", "read"; - permission java.util.PropertyPermission - "java.vm.specification.vendor", "read"; - permission java.util.PropertyPermission - "java.vm.specification.name", "read"; - permission java.util.PropertyPermission "java.vm.version", "read"; - permission java.util.PropertyPermission "java.vm.vendor", "read"; - permission java.util.PropertyPermission "java.vm.name", "read"; -}; diff --git a/pythonx/compose/lite/release/runtime/conf/security/java.security b/pythonx/compose/lite/release/runtime/conf/security/java.security deleted file mode 100644 index 63d33b0..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/java.security +++ /dev/null @@ -1,1412 +0,0 @@ -# -# This is the "master security properties file". -# -# An alternate java.security properties file may be specified -# from the command line via the system property -# -# -Djava.security.properties= -# -# This properties file appends to the master security properties file. -# If both properties files specify values for the same key, the value -# from the command-line properties file is selected, as it is the last -# one loaded. -# -# Also, if you specify -# -# -Djava.security.properties== (2 equals), -# -# then that properties file completely overrides the master security -# properties file. -# -# To disable the ability to specify an additional properties file from -# the command line, set the key security.overridePropertiesFile -# to false in the master security properties file. It is set to true -# by default. - -# In this file, various security properties are set for use by -# java.security classes. This is where users can statically register -# Cryptography Package Providers ("providers" for short). The term -# "provider" refers to a package or set of packages that supply a -# concrete implementation of a subset of the cryptography aspects of -# the Java Security API. A provider may, for example, implement one or -# more digital signature algorithms or message digest algorithms. -# -# Each provider must implement a subclass of the Provider class. -# To register a provider in this master security properties file, -# specify the provider and priority in the format -# -# security.provider.= -# -# This declares a provider, and specifies its preference -# order n. The preference order is the order in which providers are -# searched for requested algorithms (when no specific provider is -# requested). The order is 1-based; 1 is the most preferred, followed -# by 2, and so on. -# -# must specify the name of the Provider as passed to its super -# class java.security.Provider constructor. This is for providers loaded -# through the ServiceLoader mechanism. -# -# must specify the subclass of the Provider class whose -# constructor sets the values of various properties that are required -# for the Java Security API to look up the algorithms or other -# facilities implemented by the provider. This is for providers loaded -# through classpath. -# -# Note: Providers can be dynamically registered instead by calls to -# either the addProvider or insertProviderAt method in the Security -# class. - -# -# List of providers and their preference orders (see above): -# -security.provider.1=SUN -security.provider.2=SunRsaSign -security.provider.3=SunEC -security.provider.4=SunJSSE -security.provider.5=SunJCE -security.provider.6=SunJGSS -security.provider.7=SunSASL -security.provider.8=XMLDSig -security.provider.9=SunPCSC -security.provider.10=JdkLDAP -security.provider.11=JdkSASL -security.provider.12=SunMSCAPI -security.provider.13=SunPKCS11 - -# -# A list of preferred providers for specific algorithms. These providers will -# be searched for matching algorithms before the list of registered providers. -# Entries containing errors (parsing, etc) will be ignored. Use the -# -Djava.security.debug=jca property to debug these errors. -# -# The property is a comma-separated list of serviceType.algorithm:provider -# entries. The serviceType (example: "MessageDigest") is optional, and if -# not specified, the algorithm applies to all service types that support it. -# The algorithm is the standard algorithm name or transformation. -# Transformations can be specified in their full standard name -# (ex: AES/CBC/PKCS5Padding), or as partial matches (ex: AES, AES/CBC). -# The provider is the name of the provider. Any provider that does not -# also appear in the registered list will be ignored. -# -# There is a special serviceType for this property only to group a set of -# algorithms together. The type is "Group" and is followed by an algorithm -# keyword. Groups are to simplify and lessen the entries on the property -# line. Current groups are: -# Group.SHA2 = SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 -# Group.HmacSHA2 = HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512 -# Group.SHA2RSA = SHA224withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA -# Group.SHA2DSA = SHA224withDSA, SHA256withDSA, SHA384withDSA, SHA512withDSA -# Group.SHA2ECDSA = SHA224withECDSA, SHA256withECDSA, SHA384withECDSA, \ -# SHA512withECDSA -# Group.SHA3 = SHA3-224, SHA3-256, SHA3-384, SHA3-512 -# Group.HmacSHA3 = HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512 -# -# Example: -# jdk.security.provider.preferred=AES/GCM/NoPadding:SunJCE, \ -# MessageDigest.SHA-256:SUN, Group.HmacSHA2:SunJCE -# -#jdk.security.provider.preferred= - - -# -# Sun Provider SecureRandom seed source. -# -# Select the primary source of seed data for the "NativePRNG", "SHA1PRNG" -# and "DRBG" SecureRandom implementations in the "Sun" provider. -# (Other SecureRandom implementations might also use this property.) -# -# On Unix-like systems (for example, Linux/MacOS), the -# "NativePRNG", "SHA1PRNG" and "DRBG" implementations obtains seed data from -# special device files such as file:/dev/random. -# -# On Windows systems, specifying the URLs "file:/dev/random" or -# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding -# mechanism for SHA1PRNG and DRBG. -# -# By default, an attempt is made to use the entropy gathering device -# specified by the "securerandom.source" Security property. If an -# exception occurs while accessing the specified URL: -# -# NativePRNG: -# a default value of /dev/random will be used. If neither -# are available, the implementation will be disabled. -# "file" is the only currently supported protocol type. -# -# SHA1PRNG and DRBG: -# the traditional system/thread activity algorithm will be used. -# -# The entropy gathering device can also be specified with the System -# property "java.security.egd". For example: -# -# % java -Djava.security.egd=file:/dev/random MainClass -# -# Specifying this System property will override the -# "securerandom.source" Security property. -# -# In addition, if "file:/dev/random" or "file:/dev/urandom" is -# specified, the "NativePRNG" implementation will be more preferred than -# DRBG and SHA1PRNG in the Sun provider. -# -securerandom.source=file:/dev/random - -# -# A list of known strong SecureRandom implementations. -# -# To help guide applications in selecting a suitable strong -# java.security.SecureRandom implementation, Java distributions should -# indicate a list of known strong implementations using the property. -# -# This is a comma-separated list of algorithm and/or algorithm:provider -# entries. -# -securerandom.strongAlgorithms=Windows-PRNG:SunMSCAPI,DRBG:SUN - -# -# Sun provider DRBG configuration and default instantiation request. -# -# NIST SP 800-90Ar1 lists several DRBG mechanisms. Each can be configured -# with a DRBG algorithm name, and can be instantiated with a security strength, -# prediction resistance support, etc. This property defines the configuration -# and the default instantiation request of "DRBG" SecureRandom implementations -# in the SUN provider. (Other DRBG implementations can also use this property.) -# Applications can request different instantiation parameters like security -# strength, capability, personalization string using one of the -# getInstance(...,SecureRandomParameters,...) methods with a -# DrbgParameters.Instantiation argument, but other settings such as the -# mechanism and DRBG algorithm names are not currently configurable by any API. -# -# Please note that the SUN implementation of DRBG always supports reseeding. -# -# The value of this property is a comma-separated list of all configurable -# aspects. The aspects can appear in any order but the same aspect can only -# appear at most once. Its BNF-style definition is: -# -# Value: -# aspect { "," aspect } -# -# aspect: -# mech_name | algorithm_name | strength | capability | df -# -# // The DRBG mechanism to use. Default "Hash_DRBG" -# mech_name: -# "Hash_DRBG" | "HMAC_DRBG" | "CTR_DRBG" -# -# // The DRBG algorithm name. The "SHA-***" names are for Hash_DRBG and -# // HMAC_DRBG, default "SHA-256". The "AES-***" names are for CTR_DRBG, -# // default "AES-128" when using the limited cryptographic or "AES-256" -# // when using the unlimited. -# algorithm_name: -# "SHA-224" | "SHA-512/224" | "SHA-256" | -# "SHA-512/256" | "SHA-384" | "SHA-512" | -# "AES-128" | "AES-192" | "AES-256" -# -# // Security strength requested. Default "128" -# strength: -# "112" | "128" | "192" | "256" -# -# // Prediction resistance and reseeding request. Default "none" -# // "pr_and_reseed" - Both prediction resistance and reseeding -# // support requested -# // "reseed_only" - Only reseeding support requested -# // "none" - Neither prediction resistance not reseeding -# // support requested -# pr: -# "pr_and_reseed" | "reseed_only" | "none" -# -# // Whether a derivation function should be used. only applicable -# // to CTR_DRBG. Default "use_df" -# df: -# "use_df" | "no_df" -# -# Examples, -# securerandom.drbg.config=Hash_DRBG,SHA-224,112,none -# securerandom.drbg.config=CTR_DRBG,AES-256,192,pr_and_reseed,use_df -# -# The default value is an empty string, which is equivalent to -# securerandom.drbg.config=Hash_DRBG,SHA-256,128,none -# -securerandom.drbg.config= - -# -# Class to instantiate as the javax.security.auth.login.Configuration -# provider. -# -login.configuration.provider=sun.security.provider.ConfigFile - -# -# Default login configuration file -# -#login.config.url.1=file:${user.home}/.java.login.config - -# -# Class to instantiate as the system Policy. This is the name of the class -# that will be used as the Policy object. The system class loader is used to -# locate this class. -# -policy.provider=sun.security.provider.PolicyFile - -# The default is to have a single system-wide policy file, -# and a policy file in the user's home directory. -# -policy.url.1=file:${java.home}/conf/security/java.policy -policy.url.2=file:${user.home}/.java.policy - -# Controls whether or not properties are expanded in policy and login -# configuration files. If set to false, properties (${...}) will not -# be expanded in policy and login configuration files. If commented out or -# set to an empty string, the default value is "false" for policy files and -# "true" for login configuration files. -# -policy.expandProperties=true - -# Controls whether or not an extra policy or login configuration file is -# allowed to be passed on the command line with -Djava.security.policy=somefile -# or -Djava.security.auth.login.config=somefile. If commented out or set to -# an empty string, the default value is "false". -# -policy.allowSystemProperty=true - -# whether or not we look into the IdentityScope for trusted Identities -# when encountering a 1.1 signed JAR file. If the identity is found -# and is trusted, we grant it AllPermission. Note: the default policy -# provider (sun.security.provider.PolicyFile) does not support this property. -# -policy.ignoreIdentityScope=false - -# -# Default keystore type. -# -keystore.type=pkcs12 - -# -# Controls compatibility mode for JKS and PKCS12 keystore types. -# -# When set to 'true', both JKS and PKCS12 keystore types support loading -# keystore files in either JKS or PKCS12 format. When set to 'false' the -# JKS keystore type supports loading only JKS keystore files and the PKCS12 -# keystore type supports loading only PKCS12 keystore files. -# -keystore.type.compat=true - -# -# List of comma-separated packages that start with or equal this string -# will cause a security exception to be thrown when passed to the -# SecurityManager::checkPackageAccess method unless the corresponding -# RuntimePermission("accessClassInPackage."+package) has been granted. -# -package.access=sun.misc.,\ - sun.reflect. - -# -# List of comma-separated packages that start with or equal this string -# will cause a security exception to be thrown when passed to the -# SecurityManager::checkPackageDefinition method unless the corresponding -# RuntimePermission("defineClassInPackage."+package) has been granted. -# -# By default, none of the class loaders supplied with the JDK call -# checkPackageDefinition. -# -package.definition=sun.misc.,\ - sun.reflect. - -# -# Determines whether this properties file can be appended to -# or overridden on the command line via -Djava.security.properties -# -security.overridePropertiesFile=true - -# -# Determines the default key and trust manager factory algorithms for -# the javax.net.ssl package. -# -ssl.KeyManagerFactory.algorithm=SunX509 -ssl.TrustManagerFactory.algorithm=PKIX - -# -# The Java-level namelookup cache policy for successful lookups: -# -# any negative value: caching forever -# any positive value: the number of seconds to cache an address for -# zero: do not cache -# -# default value is forever (FOREVER). For security reasons, this -# caching is made forever when a security manager is set. When a security -# manager is not set, the default behavior in this implementation -# is to cache for 30 seconds. -# -# NOTE: setting this to anything other than the default value can have -# serious security implications. Do not set it unless -# you are sure you are not exposed to DNS spoofing attack. -# -#networkaddress.cache.ttl=-1 - -# The Java-level namelookup cache policy for failed lookups: -# -# any negative value: cache forever -# any positive value: the number of seconds to cache negative lookup results -# zero: do not cache -# -# In some Microsoft Windows networking environments that employ -# the WINS name service in addition to DNS, name service lookups -# that fail may take a noticeably long time to return (approx. 5 seconds). -# For this reason the default caching policy is to maintain these -# results for 10 seconds. -# -networkaddress.cache.negative.ttl=10 - -# -# Properties to configure OCSP for certificate revocation checking -# - -# Enable OCSP -# -# By default, OCSP is not used for certificate revocation checking. -# This property enables the use of OCSP when set to the value "true". -# -# NOTE: SocketPermission is required to connect to an OCSP responder. -# -# Example, -# ocsp.enable=true - -# -# Location of the OCSP responder -# -# By default, the location of the OCSP responder is determined implicitly -# from the certificate being validated. This property explicitly specifies -# the location of the OCSP responder. The property is used when the -# Authority Information Access extension (defined in RFC 5280) is absent -# from the certificate or when it requires overriding. -# -# Example, -# ocsp.responderURL=http://ocsp.example.net:80 - -# -# Subject name of the OCSP responder's certificate -# -# By default, the certificate of the OCSP responder is that of the issuer -# of the certificate being validated. This property identifies the certificate -# of the OCSP responder when the default does not apply. Its value is a string -# distinguished name (defined in RFC 2253) which identifies a certificate in -# the set of certificates supplied during cert path validation. In cases where -# the subject name alone is not sufficient to uniquely identify the certificate -# then both the "ocsp.responderCertIssuerName" and -# "ocsp.responderCertSerialNumber" properties must be used instead. When this -# property is set then those two properties are ignored. -# -# Example, -# ocsp.responderCertSubjectName=CN=OCSP Responder, O=XYZ Corp - -# -# Issuer name of the OCSP responder's certificate -# -# By default, the certificate of the OCSP responder is that of the issuer -# of the certificate being validated. This property identifies the certificate -# of the OCSP responder when the default does not apply. Its value is a string -# distinguished name (defined in RFC 2253) which identifies a certificate in -# the set of certificates supplied during cert path validation. When this -# property is set then the "ocsp.responderCertSerialNumber" property must also -# be set. When the "ocsp.responderCertSubjectName" property is set then this -# property is ignored. -# -# Example, -# ocsp.responderCertIssuerName=CN=Enterprise CA, O=XYZ Corp - -# -# Serial number of the OCSP responder's certificate -# -# By default, the certificate of the OCSP responder is that of the issuer -# of the certificate being validated. This property identifies the certificate -# of the OCSP responder when the default does not apply. Its value is a string -# of hexadecimal digits (colon or space separators may be present) which -# identifies a certificate in the set of certificates supplied during cert path -# validation. When this property is set then the "ocsp.responderCertIssuerName" -# property must also be set. When the "ocsp.responderCertSubjectName" property -# is set then this property is ignored. -# -# Example, -# ocsp.responderCertSerialNumber=2A:FF:00 - -# -# Policy for failed Kerberos KDC lookups: -# -# When a KDC is unavailable (network error, service failure, etc), it is -# put inside a secondary list and accessed less often for future requests. The -# value (case-insensitive) for this policy can be: -# -# tryLast -# KDCs in the secondary list are always tried after those not on the list. -# -# tryLess[:max_retries,timeout] -# KDCs in the secondary list are still tried by their order in the -# configuration, but with smaller max_retries and timeout values. -# max_retries and timeout are optional numerical parameters (default 1 and -# 5000, which means once and 5 seconds). Please note that if any of the -# values defined here are more than what is defined in krb5.conf, it will be -# ignored. -# -# Whenever a KDC is detected as available, it is removed from the secondary -# list. The secondary list is reset when krb5.conf is reloaded. You can add -# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is -# reloaded whenever a JAAS authentication is attempted. -# -# Example, -# krb5.kdc.bad.policy = tryLast -# krb5.kdc.bad.policy = tryLess:2,2000 -# -krb5.kdc.bad.policy = tryLast - -# -# Kerberos cross-realm referrals (RFC 6806) -# -# OpenJDK's Kerberos client supports cross-realm referrals as defined in -# RFC 6806. This allows to setup more dynamic environments in which clients -# do not need to know in advance how to reach the realm of a target principal -# (either a user or service). -# -# When a client issues an AS or a TGS request, the "canonicalize" option -# is set to announce support of this feature. A KDC server may fulfill the -# request or reply referring the client to a different one. If referred, -# the client will issue a new request and the cycle repeats. -# -# In addition to referrals, the "canonicalize" option allows the KDC server -# to change the client name in response to an AS request. For security reasons, -# RFC 6806 (section 11) FAST scheme is enforced. -# -# Disable Kerberos cross-realm referrals. Value may be overwritten with a -# System property (-Dsun.security.krb5.disableReferrals). -sun.security.krb5.disableReferrals=false - -# Maximum number of AS or TGS referrals to avoid infinite loops. Value may -# be overwritten with a System property (-Dsun.security.krb5.maxReferrals). -sun.security.krb5.maxReferrals=5 - -# -# This property contains a list of disabled EC Named Curves that can be included -# in the jdk.[tls|certpath|jar].disabledAlgorithms properties. To include this -# list in any of the disabledAlgorithms properties, add the property name as -# an entry. -#jdk.disabled.namedCurves= - -# -# Algorithm restrictions for certification path (CertPath) processing -# -# In some environments, certain algorithms or key lengths may be undesirable -# for certification path building and validation. For example, "MD2" is -# generally no longer considered to be a secure hash algorithm. This section -# describes the mechanism for disabling algorithms based on algorithm name -# and/or key length. This includes algorithms used in certificates, as well -# as revocation information such as CRLs and signed OCSP Responses. -# The syntax of the disabled algorithm string is described as follows: -# DisabledAlgorithms: -# " DisabledAlgorithm { , DisabledAlgorithm } " -# -# DisabledAlgorithm: -# AlgorithmName [Constraint] { '&' Constraint } | IncludeProperty -# -# AlgorithmName: -# (see below) -# -# Constraint: -# KeySizeConstraint | CAConstraint | DenyAfterConstraint | -# UsageConstraint -# -# KeySizeConstraint: -# keySize Operator KeyLength -# -# Operator: -# <= | < | == | != | >= | > -# -# KeyLength: -# Integer value of the algorithm's key length in bits -# -# CAConstraint: -# jdkCA -# -# DenyAfterConstraint: -# denyAfter YYYY-MM-DD -# -# UsageConstraint: -# usage [TLSServer] [TLSClient] [SignedJAR] -# -# IncludeProperty: -# include -# -# The "AlgorithmName" is the standard algorithm name of the disabled -# algorithm. See the Java Security Standard Algorithm Names Specification -# for information about Standard Algorithm Names. Matching is -# performed using a case-insensitive sub-element matching rule. (For -# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and -# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a -# sub-element of the certificate algorithm name, the algorithm will be -# rejected during certification path building and validation. For example, -# the assertion algorithm name "DSA" will disable all certificate algorithms -# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion -# will not disable algorithms related to "ECDSA". -# -# The "IncludeProperty" allows a implementation-defined security property that -# can be included in the disabledAlgorithms properties. These properties are -# to help manage common actions easier across multiple disabledAlgorithm -# properties. -# There is one defined security property: jdk.disabled.namedCurves -# See the property for more specific details. -# -# -# A "Constraint" defines restrictions on the keys and/or certificates for -# a specified AlgorithmName: -# -# KeySizeConstraint: -# keySize Operator KeyLength -# The constraint requires a key of a valid size range if the -# "AlgorithmName" is of a key algorithm. The "KeyLength" indicates -# the key size specified in number of bits. For example, -# "RSA keySize <= 1024" indicates that any RSA key with key size less -# than or equal to 1024 bits should be disabled, and -# "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key -# with key size less than 1024 or greater than 2048 should be disabled. -# This constraint is only used on algorithms that have a key size. -# -# CAConstraint: -# jdkCA -# This constraint prohibits the specified algorithm only if the -# algorithm is used in a certificate chain that terminates at a marked -# trust anchor in the lib/security/cacerts keystore. If the jdkCA -# constraint is not set, then all chains using the specified algorithm -# are restricted. jdkCA may only be used once in a DisabledAlgorithm -# expression. -# Example: To apply this constraint to SHA-1 certificates, include -# the following: "SHA1 jdkCA" -# -# DenyAfterConstraint: -# denyAfter YYYY-MM-DD -# This constraint prohibits a certificate with the specified algorithm -# from being used after the date regardless of the certificate's -# validity. JAR files that are signed and timestamped before the -# constraint date with certificates containing the disabled algorithm -# will not be restricted. The date is processed in the UTC timezone. -# This constraint can only be used once in a DisabledAlgorithm -# expression. -# Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020, -# use the following: "RSA keySize == 2048 & denyAfter 2020-02-03" -# -# UsageConstraint: -# usage [TLSServer] [TLSClient] [SignedJAR] -# This constraint prohibits the specified algorithm for -# a specified usage. This should be used when disabling an algorithm -# for all usages is not practical. 'TLSServer' restricts the algorithm -# in TLS server certificate chains when server authentication is -# performed. 'TLSClient' restricts the algorithm in TLS client -# certificate chains when client authentication is performed. -# 'SignedJAR' constrains use of certificates in signed jar files. -# The usage type follows the keyword and more than one usage type can -# be specified with a whitespace delimiter. -# Example: "SHA1 usage TLSServer TLSClient" -# -# When an algorithm must satisfy more than one constraint, it must be -# delimited by an ampersand '&'. For example, to restrict certificates in a -# chain that terminate at a distribution provided trust anchor and contain -# RSA keys that are less than or equal to 1024 bits, add the following -# constraint: "RSA keySize <= 1024 & jdkCA". -# -# All DisabledAlgorithms expressions are processed in the order defined in the -# property. This requires lower keysize constraints to be specified -# before larger keysize constraints of the same algorithm. For example: -# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048". -# -# Note: The algorithm restrictions do not apply to trust anchors or -# self-signed certificates. -# -# Note: This property is currently used by Oracle's PKIX implementation. It -# is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 -# -# -jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \ - RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224, \ - SHA1 usage SignedJAR & denyAfter 2019-01-01 - -# -# Legacy cryptographic algorithms and key lengths. -# -# In some environments, a certain algorithm or key length may be undesirable. -# -# Tools such as keytool and jarsigner may emit warnings when these legacy -# algorithms are used. See the man pages for those tools for more information. -# -# The syntax is the same as the "jdk.certpath.disabledAlgorithms" and -# "jdk.jar.disabledAlgorithms" security properties. -# -# Note: This property is currently used by the JDK Reference -# implementation. It is not guaranteed to be examined and used by other -# implementations. - -jdk.security.legacyAlgorithms=SHA1, \ - RSA keySize < 2048, DSA keySize < 2048, \ - DES, DESede, MD5, RC2, ARCFOUR - -# -# Algorithm restrictions for signed JAR files -# -# In some environments, certain algorithms or key lengths may be undesirable -# for signed JAR validation. For example, "MD2" is generally no longer -# considered to be a secure hash algorithm. This section describes the -# mechanism for disabling algorithms based on algorithm name and/or key length. -# JARs signed with any of the disabled algorithms or key sizes will be treated -# as unsigned. -# -# The syntax of the disabled algorithm string is described as follows: -# DisabledAlgorithms: -# " DisabledAlgorithm { , DisabledAlgorithm } " -# -# DisabledAlgorithm: -# AlgorithmName [Constraint] { '&' Constraint } -# -# AlgorithmName: -# (see below) -# -# Constraint: -# KeySizeConstraint | DenyAfterConstraint -# -# KeySizeConstraint: -# keySize Operator KeyLength -# -# DenyAfterConstraint: -# denyAfter YYYY-MM-DD -# -# Operator: -# <= | < | == | != | >= | > -# -# KeyLength: -# Integer value of the algorithm's key length in bits -# -# Note: This property is currently used by the JDK Reference -# implementation. It is not guaranteed to be examined and used by other -# implementations. -# -# See "jdk.certpath.disabledAlgorithms" for syntax descriptions. -# -jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ - DSA keySize < 1024, SHA1 denyAfter 2019-01-01 - -# -# Disabled message digest algorithms for use with plaintext -# HTTP Digest authentication (java.net.HttpURLConnection). -# This includes HTTPS Digest authentication to proxies. -# This may be overridden by setting the networking (or system) -# property "http.auth.digest.reEnabledAlgorithms" to a comma -# separated list of algorithms to be allowed. -# -http.auth.digest.disabledAlgorithms = MD5, SHA-1 - -# -# Algorithm restrictions for Secure Socket Layer/Transport Layer Security -# (SSL/TLS/DTLS) processing -# -# In some environments, certain algorithms or key lengths may be undesirable -# when using SSL/TLS/DTLS. This section describes the mechanism for disabling -# algorithms during SSL/TLS/DTLS security parameters negotiation, including -# protocol version negotiation, cipher suites selection, named groups -# selection, signature schemes selection, peer authentication and key -# exchange mechanisms. -# -# Disabled algorithms will not be negotiated for SSL/TLS connections, even -# if they are enabled explicitly in an application. -# -# For PKI-based peer authentication and key exchange mechanisms, this list -# of disabled algorithms will also be checked during certification path -# building and validation, including algorithms used in certificates, as -# well as revocation information such as CRLs and signed OCSP Responses. -# This is in addition to the jdk.certpath.disabledAlgorithms property above. -# -# See the specification of "jdk.certpath.disabledAlgorithms" for the -# syntax of the disabled algorithm string. -# -# Note: The algorithm restrictions do not apply to trust anchors or -# self-signed certificates. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048, \ -# rsa_pkcs1_sha1, secp224r1 -jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \ - DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL - -# -# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) -# processing in JSSE implementation. -# -# In some environments, a certain algorithm may be undesirable but it -# cannot be disabled because of its use in legacy applications. Legacy -# algorithms may still be supported, but applications should not use them -# as the security strength of legacy algorithms are usually not strong enough -# in practice. -# -# During SSL/TLS security parameters negotiation, legacy algorithms will -# not be negotiated unless there are no other candidates. -# -# The syntax of the legacy algorithms string is described as this Java -# BNF-style: -# LegacyAlgorithms: -# " LegacyAlgorithm { , LegacyAlgorithm } " -# -# LegacyAlgorithm: -# AlgorithmName (standard JSSE algorithm name) -# -# See the specification of security property "jdk.certpath.disabledAlgorithms" -# for the syntax and description of the "AlgorithmName" notation. -# -# Per SSL/TLS specifications, cipher suites have the form: -# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg -# or -# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg -# -# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the -# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC -# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest -# algorithm for HMAC. -# -# The LegacyAlgorithm can be one of the following standard algorithm names: -# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA -# 2. JSSE key exchange algorithm name, e.g., RSA -# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC -# 4. JSSE message digest algorithm name, e.g., SHA -# -# See SSL/TLS specifications and the Java Security Standard Algorithm Names -# Specification for information about the algorithm names. -# -# Note: If a legacy algorithm is also restricted through the -# jdk.tls.disabledAlgorithms property or the -# java.security.AlgorithmConstraints API (See -# javax.net.ssl.SSLParameters.setAlgorithmConstraints()), -# then the algorithm is completely disabled and will not be negotiated. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# There is no guarantee the property will continue to exist or be of the -# same syntax in future releases. -# -# Example: -# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 -# -jdk.tls.legacyAlgorithms=NULL, anon, RC4, DES, 3DES_EDE_CBC - -# -# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) -# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. -# -# In traditional SSL/TLS/DTLS connections where finite field DHE parameters -# negotiation mechanism is not used, the server offers the client group -# parameters, base generator g and prime modulus p, for DHE key exchange. -# It is recommended to use dynamic group parameters. This property defines -# a mechanism that allows you to specify custom group parameters. -# -# The syntax of this property string is described as this Java BNF-style: -# DefaultDHEParameters: -# DefinedDHEParameters { , DefinedDHEParameters } -# -# DefinedDHEParameters: -# "{" DHEPrimeModulus , DHEBaseGenerator "}" -# -# DHEPrimeModulus: -# HexadecimalDigits -# -# DHEBaseGenerator: -# HexadecimalDigits -# -# HexadecimalDigits: -# HexadecimalDigit { HexadecimalDigit } -# -# HexadecimalDigit: one of -# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f -# -# Whitespace characters are ignored. -# -# The "DefinedDHEParameters" defines the custom group parameters, prime -# modulus p and base generator g, for a particular size of prime modulus p. -# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the -# "DHEBaseGenerator" defines the hexadecimal base generator g of a group -# parameter. It is recommended to use safe primes for the custom group -# parameters. -# -# If this property is not defined or the value is empty, the underlying JSSE -# provider's default group parameter is used for each connection. -# -# If the property value does not follow the grammar, or a particular group -# parameter is not valid, the connection will fall back and use the -# underlying JSSE provider's default group parameter. -# -# Note: This property is currently used by OpenJDK's JSSE implementation. It -# is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.tls.server.defaultDHEParameters= -# { \ -# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ -# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ -# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ -# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ -# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ -# FFFFFFFF FFFFFFFF, 2} - -# -# TLS key limits on symmetric cryptographic algorithms -# -# This security property sets limits on algorithms key usage in TLS 1.3. -# When the amount of data encrypted exceeds the algorithm value listed below, -# a KeyUpdate message will trigger a key change. This is for symmetric ciphers -# with TLS 1.3 only. -# -# The syntax for the property is described below: -# KeyLimits: -# " KeyLimit { , KeyLimit } " -# -# WeakKeyLimit: -# AlgorithmName Action Length -# -# AlgorithmName: -# A full algorithm transformation. -# -# Action: -# KeyUpdate -# -# Length: -# The amount of encrypted data in a session before the Action occurs -# This value may be an integer value in bytes, or as a power of two, 2^29. -# -# KeyUpdate: -# The TLS 1.3 KeyUpdate handshake process begins when the Length amount -# is fulfilled. -# -# Note: This property is currently used by OpenJDK's JSSE implementation. It -# is not guaranteed to be examined and used by other implementations. -# -jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37 - -# -# Cryptographic Jurisdiction Policy defaults -# -# Import and export control rules on cryptographic software vary from -# country to country. By default, Java provides two different sets of -# cryptographic policy files[1]: -# -# unlimited: These policy files contain no restrictions on cryptographic -# strengths or algorithms -# -# limited: These policy files contain more restricted cryptographic -# strengths -# -# The default setting is determined by the value of the "crypto.policy" -# Security property below. If your country or usage requires the -# traditional restrictive policy, the "limited" Java cryptographic -# policy is still available and may be appropriate for your environment. -# -# If you have restrictions that do not fit either use case mentioned -# above, Java provides the capability to customize these policy files. -# The "crypto.policy" security property points to a subdirectory -# within /conf/security/policy/ which can be customized. -# Please see the /conf/security/policy/README.txt file or consult -# the Java Security Guide/JCA documentation for more information. -# -# YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY -# TO DETERMINE THE EXACT REQUIREMENTS. -# -# [1] Please note that the JCE for Java SE, including the JCE framework, -# cryptographic policy files, and standard JCE providers provided with -# the Java SE, have been reviewed and approved for export as mass market -# encryption item by the US Bureau of Industry and Security. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -crypto.policy=unlimited - -# -# The policy for the XML Signature secure validation mode. Validation of -# XML Signatures that violate any of these constraints will fail. The -# mode is enforced by default. The mode can be disabled by setting the -# property "org.jcp.xml.dsig.secureValidation" to Boolean.FALSE with the -# javax.xml.crypto.XMLCryptoContext.setProperty() method. -# -# Policy: -# Constraint {"," Constraint } -# Constraint: -# AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint | -# ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint -# AlgConstraint -# "disallowAlg" Uri -# MaxTransformsConstraint: -# "maxTransforms" Integer -# MaxReferencesConstraint: -# "maxReferences" Integer -# ReferenceUriSchemeConstraint: -# "disallowReferenceUriSchemes" String { String } -# KeySizeConstraint: -# "minKeySize" KeyAlg Integer -# OtherConstraint: -# "noDuplicateIds" | "noRetrievalMethodLoops" -# -# For AlgConstraint, Uri is the algorithm URI String that is not allowed. -# See the XML Signature Recommendation for more information on algorithm -# URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm -# name of the key type (ex: "RSA"). If the MaxTransformsConstraint, -# MaxReferencesConstraint or KeySizeConstraint (for the same key type) is -# specified more than once, only the last entry is enforced. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -jdk.xml.dsig.secureValidationPolicy=\ - disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ - disallowAlg http://www.w3.org/2000/09/xmldsig#sha1,\ - disallowAlg http://www.w3.org/2000/09/xmldsig#dsa-sha1,\ - disallowAlg http://www.w3.org/2000/09/xmldsig#rsa-sha1,\ - disallowAlg http://www.w3.org/2007/05/xmldsig-more#sha1-rsa-MGF1,\ - disallowAlg http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1,\ - maxTransforms 5,\ - maxReferences 30,\ - disallowReferenceUriSchemes file http https,\ - minKeySize RSA 1024,\ - minKeySize DSA 1024,\ - minKeySize EC 224,\ - noDuplicateIds,\ - noRetrievalMethodLoops - - -# -# Deserialization JVM-wide filter factory -# -# A filter factory class name is used to configure the JVM-wide filter factory. -# The class must be public, must have a public zero-argument constructor, implement the -# java.util.function.BinaryOperator interface, provide its -# implementation and be accessible via the application class loader. -# A builtin filter factory is used if no filter factory is defined. -# See java.io.ObjectInputFilter.Config for more information. -# -# If the system property jdk.serialFilterFactory is also specified, it supersedes -# the security property value defined here. -# -#jdk.serialFilterFactory= - -# -# Deserialization JVM-wide filter -# -# A filter, if configured, is used by the filter factory to provide the filter used by -# java.io.ObjectInputStream during deserialization to check the contents of the stream. -# A filter is configured as a sequence of patterns, each pattern is either -# matched against the name of a class in the stream or defines a limit. -# Patterns are separated by ";" (semicolon). -# Whitespace is significant and is considered part of the pattern. -# -# If the system property jdk.serialFilter is also specified, it supersedes -# the security property value defined here. -# -# If a pattern includes a "=", it sets a limit. -# If a limit appears more than once the last value is used. -# Limits are checked before classes regardless of the order in the -# sequence of patterns. -# If any of the limits are exceeded, the filter status is REJECTED. -# -# maxdepth=value - the maximum depth of a graph -# maxrefs=value - the maximum number of internal references -# maxbytes=value - the maximum number of bytes in the input stream -# maxarray=value - the maximum array length allowed -# -# Other patterns, from left to right, match the class or package name as -# returned from Class.getName. -# If the class is an array type, the class or package to be matched is the -# element type. -# Arrays of any number of dimensions are treated the same as the element type. -# For example, a pattern of "!example.Foo", rejects creation of any instance or -# array of example.Foo. -# -# If the pattern starts with "!", the status is REJECTED if the remaining -# pattern is matched; otherwise the status is ALLOWED if the pattern matches. -# If the pattern contains "/", the non-empty prefix up to the "/" is the -# module name; -# if the module name matches the module name of the class then -# the remaining pattern is matched with the class name. -# If there is no "/", the module name is not compared. -# If the pattern ends with ".**" it matches any class in the package and all -# subpackages. -# If the pattern ends with ".*" it matches any class in the package. -# If the pattern ends with "*", it matches any class with the pattern as a -# prefix. -# If the pattern is equal to the class name, it matches. -# Otherwise, the status is UNDECIDED. -# -#jdk.serialFilter=pattern;pattern - -# -# RMI Registry Serial Filter -# -# The filter pattern uses the same format as jdk.serialFilter. -# This filter can override the builtin filter if additional types need to be -# allowed or rejected from the RMI Registry or to decrease limits but not -# to increase limits. -# If the limits (maxdepth, maxrefs, or maxbytes) are exceeded, the object is rejected. -# -# Each non-array type is allowed or rejected if it matches one of the patterns, -# evaluated from left to right, and is otherwise allowed. Arrays of any -# component type, including subarrays and arrays of primitives, are allowed. -# -# Array construction of any component type, including subarrays and arrays of -# primitives, are allowed unless the length is greater than the maxarray limit. -# The filter is applied to each array element. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -# The built-in filter allows subclasses of allowed classes and -# can approximately be represented as the pattern: -# -#sun.rmi.registry.registryFilter=\ -# maxarray=1000000;\ -# maxdepth=20;\ -# java.lang.String;\ -# java.lang.Number;\ -# java.lang.reflect.Proxy;\ -# java.rmi.Remote;\ -# sun.rmi.server.UnicastRef;\ -# sun.rmi.server.RMIClientSocketFactory;\ -# sun.rmi.server.RMIServerSocketFactory;\ -# java.rmi.server.UID -# -# RMI Distributed Garbage Collector (DGC) Serial Filter -# -# The filter pattern uses the same format as jdk.serialFilter. -# This filter can override the builtin filter if additional types need to be -# allowed or rejected from the RMI DGC. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -# The builtin DGC filter can approximately be represented as the filter pattern: -# -#sun.rmi.transport.dgcFilter=\ -# java.rmi.server.ObjID;\ -# java.rmi.server.UID;\ -# java.rmi.dgc.VMID;\ -# java.rmi.dgc.Lease;\ -# maxdepth=5;maxarray=10000 - -# -# JCEKS Encrypted Key Serial Filter -# -# This filter, if configured, is used by the JCEKS KeyStore during the -# deserialization of the encrypted Key object stored inside a key entry. -# If not configured or the filter result is UNDECIDED (i.e. none of the patterns -# matches), the filter configured by jdk.serialFilter will be consulted. -# -# If the system property jceks.key.serialFilter is also specified, it supersedes -# the security property value defined here. -# -# The filter pattern uses the same format as jdk.serialFilter. The default -# pattern allows java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type, -# and javax.crypto.spec.SecretKeySpec and rejects all the others. -jceks.key.serialFilter = java.base/java.lang.Enum;java.base/java.security.KeyRep;\ - java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!* - -# The iteration count used for password-based encryption (PBE) in JCEKS -# keystores. Values in the range 10000 to 5000000 are considered valid. -# If the value is out of this range, or is not a number, or is unspecified; -# a default of 200000 is used. -# -# If the system property jdk.jceks.iterationCount is also specified, it -# supersedes the security property value defined here. -# -#jdk.jceks.iterationCount = 200000 - -# -# PKCS12 KeyStore properties -# -# The following properties, if configured, are used by the PKCS12 KeyStore -# implementation during the creation of a new keystore. Several of the -# properties may also be used when modifying an existing keystore. The -# properties can be overridden by a KeyStore API that specifies its own -# algorithms and parameters. -# -# If an existing PKCS12 keystore is loaded and then stored, the algorithm and -# parameter used to generate the existing Mac will be reused. If the existing -# keystore does not have a Mac, no Mac will be created while storing. If there -# is at least one certificate in the existing keystore, the algorithm and -# parameters used to encrypt the last certificate in the existing keystore will -# be reused to encrypt all certificates while storing. If the last certificate -# in the existing keystore is not encrypted, all certificates will be stored -# unencrypted. If there is no certificate in the existing keystore, any newly -# added certificate will be encrypted (or stored unencrypted if algorithm -# value is "NONE") using the "keystore.pkcs12.certProtectionAlgorithm" and -# "keystore.pkcs12.certPbeIterationCount" values defined here. Existing private -# and secret key(s) are not changed. Newly set private and secret key(s) will -# be encrypted using the "keystore.pkcs12.keyProtectionAlgorithm" and -# "keystore.pkcs12.keyPbeIterationCount" values defined here. -# -# In order to apply new algorithms and parameters to all entries in an -# existing keystore, one can create a new keystore and add entries in the -# existing keystore into the new keystore. This can be achieved by calling the -# "keytool -importkeystore" command. -# -# If a system property of the same name is also specified, it supersedes the -# security property value defined here. -# -# If the property is set to an illegal value, an iteration count that is not -# a positive integer, or an unknown algorithm name, an exception will be thrown -# when the property is used. If the property is not set or empty, a default -# value will be used. -# -# Some PKCS12 tools and libraries may not support algorithms based on PBES2 -# and AES. To create a PKCS12 keystore which they can load, set the system -# property "keystore.pkcs12.legacy" which overrides the values of the properties -# defined below with legacy algorithms. Setting this system property (which can -# only be enabled and has no value) is equivalent to -# -# -Dkeystore.pkcs12.certProtectionAlgorithm=PBEWithSHA1AndRC2_40 -# -Dkeystore.pkcs12.keyProtectionAlgorithm=PBEWithSHA1AndDESede -# -Dkeystore.pkcs12.macAlgorithm=HmacPBESHA1 -# -Dkeystore.pkcs12.certPbeIterationCount=50000 -# -Dkeystore.pkcs12.keyPbeIterationCount=50000 -# -Dkeystore.pkcs12.macIterationCount=100000 -# -# Also, you can downgrade an existing PKCS12 keystore created with stronger -# algorithms to legacy algorithms with -# -# keytool -J-Dkeystore.pkcs12.legacy -importkeystore -srckeystore ks -destkeystore ks -# -# This system property should be used at your own risk. -# -# Note: These properties are currently used by the JDK Reference implementation. -# They are not guaranteed to be examined and used by other implementations. - -# The algorithm used to encrypt a certificate. This can be any non-Hmac PBE -# algorithm defined in the Cipher section of the Java Security Standard -# Algorithm Names Specification. When set to "NONE", the certificate -# is not encrypted. The default value is "PBEWithHmacSHA256AndAES_256". -#keystore.pkcs12.certProtectionAlgorithm = PBEWithHmacSHA256AndAES_256 - -# The iteration count used by the PBE algorithm when encrypting a certificate. -# This value must be a positive integer. The default value is 10000. -#keystore.pkcs12.certPbeIterationCount = 10000 - -# The algorithm used to encrypt a private key or secret key. This can be -# any non-Hmac PBE algorithm defined in the Cipher section of the Java -# Security Standard Algorithm Names Specification. The value must not be "NONE". -# The default value is "PBEWithHmacSHA256AndAES_256". -#keystore.pkcs12.keyProtectionAlgorithm = PBEWithHmacSHA256AndAES_256 - -# The iteration count used by the PBE algorithm when encrypting a private key -# or a secret key. This value must be a positive integer. The default value -# is 10000. -#keystore.pkcs12.keyPbeIterationCount = 10000 - -# The algorithm used to calculate the optional MacData at the end of a PKCS12 -# file. This can be any HmacPBE algorithm defined in the Mac section of the -# Java Security Standard Algorithm Names Specification. When set to "NONE", -# no Mac is generated. The default value is "HmacPBESHA256". -#keystore.pkcs12.macAlgorithm = HmacPBESHA256 - -# The iteration count used by the MacData algorithm. This value must be a -# positive integer. The default value is 10000. -#keystore.pkcs12.macIterationCount = 10000 - -# -# Enhanced exception message information -# -# By default, exception messages should not include potentially sensitive -# information such as file names, host names, or port numbers. This property -# accepts one or more comma separated values, each of which represents a -# category of enhanced exception message information to enable. Values are -# case-insensitive. Leading and trailing whitespaces, surrounding each value, -# are ignored. Unknown values are ignored. -# -# NOTE: Use caution before setting this property. Setting this property -# exposes sensitive information in Exceptions, which could, for example, -# propagate to untrusted code or be emitted in stack traces that are -# inadvertently disclosed and made accessible over a public network. -# -# The categories are: -# -# hostInfo - IOExceptions thrown by java.net.Socket and the socket types in the -# java.nio.channels package will contain enhanced exception -# message information -# -# jar - enables more detailed information in the IOExceptions thrown -# by classes in the java.util.jar package -# -# The property setting in this file can be overridden by a system property of -# the same name, with the same syntax and possible values. -# -#jdk.includeInExceptions=hostInfo,jar - -# -# Disabled mechanisms for the Simple Authentication and Security Layer (SASL) -# -# Disabled mechanisms will not be negotiated by both SASL clients and servers. -# These mechanisms will be ignored if they are specified in the "mechanisms" -# argument of "Sasl.createSaslClient" or the "mechanism" argument of -# "Sasl.createSaslServer". -# -# The value of this property is a comma-separated list of SASL mechanisms. -# The mechanisms are case-sensitive. Whitespaces around the commas are ignored. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -# Example: -# jdk.sasl.disabledMechanisms=PLAIN, CRAM-MD5, DIGEST-MD5 -jdk.sasl.disabledMechanisms= - -# -# Policies for distrusting Certificate Authorities (CAs). -# -# This is a comma separated value of one or more case-sensitive strings, each -# of which represents a policy for determining if a CA should be distrusted. -# The supported values are: -# -# SYMANTEC_TLS : Distrust TLS Server certificates anchored by a Symantec -# root CA and issued after April 16, 2019 unless issued by one of the -# following subordinate CAs which have a later distrust date: -# 1. Apple IST CA 2 - G1, SHA-256 fingerprint: -# AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A424B -# Distrust after December 31, 2019. -# 2. Apple IST CA 8 - G1, SHA-256 fingerprint: -# A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC1490882D488ED -# Distrust after December 31, 2019. -# -# Leading and trailing whitespace surrounding each value are ignored. -# Unknown values are ignored. If the property is commented out or set to the -# empty String, no policies are enforced. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be supported by other SE implementations. Also, this -# property does not override other security properties which can restrict -# certificates such as jdk.tls.disabledAlgorithms or -# jdk.certpath.disabledAlgorithms; those restrictions are still enforced even -# if this property is not enabled. -# -jdk.security.caDistrustPolicies=SYMANTEC_TLS - -# -# FilePermission path canonicalization -# -# This security property dictates how the path argument is processed and stored -# while constructing a FilePermission object. If the value is set to true, the -# path argument is canonicalized and FilePermission methods (such as implies, -# equals, and hashCode) are implemented based on this canonicalized result. -# Otherwise, the path argument is not canonicalized and FilePermission methods are -# implemented based on the original input. See the implementation note of the -# FilePermission class for more details. -# -# If a system property of the same name is also specified, it supersedes the -# security property value defined here. -# -# The default value for this property is false. -# -jdk.io.permissionsUseCanonicalPath=false - - -# -# Policies for the proxy_impersonator Kerberos ccache configuration entry -# -# The proxy_impersonator ccache configuration entry indicates that the ccache -# is a synthetic delegated credential for use with S4U2Proxy by an intermediate -# server. The ccache file should also contain the TGT of this server and -# an evidence ticket from the default principal of the ccache to this server. -# -# This security property determines how Java uses this configuration entry. -# There are 3 possible values: -# -# no-impersonate - Ignore this configuration entry, and always act as -# the owner of the TGT (if it exists). -# -# try-impersonate - Try impersonation when this configuration entry exists. -# If no matching TGT or evidence ticket is found, -# fallback to no-impersonate. -# -# always-impersonate - Always impersonate when this configuration entry exists. -# If no matching TGT or evidence ticket is found, -# no initial credential is read from the ccache. -# -# The default value is "always-impersonate". -# -# If a system property of the same name is also specified, it supersedes the -# security property value defined here. -# -#jdk.security.krb5.default.initiate.credential=always-impersonate - -# -# Trust Anchor Certificates - CA Basic Constraint check -# -# X.509 v3 certificates used as Trust Anchors (to validate signed code or TLS -# connections) must have the cA Basic Constraint field set to 'true'. Also, if -# they include a Key Usage extension, the keyCertSign bit must be set. These -# checks, enabled by default, can be disabled for backward-compatibility -# purposes with the jdk.security.allowNonCaAnchor System and Security -# properties. In the case that both properties are simultaneously set, the -# System value prevails. The default value of the property is "false". -# -#jdk.security.allowNonCaAnchor=true - -# -# The default Character set name (java.nio.charset.Charset.forName()) -# for converting TLS ALPN values between byte arrays and Strings. -# Prior versions of the JDK may use UTF-8 as the default charset. If -# you experience interoperability issues, setting this property to UTF-8 -# may help. -# -# jdk.tls.alpnCharset=UTF-8 -jdk.tls.alpnCharset=ISO_8859_1 - -# -# JNDI Object Factories Filter -# -# This filter is used by the JNDI runtime to control the set of object factory classes -# which will be allowed to instantiate objects from object references returned by -# naming/directory systems. The factory class named by the reference instance will be -# matched against this filter. The filter property supports pattern-based filter syntax -# with the same format as jdk.serialFilter. -# -# Each pattern is matched against the factory class name to allow or disallow it's -# instantiation. The access to a factory class is allowed unless the filter returns -# REJECTED. -# -# Note: This property is currently used by the JDK Reference implementation. -# It is not guaranteed to be examined and used by other implementations. -# -# If the system property jdk.jndi.object.factoriesFilter is also specified, it supersedes -# the security property value defined here. The default value of the property is "*". -# -# The default pattern value allows any object factory class specified by the reference -# instance to recreate the referenced object. -#jdk.jndi.object.factoriesFilter=* - -# -# Policy for non-forwardable service ticket in a S4U2proxy request -# -# The Service for User to Proxy (S4U2proxy) Kerberos extension enables a middle service -# to obtain a service ticket to another service on behalf of a user. It requires that -# the user's service ticket to the first service has the forwardable flag set [1]. -# However, some KDC implementations ignore this requirement and accept service tickets -# with the flag unset. -# -# If this security property is set to "true", then -# -# 1) The user service ticket, when obtained by the middle service after a S4U2self -# impersonation, is not required to have the forwardable flag set; and, -# -# 2) If a S4U2proxy request receives a KRB_ERROR of the KDC_ERR_BADOPTION error code -# and the ticket to the middle service is not forwardable, OpenJDK will try the same -# request with another KDC instead of treating it as a fatal failure. -# -# The default value is "false". -# -# If a system property of the same name is also specified, it supersedes the -# security property value defined here. -# -# [1] https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-sfu/bde93b0e-f3c9-4ddf-9f44-e1453be7af5a -#jdk.security.krb5.s4u2proxy.acceptNonForwardableServiceTicket=false diff --git a/pythonx/compose/lite/release/runtime/conf/security/policy/README.txt b/pythonx/compose/lite/release/runtime/conf/security/policy/README.txt deleted file mode 100644 index fdf77d3..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/policy/README.txt +++ /dev/null @@ -1,54 +0,0 @@ - - Java(TM) Cryptography Extension Policy Files - for the Java(TM) Platform, Standard Edition Runtime Environment - - README ------------------------------------------------------------------------- - -Import and export control rules on cryptographic software vary from -country to country. The Java Cryptography Extension (JCE) architecture -allows flexible cryptographic key strength to be configured via the -jurisdiction policy files which are referenced by the "crypto.policy" -security property in the /conf/security/java.security file. - -By default, Java provides two different sets of cryptographic policy -files: - - unlimited: These policy files contain no restrictions on cryptographic - strengths or algorithms - - limited: These policy files contain more restricted cryptographic - strengths - -These files reside in /conf/security/policy in the "unlimited" -or "limited" subdirectories respectively. - -Each subdirectory contains a complete policy configuration, -and subdirectories can be added/edited/removed to reflect your -import or export control product requirements. - -Within a subdirectory, the effective policy is the combined minimum -permissions of the grant statements in the file(s) matching the filename -pattern "default_*.policy". At least one grant is required. For example: - - limited = Export (all) + Import (limited) = Limited - unlimited = Export (all) + Import (all) = Unlimited - -The effective exemption policy is the combined minimum permissions -of the grant statements in the file(s) matching the filename pattern -"exempt_*.policy". Exemption grants are optional. For example: - - limited = grants exemption permissions, by which the - effective policy can be circumvented. - e.g. KeyRecovery/KeyEscrow/KeyWeakening. - -Please see the Java Cryptography Architecture (JCA) documentation for -additional information on these files and formats. - -YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY -TO DETERMINE THE EXACT REQUIREMENTS. - -Please note that the JCE for Java SE, including the JCE framework, -cryptographic policy files, and standard JCE providers provided with -the Java SE, have been reviewed and approved for export as mass market -encryption item by the US Bureau of Industry and Security. diff --git a/pythonx/compose/lite/release/runtime/conf/security/policy/limited/default_US_export.policy b/pythonx/compose/lite/release/runtime/conf/security/policy/limited/default_US_export.policy deleted file mode 100644 index 1f38934..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/policy/limited/default_US_export.policy +++ /dev/null @@ -1,6 +0,0 @@ -// Default US Export policy file. - -grant { - // There is no restriction to any algorithms. - permission javax.crypto.CryptoAllPermission; -}; diff --git a/pythonx/compose/lite/release/runtime/conf/security/policy/limited/default_local.policy b/pythonx/compose/lite/release/runtime/conf/security/policy/limited/default_local.policy deleted file mode 100644 index 2a6d513..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/policy/limited/default_local.policy +++ /dev/null @@ -1,14 +0,0 @@ -// Some countries have import limits on crypto strength. This policy file -// is worldwide importable. - -grant { - permission javax.crypto.CryptoPermission "DES", 64; - permission javax.crypto.CryptoPermission "DESede", *; - permission javax.crypto.CryptoPermission "RC2", 128, - "javax.crypto.spec.RC2ParameterSpec", 128; - permission javax.crypto.CryptoPermission "RC4", 128; - permission javax.crypto.CryptoPermission "RC5", 128, - "javax.crypto.spec.RC5ParameterSpec", *, 12, *; - permission javax.crypto.CryptoPermission "RSA", *; - permission javax.crypto.CryptoPermission *, 128; -}; diff --git a/pythonx/compose/lite/release/runtime/conf/security/policy/limited/exempt_local.policy b/pythonx/compose/lite/release/runtime/conf/security/policy/limited/exempt_local.policy deleted file mode 100644 index 9dd5b91..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/policy/limited/exempt_local.policy +++ /dev/null @@ -1,13 +0,0 @@ -// Some countries have import limits on crypto strength, but may allow for -// these exemptions if the exemption mechanism is used. - -grant { - // There is no restriction to any algorithms if KeyRecovery is enforced. - permission javax.crypto.CryptoPermission *, "KeyRecovery"; - - // There is no restriction to any algorithms if KeyEscrow is enforced. - permission javax.crypto.CryptoPermission *, "KeyEscrow"; - - // There is no restriction to any algorithms if KeyWeakening is enforced. - permission javax.crypto.CryptoPermission *, "KeyWeakening"; -}; diff --git a/pythonx/compose/lite/release/runtime/conf/security/policy/unlimited/default_US_export.policy b/pythonx/compose/lite/release/runtime/conf/security/policy/unlimited/default_US_export.policy deleted file mode 100644 index 1f38934..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/policy/unlimited/default_US_export.policy +++ /dev/null @@ -1,6 +0,0 @@ -// Default US Export policy file. - -grant { - // There is no restriction to any algorithms. - permission javax.crypto.CryptoAllPermission; -}; diff --git a/pythonx/compose/lite/release/runtime/conf/security/policy/unlimited/default_local.policy b/pythonx/compose/lite/release/runtime/conf/security/policy/unlimited/default_local.policy deleted file mode 100644 index 2b907e2..0000000 --- a/pythonx/compose/lite/release/runtime/conf/security/policy/unlimited/default_local.policy +++ /dev/null @@ -1,6 +0,0 @@ -// Country-specific policy file for countries with no limits on crypto strength. - -grant { - // There is no restriction to any algorithms. - permission javax.crypto.CryptoAllPermission; -}; diff --git a/pythonx/compose/lite/release/runtime/conf/sound.properties b/pythonx/compose/lite/release/runtime/conf/sound.properties deleted file mode 100644 index 68309d1..0000000 --- a/pythonx/compose/lite/release/runtime/conf/sound.properties +++ /dev/null @@ -1,39 +0,0 @@ -############################################################ -# Sound Configuration File -############################################################ -# -# This properties file is used to specify default service -# providers for javax.sound.midi.MidiSystem and -# javax.sound.sampled.AudioSystem. -# -# The following keys are recognized by MidiSystem methods: -# -# javax.sound.midi.Receiver -# javax.sound.midi.Sequencer -# javax.sound.midi.Synthesizer -# javax.sound.midi.Transmitter -# -# The following keys are recognized by AudioSystem methods: -# -# javax.sound.sampled.Clip -# javax.sound.sampled.Port -# javax.sound.sampled.SourceDataLine -# javax.sound.sampled.TargetDataLine -# -# The values specify the full class name of the service -# provider, or the device name. -# -# See the class descriptions for details. -# -# Example 1: -# Use MyDeviceProvider as default for SourceDataLines: -# javax.sound.sampled.SourceDataLine=com.xyz.MyDeviceProvider -# -# Example 2: -# Specify the default Synthesizer by its name "InternalSynth". -# javax.sound.midi.Synthesizer=#InternalSynth -# -# Example 3: -# Specify the default Receiver by provider and name: -# javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1 -# diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/java.base/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index ff700cd..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1,37 +0,0 @@ - ADDITIONAL INFORMATION ABOUT LICENSING - -Certain files distributed by Oracle America, Inc. and/or its affiliates are -subject to the following clarification and special exception to the GPLv2, -based on the GNU Project exception for its Classpath libraries, known as the -GNU Classpath Exception. - -Note that Oracle includes multiple, independent programs in this software -package. Some of those programs are provided under licenses deemed -incompatible with the GPLv2 by the Free Software Foundation and others. -For example, the package includes programs licensed under the Apache -License, Version 2.0 and may include FreeType. Such programs are licensed -to you under their original licenses. - -Oracle facilitates your further distribution of this package by adding the -Classpath Exception to the necessary parts of its GPLv2 code, which permits -you to use that code in combination with other independent modules not -licensed under the GPLv2. However, note that this would not permit you to -commingle code under an incompatible license with Oracle's GPLv2 licensed -code by, for example, cutting and pasting such code into a file also -containing Oracle's GPLv2 licensed code and then distributing the result. - -Additionally, if you were to remove the Classpath Exception from any of the -files to which it applies and distribute the result, you would likely be -required to license some or all of the other code in that distribution under -the GPLv2 as well, and since the GPLv2 is incompatible with the license terms -of some items included in the distribution by Oracle, removing the Classpath -Exception could therefore effectively compromise your ability to further -distribute the package. - -Failing to distribute notices associated with some files may also create -unexpected legal consequences. - -Proceed with caution and we recommend that you obtain the advice of a lawyer -skilled in open source matters before removing the Classpath Exception or -making modifications to this package which may subsequently be redistributed -and/or involve the use of third party software. diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/java.base/ASSEMBLY_EXCEPTION deleted file mode 100644 index 065b8d9..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1,27 +0,0 @@ - -OPENJDK ASSEMBLY EXCEPTION - -The OpenJDK source code made available by Oracle America, Inc. (Oracle) at -openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU -General Public License version 2 -only ("GPL2"), with the following clarification and special exception. - - Linking this OpenJDK Code statically or dynamically with other code - is making a combined work based on this library. Thus, the terms - and conditions of GPL2 cover the whole combination. - - As a special exception, Oracle gives you permission to link this - OpenJDK Code with certain code licensed by Oracle as indicated at - http://openjdk.java.net/legal/exception-modules-2007-05-08.html - ("Designated Exception Modules") to produce an executable, - regardless of the license terms of the Designated Exception Modules, - and to copy and distribute the resulting executable under GPL2, - provided that the Designated Exception Modules continue to be - governed by the licenses under which they were offered by Oracle. - -As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code -to build an executable that includes those portions of necessary code that -Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 -with the Classpath exception). If you modify or add to the OpenJDK code, -that new GPL2 code may still be combined with Designated Exception Modules -if the new code is made subject to this exception by its copyright holder. diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/LICENSE b/pythonx/compose/lite/release/runtime/legal/java.base/LICENSE deleted file mode 100644 index 8b400c7..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/LICENSE +++ /dev/null @@ -1,347 +0,0 @@ -The GNU General Public License (GPL) - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public License is intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software is -covered by the GNU Library General Public License instead.) You can apply it to -your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom to -distribute copies of free software (and charge for this service if you wish), -that you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs; and that you know you -can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny -you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of the -software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for -a fee, you must give the recipients all the rights that you have. You must -make sure that they, too, receive or can get the source code. And you must -show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients to -know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program proprietary. -To prevent this, we have made it clear that any patent must be licensed for -everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms of -this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is included -without limitation in the term "modification".) Each licensee is addressed as -"you". - -Activities other than copying, distribution and modification are not covered by -this License; they are outside its scope. The act of running the Program is -not restricted, and the output from the Program is covered only if its contents -constitute a work based on the Program (independent of having been made by -running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as -you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may -at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus -forming a work based on the Program, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all of -these conditions: - - a) You must cause the modified files to carry prominent notices stating - that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or - in part contains or is derived from the Program or any part thereof, to be - licensed as a whole at no charge to all third parties under the terms of - this License. - - c) If the modified program normally reads commands interactively when run, - you must cause it, when started running for such interactive use in the - most ordinary way, to print or display an announcement including an - appropriate copyright notice and a notice that there is no warranty (or - else, saying that you provide a warranty) and that users may redistribute - the program under these conditions, and telling the user how to view a copy - of this License. (Exception: if the Program itself is interactive but does - not normally print such an announcement, your work based on the Program is - not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, and -its terms, do not apply to those sections when you distribute them as separate -works. But when you distribute the same sections as part of a whole which is a -work based on the Program, the distribution of the whole must be on the terms -of this License, whose permissions for other licensees extend to the entire -whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise the -right to control the distribution of derivative or collective works based on -the Program. - -In addition, mere aggregation of another work not based on the Program with the -Program (or with a work based on the Program) on a volume of a storage or -distribution medium does not bring the other work under the scope of this -License. - -3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 and -2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source - code, which must be distributed under the terms of Sections 1 and 2 above - on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to - give any third party, for a charge no more than your cost of physically - performing source distribution, a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of Sections 1 - and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to - distribute corresponding source code. (This alternative is allowed only - for noncommercial distribution and only if you received the program in - object code or executable form with such an offer, in accord with - Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and installation -of the executable. However, as a special exception, the source code -distributed need not include anything that is normally distributed (in either -source or binary form) with the major components (compiler, kernel, and so on) -of the operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the source -code from the same place counts as distribution of the source code, even though -third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, or -rights, from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. -However, nothing else grants you permission to modify or distribute the Program -or its derivative works. These actions are prohibited by law if you do not -accept this License. Therefore, by modifying or distributing the Program (or -any work based on the Program), you indicate your acceptance of this License to -do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), -the recipient automatically receives a license from the original licensor to -copy, distribute or modify the Program subject to these terms and conditions. -You may not impose any further restrictions on the recipients' exercise of the -rights granted herein. You are not responsible for enforcing compliance by -third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), conditions -are imposed on you (whether by court order, agreement or otherwise) that -contradict the conditions of this License, they do not excuse you from the -conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose that -choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original -copyright holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In -such case, this License incorporates the limitation as if written in the body -of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the -General Public License from time to time. Such new versions will be similar in -spirit to the present version, but may differ in detail to address new problems -or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any later -version", you have the option of following the terms and conditions either of -that version or of any later version published by the Free Software Foundation. -If the Program does not specify a version number of this License, you may -choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software Foundation, -write to the Free Software Foundation; we sometimes make exceptions for this. -Our decision will be guided by the two goals of preserving the free status of -all derivatives of our free software and of promoting the sharing and reuse of -software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE -PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL -ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE -PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR -INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA -BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER -OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively convey the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - One line to give the program's name and a brief idea of what it does. - - Copyright (C) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when it -starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author Gnomovision comes - with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free - software, and you are welcome to redistribute it under certain conditions; - type 'show c' for details. - -The hypothetical commands 'show w' and 'show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may be -called something other than 'show w' and 'show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the program, if necessary. Here -is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - 'Gnomovision' (which makes passes at compilers) written by James Hacker. - - signature of Ty Coon, 1 April 1989 - - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General Public -License instead of this License. - - -"CLASSPATH" EXCEPTION TO THE GPL - -Certain source files distributed by Oracle America and/or its affiliates are -subject to the following clarification and special exception to the GPL, but -only where Oracle has expressly included in the particular source file's header -the words "Oracle designates this particular file as subject to the "Classpath" -exception as provided by Oracle in the LICENSE file that accompanied this code." - - Linking this library statically or dynamically with other modules is making - a combined work based on this library. Thus, the terms and conditions of - the GNU General Public License cover the whole combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent modules, - and to copy and distribute the resulting executable under terms of your - choice, provided that you also meet, for each linked independent module, - the terms and conditions of the license of that module. An independent - module is a module which is not derived from or based on this library. If - you modify this library, you may extend this exception to your version of - the library, but you are not obligated to do so. If you do not wish to do - so, delete this exception statement from your version. diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/aes.md b/pythonx/compose/lite/release/runtime/legal/java.base/aes.md deleted file mode 100644 index 6d0ee2e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/aes.md +++ /dev/null @@ -1,36 +0,0 @@ -## Cryptix AES v3.2.0 - -### Cryptix General License -
-
-Cryptix General License
-
-Copyright (c) 1995-2005 The Cryptix Foundation Limited.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-  1. Redistributions of source code must retain the copyright notice,
-     this list of conditions and the following disclaimer.
-
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in
-     the documentation and/or other materials provided with the
-     distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND
-CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/asm.md b/pythonx/compose/lite/release/runtime/legal/java.base/asm.md deleted file mode 100644 index 0a5d1c9..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/asm.md +++ /dev/null @@ -1,36 +0,0 @@ -## ASM Bytecode Manipulation Framework v9.3 - -### ASM License -
-
-Copyright (c) 2000-2011 France Télécom
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-3. Neither the name of the copyright holders nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/c-libutl.md b/pythonx/compose/lite/release/runtime/legal/java.base/c-libutl.md deleted file mode 100644 index 8bc9880..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/c-libutl.md +++ /dev/null @@ -1,35 +0,0 @@ -## c-libutl 20160225 - -### c-libutl License -``` - -This software is distributed under the terms of the BSD license. - -== BSD LICENSE =============================================================== - - (C) 2009 by Remo Dentato (rdentato@gmail.com) - - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -http://opensource.org/licenses/bsd-license.php - -``` diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/cldr.md b/pythonx/compose/lite/release/runtime/legal/java.base/cldr.md deleted file mode 100644 index cb74c43..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/cldr.md +++ /dev/null @@ -1,105 +0,0 @@ -## Unicode Common Local Data Repository (CLDR) v41 - -### CLDR License - -``` - -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -See Terms of Use for definitions of Unicode Inc.'s -Data Files and Software. - -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - - ------------------------------------------------------------- Terms of Use --------------------------------------------------------------- - -Unicode® Copyright and Terms of Use -For the general privacy policy governing access to this site, see the Unicode Privacy Policy. - -Unicode Copyright -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Definitions -Unicode Data Files ("DATA FILES") include all data files under the directories: -https://www.unicode.org/Public/ -https://www.unicode.org/reports/ -https://www.unicode.org/ivd/data/ - -Unicode Data Files do not include PDF online code charts under the directory: -https://www.unicode.org/Public/ - -Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard -or any source code or compiled code under the directories: -https://www.unicode.org/Public/PROGRAMS/ -https://www.unicode.org/Public/cldr/ -http://site.icu-project.org/download/ -Terms of Use -Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. -Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. -Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. -Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. -The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. -All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. -No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. -Modification is not permitted with respect to this document. All copies of this document must be verbatim. -Restricted Rights Legend -Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. -Warranties and Disclaimers -This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. -If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. -EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. -Waiver of Damages -In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. -Trademarks & Logos -The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. -The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. -All third party trademarks referenced herein are the property of their respective owners. -Miscellaneous -Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. -Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. -Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. -Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. -Entire Agreement. This Agreement constitutes the entire agreement between the parties. - - -``` diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/icu.md b/pythonx/compose/lite/release/runtime/legal/java.base/icu.md deleted file mode 100644 index 35a54e6..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/icu.md +++ /dev/null @@ -1,518 +0,0 @@ -## International Components for Unicode (ICU4J) v70.1 - -### ICU4J License -``` - -COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later) - -Copyright © 1991-2020 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - ---------------------- - -Third-Party Software Licenses - -This section contains third-party software notices and/or additional -terms for licensed third-party software components included within ICU -libraries. - -1. ICU License - ICU 1.8.1 to ICU 57.1 - -COPYRIGHT AND PERMISSION NOTICE - -Copyright (c) 1995-2016 International Business Machines Corporation and others -All rights reserved. - -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, and/or sell copies of the Software, and to permit persons -to whom the Software is furnished to do so, provided that the above -copyright notice(s) and this permission notice appear in all copies of -the Software and that both the above copyright notice(s) and this -permission notice appear in supporting documentation. - -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 -OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY -SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER -RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, use -or other dealings in this Software without prior written authorization -of the copyright holder. - -All trademarks and registered trademarks mentioned herein are the -property of their respective owners. - -2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt) - - # The Google Chrome software developed by Google is licensed under - # the BSD license. Other software included in this distribution is - # provided under other licenses, as set forth below. - # - # The BSD License - # http://opensource.org/licenses/bsd-license.php - # Copyright (C) 2006-2008, Google Inc. - # - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions are met: - # - # Redistributions of source code must retain the above copyright notice, - # this list of conditions and the following disclaimer. - # Redistributions in binary form must reproduce the above - # copyright notice, this list of conditions and the following - # disclaimer in the documentation and/or other materials provided with - # the distribution. - # Neither the name of Google Inc. nor the names of its - # contributors may be used to endorse or promote products derived from - # this software without specific prior written permission. - # - # - # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - # - # - # The word list in cjdict.txt are generated by combining three word lists - # listed below with further processing for compound word breaking. The - # frequency is generated with an iterative training against Google web - # corpora. - # - # * Libtabe (Chinese) - # - https://sourceforge.net/project/?group_id=1519 - # - Its license terms and conditions are shown below. - # - # * IPADIC (Japanese) - # - http://chasen.aist-nara.ac.jp/chasen/distribution.html - # - Its license terms and conditions are shown below. - # - # ---------COPYING.libtabe ---- BEGIN-------------------- - # - # /* - # * Copyright (c) 1999 TaBE Project. - # * Copyright (c) 1999 Pai-Hsiang Hsiao. - # * All rights reserved. - # * - # * Redistribution and use in source and binary forms, with or without - # * modification, are permitted provided that the following conditions - # * are met: - # * - # * . Redistributions of source code must retain the above copyright - # * notice, this list of conditions and the following disclaimer. - # * . Redistributions in binary form must reproduce the above copyright - # * notice, this list of conditions and the following disclaimer in - # * the documentation and/or other materials provided with the - # * distribution. - # * . Neither the name of the TaBE Project nor the names of its - # * contributors may be used to endorse or promote products derived - # * from this software without specific prior written permission. - # * - # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - # * OF THE POSSIBILITY OF SUCH DAMAGE. - # */ - # - # /* - # * Copyright (c) 1999 Computer Systems and Communication Lab, - # * Institute of Information Science, Academia - # * Sinica. All rights reserved. - # * - # * Redistribution and use in source and binary forms, with or without - # * modification, are permitted provided that the following conditions - # * are met: - # * - # * . Redistributions of source code must retain the above copyright - # * notice, this list of conditions and the following disclaimer. - # * . Redistributions in binary form must reproduce the above copyright - # * notice, this list of conditions and the following disclaimer in - # * the documentation and/or other materials provided with the - # * distribution. - # * . Neither the name of the Computer Systems and Communication Lab - # * nor the names of its contributors may be used to endorse or - # * promote products derived from this software without specific - # * prior written permission. - # * - # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - # * OF THE POSSIBILITY OF SUCH DAMAGE. - # */ - # - # Copyright 1996 Chih-Hao Tsai @ Beckman Institute, - # University of Illinois - # c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 - # - # ---------------COPYING.libtabe-----END-------------------------------- - # - # - # ---------------COPYING.ipadic-----BEGIN------------------------------- - # - # Copyright 2000, 2001, 2002, 2003 Nara Institute of Science - # and Technology. All Rights Reserved. - # - # Use, reproduction, and distribution of this software is permitted. - # Any copy of this software, whether in its original form or modified, - # must include both the above copyright notice and the following - # paragraphs. - # - # Nara Institute of Science and Technology (NAIST), - # the copyright holders, disclaims all warranties with regard to this - # software, including all implied warranties of merchantability and - # fitness, in no event shall NAIST be liable for - # any special, indirect or consequential damages or any damages - # whatsoever resulting from loss of use, data or profits, whether in an - # action of contract, negligence or other tortuous action, arising out - # of or in connection with the use or performance of this software. - # - # A large portion of the dictionary entries - # originate from ICOT Free Software. The following conditions for ICOT - # Free Software applies to the current dictionary as well. - # - # Each User may also freely distribute the Program, whether in its - # original form or modified, to any third party or parties, PROVIDED - # that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear - # on, or be attached to, the Program, which is distributed substantially - # in the same form as set out herein and that such intended - # distribution, if actually made, will neither violate or otherwise - # contravene any of the laws and regulations of the countries having - # jurisdiction over the User or the intended distribution itself. - # - # NO WARRANTY - # - # The program was produced on an experimental basis in the course of the - # research and development conducted during the project and is provided - # to users as so produced on an experimental basis. Accordingly, the - # program is provided without any warranty whatsoever, whether express, - # implied, statutory or otherwise. The term "warranty" used herein - # includes, but is not limited to, any warranty of the quality, - # performance, merchantability and fitness for a particular purpose of - # the program and the nonexistence of any infringement or violation of - # any right of any third party. - # - # Each user of the program will agree and understand, and be deemed to - # have agreed and understood, that there is no warranty whatsoever for - # the program and, accordingly, the entire risk arising from or - # otherwise connected with the program is assumed by the user. - # - # Therefore, neither ICOT, the copyright holder, or any other - # organization that participated in or was otherwise related to the - # development of the program and their respective officials, directors, - # officers and other employees shall be held liable for any and all - # damages, including, without limitation, general, special, incidental - # and consequential damages, arising out of or otherwise in connection - # with the use or inability to use the program or any product, material - # or result produced or otherwise obtained by using the program, - # regardless of whether they have been advised of, or otherwise had - # knowledge of, the possibility of such damages at any time during the - # project or thereafter. Each user will be deemed to have agreed to the - # foregoing by his or her commencement of use of the program. The term - # "use" as used herein includes, but is not limited to, the use, - # modification, copying and distribution of the program and the - # production of secondary products from the program. - # - # In the case where the program, whether in its original form or - # modified, was distributed or delivered to or received by a user from - # any person, organization or entity other than ICOT, unless it makes or - # grants independently of ICOT any specific warranty to the user in - # writing, such person, organization or entity, will also be exempted - # from and not be held liable to the user for any such damages as noted - # above as far as the program is concerned. - # - # ---------------COPYING.ipadic-----END---------------------------------- - -3. Lao Word Break Dictionary Data (laodict.txt) - - # Copyright (C) 2016 and later: Unicode, Inc. and others. - # License & terms of use: http://www.unicode.org/copyright.html - # Copyright (c) 2015 International Business Machines Corporation - # and others. All Rights Reserved. - # - # Project: https://github.com/rober42539/lao-dictionary - # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt - # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt - # (copied below) - # - # This file is derived from the above dictionary version of Nov 22, 2020 - # ---------------------------------------------------------------------- - # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions are met: - # - # Redistributions of source code must retain the above copyright notice, this - # list of conditions and the following disclaimer. Redistributions in binary - # form must reproduce the above copyright notice, this list of conditions and - # the following disclaimer in the documentation and/or ther materials - # provided with the distribution. - # - # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - # OF THE POSSIBILITY OF SUCH DAMAGE. - # -------------------------------------------------------------------------- - -4. Burmese Word Break Dictionary Data (burmesedict.txt) - - # Copyright (c) 2014 International Business Machines Corporation - # and others. All Rights Reserved. - # - # This list is part of a project hosted at: - # github.com/kanyawtech/myanmar-karen-word-lists - # - # -------------------------------------------------------------------------- - # Copyright (c) 2013, LeRoy Benjamin Sharon - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions - # are met: Redistributions of source code must retain the above - # copyright notice, this list of conditions and the following - # disclaimer. Redistributions in binary form must reproduce the - # above copyright notice, this list of conditions and the following - # disclaimer in the documentation and/or other materials provided - # with the distribution. - # - # Neither the name Myanmar Karen Word Lists, nor the names of its - # contributors may be used to endorse or promote products derived - # from this software without specific prior written permission. - # - # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS - # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF - # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - # SUCH DAMAGE. - # -------------------------------------------------------------------------- - -5. Time Zone Database - - ICU uses the public domain data and code derived from Time Zone -Database for its time zone support. The ownership of the TZ database -is explained in BCP 175: Procedure for Maintaining the Time Zone -Database section 7. - - # 7. Database Ownership - # - # The TZ database itself is not an IETF Contribution or an IETF - # document. Rather it is a pre-existing and regularly updated work - # that is in the public domain, and is intended to remain in the - # public domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do - # not apply to the TZ Database or contributions that individuals make - # to it. Should any claims be made and substantiated against the TZ - # Database, the organization that is providing the IANA - # Considerations defined in this RFC, under the memorandum of - # understanding with the IETF, currently ICANN, may act in accordance - # with all competent court orders. No ownership claims will be made - # by ICANN or the IETF Trust on the database or the code. Any person - # making a contribution to the database or code waives all rights to - # future claims in that contribution or in the TZ Database. - -6. Google double-conversion - -Copyright 2006-2011, the V8 project authors. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -==================================================== - -Unicode® Copyright and Terms of Use -For the general privacy policy governing access to this site, see the Unicode Privacy Policy. - -Unicode Copyright -Copyright © 1991-2021 Unicode, Inc. All rights reserved. -Definitions -Unicode Data Files ("DATA FILES") include all data files under the directories: -https://www.unicode.org/Public/ -https://www.unicode.org/reports/ -https://www.unicode.org/ivd/data/ - -Unicode Data Files do not include PDF online code charts under the directory: -https://www.unicode.org/Public/ - -Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard -or any source code or compiled code under the directories: -https://www.unicode.org/Public/PROGRAMS/ -https://www.unicode.org/Public/cldr/ -http://site.icu-project.org/download/ -Terms of Use -Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. -Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. -Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. -Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. -The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. -All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. -No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. -Modification is not permitted with respect to this document. All copies of this document must be verbatim. -Restricted Rights Legend -Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. -Warranties and Disclaimers -This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. -If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. -EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. -Waiver of Damages -In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. -Trademarks & Logos -The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. -The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. -All third party trademarks referenced herein are the property of their respective owners. -Miscellaneous -Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. -Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. -Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. -Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. -Entire Agreement. This Agreement constitutes the entire agreement between the parties. - -======================================================= - -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -See Terms of Use -for definitions of Unicode Inc.’s Data Files and Software. - -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2021 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - -``` - diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/public_suffix.md b/pythonx/compose/lite/release/runtime/legal/java.base/public_suffix.md deleted file mode 100644 index 61d9607..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/public_suffix.md +++ /dev/null @@ -1,399 +0,0 @@ -## Mozilla Public Suffix List - -### Public Suffix Notice -``` -You are receiving a copy of the Mozilla Public Suffix List in the following -file: /lib/security/public_suffix_list.dat. The terms of the -Oracle license do NOT apply to this file; it is licensed under the -Mozilla Public License 2.0, separately from the Oracle programs you receive. -If you do not wish to use the Public Suffix List, you may remove the -/lib/security/public_suffix_list.dat file. - -The Source Code of this file is available under the -Mozilla Public License, v. 2.0 and is located at -https://raw.githubusercontent.com/publicsuffix/list/3c213aab32b3c014f171b1673d4ce9b5cd72bf1c/public_suffix_list.dat. -If a copy of the MPL was not distributed with this file, you can obtain one -at https://mozilla.org/MPL/2.0/. - -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -for the specific language governing rights and limitations under the License. -``` - -### MPL v2.0 -``` -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at https://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - -``` diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/unicode.md b/pythonx/compose/lite/release/runtime/legal/java.base/unicode.md deleted file mode 100644 index fbb8234..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/unicode.md +++ /dev/null @@ -1,103 +0,0 @@ -## The Unicode Standard, Unicode Character Database, Version 14.0.0 - -### Unicode Character Database -``` - -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -See Terms of Use for definitions of Unicode Inc.'s -Data Files and Software. - -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2021 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - -=== http://www.unicode.org/copyright.html content === -Unicode (R) Copyright and Terms of Use -For the general privacy policy governing access to this site, see the Unicode Privacy Policy. - -Unicode Copyright -Copyright (C) 1991-2021 Unicode, Inc. All rights reserved. -Definitions -Unicode Data Files ("DATA FILES") include all data files under the directories: -https://www.unicode.org/Public/ -https://www.unicode.org/reports/ -https://www.unicode.org/ivd/data/ - -Unicode Data Files do not include PDF online code charts under the directory: -https://www.unicode.org/Public/ - -Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard -or any source code or compiled code under the directories: -https://www.unicode.org/Public/PROGRAMS/ -https://www.unicode.org/Public/cldr/ -http://site.icu-project.org/download/ -Terms of Use -Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. -Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files, subject to the Terms and Conditions herein. -Further specifications of rights and restrictions pertaining to the use of the Unicode DATA FILES and SOFTWARE can be found in the Unicode Data Files and Software License. -Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. -The Unicode PDF online code charts carry specific restrictions. Those restrictions are incorporated as the first page of each PDF code chart. -All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. -No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. -Modification is not permitted with respect to this document. All copies of this document must be verbatim. -Restricted Rights Legend -Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. -Warranties and Disclaimers -This publication and/or website may include technical or typographical errors or other inaccuracies. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode, Inc. may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. -If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. -EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. -Waiver of Damages -In no event shall Unicode, Inc. or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode, Inc. was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. -Trademarks & Logos -The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. -The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. -All third party trademarks referenced herein are the property of their respective owners. -Miscellaneous -Jurisdiction and Venue. This website is operated from a location in the State of California, United States of America. Unicode, Inc. makes no representation that the materials are appropriate for use in other locations. If you access this website from other locations, you are responsible for compliance with local laws. This Agreement, all use of this website and any claims and damages resulting from use of this website are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this website shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. -Modification by Unicode, Inc. Unicode, Inc. shall have the right to modify this Agreement at any time by posting it to this website. The user may not assign any part of this Agreement without Unicode, Inc.’s prior written consent. -Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. -Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. -Entire Agreement. This Agreement constitutes the entire agreement between the parties. - - -``` - diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/wepoll.md b/pythonx/compose/lite/release/runtime/legal/java.base/wepoll.md deleted file mode 100644 index f2d9544..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/wepoll.md +++ /dev/null @@ -1,34 +0,0 @@ -## Bert Belder: wepoll v 1.5.8 - -### wepoll License -``` -wepoll - epoll for Windows -https://github.com/piscisaureus/wepoll - -Copyright 2012-2020, Bert Belder -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -``` diff --git a/pythonx/compose/lite/release/runtime/legal/java.base/zlib.md b/pythonx/compose/lite/release/runtime/legal/java.base/zlib.md deleted file mode 100644 index 69198f1..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.base/zlib.md +++ /dev/null @@ -1,27 +0,0 @@ -## zlib v1.2.11 - -### zlib License -
-
-Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
-
-This software is provided 'as-is', without any express or implied
-warranty.  In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
-   claim that you wrote the original software. If you use this software
-   in a product, an acknowledgment in the product documentation would be
-   appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
-   misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-Jean-loup Gailly        Mark Adler
-jloup@gzip.org          madler@alumni.caltech.edu
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/pythonx/compose/lite/release/runtime/legal/java.datatransfer/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/java.datatransfer/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.datatransfer/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/pythonx/compose/lite/release/runtime/legal/java.datatransfer/LICENSE b/pythonx/compose/lite/release/runtime/legal/java.datatransfer/LICENSE deleted file mode 100644 index 4ad9fe4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.datatransfer/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/java.desktop/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/java.desktop/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/LICENSE b/pythonx/compose/lite/release/runtime/legal/java.desktop/LICENSE deleted file mode 100644 index 4ad9fe4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/colorimaging.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/colorimaging.md deleted file mode 100644 index eeb9932..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/colorimaging.md +++ /dev/null @@ -1,7 +0,0 @@ -## Eastman Kodak Company: Portions of color management and imaging software - -### Eastman Kodak Notice -
-Portions Copyright Eastman Kodak Company 1991-2003
-
- diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/freetype.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/freetype.md deleted file mode 100644 index dd1ce99..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/freetype.md +++ /dev/null @@ -1,609 +0,0 @@ -## The FreeType Project: Freetype v2.12.1 - - -### FreeType Notice - -``` -FreeType comes with two licenses from which you can choose the one -which fits your needs best. - - The FreeType License (FTL) is the most commonly used one. It is - a BSD-style license with a credit clause and thus compatible with - the GNU Public License (GPL) version 3, but not with the - GPL version 2. - - The GNU General Public License (GPL), version 2. Use it for all - projects which use the GPLv2 also, or which need a license - compatible to the GPLv2. - -``` - -### FreeType License -``` - The FreeType Project LICENSE - ---------------------------- - - 2006-Jan-27 - - Copyright 1996-2002, 2006 by - David Turner, Robert Wilhelm, and Werner Lemberg - - - -Introduction -============ - - The FreeType Project is distributed in several archive packages; - some of them may contain, in addition to the FreeType font engine, - various tools and contributions which rely on, or relate to, the - FreeType Project. - - This license applies to all files found in such packages, and - which do not fall under their own explicit license. The license - affects thus the FreeType font engine, the test programs, - documentation and makefiles, at the very least. - - This license was inspired by the BSD, Artistic, and IJG - (Independent JPEG Group) licenses, which all encourage inclusion - and use of free software in commercial and freeware products - alike. As a consequence, its main points are that: - - o We don't promise that this software works. However, we will be - interested in any kind of bug reports. (`as is' distribution) - - o You can use this software for whatever you want, in parts or - full form, without having to pay us. (`royalty-free' usage) - - o You may not pretend that you wrote this software. If you use - it, or only parts of it, in a program, you must acknowledge - somewhere in your documentation that you have used the - FreeType code. (`credits') - - We specifically permit and encourage the inclusion of this - software, with or without modifications, in commercial products. - We disclaim all warranties covering The FreeType Project and - assume no liability related to The FreeType Project. - - - Finally, many people asked us for a preferred form for a - credit/disclaimer to use in compliance with this license. We thus - encourage you to use the following text: - - """ - Portions of this software are copyright © The FreeType - Project (www.freetype.org). All rights reserved. - """ - - Please replace with the value from the FreeType version you - actually use. - - -Legal Terms -=========== - -0. Definitions --------------- - - Throughout this license, the terms `package', `FreeType Project', - and `FreeType archive' refer to the set of files originally - distributed by the authors (David Turner, Robert Wilhelm, and - Werner Lemberg) as the `FreeType Project', be they named as alpha, - beta or final release. - - `You' refers to the licensee, or person using the project, where - `using' is a generic term including compiling the project's source - code as well as linking it to form a `program' or `executable'. - This program is referred to as `a program using the FreeType - engine'. - - This license applies to all files distributed in the original - FreeType Project, including all source code, binaries and - documentation, unless otherwise stated in the file in its - original, unmodified form as distributed in the original archive. - If you are unsure whether or not a particular file is covered by - this license, you must contact us to verify this. - - The FreeType Project is copyright (C) 1996-2000 by David Turner, - Robert Wilhelm, and Werner Lemberg. All rights reserved except as - specified below. - -1. No Warranty --------------- - - THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO - USE, OF THE FREETYPE PROJECT. - -2. Redistribution ------------------ - - This license grants a worldwide, royalty-free, perpetual and - irrevocable right and license to use, execute, perform, compile, - display, copy, create derivative works of, distribute and - sublicense the FreeType Project (in both source and object code - forms) and derivative works thereof for any purpose; and to - authorize others to exercise some or all of the rights granted - herein, subject to the following conditions: - - o Redistribution of source code must retain this license file - (`FTL.TXT') unaltered; any additions, deletions or changes to - the original files must be clearly indicated in accompanying - documentation. The copyright notices of the unaltered, - original files must be preserved in all copies of source - files. - - o Redistribution in binary form must provide a disclaimer that - states that the software is based in part of the work of the - FreeType Team, in the distribution documentation. We also - encourage you to put an URL to the FreeType web page in your - documentation, though this isn't mandatory. - - These conditions apply to any software derived from or based on - the FreeType Project, not just the unmodified files. If you use - our work, you must acknowledge us. However, no fee need be paid - to us. - -3. Advertising --------------- - - Neither the FreeType authors and contributors nor you shall use - the name of the other for commercial, advertising, or promotional - purposes without specific prior written permission. - - We suggest, but do not require, that you use one or more of the - following phrases to refer to this software in your documentation - or advertising materials: `FreeType Project', `FreeType Engine', - `FreeType library', or `FreeType Distribution'. - - As you have not signed this license, you are not required to - accept it. However, as the FreeType Project is copyrighted - material, only this license, or another one contracted with the - authors, grants you the right to use, distribute, and modify it. - Therefore, by using, distributing, or modifying the FreeType - Project, you indicate that you understand and accept all the terms - of this license. - -4. Contacts ------------ - - There are two mailing lists related to FreeType: - - o freetype@nongnu.org - - Discusses general use and applications of FreeType, as well as - future and wanted additions to the library and distribution. - If you are looking for support, start in this list if you - haven't found anything to help you in the documentation. - - o freetype-devel@nongnu.org - - Discusses bugs, as well as engine internals, design issues, - specific licenses, porting, etc. - - Our home page can be found at - - http://www.freetype.org - -``` - -### GPL v2 - -``` - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - -######################################################################### - ---- fthash.c and fthash.h are covered by the following notices --- - -/* - * Copyright 2000 Computing Research Labs, New Mexico State University - * Copyright 2001-2015 - * Francesco Zappa Nardelli - * - * 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 COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY 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. - */ - - /************************************************************************** - * - * This file is based on code from bdf.c,v 1.22 2000/03/16 20:08:50 - * - * taken from Mark Leisher's xmbdfed package - * - */ - -######################################################################### - - ---- FreeType 2 PSaux module is covered by the following notices --- - -Copyright 2006-2014 Adobe Systems Incorporated. - -This software, and all works of authorship, whether in source or -object code form as indicated by the copyright notice(s) included -herein (collectively, the "Work") is made available, and may only be -used, modified, and distributed under the FreeType Project License, -LICENSE.TXT. Additionally, subject to the terms and conditions of the -FreeType Project License, each contributor to the Work hereby grants -to any individual or legal entity exercising permissions granted by -the FreeType Project License and this section (hereafter, "You" or -"Your") a perpetual, worldwide, non-exclusive, no-charge, -royalty-free, irrevocable (except as stated in this section) patent -license to make, have made, use, offer to sell, sell, import, and -otherwise transfer the Work, where such license applies only to those -patent claims licensable by such contributor that are necessarily -infringed by their contribution(s) alone or by combination of their -contribution(s) with the Work to which such contribution(s) was -submitted. If You institute patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that -the Work or a contribution incorporated within the Work constitutes -direct or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate as of -the date such litigation is filed. - -By using, modifying, or distributing the Work you indicate that you -have read and understood the terms and conditions of the -FreeType Project License as well as those provided in this section, -and you accept them fully. - -######################################################################### - -``` - diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/giflib.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/giflib.md deleted file mode 100644 index 0be4fb8..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/giflib.md +++ /dev/null @@ -1,30 +0,0 @@ -## GIFLIB v5.2.1 - -### GIFLIB License -``` - -The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond - -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. - - -https://sourceforge.net/p/giflib/code/ci/master/tree/openbsd-reallocarray.c - -Copyright (c) 2008 Otto Moerbeek -SPDX-License-Identifier: MIT diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/harfbuzz.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/harfbuzz.md deleted file mode 100644 index 55deb5f..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/harfbuzz.md +++ /dev/null @@ -1,66 +0,0 @@ -## Harfbuzz v4.4.1 - -### Harfbuzz License - -https://github.com/harfbuzz/harfbuzz/blob/master/COPYING - -
-
-HarfBuzz is licensed under the so-called "Old MIT" license.  Details follow.
-For parts of HarfBuzz that are licensed under different licenses see individual
-files names COPYING in subdirectories where applicable.
-
-Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020  Google, Inc.
-Copyright © 2018,2019,2020  Ebrahim Byagowi
-Copyright © 2019,2020  Facebook, Inc. 
-Copyright © 2012  Mozilla Foundation
-Copyright © 2011  Codethink Limited
-Copyright © 2008,2010  Nokia Corporation and/or its subsidiary(-ies)
-Copyright © 2009  Keith Stribley
-Copyright © 2009  Martin Hosken and SIL International
-Copyright © 2007  Chris Wilson
-Copyright © 2006  Behdad Esfahbod
-Copyright © 2005  David Turner
-Copyright © 2004,2007,2008,2009,2010  Red Hat, Inc.
-Copyright © 1998-2004  David Turner and Werner Lemberg
-
-For full copyright notices consult the individual files in the package.
-
-
-Permission is hereby granted, without written agreement and without
-license or royalty fees, to use, copy, modify, and distribute this
-software and its documentation for any purpose, provided that the
-above copyright notice and the following two paragraphs appear in
-all copies of this software.
-
-IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
-IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
-ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
-PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-
-All source code, except for one section, is licensed as above. The one
-exception is licensed with a slightly different MIT variant:
-The contents of this directory are licensed under the following terms:
-
-Copyright (C) 2012 Grigori Goronzy 
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/jpeg.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/jpeg.md deleted file mode 100644 index 1a0d41c..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/jpeg.md +++ /dev/null @@ -1,77 +0,0 @@ -## Independent JPEG Group: JPEG release 6b - -### JPEG License - -``` -**************************************************************************** - -Copyright (C) 1991-1998, Thomas G. Lane. - -This software is the work of Tom Lane, Philip Gladstone, Jim Boucher, -Lee Crocker, Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, -Guido Vollbeding, Ge' Weijers, and other members of the Independent JPEG -Group. - -IJG is not affiliated with the official ISO JPEG standards committee. - -The authors make NO WARRANTY or representation, either express or implied, -with respect to this software, its quality, accuracy, merchantability, or -fitness for a particular purpose. This software is provided "AS IS", -and you, its user, assume the entire risk as to its quality and accuracy. - -This software is copyright (C) 1991-1998, Thomas G. Lane. -All Rights Reserved except as specified below. - -Permission is hereby granted to use, copy, modify, and distribute -this software (or portions thereof) for any purpose, without fee, -subject to these conditions: - -(1) If any part of the source code for this software is distributed, -then this README file must be included, with this copyright and no-warranty -notice unaltered; and any additions, deletions, or changes to the original -files must be clearly indicated in accompanying documentation. - -(2) If only executable code is distributed, then the accompanying documentation -must state that "this software is based in part on the work of the -Independent JPEG Group". - -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. - -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. - -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived -from it. This software may be referred to only as "the Independent JPEG -Group's software". - -We specifically permit and encourage the use of this software as the basis -of commercial products, provided that all warranty or liability claims are -assumed by the product vendor. - -It appears that the arithmetic coding option of the JPEG spec is covered -by patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding -cannot legally be used without obtaining one or more licenses. For this -reason, support for arithmetic coding has been removed from the free -JPEG software. (Since arithmetic coding provides only a marginal gain -over the unpatented Huffman mode, it is unlikely that very many -implementations will support it.) So far as we are aware, there are -no patent restrictions on the remaining code. - -The IJG distribution formerly included code to read and write GIF files. -To avoid entanglement with the Unisys LZW patent, GIF reading support -has been removed altogether, and the GIF writer has been simplified to -produce "uncompressed GIFs". This technique does not use the LZW algorithm; -the resulting GIF files are larger than usual, but are readable by all -standard GIF decoders. - -We are required to state that "The Graphics Interchange Format(c) is -the Copyright property of CompuServe Incorporated. GIF(sm) is a -Service Mark property of CompuServe Incorporated." - -**************************************************************************** -``` - diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/lcms.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/lcms.md deleted file mode 100644 index 1977a6b..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/lcms.md +++ /dev/null @@ -1,27 +0,0 @@ -## Little Color Management System (LCMS) v2.12 - -### LCMS License -
-
-Little Color Management System
-Copyright (c) 1998-2020 Marti Maria Saguer
-
-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.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/libpng.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/libpng.md deleted file mode 100644 index 655cd09..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/libpng.md +++ /dev/null @@ -1,141 +0,0 @@ -## libpng v1.6.37 - -### libpng License -
-
-COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
-=========================================
-
-PNG Reference Library License version 2
----------------------------------------
-
- * Copyright (c) 1995-2019 The PNG Reference Library Authors.
- * Copyright (c) 2018-2019 Cosmin Truta.
- * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
- * Copyright (c) 1996-1997 Andreas Dilger.
- * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
-
-The software is supplied "as is", without warranty of any kind,
-express or implied, including, without limitation, the warranties
-of merchantability, fitness for a particular purpose, title, and
-non-infringement.  In no event shall the Copyright owners, or
-anyone distributing the software, be liable for any damages or
-other liability, whether in contract, tort or otherwise, arising
-from, out of, or in connection with the software, or the use or
-other dealings in the software, even if advised of the possibility
-of such damage.
-
-Permission is hereby granted to use, copy, modify, and distribute
-this software, or portions hereof, for any purpose, without fee,
-subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you
-    must not claim that you wrote the original software.  If you
-    use this software in a product, an acknowledgment in the product
-    documentation would be appreciated, but is not required.
-
- 2. Altered source versions must be plainly marked as such, and must
-    not be misrepresented as being the original software.
-
- 3. This Copyright notice may not be removed or altered from any
-    source or altered source distribution.
-
-
-PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35)
------------------------------------------------------------------------
-
-libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are
-Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
-derived from libpng-1.0.6, and are distributed according to the same
-disclaimer and license as libpng-1.0.6 with the following individuals
-added to the list of Contributing Authors:
-
-    Simon-Pierre Cadieux
-    Eric S. Raymond
-    Mans Rullgard
-    Cosmin Truta
-    Gilles Vollant
-    James Yu
-    Mandar Sahastrabuddhe
-    Google Inc.
-    Vadim Barkov
-
-and with the following additions to the disclaimer:
-
-    There is no warranty against interference with your enjoyment of
-    the library or against infringement.  There is no warranty that our
-    efforts or the library will fulfill any of your particular purposes
-    or needs.  This library is provided with all faults, and the entire
-    risk of satisfactory quality, performance, accuracy, and effort is
-    with the user.
-
-Some files in the "contrib" directory and some configure-generated
-files that are distributed with libpng have other copyright owners, and
-are released under other open source licenses.
-
-libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
-Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
-libpng-0.96, and are distributed according to the same disclaimer and
-license as libpng-0.96, with the following individuals added to the
-list of Contributing Authors:
-
-    Tom Lane
-    Glenn Randers-Pehrson
-    Willem van Schaik
-
-libpng versions 0.89, June 1996, through 0.96, May 1997, are
-Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
-and are distributed according to the same disclaimer and license as
-libpng-0.88, with the following individuals added to the list of
-Contributing Authors:
-
-    John Bowler
-    Kevin Bracey
-    Sam Bushell
-    Magnus Holmgren
-    Greg Roelofs
-    Tom Tanner
-
-Some files in the "scripts" directory have other copyright owners,
-but are released under this license.
-
-libpng versions 0.5, May 1995, through 0.88, January 1996, are
-Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
-
-For the purposes of this copyright and license, "Contributing Authors"
-is defined as the following set of individuals:
-
-    Andreas Dilger
-    Dave Martindale
-    Guy Eric Schalnat
-    Paul Schmidt
-    Tim Wegner
-
-The PNG Reference Library is supplied "AS IS".  The Contributing
-Authors and Group 42, Inc. disclaim all warranties, expressed or
-implied, including, without limitation, the warranties of
-merchantability and of fitness for any purpose.  The Contributing
-Authors and Group 42, Inc. assume no liability for direct, indirect,
-incidental, special, exemplary, or consequential damages, which may
-result from the use of the PNG Reference Library, even if advised of
-the possibility of such damage.
-
-Permission is hereby granted to use, copy, modify, and distribute this
-source code, or portions hereof, for any purpose, without fee, subject
-to the following restrictions:
-
- 1. The origin of this source code must not be misrepresented.
-
- 2. Altered versions must be plainly marked as such and must not
-    be misrepresented as being the original source.
-
- 3. This Copyright notice may not be removed or altered from any
-    source or altered source distribution.
-
-The Contributing Authors and Group 42, Inc. specifically permit,
-without fee, and encourage the use of this source code as a component
-to supporting the PNG file format in commercial products.  If you use
-this source code in a product, acknowledgment is not required but would
-be appreciated.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.desktop/mesa3d.md b/pythonx/compose/lite/release/runtime/legal/java.desktop/mesa3d.md deleted file mode 100644 index cdaa1ac..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.desktop/mesa3d.md +++ /dev/null @@ -1,134 +0,0 @@ -## Mesa 3-D Graphics Library v21.0.3 - -### Mesa License - -``` -Copyright (C) 1999-2007 Brian Paul All Rights Reserved. - -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. - -Attention, Contributors - -When contributing to the Mesa project you must agree to the licensing terms -of the component to which you're contributing. -The following section lists the primary components of the Mesa distribution -and their respective licenses. -Mesa Component Licenses - - - -Component Location License ------------------------------------------------------------------- -Main Mesa code src/mesa/ MIT -Device drivers src/mesa/drivers/* MIT, generally - -Gallium code src/gallium/ MIT - -Ext headers GL/glext.h Khronos - GL/glxext.h Khronos - GL/wglext.h Khronos - KHR/khrplatform.h Khronos - -***************************************************************************** - ----- -include/GL/gl.h : - - - Mesa 3-D graphics library - - Copyright (C) 1999-2006 Brian Paul All Rights Reserved. - Copyright (C) 2009 VMware, Inc. All Rights Reserved. - - 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. - - ***************************************************************************** - ----- -include/GL/glext.h -include/GL/glxext.h -include/GL/wglxext.h : - - - Copyright (c) 2013 - 2018 The Khronos Group Inc. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and/or associated documentation files (the - "Materials"), to deal in the Materials without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Materials, and to - permit persons to whom the Materials are 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 Materials. - - THE MATERIALS ARE 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 - MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. - - ***************************************************************************** - ----- -include/KHR/khrplatform.h : - - Copyright (c) 2008 - 2018 The Khronos Group Inc. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and/or associated documentation files (the - "Materials"), to deal in the Materials without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Materials, and to - permit persons to whom the Materials are 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 Materials. - - THE MATERIALS ARE 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 - MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. - - ***************************************************************************** - -``` diff --git a/pythonx/compose/lite/release/runtime/legal/java.logging/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/java.logging/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.logging/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/pythonx/compose/lite/release/runtime/legal/java.logging/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/java.logging/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.logging/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/pythonx/compose/lite/release/runtime/legal/java.logging/LICENSE b/pythonx/compose/lite/release/runtime/legal/java.logging/LICENSE deleted file mode 100644 index 4ad9fe4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.logging/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/pythonx/compose/lite/release/runtime/legal/java.prefs/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/java.prefs/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.prefs/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/pythonx/compose/lite/release/runtime/legal/java.prefs/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/java.prefs/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.prefs/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/pythonx/compose/lite/release/runtime/legal/java.prefs/LICENSE b/pythonx/compose/lite/release/runtime/legal/java.prefs/LICENSE deleted file mode 100644 index 4ad9fe4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.prefs/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/java.xml/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/java.xml/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/LICENSE b/pythonx/compose/lite/release/runtime/legal/java.xml/LICENSE deleted file mode 100644 index 4ad9fe4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/bcel.md b/pythonx/compose/lite/release/runtime/legal/java.xml/bcel.md deleted file mode 100644 index 6dffd07..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/bcel.md +++ /dev/null @@ -1,219 +0,0 @@ -## Apache Commons Byte Code Engineering Library (BCEL) Version 6.5.0 - -### Apache Commons BCEL Notice -
-
-    Apache Commons BCEL
-    Copyright 2004-2020 The Apache Software Foundation
-
-    This product includes software developed at
-    The Apache Software Foundation (https://www.apache.org/).
-
-
- -### Apache 2.0 License -
-
-                              Apache License
-                        Version 2.0, January 2004
-                     http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-   "License" shall mean the terms and conditions for use, reproduction,
-   and distribution as defined by Sections 1 through 9 of this document.
-
-   "Licensor" shall mean the copyright owner or entity authorized by
-   the copyright owner that is granting the License.
-
-   "Legal Entity" shall mean the union of the acting entity and all
-   other entities that control, are controlled by, or are under common
-   control with that entity. For the purposes of this definition,
-   "control" means (i) the power, direct or indirect, to cause the
-   direction or management of such entity, whether by contract or
-   otherwise, or (ii) ownership of fifty percent (50%) or more of the
-   outstanding shares, or (iii) beneficial ownership of such entity.
-
-   "You" (or "Your") shall mean an individual or Legal Entity
-   exercising permissions granted by this License.
-
-   "Source" form shall mean the preferred form for making modifications,
-   including but not limited to software source code, documentation
-   source, and configuration files.
-
-   "Object" form shall mean any form resulting from mechanical
-   transformation or translation of a Source form, including but
-   not limited to compiled object code, generated documentation,
-   and conversions to other media types.
-
-   "Work" shall mean the work of authorship, whether in Source or
-   Object form, made available under the License, as indicated by a
-   copyright notice that is included in or attached to the work
-   (an example is provided in the Appendix below).
-
-   "Derivative Works" shall mean any work, whether in Source or Object
-   form, that is based on (or derived from) the Work and for which the
-   editorial revisions, annotations, elaborations, or other modifications
-   represent, as a whole, an original work of authorship. For the purposes
-   of this License, Derivative Works shall not include works that remain
-   separable from, or merely link (or bind by name) to the interfaces of,
-   the Work and Derivative Works thereof.
-
-   "Contribution" shall mean any work of authorship, including
-   the original version of the Work and any modifications or additions
-   to that Work or Derivative Works thereof, that is intentionally
-   submitted to Licensor for inclusion in the Work by the copyright owner
-   or by an individual or Legal Entity authorized to submit on behalf of
-   the copyright owner. For the purposes of this definition, "submitted"
-   means any form of electronic, verbal, or written communication sent
-   to the Licensor or its representatives, including but not limited to
-   communication on electronic mailing lists, source code control systems,
-   and issue tracking systems that are managed by, or on behalf of, the
-   Licensor for the purpose of discussing and improving the Work, but
-   excluding communication that is conspicuously marked or otherwise
-   designated in writing by the copyright owner as "Not a Contribution."
-
-   "Contributor" shall mean Licensor and any individual or Legal Entity
-   on behalf of whom a Contribution has been received by Licensor and
-   subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   copyright license to reproduce, prepare Derivative Works of,
-   publicly display, publicly perform, sublicense, and distribute the
-   Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   (except as stated in this section) patent license to make, have made,
-   use, offer to sell, sell, import, and otherwise transfer the Work,
-   where such license applies only to those patent claims licensable
-   by such Contributor that are necessarily infringed by their
-   Contribution(s) alone or by combination of their Contribution(s)
-   with the Work to which such Contribution(s) was submitted. If You
-   institute patent litigation against any entity (including a
-   cross-claim or counterclaim in a lawsuit) alleging that the Work
-   or a Contribution incorporated within the Work constitutes direct
-   or contributory patent infringement, then any patent licenses
-   granted to You under this License for that Work shall terminate
-   as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-   Work or Derivative Works thereof in any medium, with or without
-   modifications, and in Source or Object form, provided that You
-   meet the following conditions:
-
-   (a) You must give any other recipients of the Work or
-       Derivative Works a copy of this License; and
-
-   (b) You must cause any modified files to carry prominent notices
-       stating that You changed the files; and
-
-   (c) You must retain, in the Source form of any Derivative Works
-       that You distribute, all copyright, patent, trademark, and
-       attribution notices from the Source form of the Work,
-       excluding those notices that do not pertain to any part of
-       the Derivative Works; and
-
-   (d) If the Work includes a "NOTICE" text file as part of its
-       distribution, then any Derivative Works that You distribute must
-       include a readable copy of the attribution notices contained
-       within such NOTICE file, excluding those notices that do not
-       pertain to any part of the Derivative Works, in at least one
-       of the following places: within a NOTICE text file distributed
-       as part of the Derivative Works; within the Source form or
-       documentation, if provided along with the Derivative Works; or,
-       within a display generated by the Derivative Works, if and
-       wherever such third-party notices normally appear. The contents
-       of the NOTICE file are for informational purposes only and
-       do not modify the License. You may add Your own attribution
-       notices within Derivative Works that You distribute, alongside
-       or as an addendum to the NOTICE text from the Work, provided
-       that such additional attribution notices cannot be construed
-       as modifying the License.
-
-   You may add Your own copyright statement to Your modifications and
-   may provide additional or different license terms and conditions
-   for use, reproduction, or distribution of Your modifications, or
-   for any such Derivative Works as a whole, provided Your use,
-   reproduction, and distribution of the Work otherwise complies with
-   the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-   any Contribution intentionally submitted for inclusion in the Work
-   by You to the Licensor shall be under the terms and conditions of
-   this License, without any additional terms or conditions.
-   Notwithstanding the above, nothing herein shall supersede or modify
-   the terms of any separate license agreement you may have executed
-   with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-   names, trademarks, service marks, or product names of the Licensor,
-   except as required for reasonable and customary use in describing the
-   origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-   agreed to in writing, Licensor provides the Work (and each
-   Contributor provides its Contributions) on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-   implied, including, without limitation, any warranties or conditions
-   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-   PARTICULAR PURPOSE. You are solely responsible for determining the
-   appropriateness of using or redistributing the Work and assume any
-   risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-   whether in tort (including negligence), contract, or otherwise,
-   unless required by applicable law (such as deliberate and grossly
-   negligent acts) or agreed to in writing, shall any Contributor be
-   liable to You for damages, including any direct, indirect, special,
-   incidental, or consequential damages of any character arising as a
-   result of this License or out of the use or inability to use the
-   Work (including but not limited to damages for loss of goodwill,
-   work stoppage, computer failure or malfunction, or any and all
-   other commercial damages or losses), even if such Contributor
-   has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-   the Work or Derivative Works thereof, You may choose to offer,
-   and charge a fee for, acceptance of support, warranty, indemnity,
-   or other liability obligations and/or rights consistent with this
-   License. However, in accepting such obligations, You may act only
-   on Your own behalf and on Your sole responsibility, not on behalf
-   of any other Contributor, and only if You agree to indemnify,
-   defend, and hold each Contributor harmless for any liability
-   incurred by, or claims asserted against, such Contributor by reason
-   of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-   To apply the Apache License to your work, attach the following
-   boilerplate notice, with the fields enclosed by brackets "[]"
-   replaced with your own identifying information. (Don't include
-   the brackets!)  The text should be enclosed in the appropriate
-   comment syntax for the file format. We also recommend that a
-   file or class name and description of purpose be included on the
-   same "printed page" as the copyright notice for easier
-   identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/dom.md b/pythonx/compose/lite/release/runtime/legal/java.xml/dom.md deleted file mode 100644 index 4fe8093..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/dom.md +++ /dev/null @@ -1,77 +0,0 @@ -## DOM Level 3 Core Specification v1.0 - -### W3C Software Notice -
-Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of Technology,
-European Research Consortium for Informatics and Mathematics, Keio University).
-All Rights Reserved.
-
-The DOM bindings are published under the W3C Software Copyright Notice and License.
-The software license requires "Notice of any changes or modifications to the W3C
-files, including the date changes were made." Consequently, modified versions of
-the DOM bindings must document that they do not conform to the W3C standard; in the
-case of the IDL definitions, the pragma prefix can no longer be 'w3c.org'; in the
-case of the Java language binding, the package names can no longer be in the
-'org.w3c' package.
-
- -### W3C License -
-
-W3C SOFTWARE NOTICE AND LICENSE
-
-http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
-
-This work (and included software, documentation such as READMEs, or other
-related items) is being provided by the copyright holders under the following
-license. By obtaining, using and/or copying this work, you (the licensee)
-agree that you have read, understood, and will comply with the following terms
-and conditions.
-
-Permission to copy, modify, and distribute this software and its
-documentation, with or without modification, for any purpose and without fee
-or royalty is hereby granted, provided that you include the following on ALL
-copies of the software and documentation or portions thereof, including
-modifications:
-
-   1.The full text of this NOTICE in a location viewable to users of the
-   redistributed or derivative work.
-
-   2.Any pre-existing intellectual property disclaimers, notices, or terms and
-   conditions. If none exist, the W3C Software Short Notice should be included
-   (hypertext is preferred, text is permitted) within the body of any
-   redistributed or derivative code.
-
-   3.Notice of any changes or modifications to the files, including the date
-   changes were made. (We recommend you provide URIs to the location from
-   which the code is derived.)
-
-THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
-MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
-PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
-THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
-
-COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
-OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
-DOCUMENTATION.  The name and trademarks of copyright holders may NOT be used
-in advertising or publicity pertaining to the software without specific,
-written prior permission. Title to copyright in this software and any
-associated documentation will at all times remain with copyright holders.
-
-____________________________________
-
-This formulation of W3C's notice and license became active on December 31
-2002. This version removes the copyright ownership notice such that this
-license can be used with materials other than those owned by the W3C, reflects
-that ERCIM is now a host of the W3C, includes references to this specific
-dated version of the license, and removes the ambiguous grant of "use".
-Otherwise, this version is the same as the previous version and is written so
-as to preserve the Free Software Foundation's assessment of GPL compatibility
-and OSI's certification under the Open Source Definition. Please see our
-Copyright FAQ for common questions about using materials from our site,
-including specific terms and conditions for packages like libwww, Amaya, and
-Jigsaw. Other questions about this notice can be directed to
-site-policy@w3.org.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/jcup.md b/pythonx/compose/lite/release/runtime/legal/java.xml/jcup.md deleted file mode 100644 index bc566b7..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/jcup.md +++ /dev/null @@ -1,31 +0,0 @@ -## CUP Parser Generator for Java v 0.11b - -### CUP Parser Generator License - -``` -Copyright 1996-2015 by Scott Hudson, Frank Flannery, C. Scott Ananian, Michael Petter - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided -that the above copyright notice appear in all copies and that both -the copyright notice and this permission notice and warranty disclaimer -appear in supporting documentation, and that the names of the authors or -their employers not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior permission. - -The authors and their employers disclaim all warranties with regard to -this software, including all implied warranties of merchantability and -fitness. In no event shall the authors or their employers be liable for -any special, indirect or consequential damages or any damages whatsoever -resulting from loss of use, data or profits, whether in an action of -contract, negligence or other tortious action, arising out of or in -connection with the use or performance of this software. -``` ---- -``` -This is an open source license. It is also GPL-Compatible (see entry for -"Standard ML of New Jersey"). The portions of CUP output which are hard-coded -into the CUP source code are (naturally) covered by this same license, as is -the CUP runtime code linked with the generated parser. -``` - diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/xalan.md b/pythonx/compose/lite/release/runtime/legal/java.xml/xalan.md deleted file mode 100644 index 924bce8..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/xalan.md +++ /dev/null @@ -1,255 +0,0 @@ -## Apache Xalan v2.7.2 - -### Apache Xalan Notice -
-
-    ======================================================================================
-    ==  NOTICE file corresponding to the section 4d of the Apache License, Version 2.0, ==
-    ==  in this case for the Apache Xalan distribution.                                 ==
-    ======================================================================================
-
-   This product includes software developed by
-   The Apache Software Foundation (http://www.apache.org/).
-
-   Specifically, we only include the XSLTC portion of the source from the Xalan distribution. 
-   The Xalan project has two processors: an interpretive one (Xalan Interpretive) and a 
-   compiled one (The XSLT Compiler (XSLTC)). We *only* use the XSLTC part of Xalan; We use
-   the source from the packages that are part of the XSLTC sources.
-
-   Portions of this software was originally based on the following:
-
-     - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com.
-     - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com.
-     - software copyright (c) 2003, IBM Corporation., http://www.ibm.com.
-     - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the
-       Apache Software Foundation and was originally developed at Hewlett Packard Company.
-
-
- -### Apache 2.0 License -
-
-                              Apache License
-                        Version 2.0, January 2004
-                     http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-   "License" shall mean the terms and conditions for use, reproduction,
-   and distribution as defined by Sections 1 through 9 of this document.
-
-   "Licensor" shall mean the copyright owner or entity authorized by
-   the copyright owner that is granting the License.
-
-   "Legal Entity" shall mean the union of the acting entity and all
-   other entities that control, are controlled by, or are under common
-   control with that entity. For the purposes of this definition,
-   "control" means (i) the power, direct or indirect, to cause the
-   direction or management of such entity, whether by contract or
-   otherwise, or (ii) ownership of fifty percent (50%) or more of the
-   outstanding shares, or (iii) beneficial ownership of such entity.
-
-   "You" (or "Your") shall mean an individual or Legal Entity
-   exercising permissions granted by this License.
-
-   "Source" form shall mean the preferred form for making modifications,
-   including but not limited to software source code, documentation
-   source, and configuration files.
-
-   "Object" form shall mean any form resulting from mechanical
-   transformation or translation of a Source form, including but
-   not limited to compiled object code, generated documentation,
-   and conversions to other media types.
-
-   "Work" shall mean the work of authorship, whether in Source or
-   Object form, made available under the License, as indicated by a
-   copyright notice that is included in or attached to the work
-   (an example is provided in the Appendix below).
-
-   "Derivative Works" shall mean any work, whether in Source or Object
-   form, that is based on (or derived from) the Work and for which the
-   editorial revisions, annotations, elaborations, or other modifications
-   represent, as a whole, an original work of authorship. For the purposes
-   of this License, Derivative Works shall not include works that remain
-   separable from, or merely link (or bind by name) to the interfaces of,
-   the Work and Derivative Works thereof.
-
-   "Contribution" shall mean any work of authorship, including
-   the original version of the Work and any modifications or additions
-   to that Work or Derivative Works thereof, that is intentionally
-   submitted to Licensor for inclusion in the Work by the copyright owner
-   or by an individual or Legal Entity authorized to submit on behalf of
-   the copyright owner. For the purposes of this definition, "submitted"
-   means any form of electronic, verbal, or written communication sent
-   to the Licensor or its representatives, including but not limited to
-   communication on electronic mailing lists, source code control systems,
-   and issue tracking systems that are managed by, or on behalf of, the
-   Licensor for the purpose of discussing and improving the Work, but
-   excluding communication that is conspicuously marked or otherwise
-   designated in writing by the copyright owner as "Not a Contribution."
-
-   "Contributor" shall mean Licensor and any individual or Legal Entity
-   on behalf of whom a Contribution has been received by Licensor and
-   subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   copyright license to reproduce, prepare Derivative Works of,
-   publicly display, publicly perform, sublicense, and distribute the
-   Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   (except as stated in this section) patent license to make, have made,
-   use, offer to sell, sell, import, and otherwise transfer the Work,
-   where such license applies only to those patent claims licensable
-   by such Contributor that are necessarily infringed by their
-   Contribution(s) alone or by combination of their Contribution(s)
-   with the Work to which such Contribution(s) was submitted. If You
-   institute patent litigation against any entity (including a
-   cross-claim or counterclaim in a lawsuit) alleging that the Work
-   or a Contribution incorporated within the Work constitutes direct
-   or contributory patent infringement, then any patent licenses
-   granted to You under this License for that Work shall terminate
-   as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-   Work or Derivative Works thereof in any medium, with or without
-   modifications, and in Source or Object form, provided that You
-   meet the following conditions:
-
-   (a) You must give any other recipients of the Work or
-       Derivative Works a copy of this License; and
-
-   (b) You must cause any modified files to carry prominent notices
-       stating that You changed the files; and
-
-   (c) You must retain, in the Source form of any Derivative Works
-       that You distribute, all copyright, patent, trademark, and
-       attribution notices from the Source form of the Work,
-       excluding those notices that do not pertain to any part of
-       the Derivative Works; and
-
-   (d) If the Work includes a "NOTICE" text file as part of its
-       distribution, then any Derivative Works that You distribute must
-       include a readable copy of the attribution notices contained
-       within such NOTICE file, excluding those notices that do not
-       pertain to any part of the Derivative Works, in at least one
-       of the following places: within a NOTICE text file distributed
-       as part of the Derivative Works; within the Source form or
-       documentation, if provided along with the Derivative Works; or,
-       within a display generated by the Derivative Works, if and
-       wherever such third-party notices normally appear. The contents
-       of the NOTICE file are for informational purposes only and
-       do not modify the License. You may add Your own attribution
-       notices within Derivative Works that You distribute, alongside
-       or as an addendum to the NOTICE text from the Work, provided
-       that such additional attribution notices cannot be construed
-       as modifying the License.
-
-   You may add Your own copyright statement to Your modifications and
-   may provide additional or different license terms and conditions
-   for use, reproduction, or distribution of Your modifications, or
-   for any such Derivative Works as a whole, provided Your use,
-   reproduction, and distribution of the Work otherwise complies with
-   the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-   any Contribution intentionally submitted for inclusion in the Work
-   by You to the Licensor shall be under the terms and conditions of
-   this License, without any additional terms or conditions.
-   Notwithstanding the above, nothing herein shall supersede or modify
-   the terms of any separate license agreement you may have executed
-   with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-   names, trademarks, service marks, or product names of the Licensor,
-   except as required for reasonable and customary use in describing the
-   origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-   agreed to in writing, Licensor provides the Work (and each
-   Contributor provides its Contributions) on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-   implied, including, without limitation, any warranties or conditions
-   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-   PARTICULAR PURPOSE. You are solely responsible for determining the
-   appropriateness of using or redistributing the Work and assume any
-   risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-   whether in tort (including negligence), contract, or otherwise,
-   unless required by applicable law (such as deliberate and grossly
-   negligent acts) or agreed to in writing, shall any Contributor be
-   liable to You for damages, including any direct, indirect, special,
-   incidental, or consequential damages of any character arising as a
-   result of this License or out of the use or inability to use the
-   Work (including but not limited to damages for loss of goodwill,
-   work stoppage, computer failure or malfunction, or any and all
-   other commercial damages or losses), even if such Contributor
-   has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-   the Work or Derivative Works thereof, You may choose to offer,
-   and charge a fee for, acceptance of support, warranty, indemnity,
-   or other liability obligations and/or rights consistent with this
-   License. However, in accepting such obligations, You may act only
-   on Your own behalf and on Your sole responsibility, not on behalf
-   of any other Contributor, and only if You agree to indemnify,
-   defend, and hold each Contributor harmless for any liability
-   incurred by, or claims asserted against, such Contributor by reason
-   of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-   To apply the Apache License to your work, attach the following
-   boilerplate notice, with the fields enclosed by brackets "[]"
-   replaced with your own identifying information. (Don't include
-   the brackets!)  The text should be enclosed in the appropriate
-   comment syntax for the file format. We also recommend that a
-   file or class name and description of purpose be included on the
-   same "printed page" as the copyright notice for easier
-   identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
-Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian
-Permission to use, copy, modify, and distribute this software and 
-its documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that 
-both the copyright notice and this permission notice and warranty 
-disclaimer appear in supporting documentation, and that the name of 
-the authors or their employers not be used in advertising or publicity 
-pertaining to distribution of the software without specific, written 
-prior permission.
-The authors and their employers disclaim all warranties with regard to 
-this software, including all implied warranties of merchantability and 
-fitness. In no event shall the authors or their employers be liable for 
-any special, indirect or consequential damages or any damages whatsoever 
-resulting from loss of use, data or profits, whether in an action of 
-contract, negligence or other tortious action, arising out of or in 
-connection with the use or performance of this software.The portions of 
-JLex output which are hard-coded into the JLex source code are (naturally) 
-covered by this same license.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/java.xml/xerces.md b/pythonx/compose/lite/release/runtime/legal/java.xml/xerces.md deleted file mode 100644 index 3790b7a..0000000 --- a/pythonx/compose/lite/release/runtime/legal/java.xml/xerces.md +++ /dev/null @@ -1,229 +0,0 @@ -## Apache Xerces v2.12.2 - -### Apache Xerces Notice -
-    =========================================================================
-    == NOTICE file corresponding to section 4(d) of the Apache License,    ==
-    == Version 2.0, in this case for the Apache Xerces Java distribution.  ==
-    =========================================================================
-    
-    Apache Xerces Java
-    Copyright 1999-2022 The Apache Software Foundation
-
-    This product includes software developed at
-    The Apache Software Foundation (http://www.apache.org/).
-
-    Portions of this software were originally based on the following:
-    - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
-    - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
-    - voluntary contributions made by Paul Eng on behalf of the
-    Apache Software Foundation that were originally developed at iClick, Inc.,
-    software copyright (c) 1999.
-
- -### Apache 2.0 License -
-
-                              Apache License
-                        Version 2.0, January 2004
-                     http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-   "License" shall mean the terms and conditions for use, reproduction,
-   and distribution as defined by Sections 1 through 9 of this document.
-
-   "Licensor" shall mean the copyright owner or entity authorized by
-   the copyright owner that is granting the License.
-
-   "Legal Entity" shall mean the union of the acting entity and all
-   other entities that control, are controlled by, or are under common
-   control with that entity. For the purposes of this definition,
-   "control" means (i) the power, direct or indirect, to cause the
-   direction or management of such entity, whether by contract or
-   otherwise, or (ii) ownership of fifty percent (50%) or more of the
-   outstanding shares, or (iii) beneficial ownership of such entity.
-
-   "You" (or "Your") shall mean an individual or Legal Entity
-   exercising permissions granted by this License.
-
-   "Source" form shall mean the preferred form for making modifications,
-   including but not limited to software source code, documentation
-   source, and configuration files.
-
-   "Object" form shall mean any form resulting from mechanical
-   transformation or translation of a Source form, including but
-   not limited to compiled object code, generated documentation,
-   and conversions to other media types.
-
-   "Work" shall mean the work of authorship, whether in Source or
-   Object form, made available under the License, as indicated by a
-   copyright notice that is included in or attached to the work
-   (an example is provided in the Appendix below).
-
-   "Derivative Works" shall mean any work, whether in Source or Object
-   form, that is based on (or derived from) the Work and for which the
-   editorial revisions, annotations, elaborations, or other modifications
-   represent, as a whole, an original work of authorship. For the purposes
-   of this License, Derivative Works shall not include works that remain
-   separable from, or merely link (or bind by name) to the interfaces of,
-   the Work and Derivative Works thereof.
-
-   "Contribution" shall mean any work of authorship, including
-   the original version of the Work and any modifications or additions
-   to that Work or Derivative Works thereof, that is intentionally
-   submitted to Licensor for inclusion in the Work by the copyright owner
-   or by an individual or Legal Entity authorized to submit on behalf of
-   the copyright owner. For the purposes of this definition, "submitted"
-   means any form of electronic, verbal, or written communication sent
-   to the Licensor or its representatives, including but not limited to
-   communication on electronic mailing lists, source code control systems,
-   and issue tracking systems that are managed by, or on behalf of, the
-   Licensor for the purpose of discussing and improving the Work, but
-   excluding communication that is conspicuously marked or otherwise
-   designated in writing by the copyright owner as "Not a Contribution."
-
-   "Contributor" shall mean Licensor and any individual or Legal Entity
-   on behalf of whom a Contribution has been received by Licensor and
-   subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   copyright license to reproduce, prepare Derivative Works of,
-   publicly display, publicly perform, sublicense, and distribute the
-   Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   (except as stated in this section) patent license to make, have made,
-   use, offer to sell, sell, import, and otherwise transfer the Work,
-   where such license applies only to those patent claims licensable
-   by such Contributor that are necessarily infringed by their
-   Contribution(s) alone or by combination of their Contribution(s)
-   with the Work to which such Contribution(s) was submitted. If You
-   institute patent litigation against any entity (including a
-   cross-claim or counterclaim in a lawsuit) alleging that the Work
-   or a Contribution incorporated within the Work constitutes direct
-   or contributory patent infringement, then any patent licenses
-   granted to You under this License for that Work shall terminate
-   as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-   Work or Derivative Works thereof in any medium, with or without
-   modifications, and in Source or Object form, provided that You
-   meet the following conditions:
-
-   (a) You must give any other recipients of the Work or
-       Derivative Works a copy of this License; and
-
-   (b) You must cause any modified files to carry prominent notices
-       stating that You changed the files; and
-
-   (c) You must retain, in the Source form of any Derivative Works
-       that You distribute, all copyright, patent, trademark, and
-       attribution notices from the Source form of the Work,
-       excluding those notices that do not pertain to any part of
-       the Derivative Works; and
-
-   (d) If the Work includes a "NOTICE" text file as part of its
-       distribution, then any Derivative Works that You distribute must
-       include a readable copy of the attribution notices contained
-       within such NOTICE file, excluding those notices that do not
-       pertain to any part of the Derivative Works, in at least one
-       of the following places: within a NOTICE text file distributed
-       as part of the Derivative Works; within the Source form or
-       documentation, if provided along with the Derivative Works; or,
-       within a display generated by the Derivative Works, if and
-       wherever such third-party notices normally appear. The contents
-       of the NOTICE file are for informational purposes only and
-       do not modify the License. You may add Your own attribution
-       notices within Derivative Works that You distribute, alongside
-       or as an addendum to the NOTICE text from the Work, provided
-       that such additional attribution notices cannot be construed
-       as modifying the License.
-
-   You may add Your own copyright statement to Your modifications and
-   may provide additional or different license terms and conditions
-   for use, reproduction, or distribution of Your modifications, or
-   for any such Derivative Works as a whole, provided Your use,
-   reproduction, and distribution of the Work otherwise complies with
-   the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-   any Contribution intentionally submitted for inclusion in the Work
-   by You to the Licensor shall be under the terms and conditions of
-   this License, without any additional terms or conditions.
-   Notwithstanding the above, nothing herein shall supersede or modify
-   the terms of any separate license agreement you may have executed
-   with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-   names, trademarks, service marks, or product names of the Licensor,
-   except as required for reasonable and customary use in describing the
-   origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-   agreed to in writing, Licensor provides the Work (and each
-   Contributor provides its Contributions) on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-   implied, including, without limitation, any warranties or conditions
-   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-   PARTICULAR PURPOSE. You are solely responsible for determining the
-   appropriateness of using or redistributing the Work and assume any
-   risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-   whether in tort (including negligence), contract, or otherwise,
-   unless required by applicable law (such as deliberate and grossly
-   negligent acts) or agreed to in writing, shall any Contributor be
-   liable to You for damages, including any direct, indirect, special,
-   incidental, or consequential damages of any character arising as a
-   result of this License or out of the use or inability to use the
-   Work (including but not limited to damages for loss of goodwill,
-   work stoppage, computer failure or malfunction, or any and all
-   other commercial damages or losses), even if such Contributor
-   has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-   the Work or Derivative Works thereof, You may choose to offer,
-   and charge a fee for, acceptance of support, warranty, indemnity,
-   or other liability obligations and/or rights consistent with this
-   License. However, in accepting such obligations, You may act only
-   on Your own behalf and on Your sole responsibility, not on behalf
-   of any other Contributor, and only if You agree to indemnify,
-   defend, and hold each Contributor harmless for any liability
-   incurred by, or claims asserted against, such Contributor by reason
-   of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-   To apply the Apache License to your work, attach the following
-   boilerplate notice, with the fields enclosed by brackets "[]"
-   replaced with your own identifying information. (Don't include
-   the brackets!)  The text should be enclosed in the appropriate
-   comment syntax for the file format. We also recommend that a
-   file or class name and description of purpose be included on the
-   same "printed page" as the copyright notice for easier
-   identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO b/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3e..0000000 --- a/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION b/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/LICENSE b/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/LICENSE deleted file mode 100644 index 4ad9fe4..0000000 --- a/pythonx/compose/lite/release/runtime/legal/jdk.crypto.ec/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/pythonx/compose/lite/release/runtime/release b/pythonx/compose/lite/release/runtime/release deleted file mode 100644 index b4d99f9..0000000 --- a/pythonx/compose/lite/release/runtime/release +++ /dev/null @@ -1,2 +0,0 @@ -JAVA_VERSION="19.0.2" -MODULES="java.base java.datatransfer java.xml java.prefs java.desktop java.logging jdk.crypto.ec" diff --git a/pythonx/compose/lite/runtime.py b/pythonx/compose/lite/runtime.py deleted file mode 100644 index df198e1..0000000 --- a/pythonx/compose/lite/runtime.py +++ /dev/null @@ -1,11 +0,0 @@ -_composer = None - - -def register_composer(composer): - global _composer - print("INFO: Registering composer...") - _composer = composer - - -def Composable(func, *args, **kwargs): - return lambda *args, **kwargs: func(*args, **kwargs, composer=_composer) diff --git a/pythonx/compose/lite/settings.gradle.kts b/pythonx/compose/lite/settings.gradle.kts deleted file mode 100644 index 68054fc..0000000 --- a/pythonx/compose/lite/settings.gradle.kts +++ /dev/null @@ -1,5 +0,0 @@ -plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" -} -rootProject.name = "ComposeLite" - diff --git a/pythonx/compose/lite/src/main/kotlin/org/example/project/App.kt b/pythonx/compose/lite/src/main/kotlin/org/example/project/App.kt deleted file mode 100644 index 3522d29..0000000 --- a/pythonx/compose/lite/src/main/kotlin/org/example/project/App.kt +++ /dev/null @@ -1,53 +0,0 @@ -package org.example.project - -import androidx.compose.animation.AnimatedVisibility -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* -import androidx.compose.material3.Button -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.* -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application -import org.jetbrains.compose.resources.painterResource -import org.jetbrains.compose.ui.tooling.preview.Preview - - -@Composable -@Preview -fun App( - content: () -> Unit = {} -) { - MaterialTheme { - var showContent by remember { mutableStateOf(false) } - Column(Modifier.fillMaxSize().padding(all=10.dp), horizontalAlignment = Alignment.CenterHorizontally) { - Button(onClick = { showContent = !showContent }) { - Text("Click me!") - } - AnimatedVisibility(showContent) { - val greeting = remember { Greeting().greet() } - Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { - Text("Compose: $greeting") - } - } - Spacer(Modifier.height(16.dp)) - content() - } - } -} - - -fun launch(content: () -> Unit = {}, register: (composer: Composer) -> Unit = {}) { - application { - Window( - onCloseRequest = ::exitApplication, - title = "ComposeLite", - ) { - register(currentComposer) - App(content) - } - } -} diff --git a/pythonx/compose/lite/src/main/kotlin/org/example/project/ComposeTest.java b/pythonx/compose/lite/src/main/kotlin/org/example/project/ComposeTest.java deleted file mode 100644 index afe9c78..0000000 --- a/pythonx/compose/lite/src/main/kotlin/org/example/project/ComposeTest.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.example.project; - - -import org.example.project.AppKt; - -public class ComposeTest { - static void runApp() { - System.out.println("Hello from ComposeTest"); - AppKt.getApplication(); - } -} diff --git a/pythonx/compose/lite/src/main/kotlin/org/example/project/Greeting.kt b/pythonx/compose/lite/src/main/kotlin/org/example/project/Greeting.kt deleted file mode 100644 index d49d319..0000000 --- a/pythonx/compose/lite/src/main/kotlin/org/example/project/Greeting.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.example.project - -class Greeting { - private val platform = getPlatform() - - fun greet(): String { - return "Hello, ${platform.name}!" - } -} \ No newline at end of file diff --git a/pythonx/compose/lite/src/main/kotlin/org/example/project/Platform.kt b/pythonx/compose/lite/src/main/kotlin/org/example/project/Platform.kt deleted file mode 100644 index a964bdb..0000000 --- a/pythonx/compose/lite/src/main/kotlin/org/example/project/Platform.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.example.project - -class JVMPlatform { - val name: String = "Java ${System.getProperty("java.version")}" -} - -fun getPlatform() = JVMPlatform() \ No newline at end of file diff --git a/pythonx/compose/lite/src/main/kotlin/thisisthepy/pycomposeui/Material3.kt b/pythonx/compose/lite/src/main/kotlin/thisisthepy/pycomposeui/Material3.kt deleted file mode 100644 index 7356b4d..0000000 --- a/pythonx/compose/lite/src/main/kotlin/thisisthepy/pycomposeui/Material3.kt +++ /dev/null @@ -1,228 +0,0 @@ -package thisisthepy.pycomposeui - -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.foundation.text.InlineTextContent -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.* -import androidx.compose.material3.* -import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.text.AnnotatedString -import androidx.compose.ui.text.TextLayoutResult -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontStyle -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.text.style.TextDecoration -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.TextUnit -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp - - -@JvmName("SimpleIcon") -@Composable -fun IconWrapper( - icon: ImageVector, - contentDescription: String, - modifier: Modifier, - color: Long -) { - Icons.Default.Favorite - Icon(icon, contentDescription, modifier, Color(color)) -} - - -val FavoriteIcon - @JvmName("FavoriteIcon") - get() = Icons.Default.Favorite - - -val AddIcon - @JvmName("AddIcon") - get() = Icons.Default.Add - - -val KeyboardArrowDownIcon - @JvmName("KeyboardArrowDownIcon") - get() = Icons.Default.KeyboardArrowDown - - -val KeyboardArrowUpIcon - @JvmName("KeyboardArrowUpIcon") - get() = Icons.Default.KeyboardArrowUp - - -val PlayArrowIcon - @JvmName("PlayArrowIcon") - get() = Icons.Default.PlayArrow - - -val DeleteIcon - @JvmName("DeleteIcon") - get() = Icons.Default.Delete - - - -@JvmName("SimpleTextWidget") -@Composable -fun SimpleTextWidget( - text: String, - color: Long, - fontSize: Float -) { - Text(text, Modifier, Color(color), fontSize.sp) -} - - -@JvmName("SimpleSpacer") -@Composable -fun SimpleSpacer( - start: Float, top: Float, end: Float, bottom: Float -) { - Spacer(Modifier.padding(start.dp, top.dp, end.dp, bottom.dp)) -} - - -@JvmName("TextWidget") -@Composable -fun TextWidget( - text: String, - modifier: Modifier = Modifier, - color: Color = Color.Unspecified, - fontSize: TextUnit = TextUnit.Unspecified, - fontStyle: FontStyle? = null, - fontWeight: FontWeight? = null, - fontFamily: FontFamily? = null, - letterSpacing: TextUnit = TextUnit.Unspecified, - textDecoration: TextDecoration? = null, - textAlign: TextAlign? = null, - lineHeight: TextUnit = TextUnit.Unspecified, - overflow: TextOverflow = TextOverflow.Clip, - softWrap: Boolean = true, - maxLines: Int = Int.MAX_VALUE, - minLines: Int = 1, - onTextLayout: (TextLayoutResult) -> Unit = {}, - style: TextStyle = LocalTextStyle.current -) { - Text(text, modifier, color, fontSize, fontStyle, fontWeight, fontFamily, letterSpacing, textDecoration, textAlign, - lineHeight, overflow, softWrap, maxLines, minLines, onTextLayout, style) -} - - -@JvmName("AnnotatedStringTextWidget") -@Composable -fun AnnotatedStringTextWidget( - text: AnnotatedString, - modifier: Modifier = Modifier, - color: Color = Color.Unspecified, - fontSize: TextUnit = TextUnit.Unspecified, - fontStyle: FontStyle? = null, - fontWeight: FontWeight? = null, - fontFamily: FontFamily? = null, - letterSpacing: TextUnit = TextUnit.Unspecified, - textDecoration: TextDecoration? = null, - textAlign: TextAlign? = null, - lineHeight: TextUnit = TextUnit.Unspecified, - overflow: TextOverflow = TextOverflow.Clip, - softWrap: Boolean = true, - maxLines: Int = Int.MAX_VALUE, - minLines: Int = 1, - inlineContent: Map = mapOf(), - onTextLayout: (TextLayoutResult) -> Unit = {}, - style: TextStyle = LocalTextStyle.current -) { - Text(text, modifier, color, fontSize, fontStyle, fontWeight, fontFamily, letterSpacing, textDecoration, textAlign, - lineHeight, overflow, softWrap, maxLines, minLines, inlineContent, onTextLayout, style) -} - -@JvmName("SimpleColumnWidget") -@Composable -fun SimpleColumnWidget( - modifier: Modifier, - verticalArrangement: Arrangement.Vertical, - horizontalAlignment: Alignment.Horizontal, - content: () -> Unit -) { - Column(modifier, verticalArrangement, horizontalAlignment) { - content() - } -} - - -@JvmName("SimpleRowWidget") -@Composable -fun SimpleRowWidget( - modifier: Modifier, - horizontalArrangement: Arrangement.Horizontal, - verticalAlignment: Alignment.Vertical, - content: () -> Unit -) { - Row(modifier, horizontalArrangement, verticalAlignment) { - content() - } -} - - -@JvmName("SimpleButtonWidget") -@Composable -fun SimpleButtonWidget( - onClick: () -> Unit, - enabled: Boolean, - cornerRadius: Float, - color: Long, - content: () -> Unit -) { - Button(onClick, Modifier, enabled, RoundedCornerShape(cornerRadius.dp), ButtonColors( - containerColor = Color(color), - contentColor = Color.Unspecified, - disabledContainerColor = Color(color), - disabledContentColor = Color.Unspecified - ) - ) { - content() - } -} - - -@JvmName("SimpleCardWidget") -@Composable -fun SimpleCardWidget( - cornerRadius: Float, - color: Long, - content: () -> Unit -) { - Card(Modifier, RoundedCornerShape(cornerRadius.dp), CardColors( - containerColor = Color(color), - contentColor = Color.Unspecified, - disabledContainerColor = Color(color), - disabledContentColor = Color.Unspecified - ) - ){ - content() - } -} - - -@JvmName("SimpleTextField") -@Composable -fun SimpleTextField( - textState: MutableState, - padding: Int -) { - TextField( - value = textState.value, // 외부에서 받은 텍스트 상태 사용 - onValueChange = { textState.value = it }, // 텍스트 값이 변경될 때 호출되는 콜백 - placeholder = null, // placeholder 생략 - modifier = Modifier - .fillMaxWidth() - .padding(padding.dp), - singleLine = false - ) -} diff --git a/pythonx/compose/lite/src/main/kotlin/thisisthepy/pycomposeui/Ui.kt b/pythonx/compose/lite/src/main/kotlin/thisisthepy/pycomposeui/Ui.kt deleted file mode 100644 index 11ca64c..0000000 --- a/pythonx/compose/lite/src/main/kotlin/thisisthepy/pycomposeui/Ui.kt +++ /dev/null @@ -1,9 +0,0 @@ -package thisisthepy.pycomposeui - -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier - - -fun getModifier() = Modifier - -fun getAlignment() = Alignment diff --git a/pythonx/compose/material/__init__.py b/pythonx/compose/material/__init__.py new file mode 100644 index 0000000..41e5ace --- /dev/null +++ b/pythonx/compose/material/__init__.py @@ -0,0 +1,8 @@ +"""`pythonx.compose.material` -- the Pythonic view of `androidx.compose.material` (see `pythonx/compose/_reexport.py`). + +Material 2's own composables are not bound; this package is here for `material.icons`. +""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/material/__init__.pyi b/pythonx/compose/material/__init__.pyi new file mode 100644 index 0000000..b912439 --- /dev/null +++ b/pythonx/compose/material/__init__.pyi @@ -0,0 +1 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. diff --git a/pythonx/compose/material/icons/__init__.py b/pythonx/compose/material/icons/__init__.py new file mode 100644 index 0000000..f02a782 --- /dev/null +++ b/pythonx/compose/material/icons/__init__.py @@ -0,0 +1,9 @@ +"""`pythonx.compose.material.icons` -- the Pythonic view of `androidx.compose.material.icons` (see `pythonx/compose/_reexport.py`). + +`Icons.Default.Add` is served by the rule; `material3` lends `Icons.Default` as `DefaultIcons` +(`[aliases]` in `pythonx-map.toml`, INTENT section 5.7). +""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/material/icons/__init__.pyi b/pythonx/compose/material/icons/__init__.pyi new file mode 100644 index 0000000..7d337f9 --- /dev/null +++ b/pythonx/compose/material/icons/__init__.pyi @@ -0,0 +1,1159 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.ui.graphics.vector + +def material_icon(name: str, auto_mirror: bool = ..., *, block: _t.Callable[[pythonx.compose.ui.graphics.vector.ImageVector.Builder], pythonx.compose.ui.graphics.vector.ImageVector.Builder]) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin: androidx.compose.material.icons.materialIcon(name: kotlin.String, autoMirror: kotlin.Boolean, block: kotlin.Function1): androidx.compose.ui.graphics.vector.ImageVector""" + ... + +def material_path(receiver: pythonx.compose.ui.graphics.vector.ImageVector.Builder, /, fill_alpha: float = ..., stroke_alpha: float = ..., path_fill_type: _t.Any = ..., *, path_builder: _t.Callable[[pythonx.compose.ui.graphics.vector.PathBuilder], None]) -> pythonx.compose.ui.graphics.vector.ImageVector.Builder: + """Kotlin: androidx.compose.ui.graphics.vector.ImageVector.Builder.materialPath(fillAlpha: kotlin.Float, strokeAlpha: kotlin.Float, pathFillType: androidx.compose.ui.graphics.PathFillType, pathBuilder: kotlin.Function1): androidx.compose.ui.graphics.vector.ImageVector.Builder""" + ... + +class Icons: + """Kotlin: androidx.compose.material.icons.Icons""" + class AutoMirrored: + """Kotlin: container of nested classes""" + class Filled: + """Kotlin: androidx.compose.material.icons.Icons.AutoMirrored.Filled""" + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.ArrowBack (androidx.compose.material.icons.Icons.AutoMirrored.Filled.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.ArrowForward (androidx.compose.material.icons.Icons.AutoMirrored.Filled.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.ExitToApp (androidx.compose.material.icons.Icons.AutoMirrored.Filled.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft (androidx.compose.material.icons.Icons.AutoMirrored.Filled.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight (androidx.compose.material.icons.Icons.AutoMirrored.Filled.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.List (androidx.compose.material.icons.Icons.AutoMirrored.Filled.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.filled.Send (androidx.compose.material.icons.Icons.AutoMirrored.Filled.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class Outlined: + """Kotlin: androidx.compose.material.icons.Icons.AutoMirrored.Outlined""" + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.ArrowBack (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.ArrowForward (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.ExitToApp (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.KeyboardArrowLeft (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.KeyboardArrowRight (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.List (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.outlined.Send (androidx.compose.material.icons.Icons.AutoMirrored.Outlined.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class Rounded: + """Kotlin: androidx.compose.material.icons.Icons.AutoMirrored.Rounded""" + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.ArrowBack (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.ArrowForward (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.ExitToApp (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.KeyboardArrowLeft (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.KeyboardArrowRight (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.List (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.rounded.Send (androidx.compose.material.icons.Icons.AutoMirrored.Rounded.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class Sharp: + """Kotlin: androidx.compose.material.icons.Icons.AutoMirrored.Sharp""" + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.ArrowBack (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.ArrowForward (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.ExitToApp (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.KeyboardArrowLeft (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.KeyboardArrowRight (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.List (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.sharp.Send (androidx.compose.material.icons.Icons.AutoMirrored.Sharp.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class TwoTone: + """Kotlin: androidx.compose.material.icons.Icons.AutoMirrored.TwoTone""" + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.ArrowBack (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.ArrowForward (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.ExitToApp (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.KeyboardArrowLeft (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.KeyboardArrowRight (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.List (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.automirrored.twotone.Send (androidx.compose.material.icons.Icons.AutoMirrored.TwoTone.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class Filled: + """Kotlin: androidx.compose.material.icons.Icons.Filled""" + @property + def AccountBox(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.AccountBox (androidx.compose.material.icons.Icons.Filled.AccountBox: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AccountCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.AccountCircle (androidx.compose.material.icons.Icons.Filled.AccountCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Add(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Add (androidx.compose.material.icons.Icons.Filled.Add: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AddCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.AddCircle (androidx.compose.material.icons.Icons.Filled.AddCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.ArrowBack (androidx.compose.material.icons.Icons.Filled.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowDropDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.ArrowDropDown (androidx.compose.material.icons.Icons.Filled.ArrowDropDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.ArrowForward (androidx.compose.material.icons.Icons.Filled.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Build(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Build (androidx.compose.material.icons.Icons.Filled.Build: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Call(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Call (androidx.compose.material.icons.Icons.Filled.Call: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Check(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Check (androidx.compose.material.icons.Icons.Filled.Check: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def CheckCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.CheckCircle (androidx.compose.material.icons.Icons.Filled.CheckCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Clear(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Clear (androidx.compose.material.icons.Icons.Filled.Clear: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Close(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Close (androidx.compose.material.icons.Icons.Filled.Close: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Create(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Create (androidx.compose.material.icons.Icons.Filled.Create: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def DateRange(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.DateRange (androidx.compose.material.icons.Icons.Filled.DateRange: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Delete(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Delete (androidx.compose.material.icons.Icons.Filled.Delete: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Done(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Done (androidx.compose.material.icons.Icons.Filled.Done: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Edit(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Edit (androidx.compose.material.icons.Icons.Filled.Edit: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Email(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Email (androidx.compose.material.icons.Icons.Filled.Email: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.ExitToApp (androidx.compose.material.icons.Icons.Filled.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Face(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Face (androidx.compose.material.icons.Icons.Filled.Face: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Favorite(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Favorite (androidx.compose.material.icons.Icons.Filled.Favorite: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def FavoriteBorder(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.FavoriteBorder (androidx.compose.material.icons.Icons.Filled.FavoriteBorder: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Home(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Home (androidx.compose.material.icons.Icons.Filled.Home: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Info(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Info (androidx.compose.material.icons.Icons.Filled.Info: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.KeyboardArrowDown (androidx.compose.material.icons.Icons.Filled.KeyboardArrowDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.KeyboardArrowLeft (androidx.compose.material.icons.Icons.Filled.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.KeyboardArrowRight (androidx.compose.material.icons.Icons.Filled.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.KeyboardArrowUp (androidx.compose.material.icons.Icons.Filled.KeyboardArrowUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.List (androidx.compose.material.icons.Icons.Filled.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def LocationOn(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.LocationOn (androidx.compose.material.icons.Icons.Filled.LocationOn: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Lock(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Lock (androidx.compose.material.icons.Icons.Filled.Lock: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MailOutline(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.MailOutline (androidx.compose.material.icons.Icons.Filled.MailOutline: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Menu(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Menu (androidx.compose.material.icons.Icons.Filled.Menu: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MoreVert(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.MoreVert (androidx.compose.material.icons.Icons.Filled.MoreVert: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Notifications(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Notifications (androidx.compose.material.icons.Icons.Filled.Notifications: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Person(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Person (androidx.compose.material.icons.Icons.Filled.Person: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Phone(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Phone (androidx.compose.material.icons.Icons.Filled.Phone: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Place(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Place (androidx.compose.material.icons.Icons.Filled.Place: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def PlayArrow(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.PlayArrow (androidx.compose.material.icons.Icons.Filled.PlayArrow: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Refresh(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Refresh (androidx.compose.material.icons.Icons.Filled.Refresh: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Search(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Search (androidx.compose.material.icons.Icons.Filled.Search: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Send (androidx.compose.material.icons.Icons.Filled.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Settings(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Settings (androidx.compose.material.icons.Icons.Filled.Settings: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Share(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Share (androidx.compose.material.icons.Icons.Filled.Share: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ShoppingCart(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.ShoppingCart (androidx.compose.material.icons.Icons.Filled.ShoppingCart: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Star(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Star (androidx.compose.material.icons.Icons.Filled.Star: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ThumbUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.ThumbUp (androidx.compose.material.icons.Icons.Filled.ThumbUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Warning(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.filled.Warning (androidx.compose.material.icons.Icons.Filled.Warning: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + Default: _t.ClassVar[Icons.Filled] + class Outlined: + """Kotlin: androidx.compose.material.icons.Icons.Outlined""" + @property + def AccountBox(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.AccountBox (androidx.compose.material.icons.Icons.Outlined.AccountBox: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AccountCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.AccountCircle (androidx.compose.material.icons.Icons.Outlined.AccountCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Add(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Add (androidx.compose.material.icons.Icons.Outlined.Add: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AddCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.AddCircle (androidx.compose.material.icons.Icons.Outlined.AddCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.ArrowBack (androidx.compose.material.icons.Icons.Outlined.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowDropDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.ArrowDropDown (androidx.compose.material.icons.Icons.Outlined.ArrowDropDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.ArrowForward (androidx.compose.material.icons.Icons.Outlined.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Build(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Build (androidx.compose.material.icons.Icons.Outlined.Build: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Call(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Call (androidx.compose.material.icons.Icons.Outlined.Call: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Check(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Check (androidx.compose.material.icons.Icons.Outlined.Check: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def CheckCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.CheckCircle (androidx.compose.material.icons.Icons.Outlined.CheckCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Clear(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Clear (androidx.compose.material.icons.Icons.Outlined.Clear: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Close(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Close (androidx.compose.material.icons.Icons.Outlined.Close: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Create(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Create (androidx.compose.material.icons.Icons.Outlined.Create: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def DateRange(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.DateRange (androidx.compose.material.icons.Icons.Outlined.DateRange: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Delete(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Delete (androidx.compose.material.icons.Icons.Outlined.Delete: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Done(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Done (androidx.compose.material.icons.Icons.Outlined.Done: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Edit(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Edit (androidx.compose.material.icons.Icons.Outlined.Edit: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Email(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Email (androidx.compose.material.icons.Icons.Outlined.Email: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.ExitToApp (androidx.compose.material.icons.Icons.Outlined.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Face(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Face (androidx.compose.material.icons.Icons.Outlined.Face: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Favorite(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Favorite (androidx.compose.material.icons.Icons.Outlined.Favorite: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def FavoriteBorder(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.FavoriteBorder (androidx.compose.material.icons.Icons.Outlined.FavoriteBorder: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Home(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Home (androidx.compose.material.icons.Icons.Outlined.Home: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Info(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Info (androidx.compose.material.icons.Icons.Outlined.Info: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.KeyboardArrowDown (androidx.compose.material.icons.Icons.Outlined.KeyboardArrowDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.KeyboardArrowLeft (androidx.compose.material.icons.Icons.Outlined.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.KeyboardArrowRight (androidx.compose.material.icons.Icons.Outlined.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.KeyboardArrowUp (androidx.compose.material.icons.Icons.Outlined.KeyboardArrowUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.List (androidx.compose.material.icons.Icons.Outlined.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def LocationOn(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.LocationOn (androidx.compose.material.icons.Icons.Outlined.LocationOn: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Lock(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Lock (androidx.compose.material.icons.Icons.Outlined.Lock: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MailOutline(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.MailOutline (androidx.compose.material.icons.Icons.Outlined.MailOutline: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Menu(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Menu (androidx.compose.material.icons.Icons.Outlined.Menu: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MoreVert(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.MoreVert (androidx.compose.material.icons.Icons.Outlined.MoreVert: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Notifications(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Notifications (androidx.compose.material.icons.Icons.Outlined.Notifications: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Person(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Person (androidx.compose.material.icons.Icons.Outlined.Person: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Phone(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Phone (androidx.compose.material.icons.Icons.Outlined.Phone: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Place(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Place (androidx.compose.material.icons.Icons.Outlined.Place: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def PlayArrow(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.PlayArrow (androidx.compose.material.icons.Icons.Outlined.PlayArrow: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Refresh(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Refresh (androidx.compose.material.icons.Icons.Outlined.Refresh: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Search(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Search (androidx.compose.material.icons.Icons.Outlined.Search: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Send (androidx.compose.material.icons.Icons.Outlined.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Settings(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Settings (androidx.compose.material.icons.Icons.Outlined.Settings: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Share(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Share (androidx.compose.material.icons.Icons.Outlined.Share: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ShoppingCart(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.ShoppingCart (androidx.compose.material.icons.Icons.Outlined.ShoppingCart: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Star(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Star (androidx.compose.material.icons.Icons.Outlined.Star: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ThumbUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.ThumbUp (androidx.compose.material.icons.Icons.Outlined.ThumbUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Warning(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.outlined.Warning (androidx.compose.material.icons.Icons.Outlined.Warning: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class Rounded: + """Kotlin: androidx.compose.material.icons.Icons.Rounded""" + @property + def AccountBox(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.AccountBox (androidx.compose.material.icons.Icons.Rounded.AccountBox: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AccountCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.AccountCircle (androidx.compose.material.icons.Icons.Rounded.AccountCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Add(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Add (androidx.compose.material.icons.Icons.Rounded.Add: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AddCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.AddCircle (androidx.compose.material.icons.Icons.Rounded.AddCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.ArrowBack (androidx.compose.material.icons.Icons.Rounded.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowDropDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.ArrowDropDown (androidx.compose.material.icons.Icons.Rounded.ArrowDropDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.ArrowForward (androidx.compose.material.icons.Icons.Rounded.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Build(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Build (androidx.compose.material.icons.Icons.Rounded.Build: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Call(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Call (androidx.compose.material.icons.Icons.Rounded.Call: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Check(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Check (androidx.compose.material.icons.Icons.Rounded.Check: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def CheckCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.CheckCircle (androidx.compose.material.icons.Icons.Rounded.CheckCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Clear(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Clear (androidx.compose.material.icons.Icons.Rounded.Clear: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Close(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Close (androidx.compose.material.icons.Icons.Rounded.Close: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Create(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Create (androidx.compose.material.icons.Icons.Rounded.Create: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def DateRange(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.DateRange (androidx.compose.material.icons.Icons.Rounded.DateRange: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Delete(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Delete (androidx.compose.material.icons.Icons.Rounded.Delete: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Done(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Done (androidx.compose.material.icons.Icons.Rounded.Done: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Edit(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Edit (androidx.compose.material.icons.Icons.Rounded.Edit: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Email(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Email (androidx.compose.material.icons.Icons.Rounded.Email: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.ExitToApp (androidx.compose.material.icons.Icons.Rounded.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Face(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Face (androidx.compose.material.icons.Icons.Rounded.Face: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Favorite(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Favorite (androidx.compose.material.icons.Icons.Rounded.Favorite: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def FavoriteBorder(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.FavoriteBorder (androidx.compose.material.icons.Icons.Rounded.FavoriteBorder: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Home(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Home (androidx.compose.material.icons.Icons.Rounded.Home: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Info(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Info (androidx.compose.material.icons.Icons.Rounded.Info: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.KeyboardArrowDown (androidx.compose.material.icons.Icons.Rounded.KeyboardArrowDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.KeyboardArrowLeft (androidx.compose.material.icons.Icons.Rounded.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.KeyboardArrowRight (androidx.compose.material.icons.Icons.Rounded.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.KeyboardArrowUp (androidx.compose.material.icons.Icons.Rounded.KeyboardArrowUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.List (androidx.compose.material.icons.Icons.Rounded.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def LocationOn(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.LocationOn (androidx.compose.material.icons.Icons.Rounded.LocationOn: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Lock(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Lock (androidx.compose.material.icons.Icons.Rounded.Lock: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MailOutline(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.MailOutline (androidx.compose.material.icons.Icons.Rounded.MailOutline: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Menu(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Menu (androidx.compose.material.icons.Icons.Rounded.Menu: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MoreVert(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.MoreVert (androidx.compose.material.icons.Icons.Rounded.MoreVert: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Notifications(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Notifications (androidx.compose.material.icons.Icons.Rounded.Notifications: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Person(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Person (androidx.compose.material.icons.Icons.Rounded.Person: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Phone(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Phone (androidx.compose.material.icons.Icons.Rounded.Phone: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Place(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Place (androidx.compose.material.icons.Icons.Rounded.Place: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def PlayArrow(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.PlayArrow (androidx.compose.material.icons.Icons.Rounded.PlayArrow: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Refresh(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Refresh (androidx.compose.material.icons.Icons.Rounded.Refresh: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Search(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Search (androidx.compose.material.icons.Icons.Rounded.Search: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Send (androidx.compose.material.icons.Icons.Rounded.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Settings(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Settings (androidx.compose.material.icons.Icons.Rounded.Settings: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Share(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Share (androidx.compose.material.icons.Icons.Rounded.Share: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ShoppingCart(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.ShoppingCart (androidx.compose.material.icons.Icons.Rounded.ShoppingCart: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Star(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Star (androidx.compose.material.icons.Icons.Rounded.Star: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ThumbUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.ThumbUp (androidx.compose.material.icons.Icons.Rounded.ThumbUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Warning(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.rounded.Warning (androidx.compose.material.icons.Icons.Rounded.Warning: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class Sharp: + """Kotlin: androidx.compose.material.icons.Icons.Sharp""" + @property + def AccountBox(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.AccountBox (androidx.compose.material.icons.Icons.Sharp.AccountBox: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AccountCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.AccountCircle (androidx.compose.material.icons.Icons.Sharp.AccountCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Add(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Add (androidx.compose.material.icons.Icons.Sharp.Add: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AddCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.AddCircle (androidx.compose.material.icons.Icons.Sharp.AddCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.ArrowBack (androidx.compose.material.icons.Icons.Sharp.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowDropDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.ArrowDropDown (androidx.compose.material.icons.Icons.Sharp.ArrowDropDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.ArrowForward (androidx.compose.material.icons.Icons.Sharp.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Build(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Build (androidx.compose.material.icons.Icons.Sharp.Build: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Call(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Call (androidx.compose.material.icons.Icons.Sharp.Call: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Check(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Check (androidx.compose.material.icons.Icons.Sharp.Check: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def CheckCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.CheckCircle (androidx.compose.material.icons.Icons.Sharp.CheckCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Clear(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Clear (androidx.compose.material.icons.Icons.Sharp.Clear: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Close(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Close (androidx.compose.material.icons.Icons.Sharp.Close: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Create(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Create (androidx.compose.material.icons.Icons.Sharp.Create: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def DateRange(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.DateRange (androidx.compose.material.icons.Icons.Sharp.DateRange: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Delete(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Delete (androidx.compose.material.icons.Icons.Sharp.Delete: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Done(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Done (androidx.compose.material.icons.Icons.Sharp.Done: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Edit(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Edit (androidx.compose.material.icons.Icons.Sharp.Edit: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Email(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Email (androidx.compose.material.icons.Icons.Sharp.Email: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.ExitToApp (androidx.compose.material.icons.Icons.Sharp.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Face(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Face (androidx.compose.material.icons.Icons.Sharp.Face: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Favorite(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Favorite (androidx.compose.material.icons.Icons.Sharp.Favorite: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def FavoriteBorder(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.FavoriteBorder (androidx.compose.material.icons.Icons.Sharp.FavoriteBorder: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Home(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Home (androidx.compose.material.icons.Icons.Sharp.Home: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Info(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Info (androidx.compose.material.icons.Icons.Sharp.Info: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.KeyboardArrowDown (androidx.compose.material.icons.Icons.Sharp.KeyboardArrowDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.KeyboardArrowLeft (androidx.compose.material.icons.Icons.Sharp.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.KeyboardArrowRight (androidx.compose.material.icons.Icons.Sharp.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.KeyboardArrowUp (androidx.compose.material.icons.Icons.Sharp.KeyboardArrowUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.List (androidx.compose.material.icons.Icons.Sharp.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def LocationOn(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.LocationOn (androidx.compose.material.icons.Icons.Sharp.LocationOn: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Lock(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Lock (androidx.compose.material.icons.Icons.Sharp.Lock: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MailOutline(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.MailOutline (androidx.compose.material.icons.Icons.Sharp.MailOutline: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Menu(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Menu (androidx.compose.material.icons.Icons.Sharp.Menu: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MoreVert(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.MoreVert (androidx.compose.material.icons.Icons.Sharp.MoreVert: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Notifications(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Notifications (androidx.compose.material.icons.Icons.Sharp.Notifications: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Person(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Person (androidx.compose.material.icons.Icons.Sharp.Person: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Phone(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Phone (androidx.compose.material.icons.Icons.Sharp.Phone: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Place(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Place (androidx.compose.material.icons.Icons.Sharp.Place: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def PlayArrow(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.PlayArrow (androidx.compose.material.icons.Icons.Sharp.PlayArrow: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Refresh(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Refresh (androidx.compose.material.icons.Icons.Sharp.Refresh: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Search(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Search (androidx.compose.material.icons.Icons.Sharp.Search: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Send (androidx.compose.material.icons.Icons.Sharp.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Settings(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Settings (androidx.compose.material.icons.Icons.Sharp.Settings: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Share(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Share (androidx.compose.material.icons.Icons.Sharp.Share: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ShoppingCart(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.ShoppingCart (androidx.compose.material.icons.Icons.Sharp.ShoppingCart: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Star(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Star (androidx.compose.material.icons.Icons.Sharp.Star: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ThumbUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.ThumbUp (androidx.compose.material.icons.Icons.Sharp.ThumbUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Warning(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.sharp.Warning (androidx.compose.material.icons.Icons.Sharp.Warning: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + class TwoTone: + """Kotlin: androidx.compose.material.icons.Icons.TwoTone""" + @property + def AccountBox(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.AccountBox (androidx.compose.material.icons.Icons.TwoTone.AccountBox: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AccountCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.AccountCircle (androidx.compose.material.icons.Icons.TwoTone.AccountCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Add(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Add (androidx.compose.material.icons.Icons.TwoTone.Add: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def AddCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.AddCircle (androidx.compose.material.icons.Icons.TwoTone.AddCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowBack(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.ArrowBack (androidx.compose.material.icons.Icons.TwoTone.ArrowBack: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowDropDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.ArrowDropDown (androidx.compose.material.icons.Icons.TwoTone.ArrowDropDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ArrowForward(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.ArrowForward (androidx.compose.material.icons.Icons.TwoTone.ArrowForward: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Build(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Build (androidx.compose.material.icons.Icons.TwoTone.Build: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Call(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Call (androidx.compose.material.icons.Icons.TwoTone.Call: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Check(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Check (androidx.compose.material.icons.Icons.TwoTone.Check: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def CheckCircle(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.CheckCircle (androidx.compose.material.icons.Icons.TwoTone.CheckCircle: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Clear(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Clear (androidx.compose.material.icons.Icons.TwoTone.Clear: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Close(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Close (androidx.compose.material.icons.Icons.TwoTone.Close: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Create(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Create (androidx.compose.material.icons.Icons.TwoTone.Create: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def DateRange(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.DateRange (androidx.compose.material.icons.Icons.TwoTone.DateRange: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Delete(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Delete (androidx.compose.material.icons.Icons.TwoTone.Delete: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Done(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Done (androidx.compose.material.icons.Icons.TwoTone.Done: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Edit(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Edit (androidx.compose.material.icons.Icons.TwoTone.Edit: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Email(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Email (androidx.compose.material.icons.Icons.TwoTone.Email: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ExitToApp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.ExitToApp (androidx.compose.material.icons.Icons.TwoTone.ExitToApp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Face(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Face (androidx.compose.material.icons.Icons.TwoTone.Face: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Favorite(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Favorite (androidx.compose.material.icons.Icons.TwoTone.Favorite: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def FavoriteBorder(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.FavoriteBorder (androidx.compose.material.icons.Icons.TwoTone.FavoriteBorder: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Home(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Home (androidx.compose.material.icons.Icons.TwoTone.Home: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Info(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Info (androidx.compose.material.icons.Icons.TwoTone.Info: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowDown(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.KeyboardArrowDown (androidx.compose.material.icons.Icons.TwoTone.KeyboardArrowDown: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowLeft(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.KeyboardArrowLeft (androidx.compose.material.icons.Icons.TwoTone.KeyboardArrowLeft: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowRight(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.KeyboardArrowRight (androidx.compose.material.icons.Icons.TwoTone.KeyboardArrowRight: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def KeyboardArrowUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.KeyboardArrowUp (androidx.compose.material.icons.Icons.TwoTone.KeyboardArrowUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def List(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.List (androidx.compose.material.icons.Icons.TwoTone.List: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def LocationOn(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.LocationOn (androidx.compose.material.icons.Icons.TwoTone.LocationOn: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Lock(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Lock (androidx.compose.material.icons.Icons.TwoTone.Lock: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MailOutline(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.MailOutline (androidx.compose.material.icons.Icons.TwoTone.MailOutline: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Menu(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Menu (androidx.compose.material.icons.Icons.TwoTone.Menu: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def MoreVert(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.MoreVert (androidx.compose.material.icons.Icons.TwoTone.MoreVert: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Notifications(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Notifications (androidx.compose.material.icons.Icons.TwoTone.Notifications: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Person(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Person (androidx.compose.material.icons.Icons.TwoTone.Person: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Phone(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Phone (androidx.compose.material.icons.Icons.TwoTone.Phone: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Place(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Place (androidx.compose.material.icons.Icons.TwoTone.Place: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def PlayArrow(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.PlayArrow (androidx.compose.material.icons.Icons.TwoTone.PlayArrow: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Refresh(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Refresh (androidx.compose.material.icons.Icons.TwoTone.Refresh: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Search(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Search (androidx.compose.material.icons.Icons.TwoTone.Search: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Send(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Send (androidx.compose.material.icons.Icons.TwoTone.Send: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Settings(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Settings (androidx.compose.material.icons.Icons.TwoTone.Settings: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Share(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Share (androidx.compose.material.icons.Icons.TwoTone.Share: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ShoppingCart(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.ShoppingCart (androidx.compose.material.icons.Icons.TwoTone.ShoppingCart: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Star(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Star (androidx.compose.material.icons.Icons.TwoTone.Star: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def ThumbUp(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.ThumbUp (androidx.compose.material.icons.Icons.TwoTone.ThumbUp: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + @property + def Warning(self) -> pythonx.compose.ui.graphics.vector.ImageVector: + """Kotlin property: androidx.compose.material.icons.twotone.Warning (androidx.compose.material.icons.Icons.TwoTone.Warning: androidx.compose.ui.graphics.vector.ImageVector)""" + ... + Default: _t.ClassVar[Icons.Filled] + """Kotlin: androidx.compose.material.icons.Icons.Default(): androidx.compose.material.icons.Icons.Filled""" diff --git a/pythonx/compose/material3/__init__.py b/pythonx/compose/material3/__init__.py index 942b80c..2973b78 100644 --- a/pythonx/compose/material3/__init__.py +++ b/pythonx/compose/material3/__init__.py @@ -1,46 +1,24 @@ -# Theming -from .material_theming import * -from .color_scheme import * -from .dynamic_color import * -from .typography import * -from .shape import * +"""`pythonx.compose.material3` -- the Pythonic view of `androidx.compose.material3`. -# Components -from .badge import * -from .bottom_app_bar import * -from .bottom_sheet import * -from .buttons import * -from .cards import * -from .checkbox import * -from .date_picker import * -from .dialogs import * -from .dividers import * -from .extended_fab import * -from .fab import * -from .icon_button import * -from .lists import * -from .menus import * -from .navigation_bar import * -from .navigation_drawer import * -from .navigation_rail import * -from .progress_indicators import * -from .radio_button import * -from .search_bar import * -from .segmented_button import * -from .sliders import * -from .snackbars import * -from .swipe_to_dismiss import * -from .switch import * -from .tabs import * -from .text_field import * -from .time_picker import * -from .tool_tip import * -from .top_app_bar import * +Every Material 3 composable (`Text`, `Button`, `Card`, `TextField`, `Checkbox`, ...) is served by +the one rule in `pythonx/compose/_reexport.py`: Kotlin's own declaration, upper-case names kept, +keyword arguments in snake_case (`on_click=`). There is no per-widget file here, on purpose +(AGENTS.md section 13). The notebook's `Column`, `Row` and `Spacer` are answered from +`pythonx.compose.layout` by the manifest's `[aliases]` (INTENT section 5.2). -# Surfaces and layout -from .surfaces import * -from .scaffold import * +## What used to be here -# Icons and text -from .icon import * -from .text import * +Per-widget wrappers from 2024 (`text.py`, `buttons.py`, `cards.py`, `icon_button.py`, +`text_field.py`, ...), each a copy of one template that looked a Kotlin function up by a +mangled-name prefix (`name.startswith("Button-")`), which Kotlin's value-class mangling makes +impossible. They were deleted as the binder rendered each declaration with no wrapper +(python-multiplatform `c60bcfeb`, `a6742a1c`, `3fde8bd6`, `cac8243f`). `icon.py` and +`color_scheme.py` were kept as records of two declarations that cannot be called yet, and 29 +sibling files had always been empty; all were deleted in pythonx-compose #31. What `icon.py` +recorded -- `Icon` needs an `ImageVector` nothing bound produces -- is SPEC S5.3. `git log` on this +directory has the rest. +""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/material3/__init__.pyi b/pythonx/compose/material3/__init__.pyi new file mode 100644 index 0000000..fbfde90 --- /dev/null +++ b/pythonx/compose/material3/__init__.pyi @@ -0,0 +1,3305 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.foundation +import pythonx.compose.foundation.text.input +import pythonx.compose.layout +import pythonx.compose.ui +import pythonx.compose.ui.graphics +import pythonx.compose.ui.graphics.vector +import pythonx.compose.ui.text +from pythonx.compose.layout import Column as Column +from pythonx.compose.layout import Row as Row +from pythonx.compose.layout import Spacer as Spacer +import pythonx.compose.material.icons as _alias_0 + +DefaultIcons = _alias_0.Icons.Default + +class _ColorScheme_contentColorFor(_t.Protocol): + def __call__(self, background_color: _t.Any) -> _t.Any: ... + +class _ColorScheme_contentColorFor__ColorScheme_Color(_t.Protocol): + def __call__(self, background_color: _t.Any) -> _t.Any: ... + +class _ColorScheme_surfaceColorAtElevation(_t.Protocol): + def __call__(self, elevation: float) -> _t.Any: ... + +class _MultiChoiceSegmentedButtonRowScope_SegmentedButton(_t.Protocol): + def __call__(self, checked: bool, on_checked_change: _t.Callable[[bool], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... + +class _MultiChoiceSegmentedButtonRowScope_SegmentedButton__MultiChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit(_t.Protocol): + def __call__(self, checked: bool, on_checked_change: _t.Callable[[bool], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... + +class _SingleChoiceSegmentedButtonRowScope_SegmentedButton(_t.Protocol): + def __call__(self, selected: bool, on_click: _t.Callable[[], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... + +class _SingleChoiceSegmentedButtonRowScope_SegmentedButton__SingleChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit(_t.Protocol): + def __call__(self, selected: bool, on_click: _t.Callable[[], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... + +class _TooltipScope_PlainTooltip(_t.Protocol): + def __call__(self, modifier: pythonx.compose.ui.Modifier = ..., caret_shape: pythonx.compose.ui.graphics.Shape | None = ..., max_width: float = ..., shape: pythonx.compose.ui.graphics.Shape = ..., content_color: _t.Any = ..., container_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., *, content: _t.Callable[[], None]) -> None: ... + +class _TooltipScope_RichTooltip(_t.Protocol): + def __call__(self, modifier: pythonx.compose.ui.Modifier = ..., title: _t.Callable[[], None] | None = ..., action: _t.Callable[[], None] | None = ..., caret_shape: pythonx.compose.ui.graphics.Shape | None = ..., max_width: float = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: RichTooltipColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., *, text: _t.Callable[[], None]) -> None: ... + +class AppBarColumnScope: + """Kotlin: androidx.compose.material3.AppBarColumnScope""" + +class AppBarMenuState: + """Kotlin: androidx.compose.material3.AppBarMenuState""" + def __init__(self) -> None: + """Kotlin constructor: androidx.compose.material3.AppBarMenuState (androidx.compose.material3.AppBarMenuState(): androidx.compose.material3.AppBarMenuState)""" + ... + @property + def is_expanded(self) -> bool: + """Kotlin property: androidx.compose.material3.AppBarMenuState.isExpanded (androidx.compose.material3.AppBarMenuState.isExpanded: kotlin.Boolean)""" + ... + +class AppBarRowScope: + """Kotlin: androidx.compose.material3.AppBarRowScope""" + +class BottomAppBarScrollBehavior: + """Kotlin: androidx.compose.material3.BottomAppBarScrollBehavior""" + @property + def is_pinned(self) -> bool: + """Kotlin property: androidx.compose.material3.BottomAppBarScrollBehavior.isPinned (androidx.compose.material3.BottomAppBarScrollBehavior.isPinned: kotlin.Boolean)""" + ... + @property + def nested_scroll_connection(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.BottomAppBarScrollBehavior.nestedScrollConnection (androidx.compose.material3.BottomAppBarScrollBehavior.nestedScrollConnection: androidx.compose.ui.input.nestedscroll.NestedScrollConnection)""" + ... + @property + def state(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.BottomAppBarScrollBehavior.state (androidx.compose.material3.BottomAppBarScrollBehavior.state: androidx.compose.material3.BottomAppBarState)""" + ... + +class BottomSheetScaffoldState: + """Kotlin: androidx.compose.material3.BottomSheetScaffoldState""" + def __init__(self, bottomSheetState: SheetState, snackbarHostState: SnackbarHostState) -> None: + """Kotlin constructor: androidx.compose.material3.BottomSheetScaffoldState (androidx.compose.material3.BottomSheetScaffoldState(bottomSheetState: androidx.compose.material3.SheetState, snackbarHostState: androidx.compose.material3.SnackbarHostState): androidx.compose.material3.BottomSheetScaffoldState)""" + ... + @property + def bottom_sheet_state(self) -> SheetState: + """Kotlin property: androidx.compose.material3.BottomSheetScaffoldState.bottomSheetState (androidx.compose.material3.BottomSheetScaffoldState.bottomSheetState: androidx.compose.material3.SheetState)""" + ... + @property + def snackbar_host_state(self) -> SnackbarHostState: + """Kotlin property: androidx.compose.material3.BottomSheetScaffoldState.snackbarHostState (androidx.compose.material3.BottomSheetScaffoldState.snackbarHostState: androidx.compose.material3.SnackbarHostState)""" + ... + +class ButtonColors: + """Kotlin: androidx.compose.material3.ButtonColors""" + def __init__(self, containerColor: _t.Any, contentColor: _t.Any, disabledContainerColor: _t.Any, disabledContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.ButtonColors (androidx.compose.material3.ButtonColors(containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, disabledContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.ButtonColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ButtonColors.containerColor (androidx.compose.material3.ButtonColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ButtonColors.contentColor (androidx.compose.material3.ButtonColors.contentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ButtonColors.disabledContainerColor (androidx.compose.material3.ButtonColors.disabledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ButtonColors.disabledContentColor (androidx.compose.material3.ButtonColors.disabledContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class ButtonElevation: + """Kotlin: androidx.compose.material3.ButtonElevation""" + +class CardColors: + """Kotlin: androidx.compose.material3.CardColors""" + def __init__(self, containerColor: _t.Any, contentColor: _t.Any, disabledContainerColor: _t.Any, disabledContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.CardColors (androidx.compose.material3.CardColors(containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, disabledContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.CardColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CardColors.containerColor (androidx.compose.material3.CardColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CardColors.contentColor (androidx.compose.material3.CardColors.contentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CardColors.disabledContainerColor (androidx.compose.material3.CardColors.disabledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CardColors.disabledContentColor (androidx.compose.material3.CardColors.disabledContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class CardElevation: + """Kotlin: androidx.compose.material3.CardElevation""" + +class CheckboxColors: + """Kotlin: androidx.compose.material3.CheckboxColors""" + def __init__(self, checkedCheckmarkColor: _t.Any, uncheckedCheckmarkColor: _t.Any, checkedBoxColor: _t.Any, uncheckedBoxColor: _t.Any, disabledCheckedBoxColor: _t.Any, disabledUncheckedBoxColor: _t.Any, disabledIndeterminateBoxColor: _t.Any, checkedBorderColor: _t.Any, uncheckedBorderColor: _t.Any, disabledBorderColor: _t.Any, disabledUncheckedBorderColor: _t.Any, disabledIndeterminateBorderColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.CheckboxColors (androidx.compose.material3.CheckboxColors(checkedCheckmarkColor: androidx.compose.ui.graphics.Color, uncheckedCheckmarkColor: androidx.compose.ui.graphics.Color, checkedBoxColor: androidx.compose.ui.graphics.Color, uncheckedBoxColor: androidx.compose.ui.graphics.Color, disabledCheckedBoxColor: androidx.compose.ui.graphics.Color, disabledUncheckedBoxColor: androidx.compose.ui.graphics.Color, disabledIndeterminateBoxColor: androidx.compose.ui.graphics.Color, checkedBorderColor: androidx.compose.ui.graphics.Color, uncheckedBorderColor: androidx.compose.ui.graphics.Color, disabledBorderColor: androidx.compose.ui.graphics.Color, disabledUncheckedBorderColor: androidx.compose.ui.graphics.Color, disabledIndeterminateBorderColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.CheckboxColors)""" + ... + @property + def checked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.checkedBorderColor (androidx.compose.material3.CheckboxColors.checkedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def checked_box_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.checkedBoxColor (androidx.compose.material3.CheckboxColors.checkedBoxColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def checked_checkmark_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.checkedCheckmarkColor (androidx.compose.material3.CheckboxColors.checkedCheckmarkColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.disabledBorderColor (androidx.compose.material3.CheckboxColors.disabledBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_checked_box_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.disabledCheckedBoxColor (androidx.compose.material3.CheckboxColors.disabledCheckedBoxColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_indeterminate_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.disabledIndeterminateBorderColor (androidx.compose.material3.CheckboxColors.disabledIndeterminateBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_indeterminate_box_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.disabledIndeterminateBoxColor (androidx.compose.material3.CheckboxColors.disabledIndeterminateBoxColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unchecked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.disabledUncheckedBorderColor (androidx.compose.material3.CheckboxColors.disabledUncheckedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unchecked_box_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.disabledUncheckedBoxColor (androidx.compose.material3.CheckboxColors.disabledUncheckedBoxColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.uncheckedBorderColor (androidx.compose.material3.CheckboxColors.uncheckedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_box_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.uncheckedBoxColor (androidx.compose.material3.CheckboxColors.uncheckedBoxColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_checkmark_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.CheckboxColors.uncheckedCheckmarkColor (androidx.compose.material3.CheckboxColors.uncheckedCheckmarkColor: androidx.compose.ui.graphics.Color)""" + ... + +class ChipColors: + """Kotlin: androidx.compose.material3.ChipColors""" + def __init__(self, containerColor: _t.Any, labelColor: _t.Any, leadingIconContentColor: _t.Any, trailingIconContentColor: _t.Any, disabledContainerColor: _t.Any, disabledLabelColor: _t.Any, disabledLeadingIconContentColor: _t.Any, disabledTrailingIconContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.ChipColors (androidx.compose.material3.ChipColors(containerColor: androidx.compose.ui.graphics.Color, labelColor: androidx.compose.ui.graphics.Color, leadingIconContentColor: androidx.compose.ui.graphics.Color, trailingIconContentColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, disabledLabelColor: androidx.compose.ui.graphics.Color, disabledLeadingIconContentColor: androidx.compose.ui.graphics.Color, disabledTrailingIconContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.ChipColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.containerColor (androidx.compose.material3.ChipColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.disabledContainerColor (androidx.compose.material3.ChipColors.disabledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_label_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.disabledLabelColor (androidx.compose.material3.ChipColors.disabledLabelColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_leading_icon_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.disabledLeadingIconContentColor (androidx.compose.material3.ChipColors.disabledLeadingIconContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_trailing_icon_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.disabledTrailingIconContentColor (androidx.compose.material3.ChipColors.disabledTrailingIconContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def label_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.labelColor (androidx.compose.material3.ChipColors.labelColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def leading_icon_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.leadingIconContentColor (androidx.compose.material3.ChipColors.leadingIconContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def trailing_icon_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ChipColors.trailingIconContentColor (androidx.compose.material3.ChipColors.trailingIconContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class ChipElevation: + """Kotlin: androidx.compose.material3.ChipElevation""" + def __init__(self, elevation: float, pressedElevation: float, focusedElevation: float, hoveredElevation: float, draggedElevation: float, disabledElevation: float) -> None: + """Kotlin constructor: androidx.compose.material3.ChipElevation (androidx.compose.material3.ChipElevation(elevation: androidx.compose.ui.unit.Dp, pressedElevation: androidx.compose.ui.unit.Dp, focusedElevation: androidx.compose.ui.unit.Dp, hoveredElevation: androidx.compose.ui.unit.Dp, draggedElevation: androidx.compose.ui.unit.Dp, disabledElevation: androidx.compose.ui.unit.Dp): androidx.compose.material3.ChipElevation)""" + ... + @property + def disabled_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.ChipElevation.disabledElevation (androidx.compose.material3.ChipElevation.disabledElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def dragged_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.ChipElevation.draggedElevation (androidx.compose.material3.ChipElevation.draggedElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def elevation(self) -> float: + """Kotlin property: androidx.compose.material3.ChipElevation.elevation (androidx.compose.material3.ChipElevation.elevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def focused_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.ChipElevation.focusedElevation (androidx.compose.material3.ChipElevation.focusedElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def hovered_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.ChipElevation.hoveredElevation (androidx.compose.material3.ChipElevation.hoveredElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def pressed_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.ChipElevation.pressedElevation (androidx.compose.material3.ChipElevation.pressedElevation: androidx.compose.ui.unit.Dp)""" + ... + +class ColorScheme: + """Kotlin: androidx.compose.material3.ColorScheme""" + @_t.overload + def __init__(self, primary: _t.Any, onPrimary: _t.Any, primaryContainer: _t.Any, onPrimaryContainer: _t.Any, inversePrimary: _t.Any, secondary: _t.Any, onSecondary: _t.Any, secondaryContainer: _t.Any, onSecondaryContainer: _t.Any, tertiary: _t.Any, onTertiary: _t.Any, tertiaryContainer: _t.Any, onTertiaryContainer: _t.Any, background: _t.Any, onBackground: _t.Any, surface: _t.Any, onSurface: _t.Any, surfaceVariant: _t.Any, onSurfaceVariant: _t.Any, surfaceTint: _t.Any, inverseSurface: _t.Any, inverseOnSurface: _t.Any, error: _t.Any, onError: _t.Any, errorContainer: _t.Any, onErrorContainer: _t.Any, outline: _t.Any, outlineVariant: _t.Any, scrim: _t.Any) -> None: ... + @_t.overload + def __init__(self, primary: _t.Any, onPrimary: _t.Any, primaryContainer: _t.Any, onPrimaryContainer: _t.Any, inversePrimary: _t.Any, secondary: _t.Any, onSecondary: _t.Any, secondaryContainer: _t.Any, onSecondaryContainer: _t.Any, tertiary: _t.Any, onTertiary: _t.Any, tertiaryContainer: _t.Any, onTertiaryContainer: _t.Any, background: _t.Any, onBackground: _t.Any, surface: _t.Any, onSurface: _t.Any, surfaceVariant: _t.Any, onSurfaceVariant: _t.Any, surfaceTint: _t.Any, inverseSurface: _t.Any, inverseOnSurface: _t.Any, error: _t.Any, onError: _t.Any, errorContainer: _t.Any, onErrorContainer: _t.Any, outline: _t.Any, outlineVariant: _t.Any, scrim: _t.Any, surfaceBright: _t.Any, surfaceDim: _t.Any, surfaceContainer: _t.Any, surfaceContainerHigh: _t.Any, surfaceContainerHighest: _t.Any, surfaceContainerLow: _t.Any, surfaceContainerLowest: _t.Any) -> None: ... # type: ignore[overload-cannot-match] + @_t.overload + def __init__(self, primary: _t.Any, onPrimary: _t.Any, primaryContainer: _t.Any, onPrimaryContainer: _t.Any, inversePrimary: _t.Any, secondary: _t.Any, onSecondary: _t.Any, secondaryContainer: _t.Any, onSecondaryContainer: _t.Any, tertiary: _t.Any, onTertiary: _t.Any, tertiaryContainer: _t.Any, onTertiaryContainer: _t.Any, background: _t.Any, onBackground: _t.Any, surface: _t.Any, onSurface: _t.Any, surfaceVariant: _t.Any, onSurfaceVariant: _t.Any, surfaceTint: _t.Any, inverseSurface: _t.Any, inverseOnSurface: _t.Any, error: _t.Any, onError: _t.Any, errorContainer: _t.Any, onErrorContainer: _t.Any, outline: _t.Any, outlineVariant: _t.Any, scrim: _t.Any, surfaceBright: _t.Any, surfaceDim: _t.Any, surfaceContainer: _t.Any, surfaceContainerHigh: _t.Any, surfaceContainerHighest: _t.Any, surfaceContainerLow: _t.Any, surfaceContainerLowest: _t.Any, primaryFixed: _t.Any, primaryFixedDim: _t.Any, onPrimaryFixed: _t.Any, onPrimaryFixedVariant: _t.Any, secondaryFixed: _t.Any, secondaryFixedDim: _t.Any, onSecondaryFixed: _t.Any, onSecondaryFixedVariant: _t.Any, tertiaryFixed: _t.Any, tertiaryFixedDim: _t.Any, onTertiaryFixed: _t.Any, onTertiaryFixedVariant: _t.Any) -> None: ... # type: ignore[overload-cannot-match] + content_color_for: _t.ClassVar[_ColorScheme_contentColorFor] + content_color_for__ColorScheme_Color: _t.ClassVar[_ColorScheme_contentColorFor__ColorScheme_Color] + surface_color_at_elevation: _t.ClassVar[_ColorScheme_surfaceColorAtElevation] + @property + def background(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.background (androidx.compose.material3.ColorScheme.background: androidx.compose.ui.graphics.Color)""" + ... + @property + def error(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.error (androidx.compose.material3.ColorScheme.error: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.errorContainer (androidx.compose.material3.ColorScheme.errorContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def inverse_on_surface(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.inverseOnSurface (androidx.compose.material3.ColorScheme.inverseOnSurface: androidx.compose.ui.graphics.Color)""" + ... + @property + def inverse_primary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.inversePrimary (androidx.compose.material3.ColorScheme.inversePrimary: androidx.compose.ui.graphics.Color)""" + ... + @property + def inverse_surface(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.inverseSurface (androidx.compose.material3.ColorScheme.inverseSurface: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_background(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onBackground (androidx.compose.material3.ColorScheme.onBackground: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_error(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onError (androidx.compose.material3.ColorScheme.onError: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_error_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onErrorContainer (androidx.compose.material3.ColorScheme.onErrorContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_primary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onPrimary (androidx.compose.material3.ColorScheme.onPrimary: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_primary_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onPrimaryContainer (androidx.compose.material3.ColorScheme.onPrimaryContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_primary_fixed(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onPrimaryFixed (androidx.compose.material3.ColorScheme.onPrimaryFixed: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_primary_fixed_variant(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onPrimaryFixedVariant (androidx.compose.material3.ColorScheme.onPrimaryFixedVariant: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_secondary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onSecondary (androidx.compose.material3.ColorScheme.onSecondary: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_secondary_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onSecondaryContainer (androidx.compose.material3.ColorScheme.onSecondaryContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_secondary_fixed(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onSecondaryFixed (androidx.compose.material3.ColorScheme.onSecondaryFixed: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_secondary_fixed_variant(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onSecondaryFixedVariant (androidx.compose.material3.ColorScheme.onSecondaryFixedVariant: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_surface(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onSurface (androidx.compose.material3.ColorScheme.onSurface: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_surface_variant(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onSurfaceVariant (androidx.compose.material3.ColorScheme.onSurfaceVariant: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_tertiary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onTertiary (androidx.compose.material3.ColorScheme.onTertiary: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_tertiary_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onTertiaryContainer (androidx.compose.material3.ColorScheme.onTertiaryContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_tertiary_fixed(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onTertiaryFixed (androidx.compose.material3.ColorScheme.onTertiaryFixed: androidx.compose.ui.graphics.Color)""" + ... + @property + def on_tertiary_fixed_variant(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.onTertiaryFixedVariant (androidx.compose.material3.ColorScheme.onTertiaryFixedVariant: androidx.compose.ui.graphics.Color)""" + ... + @property + def outline(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.outline (androidx.compose.material3.ColorScheme.outline: androidx.compose.ui.graphics.Color)""" + ... + @property + def outline_variant(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.outlineVariant (androidx.compose.material3.ColorScheme.outlineVariant: androidx.compose.ui.graphics.Color)""" + ... + @property + def primary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.primary (androidx.compose.material3.ColorScheme.primary: androidx.compose.ui.graphics.Color)""" + ... + @property + def primary_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.primaryContainer (androidx.compose.material3.ColorScheme.primaryContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def primary_fixed(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.primaryFixed (androidx.compose.material3.ColorScheme.primaryFixed: androidx.compose.ui.graphics.Color)""" + ... + @property + def primary_fixed_dim(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.primaryFixedDim (androidx.compose.material3.ColorScheme.primaryFixedDim: androidx.compose.ui.graphics.Color)""" + ... + @property + def scrim(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.scrim (androidx.compose.material3.ColorScheme.scrim: androidx.compose.ui.graphics.Color)""" + ... + @property + def secondary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.secondary (androidx.compose.material3.ColorScheme.secondary: androidx.compose.ui.graphics.Color)""" + ... + @property + def secondary_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.secondaryContainer (androidx.compose.material3.ColorScheme.secondaryContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def secondary_fixed(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.secondaryFixed (androidx.compose.material3.ColorScheme.secondaryFixed: androidx.compose.ui.graphics.Color)""" + ... + @property + def secondary_fixed_dim(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.secondaryFixedDim (androidx.compose.material3.ColorScheme.secondaryFixedDim: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surface (androidx.compose.material3.ColorScheme.surface: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_bright(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceBright (androidx.compose.material3.ColorScheme.surfaceBright: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceContainer (androidx.compose.material3.ColorScheme.surfaceContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_container_high(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceContainerHigh (androidx.compose.material3.ColorScheme.surfaceContainerHigh: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_container_highest(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceContainerHighest (androidx.compose.material3.ColorScheme.surfaceContainerHighest: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_container_low(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceContainerLow (androidx.compose.material3.ColorScheme.surfaceContainerLow: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_container_lowest(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceContainerLowest (androidx.compose.material3.ColorScheme.surfaceContainerLowest: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_dim(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceDim (androidx.compose.material3.ColorScheme.surfaceDim: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_tint(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceTint (androidx.compose.material3.ColorScheme.surfaceTint: androidx.compose.ui.graphics.Color)""" + ... + @property + def surface_variant(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.surfaceVariant (androidx.compose.material3.ColorScheme.surfaceVariant: androidx.compose.ui.graphics.Color)""" + ... + @property + def tertiary(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.tertiary (androidx.compose.material3.ColorScheme.tertiary: androidx.compose.ui.graphics.Color)""" + ... + @property + def tertiary_container(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.tertiaryContainer (androidx.compose.material3.ColorScheme.tertiaryContainer: androidx.compose.ui.graphics.Color)""" + ... + @property + def tertiary_fixed(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.tertiaryFixed (androidx.compose.material3.ColorScheme.tertiaryFixed: androidx.compose.ui.graphics.Color)""" + ... + @property + def tertiary_fixed_dim(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ColorScheme.tertiaryFixedDim (androidx.compose.material3.ColorScheme.tertiaryFixedDim: androidx.compose.ui.graphics.Color)""" + ... + +class DatePickerColors: + """Kotlin: androidx.compose.material3.DatePickerColors""" + def __init__(self, containerColor: _t.Any, titleContentColor: _t.Any, headlineContentColor: _t.Any, weekdayContentColor: _t.Any, subheadContentColor: _t.Any, navigationContentColor: _t.Any, yearContentColor: _t.Any, disabledYearContentColor: _t.Any, currentYearContentColor: _t.Any, selectedYearContentColor: _t.Any, disabledSelectedYearContentColor: _t.Any, selectedYearContainerColor: _t.Any, disabledSelectedYearContainerColor: _t.Any, dayContentColor: _t.Any, disabledDayContentColor: _t.Any, selectedDayContentColor: _t.Any, disabledSelectedDayContentColor: _t.Any, selectedDayContainerColor: _t.Any, disabledSelectedDayContainerColor: _t.Any, todayContentColor: _t.Any, todayDateBorderColor: _t.Any, dayInSelectionRangeContainerColor: _t.Any, dayInSelectionRangeContentColor: _t.Any, dividerColor: _t.Any, dateTextFieldColors: TextFieldColors) -> None: + """Kotlin constructor: androidx.compose.material3.DatePickerColors (androidx.compose.material3.DatePickerColors(containerColor: androidx.compose.ui.graphics.Color, titleContentColor: androidx.compose.ui.graphics.Color, headlineContentColor: androidx.compose.ui.graphics.Color, weekdayContentColor: androidx.compose.ui.graphics.Color, subheadContentColor: androidx.compose.ui.graphics.Color, navigationContentColor: androidx.compose.ui.graphics.Color, yearContentColor: androidx.compose.ui.graphics.Color, disabledYearContentColor: androidx.compose.ui.graphics.Color, currentYearContentColor: androidx.compose.ui.graphics.Color, selectedYearContentColor: androidx.compose.ui.graphics.Color, disabledSelectedYearContentColor: androidx.compose.ui.graphics.Color, selectedYearContainerColor: androidx.compose.ui.graphics.Color, disabledSelectedYearContainerColor: androidx.compose.ui.graphics.Color, dayContentColor: androidx.compose.ui.graphics.Color, disabledDayContentColor: androidx.compose.ui.graphics.Color, selectedDayContentColor: androidx.compose.ui.graphics.Color, disabledSelectedDayContentColor: androidx.compose.ui.graphics.Color, selectedDayContainerColor: androidx.compose.ui.graphics.Color, disabledSelectedDayContainerColor: androidx.compose.ui.graphics.Color, todayContentColor: androidx.compose.ui.graphics.Color, todayDateBorderColor: androidx.compose.ui.graphics.Color, dayInSelectionRangeContainerColor: androidx.compose.ui.graphics.Color, dayInSelectionRangeContentColor: androidx.compose.ui.graphics.Color, dividerColor: androidx.compose.ui.graphics.Color, dateTextFieldColors: androidx.compose.material3.TextFieldColors): androidx.compose.material3.DatePickerColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.containerColor (androidx.compose.material3.DatePickerColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def current_year_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.currentYearContentColor (androidx.compose.material3.DatePickerColors.currentYearContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def date_text_field_colors(self) -> TextFieldColors: + """Kotlin property: androidx.compose.material3.DatePickerColors.dateTextFieldColors (androidx.compose.material3.DatePickerColors.dateTextFieldColors: androidx.compose.material3.TextFieldColors)""" + ... + @property + def day_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.dayContentColor (androidx.compose.material3.DatePickerColors.dayContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def day_in_selection_range_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.dayInSelectionRangeContainerColor (androidx.compose.material3.DatePickerColors.dayInSelectionRangeContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def day_in_selection_range_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.dayInSelectionRangeContentColor (androidx.compose.material3.DatePickerColors.dayInSelectionRangeContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_day_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.disabledDayContentColor (androidx.compose.material3.DatePickerColors.disabledDayContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_selected_day_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.disabledSelectedDayContainerColor (androidx.compose.material3.DatePickerColors.disabledSelectedDayContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_selected_day_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.disabledSelectedDayContentColor (androidx.compose.material3.DatePickerColors.disabledSelectedDayContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_selected_year_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.disabledSelectedYearContainerColor (androidx.compose.material3.DatePickerColors.disabledSelectedYearContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_selected_year_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.disabledSelectedYearContentColor (androidx.compose.material3.DatePickerColors.disabledSelectedYearContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_year_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.disabledYearContentColor (androidx.compose.material3.DatePickerColors.disabledYearContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def divider_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.dividerColor (androidx.compose.material3.DatePickerColors.dividerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def headline_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.headlineContentColor (androidx.compose.material3.DatePickerColors.headlineContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def navigation_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.navigationContentColor (androidx.compose.material3.DatePickerColors.navigationContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_day_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.selectedDayContainerColor (androidx.compose.material3.DatePickerColors.selectedDayContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_day_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.selectedDayContentColor (androidx.compose.material3.DatePickerColors.selectedDayContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_year_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.selectedYearContainerColor (androidx.compose.material3.DatePickerColors.selectedYearContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_year_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.selectedYearContentColor (androidx.compose.material3.DatePickerColors.selectedYearContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def subhead_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.subheadContentColor (androidx.compose.material3.DatePickerColors.subheadContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def title_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.titleContentColor (androidx.compose.material3.DatePickerColors.titleContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def today_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.todayContentColor (androidx.compose.material3.DatePickerColors.todayContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def today_date_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.todayDateBorderColor (androidx.compose.material3.DatePickerColors.todayDateBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def weekday_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.weekdayContentColor (androidx.compose.material3.DatePickerColors.weekdayContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def year_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerColors.yearContentColor (androidx.compose.material3.DatePickerColors.yearContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class DatePickerFormatter: + """Kotlin: androidx.compose.material3.DatePickerFormatter""" + +class DatePickerState: + """Kotlin: androidx.compose.material3.DatePickerState""" + @property + def display_mode(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerState.displayMode (androidx.compose.material3.DatePickerState.displayMode: androidx.compose.material3.DisplayMode)""" + ... + @display_mode.setter + def display_mode(self, value: _t.Any) -> None: + """Kotlin property: androidx.compose.material3.DatePickerState.displayMode=""" + ... + @property + def displayed_month_millis(self) -> int: + """Kotlin property: androidx.compose.material3.DatePickerState.displayedMonthMillis (androidx.compose.material3.DatePickerState.displayedMonthMillis: kotlin.Long)""" + ... + @displayed_month_millis.setter + def displayed_month_millis(self, value: int) -> None: + """Kotlin property: androidx.compose.material3.DatePickerState.displayedMonthMillis=""" + ... + @property + def selectable_dates(self) -> SelectableDates: + """Kotlin property: androidx.compose.material3.DatePickerState.selectableDates (androidx.compose.material3.DatePickerState.selectableDates: androidx.compose.material3.SelectableDates)""" + ... + @property + def year_range(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DatePickerState.yearRange (androidx.compose.material3.DatePickerState.yearRange: kotlin.ranges.IntRange)""" + ... + +class DateRangePickerState: + """Kotlin: androidx.compose.material3.DateRangePickerState""" + @property + def display_mode(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DateRangePickerState.displayMode (androidx.compose.material3.DateRangePickerState.displayMode: androidx.compose.material3.DisplayMode)""" + ... + @display_mode.setter + def display_mode(self, value: _t.Any) -> None: + """Kotlin property: androidx.compose.material3.DateRangePickerState.displayMode=""" + ... + @property + def displayed_month_millis(self) -> int: + """Kotlin property: androidx.compose.material3.DateRangePickerState.displayedMonthMillis (androidx.compose.material3.DateRangePickerState.displayedMonthMillis: kotlin.Long)""" + ... + @displayed_month_millis.setter + def displayed_month_millis(self, value: int) -> None: + """Kotlin property: androidx.compose.material3.DateRangePickerState.displayedMonthMillis=""" + ... + @property + def selectable_dates(self) -> SelectableDates: + """Kotlin property: androidx.compose.material3.DateRangePickerState.selectableDates (androidx.compose.material3.DateRangePickerState.selectableDates: androidx.compose.material3.SelectableDates)""" + ... + @property + def year_range(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DateRangePickerState.yearRange (androidx.compose.material3.DateRangePickerState.yearRange: kotlin.ranges.IntRange)""" + ... + +class DefaultTooltipCaretShape(pythonx.compose.ui.graphics.Shape): + """Kotlin: androidx.compose.material3.DefaultTooltipCaretShape""" + def __init__(self, caretSize: _t.Any = ...) -> None: + """Kotlin constructor: androidx.compose.material3.DefaultTooltipCaretShape (androidx.compose.material3.DefaultTooltipCaretShape(caretSize: androidx.compose.ui.unit.DpSize): androidx.compose.material3.DefaultTooltipCaretShape)""" + ... + @property + def caret_size(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DefaultTooltipCaretShape.caretSize (androidx.compose.material3.DefaultTooltipCaretShape.caretSize: androidx.compose.ui.unit.DpSize)""" + ... + +class DragHandleColors: + """Kotlin: androidx.compose.material3.DragHandleColors""" + def __init__(self, color: _t.Any, pressedColor: _t.Any, draggedColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.DragHandleColors (androidx.compose.material3.DragHandleColors(color: androidx.compose.ui.graphics.Color, pressedColor: androidx.compose.ui.graphics.Color, draggedColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.DragHandleColors)""" + ... + @property + def color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DragHandleColors.color (androidx.compose.material3.DragHandleColors.color: androidx.compose.ui.graphics.Color)""" + ... + @property + def dragged_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DragHandleColors.draggedColor (androidx.compose.material3.DragHandleColors.draggedColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def pressed_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DragHandleColors.pressedColor (androidx.compose.material3.DragHandleColors.pressedColor: androidx.compose.ui.graphics.Color)""" + ... + +class DragHandleShapes: + """Kotlin: androidx.compose.material3.DragHandleShapes""" + def __init__(self, shape: pythonx.compose.ui.graphics.Shape, pressedShape: pythonx.compose.ui.graphics.Shape, draggedShape: pythonx.compose.ui.graphics.Shape) -> None: + """Kotlin constructor: androidx.compose.material3.DragHandleShapes (androidx.compose.material3.DragHandleShapes(shape: androidx.compose.ui.graphics.Shape, pressedShape: androidx.compose.ui.graphics.Shape, draggedShape: androidx.compose.ui.graphics.Shape): androidx.compose.material3.DragHandleShapes)""" + ... + @property + def dragged_shape(self) -> pythonx.compose.ui.graphics.Shape: + """Kotlin property: androidx.compose.material3.DragHandleShapes.draggedShape (androidx.compose.material3.DragHandleShapes.draggedShape: androidx.compose.ui.graphics.Shape)""" + ... + @property + def pressed_shape(self) -> pythonx.compose.ui.graphics.Shape: + """Kotlin property: androidx.compose.material3.DragHandleShapes.pressedShape (androidx.compose.material3.DragHandleShapes.pressedShape: androidx.compose.ui.graphics.Shape)""" + ... + @property + def shape(self) -> pythonx.compose.ui.graphics.Shape: + """Kotlin property: androidx.compose.material3.DragHandleShapes.shape (androidx.compose.material3.DragHandleShapes.shape: androidx.compose.ui.graphics.Shape)""" + ... + +class DragHandleSizes: + """Kotlin: androidx.compose.material3.DragHandleSizes""" + def __init__(self, size: _t.Any, pressedSize: _t.Any, draggedSize: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.DragHandleSizes (androidx.compose.material3.DragHandleSizes(size: androidx.compose.ui.unit.DpSize, pressedSize: androidx.compose.ui.unit.DpSize, draggedSize: androidx.compose.ui.unit.DpSize): androidx.compose.material3.DragHandleSizes)""" + ... + @property + def dragged_size(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DragHandleSizes.draggedSize (androidx.compose.material3.DragHandleSizes.draggedSize: androidx.compose.ui.unit.DpSize)""" + ... + @property + def pressed_size(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DragHandleSizes.pressedSize (androidx.compose.material3.DragHandleSizes.pressedSize: androidx.compose.ui.unit.DpSize)""" + ... + @property + def size(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.DragHandleSizes.size (androidx.compose.material3.DragHandleSizes.size: androidx.compose.ui.unit.DpSize)""" + ... + +class DrawerState: + """Kotlin: androidx.compose.material3.DrawerState""" + def __init__(self, initialValue: DrawerValue, confirmStateChange: _t.Callable[[DrawerValue], bool] = ...) -> None: + """Kotlin constructor: androidx.compose.material3.DrawerState (androidx.compose.material3.DrawerState(initialValue: androidx.compose.material3.DrawerValue, confirmStateChange: kotlin.Function1): androidx.compose.material3.DrawerState)""" + ... + @property + def current_offset(self) -> float: + """Kotlin property: androidx.compose.material3.DrawerState.currentOffset (androidx.compose.material3.DrawerState.currentOffset: kotlin.Float)""" + ... + @property + def current_value(self) -> DrawerValue: + """Kotlin property: androidx.compose.material3.DrawerState.currentValue (androidx.compose.material3.DrawerState.currentValue: androidx.compose.material3.DrawerValue)""" + ... + @property + def is_animation_running(self) -> bool: + """Kotlin property: androidx.compose.material3.DrawerState.isAnimationRunning (androidx.compose.material3.DrawerState.isAnimationRunning: kotlin.Boolean)""" + ... + @property + def is_closed(self) -> bool: + """Kotlin property: androidx.compose.material3.DrawerState.isClosed (androidx.compose.material3.DrawerState.isClosed: kotlin.Boolean)""" + ... + @property + def is_open(self) -> bool: + """Kotlin property: androidx.compose.material3.DrawerState.isOpen (androidx.compose.material3.DrawerState.isOpen: kotlin.Boolean)""" + ... + @property + def target_value(self) -> DrawerValue: + """Kotlin property: androidx.compose.material3.DrawerState.targetValue (androidx.compose.material3.DrawerState.targetValue: androidx.compose.material3.DrawerValue)""" + ... + +class DrawerValue: + """Kotlin: androidx.compose.material3.DrawerValue""" + +class ExposedDropdownMenuBoxScope: + """Kotlin: androidx.compose.material3.ExposedDropdownMenuBoxScope""" + +class FloatingActionButtonElevation: + """Kotlin: androidx.compose.material3.FloatingActionButtonElevation""" + +class IconButtonColors: + """Kotlin: androidx.compose.material3.IconButtonColors""" + def __init__(self, containerColor: _t.Any, contentColor: _t.Any, disabledContainerColor: _t.Any, disabledContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.IconButtonColors (androidx.compose.material3.IconButtonColors(containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, disabledContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.IconButtonColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconButtonColors.containerColor (androidx.compose.material3.IconButtonColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconButtonColors.contentColor (androidx.compose.material3.IconButtonColors.contentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconButtonColors.disabledContainerColor (androidx.compose.material3.IconButtonColors.disabledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconButtonColors.disabledContentColor (androidx.compose.material3.IconButtonColors.disabledContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class IconToggleButtonColors: + """Kotlin: androidx.compose.material3.IconToggleButtonColors""" + def __init__(self, containerColor: _t.Any, contentColor: _t.Any, disabledContainerColor: _t.Any, disabledContentColor: _t.Any, checkedContainerColor: _t.Any, checkedContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.IconToggleButtonColors (androidx.compose.material3.IconToggleButtonColors(containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, disabledContentColor: androidx.compose.ui.graphics.Color, checkedContainerColor: androidx.compose.ui.graphics.Color, checkedContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.IconToggleButtonColors)""" + ... + @property + def checked_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconToggleButtonColors.checkedContainerColor (androidx.compose.material3.IconToggleButtonColors.checkedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def checked_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconToggleButtonColors.checkedContentColor (androidx.compose.material3.IconToggleButtonColors.checkedContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconToggleButtonColors.containerColor (androidx.compose.material3.IconToggleButtonColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconToggleButtonColors.contentColor (androidx.compose.material3.IconToggleButtonColors.contentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconToggleButtonColors.disabledContainerColor (androidx.compose.material3.IconToggleButtonColors.disabledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.IconToggleButtonColors.disabledContentColor (androidx.compose.material3.IconToggleButtonColors.disabledContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class ListItemColors: + """Kotlin: androidx.compose.material3.ListItemColors""" + def __init__(self, containerColor: _t.Any, headlineColor: _t.Any, leadingIconColor: _t.Any, overlineColor: _t.Any, supportingTextColor: _t.Any, trailingIconColor: _t.Any, disabledHeadlineColor: _t.Any, disabledLeadingIconColor: _t.Any, disabledTrailingIconColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.ListItemColors (androidx.compose.material3.ListItemColors(containerColor: androidx.compose.ui.graphics.Color, headlineColor: androidx.compose.ui.graphics.Color, leadingIconColor: androidx.compose.ui.graphics.Color, overlineColor: androidx.compose.ui.graphics.Color, supportingTextColor: androidx.compose.ui.graphics.Color, trailingIconColor: androidx.compose.ui.graphics.Color, disabledHeadlineColor: androidx.compose.ui.graphics.Color, disabledLeadingIconColor: androidx.compose.ui.graphics.Color, disabledTrailingIconColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.ListItemColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.containerColor (androidx.compose.material3.ListItemColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_headline_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.disabledHeadlineColor (androidx.compose.material3.ListItemColors.disabledHeadlineColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.disabledLeadingIconColor (androidx.compose.material3.ListItemColors.disabledLeadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.disabledTrailingIconColor (androidx.compose.material3.ListItemColors.disabledTrailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def headline_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.headlineColor (androidx.compose.material3.ListItemColors.headlineColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.leadingIconColor (androidx.compose.material3.ListItemColors.leadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def overline_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.overlineColor (androidx.compose.material3.ListItemColors.overlineColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def supporting_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.supportingTextColor (androidx.compose.material3.ListItemColors.supportingTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.ListItemColors.trailingIconColor (androidx.compose.material3.ListItemColors.trailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + +class MenuItemColors: + """Kotlin: androidx.compose.material3.MenuItemColors""" + def __init__(self, textColor: _t.Any, leadingIconColor: _t.Any, trailingIconColor: _t.Any, disabledTextColor: _t.Any, disabledLeadingIconColor: _t.Any, disabledTrailingIconColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.MenuItemColors (androidx.compose.material3.MenuItemColors(textColor: androidx.compose.ui.graphics.Color, leadingIconColor: androidx.compose.ui.graphics.Color, trailingIconColor: androidx.compose.ui.graphics.Color, disabledTextColor: androidx.compose.ui.graphics.Color, disabledLeadingIconColor: androidx.compose.ui.graphics.Color, disabledTrailingIconColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.MenuItemColors)""" + ... + @property + def disabled_leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.MenuItemColors.disabledLeadingIconColor (androidx.compose.material3.MenuItemColors.disabledLeadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.MenuItemColors.disabledTextColor (androidx.compose.material3.MenuItemColors.disabledTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.MenuItemColors.disabledTrailingIconColor (androidx.compose.material3.MenuItemColors.disabledTrailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.MenuItemColors.leadingIconColor (androidx.compose.material3.MenuItemColors.leadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.MenuItemColors.textColor (androidx.compose.material3.MenuItemColors.textColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.MenuItemColors.trailingIconColor (androidx.compose.material3.MenuItemColors.trailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + +class ModalBottomSheetProperties: + """Kotlin: androidx.compose.material3.ModalBottomSheetProperties""" + def __init__(self, shouldDismissOnBackPress: bool = ..., shouldDismissOnClickOutside: bool = ...) -> None: + """Kotlin constructor: androidx.compose.material3.ModalBottomSheetProperties (androidx.compose.material3.ModalBottomSheetProperties(shouldDismissOnBackPress: kotlin.Boolean, shouldDismissOnClickOutside: kotlin.Boolean): androidx.compose.material3.ModalBottomSheetProperties)""" + ... + @property + def should_dismiss_on_back_press(self) -> bool: + """Kotlin property: androidx.compose.material3.ModalBottomSheetProperties.shouldDismissOnBackPress (androidx.compose.material3.ModalBottomSheetProperties.shouldDismissOnBackPress: kotlin.Boolean)""" + ... + @property + def should_dismiss_on_click_outside(self) -> bool: + """Kotlin property: androidx.compose.material3.ModalBottomSheetProperties.shouldDismissOnClickOutside (androidx.compose.material3.ModalBottomSheetProperties.shouldDismissOnClickOutside: kotlin.Boolean)""" + ... + +class ModalWideNavigationRailProperties: + """Kotlin: androidx.compose.material3.ModalWideNavigationRailProperties""" + def __init__(self, shouldDismissOnBackPress: bool = ...) -> None: + """Kotlin constructor: androidx.compose.material3.ModalWideNavigationRailProperties (androidx.compose.material3.ModalWideNavigationRailProperties(shouldDismissOnBackPress: kotlin.Boolean): androidx.compose.material3.ModalWideNavigationRailProperties)""" + ... + @property + def should_dismiss_on_back_press(self) -> bool: + """Kotlin property: androidx.compose.material3.ModalWideNavigationRailProperties.shouldDismissOnBackPress (androidx.compose.material3.ModalWideNavigationRailProperties.shouldDismissOnBackPress: kotlin.Boolean)""" + ... + +class MultiChoiceSegmentedButtonRowScope: + """Kotlin: androidx.compose.material3.MultiChoiceSegmentedButtonRowScope""" + SegmentedButton: _t.ClassVar[_MultiChoiceSegmentedButtonRowScope_SegmentedButton] + SegmentedButton__MultiChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit: _t.ClassVar[_MultiChoiceSegmentedButtonRowScope_SegmentedButton__MultiChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit] + +class NavigationBarItemColors: + """Kotlin: androidx.compose.material3.NavigationBarItemColors""" + def __init__(self, selectedIconColor: _t.Any, selectedTextColor: _t.Any, selectedIndicatorColor: _t.Any, unselectedIconColor: _t.Any, unselectedTextColor: _t.Any, disabledIconColor: _t.Any, disabledTextColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.NavigationBarItemColors (androidx.compose.material3.NavigationBarItemColors(selectedIconColor: androidx.compose.ui.graphics.Color, selectedTextColor: androidx.compose.ui.graphics.Color, selectedIndicatorColor: androidx.compose.ui.graphics.Color, unselectedIconColor: androidx.compose.ui.graphics.Color, unselectedTextColor: androidx.compose.ui.graphics.Color, disabledIconColor: androidx.compose.ui.graphics.Color, disabledTextColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.NavigationBarItemColors)""" + ... + @property + def disabled_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.disabledIconColor (androidx.compose.material3.NavigationBarItemColors.disabledIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.disabledTextColor (androidx.compose.material3.NavigationBarItemColors.disabledTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.selectedIconColor (androidx.compose.material3.NavigationBarItemColors.selectedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.selectedIndicatorColor (androidx.compose.material3.NavigationBarItemColors.selectedIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.selectedTextColor (androidx.compose.material3.NavigationBarItemColors.selectedTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.unselectedIconColor (androidx.compose.material3.NavigationBarItemColors.unselectedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationBarItemColors.unselectedTextColor (androidx.compose.material3.NavigationBarItemColors.unselectedTextColor: androidx.compose.ui.graphics.Color)""" + ... + +class NavigationDrawerItemColors: + """Kotlin: androidx.compose.material3.NavigationDrawerItemColors""" + +class NavigationItemColors: + """Kotlin: androidx.compose.material3.NavigationItemColors""" + def __init__(self, selectedIconColor: _t.Any, selectedTextColor: _t.Any, selectedIndicatorColor: _t.Any, unselectedIconColor: _t.Any, unselectedTextColor: _t.Any, disabledIconColor: _t.Any, disabledTextColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.NavigationItemColors (androidx.compose.material3.NavigationItemColors(selectedIconColor: androidx.compose.ui.graphics.Color, selectedTextColor: androidx.compose.ui.graphics.Color, selectedIndicatorColor: androidx.compose.ui.graphics.Color, unselectedIconColor: androidx.compose.ui.graphics.Color, unselectedTextColor: androidx.compose.ui.graphics.Color, disabledIconColor: androidx.compose.ui.graphics.Color, disabledTextColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.NavigationItemColors)""" + ... + @property + def disabled_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.disabledIconColor (androidx.compose.material3.NavigationItemColors.disabledIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.disabledTextColor (androidx.compose.material3.NavigationItemColors.disabledTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.selectedIconColor (androidx.compose.material3.NavigationItemColors.selectedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.selectedIndicatorColor (androidx.compose.material3.NavigationItemColors.selectedIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.selectedTextColor (androidx.compose.material3.NavigationItemColors.selectedTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.unselectedIconColor (androidx.compose.material3.NavigationItemColors.unselectedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationItemColors.unselectedTextColor (androidx.compose.material3.NavigationItemColors.unselectedTextColor: androidx.compose.ui.graphics.Color)""" + ... + +class NavigationRailItemColors: + """Kotlin: androidx.compose.material3.NavigationRailItemColors""" + def __init__(self, selectedIconColor: _t.Any, selectedTextColor: _t.Any, selectedIndicatorColor: _t.Any, unselectedIconColor: _t.Any, unselectedTextColor: _t.Any, disabledIconColor: _t.Any, disabledTextColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.NavigationRailItemColors (androidx.compose.material3.NavigationRailItemColors(selectedIconColor: androidx.compose.ui.graphics.Color, selectedTextColor: androidx.compose.ui.graphics.Color, selectedIndicatorColor: androidx.compose.ui.graphics.Color, unselectedIconColor: androidx.compose.ui.graphics.Color, unselectedTextColor: androidx.compose.ui.graphics.Color, disabledIconColor: androidx.compose.ui.graphics.Color, disabledTextColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.NavigationRailItemColors)""" + ... + @property + def disabled_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.disabledIconColor (androidx.compose.material3.NavigationRailItemColors.disabledIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.disabledTextColor (androidx.compose.material3.NavigationRailItemColors.disabledTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.selectedIconColor (androidx.compose.material3.NavigationRailItemColors.selectedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.selectedIndicatorColor (androidx.compose.material3.NavigationRailItemColors.selectedIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.selectedTextColor (androidx.compose.material3.NavigationRailItemColors.selectedTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.unselectedIconColor (androidx.compose.material3.NavigationRailItemColors.unselectedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.NavigationRailItemColors.unselectedTextColor (androidx.compose.material3.NavigationRailItemColors.unselectedTextColor: androidx.compose.ui.graphics.Color)""" + ... + +class RadioButtonColors: + """Kotlin: androidx.compose.material3.RadioButtonColors""" + def __init__(self, selectedColor: _t.Any, unselectedColor: _t.Any, disabledSelectedColor: _t.Any, disabledUnselectedColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.RadioButtonColors (androidx.compose.material3.RadioButtonColors(selectedColor: androidx.compose.ui.graphics.Color, unselectedColor: androidx.compose.ui.graphics.Color, disabledSelectedColor: androidx.compose.ui.graphics.Color, disabledUnselectedColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.RadioButtonColors)""" + ... + @property + def disabled_selected_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RadioButtonColors.disabledSelectedColor (androidx.compose.material3.RadioButtonColors.disabledSelectedColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unselected_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RadioButtonColors.disabledUnselectedColor (androidx.compose.material3.RadioButtonColors.disabledUnselectedColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selected_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RadioButtonColors.selectedColor (androidx.compose.material3.RadioButtonColors.selectedColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unselected_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RadioButtonColors.unselectedColor (androidx.compose.material3.RadioButtonColors.unselectedColor: androidx.compose.ui.graphics.Color)""" + ... + +class RangeSliderState: + """Kotlin: androidx.compose.material3.RangeSliderState""" + @property + def active_range_end(self) -> float: + """Kotlin property: androidx.compose.material3.RangeSliderState.activeRangeEnd (androidx.compose.material3.RangeSliderState.activeRangeEnd: kotlin.Float)""" + ... + @active_range_end.setter + def active_range_end(self, value: float) -> None: + """Kotlin property: androidx.compose.material3.RangeSliderState.activeRangeEnd=""" + ... + @property + def active_range_start(self) -> float: + """Kotlin property: androidx.compose.material3.RangeSliderState.activeRangeStart (androidx.compose.material3.RangeSliderState.activeRangeStart: kotlin.Float)""" + ... + @active_range_start.setter + def active_range_start(self, value: float) -> None: + """Kotlin property: androidx.compose.material3.RangeSliderState.activeRangeStart=""" + ... + @property + def steps(self) -> int: + """Kotlin property: androidx.compose.material3.RangeSliderState.steps (androidx.compose.material3.RangeSliderState.steps: kotlin.Int)""" + ... + +class RichTooltipColors: + """Kotlin: androidx.compose.material3.RichTooltipColors""" + def __init__(self, containerColor: _t.Any, contentColor: _t.Any, titleContentColor: _t.Any, actionContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.RichTooltipColors (androidx.compose.material3.RichTooltipColors(containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, titleContentColor: androidx.compose.ui.graphics.Color, actionContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.RichTooltipColors)""" + ... + @property + def action_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RichTooltipColors.actionContentColor (androidx.compose.material3.RichTooltipColors.actionContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RichTooltipColors.containerColor (androidx.compose.material3.RichTooltipColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RichTooltipColors.contentColor (androidx.compose.material3.RichTooltipColors.contentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def title_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RichTooltipColors.titleContentColor (androidx.compose.material3.RichTooltipColors.titleContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class RippleConfiguration: + """Kotlin: androidx.compose.material3.RippleConfiguration""" + def __init__(self, color: _t.Any = ..., rippleAlpha: _t.Any | None = ...) -> None: + """Kotlin constructor: androidx.compose.material3.RippleConfiguration (androidx.compose.material3.RippleConfiguration(color: androidx.compose.ui.graphics.Color, rippleAlpha: androidx.compose.material.ripple.RippleAlpha?): androidx.compose.material3.RippleConfiguration)""" + ... + @property + def color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.RippleConfiguration.color (androidx.compose.material3.RippleConfiguration.color: androidx.compose.ui.graphics.Color)""" + ... + @property + def ripple_alpha(self) -> _t.Any | None: + """Kotlin property: androidx.compose.material3.RippleConfiguration.rippleAlpha (androidx.compose.material3.RippleConfiguration.rippleAlpha: androidx.compose.material.ripple.RippleAlpha?)""" + ... + +class SearchBarColors: + """Kotlin: androidx.compose.material3.SearchBarColors""" + @_t.overload + def __init__(self, containerColor: _t.Any, dividerColor: _t.Any) -> None: ... + @_t.overload + def __init__(self, containerColor: _t.Any, dividerColor: _t.Any, inputFieldColors: TextFieldColors) -> None: ... # type: ignore[overload-cannot-match] + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SearchBarColors.containerColor (androidx.compose.material3.SearchBarColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def divider_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SearchBarColors.dividerColor (androidx.compose.material3.SearchBarColors.dividerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def input_field_colors(self) -> TextFieldColors: + """Kotlin property: androidx.compose.material3.SearchBarColors.inputFieldColors (androidx.compose.material3.SearchBarColors.inputFieldColors: androidx.compose.material3.TextFieldColors)""" + ... + +class SearchBarScrollBehavior: + """Kotlin: androidx.compose.material3.SearchBarScrollBehavior""" + @property + def nested_scroll_connection(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SearchBarScrollBehavior.nestedScrollConnection (androidx.compose.material3.SearchBarScrollBehavior.nestedScrollConnection: androidx.compose.ui.input.nestedscroll.NestedScrollConnection)""" + ... + @property + def scroll_offset(self) -> float: + """Kotlin property: androidx.compose.material3.SearchBarScrollBehavior.scrollOffset (androidx.compose.material3.SearchBarScrollBehavior.scrollOffset: kotlin.Float)""" + ... + @scroll_offset.setter + def scroll_offset(self, value: float) -> None: + """Kotlin property: androidx.compose.material3.SearchBarScrollBehavior.scrollOffset=""" + ... + @property + def scroll_offset_limit(self) -> float: + """Kotlin property: androidx.compose.material3.SearchBarScrollBehavior.scrollOffsetLimit (androidx.compose.material3.SearchBarScrollBehavior.scrollOffsetLimit: kotlin.Float)""" + ... + @scroll_offset_limit.setter + def scroll_offset_limit(self, value: float) -> None: + """Kotlin property: androidx.compose.material3.SearchBarScrollBehavior.scrollOffsetLimit=""" + ... + +class SearchBarState: + """Kotlin: androidx.compose.material3.SearchBarState""" + @property + def collapsed_coords(self) -> _t.Any | None: + """Kotlin property: androidx.compose.material3.SearchBarState.collapsedCoords (androidx.compose.material3.SearchBarState.collapsedCoords: androidx.compose.ui.layout.LayoutCoordinates?)""" + ... + @collapsed_coords.setter + def collapsed_coords(self, value: _t.Any | None) -> None: + """Kotlin property: androidx.compose.material3.SearchBarState.collapsedCoords=""" + ... + @property + def current_value(self) -> SearchBarValue: + """Kotlin property: androidx.compose.material3.SearchBarState.currentValue (androidx.compose.material3.SearchBarState.currentValue: androidx.compose.material3.SearchBarValue)""" + ... + @property + def is_animating(self) -> bool: + """Kotlin property: androidx.compose.material3.SearchBarState.isAnimating (androidx.compose.material3.SearchBarState.isAnimating: kotlin.Boolean)""" + ... + @property + def progress(self) -> float: + """Kotlin property: androidx.compose.material3.SearchBarState.progress (androidx.compose.material3.SearchBarState.progress: kotlin.Float)""" + ... + @property + def target_value(self) -> SearchBarValue: + """Kotlin property: androidx.compose.material3.SearchBarState.targetValue (androidx.compose.material3.SearchBarState.targetValue: androidx.compose.material3.SearchBarValue)""" + ... + +class SearchBarValue: + """Kotlin: androidx.compose.material3.SearchBarValue""" + +class SegmentedButtonColors: + """Kotlin: androidx.compose.material3.SegmentedButtonColors""" + def __init__(self, activeContainerColor: _t.Any, activeContentColor: _t.Any, activeBorderColor: _t.Any, inactiveContainerColor: _t.Any, inactiveContentColor: _t.Any, inactiveBorderColor: _t.Any, disabledActiveContainerColor: _t.Any, disabledActiveContentColor: _t.Any, disabledActiveBorderColor: _t.Any, disabledInactiveContainerColor: _t.Any, disabledInactiveContentColor: _t.Any, disabledInactiveBorderColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.SegmentedButtonColors (androidx.compose.material3.SegmentedButtonColors(activeContainerColor: androidx.compose.ui.graphics.Color, activeContentColor: androidx.compose.ui.graphics.Color, activeBorderColor: androidx.compose.ui.graphics.Color, inactiveContainerColor: androidx.compose.ui.graphics.Color, inactiveContentColor: androidx.compose.ui.graphics.Color, inactiveBorderColor: androidx.compose.ui.graphics.Color, disabledActiveContainerColor: androidx.compose.ui.graphics.Color, disabledActiveContentColor: androidx.compose.ui.graphics.Color, disabledActiveBorderColor: androidx.compose.ui.graphics.Color, disabledInactiveContainerColor: androidx.compose.ui.graphics.Color, disabledInactiveContentColor: androidx.compose.ui.graphics.Color, disabledInactiveBorderColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.SegmentedButtonColors)""" + ... + @property + def active_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.activeBorderColor (androidx.compose.material3.SegmentedButtonColors.activeBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def active_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.activeContainerColor (androidx.compose.material3.SegmentedButtonColors.activeContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def active_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.activeContentColor (androidx.compose.material3.SegmentedButtonColors.activeContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_active_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.disabledActiveBorderColor (androidx.compose.material3.SegmentedButtonColors.disabledActiveBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_active_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.disabledActiveContainerColor (androidx.compose.material3.SegmentedButtonColors.disabledActiveContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_active_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.disabledActiveContentColor (androidx.compose.material3.SegmentedButtonColors.disabledActiveContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_inactive_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.disabledInactiveBorderColor (androidx.compose.material3.SegmentedButtonColors.disabledInactiveBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_inactive_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.disabledInactiveContainerColor (androidx.compose.material3.SegmentedButtonColors.disabledInactiveContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_inactive_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.disabledInactiveContentColor (androidx.compose.material3.SegmentedButtonColors.disabledInactiveContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def inactive_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.inactiveBorderColor (androidx.compose.material3.SegmentedButtonColors.inactiveBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def inactive_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.inactiveContainerColor (androidx.compose.material3.SegmentedButtonColors.inactiveContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def inactive_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SegmentedButtonColors.inactiveContentColor (androidx.compose.material3.SegmentedButtonColors.inactiveContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class SelectableChipColors: + """Kotlin: androidx.compose.material3.SelectableChipColors""" + def __init__(self, containerColor: _t.Any, labelColor: _t.Any, leadingIconColor: _t.Any, trailingIconColor: _t.Any, disabledContainerColor: _t.Any, disabledLabelColor: _t.Any, disabledLeadingIconColor: _t.Any, disabledTrailingIconColor: _t.Any, selectedContainerColor: _t.Any, disabledSelectedContainerColor: _t.Any, selectedLabelColor: _t.Any, selectedLeadingIconColor: _t.Any, selectedTrailingIconColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.SelectableChipColors (androidx.compose.material3.SelectableChipColors(containerColor: androidx.compose.ui.graphics.Color, labelColor: androidx.compose.ui.graphics.Color, leadingIconColor: androidx.compose.ui.graphics.Color, trailingIconColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, disabledLabelColor: androidx.compose.ui.graphics.Color, disabledLeadingIconColor: androidx.compose.ui.graphics.Color, disabledTrailingIconColor: androidx.compose.ui.graphics.Color, selectedContainerColor: androidx.compose.ui.graphics.Color, disabledSelectedContainerColor: androidx.compose.ui.graphics.Color, selectedLabelColor: androidx.compose.ui.graphics.Color, selectedLeadingIconColor: androidx.compose.ui.graphics.Color, selectedTrailingIconColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.SelectableChipColors)""" + ... + +class SelectableChipElevation: + """Kotlin: androidx.compose.material3.SelectableChipElevation""" + def __init__(self, elevation: float, pressedElevation: float, focusedElevation: float, hoveredElevation: float, draggedElevation: float, disabledElevation: float) -> None: + """Kotlin constructor: androidx.compose.material3.SelectableChipElevation (androidx.compose.material3.SelectableChipElevation(elevation: androidx.compose.ui.unit.Dp, pressedElevation: androidx.compose.ui.unit.Dp, focusedElevation: androidx.compose.ui.unit.Dp, hoveredElevation: androidx.compose.ui.unit.Dp, draggedElevation: androidx.compose.ui.unit.Dp, disabledElevation: androidx.compose.ui.unit.Dp): androidx.compose.material3.SelectableChipElevation)""" + ... + @property + def disabled_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.SelectableChipElevation.disabledElevation (androidx.compose.material3.SelectableChipElevation.disabledElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def dragged_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.SelectableChipElevation.draggedElevation (androidx.compose.material3.SelectableChipElevation.draggedElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def elevation(self) -> float: + """Kotlin property: androidx.compose.material3.SelectableChipElevation.elevation (androidx.compose.material3.SelectableChipElevation.elevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def focused_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.SelectableChipElevation.focusedElevation (androidx.compose.material3.SelectableChipElevation.focusedElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def hovered_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.SelectableChipElevation.hoveredElevation (androidx.compose.material3.SelectableChipElevation.hoveredElevation: androidx.compose.ui.unit.Dp)""" + ... + @property + def pressed_elevation(self) -> float: + """Kotlin property: androidx.compose.material3.SelectableChipElevation.pressedElevation (androidx.compose.material3.SelectableChipElevation.pressedElevation: androidx.compose.ui.unit.Dp)""" + ... + +class SelectableDates: + """Kotlin: androidx.compose.material3.SelectableDates""" + +class Shapes: + """Kotlin: androidx.compose.material3.Shapes""" + def __init__(self, extraSmall: _t.Any = ..., small: _t.Any = ..., medium: _t.Any = ..., large: _t.Any = ..., extraLarge: _t.Any = ...) -> None: + """Kotlin constructor: androidx.compose.material3.Shapes (androidx.compose.material3.Shapes(extraSmall: androidx.compose.foundation.shape.CornerBasedShape, small: androidx.compose.foundation.shape.CornerBasedShape, medium: androidx.compose.foundation.shape.CornerBasedShape, large: androidx.compose.foundation.shape.CornerBasedShape, extraLarge: androidx.compose.foundation.shape.CornerBasedShape): androidx.compose.material3.Shapes)""" + ... + @property + def extra_large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Shapes.extraLarge (androidx.compose.material3.Shapes.extraLarge: androidx.compose.foundation.shape.CornerBasedShape)""" + ... + @property + def extra_small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Shapes.extraSmall (androidx.compose.material3.Shapes.extraSmall: androidx.compose.foundation.shape.CornerBasedShape)""" + ... + @property + def large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Shapes.large (androidx.compose.material3.Shapes.large: androidx.compose.foundation.shape.CornerBasedShape)""" + ... + @property + def medium(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Shapes.medium (androidx.compose.material3.Shapes.medium: androidx.compose.foundation.shape.CornerBasedShape)""" + ... + @property + def small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Shapes.small (androidx.compose.material3.Shapes.small: androidx.compose.foundation.shape.CornerBasedShape)""" + ... + +class SheetState: + """Kotlin: androidx.compose.material3.SheetState""" + def __init__(self, skipPartiallyExpanded: bool, positionalThreshold: _t.Callable[[], float], velocityThreshold: _t.Callable[[], float], initialValue: SheetValue = ..., confirmValueChange: _t.Callable[[SheetValue], bool] = ..., skipHiddenState: bool = ...) -> None: + """Kotlin constructor: androidx.compose.material3.SheetState (androidx.compose.material3.SheetState(skipPartiallyExpanded: kotlin.Boolean, positionalThreshold: kotlin.Function0, velocityThreshold: kotlin.Function0, initialValue: androidx.compose.material3.SheetValue, confirmValueChange: kotlin.Function1, skipHiddenState: kotlin.Boolean): androidx.compose.material3.SheetState)""" + ... + @property + def current_value(self) -> SheetValue: + """Kotlin property: androidx.compose.material3.SheetState.currentValue (androidx.compose.material3.SheetState.currentValue: androidx.compose.material3.SheetValue)""" + ... + @property + def has_expanded_state(self) -> bool: + """Kotlin property: androidx.compose.material3.SheetState.hasExpandedState (androidx.compose.material3.SheetState.hasExpandedState: kotlin.Boolean)""" + ... + @property + def has_partially_expanded_state(self) -> bool: + """Kotlin property: androidx.compose.material3.SheetState.hasPartiallyExpandedState (androidx.compose.material3.SheetState.hasPartiallyExpandedState: kotlin.Boolean)""" + ... + @property + def is_animation_running(self) -> bool: + """Kotlin property: androidx.compose.material3.SheetState.isAnimationRunning (androidx.compose.material3.SheetState.isAnimationRunning: kotlin.Boolean)""" + ... + @property + def is_visible(self) -> bool: + """Kotlin property: androidx.compose.material3.SheetState.isVisible (androidx.compose.material3.SheetState.isVisible: kotlin.Boolean)""" + ... + @property + def target_value(self) -> SheetValue: + """Kotlin property: androidx.compose.material3.SheetState.targetValue (androidx.compose.material3.SheetState.targetValue: androidx.compose.material3.SheetValue)""" + ... + +class SheetValue: + """Kotlin: androidx.compose.material3.SheetValue""" + +class SingleChoiceSegmentedButtonRowScope: + """Kotlin: androidx.compose.material3.SingleChoiceSegmentedButtonRowScope""" + SegmentedButton: _t.ClassVar[_SingleChoiceSegmentedButtonRowScope_SegmentedButton] + SegmentedButton__SingleChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit: _t.ClassVar[_SingleChoiceSegmentedButtonRowScope_SegmentedButton__SingleChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit] + +class SliderColors: + """Kotlin: androidx.compose.material3.SliderColors""" + def __init__(self, thumbColor: _t.Any, activeTrackColor: _t.Any, activeTickColor: _t.Any, inactiveTrackColor: _t.Any, inactiveTickColor: _t.Any, disabledThumbColor: _t.Any, disabledActiveTrackColor: _t.Any, disabledActiveTickColor: _t.Any, disabledInactiveTrackColor: _t.Any, disabledInactiveTickColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.SliderColors (androidx.compose.material3.SliderColors(thumbColor: androidx.compose.ui.graphics.Color, activeTrackColor: androidx.compose.ui.graphics.Color, activeTickColor: androidx.compose.ui.graphics.Color, inactiveTrackColor: androidx.compose.ui.graphics.Color, inactiveTickColor: androidx.compose.ui.graphics.Color, disabledThumbColor: androidx.compose.ui.graphics.Color, disabledActiveTrackColor: androidx.compose.ui.graphics.Color, disabledActiveTickColor: androidx.compose.ui.graphics.Color, disabledInactiveTrackColor: androidx.compose.ui.graphics.Color, disabledInactiveTickColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.SliderColors)""" + ... + @property + def active_tick_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.activeTickColor (androidx.compose.material3.SliderColors.activeTickColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def active_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.activeTrackColor (androidx.compose.material3.SliderColors.activeTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_active_tick_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.disabledActiveTickColor (androidx.compose.material3.SliderColors.disabledActiveTickColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_active_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.disabledActiveTrackColor (androidx.compose.material3.SliderColors.disabledActiveTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_inactive_tick_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.disabledInactiveTickColor (androidx.compose.material3.SliderColors.disabledInactiveTickColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_inactive_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.disabledInactiveTrackColor (androidx.compose.material3.SliderColors.disabledInactiveTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_thumb_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.disabledThumbColor (androidx.compose.material3.SliderColors.disabledThumbColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def inactive_tick_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.inactiveTickColor (androidx.compose.material3.SliderColors.inactiveTickColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def inactive_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.inactiveTrackColor (androidx.compose.material3.SliderColors.inactiveTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def thumb_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SliderColors.thumbColor (androidx.compose.material3.SliderColors.thumbColor: androidx.compose.ui.graphics.Color)""" + ... + +class SliderState(_t.Any): + """Kotlin: androidx.compose.material3.SliderState""" + @property + def coerced_value_as_fraction(self) -> float: + """Kotlin property: androidx.compose.material3.SliderState.coercedValueAsFraction (androidx.compose.material3.SliderState.coercedValueAsFraction: kotlin.Float)""" + ... + @property + def is_dragging(self) -> bool: + """Kotlin property: androidx.compose.material3.SliderState.isDragging (androidx.compose.material3.SliderState.isDragging: kotlin.Boolean)""" + ... + @property + def should_auto_snap(self) -> bool: + """Kotlin property: androidx.compose.material3.SliderState.shouldAutoSnap (androidx.compose.material3.SliderState.shouldAutoSnap: kotlin.Boolean)""" + ... + @should_auto_snap.setter + def should_auto_snap(self, value: bool) -> None: + """Kotlin property: androidx.compose.material3.SliderState.shouldAutoSnap=""" + ... + @property + def steps(self) -> int: + """Kotlin property: androidx.compose.material3.SliderState.steps (androidx.compose.material3.SliderState.steps: kotlin.Int)""" + ... + @property + def value(self) -> float: + """Kotlin property: androidx.compose.material3.SliderState.value (androidx.compose.material3.SliderState.value: kotlin.Float)""" + ... + @value.setter + def value(self, value: float) -> None: + """Kotlin property: androidx.compose.material3.SliderState.value=""" + ... + +class SnackbarData: + """Kotlin: androidx.compose.material3.SnackbarData""" + @property + def visuals(self) -> SnackbarVisuals: + """Kotlin property: androidx.compose.material3.SnackbarData.visuals (androidx.compose.material3.SnackbarData.visuals: androidx.compose.material3.SnackbarVisuals)""" + ... + +class SnackbarDuration: + """Kotlin: androidx.compose.material3.SnackbarDuration""" + +class SnackbarHostState: + """Kotlin: androidx.compose.material3.SnackbarHostState""" + def __init__(self) -> None: + """Kotlin constructor: androidx.compose.material3.SnackbarHostState (androidx.compose.material3.SnackbarHostState(): androidx.compose.material3.SnackbarHostState)""" + ... + @property + def current_snackbar_data(self) -> SnackbarData | None: + """Kotlin property: androidx.compose.material3.SnackbarHostState.currentSnackbarData (androidx.compose.material3.SnackbarHostState.currentSnackbarData: androidx.compose.material3.SnackbarData?)""" + ... + +class SnackbarVisuals: + """Kotlin: androidx.compose.material3.SnackbarVisuals""" + @property + def action_label(self) -> str | None: + """Kotlin property: androidx.compose.material3.SnackbarVisuals.actionLabel (androidx.compose.material3.SnackbarVisuals.actionLabel: kotlin.String?)""" + ... + @property + def duration(self) -> SnackbarDuration: + """Kotlin property: androidx.compose.material3.SnackbarVisuals.duration (androidx.compose.material3.SnackbarVisuals.duration: androidx.compose.material3.SnackbarDuration)""" + ... + @property + def message(self) -> str: + """Kotlin property: androidx.compose.material3.SnackbarVisuals.message (androidx.compose.material3.SnackbarVisuals.message: kotlin.String)""" + ... + @property + def with_dismiss_action(self) -> bool: + """Kotlin property: androidx.compose.material3.SnackbarVisuals.withDismissAction (androidx.compose.material3.SnackbarVisuals.withDismissAction: kotlin.Boolean)""" + ... + +class SwipeToDismissBoxState: + """Kotlin: androidx.compose.material3.SwipeToDismissBoxState""" + @_t.overload + def __init__(self, initialValue: SwipeToDismissBoxValue, density: _t.Any, confirmValueChange: _t.Callable[[SwipeToDismissBoxValue], bool] = ..., *, positionalThreshold: _t.Callable[[float], float]) -> None: ... + @_t.overload + def __init__(self, initialValue: SwipeToDismissBoxValue, positionalThreshold: _t.Callable[[float], float]) -> None: ... # type: ignore[overload-cannot-match] + @property + def current_value(self) -> SwipeToDismissBoxValue: + """Kotlin property: androidx.compose.material3.SwipeToDismissBoxState.currentValue (androidx.compose.material3.SwipeToDismissBoxState.currentValue: androidx.compose.material3.SwipeToDismissBoxValue)""" + ... + @property + def dismiss_direction(self) -> SwipeToDismissBoxValue: + """Kotlin property: androidx.compose.material3.SwipeToDismissBoxState.dismissDirection (androidx.compose.material3.SwipeToDismissBoxState.dismissDirection: androidx.compose.material3.SwipeToDismissBoxValue)""" + ... + @property + def progress(self) -> float: + """Kotlin property: androidx.compose.material3.SwipeToDismissBoxState.progress (androidx.compose.material3.SwipeToDismissBoxState.progress: kotlin.Float)""" + ... + @property + def settled_value(self) -> SwipeToDismissBoxValue: + """Kotlin property: androidx.compose.material3.SwipeToDismissBoxState.settledValue (androidx.compose.material3.SwipeToDismissBoxState.settledValue: androidx.compose.material3.SwipeToDismissBoxValue)""" + ... + @property + def target_value(self) -> SwipeToDismissBoxValue: + """Kotlin property: androidx.compose.material3.SwipeToDismissBoxState.targetValue (androidx.compose.material3.SwipeToDismissBoxState.targetValue: androidx.compose.material3.SwipeToDismissBoxValue)""" + ... + +class SwipeToDismissBoxValue: + """Kotlin: androidx.compose.material3.SwipeToDismissBoxValue""" + +class SwitchColors: + """Kotlin: androidx.compose.material3.SwitchColors""" + def __init__(self, checkedThumbColor: _t.Any, checkedTrackColor: _t.Any, checkedBorderColor: _t.Any, checkedIconColor: _t.Any, uncheckedThumbColor: _t.Any, uncheckedTrackColor: _t.Any, uncheckedBorderColor: _t.Any, uncheckedIconColor: _t.Any, disabledCheckedThumbColor: _t.Any, disabledCheckedTrackColor: _t.Any, disabledCheckedBorderColor: _t.Any, disabledCheckedIconColor: _t.Any, disabledUncheckedThumbColor: _t.Any, disabledUncheckedTrackColor: _t.Any, disabledUncheckedBorderColor: _t.Any, disabledUncheckedIconColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.SwitchColors (androidx.compose.material3.SwitchColors(checkedThumbColor: androidx.compose.ui.graphics.Color, checkedTrackColor: androidx.compose.ui.graphics.Color, checkedBorderColor: androidx.compose.ui.graphics.Color, checkedIconColor: androidx.compose.ui.graphics.Color, uncheckedThumbColor: androidx.compose.ui.graphics.Color, uncheckedTrackColor: androidx.compose.ui.graphics.Color, uncheckedBorderColor: androidx.compose.ui.graphics.Color, uncheckedIconColor: androidx.compose.ui.graphics.Color, disabledCheckedThumbColor: androidx.compose.ui.graphics.Color, disabledCheckedTrackColor: androidx.compose.ui.graphics.Color, disabledCheckedBorderColor: androidx.compose.ui.graphics.Color, disabledCheckedIconColor: androidx.compose.ui.graphics.Color, disabledUncheckedThumbColor: androidx.compose.ui.graphics.Color, disabledUncheckedTrackColor: androidx.compose.ui.graphics.Color, disabledUncheckedBorderColor: androidx.compose.ui.graphics.Color, disabledUncheckedIconColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.SwitchColors)""" + ... + @property + def checked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.checkedBorderColor (androidx.compose.material3.SwitchColors.checkedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def checked_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.checkedIconColor (androidx.compose.material3.SwitchColors.checkedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def checked_thumb_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.checkedThumbColor (androidx.compose.material3.SwitchColors.checkedThumbColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def checked_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.checkedTrackColor (androidx.compose.material3.SwitchColors.checkedTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_checked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledCheckedBorderColor (androidx.compose.material3.SwitchColors.disabledCheckedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_checked_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledCheckedIconColor (androidx.compose.material3.SwitchColors.disabledCheckedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_checked_thumb_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledCheckedThumbColor (androidx.compose.material3.SwitchColors.disabledCheckedThumbColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_checked_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledCheckedTrackColor (androidx.compose.material3.SwitchColors.disabledCheckedTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unchecked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledUncheckedBorderColor (androidx.compose.material3.SwitchColors.disabledUncheckedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unchecked_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledUncheckedIconColor (androidx.compose.material3.SwitchColors.disabledUncheckedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unchecked_thumb_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledUncheckedThumbColor (androidx.compose.material3.SwitchColors.disabledUncheckedThumbColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_unchecked_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.disabledUncheckedTrackColor (androidx.compose.material3.SwitchColors.disabledUncheckedTrackColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.uncheckedBorderColor (androidx.compose.material3.SwitchColors.uncheckedBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.uncheckedIconColor (androidx.compose.material3.SwitchColors.uncheckedIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_thumb_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.uncheckedThumbColor (androidx.compose.material3.SwitchColors.uncheckedThumbColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unchecked_track_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.SwitchColors.uncheckedTrackColor (androidx.compose.material3.SwitchColors.uncheckedTrackColor: androidx.compose.ui.graphics.Color)""" + ... + +class TabIndicatorScope: + """Kotlin: androidx.compose.material3.TabIndicatorScope""" + +class TabPosition: + """Kotlin: androidx.compose.material3.TabPosition""" + @property + def content_width(self) -> float: + """Kotlin property: androidx.compose.material3.TabPosition.contentWidth (androidx.compose.material3.TabPosition.contentWidth: androidx.compose.ui.unit.Dp)""" + ... + @property + def left(self) -> float: + """Kotlin property: androidx.compose.material3.TabPosition.left (androidx.compose.material3.TabPosition.left: androidx.compose.ui.unit.Dp)""" + ... + @property + def right(self) -> float: + """Kotlin property: androidx.compose.material3.TabPosition.right (androidx.compose.material3.TabPosition.right: androidx.compose.ui.unit.Dp)""" + ... + @property + def width(self) -> float: + """Kotlin property: androidx.compose.material3.TabPosition.width (androidx.compose.material3.TabPosition.width: androidx.compose.ui.unit.Dp)""" + ... + +class TextFieldColors: + """Kotlin: androidx.compose.material3.TextFieldColors""" + def __init__(self, focusedTextColor: _t.Any, unfocusedTextColor: _t.Any, disabledTextColor: _t.Any, errorTextColor: _t.Any, focusedContainerColor: _t.Any, unfocusedContainerColor: _t.Any, disabledContainerColor: _t.Any, errorContainerColor: _t.Any, cursorColor: _t.Any, errorCursorColor: _t.Any, textSelectionColors: _t.Any, focusedIndicatorColor: _t.Any, unfocusedIndicatorColor: _t.Any, disabledIndicatorColor: _t.Any, errorIndicatorColor: _t.Any, focusedLeadingIconColor: _t.Any, unfocusedLeadingIconColor: _t.Any, disabledLeadingIconColor: _t.Any, errorLeadingIconColor: _t.Any, focusedTrailingIconColor: _t.Any, unfocusedTrailingIconColor: _t.Any, disabledTrailingIconColor: _t.Any, errorTrailingIconColor: _t.Any, focusedLabelColor: _t.Any, unfocusedLabelColor: _t.Any, disabledLabelColor: _t.Any, errorLabelColor: _t.Any, focusedPlaceholderColor: _t.Any, unfocusedPlaceholderColor: _t.Any, disabledPlaceholderColor: _t.Any, errorPlaceholderColor: _t.Any, focusedSupportingTextColor: _t.Any, unfocusedSupportingTextColor: _t.Any, disabledSupportingTextColor: _t.Any, errorSupportingTextColor: _t.Any, focusedPrefixColor: _t.Any, unfocusedPrefixColor: _t.Any, disabledPrefixColor: _t.Any, errorPrefixColor: _t.Any, focusedSuffixColor: _t.Any, unfocusedSuffixColor: _t.Any, disabledSuffixColor: _t.Any, errorSuffixColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.TextFieldColors (androidx.compose.material3.TextFieldColors(focusedTextColor: androidx.compose.ui.graphics.Color, unfocusedTextColor: androidx.compose.ui.graphics.Color, disabledTextColor: androidx.compose.ui.graphics.Color, errorTextColor: androidx.compose.ui.graphics.Color, focusedContainerColor: androidx.compose.ui.graphics.Color, unfocusedContainerColor: androidx.compose.ui.graphics.Color, disabledContainerColor: androidx.compose.ui.graphics.Color, errorContainerColor: androidx.compose.ui.graphics.Color, cursorColor: androidx.compose.ui.graphics.Color, errorCursorColor: androidx.compose.ui.graphics.Color, textSelectionColors: androidx.compose.foundation.text.selection.TextSelectionColors, focusedIndicatorColor: androidx.compose.ui.graphics.Color, unfocusedIndicatorColor: androidx.compose.ui.graphics.Color, disabledIndicatorColor: androidx.compose.ui.graphics.Color, errorIndicatorColor: androidx.compose.ui.graphics.Color, focusedLeadingIconColor: androidx.compose.ui.graphics.Color, unfocusedLeadingIconColor: androidx.compose.ui.graphics.Color, disabledLeadingIconColor: androidx.compose.ui.graphics.Color, errorLeadingIconColor: androidx.compose.ui.graphics.Color, focusedTrailingIconColor: androidx.compose.ui.graphics.Color, unfocusedTrailingIconColor: androidx.compose.ui.graphics.Color, disabledTrailingIconColor: androidx.compose.ui.graphics.Color, errorTrailingIconColor: androidx.compose.ui.graphics.Color, focusedLabelColor: androidx.compose.ui.graphics.Color, unfocusedLabelColor: androidx.compose.ui.graphics.Color, disabledLabelColor: androidx.compose.ui.graphics.Color, errorLabelColor: androidx.compose.ui.graphics.Color, focusedPlaceholderColor: androidx.compose.ui.graphics.Color, unfocusedPlaceholderColor: androidx.compose.ui.graphics.Color, disabledPlaceholderColor: androidx.compose.ui.graphics.Color, errorPlaceholderColor: androidx.compose.ui.graphics.Color, focusedSupportingTextColor: androidx.compose.ui.graphics.Color, unfocusedSupportingTextColor: androidx.compose.ui.graphics.Color, disabledSupportingTextColor: androidx.compose.ui.graphics.Color, errorSupportingTextColor: androidx.compose.ui.graphics.Color, focusedPrefixColor: androidx.compose.ui.graphics.Color, unfocusedPrefixColor: androidx.compose.ui.graphics.Color, disabledPrefixColor: androidx.compose.ui.graphics.Color, errorPrefixColor: androidx.compose.ui.graphics.Color, focusedSuffixColor: androidx.compose.ui.graphics.Color, unfocusedSuffixColor: androidx.compose.ui.graphics.Color, disabledSuffixColor: androidx.compose.ui.graphics.Color, errorSuffixColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.TextFieldColors)""" + ... + @property + def cursor_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.cursorColor (androidx.compose.material3.TextFieldColors.cursorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledContainerColor (androidx.compose.material3.TextFieldColors.disabledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledIndicatorColor (androidx.compose.material3.TextFieldColors.disabledIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_label_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledLabelColor (androidx.compose.material3.TextFieldColors.disabledLabelColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledLeadingIconColor (androidx.compose.material3.TextFieldColors.disabledLeadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_placeholder_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledPlaceholderColor (androidx.compose.material3.TextFieldColors.disabledPlaceholderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_prefix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledPrefixColor (androidx.compose.material3.TextFieldColors.disabledPrefixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_suffix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledSuffixColor (androidx.compose.material3.TextFieldColors.disabledSuffixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_supporting_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledSupportingTextColor (androidx.compose.material3.TextFieldColors.disabledSupportingTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledTextColor (androidx.compose.material3.TextFieldColors.disabledTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def disabled_trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.disabledTrailingIconColor (androidx.compose.material3.TextFieldColors.disabledTrailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorContainerColor (androidx.compose.material3.TextFieldColors.errorContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_cursor_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorCursorColor (androidx.compose.material3.TextFieldColors.errorCursorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorIndicatorColor (androidx.compose.material3.TextFieldColors.errorIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_label_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorLabelColor (androidx.compose.material3.TextFieldColors.errorLabelColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorLeadingIconColor (androidx.compose.material3.TextFieldColors.errorLeadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_placeholder_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorPlaceholderColor (androidx.compose.material3.TextFieldColors.errorPlaceholderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_prefix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorPrefixColor (androidx.compose.material3.TextFieldColors.errorPrefixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_suffix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorSuffixColor (androidx.compose.material3.TextFieldColors.errorSuffixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_supporting_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorSupportingTextColor (androidx.compose.material3.TextFieldColors.errorSupportingTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorTextColor (androidx.compose.material3.TextFieldColors.errorTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def error_trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.errorTrailingIconColor (androidx.compose.material3.TextFieldColors.errorTrailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedContainerColor (androidx.compose.material3.TextFieldColors.focusedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedIndicatorColor (androidx.compose.material3.TextFieldColors.focusedIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_label_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedLabelColor (androidx.compose.material3.TextFieldColors.focusedLabelColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedLeadingIconColor (androidx.compose.material3.TextFieldColors.focusedLeadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_placeholder_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedPlaceholderColor (androidx.compose.material3.TextFieldColors.focusedPlaceholderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_prefix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedPrefixColor (androidx.compose.material3.TextFieldColors.focusedPrefixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_suffix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedSuffixColor (androidx.compose.material3.TextFieldColors.focusedSuffixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_supporting_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedSupportingTextColor (androidx.compose.material3.TextFieldColors.focusedSupportingTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedTextColor (androidx.compose.material3.TextFieldColors.focusedTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def focused_trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.focusedTrailingIconColor (androidx.compose.material3.TextFieldColors.focusedTrailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def text_selection_colors(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.textSelectionColors (androidx.compose.material3.TextFieldColors.textSelectionColors: androidx.compose.foundation.text.selection.TextSelectionColors)""" + ... + @property + def unfocused_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedContainerColor (androidx.compose.material3.TextFieldColors.unfocusedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_indicator_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedIndicatorColor (androidx.compose.material3.TextFieldColors.unfocusedIndicatorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_label_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedLabelColor (androidx.compose.material3.TextFieldColors.unfocusedLabelColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_leading_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedLeadingIconColor (androidx.compose.material3.TextFieldColors.unfocusedLeadingIconColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_placeholder_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedPlaceholderColor (androidx.compose.material3.TextFieldColors.unfocusedPlaceholderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_prefix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedPrefixColor (androidx.compose.material3.TextFieldColors.unfocusedPrefixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_suffix_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedSuffixColor (androidx.compose.material3.TextFieldColors.unfocusedSuffixColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_supporting_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedSupportingTextColor (androidx.compose.material3.TextFieldColors.unfocusedSupportingTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_text_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedTextColor (androidx.compose.material3.TextFieldColors.unfocusedTextColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def unfocused_trailing_icon_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TextFieldColors.unfocusedTrailingIconColor (androidx.compose.material3.TextFieldColors.unfocusedTrailingIconColor: androidx.compose.ui.graphics.Color)""" + ... + +class TextFieldLabelPosition: + """Kotlin: androidx.compose.material3.TextFieldLabelPosition""" + +class TextFieldLabelScope: + """Kotlin: androidx.compose.material3.TextFieldLabelScope""" + @property + def label_minimized_progress(self) -> float: + """Kotlin property: androidx.compose.material3.TextFieldLabelScope.labelMinimizedProgress (androidx.compose.material3.TextFieldLabelScope.labelMinimizedProgress: kotlin.Float)""" + ... + +class TimePickerColors: + """Kotlin: androidx.compose.material3.TimePickerColors""" + def __init__(self, clockDialColor: _t.Any, selectorColor: _t.Any, containerColor: _t.Any, periodSelectorBorderColor: _t.Any, clockDialSelectedContentColor: _t.Any, clockDialUnselectedContentColor: _t.Any, periodSelectorSelectedContainerColor: _t.Any, periodSelectorUnselectedContainerColor: _t.Any, periodSelectorSelectedContentColor: _t.Any, periodSelectorUnselectedContentColor: _t.Any, timeSelectorSelectedContainerColor: _t.Any, timeSelectorUnselectedContainerColor: _t.Any, timeSelectorSelectedContentColor: _t.Any, timeSelectorUnselectedContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.TimePickerColors (androidx.compose.material3.TimePickerColors(clockDialColor: androidx.compose.ui.graphics.Color, selectorColor: androidx.compose.ui.graphics.Color, containerColor: androidx.compose.ui.graphics.Color, periodSelectorBorderColor: androidx.compose.ui.graphics.Color, clockDialSelectedContentColor: androidx.compose.ui.graphics.Color, clockDialUnselectedContentColor: androidx.compose.ui.graphics.Color, periodSelectorSelectedContainerColor: androidx.compose.ui.graphics.Color, periodSelectorUnselectedContainerColor: androidx.compose.ui.graphics.Color, periodSelectorSelectedContentColor: androidx.compose.ui.graphics.Color, periodSelectorUnselectedContentColor: androidx.compose.ui.graphics.Color, timeSelectorSelectedContainerColor: androidx.compose.ui.graphics.Color, timeSelectorUnselectedContainerColor: androidx.compose.ui.graphics.Color, timeSelectorSelectedContentColor: androidx.compose.ui.graphics.Color, timeSelectorUnselectedContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.TimePickerColors)""" + ... + @property + def clock_dial_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.clockDialColor (androidx.compose.material3.TimePickerColors.clockDialColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def clock_dial_selected_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.clockDialSelectedContentColor (androidx.compose.material3.TimePickerColors.clockDialSelectedContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def clock_dial_unselected_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.clockDialUnselectedContentColor (androidx.compose.material3.TimePickerColors.clockDialUnselectedContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.containerColor (androidx.compose.material3.TimePickerColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def period_selector_border_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.periodSelectorBorderColor (androidx.compose.material3.TimePickerColors.periodSelectorBorderColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def period_selector_selected_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.periodSelectorSelectedContainerColor (androidx.compose.material3.TimePickerColors.periodSelectorSelectedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def period_selector_selected_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.periodSelectorSelectedContentColor (androidx.compose.material3.TimePickerColors.periodSelectorSelectedContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def period_selector_unselected_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.periodSelectorUnselectedContainerColor (androidx.compose.material3.TimePickerColors.periodSelectorUnselectedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def period_selector_unselected_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.periodSelectorUnselectedContentColor (androidx.compose.material3.TimePickerColors.periodSelectorUnselectedContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def selector_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.selectorColor (androidx.compose.material3.TimePickerColors.selectorColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def time_selector_selected_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.timeSelectorSelectedContainerColor (androidx.compose.material3.TimePickerColors.timeSelectorSelectedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def time_selector_selected_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.timeSelectorSelectedContentColor (androidx.compose.material3.TimePickerColors.timeSelectorSelectedContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def time_selector_unselected_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.timeSelectorUnselectedContainerColor (androidx.compose.material3.TimePickerColors.timeSelectorUnselectedContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def time_selector_unselected_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TimePickerColors.timeSelectorUnselectedContentColor (androidx.compose.material3.TimePickerColors.timeSelectorUnselectedContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class TooltipScope: + """Kotlin: androidx.compose.material3.TooltipScope""" + PlainTooltip: _t.ClassVar[_TooltipScope_PlainTooltip] + RichTooltip: _t.ClassVar[_TooltipScope_RichTooltip] + +class TopAppBarColors: + """Kotlin: androidx.compose.material3.TopAppBarColors""" + @_t.overload + def __init__(self, containerColor: _t.Any, scrolledContainerColor: _t.Any, navigationIconContentColor: _t.Any, titleContentColor: _t.Any, actionIconContentColor: _t.Any) -> None: ... + @_t.overload + def __init__(self, containerColor: _t.Any, scrolledContainerColor: _t.Any, navigationIconContentColor: _t.Any, titleContentColor: _t.Any, actionIconContentColor: _t.Any, subtitleContentColor: _t.Any) -> None: ... # type: ignore[overload-cannot-match] + @property + def action_icon_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarColors.actionIconContentColor (androidx.compose.material3.TopAppBarColors.actionIconContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarColors.containerColor (androidx.compose.material3.TopAppBarColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def navigation_icon_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarColors.navigationIconContentColor (androidx.compose.material3.TopAppBarColors.navigationIconContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def scrolled_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarColors.scrolledContainerColor (androidx.compose.material3.TopAppBarColors.scrolledContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def subtitle_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarColors.subtitleContentColor (androidx.compose.material3.TopAppBarColors.subtitleContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def title_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarColors.titleContentColor (androidx.compose.material3.TopAppBarColors.titleContentColor: androidx.compose.ui.graphics.Color)""" + ... + +class TopAppBarScrollBehavior: + """Kotlin: androidx.compose.material3.TopAppBarScrollBehavior""" + @property + def is_pinned(self) -> bool: + """Kotlin property: androidx.compose.material3.TopAppBarScrollBehavior.isPinned (androidx.compose.material3.TopAppBarScrollBehavior.isPinned: kotlin.Boolean)""" + ... + @property + def nested_scroll_connection(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarScrollBehavior.nestedScrollConnection (androidx.compose.material3.TopAppBarScrollBehavior.nestedScrollConnection: androidx.compose.ui.input.nestedscroll.NestedScrollConnection)""" + ... + @property + def state(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.TopAppBarScrollBehavior.state (androidx.compose.material3.TopAppBarScrollBehavior.state: androidx.compose.material3.TopAppBarState)""" + ... + +class Typography: + """Kotlin: androidx.compose.material3.Typography""" + def __init__(self, displayLarge: _t.Any, displayMedium: _t.Any, displaySmall: _t.Any, headlineLarge: _t.Any, headlineMedium: _t.Any, headlineSmall: _t.Any, titleLarge: _t.Any, titleMedium: _t.Any, titleSmall: _t.Any, bodyLarge: _t.Any, bodyMedium: _t.Any, bodySmall: _t.Any, labelLarge: _t.Any, labelMedium: _t.Any, labelSmall: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.Typography (androidx.compose.material3.Typography(displayLarge: androidx.compose.ui.text.TextStyle, displayMedium: androidx.compose.ui.text.TextStyle, displaySmall: androidx.compose.ui.text.TextStyle, headlineLarge: androidx.compose.ui.text.TextStyle, headlineMedium: androidx.compose.ui.text.TextStyle, headlineSmall: androidx.compose.ui.text.TextStyle, titleLarge: androidx.compose.ui.text.TextStyle, titleMedium: androidx.compose.ui.text.TextStyle, titleSmall: androidx.compose.ui.text.TextStyle, bodyLarge: androidx.compose.ui.text.TextStyle, bodyMedium: androidx.compose.ui.text.TextStyle, bodySmall: androidx.compose.ui.text.TextStyle, labelLarge: androidx.compose.ui.text.TextStyle, labelMedium: androidx.compose.ui.text.TextStyle, labelSmall: androidx.compose.ui.text.TextStyle): androidx.compose.material3.Typography)""" + ... + @property + def body_large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.bodyLarge (androidx.compose.material3.Typography.bodyLarge: androidx.compose.ui.text.TextStyle)""" + ... + @property + def body_medium(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.bodyMedium (androidx.compose.material3.Typography.bodyMedium: androidx.compose.ui.text.TextStyle)""" + ... + @property + def body_small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.bodySmall (androidx.compose.material3.Typography.bodySmall: androidx.compose.ui.text.TextStyle)""" + ... + @property + def display_large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.displayLarge (androidx.compose.material3.Typography.displayLarge: androidx.compose.ui.text.TextStyle)""" + ... + @property + def display_medium(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.displayMedium (androidx.compose.material3.Typography.displayMedium: androidx.compose.ui.text.TextStyle)""" + ... + @property + def display_small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.displaySmall (androidx.compose.material3.Typography.displaySmall: androidx.compose.ui.text.TextStyle)""" + ... + @property + def headline_large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.headlineLarge (androidx.compose.material3.Typography.headlineLarge: androidx.compose.ui.text.TextStyle)""" + ... + @property + def headline_medium(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.headlineMedium (androidx.compose.material3.Typography.headlineMedium: androidx.compose.ui.text.TextStyle)""" + ... + @property + def headline_small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.headlineSmall (androidx.compose.material3.Typography.headlineSmall: androidx.compose.ui.text.TextStyle)""" + ... + @property + def label_large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.labelLarge (androidx.compose.material3.Typography.labelLarge: androidx.compose.ui.text.TextStyle)""" + ... + @property + def label_medium(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.labelMedium (androidx.compose.material3.Typography.labelMedium: androidx.compose.ui.text.TextStyle)""" + ... + @property + def label_small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.labelSmall (androidx.compose.material3.Typography.labelSmall: androidx.compose.ui.text.TextStyle)""" + ... + @property + def title_large(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.titleLarge (androidx.compose.material3.Typography.titleLarge: androidx.compose.ui.text.TextStyle)""" + ... + @property + def title_medium(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.titleMedium (androidx.compose.material3.Typography.titleMedium: androidx.compose.ui.text.TextStyle)""" + ... + @property + def title_small(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.Typography.titleSmall (androidx.compose.material3.Typography.titleSmall: androidx.compose.ui.text.TextStyle)""" + ... + +class WideNavigationRailColors: + """Kotlin: androidx.compose.material3.WideNavigationRailColors""" + def __init__(self, containerColor: _t.Any, contentColor: _t.Any, modalContainerColor: _t.Any, modalScrimColor: _t.Any, modalContentColor: _t.Any) -> None: + """Kotlin constructor: androidx.compose.material3.WideNavigationRailColors (androidx.compose.material3.WideNavigationRailColors(containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, modalContainerColor: androidx.compose.ui.graphics.Color, modalScrimColor: androidx.compose.ui.graphics.Color, modalContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.WideNavigationRailColors)""" + ... + @property + def container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.WideNavigationRailColors.containerColor (androidx.compose.material3.WideNavigationRailColors.containerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.WideNavigationRailColors.contentColor (androidx.compose.material3.WideNavigationRailColors.contentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def modal_container_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.WideNavigationRailColors.modalContainerColor (androidx.compose.material3.WideNavigationRailColors.modalContainerColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def modal_content_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.WideNavigationRailColors.modalContentColor (androidx.compose.material3.WideNavigationRailColors.modalContentColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def modal_scrim_color(self) -> _t.Any: + """Kotlin property: androidx.compose.material3.WideNavigationRailColors.modalScrimColor (androidx.compose.material3.WideNavigationRailColors.modalScrimColor: androidx.compose.ui.graphics.Color)""" + ... + +class WideNavigationRailState: + """Kotlin: androidx.compose.material3.WideNavigationRailState""" + @property + def current_value(self) -> WideNavigationRailValue: + """Kotlin property: androidx.compose.material3.WideNavigationRailState.currentValue (androidx.compose.material3.WideNavigationRailState.currentValue: androidx.compose.material3.WideNavigationRailValue)""" + ... + @property + def is_animating(self) -> bool: + """Kotlin property: androidx.compose.material3.WideNavigationRailState.isAnimating (androidx.compose.material3.WideNavigationRailState.isAnimating: kotlin.Boolean)""" + ... + @property + def target_value(self) -> WideNavigationRailValue: + """Kotlin property: androidx.compose.material3.WideNavigationRailState.targetValue (androidx.compose.material3.WideNavigationRailState.targetValue: androidx.compose.material3.WideNavigationRailValue)""" + ... + +class WideNavigationRailValue: + """Kotlin: androidx.compose.material3.WideNavigationRailValue""" + +def AlertDialog__Unit_Modifier_DialogProperties_Unit(on_dismiss_request: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., properties: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.AlertDialog(onDismissRequest: kotlin.Function0, modifier: androidx.compose.ui.Modifier, properties: androidx.compose.ui.window.DialogProperties, content: kotlin.Function0): kotlin.Unit""" + ... + +def AlertDialog__Unit_Unit_Modifier_Unit_Unit_Unit_Unit_Shape_Color_Color_Color_Color_Dp_DialogProperties(on_dismiss_request: _t.Callable[[], None], confirm_button: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., dismiss_button: _t.Callable[[], None] | None = ..., icon: _t.Callable[[], None] | None = ..., title: _t.Callable[[], None] | None = ..., text: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., icon_content_color: _t.Any = ..., title_content_color: _t.Any = ..., text_content_color: _t.Any = ..., tonal_elevation: float = ..., properties: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.AlertDialog(onDismissRequest: kotlin.Function0, confirmButton: kotlin.Function0, modifier: androidx.compose.ui.Modifier, dismissButton: kotlin.Function0?, icon: kotlin.Function0?, title: kotlin.Function0?, text: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, iconContentColor: androidx.compose.ui.graphics.Color, titleContentColor: androidx.compose.ui.graphics.Color, textContentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, properties: androidx.compose.ui.window.DialogProperties): kotlin.Unit""" + ... + +def AppBarColumn(overflow_indicator: _t.Callable[[AppBarMenuState], None], modifier: pythonx.compose.ui.Modifier = ..., max_item_count: int = ..., *, content: _t.Callable[[AppBarColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.AppBarColumn(overflowIndicator: kotlin.Function1, modifier: androidx.compose.ui.Modifier, maxItemCount: kotlin.Int, content: kotlin.Function1): kotlin.Unit""" + ... + +def AppBarRow(overflow_indicator: _t.Callable[[AppBarMenuState], None], modifier: pythonx.compose.ui.Modifier = ..., max_item_count: int = ..., *, content: _t.Callable[[AppBarRowScope], None]) -> None: + """Kotlin: androidx.compose.material3.AppBarRow(overflowIndicator: kotlin.Function1, modifier: androidx.compose.ui.Modifier, maxItemCount: kotlin.Int, content: kotlin.Function1): kotlin.Unit""" + ... + +def AssistChip(on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ChipColors = ..., elevation: ChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.AssistChip(onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ChipColors, elevation: androidx.compose.material3.ChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def Badge(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., content: _t.Callable[[pythonx.compose.layout.RowScope], None] | None = ...) -> None: + """Kotlin: androidx.compose.material3.Badge(modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, content: kotlin.Function1?): kotlin.Unit""" + ... + +def BadgedBox(badge: _t.Callable[[pythonx.compose.layout.BoxScope], None], modifier: pythonx.compose.ui.Modifier = ..., *, content: _t.Callable[[pythonx.compose.layout.BoxScope], None]) -> None: + """Kotlin: androidx.compose.material3.BadgedBox(badge: kotlin.Function1, modifier: androidx.compose.ui.Modifier, content: kotlin.Function1): kotlin.Unit""" + ... + +def BasicAlertDialog(on_dismiss_request: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., properties: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.BasicAlertDialog(onDismissRequest: kotlin.Function0, modifier: androidx.compose.ui.Modifier, properties: androidx.compose.ui.window.DialogProperties, content: kotlin.Function0): kotlin.Unit""" + ... + +def BottomAppBarState(initial_height_offset_limit: float, initial_height_offset: float, initial_content_offset: float) -> _t.Any: + """Kotlin: androidx.compose.material3.BottomAppBarState(initialHeightOffsetLimit: kotlin.Float, initialHeightOffset: kotlin.Float, initialContentOffset: kotlin.Float): androidx.compose.material3.BottomAppBarState""" + ... + +def BottomAppBar__Modifier_Color_Color_Dp_PaddingValues_WindowInsets_BottomAppBarScrollBehavior_Unit(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ..., scroll_behavior: BottomAppBarScrollBehavior | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.BottomAppBar(modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, contentPadding: androidx.compose.foundation.layout.PaddingValues, windowInsets: androidx.compose.foundation.layout.WindowInsets, scrollBehavior: androidx.compose.material3.BottomAppBarScrollBehavior?, content: kotlin.Function1): kotlin.Unit""" + ... + +def BottomAppBar__Modifier_Color_Color_Dp_PaddingValues_WindowInsets_Unit(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.BottomAppBar(modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, contentPadding: androidx.compose.foundation.layout.PaddingValues, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def BottomAppBar__Unit_Modifier_Unit_Color_Color_Dp_PaddingValues_WindowInsets(actions: _t.Callable[[pythonx.compose.layout.RowScope], None], modifier: pythonx.compose.ui.Modifier = ..., floating_action_button: _t.Callable[[], None] | None = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.BottomAppBar(actions: kotlin.Function1, modifier: androidx.compose.ui.Modifier, floatingActionButton: kotlin.Function0?, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, contentPadding: androidx.compose.foundation.layout.PaddingValues, windowInsets: androidx.compose.foundation.layout.WindowInsets): kotlin.Unit""" + ... + +def BottomAppBar__Unit_Modifier_Unit_Color_Color_Dp_PaddingValues_WindowInsets_BottomAppBarScrollBehavior(actions: _t.Callable[[pythonx.compose.layout.RowScope], None], modifier: pythonx.compose.ui.Modifier = ..., floating_action_button: _t.Callable[[], None] | None = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ..., scroll_behavior: BottomAppBarScrollBehavior | None = ...) -> None: + """Kotlin: androidx.compose.material3.BottomAppBar(actions: kotlin.Function1, modifier: androidx.compose.ui.Modifier, floatingActionButton: kotlin.Function0?, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, contentPadding: androidx.compose.foundation.layout.PaddingValues, windowInsets: androidx.compose.foundation.layout.WindowInsets, scrollBehavior: androidx.compose.material3.BottomAppBarScrollBehavior?): kotlin.Unit""" + ... + +def BottomSheetScaffold(sheet_content: _t.Callable[[pythonx.compose.layout.ColumnScope], None], modifier: pythonx.compose.ui.Modifier = ..., scaffold_state: BottomSheetScaffoldState = ..., sheet_peek_height: float = ..., sheet_max_width: float = ..., sheet_shape: pythonx.compose.ui.graphics.Shape = ..., sheet_container_color: _t.Any = ..., sheet_content_color: _t.Any = ..., sheet_tonal_elevation: float = ..., sheet_shadow_elevation: float = ..., sheet_drag_handle: _t.Callable[[], None] | None = ..., sheet_swipe_enabled: bool = ..., top_bar: _t.Callable[[], None] | None = ..., snackbar_host: _t.Callable[[SnackbarHostState], None] = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., *, content: _t.Callable[[_t.Any], None]) -> None: + """Kotlin: androidx.compose.material3.BottomSheetScaffold(sheetContent: kotlin.Function1, modifier: androidx.compose.ui.Modifier, scaffoldState: androidx.compose.material3.BottomSheetScaffoldState, sheetPeekHeight: androidx.compose.ui.unit.Dp, sheetMaxWidth: androidx.compose.ui.unit.Dp, sheetShape: androidx.compose.ui.graphics.Shape, sheetContainerColor: androidx.compose.ui.graphics.Color, sheetContentColor: androidx.compose.ui.graphics.Color, sheetTonalElevation: androidx.compose.ui.unit.Dp, sheetShadowElevation: androidx.compose.ui.unit.Dp, sheetDragHandle: kotlin.Function0?, sheetSwipeEnabled: kotlin.Boolean, topBar: kotlin.Function0?, snackbarHost: kotlin.Function1, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, content: kotlin.Function1): kotlin.Unit""" + ... + +def Button(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ButtonColors = ..., elevation: ButtonElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.Button(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ButtonColors, elevation: androidx.compose.material3.ButtonElevation?, border: androidx.compose.foundation.BorderStroke?, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def Card__Modifier_Shape_CardColors_CardElevation_BorderStroke_Unit(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.Card(modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.CardColors, elevation: androidx.compose.material3.CardElevation, border: androidx.compose.foundation.BorderStroke?, content: kotlin.Function1): kotlin.Unit""" + ... + +def Card__Unit_Modifier_Boolean_Shape_CardColors_CardElevation_BorderStroke_MutableInteractionSource_Unit(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.Card(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.CardColors, elevation: androidx.compose.material3.CardElevation, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def CenterAlignedTopAppBar(title: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., navigation_icon: _t.Callable[[], None] = ..., actions: _t.Callable[[pythonx.compose.layout.RowScope], None] = ..., expanded_height: float = ..., window_insets: _t.Any = ..., colors: TopAppBarColors = ..., scroll_behavior: TopAppBarScrollBehavior | None = ...) -> None: + """Kotlin: androidx.compose.material3.CenterAlignedTopAppBar(title: kotlin.Function0, modifier: androidx.compose.ui.Modifier, navigationIcon: kotlin.Function0, actions: kotlin.Function1, expandedHeight: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, colors: androidx.compose.material3.TopAppBarColors, scrollBehavior: androidx.compose.material3.TopAppBarScrollBehavior?): kotlin.Unit""" + ... + +def Checkbox__Boolean_Unit_Modifier_Boolean_CheckboxColors_MutableInteractionSource(checked: bool, on_checked_change: _t.Callable[[bool], None] | None, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.Checkbox(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1?, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.CheckboxColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def Checkbox__Boolean_Unit_Stroke_Stroke_Modifier_Boolean_CheckboxColors_MutableInteractionSource(checked: bool, on_checked_change: _t.Callable[[bool], None] | None, checkmark_stroke: _t.Any, outline_stroke: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.Checkbox(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1?, checkmarkStroke: androidx.compose.ui.graphics.drawscope.Stroke, outlineStroke: androidx.compose.ui.graphics.drawscope.Stroke, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.CheckboxColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def CircularProgressIndicator__Float_Modifier_Color_Dp_Color_StrokeCap(progress: float, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., stroke_width: float = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.CircularProgressIndicator(progress: kotlin.Float, modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, strokeWidth: androidx.compose.ui.unit.Dp, trackColor: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap): kotlin.Unit""" + ... + +def CircularProgressIndicator__Float_Modifier_Color_Dp_Color_StrokeCap_Dp(progress: _t.Callable[[], float], modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., stroke_width: float = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ...) -> None: + """Kotlin: androidx.compose.material3.CircularProgressIndicator(progress: kotlin.Function0, modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, strokeWidth: androidx.compose.ui.unit.Dp, trackColor: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap, gapSize: androidx.compose.ui.unit.Dp): kotlin.Unit""" + ... + +def CircularProgressIndicator__Modifier_Color_Dp_Color_StrokeCap_Dp(modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., stroke_width: float = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ...) -> None: + """Kotlin: androidx.compose.material3.CircularProgressIndicator(modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, strokeWidth: androidx.compose.ui.unit.Dp, trackColor: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap, gapSize: androidx.compose.ui.unit.Dp): kotlin.Unit""" + ... + +def DatePicker(state: DatePickerState, modifier: pythonx.compose.ui.Modifier = ..., date_formatter: DatePickerFormatter = ..., colors: DatePickerColors = ..., title: _t.Callable[[], None] | None = ..., headline: _t.Callable[[], None] | None = ..., show_mode_toggle: bool = ..., focus_requester: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.DatePicker(state: androidx.compose.material3.DatePickerState, modifier: androidx.compose.ui.Modifier, dateFormatter: androidx.compose.material3.DatePickerFormatter, colors: androidx.compose.material3.DatePickerColors, title: kotlin.Function0?, headline: kotlin.Function0?, showModeToggle: kotlin.Boolean, focusRequester: androidx.compose.ui.focus.FocusRequester?): kotlin.Unit""" + ... + +def DatePickerDialog(on_dismiss_request: _t.Callable[[], None], confirm_button: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., dismiss_button: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., tonal_elevation: float = ..., colors: DatePickerColors = ..., properties: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.DatePickerDialog(onDismissRequest: kotlin.Function0, confirmButton: kotlin.Function0, modifier: androidx.compose.ui.Modifier, dismissButton: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, tonalElevation: androidx.compose.ui.unit.Dp, colors: androidx.compose.material3.DatePickerColors, properties: androidx.compose.ui.window.DialogProperties, content: kotlin.Function1): kotlin.Unit""" + ... + +def DateRangePicker(state: DateRangePickerState, modifier: pythonx.compose.ui.Modifier = ..., date_formatter: DatePickerFormatter = ..., colors: DatePickerColors = ..., title: _t.Callable[[], None] | None = ..., headline: _t.Callable[[], None] | None = ..., show_mode_toggle: bool = ..., focus_requester: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.DateRangePicker(state: androidx.compose.material3.DateRangePickerState, modifier: androidx.compose.ui.Modifier, dateFormatter: androidx.compose.material3.DatePickerFormatter, colors: androidx.compose.material3.DatePickerColors, title: kotlin.Function0?, headline: kotlin.Function0?, showModeToggle: kotlin.Boolean, focusRequester: androidx.compose.ui.focus.FocusRequester?): kotlin.Unit""" + ... + +def DismissibleDrawerSheet__DrawerState_Modifier_Shape_Color_Color_Dp_WindowInsets_Unit(drawer_state: DrawerState, modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.DismissibleDrawerSheet(drawerState: androidx.compose.material3.DrawerState, modifier: androidx.compose.ui.Modifier, drawerShape: androidx.compose.ui.graphics.Shape, drawerContainerColor: androidx.compose.ui.graphics.Color, drawerContentColor: androidx.compose.ui.graphics.Color, drawerTonalElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def DismissibleDrawerSheet__Modifier_Shape_Color_Color_Dp_WindowInsets_Unit(modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.DismissibleDrawerSheet(modifier: androidx.compose.ui.Modifier, drawerShape: androidx.compose.ui.graphics.Shape, drawerContainerColor: androidx.compose.ui.graphics.Color, drawerContentColor: androidx.compose.ui.graphics.Color, drawerTonalElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def DismissibleNavigationDrawer(drawer_content: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., drawer_state: DrawerState = ..., gestures_enabled: bool = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.DismissibleNavigationDrawer(drawerContent: kotlin.Function0, modifier: androidx.compose.ui.Modifier, drawerState: androidx.compose.material3.DrawerState, gesturesEnabled: kotlin.Boolean, content: kotlin.Function0): kotlin.Unit""" + ... + +def Divider(modifier: pythonx.compose.ui.Modifier = ..., thickness: float = ..., color: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Divider(modifier: androidx.compose.ui.Modifier, thickness: androidx.compose.ui.unit.Dp, color: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def DockedSearchBar__String_Unit_Unit_Boolean_Unit_Modifier_Boolean_Unit_Unit_Unit_Shape_SearchBarColors_Dp_Dp_MutableInteractionSource_Unit(query: str, on_query_change: _t.Callable[[str], None], on_search: _t.Callable[[str], None], active: bool, on_active_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.DockedSearchBar(query: kotlin.String, onQueryChange: kotlin.Function1, onSearch: kotlin.Function1, active: kotlin.Boolean, onActiveChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def DockedSearchBar__Unit_Boolean_Unit_Modifier_Shape_SearchBarColors_Dp_Dp_Unit(input_field: _t.Callable[[], None], expanded: bool, on_expanded_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.DockedSearchBar(inputField: kotlin.Function0, expanded: kotlin.Boolean, onExpandedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, content: kotlin.Function1): kotlin.Unit""" + ... + +def DropdownMenu(expanded: bool, on_dismiss_request: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., offset: int = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., properties: _t.Any = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.DropdownMenu(expanded: kotlin.Boolean, onDismissRequest: kotlin.Function0, modifier: androidx.compose.ui.Modifier, offset: androidx.compose.ui.unit.DpOffset, scrollState: androidx.compose.foundation.ScrollState, properties: androidx.compose.ui.window.PopupProperties, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, border: androidx.compose.foundation.BorderStroke?, content: kotlin.Function1): kotlin.Unit""" + ... + +def DropdownMenuItem(text: _t.Callable[[], None], on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., enabled: bool = ..., colors: MenuItemColors = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.DropdownMenuItem(text: kotlin.Function0, onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, enabled: kotlin.Boolean, colors: androidx.compose.material3.MenuItemColors, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def ElevatedAssistChip(on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ChipColors = ..., elevation: ChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.ElevatedAssistChip(onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ChipColors, elevation: androidx.compose.material3.ChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def ElevatedButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ButtonColors = ..., elevation: ButtonElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.ElevatedButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ButtonColors, elevation: androidx.compose.material3.ButtonElevation?, border: androidx.compose.foundation.BorderStroke?, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def ElevatedCard__Modifier_Shape_CardColors_CardElevation_Unit(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ElevatedCard(modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.CardColors, elevation: androidx.compose.material3.CardElevation, content: kotlin.Function1): kotlin.Unit""" + ... + +def ElevatedCard__Unit_Modifier_Boolean_Shape_CardColors_CardElevation_MutableInteractionSource_Unit(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ElevatedCard(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.CardColors, elevation: androidx.compose.material3.CardElevation, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def ElevatedFilterChip(selected: bool, on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SelectableChipColors = ..., elevation: SelectableChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.ElevatedFilterChip(selected: kotlin.Boolean, onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SelectableChipColors, elevation: androidx.compose.material3.SelectableChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def ElevatedSuggestionChip(on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ChipColors = ..., elevation: ChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.ElevatedSuggestionChip(onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, icon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ChipColors, elevation: androidx.compose.material3.ChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def ExpandedDockedSearchBar(state: SearchBarState, input_field: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., properties: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ExpandedDockedSearchBar(state: androidx.compose.material3.SearchBarState, inputField: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, properties: androidx.compose.ui.window.PopupProperties, content: kotlin.Function1): kotlin.Unit""" + ... + +def ExpandedFullScreenSearchBar(state: SearchBarState, input_field: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., collapsed_shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., window_insets: _t.Callable[[], _t.Any] = ..., properties: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ExpandedFullScreenSearchBar(state: androidx.compose.material3.SearchBarState, inputField: kotlin.Function0, modifier: androidx.compose.ui.Modifier, collapsedShape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, windowInsets: kotlin.Function0, properties: androidx.compose.ui.window.DialogProperties, content: kotlin.Function1): kotlin.Unit""" + ... + +def ExposedDropdownMenuBox(expanded: bool, on_expanded_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., *, content: _t.Callable[[ExposedDropdownMenuBoxScope], None]) -> None: + """Kotlin: androidx.compose.material3.ExposedDropdownMenuBox(expanded: kotlin.Boolean, onExpandedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, content: kotlin.Function1): kotlin.Unit""" + ... + +def ExtendedFloatingActionButton__Unit_Modifier_Shape_Color_Color_FloatingActionButtonElevation_MutableInteractionSource_Unit(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.ExtendedFloatingActionButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, elevation: androidx.compose.material3.FloatingActionButtonElevation, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def ExtendedFloatingActionButton__Unit_Unit_Unit_Modifier_Boolean_Shape_Color_Color_FloatingActionButtonElevation_MutableInteractionSource(text: _t.Callable[[], None], icon: _t.Callable[[], None], on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., expanded: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.ExtendedFloatingActionButton(text: kotlin.Function0, icon: kotlin.Function0, onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, expanded: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, elevation: androidx.compose.material3.FloatingActionButtonElevation, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def FilledIconButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: IconButtonColors = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.FilledIconButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.IconButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def FilledIconToggleButton(checked: bool, on_checked_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: IconToggleButtonColors = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.FilledIconToggleButton(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.IconToggleButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def FilledTonalButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ButtonColors = ..., elevation: ButtonElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.FilledTonalButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ButtonColors, elevation: androidx.compose.material3.ButtonElevation?, border: androidx.compose.foundation.BorderStroke?, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def FilledTonalIconButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: IconButtonColors = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.FilledTonalIconButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.IconButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def FilledTonalIconToggleButton(checked: bool, on_checked_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: IconToggleButtonColors = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.FilledTonalIconToggleButton(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.IconToggleButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def FilterChip(selected: bool, on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SelectableChipColors = ..., elevation: SelectableChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.FilterChip(selected: kotlin.Boolean, onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SelectableChipColors, elevation: androidx.compose.material3.SelectableChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def FloatingActionButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.FloatingActionButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, elevation: androidx.compose.material3.FloatingActionButtonElevation, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def HorizontalDivider(modifier: pythonx.compose.ui.Modifier = ..., thickness: float = ..., color: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.HorizontalDivider(modifier: androidx.compose.ui.Modifier, thickness: androidx.compose.ui.unit.Dp, color: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def IconButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: IconButtonColors = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.IconButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.IconButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, shape: androidx.compose.ui.graphics.Shape, content: kotlin.Function0): kotlin.Unit""" + ... + +def IconToggleButton(checked: bool, on_checked_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: IconToggleButtonColors = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.IconToggleButton(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.IconToggleButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, shape: androidx.compose.ui.graphics.Shape, content: kotlin.Function0): kotlin.Unit""" + ... + +def Icon__ImageBitmap_String_Modifier_Color(bitmap: _t.Any, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ..., tint: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Icon(bitmap: androidx.compose.ui.graphics.ImageBitmap, contentDescription: kotlin.String?, modifier: androidx.compose.ui.Modifier, tint: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def Icon__ImageVector_String_Modifier_Color(image_vector: pythonx.compose.ui.graphics.vector.ImageVector, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ..., tint: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Icon(imageVector: androidx.compose.ui.graphics.vector.ImageVector, contentDescription: kotlin.String?, modifier: androidx.compose.ui.Modifier, tint: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def Icon__Painter_ColorProducer_String_Modifier(painter: _t.Any, tint: pythonx.compose.ui.graphics.ColorProducer | None, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ...) -> None: + """Kotlin: androidx.compose.material3.Icon(painter: androidx.compose.ui.graphics.painter.Painter, tint: androidx.compose.ui.graphics.ColorProducer?, contentDescription: kotlin.String?, modifier: androidx.compose.ui.Modifier): kotlin.Unit""" + ... + +def Icon__Painter_String_Modifier_Color(painter: _t.Any, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ..., tint: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Icon(painter: androidx.compose.ui.graphics.painter.Painter, contentDescription: kotlin.String?, modifier: androidx.compose.ui.Modifier, tint: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def InputChip(selected: bool, on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., leading_icon: _t.Callable[[], None] | None = ..., avatar: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SelectableChipColors = ..., elevation: SelectableChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.InputChip(selected: kotlin.Boolean, onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, leadingIcon: kotlin.Function0?, avatar: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SelectableChipColors, elevation: androidx.compose.material3.SelectableChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def Label(label: _t.Callable[[TooltipScope], None], modifier: pythonx.compose.ui.Modifier = ..., interaction_source: _t.Any | None = ..., is_persistent: bool = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.Label(label: kotlin.Function1, modifier: androidx.compose.ui.Modifier, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, isPersistent: kotlin.Boolean, content: kotlin.Function0): kotlin.Unit""" + ... + +def LargeFloatingActionButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.LargeFloatingActionButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, elevation: androidx.compose.material3.FloatingActionButtonElevation, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def LargeTopAppBar(title: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., navigation_icon: _t.Callable[[], None] = ..., actions: _t.Callable[[pythonx.compose.layout.RowScope], None] = ..., collapsed_height: float = ..., expanded_height: float = ..., window_insets: _t.Any = ..., colors: TopAppBarColors = ..., scroll_behavior: TopAppBarScrollBehavior | None = ...) -> None: + """Kotlin: androidx.compose.material3.LargeTopAppBar(title: kotlin.Function0, modifier: androidx.compose.ui.Modifier, navigationIcon: kotlin.Function0, actions: kotlin.Function1, collapsedHeight: androidx.compose.ui.unit.Dp, expandedHeight: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, colors: androidx.compose.material3.TopAppBarColors, scrollBehavior: androidx.compose.material3.TopAppBarScrollBehavior?): kotlin.Unit""" + ... + +def LeadingIconTab(selected: bool, on_click: _t.Callable[[], None], text: _t.Callable[[], None], icon: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., selected_content_color: _t.Any = ..., unselected_content_color: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.LeadingIconTab(selected: kotlin.Boolean, onClick: kotlin.Function0, text: kotlin.Function0, icon: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, selectedContentColor: androidx.compose.ui.graphics.Color, unselectedContentColor: androidx.compose.ui.graphics.Color, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def LinearProgressIndicator__Float_Modifier_Color_Color_StrokeCap(progress: float, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.LinearProgressIndicator(progress: kotlin.Float, modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, trackColor: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap): kotlin.Unit""" + ... + +def LinearProgressIndicator__Float_Modifier_Color_Color_StrokeCap_Dp_Unit(progress: _t.Callable[[], float], modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ..., draw_stop_indicator: _t.Callable[[_t.Any], None] = ...) -> None: + """Kotlin: androidx.compose.material3.LinearProgressIndicator(progress: kotlin.Function0, modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, trackColor: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap, gapSize: androidx.compose.ui.unit.Dp, drawStopIndicator: kotlin.Function1): kotlin.Unit""" + ... + +def LinearProgressIndicator__Modifier_Color_Color_StrokeCap_Dp(modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ...) -> None: + """Kotlin: androidx.compose.material3.LinearProgressIndicator(modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, trackColor: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap, gapSize: androidx.compose.ui.unit.Dp): kotlin.Unit""" + ... + +def ListItem(headline_content: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., overline_content: _t.Callable[[], None] | None = ..., supporting_content: _t.Callable[[], None] | None = ..., leading_content: _t.Callable[[], None] | None = ..., trailing_content: _t.Callable[[], None] | None = ..., colors: ListItemColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ...) -> None: + """Kotlin: androidx.compose.material3.ListItem(headlineContent: kotlin.Function0, modifier: androidx.compose.ui.Modifier, overlineContent: kotlin.Function0?, supportingContent: kotlin.Function0?, leadingContent: kotlin.Function0?, trailingContent: kotlin.Function0?, colors: androidx.compose.material3.ListItemColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp): kotlin.Unit""" + ... + +def MaterialTheme(color_scheme: ColorScheme = ..., shapes: Shapes = ..., typography: Typography = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.MaterialTheme(colorScheme: androidx.compose.material3.ColorScheme, shapes: androidx.compose.material3.Shapes, typography: androidx.compose.material3.Typography, content: kotlin.Function0): kotlin.Unit""" + ... + +def MediumTopAppBar(title: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., navigation_icon: _t.Callable[[], None] = ..., actions: _t.Callable[[pythonx.compose.layout.RowScope], None] = ..., collapsed_height: float = ..., expanded_height: float = ..., window_insets: _t.Any = ..., colors: TopAppBarColors = ..., scroll_behavior: TopAppBarScrollBehavior | None = ...) -> None: + """Kotlin: androidx.compose.material3.MediumTopAppBar(title: kotlin.Function0, modifier: androidx.compose.ui.Modifier, navigationIcon: kotlin.Function0, actions: kotlin.Function1, collapsedHeight: androidx.compose.ui.unit.Dp, expandedHeight: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, colors: androidx.compose.material3.TopAppBarColors, scrollBehavior: androidx.compose.material3.TopAppBarScrollBehavior?): kotlin.Unit""" + ... + +def ModalBottomSheet(on_dismiss_request: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., sheet_state: SheetState = ..., sheet_max_width: float = ..., sheet_gestures_enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., scrim_color: _t.Any = ..., drag_handle: _t.Callable[[], None] | None = ..., content_window_insets: _t.Callable[[], _t.Any] = ..., properties: ModalBottomSheetProperties = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ModalBottomSheet(onDismissRequest: kotlin.Function0, modifier: androidx.compose.ui.Modifier, sheetState: androidx.compose.material3.SheetState, sheetMaxWidth: androidx.compose.ui.unit.Dp, sheetGesturesEnabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, scrimColor: androidx.compose.ui.graphics.Color, dragHandle: kotlin.Function0?, contentWindowInsets: kotlin.Function0, properties: androidx.compose.material3.ModalBottomSheetProperties, content: kotlin.Function1): kotlin.Unit""" + ... + +def ModalDrawerSheet__DrawerState_Modifier_Shape_Color_Color_Dp_WindowInsets_Unit(drawer_state: DrawerState, modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ModalDrawerSheet(drawerState: androidx.compose.material3.DrawerState, modifier: androidx.compose.ui.Modifier, drawerShape: androidx.compose.ui.graphics.Shape, drawerContainerColor: androidx.compose.ui.graphics.Color, drawerContentColor: androidx.compose.ui.graphics.Color, drawerTonalElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def ModalDrawerSheet__Modifier_Shape_Color_Color_Dp_WindowInsets_Unit(modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.ModalDrawerSheet(modifier: androidx.compose.ui.Modifier, drawerShape: androidx.compose.ui.graphics.Shape, drawerContainerColor: androidx.compose.ui.graphics.Color, drawerContentColor: androidx.compose.ui.graphics.Color, drawerTonalElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def ModalNavigationDrawer(drawer_content: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., drawer_state: DrawerState = ..., gestures_enabled: bool = ..., scrim_color: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.ModalNavigationDrawer(drawerContent: kotlin.Function0, modifier: androidx.compose.ui.Modifier, drawerState: androidx.compose.material3.DrawerState, gesturesEnabled: kotlin.Boolean, scrimColor: androidx.compose.ui.graphics.Color, content: kotlin.Function0): kotlin.Unit""" + ... + +def ModalWideNavigationRail(modifier: pythonx.compose.ui.Modifier = ..., state: WideNavigationRailState = ..., hide_on_collapse: bool = ..., collapsed_shape: pythonx.compose.ui.graphics.Shape = ..., expanded_shape: pythonx.compose.ui.graphics.Shape = ..., colors: WideNavigationRailColors = ..., header: _t.Callable[[], None] | None = ..., expanded_header_top_padding: float = ..., window_insets: _t.Any = ..., arrangement: pythonx.compose.layout.Arrangement.Vertical = ..., expanded_properties: ModalWideNavigationRailProperties = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.ModalWideNavigationRail(modifier: androidx.compose.ui.Modifier, state: androidx.compose.material3.WideNavigationRailState, hideOnCollapse: kotlin.Boolean, collapsedShape: androidx.compose.ui.graphics.Shape, expandedShape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.WideNavigationRailColors, header: kotlin.Function0?, expandedHeaderTopPadding: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, arrangement: androidx.compose.foundation.layout.Arrangement.Vertical, expandedProperties: androidx.compose.material3.ModalWideNavigationRailProperties, content: kotlin.Function0): kotlin.Unit""" + ... + +def MultiChoiceSegmentedButtonRow(modifier: pythonx.compose.ui.Modifier = ..., space: float = ..., *, content: _t.Callable[[MultiChoiceSegmentedButtonRowScope], None]) -> None: + """Kotlin: androidx.compose.material3.MultiChoiceSegmentedButtonRow(modifier: androidx.compose.ui.Modifier, space: androidx.compose.ui.unit.Dp, content: kotlin.Function1): kotlin.Unit""" + ... + +def NavigationBar(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.NavigationBar(modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def NavigationBarItem(receiver: pythonx.compose.layout.RowScope, /, selected: bool, on_click: _t.Callable[[], None], icon: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., label: _t.Callable[[], None] | None = ..., always_show_label: bool = ..., colors: NavigationBarItemColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.foundation.layout.RowScope.NavigationBarItem(selected: kotlin.Boolean, onClick: kotlin.Function0, icon: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, label: kotlin.Function0?, alwaysShowLabel: kotlin.Boolean, colors: androidx.compose.material3.NavigationBarItemColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def NavigationDrawerItem(label: _t.Callable[[], None], selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., icon: _t.Callable[[], None] | None = ..., badge: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: NavigationDrawerItemColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.NavigationDrawerItem(label: kotlin.Function0, selected: kotlin.Boolean, onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, icon: kotlin.Function0?, badge: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.NavigationDrawerItemColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def NavigationRail(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., header: _t.Callable[[pythonx.compose.layout.ColumnScope], None] | None = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.NavigationRail(modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, header: kotlin.Function1?, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def NavigationRailItem(selected: bool, on_click: _t.Callable[[], None], icon: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., label: _t.Callable[[], None] | None = ..., always_show_label: bool = ..., colors: NavigationRailItemColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.NavigationRailItem(selected: kotlin.Boolean, onClick: kotlin.Function0, icon: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, label: kotlin.Function0?, alwaysShowLabel: kotlin.Boolean, colors: androidx.compose.material3.NavigationRailItemColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def OutlinedButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ButtonColors = ..., elevation: ButtonElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.OutlinedButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ButtonColors, elevation: androidx.compose.material3.ButtonElevation?, border: androidx.compose.foundation.BorderStroke?, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def OutlinedCard__Modifier_Shape_CardColors_CardElevation_BorderStroke_Unit(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.OutlinedCard(modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.CardColors, elevation: androidx.compose.material3.CardElevation, border: androidx.compose.foundation.BorderStroke, content: kotlin.Function1): kotlin.Unit""" + ... + +def OutlinedCard__Unit_Modifier_Boolean_Shape_CardColors_CardElevation_BorderStroke_MutableInteractionSource_Unit(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.OutlinedCard(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.CardColors, elevation: androidx.compose.material3.CardElevation, border: androidx.compose.foundation.BorderStroke, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def OutlinedIconButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: IconButtonColors = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.OutlinedIconButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.IconButtonColors, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def OutlinedIconToggleButton(checked: bool, on_checked_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: IconToggleButtonColors = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.OutlinedIconToggleButton(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.IconToggleButtonColors, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def OutlinedTextField__String_Unit_Modifier_Boolean_Boolean_TextStyle_Unit_Unit_Unit_Unit_Unit_Unit_Unit_Boolean_VisualTransformation_KeyboardOptions_KeyboardActions_Boolean_Int_Int_MutableInteractionSource_Shape_TextFieldColors(value: str, on_value_change: _t.Callable[[str], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: + """Kotlin: androidx.compose.material3.OutlinedTextField(value: kotlin.String, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, readOnly: kotlin.Boolean, textStyle: androidx.compose.ui.text.TextStyle, label: kotlin.Function0?, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, prefix: kotlin.Function0?, suffix: kotlin.Function0?, supportingText: kotlin.Function0?, isError: kotlin.Boolean, visualTransformation: androidx.compose.ui.text.input.VisualTransformation, keyboardOptions: androidx.compose.foundation.text.KeyboardOptions, keyboardActions: androidx.compose.foundation.text.KeyboardActions, singleLine: kotlin.Boolean, maxLines: kotlin.Int, minLines: kotlin.Int, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.TextFieldColors): kotlin.Unit""" + ... + +def OutlinedTextField__TextFieldState_Modifier_Boolean_Boolean_TextStyle_TextFieldLabelPosition_Unit_Unit_Unit_Unit_Unit_Unit_Unit_Boolean_InputTransformation_OutputTransformation_KeyboardOptions_KeyboardActionHandler_TextFieldLineLimits_Unit_ScrollState_Shape_TextFieldColors_PaddingValues_MutableInteractionSource(state: pythonx.compose.foundation.text.input.TextFieldState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label_position: TextFieldLabelPosition = ..., label: _t.Callable[[TextFieldLabelScope], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., input_transformation: pythonx.compose.foundation.text.input.InputTransformation | None = ..., output_transformation: pythonx.compose.foundation.text.input.OutputTransformation | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: pythonx.compose.foundation.text.input.KeyboardActionHandler | None = ..., line_limits: pythonx.compose.foundation.text.input.TextFieldLineLimits = ..., on_text_layout: _t.Callable[[_t.Any, _t.Callable[[], pythonx.compose.ui.text.TextLayoutResult | None]], None] | None = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.OutlinedTextField(state: androidx.compose.foundation.text.input.TextFieldState, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, readOnly: kotlin.Boolean, textStyle: androidx.compose.ui.text.TextStyle, labelPosition: androidx.compose.material3.TextFieldLabelPosition, label: kotlin.Function1?, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, prefix: kotlin.Function0?, suffix: kotlin.Function0?, supportingText: kotlin.Function0?, isError: kotlin.Boolean, inputTransformation: androidx.compose.foundation.text.input.InputTransformation?, outputTransformation: androidx.compose.foundation.text.input.OutputTransformation?, keyboardOptions: androidx.compose.foundation.text.KeyboardOptions, onKeyboardAction: androidx.compose.foundation.text.input.KeyboardActionHandler?, lineLimits: androidx.compose.foundation.text.input.TextFieldLineLimits, onTextLayout: kotlin.Function2?, scrollState: androidx.compose.foundation.ScrollState, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.TextFieldColors, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def OutlinedTextField__TextFieldValue_Unit_Modifier_Boolean_Boolean_TextStyle_Unit_Unit_Unit_Unit_Unit_Unit_Unit_Boolean_VisualTransformation_KeyboardOptions_KeyboardActions_Boolean_Int_Int_MutableInteractionSource_Shape_TextFieldColors(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: + """Kotlin: androidx.compose.material3.OutlinedTextField(value: androidx.compose.ui.text.input.TextFieldValue, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, readOnly: kotlin.Boolean, textStyle: androidx.compose.ui.text.TextStyle, label: kotlin.Function0?, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, prefix: kotlin.Function0?, suffix: kotlin.Function0?, supportingText: kotlin.Function0?, isError: kotlin.Boolean, visualTransformation: androidx.compose.ui.text.input.VisualTransformation, keyboardOptions: androidx.compose.foundation.text.KeyboardOptions, keyboardActions: androidx.compose.foundation.text.KeyboardActions, singleLine: kotlin.Boolean, maxLines: kotlin.Int, minLines: kotlin.Int, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.TextFieldColors): kotlin.Unit""" + ... + +def PermanentDrawerSheet(modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.PermanentDrawerSheet(modifier: androidx.compose.ui.Modifier, drawerShape: androidx.compose.ui.graphics.Shape, drawerContainerColor: androidx.compose.ui.graphics.Color, drawerContentColor: androidx.compose.ui.graphics.Color, drawerTonalElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def PermanentNavigationDrawer(drawer_content: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.PermanentNavigationDrawer(drawerContent: kotlin.Function0, modifier: androidx.compose.ui.Modifier, content: kotlin.Function0): kotlin.Unit""" + ... + +def PlainTooltip(receiver: TooltipScope, /, modifier: pythonx.compose.ui.Modifier = ..., caret_shape: pythonx.compose.ui.graphics.Shape | None = ..., max_width: float = ..., shape: pythonx.compose.ui.graphics.Shape = ..., content_color: _t.Any = ..., container_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.TooltipScope.PlainTooltip(modifier: androidx.compose.ui.Modifier, caretShape: androidx.compose.ui.graphics.Shape?, maxWidth: androidx.compose.ui.unit.Dp, shape: androidx.compose.ui.graphics.Shape, contentColor: androidx.compose.ui.graphics.Color, containerColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, content: kotlin.Function0): kotlin.Unit""" + ... + +def PrimaryScrollableTabRow(selected_tab_index: int, modifier: pythonx.compose.ui.Modifier = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., edge_padding: float = ..., indicator: _t.Callable[[TabIndicatorScope], None] = ..., divider: _t.Callable[[], None] = ..., min_tab_width: float = ..., *, tabs: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.PrimaryScrollableTabRow(selectedTabIndex: kotlin.Int, modifier: androidx.compose.ui.Modifier, scrollState: androidx.compose.foundation.ScrollState, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, edgePadding: androidx.compose.ui.unit.Dp, indicator: kotlin.Function1, divider: kotlin.Function0, minTabWidth: androidx.compose.ui.unit.Dp, tabs: kotlin.Function0): kotlin.Unit""" + ... + +def PrimaryTabRow(selected_tab_index: int, modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., indicator: _t.Callable[[TabIndicatorScope], None] = ..., divider: _t.Callable[[], None] = ..., *, tabs: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.PrimaryTabRow(selectedTabIndex: kotlin.Int, modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, indicator: kotlin.Function1, divider: kotlin.Function0, tabs: kotlin.Function0): kotlin.Unit""" + ... + +def ProvideTextStyle(value: _t.Any, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.ProvideTextStyle(value: androidx.compose.ui.text.TextStyle, content: kotlin.Function0): kotlin.Unit""" + ... + +def RadioButton(selected: bool, on_click: _t.Callable[[], None] | None, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: RadioButtonColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.RadioButton(selected: kotlin.Boolean, onClick: kotlin.Function0?, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.RadioButtonColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def RangeSlider__ClosedFloatingPointRange_Unit_Modifier_Boolean_ClosedFloatingPointRange_Int_Unit_SliderColors(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., value_range: _t.Any = ..., steps: int = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ...) -> None: + """Kotlin: androidx.compose.material3.RangeSlider(value: kotlin.ranges.ClosedFloatingPointRange, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, valueRange: kotlin.ranges.ClosedFloatingPointRange, steps: kotlin.Int, onValueChangeFinished: kotlin.Function0?, colors: androidx.compose.material3.SliderColors): kotlin.Unit""" + ... + +def RangeSlider__ClosedFloatingPointRange_Unit_Modifier_Boolean_ClosedFloatingPointRange_Unit_SliderColors_MutableInteractionSource_MutableInteractionSource_Unit_Unit_Unit_Int(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., value_range: _t.Any = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ..., start_interaction_source: _t.Any = ..., end_interaction_source: _t.Any = ..., start_thumb: _t.Callable[[RangeSliderState], None] = ..., end_thumb: _t.Callable[[RangeSliderState], None] = ..., track: _t.Callable[[RangeSliderState], None] = ..., steps: int = ...) -> None: + """Kotlin: androidx.compose.material3.RangeSlider(value: kotlin.ranges.ClosedFloatingPointRange, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, valueRange: kotlin.ranges.ClosedFloatingPointRange, onValueChangeFinished: kotlin.Function0?, colors: androidx.compose.material3.SliderColors, startInteractionSource: androidx.compose.foundation.interaction.MutableInteractionSource, endInteractionSource: androidx.compose.foundation.interaction.MutableInteractionSource, startThumb: kotlin.Function1, endThumb: kotlin.Function1, track: kotlin.Function1, steps: kotlin.Int): kotlin.Unit""" + ... + +def RangeSlider__RangeSliderState_Modifier_Boolean_SliderColors_MutableInteractionSource_MutableInteractionSource_Unit_Unit_Unit(state: RangeSliderState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SliderColors = ..., start_interaction_source: _t.Any = ..., end_interaction_source: _t.Any = ..., start_thumb: _t.Callable[[RangeSliderState], None] = ..., end_thumb: _t.Callable[[RangeSliderState], None] = ..., track: _t.Callable[[RangeSliderState], None] = ...) -> None: + """Kotlin: androidx.compose.material3.RangeSlider(state: androidx.compose.material3.RangeSliderState, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.SliderColors, startInteractionSource: androidx.compose.foundation.interaction.MutableInteractionSource, endInteractionSource: androidx.compose.foundation.interaction.MutableInteractionSource, startThumb: kotlin.Function1, endThumb: kotlin.Function1, track: kotlin.Function1): kotlin.Unit""" + ... + +def RichTooltip(receiver: TooltipScope, /, modifier: pythonx.compose.ui.Modifier = ..., title: _t.Callable[[], None] | None = ..., action: _t.Callable[[], None] | None = ..., caret_shape: pythonx.compose.ui.graphics.Shape | None = ..., max_width: float = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: RichTooltipColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., *, text: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.TooltipScope.RichTooltip(modifier: androidx.compose.ui.Modifier, title: kotlin.Function0?, action: kotlin.Function0?, caretShape: androidx.compose.ui.graphics.Shape?, maxWidth: androidx.compose.ui.unit.Dp, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.RichTooltipColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, text: kotlin.Function0): kotlin.Unit""" + ... + +def Scaffold(modifier: pythonx.compose.ui.Modifier = ..., top_bar: _t.Callable[[], None] = ..., bottom_bar: _t.Callable[[], None] = ..., snackbar_host: _t.Callable[[], None] = ..., floating_action_button: _t.Callable[[], None] = ..., floating_action_button_position: _t.Any = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., content_window_insets: _t.Any = ..., *, content: _t.Callable[[_t.Any], None]) -> None: + """Kotlin: androidx.compose.material3.Scaffold(modifier: androidx.compose.ui.Modifier, topBar: kotlin.Function0, bottomBar: kotlin.Function0, snackbarHost: kotlin.Function0, floatingActionButton: kotlin.Function0, floatingActionButtonPosition: androidx.compose.material3.FabPosition, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, contentWindowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def ScrollableTabRow(selected_tab_index: int, modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., edge_padding: float = ..., indicator: _t.Callable[[_t.Any], None] = ..., divider: _t.Callable[[], None] = ..., *, tabs: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.ScrollableTabRow(selectedTabIndex: kotlin.Int, modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, edgePadding: androidx.compose.ui.unit.Dp, indicator: kotlin.Function1, divider: kotlin.Function0, tabs: kotlin.Function0): kotlin.Unit""" + ... + +def SearchBar__SearchBarState_Unit_Modifier_Shape_SearchBarColors_Dp_Dp(state: SearchBarState, input_field: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ...) -> None: + """Kotlin: androidx.compose.material3.SearchBar(state: androidx.compose.material3.SearchBarState, inputField: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp): kotlin.Unit""" + ... + +def SearchBar__String_Unit_Unit_Boolean_Unit_Modifier_Boolean_Unit_Unit_Unit_Shape_SearchBarColors_Dp_Dp_WindowInsets_MutableInteractionSource_Unit(query: str, on_query_change: _t.Callable[[str], None], on_search: _t.Callable[[str], None], active: bool, on_active_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., window_insets: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.SearchBar(query: kotlin.String, onQueryChange: kotlin.Function1, onSearch: kotlin.Function1, active: kotlin.Boolean, onActiveChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def SearchBar__Unit_Boolean_Unit_Modifier_Shape_SearchBarColors_Dp_Dp_WindowInsets_Unit(input_field: _t.Callable[[], None], expanded: bool, on_expanded_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.SearchBar(inputField: kotlin.Function0, expanded: kotlin.Boolean, onExpandedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, content: kotlin.Function1): kotlin.Unit""" + ... + +def SecondaryScrollableTabRow(selected_tab_index: int, modifier: pythonx.compose.ui.Modifier = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., edge_padding: float = ..., indicator: _t.Callable[[TabIndicatorScope], None] = ..., divider: _t.Callable[[], None] = ..., min_tab_width: float = ..., *, tabs: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.SecondaryScrollableTabRow(selectedTabIndex: kotlin.Int, modifier: androidx.compose.ui.Modifier, scrollState: androidx.compose.foundation.ScrollState, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, edgePadding: androidx.compose.ui.unit.Dp, indicator: kotlin.Function1, divider: kotlin.Function0, minTabWidth: androidx.compose.ui.unit.Dp, tabs: kotlin.Function0): kotlin.Unit""" + ... + +def SecondaryTabRow(selected_tab_index: int, modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., indicator: _t.Callable[[TabIndicatorScope], None] = ..., divider: _t.Callable[[], None] = ..., *, tabs: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.SecondaryTabRow(selectedTabIndex: kotlin.Int, modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, indicator: kotlin.Function1, divider: kotlin.Function0, tabs: kotlin.Function0): kotlin.Unit""" + ... + +def SegmentedButton__MultiChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit(receiver: MultiChoiceSegmentedButtonRowScope, /, checked: bool, on_checked_change: _t.Callable[[bool], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.MultiChoiceSegmentedButtonRowScope.SegmentedButton(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1, shape: androidx.compose.ui.graphics.Shape, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.SegmentedButtonColors, border: androidx.compose.foundation.BorderStroke, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, icon: kotlin.Function0, label: kotlin.Function0): kotlin.Unit""" + ... + +def SegmentedButton__SingleChoiceSegmentedButtonRowScope_Boolean_Unit_Shape_Modifier_Boolean_SegmentedButtonColors_BorderStroke_PaddingValues_MutableInteractionSource_Unit_Unit(receiver: SingleChoiceSegmentedButtonRowScope, /, selected: bool, on_click: _t.Callable[[], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.SingleChoiceSegmentedButtonRowScope.SegmentedButton(selected: kotlin.Boolean, onClick: kotlin.Function0, shape: androidx.compose.ui.graphics.Shape, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.SegmentedButtonColors, border: androidx.compose.foundation.BorderStroke, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, icon: kotlin.Function0, label: kotlin.Function0): kotlin.Unit""" + ... + +def ShortNavigationBar(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., window_insets: _t.Any = ..., arrangement: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.ShortNavigationBar(modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, windowInsets: androidx.compose.foundation.layout.WindowInsets, arrangement: androidx.compose.material3.ShortNavigationBarArrangement, content: kotlin.Function0): kotlin.Unit""" + ... + +def ShortNavigationBarItem(selected: bool, on_click: _t.Callable[[], None], icon: _t.Callable[[], None], label: _t.Callable[[], None] | None, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., icon_position: _t.Any = ..., colors: NavigationItemColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.ShortNavigationBarItem(selected: kotlin.Boolean, onClick: kotlin.Function0, icon: kotlin.Function0, label: kotlin.Function0?, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, iconPosition: androidx.compose.material3.NavigationItemIconPosition, colors: androidx.compose.material3.NavigationItemColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def SingleChoiceSegmentedButtonRow(modifier: pythonx.compose.ui.Modifier = ..., space: float = ..., *, content: _t.Callable[[SingleChoiceSegmentedButtonRowScope], None]) -> None: + """Kotlin: androidx.compose.material3.SingleChoiceSegmentedButtonRow(modifier: androidx.compose.ui.Modifier, space: androidx.compose.ui.unit.Dp, content: kotlin.Function1): kotlin.Unit""" + ... + +def Slider__Float_Unit_Modifier_Boolean_ClosedFloatingPointRange_Int_Unit_SliderColors_MutableInteractionSource(value: float, on_value_change: _t.Callable[[float], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., value_range: _t.Any = ..., steps: int = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ..., interaction_source: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Slider(value: kotlin.Float, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, valueRange: kotlin.ranges.ClosedFloatingPointRange, steps: kotlin.Int, onValueChangeFinished: kotlin.Function0?, colors: androidx.compose.material3.SliderColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource): kotlin.Unit""" + ... + +def Slider__Float_Unit_Modifier_Boolean_Unit_SliderColors_MutableInteractionSource_Int_Unit_Unit_ClosedFloatingPointRange(value: float, on_value_change: _t.Callable[[float], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ..., interaction_source: _t.Any = ..., steps: int = ..., thumb: _t.Callable[[SliderState], None] = ..., track: _t.Callable[[SliderState], None] = ..., value_range: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Slider(value: kotlin.Float, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, onValueChangeFinished: kotlin.Function0?, colors: androidx.compose.material3.SliderColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource, steps: kotlin.Int, thumb: kotlin.Function1, track: kotlin.Function1, valueRange: kotlin.ranges.ClosedFloatingPointRange): kotlin.Unit""" + ... + +def Slider__SliderState_Modifier_Boolean_SliderColors_MutableInteractionSource_Unit_Unit(state: SliderState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SliderColors = ..., interaction_source: _t.Any = ..., thumb: _t.Callable[[SliderState], None] = ..., track: _t.Callable[[SliderState], None] = ...) -> None: + """Kotlin: androidx.compose.material3.Slider(state: androidx.compose.material3.SliderState, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.SliderColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource, thumb: kotlin.Function1, track: kotlin.Function1): kotlin.Unit""" + ... + +def SmallFloatingActionButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.SmallFloatingActionButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, elevation: androidx.compose.material3.FloatingActionButtonElevation, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def SnackbarHost(host_state: SnackbarHostState, modifier: pythonx.compose.ui.Modifier = ..., snackbar: _t.Callable[[SnackbarData], None] = ...) -> None: + """Kotlin: androidx.compose.material3.SnackbarHost(hostState: androidx.compose.material3.SnackbarHostState, modifier: androidx.compose.ui.Modifier, snackbar: kotlin.Function1): kotlin.Unit""" + ... + +def Snackbar__Modifier_Unit_Unit_Boolean_Shape_Color_Color_Color_Color_Unit(modifier: pythonx.compose.ui.Modifier = ..., action: _t.Callable[[], None] | None = ..., dismiss_action: _t.Callable[[], None] | None = ..., action_on_new_line: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., action_content_color: _t.Any = ..., dismiss_action_content_color: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.Snackbar(modifier: androidx.compose.ui.Modifier, action: kotlin.Function0?, dismissAction: kotlin.Function0?, actionOnNewLine: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, actionContentColor: androidx.compose.ui.graphics.Color, dismissActionContentColor: androidx.compose.ui.graphics.Color, content: kotlin.Function0): kotlin.Unit""" + ... + +def Snackbar__SnackbarData_Modifier_Boolean_Shape_Color_Color_Color_Color_Color(snackbar_data: SnackbarData, modifier: pythonx.compose.ui.Modifier = ..., action_on_new_line: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., action_color: _t.Any = ..., action_content_color: _t.Any = ..., dismiss_action_content_color: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Snackbar(snackbarData: androidx.compose.material3.SnackbarData, modifier: androidx.compose.ui.Modifier, actionOnNewLine: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, actionColor: androidx.compose.ui.graphics.Color, actionContentColor: androidx.compose.ui.graphics.Color, dismissActionContentColor: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def SuggestionChip(on_click: _t.Callable[[], None], label: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ChipColors = ..., elevation: ChipElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.SuggestionChip(onClick: kotlin.Function0, label: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, icon: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ChipColors, elevation: androidx.compose.material3.ChipElevation?, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def Surface__androidx_compose_ui_Modifier_androidx_compose_ui_graphics_Shape_androidx_compose_ui_graphics_Color_androidx_compose_ui_graphics_Color_androidx_compose_ui_unit_Dp_androidx_compose_ui_unit_Dp_androidx_compose_foundation_BorderStroke_kotlin_Function2_Composable____kotlin_Unit(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.Surface(modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, color: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, border: androidx.compose.foundation.BorderStroke?, content: kotlin.Function0): kotlin.Unit""" + ... + +def Surface__kotlin_Boolean_kotlin_Function0____kotlin_Unit_androidx_compose_ui_Modifier_kotlin_Boolean_androidx_compose_ui_graphics_Shape_androidx_compose_ui_graphics_Color_androidx_compose_ui_graphics_Color_androidx_compose_ui_unit_Dp_androidx_compose_ui_unit_Dp_androidx_compose_foundation_BorderStroke_androidx_compose_foundation_interaction_MutableInteractionSource_kotlin_Function2_Composable____kotlin_Unit(selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.Surface(selected: kotlin.Boolean, onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, color: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def Surface__kotlin_Boolean_kotlin_Function1_kotlin_Boolean___kotlin_Unit_androidx_compose_ui_Modifier_kotlin_Boolean_androidx_compose_ui_graphics_Shape_androidx_compose_ui_graphics_Color_androidx_compose_ui_graphics_Color_androidx_compose_ui_unit_Dp_androidx_compose_ui_unit_Dp_androidx_compose_foundation_BorderStroke_androidx_compose_foundation_interaction_MutableInteractionSource_kotlin_Function2_Composable____kotlin_Unit(checked: bool, on_checked_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.Surface(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, color: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def Surface__kotlin_Function0____kotlin_Unit_androidx_compose_ui_Modifier_kotlin_Boolean_androidx_compose_ui_graphics_Shape_androidx_compose_ui_graphics_Color_androidx_compose_ui_graphics_Color_androidx_compose_ui_unit_Dp_androidx_compose_ui_unit_Dp_androidx_compose_foundation_BorderStroke_androidx_compose_foundation_interaction_MutableInteractionSource_kotlin_Function2_Composable____kotlin_Unit(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.Surface(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, color: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, border: androidx.compose.foundation.BorderStroke?, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function0): kotlin.Unit""" + ... + +def SwipeToDismissBox(state: SwipeToDismissBoxState, background_content: _t.Callable[[pythonx.compose.layout.RowScope], None], modifier: pythonx.compose.ui.Modifier = ..., enable_dismiss_from_start_to_end: bool = ..., enable_dismiss_from_end_to_start: bool = ..., gestures_enabled: bool = ..., on_dismiss: _t.Callable[[SwipeToDismissBoxValue], None] = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.SwipeToDismissBox(state: androidx.compose.material3.SwipeToDismissBoxState, backgroundContent: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enableDismissFromStartToEnd: kotlin.Boolean, enableDismissFromEndToStart: kotlin.Boolean, gesturesEnabled: kotlin.Boolean, onDismiss: kotlin.Function1, content: kotlin.Function1): kotlin.Unit""" + ... + +def Switch(checked: bool, on_checked_change: _t.Callable[[bool], None] | None, modifier: pythonx.compose.ui.Modifier = ..., thumb_content: _t.Callable[[], None] | None = ..., enabled: bool = ..., colors: SwitchColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.Switch(checked: kotlin.Boolean, onCheckedChange: kotlin.Function1?, modifier: androidx.compose.ui.Modifier, thumbContent: kotlin.Function0?, enabled: kotlin.Boolean, colors: androidx.compose.material3.SwitchColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def TabRow(selected_tab_index: int, modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., indicator: _t.Callable[[_t.Any], None] = ..., divider: _t.Callable[[], None] = ..., *, tabs: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.TabRow(selectedTabIndex: kotlin.Int, modifier: androidx.compose.ui.Modifier, containerColor: androidx.compose.ui.graphics.Color, contentColor: androidx.compose.ui.graphics.Color, indicator: kotlin.Function1, divider: kotlin.Function0, tabs: kotlin.Function0): kotlin.Unit""" + ... + +def Tab__Boolean_Unit_Modifier_Boolean_Color_Color_MutableInteractionSource_Unit(selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., selected_content_color: _t.Any = ..., unselected_content_color: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.Tab(selected: kotlin.Boolean, onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, selectedContentColor: androidx.compose.ui.graphics.Color, unselectedContentColor: androidx.compose.ui.graphics.Color, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def Tab__Boolean_Unit_Modifier_Boolean_Unit_Unit_Color_Color_MutableInteractionSource(selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., text: _t.Callable[[], None] | None = ..., icon: _t.Callable[[], None] | None = ..., selected_content_color: _t.Any = ..., unselected_content_color: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.Tab(selected: kotlin.Boolean, onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, text: kotlin.Function0?, icon: kotlin.Function0?, selectedContentColor: androidx.compose.ui.graphics.Color, unselectedContentColor: androidx.compose.ui.graphics.Color, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def TextButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: ButtonColors = ..., elevation: ButtonElevation | None = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: + """Kotlin: androidx.compose.material3.TextButton(onClick: kotlin.Function0, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.ButtonColors, elevation: androidx.compose.material3.ButtonElevation?, border: androidx.compose.foundation.BorderStroke?, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, content: kotlin.Function1): kotlin.Unit""" + ... + +def TextField__String_Unit_Modifier_Boolean_Boolean_TextStyle_Unit_Unit_Unit_Unit_Unit_Unit_Unit_Boolean_VisualTransformation_KeyboardOptions_KeyboardActions_Boolean_Int_Int_MutableInteractionSource_Shape_TextFieldColors(value: str, on_value_change: _t.Callable[[str], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: + """Kotlin: androidx.compose.material3.TextField(value: kotlin.String, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, readOnly: kotlin.Boolean, textStyle: androidx.compose.ui.text.TextStyle, label: kotlin.Function0?, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, prefix: kotlin.Function0?, suffix: kotlin.Function0?, supportingText: kotlin.Function0?, isError: kotlin.Boolean, visualTransformation: androidx.compose.ui.text.input.VisualTransformation, keyboardOptions: androidx.compose.foundation.text.KeyboardOptions, keyboardActions: androidx.compose.foundation.text.KeyboardActions, singleLine: kotlin.Boolean, maxLines: kotlin.Int, minLines: kotlin.Int, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.TextFieldColors): kotlin.Unit""" + ... + +def TextField__TextFieldState_Modifier_Boolean_Boolean_TextStyle_TextFieldLabelPosition_Unit_Unit_Unit_Unit_Unit_Unit_Unit_Boolean_InputTransformation_OutputTransformation_KeyboardOptions_KeyboardActionHandler_TextFieldLineLimits_Unit_ScrollState_Shape_TextFieldColors_PaddingValues_MutableInteractionSource(state: pythonx.compose.foundation.text.input.TextFieldState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label_position: TextFieldLabelPosition = ..., label: _t.Callable[[TextFieldLabelScope], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., input_transformation: pythonx.compose.foundation.text.input.InputTransformation | None = ..., output_transformation: pythonx.compose.foundation.text.input.OutputTransformation | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: pythonx.compose.foundation.text.input.KeyboardActionHandler | None = ..., line_limits: pythonx.compose.foundation.text.input.TextFieldLineLimits = ..., on_text_layout: _t.Callable[[_t.Any, _t.Callable[[], pythonx.compose.ui.text.TextLayoutResult | None]], None] | None = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.TextField(state: androidx.compose.foundation.text.input.TextFieldState, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, readOnly: kotlin.Boolean, textStyle: androidx.compose.ui.text.TextStyle, labelPosition: androidx.compose.material3.TextFieldLabelPosition, label: kotlin.Function1?, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, prefix: kotlin.Function0?, suffix: kotlin.Function0?, supportingText: kotlin.Function0?, isError: kotlin.Boolean, inputTransformation: androidx.compose.foundation.text.input.InputTransformation?, outputTransformation: androidx.compose.foundation.text.input.OutputTransformation?, keyboardOptions: androidx.compose.foundation.text.KeyboardOptions, onKeyboardAction: androidx.compose.foundation.text.input.KeyboardActionHandler?, lineLimits: androidx.compose.foundation.text.input.TextFieldLineLimits, onTextLayout: kotlin.Function2?, scrollState: androidx.compose.foundation.ScrollState, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.TextFieldColors, contentPadding: androidx.compose.foundation.layout.PaddingValues, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def TextField__TextFieldValue_Unit_Modifier_Boolean_Boolean_TextStyle_Unit_Unit_Unit_Unit_Unit_Unit_Unit_Boolean_VisualTransformation_KeyboardOptions_KeyboardActions_Boolean_Int_Int_MutableInteractionSource_Shape_TextFieldColors(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: + """Kotlin: androidx.compose.material3.TextField(value: androidx.compose.ui.text.input.TextFieldValue, onValueChange: kotlin.Function1, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, readOnly: kotlin.Boolean, textStyle: androidx.compose.ui.text.TextStyle, label: kotlin.Function0?, placeholder: kotlin.Function0?, leadingIcon: kotlin.Function0?, trailingIcon: kotlin.Function0?, prefix: kotlin.Function0?, suffix: kotlin.Function0?, supportingText: kotlin.Function0?, isError: kotlin.Boolean, visualTransformation: androidx.compose.ui.text.input.VisualTransformation, keyboardOptions: androidx.compose.foundation.text.KeyboardOptions, keyboardActions: androidx.compose.foundation.text.KeyboardActions, singleLine: kotlin.Boolean, maxLines: kotlin.Int, minLines: kotlin.Int, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.TextFieldColors): kotlin.Unit""" + ... + +def Text__AnnotatedString_Modifier_Color_TextAutoSize_TextUnit_FontStyle_FontWeight_FontFamily_TextUnit_TextDecoration_TextAlign_TextUnit_TextOverflow_Boolean_Int_Int_Map_Unit_TextStyle(text: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., auto_size: _t.Any | None = ..., font_size: _t.Any = ..., font_style: _t.Any | None = ..., font_weight: _t.Any | None = ..., font_family: _t.Any | None = ..., letter_spacing: _t.Any = ..., text_decoration: _t.Any | None = ..., text_align: _t.Any | None = ..., line_height: _t.Any = ..., overflow: _t.Any = ..., soft_wrap: bool = ..., max_lines: int = ..., min_lines: int = ..., inline_content: _t.Any = ..., on_text_layout: _t.Callable[[pythonx.compose.ui.text.TextLayoutResult], None] = ..., style: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Text(text: androidx.compose.ui.text.AnnotatedString, modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, autoSize: androidx.compose.foundation.text.TextAutoSize?, fontSize: androidx.compose.ui.unit.TextUnit, fontStyle: androidx.compose.ui.text.font.FontStyle?, fontWeight: androidx.compose.ui.text.font.FontWeight?, fontFamily: androidx.compose.ui.text.font.FontFamily?, letterSpacing: androidx.compose.ui.unit.TextUnit, textDecoration: androidx.compose.ui.text.style.TextDecoration?, textAlign: androidx.compose.ui.text.style.TextAlign?, lineHeight: androidx.compose.ui.unit.TextUnit, overflow: androidx.compose.ui.text.style.TextOverflow, softWrap: kotlin.Boolean, maxLines: kotlin.Int, minLines: kotlin.Int, inlineContent: kotlin.collections.Map, onTextLayout: kotlin.Function1, style: androidx.compose.ui.text.TextStyle): kotlin.Unit""" + ... + +def Text__String_Modifier_Color_TextAutoSize_TextUnit_FontStyle_FontWeight_FontFamily_TextUnit_TextDecoration_TextAlign_TextUnit_TextOverflow_Boolean_Int_Int_Unit_TextStyle(text: str, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., auto_size: _t.Any | None = ..., font_size: _t.Any = ..., font_style: _t.Any | None = ..., font_weight: _t.Any | None = ..., font_family: _t.Any | None = ..., letter_spacing: _t.Any = ..., text_decoration: _t.Any | None = ..., text_align: _t.Any | None = ..., line_height: _t.Any = ..., overflow: _t.Any = ..., soft_wrap: bool = ..., max_lines: int = ..., min_lines: int = ..., on_text_layout: _t.Callable[[pythonx.compose.ui.text.TextLayoutResult], None] | None = ..., style: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.Text(text: kotlin.String, modifier: androidx.compose.ui.Modifier, color: androidx.compose.ui.graphics.Color, autoSize: androidx.compose.foundation.text.TextAutoSize?, fontSize: androidx.compose.ui.unit.TextUnit, fontStyle: androidx.compose.ui.text.font.FontStyle?, fontWeight: androidx.compose.ui.text.font.FontWeight?, fontFamily: androidx.compose.ui.text.font.FontFamily?, letterSpacing: androidx.compose.ui.unit.TextUnit, textDecoration: androidx.compose.ui.text.style.TextDecoration?, textAlign: androidx.compose.ui.text.style.TextAlign?, lineHeight: androidx.compose.ui.unit.TextUnit, overflow: androidx.compose.ui.text.style.TextOverflow, softWrap: kotlin.Boolean, maxLines: kotlin.Int, minLines: kotlin.Int, onTextLayout: kotlin.Function1?, style: androidx.compose.ui.text.TextStyle): kotlin.Unit""" + ... + +def TimeInput(state: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., colors: TimePickerColors = ...) -> None: + """Kotlin: androidx.compose.material3.TimeInput(state: androidx.compose.material3.TimePickerState, modifier: androidx.compose.ui.Modifier, colors: androidx.compose.material3.TimePickerColors): kotlin.Unit""" + ... + +def TimePicker(state: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., colors: TimePickerColors = ..., layout_type: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.TimePicker(state: androidx.compose.material3.TimePickerState, modifier: androidx.compose.ui.Modifier, colors: androidx.compose.material3.TimePickerColors, layoutType: androidx.compose.material3.TimePickerLayoutType): kotlin.Unit""" + ... + +def TimePickerDialog(on_dismiss_request: _t.Callable[[], None], confirm_button: _t.Callable[[], None], title: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., properties: _t.Any = ..., mode_toggle_button: _t.Callable[[], None] | None = ..., dismiss_button: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: + """Kotlin: androidx.compose.material3.TimePickerDialog(onDismissRequest: kotlin.Function0, confirmButton: kotlin.Function0, title: kotlin.Function0, modifier: androidx.compose.ui.Modifier, properties: androidx.compose.ui.window.DialogProperties, modeToggleButton: kotlin.Function0?, dismissButton: kotlin.Function0?, shape: androidx.compose.ui.graphics.Shape, containerColor: androidx.compose.ui.graphics.Color, content: kotlin.Function1): kotlin.Unit""" + ... + +def TimePickerState(initial_hour: int, initial_minute: int, is24_hour: bool) -> _t.Any: + """Kotlin: androidx.compose.material3.TimePickerState(initialHour: kotlin.Int, initialMinute: kotlin.Int, is24Hour: kotlin.Boolean): androidx.compose.material3.TimePickerState""" + ... + +def TooltipBox(position_provider: _t.Any, tooltip: _t.Callable[[TooltipScope], None], state: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., on_dismiss_request: _t.Callable[[], None] | None = ..., focusable: bool = ..., enable_user_input: bool = ..., has_action: bool = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.TooltipBox(positionProvider: androidx.compose.ui.window.PopupPositionProvider, tooltip: kotlin.Function1, state: androidx.compose.material3.TooltipState, modifier: androidx.compose.ui.Modifier, onDismissRequest: kotlin.Function0?, focusable: kotlin.Boolean, enableUserInput: kotlin.Boolean, hasAction: kotlin.Boolean, content: kotlin.Function0): kotlin.Unit""" + ... + +def TooltipState(initial_is_visible: bool = ..., is_persistent: bool = ..., mutator_mutex: pythonx.compose.foundation.MutatorMutex = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.TooltipState(initialIsVisible: kotlin.Boolean, isPersistent: kotlin.Boolean, mutatorMutex: androidx.compose.foundation.MutatorMutex): androidx.compose.material3.TooltipState""" + ... + +def TopAppBar(title: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., navigation_icon: _t.Callable[[], None] = ..., actions: _t.Callable[[pythonx.compose.layout.RowScope], None] = ..., expanded_height: float = ..., window_insets: _t.Any = ..., colors: TopAppBarColors = ..., scroll_behavior: TopAppBarScrollBehavior | None = ...) -> None: + """Kotlin: androidx.compose.material3.TopAppBar(title: kotlin.Function0, modifier: androidx.compose.ui.Modifier, navigationIcon: kotlin.Function0, actions: kotlin.Function1, expandedHeight: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, colors: androidx.compose.material3.TopAppBarColors, scrollBehavior: androidx.compose.material3.TopAppBarScrollBehavior?): kotlin.Unit""" + ... + +def TopSearchBar(state: SearchBarState, input_field: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., window_insets: _t.Any = ..., scroll_behavior: SearchBarScrollBehavior | None = ...) -> None: + """Kotlin: androidx.compose.material3.TopSearchBar(state: androidx.compose.material3.SearchBarState, inputField: kotlin.Function0, modifier: androidx.compose.ui.Modifier, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.SearchBarColors, tonalElevation: androidx.compose.ui.unit.Dp, shadowElevation: androidx.compose.ui.unit.Dp, windowInsets: androidx.compose.foundation.layout.WindowInsets, scrollBehavior: androidx.compose.material3.SearchBarScrollBehavior?): kotlin.Unit""" + ... + +def TriStateCheckbox__ToggleableState_Unit_Modifier_Boolean_CheckboxColors_MutableInteractionSource(state: _t.Any, on_click: _t.Callable[[], None] | None, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.TriStateCheckbox(state: androidx.compose.ui.state.ToggleableState, onClick: kotlin.Function0?, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.CheckboxColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def TriStateCheckbox__ToggleableState_Unit_Stroke_Stroke_Modifier_Boolean_CheckboxColors_MutableInteractionSource(state: _t.Any, on_click: _t.Callable[[], None] | None, checkmark_stroke: _t.Any, outline_stroke: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.TriStateCheckbox(state: androidx.compose.ui.state.ToggleableState, onClick: kotlin.Function0?, checkmarkStroke: androidx.compose.ui.graphics.drawscope.Stroke, outlineStroke: androidx.compose.ui.graphics.drawscope.Stroke, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, colors: androidx.compose.material3.CheckboxColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def VerticalDivider(modifier: pythonx.compose.ui.Modifier = ..., thickness: float = ..., color: _t.Any = ...) -> None: + """Kotlin: androidx.compose.material3.VerticalDivider(modifier: androidx.compose.ui.Modifier, thickness: androidx.compose.ui.unit.Dp, color: androidx.compose.ui.graphics.Color): kotlin.Unit""" + ... + +def VerticalDragHandle(modifier: pythonx.compose.ui.Modifier = ..., sizes: DragHandleSizes = ..., colors: DragHandleColors = ..., shapes: DragHandleShapes = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.VerticalDragHandle(modifier: androidx.compose.ui.Modifier, sizes: androidx.compose.material3.DragHandleSizes, colors: androidx.compose.material3.DragHandleColors, shapes: androidx.compose.material3.DragHandleShapes, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def WideNavigationRail(modifier: pythonx.compose.ui.Modifier = ..., state: WideNavigationRailState = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: WideNavigationRailColors = ..., header: _t.Callable[[], None] | None = ..., window_insets: _t.Any = ..., arrangement: pythonx.compose.layout.Arrangement.Vertical = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.material3.WideNavigationRail(modifier: androidx.compose.ui.Modifier, state: androidx.compose.material3.WideNavigationRailState, shape: androidx.compose.ui.graphics.Shape, colors: androidx.compose.material3.WideNavigationRailColors, header: kotlin.Function0?, windowInsets: androidx.compose.foundation.layout.WindowInsets, arrangement: androidx.compose.foundation.layout.Arrangement.Vertical, content: kotlin.Function0): kotlin.Unit""" + ... + +def WideNavigationRailItem(selected: bool, on_click: _t.Callable[[], None], icon: _t.Callable[[], None], label: _t.Callable[[], None] | None, rail_expanded: bool, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., icon_position: _t.Any = ..., colors: NavigationItemColors = ..., interaction_source: _t.Any | None = ...) -> None: + """Kotlin: androidx.compose.material3.WideNavigationRailItem(selected: kotlin.Boolean, onClick: kotlin.Function0, icon: kotlin.Function0, label: kotlin.Function0?, railExpanded: kotlin.Boolean, modifier: androidx.compose.ui.Modifier, enabled: kotlin.Boolean, iconPosition: androidx.compose.material3.NavigationItemIconPosition, colors: androidx.compose.material3.NavigationItemColors, interactionSource: androidx.compose.foundation.interaction.MutableInteractionSource?): kotlin.Unit""" + ... + +def content_color_for__Color(background_color: _t.Any) -> int: + """Kotlin: androidx.compose.material3.contentColorFor(backgroundColor: androidx.compose.ui.graphics.Color): androidx.compose.ui.graphics.Color""" + ... + +def content_color_for__ColorScheme_Color(receiver: ColorScheme, /, background_color: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.material3.ColorScheme.contentColorFor(backgroundColor: androidx.compose.ui.graphics.Color): androidx.compose.ui.graphics.Color""" + ... + +def dark_color_scheme(primary: _t.Any, on_primary: _t.Any, primary_container: _t.Any, on_primary_container: _t.Any, inverse_primary: _t.Any, secondary: _t.Any, on_secondary: _t.Any, secondary_container: _t.Any, on_secondary_container: _t.Any, tertiary: _t.Any, on_tertiary: _t.Any, tertiary_container: _t.Any, on_tertiary_container: _t.Any, background: _t.Any, on_background: _t.Any, surface: _t.Any, on_surface: _t.Any, surface_variant: _t.Any, on_surface_variant: _t.Any, surface_tint: _t.Any, inverse_surface: _t.Any, inverse_on_surface: _t.Any, error: _t.Any, on_error: _t.Any, error_container: _t.Any, on_error_container: _t.Any, outline: _t.Any, outline_variant: _t.Any, scrim: _t.Any, surface_bright: _t.Any, surface_container: _t.Any, surface_container_high: _t.Any, surface_container_highest: _t.Any, surface_container_low: _t.Any, surface_container_lowest: _t.Any, surface_dim: _t.Any, primary_fixed: _t.Any, primary_fixed_dim: _t.Any, on_primary_fixed: _t.Any, on_primary_fixed_variant: _t.Any, secondary_fixed: _t.Any, secondary_fixed_dim: _t.Any, on_secondary_fixed: _t.Any, on_secondary_fixed_variant: _t.Any, tertiary_fixed: _t.Any, tertiary_fixed_dim: _t.Any, on_tertiary_fixed: _t.Any, on_tertiary_fixed_variant: _t.Any) -> ColorScheme: + """Kotlin: androidx.compose.material3.darkColorScheme(primary: androidx.compose.ui.graphics.Color, onPrimary: androidx.compose.ui.graphics.Color, primaryContainer: androidx.compose.ui.graphics.Color, onPrimaryContainer: androidx.compose.ui.graphics.Color, inversePrimary: androidx.compose.ui.graphics.Color, secondary: androidx.compose.ui.graphics.Color, onSecondary: androidx.compose.ui.graphics.Color, secondaryContainer: androidx.compose.ui.graphics.Color, onSecondaryContainer: androidx.compose.ui.graphics.Color, tertiary: androidx.compose.ui.graphics.Color, onTertiary: androidx.compose.ui.graphics.Color, tertiaryContainer: androidx.compose.ui.graphics.Color, onTertiaryContainer: androidx.compose.ui.graphics.Color, background: androidx.compose.ui.graphics.Color, onBackground: androidx.compose.ui.graphics.Color, surface: androidx.compose.ui.graphics.Color, onSurface: androidx.compose.ui.graphics.Color, surfaceVariant: androidx.compose.ui.graphics.Color, onSurfaceVariant: androidx.compose.ui.graphics.Color, surfaceTint: androidx.compose.ui.graphics.Color, inverseSurface: androidx.compose.ui.graphics.Color, inverseOnSurface: androidx.compose.ui.graphics.Color, error: androidx.compose.ui.graphics.Color, onError: androidx.compose.ui.graphics.Color, errorContainer: androidx.compose.ui.graphics.Color, onErrorContainer: androidx.compose.ui.graphics.Color, outline: androidx.compose.ui.graphics.Color, outlineVariant: androidx.compose.ui.graphics.Color, scrim: androidx.compose.ui.graphics.Color, surfaceBright: androidx.compose.ui.graphics.Color, surfaceContainer: androidx.compose.ui.graphics.Color, surfaceContainerHigh: androidx.compose.ui.graphics.Color, surfaceContainerHighest: androidx.compose.ui.graphics.Color, surfaceContainerLow: androidx.compose.ui.graphics.Color, surfaceContainerLowest: androidx.compose.ui.graphics.Color, surfaceDim: androidx.compose.ui.graphics.Color, primaryFixed: androidx.compose.ui.graphics.Color, primaryFixedDim: androidx.compose.ui.graphics.Color, onPrimaryFixed: androidx.compose.ui.graphics.Color, onPrimaryFixedVariant: androidx.compose.ui.graphics.Color, secondaryFixed: androidx.compose.ui.graphics.Color, secondaryFixedDim: androidx.compose.ui.graphics.Color, onSecondaryFixed: androidx.compose.ui.graphics.Color, onSecondaryFixedVariant: androidx.compose.ui.graphics.Color, tertiaryFixed: androidx.compose.ui.graphics.Color, tertiaryFixedDim: androidx.compose.ui.graphics.Color, onTertiaryFixed: androidx.compose.ui.graphics.Color, onTertiaryFixedVariant: androidx.compose.ui.graphics.Color): androidx.compose.material3.ColorScheme""" + ... + +def light_color_scheme(primary: _t.Any, on_primary: _t.Any, primary_container: _t.Any, on_primary_container: _t.Any, inverse_primary: _t.Any, secondary: _t.Any, on_secondary: _t.Any, secondary_container: _t.Any, on_secondary_container: _t.Any, tertiary: _t.Any, on_tertiary: _t.Any, tertiary_container: _t.Any, on_tertiary_container: _t.Any, background: _t.Any, on_background: _t.Any, surface: _t.Any, on_surface: _t.Any, surface_variant: _t.Any, on_surface_variant: _t.Any, surface_tint: _t.Any, inverse_surface: _t.Any, inverse_on_surface: _t.Any, error: _t.Any, on_error: _t.Any, error_container: _t.Any, on_error_container: _t.Any, outline: _t.Any, outline_variant: _t.Any, scrim: _t.Any, surface_bright: _t.Any, surface_container: _t.Any, surface_container_high: _t.Any, surface_container_highest: _t.Any, surface_container_low: _t.Any, surface_container_lowest: _t.Any, surface_dim: _t.Any, primary_fixed: _t.Any, primary_fixed_dim: _t.Any, on_primary_fixed: _t.Any, on_primary_fixed_variant: _t.Any, secondary_fixed: _t.Any, secondary_fixed_dim: _t.Any, on_secondary_fixed: _t.Any, on_secondary_fixed_variant: _t.Any, tertiary_fixed: _t.Any, tertiary_fixed_dim: _t.Any, on_tertiary_fixed: _t.Any, on_tertiary_fixed_variant: _t.Any) -> ColorScheme: + """Kotlin: androidx.compose.material3.lightColorScheme(primary: androidx.compose.ui.graphics.Color, onPrimary: androidx.compose.ui.graphics.Color, primaryContainer: androidx.compose.ui.graphics.Color, onPrimaryContainer: androidx.compose.ui.graphics.Color, inversePrimary: androidx.compose.ui.graphics.Color, secondary: androidx.compose.ui.graphics.Color, onSecondary: androidx.compose.ui.graphics.Color, secondaryContainer: androidx.compose.ui.graphics.Color, onSecondaryContainer: androidx.compose.ui.graphics.Color, tertiary: androidx.compose.ui.graphics.Color, onTertiary: androidx.compose.ui.graphics.Color, tertiaryContainer: androidx.compose.ui.graphics.Color, onTertiaryContainer: androidx.compose.ui.graphics.Color, background: androidx.compose.ui.graphics.Color, onBackground: androidx.compose.ui.graphics.Color, surface: androidx.compose.ui.graphics.Color, onSurface: androidx.compose.ui.graphics.Color, surfaceVariant: androidx.compose.ui.graphics.Color, onSurfaceVariant: androidx.compose.ui.graphics.Color, surfaceTint: androidx.compose.ui.graphics.Color, inverseSurface: androidx.compose.ui.graphics.Color, inverseOnSurface: androidx.compose.ui.graphics.Color, error: androidx.compose.ui.graphics.Color, onError: androidx.compose.ui.graphics.Color, errorContainer: androidx.compose.ui.graphics.Color, onErrorContainer: androidx.compose.ui.graphics.Color, outline: androidx.compose.ui.graphics.Color, outlineVariant: androidx.compose.ui.graphics.Color, scrim: androidx.compose.ui.graphics.Color, surfaceBright: androidx.compose.ui.graphics.Color, surfaceContainer: androidx.compose.ui.graphics.Color, surfaceContainerHigh: androidx.compose.ui.graphics.Color, surfaceContainerHighest: androidx.compose.ui.graphics.Color, surfaceContainerLow: androidx.compose.ui.graphics.Color, surfaceContainerLowest: androidx.compose.ui.graphics.Color, surfaceDim: androidx.compose.ui.graphics.Color, primaryFixed: androidx.compose.ui.graphics.Color, primaryFixedDim: androidx.compose.ui.graphics.Color, onPrimaryFixed: androidx.compose.ui.graphics.Color, onPrimaryFixedVariant: androidx.compose.ui.graphics.Color, secondaryFixed: androidx.compose.ui.graphics.Color, secondaryFixedDim: androidx.compose.ui.graphics.Color, onSecondaryFixed: androidx.compose.ui.graphics.Color, onSecondaryFixedVariant: androidx.compose.ui.graphics.Color, tertiaryFixed: androidx.compose.ui.graphics.Color, tertiaryFixedDim: androidx.compose.ui.graphics.Color, onTertiaryFixed: androidx.compose.ui.graphics.Color, onTertiaryFixedVariant: androidx.compose.ui.graphics.Color): androidx.compose.material3.ColorScheme""" + ... + +def minimum_interactive_component_size(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.minimumInteractiveComponentSize(): androidx.compose.ui.Modifier""" + ... + +def remember_bottom_app_bar_state(initial_height_offset_limit: float = ..., initial_height_offset: float = ..., initial_content_offset: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.rememberBottomAppBarState(initialHeightOffsetLimit: kotlin.Float, initialHeightOffset: kotlin.Float, initialContentOffset: kotlin.Float): androidx.compose.material3.BottomAppBarState""" + ... + +def remember_bottom_sheet_scaffold_state(bottom_sheet_state: SheetState = ..., snackbar_host_state: SnackbarHostState = ...) -> BottomSheetScaffoldState: + """Kotlin: androidx.compose.material3.rememberBottomSheetScaffoldState(bottomSheetState: androidx.compose.material3.SheetState, snackbarHostState: androidx.compose.material3.SnackbarHostState): androidx.compose.material3.BottomSheetScaffoldState""" + ... + +def remember_date_picker_state__LocalDate_YearMonth_IntRange_DisplayMode_SelectableDates(initial_selected_date: _t.Any | None, initial_displayed_month: _t.Any | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DatePickerState: + """Kotlin: androidx.compose.material3.rememberDatePickerState(initialSelectedDate: java.time.LocalDate?, initialDisplayedMonth: java.time.YearMonth?, yearRange: kotlin.ranges.IntRange, initialDisplayMode: androidx.compose.material3.DisplayMode, selectableDates: androidx.compose.material3.SelectableDates): androidx.compose.material3.DatePickerState""" + ... + +def remember_date_picker_state__Long_Long_IntRange_DisplayMode_SelectableDates(initial_selected_date_millis: int | None = ..., initial_displayed_month_millis: int | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DatePickerState: + """Kotlin: androidx.compose.material3.rememberDatePickerState(initialSelectedDateMillis: kotlin.Long?, initialDisplayedMonthMillis: kotlin.Long?, yearRange: kotlin.ranges.IntRange, initialDisplayMode: androidx.compose.material3.DisplayMode, selectableDates: androidx.compose.material3.SelectableDates): androidx.compose.material3.DatePickerState""" + ... + +def remember_date_range_picker_state__LocalDate_LocalDate_YearMonth_IntRange_DisplayMode_SelectableDates(initial_selected_start_date: _t.Any | None, initial_selected_end_date: _t.Any | None, initial_displayed_month: _t.Any | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DateRangePickerState: + """Kotlin: androidx.compose.material3.rememberDateRangePickerState(initialSelectedStartDate: java.time.LocalDate?, initialSelectedEndDate: java.time.LocalDate?, initialDisplayedMonth: java.time.YearMonth?, yearRange: kotlin.ranges.IntRange, initialDisplayMode: androidx.compose.material3.DisplayMode, selectableDates: androidx.compose.material3.SelectableDates): androidx.compose.material3.DateRangePickerState""" + ... + +def remember_date_range_picker_state__Long_Long_Long_IntRange_DisplayMode_SelectableDates(initial_selected_start_date_millis: int | None = ..., initial_selected_end_date_millis: int | None = ..., initial_displayed_month_millis: int | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DateRangePickerState: + """Kotlin: androidx.compose.material3.rememberDateRangePickerState(initialSelectedStartDateMillis: kotlin.Long?, initialSelectedEndDateMillis: kotlin.Long?, initialDisplayedMonthMillis: kotlin.Long?, yearRange: kotlin.ranges.IntRange, initialDisplayMode: androidx.compose.material3.DisplayMode, selectableDates: androidx.compose.material3.SelectableDates): androidx.compose.material3.DateRangePickerState""" + ... + +def remember_drawer_state(initial_value: DrawerValue, confirm_state_change: _t.Callable[[DrawerValue], bool] = ...) -> DrawerState: + """Kotlin: androidx.compose.material3.rememberDrawerState(initialValue: androidx.compose.material3.DrawerValue, confirmStateChange: kotlin.Function1): androidx.compose.material3.DrawerState""" + ... + +def remember_modal_bottom_sheet_state(skip_partially_expanded: bool = ..., confirm_value_change: _t.Callable[[SheetValue], bool] = ...) -> SheetState: + """Kotlin: androidx.compose.material3.rememberModalBottomSheetState(skipPartiallyExpanded: kotlin.Boolean, confirmValueChange: kotlin.Function1): androidx.compose.material3.SheetState""" + ... + +def remember_range_slider_state(active_range_start: float = ..., active_range_end: float = ..., steps: int = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., value_range: _t.Any = ...) -> RangeSliderState: + """Kotlin: androidx.compose.material3.rememberRangeSliderState(activeRangeStart: kotlin.Float, activeRangeEnd: kotlin.Float, steps: kotlin.Int, onValueChangeFinished: kotlin.Function0?, valueRange: kotlin.ranges.ClosedFloatingPointRange): androidx.compose.material3.RangeSliderState""" + ... + +def remember_search_bar_state(initial_value: SearchBarValue = ..., animation_spec_for_expand: _t.Any = ..., animation_spec_for_collapse: _t.Any = ...) -> SearchBarState: + """Kotlin: androidx.compose.material3.rememberSearchBarState(initialValue: androidx.compose.material3.SearchBarValue, animationSpecForExpand: androidx.compose.animation.core.AnimationSpec, animationSpecForCollapse: androidx.compose.animation.core.AnimationSpec): androidx.compose.material3.SearchBarState""" + ... + +def remember_slider_state(value: float = ..., steps: int = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., value_range: _t.Any = ...) -> SliderState: + """Kotlin: androidx.compose.material3.rememberSliderState(value: kotlin.Float, steps: kotlin.Int, onValueChangeFinished: kotlin.Function0?, valueRange: kotlin.ranges.ClosedFloatingPointRange): androidx.compose.material3.SliderState""" + ... + +def remember_standard_bottom_sheet_state(initial_value: SheetValue = ..., confirm_value_change: _t.Callable[[SheetValue], bool] = ..., skip_hidden_state: bool = ...) -> SheetState: + """Kotlin: androidx.compose.material3.rememberStandardBottomSheetState(initialValue: androidx.compose.material3.SheetValue, confirmValueChange: kotlin.Function1, skipHiddenState: kotlin.Boolean): androidx.compose.material3.SheetState""" + ... + +def remember_swipe_to_dismiss_box_state__SwipeToDismissBoxValue_Boolean_Float(initial_value: SwipeToDismissBoxValue = ..., confirm_value_change: _t.Callable[[SwipeToDismissBoxValue], bool] = ..., positional_threshold: _t.Callable[[float], float] = ...) -> SwipeToDismissBoxState: + """Kotlin: androidx.compose.material3.rememberSwipeToDismissBoxState(initialValue: androidx.compose.material3.SwipeToDismissBoxValue, confirmValueChange: kotlin.Function1, positionalThreshold: kotlin.Function1): androidx.compose.material3.SwipeToDismissBoxState""" + ... + +def remember_swipe_to_dismiss_box_state__SwipeToDismissBoxValue_Float(initial_value: SwipeToDismissBoxValue = ..., positional_threshold: _t.Callable[[float], float] = ...) -> SwipeToDismissBoxState: + """Kotlin: androidx.compose.material3.rememberSwipeToDismissBoxState(initialValue: androidx.compose.material3.SwipeToDismissBoxValue, positionalThreshold: kotlin.Function1): androidx.compose.material3.SwipeToDismissBoxState""" + ... + +def remember_time_picker_state(initial_hour: int = ..., initial_minute: int = ..., is24_hour: bool = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.rememberTimePickerState(initialHour: kotlin.Int, initialMinute: kotlin.Int, is24Hour: kotlin.Boolean): androidx.compose.material3.TimePickerState""" + ... + +def remember_tooltip_state(initial_is_visible: bool = ..., is_persistent: bool = ..., mutator_mutex: pythonx.compose.foundation.MutatorMutex = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.rememberTooltipState(initialIsVisible: kotlin.Boolean, isPersistent: kotlin.Boolean, mutatorMutex: androidx.compose.foundation.MutatorMutex): androidx.compose.material3.TooltipState""" + ... + +def remember_top_app_bar_state(initial_height_offset_limit: float = ..., initial_height_offset: float = ..., initial_content_offset: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.rememberTopAppBarState(initialHeightOffsetLimit: kotlin.Float, initialHeightOffset: kotlin.Float, initialContentOffset: kotlin.Float): androidx.compose.material3.TopAppBarState""" + ... + +def remember_wide_navigation_rail_state(initial_value: WideNavigationRailValue = ...) -> WideNavigationRailState: + """Kotlin: androidx.compose.material3.rememberWideNavigationRailState(initialValue: androidx.compose.material3.WideNavigationRailValue): androidx.compose.material3.WideNavigationRailState""" + ... + +def ripple__Boolean_Dp_Color(bounded: bool = ..., radius: float = ..., color: _t.Any = ...) -> pythonx.compose.foundation.IndicationNodeFactory: + """Kotlin: androidx.compose.material3.ripple(bounded: kotlin.Boolean, radius: androidx.compose.ui.unit.Dp, color: androidx.compose.ui.graphics.Color): androidx.compose.foundation.IndicationNodeFactory""" + ... + +def ripple__ColorProducer_Boolean_Dp(color: pythonx.compose.ui.graphics.ColorProducer, bounded: bool = ..., radius: float = ...) -> pythonx.compose.foundation.IndicationNodeFactory: + """Kotlin: androidx.compose.material3.ripple(color: androidx.compose.ui.graphics.ColorProducer, bounded: kotlin.Boolean, radius: androidx.compose.ui.unit.Dp): androidx.compose.foundation.IndicationNodeFactory""" + ... + +def surface_color_at_elevation(receiver: ColorScheme, /, elevation: float) -> _t.Any: + """Kotlin: androidx.compose.material3.ColorScheme.surfaceColorAtElevation(elevation: androidx.compose.ui.unit.Dp): androidx.compose.ui.graphics.Color""" + ... + +def ColorScheme__Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color(primary: _t.Any, on_primary: _t.Any, primary_container: _t.Any, on_primary_container: _t.Any, inverse_primary: _t.Any, secondary: _t.Any, on_secondary: _t.Any, secondary_container: _t.Any, on_secondary_container: _t.Any, tertiary: _t.Any, on_tertiary: _t.Any, tertiary_container: _t.Any, on_tertiary_container: _t.Any, background: _t.Any, on_background: _t.Any, surface: _t.Any, on_surface: _t.Any, surface_variant: _t.Any, on_surface_variant: _t.Any, surface_tint: _t.Any, inverse_surface: _t.Any, inverse_on_surface: _t.Any, error: _t.Any, on_error: _t.Any, error_container: _t.Any, on_error_container: _t.Any, outline: _t.Any, outline_variant: _t.Any, scrim: _t.Any) -> ColorScheme: + """Kotlin: androidx.compose.material3.ColorScheme(primary: androidx.compose.ui.graphics.Color, onPrimary: androidx.compose.ui.graphics.Color, primaryContainer: androidx.compose.ui.graphics.Color, onPrimaryContainer: androidx.compose.ui.graphics.Color, inversePrimary: androidx.compose.ui.graphics.Color, secondary: androidx.compose.ui.graphics.Color, onSecondary: androidx.compose.ui.graphics.Color, secondaryContainer: androidx.compose.ui.graphics.Color, onSecondaryContainer: androidx.compose.ui.graphics.Color, tertiary: androidx.compose.ui.graphics.Color, onTertiary: androidx.compose.ui.graphics.Color, tertiaryContainer: androidx.compose.ui.graphics.Color, onTertiaryContainer: androidx.compose.ui.graphics.Color, background: androidx.compose.ui.graphics.Color, onBackground: androidx.compose.ui.graphics.Color, surface: androidx.compose.ui.graphics.Color, onSurface: androidx.compose.ui.graphics.Color, surfaceVariant: androidx.compose.ui.graphics.Color, onSurfaceVariant: androidx.compose.ui.graphics.Color, surfaceTint: androidx.compose.ui.graphics.Color, inverseSurface: androidx.compose.ui.graphics.Color, inverseOnSurface: androidx.compose.ui.graphics.Color, error: androidx.compose.ui.graphics.Color, onError: androidx.compose.ui.graphics.Color, errorContainer: androidx.compose.ui.graphics.Color, onErrorContainer: androidx.compose.ui.graphics.Color, outline: androidx.compose.ui.graphics.Color, outlineVariant: androidx.compose.ui.graphics.Color, scrim: androidx.compose.ui.graphics.Color): androidx.compose.material3.ColorScheme""" + ... + +def ColorScheme__Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color(primary: _t.Any, on_primary: _t.Any, primary_container: _t.Any, on_primary_container: _t.Any, inverse_primary: _t.Any, secondary: _t.Any, on_secondary: _t.Any, secondary_container: _t.Any, on_secondary_container: _t.Any, tertiary: _t.Any, on_tertiary: _t.Any, tertiary_container: _t.Any, on_tertiary_container: _t.Any, background: _t.Any, on_background: _t.Any, surface: _t.Any, on_surface: _t.Any, surface_variant: _t.Any, on_surface_variant: _t.Any, surface_tint: _t.Any, inverse_surface: _t.Any, inverse_on_surface: _t.Any, error: _t.Any, on_error: _t.Any, error_container: _t.Any, on_error_container: _t.Any, outline: _t.Any, outline_variant: _t.Any, scrim: _t.Any, surface_bright: _t.Any, surface_dim: _t.Any, surface_container: _t.Any, surface_container_high: _t.Any, surface_container_highest: _t.Any, surface_container_low: _t.Any, surface_container_lowest: _t.Any) -> ColorScheme: + """Kotlin: androidx.compose.material3.ColorScheme(primary: androidx.compose.ui.graphics.Color, onPrimary: androidx.compose.ui.graphics.Color, primaryContainer: androidx.compose.ui.graphics.Color, onPrimaryContainer: androidx.compose.ui.graphics.Color, inversePrimary: androidx.compose.ui.graphics.Color, secondary: androidx.compose.ui.graphics.Color, onSecondary: androidx.compose.ui.graphics.Color, secondaryContainer: androidx.compose.ui.graphics.Color, onSecondaryContainer: androidx.compose.ui.graphics.Color, tertiary: androidx.compose.ui.graphics.Color, onTertiary: androidx.compose.ui.graphics.Color, tertiaryContainer: androidx.compose.ui.graphics.Color, onTertiaryContainer: androidx.compose.ui.graphics.Color, background: androidx.compose.ui.graphics.Color, onBackground: androidx.compose.ui.graphics.Color, surface: androidx.compose.ui.graphics.Color, onSurface: androidx.compose.ui.graphics.Color, surfaceVariant: androidx.compose.ui.graphics.Color, onSurfaceVariant: androidx.compose.ui.graphics.Color, surfaceTint: androidx.compose.ui.graphics.Color, inverseSurface: androidx.compose.ui.graphics.Color, inverseOnSurface: androidx.compose.ui.graphics.Color, error: androidx.compose.ui.graphics.Color, onError: androidx.compose.ui.graphics.Color, errorContainer: androidx.compose.ui.graphics.Color, onErrorContainer: androidx.compose.ui.graphics.Color, outline: androidx.compose.ui.graphics.Color, outlineVariant: androidx.compose.ui.graphics.Color, scrim: androidx.compose.ui.graphics.Color, surfaceBright: androidx.compose.ui.graphics.Color, surfaceDim: androidx.compose.ui.graphics.Color, surfaceContainer: androidx.compose.ui.graphics.Color, surfaceContainerHigh: androidx.compose.ui.graphics.Color, surfaceContainerHighest: androidx.compose.ui.graphics.Color, surfaceContainerLow: androidx.compose.ui.graphics.Color, surfaceContainerLowest: androidx.compose.ui.graphics.Color): androidx.compose.material3.ColorScheme""" + ... + +def ColorScheme__Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color_Color(primary: _t.Any, on_primary: _t.Any, primary_container: _t.Any, on_primary_container: _t.Any, inverse_primary: _t.Any, secondary: _t.Any, on_secondary: _t.Any, secondary_container: _t.Any, on_secondary_container: _t.Any, tertiary: _t.Any, on_tertiary: _t.Any, tertiary_container: _t.Any, on_tertiary_container: _t.Any, background: _t.Any, on_background: _t.Any, surface: _t.Any, on_surface: _t.Any, surface_variant: _t.Any, on_surface_variant: _t.Any, surface_tint: _t.Any, inverse_surface: _t.Any, inverse_on_surface: _t.Any, error: _t.Any, on_error: _t.Any, error_container: _t.Any, on_error_container: _t.Any, outline: _t.Any, outline_variant: _t.Any, scrim: _t.Any, surface_bright: _t.Any, surface_dim: _t.Any, surface_container: _t.Any, surface_container_high: _t.Any, surface_container_highest: _t.Any, surface_container_low: _t.Any, surface_container_lowest: _t.Any, primary_fixed: _t.Any, primary_fixed_dim: _t.Any, on_primary_fixed: _t.Any, on_primary_fixed_variant: _t.Any, secondary_fixed: _t.Any, secondary_fixed_dim: _t.Any, on_secondary_fixed: _t.Any, on_secondary_fixed_variant: _t.Any, tertiary_fixed: _t.Any, tertiary_fixed_dim: _t.Any, on_tertiary_fixed: _t.Any, on_tertiary_fixed_variant: _t.Any) -> ColorScheme: + """Kotlin: androidx.compose.material3.ColorScheme(primary: androidx.compose.ui.graphics.Color, onPrimary: androidx.compose.ui.graphics.Color, primaryContainer: androidx.compose.ui.graphics.Color, onPrimaryContainer: androidx.compose.ui.graphics.Color, inversePrimary: androidx.compose.ui.graphics.Color, secondary: androidx.compose.ui.graphics.Color, onSecondary: androidx.compose.ui.graphics.Color, secondaryContainer: androidx.compose.ui.graphics.Color, onSecondaryContainer: androidx.compose.ui.graphics.Color, tertiary: androidx.compose.ui.graphics.Color, onTertiary: androidx.compose.ui.graphics.Color, tertiaryContainer: androidx.compose.ui.graphics.Color, onTertiaryContainer: androidx.compose.ui.graphics.Color, background: androidx.compose.ui.graphics.Color, onBackground: androidx.compose.ui.graphics.Color, surface: androidx.compose.ui.graphics.Color, onSurface: androidx.compose.ui.graphics.Color, surfaceVariant: androidx.compose.ui.graphics.Color, onSurfaceVariant: androidx.compose.ui.graphics.Color, surfaceTint: androidx.compose.ui.graphics.Color, inverseSurface: androidx.compose.ui.graphics.Color, inverseOnSurface: androidx.compose.ui.graphics.Color, error: androidx.compose.ui.graphics.Color, onError: androidx.compose.ui.graphics.Color, errorContainer: androidx.compose.ui.graphics.Color, onErrorContainer: androidx.compose.ui.graphics.Color, outline: androidx.compose.ui.graphics.Color, outlineVariant: androidx.compose.ui.graphics.Color, scrim: androidx.compose.ui.graphics.Color, surfaceBright: androidx.compose.ui.graphics.Color, surfaceDim: androidx.compose.ui.graphics.Color, surfaceContainer: androidx.compose.ui.graphics.Color, surfaceContainerHigh: androidx.compose.ui.graphics.Color, surfaceContainerHighest: androidx.compose.ui.graphics.Color, surfaceContainerLow: androidx.compose.ui.graphics.Color, surfaceContainerLowest: androidx.compose.ui.graphics.Color, primaryFixed: androidx.compose.ui.graphics.Color, primaryFixedDim: androidx.compose.ui.graphics.Color, onPrimaryFixed: androidx.compose.ui.graphics.Color, onPrimaryFixedVariant: androidx.compose.ui.graphics.Color, secondaryFixed: androidx.compose.ui.graphics.Color, secondaryFixedDim: androidx.compose.ui.graphics.Color, onSecondaryFixed: androidx.compose.ui.graphics.Color, onSecondaryFixedVariant: androidx.compose.ui.graphics.Color, tertiaryFixed: androidx.compose.ui.graphics.Color, tertiaryFixedDim: androidx.compose.ui.graphics.Color, onTertiaryFixed: androidx.compose.ui.graphics.Color, onTertiaryFixedVariant: androidx.compose.ui.graphics.Color): androidx.compose.material3.ColorScheme""" + ... + +def SearchBarColors__Color_Color(container_color: _t.Any, divider_color: _t.Any) -> SearchBarColors: + """Kotlin: androidx.compose.material3.SearchBarColors(containerColor: androidx.compose.ui.graphics.Color, dividerColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.SearchBarColors""" + ... + +def SearchBarColors__Color_Color_TextFieldColors(container_color: _t.Any, divider_color: _t.Any, input_field_colors: TextFieldColors) -> SearchBarColors: + """Kotlin: androidx.compose.material3.SearchBarColors(containerColor: androidx.compose.ui.graphics.Color, dividerColor: androidx.compose.ui.graphics.Color, inputFieldColors: androidx.compose.material3.TextFieldColors): androidx.compose.material3.SearchBarColors""" + ... + +def SwipeToDismissBoxState__SwipeToDismissBoxValue_Density_Boolean_Float(initial_value: SwipeToDismissBoxValue, density: _t.Any, confirm_value_change: _t.Callable[[SwipeToDismissBoxValue], bool] = ..., *, positional_threshold: _t.Callable[[float], float]) -> SwipeToDismissBoxState: + """Kotlin: androidx.compose.material3.SwipeToDismissBoxState(initialValue: androidx.compose.material3.SwipeToDismissBoxValue, density: androidx.compose.ui.unit.Density, confirmValueChange: kotlin.Function1, positionalThreshold: kotlin.Function1): androidx.compose.material3.SwipeToDismissBoxState""" + ... + +def SwipeToDismissBoxState__SwipeToDismissBoxValue_Float(initial_value: SwipeToDismissBoxValue, positional_threshold: _t.Callable[[float], float]) -> SwipeToDismissBoxState: + """Kotlin: androidx.compose.material3.SwipeToDismissBoxState(initialValue: androidx.compose.material3.SwipeToDismissBoxValue, positionalThreshold: kotlin.Function1): androidx.compose.material3.SwipeToDismissBoxState""" + ... + +def TopAppBarColors__Color_Color_Color_Color_Color(container_color: _t.Any, scrolled_container_color: _t.Any, navigation_icon_content_color: _t.Any, title_content_color: _t.Any, action_icon_content_color: _t.Any) -> TopAppBarColors: + """Kotlin: androidx.compose.material3.TopAppBarColors(containerColor: androidx.compose.ui.graphics.Color, scrolledContainerColor: androidx.compose.ui.graphics.Color, navigationIconContentColor: androidx.compose.ui.graphics.Color, titleContentColor: androidx.compose.ui.graphics.Color, actionIconContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.TopAppBarColors""" + ... + +def TopAppBarColors__Color_Color_Color_Color_Color_Color(container_color: _t.Any, scrolled_container_color: _t.Any, navigation_icon_content_color: _t.Any, title_content_color: _t.Any, action_icon_content_color: _t.Any, subtitle_content_color: _t.Any) -> TopAppBarColors: + """Kotlin: androidx.compose.material3.TopAppBarColors(containerColor: androidx.compose.ui.graphics.Color, scrolledContainerColor: androidx.compose.ui.graphics.Color, navigationIconContentColor: androidx.compose.ui.graphics.Color, titleContentColor: androidx.compose.ui.graphics.Color, actionIconContentColor: androidx.compose.ui.graphics.Color, subtitleContentColor: androidx.compose.ui.graphics.Color): androidx.compose.material3.TopAppBarColors""" + ... + +@_t.overload +def AlertDialog(on_dismiss_request: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., properties: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: ... +@_t.overload +def AlertDialog(on_dismiss_request: _t.Callable[[], None], confirm_button: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., dismiss_button: _t.Callable[[], None] | None = ..., icon: _t.Callable[[], None] | None = ..., title: _t.Callable[[], None] | None = ..., text: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., icon_content_color: _t.Any = ..., title_content_color: _t.Any = ..., text_content_color: _t.Any = ..., tonal_elevation: float = ..., properties: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def BottomAppBar(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ..., scroll_behavior: BottomAppBarScrollBehavior | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: ... +@_t.overload +def BottomAppBar(modifier: pythonx.compose.ui.Modifier = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def BottomAppBar(actions: _t.Callable[[pythonx.compose.layout.RowScope], None], modifier: pythonx.compose.ui.Modifier = ..., floating_action_button: _t.Callable[[], None] | None = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def BottomAppBar(actions: _t.Callable[[pythonx.compose.layout.RowScope], None], modifier: pythonx.compose.ui.Modifier = ..., floating_action_button: _t.Callable[[], None] | None = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., content_padding: _t.Any = ..., window_insets: _t.Any = ..., scroll_behavior: BottomAppBarScrollBehavior | None = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Card(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def Card(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Checkbox(checked: bool, on_checked_change: _t.Callable[[bool], None] | None, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: ... +@_t.overload +def Checkbox(checked: bool, on_checked_change: _t.Callable[[bool], None] | None, checkmark_stroke: _t.Any, outline_stroke: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def CircularProgressIndicator(progress: float, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., stroke_width: float = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ...) -> None: ... +@_t.overload +def CircularProgressIndicator(progress: _t.Callable[[], float], modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., stroke_width: float = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def CircularProgressIndicator(modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., stroke_width: float = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def DismissibleDrawerSheet(drawer_state: DrawerState, modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def DismissibleDrawerSheet(modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def DockedSearchBar(query: str, on_query_change: _t.Callable[[str], None], on_search: _t.Callable[[str], None], active: bool, on_active_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def DockedSearchBar(input_field: _t.Callable[[], None], expanded: bool, on_expanded_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def ElevatedCard(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def ElevatedCard(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def ExtendedFloatingActionButton(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.RowScope], None]) -> None: ... +@_t.overload +def ExtendedFloatingActionButton(text: _t.Callable[[], None], icon: _t.Callable[[], None], on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., expanded: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., elevation: FloatingActionButtonElevation = ..., interaction_source: _t.Any | None = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Icon(bitmap: _t.Any, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ..., tint: _t.Any = ...) -> None: ... +@_t.overload +def Icon(image_vector: pythonx.compose.ui.graphics.vector.ImageVector, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ..., tint: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def Icon(painter: _t.Any, tint: pythonx.compose.ui.graphics.ColorProducer | None, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def Icon(painter: _t.Any, content_description: str | None, modifier: pythonx.compose.ui.Modifier = ..., tint: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def LinearProgressIndicator(progress: float, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ...) -> None: ... +@_t.overload +def LinearProgressIndicator(progress: _t.Callable[[], float], modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ..., draw_stop_indicator: _t.Callable[[_t.Any], None] = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def LinearProgressIndicator(modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., track_color: _t.Any = ..., stroke_cap: _t.Any = ..., gap_size: float = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def ModalDrawerSheet(drawer_state: DrawerState, modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def ModalDrawerSheet(modifier: pythonx.compose.ui.Modifier = ..., drawer_shape: pythonx.compose.ui.graphics.Shape = ..., drawer_container_color: _t.Any = ..., drawer_content_color: _t.Any = ..., drawer_tonal_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def OutlinedCard(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def OutlinedCard(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: CardColors = ..., elevation: CardElevation = ..., border: pythonx.compose.foundation.BorderStroke = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def OutlinedTextField(value: str, on_value_change: _t.Callable[[str], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: ... +@_t.overload +def OutlinedTextField(state: pythonx.compose.foundation.text.input.TextFieldState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label_position: TextFieldLabelPosition = ..., label: _t.Callable[[TextFieldLabelScope], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., input_transformation: pythonx.compose.foundation.text.input.InputTransformation | None = ..., output_transformation: pythonx.compose.foundation.text.input.OutputTransformation | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: pythonx.compose.foundation.text.input.KeyboardActionHandler | None = ..., line_limits: pythonx.compose.foundation.text.input.TextFieldLineLimits = ..., on_text_layout: _t.Callable[[_t.Any, _t.Callable[[], pythonx.compose.ui.text.TextLayoutResult | None]], None] | None = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def OutlinedTextField(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def RangeSlider(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., value_range: _t.Any = ..., steps: int = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ...) -> None: ... +@_t.overload +def RangeSlider(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., value_range: _t.Any = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ..., start_interaction_source: _t.Any = ..., end_interaction_source: _t.Any = ..., start_thumb: _t.Callable[[RangeSliderState], None] = ..., end_thumb: _t.Callable[[RangeSliderState], None] = ..., track: _t.Callable[[RangeSliderState], None] = ..., steps: int = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def RangeSlider(state: RangeSliderState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SliderColors = ..., start_interaction_source: _t.Any = ..., end_interaction_source: _t.Any = ..., start_thumb: _t.Callable[[RangeSliderState], None] = ..., end_thumb: _t.Callable[[RangeSliderState], None] = ..., track: _t.Callable[[RangeSliderState], None] = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def SearchBar(state: SearchBarState, input_field: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ...) -> None: ... +@_t.overload +def SearchBar(query: str, on_query_change: _t.Callable[[str], None], on_search: _t.Callable[[str], None], active: bool, on_active_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., window_insets: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def SearchBar(input_field: _t.Callable[[], None], expanded: bool, on_expanded_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: SearchBarColors = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., window_insets: _t.Any = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def SegmentedButton(receiver: MultiChoiceSegmentedButtonRowScope, /, checked: bool, on_checked_change: _t.Callable[[bool], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... +@_t.overload +def SegmentedButton(receiver: SingleChoiceSegmentedButtonRowScope, /, selected: bool, on_click: _t.Callable[[], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SegmentedButtonColors = ..., border: pythonx.compose.foundation.BorderStroke = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Slider(value: float, on_value_change: _t.Callable[[float], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., value_range: _t.Any = ..., steps: int = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ..., interaction_source: _t.Any = ...) -> None: ... +@_t.overload +def Slider(value: float, on_value_change: _t.Callable[[float], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., on_value_change_finished: _t.Callable[[], None] | None = ..., colors: SliderColors = ..., interaction_source: _t.Any = ..., steps: int = ..., thumb: _t.Callable[[SliderState], None] = ..., track: _t.Callable[[SliderState], None] = ..., value_range: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def Slider(state: SliderState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: SliderColors = ..., interaction_source: _t.Any = ..., thumb: _t.Callable[[SliderState], None] = ..., track: _t.Callable[[SliderState], None] = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Snackbar(modifier: pythonx.compose.ui.Modifier = ..., action: _t.Callable[[], None] | None = ..., dismiss_action: _t.Callable[[], None] | None = ..., action_on_new_line: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., action_content_color: _t.Any = ..., dismiss_action_content_color: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: ... +@_t.overload +def Snackbar(snackbar_data: SnackbarData, modifier: pythonx.compose.ui.Modifier = ..., action_on_new_line: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., container_color: _t.Any = ..., content_color: _t.Any = ..., action_color: _t.Any = ..., action_content_color: _t.Any = ..., dismiss_action_content_color: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Surface(modifier: pythonx.compose.ui.Modifier = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., *, content: _t.Callable[[], None]) -> None: ... +@_t.overload +def Surface(selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def Surface(checked: bool, on_checked_change: _t.Callable[[bool], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def Surface(on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., shape: pythonx.compose.ui.graphics.Shape = ..., color: _t.Any = ..., content_color: _t.Any = ..., tonal_elevation: float = ..., shadow_elevation: float = ..., border: pythonx.compose.foundation.BorderStroke | None = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[], None]) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Tab(selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., selected_content_color: _t.Any = ..., unselected_content_color: _t.Any = ..., interaction_source: _t.Any | None = ..., *, content: _t.Callable[[pythonx.compose.layout.ColumnScope], None]) -> None: ... +@_t.overload +def Tab(selected: bool, on_click: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., text: _t.Callable[[], None] | None = ..., icon: _t.Callable[[], None] | None = ..., selected_content_color: _t.Any = ..., unselected_content_color: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Text(text: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., auto_size: _t.Any | None = ..., font_size: _t.Any = ..., font_style: _t.Any | None = ..., font_weight: _t.Any | None = ..., font_family: _t.Any | None = ..., letter_spacing: _t.Any = ..., text_decoration: _t.Any | None = ..., text_align: _t.Any | None = ..., line_height: _t.Any = ..., overflow: _t.Any = ..., soft_wrap: bool = ..., max_lines: int = ..., min_lines: int = ..., inline_content: _t.Any = ..., on_text_layout: _t.Callable[[pythonx.compose.ui.text.TextLayoutResult], None] = ..., style: _t.Any = ...) -> None: ... +@_t.overload +def Text(text: str, modifier: pythonx.compose.ui.Modifier = ..., color: _t.Any = ..., auto_size: _t.Any | None = ..., font_size: _t.Any = ..., font_style: _t.Any | None = ..., font_weight: _t.Any | None = ..., font_family: _t.Any | None = ..., letter_spacing: _t.Any = ..., text_decoration: _t.Any | None = ..., text_align: _t.Any | None = ..., line_height: _t.Any = ..., overflow: _t.Any = ..., soft_wrap: bool = ..., max_lines: int = ..., min_lines: int = ..., on_text_layout: _t.Callable[[pythonx.compose.ui.text.TextLayoutResult], None] | None = ..., style: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def TextField(value: str, on_value_change: _t.Callable[[str], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: ... +@_t.overload +def TextField(state: pythonx.compose.foundation.text.input.TextFieldState, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label_position: TextFieldLabelPosition = ..., label: _t.Callable[[TextFieldLabelScope], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., input_transformation: pythonx.compose.foundation.text.input.InputTransformation | None = ..., output_transformation: pythonx.compose.foundation.text.input.OutputTransformation | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: pythonx.compose.foundation.text.input.KeyboardActionHandler | None = ..., line_limits: pythonx.compose.foundation.text.input.TextFieldLineLimits = ..., on_text_layout: _t.Callable[[_t.Any, _t.Callable[[], pythonx.compose.ui.text.TextLayoutResult | None]], None] | None = ..., scroll_state: pythonx.compose.foundation.ScrollState = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ..., content_padding: _t.Any = ..., interaction_source: _t.Any | None = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def TextField(value: _t.Any, on_value_change: _t.Callable[[_t.Any], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., read_only: bool = ..., text_style: _t.Any = ..., label: _t.Callable[[], None] | None = ..., placeholder: _t.Callable[[], None] | None = ..., leading_icon: _t.Callable[[], None] | None = ..., trailing_icon: _t.Callable[[], None] | None = ..., prefix: _t.Callable[[], None] | None = ..., suffix: _t.Callable[[], None] | None = ..., supporting_text: _t.Callable[[], None] | None = ..., is_error: bool = ..., visual_transformation: _t.Any = ..., keyboard_options: _t.Any = ..., keyboard_actions: _t.Any = ..., single_line: bool = ..., max_lines: int = ..., min_lines: int = ..., interaction_source: _t.Any | None = ..., shape: pythonx.compose.ui.graphics.Shape = ..., colors: TextFieldColors = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def TriStateCheckbox(state: _t.Any, on_click: _t.Callable[[], None] | None, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: ... +@_t.overload +def TriStateCheckbox(state: _t.Any, on_click: _t.Callable[[], None] | None, checkmark_stroke: _t.Any, outline_stroke: _t.Any, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: CheckboxColors = ..., interaction_source: _t.Any | None = ...) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def content_color_for(background_color: _t.Any) -> int: ... +@_t.overload +def content_color_for(receiver: ColorScheme, /, background_color: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def remember_date_picker_state(initial_selected_date: _t.Any | None, initial_displayed_month: _t.Any | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DatePickerState: ... +@_t.overload +def remember_date_picker_state(initial_selected_date_millis: int | None = ..., initial_displayed_month_millis: int | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DatePickerState: ... # type: ignore[overload-cannot-match] + +@_t.overload +def remember_date_range_picker_state(initial_selected_start_date: _t.Any | None, initial_selected_end_date: _t.Any | None, initial_displayed_month: _t.Any | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DateRangePickerState: ... +@_t.overload +def remember_date_range_picker_state(initial_selected_start_date_millis: int | None = ..., initial_selected_end_date_millis: int | None = ..., initial_displayed_month_millis: int | None = ..., year_range: _t.Any = ..., initial_display_mode: _t.Any = ..., selectable_dates: SelectableDates = ...) -> DateRangePickerState: ... # type: ignore[overload-cannot-match] + +@_t.overload +def remember_swipe_to_dismiss_box_state(initial_value: SwipeToDismissBoxValue = ..., confirm_value_change: _t.Callable[[SwipeToDismissBoxValue], bool] = ..., positional_threshold: _t.Callable[[float], float] = ...) -> SwipeToDismissBoxState: ... +@_t.overload +def remember_swipe_to_dismiss_box_state(initial_value: SwipeToDismissBoxValue = ..., positional_threshold: _t.Callable[[float], float] = ...) -> SwipeToDismissBoxState: ... # type: ignore[overload-cannot-match] + +@_t.overload +def ripple(bounded: bool = ..., radius: float = ..., color: _t.Any = ...) -> pythonx.compose.foundation.IndicationNodeFactory: ... +@_t.overload +def ripple(color: pythonx.compose.ui.graphics.ColorProducer, bounded: bool = ..., radius: float = ...) -> pythonx.compose.foundation.IndicationNodeFactory: ... # type: ignore[overload-cannot-match] + +class AlertDialogDefaults: + """Kotlin: androidx.compose.material3.AlertDialogDefaults""" + TonalElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.AlertDialogDefaults.TonalElevation(): androidx.compose.ui.unit.Dp""" + +class AssistChipDefaults: + """Kotlin: androidx.compose.material3.AssistChipDefaults""" + Height: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.AssistChipDefaults.Height(): androidx.compose.ui.unit.Dp""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.AssistChipDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + +class BottomAppBarDefaults: + """Kotlin: androidx.compose.material3.BottomAppBarDefaults""" + ContainerElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.BottomAppBarDefaults.ContainerElevation(): androidx.compose.ui.unit.Dp""" + ContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.BottomAppBarDefaults.ContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + +class BottomSheetDefaults: + """Kotlin: androidx.compose.material3.BottomSheetDefaults""" + Elevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.BottomSheetDefaults.Elevation(): androidx.compose.ui.unit.Dp""" + SheetMaxWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.BottomSheetDefaults.SheetMaxWidth(): androidx.compose.ui.unit.Dp""" + SheetPeekHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.BottomSheetDefaults.SheetPeekHeight(): androidx.compose.ui.unit.Dp""" + +class ButtonDefaults: + """Kotlin: androidx.compose.material3.ButtonDefaults""" + ButtonWithIconContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ButtonDefaults.ButtonWithIconContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + ContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ButtonDefaults.ContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ButtonDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + IconSpacing: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ButtonDefaults.IconSpacing(): androidx.compose.ui.unit.Dp""" + MinHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ButtonDefaults.MinHeight(): androidx.compose.ui.unit.Dp""" + MinWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ButtonDefaults.MinWidth(): androidx.compose.ui.unit.Dp""" + TextButtonContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ButtonDefaults.TextButtonContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + TextButtonWithIconContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ButtonDefaults.TextButtonWithIconContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + +class CheckboxDefaults: + """Kotlin: androidx.compose.material3.CheckboxDefaults""" + StrokeWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.CheckboxDefaults.StrokeWidth(): androidx.compose.ui.unit.Dp""" + +class DatePickerDefaults: + """Kotlin: androidx.compose.material3.DatePickerDefaults""" + AllDates: _t.ClassVar[SelectableDates] + """Kotlin: androidx.compose.material3.DatePickerDefaults.AllDates(): androidx.compose.material3.SelectableDates""" + TonalElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.DatePickerDefaults.TonalElevation(): androidx.compose.ui.unit.Dp""" + YearAbbrMonthDaySkeleton: _t.ClassVar[str] + """Kotlin: androidx.compose.material3.DatePickerDefaults.YearAbbrMonthDaySkeleton(): kotlin.String""" + YearMonthSkeleton: _t.ClassVar[str] + """Kotlin: androidx.compose.material3.DatePickerDefaults.YearMonthSkeleton(): kotlin.String""" + YearMonthWeekdayDaySkeleton: _t.ClassVar[str] + """Kotlin: androidx.compose.material3.DatePickerDefaults.YearMonthWeekdayDaySkeleton(): kotlin.String""" + YearRange: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.DatePickerDefaults.YearRange(): kotlin.ranges.IntRange""" + @staticmethod + def date_formatter(year_selection_skeleton: str = ..., selected_date_skeleton: str = ..., selected_date_description_skeleton: str = ...) -> DatePickerFormatter: + """Kotlin: androidx.compose.material3.DatePickerDefaults.dateFormatter(yearSelectionSkeleton: kotlin.String, selectedDateSkeleton: kotlin.String, selectedDateDescriptionSkeleton: kotlin.String): androidx.compose.material3.DatePickerFormatter""" + ... + +class DisplayMode: + """Kotlin: androidx.compose.material3.DisplayMode""" + Input: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.DisplayMode.Input(): androidx.compose.material3.DisplayMode""" + Picker: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.DisplayMode.Picker(): androidx.compose.material3.DisplayMode""" + +class DividerDefaults: + """Kotlin: androidx.compose.material3.DividerDefaults""" + Thickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.DividerDefaults.Thickness(): androidx.compose.ui.unit.Dp""" + +class DrawerDefaults: + """Kotlin: androidx.compose.material3.DrawerDefaults""" + DismissibleDrawerElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.DrawerDefaults.DismissibleDrawerElevation(): androidx.compose.ui.unit.Dp""" + MaximumDrawerWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.DrawerDefaults.MaximumDrawerWidth(): androidx.compose.ui.unit.Dp""" + ModalDrawerElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.DrawerDefaults.ModalDrawerElevation(): androidx.compose.ui.unit.Dp""" + PermanentDrawerElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.DrawerDefaults.PermanentDrawerElevation(): androidx.compose.ui.unit.Dp""" + +class ExposedDropdownMenuAnchorType: + """Kotlin: androidx.compose.material3.ExposedDropdownMenuAnchorType""" + PrimaryEditable: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ExposedDropdownMenuAnchorType.PrimaryEditable(): androidx.compose.material3.ExposedDropdownMenuAnchorType""" + PrimaryNotEditable: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ExposedDropdownMenuAnchorType.PrimaryNotEditable(): androidx.compose.material3.ExposedDropdownMenuAnchorType""" + SecondaryEditable: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ExposedDropdownMenuAnchorType.SecondaryEditable(): androidx.compose.material3.ExposedDropdownMenuAnchorType""" + +class ExposedDropdownMenuDefaults: + """Kotlin: androidx.compose.material3.ExposedDropdownMenuDefaults""" + ItemContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ExposedDropdownMenuDefaults.ItemContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + +class FabPosition: + """Kotlin: androidx.compose.material3.FabPosition""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.FabPosition.Center(): androidx.compose.material3.FabPosition""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.FabPosition.End(): androidx.compose.material3.FabPosition""" + EndOverlay: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.FabPosition.EndOverlay(): androidx.compose.material3.FabPosition""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.FabPosition.Start(): androidx.compose.material3.FabPosition""" + +class FilterChipDefaults: + """Kotlin: androidx.compose.material3.FilterChipDefaults""" + Height: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.FilterChipDefaults.Height(): androidx.compose.ui.unit.Dp""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.FilterChipDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + +class FloatingActionButtonDefaults: + """Kotlin: androidx.compose.material3.FloatingActionButtonDefaults""" + LargeIconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.FloatingActionButtonDefaults.LargeIconSize(): androidx.compose.ui.unit.Dp""" + @staticmethod + def bottom_app_bar_fab_elevation(default_elevation: float = ..., pressed_elevation: float = ..., focused_elevation: float = ..., hovered_elevation: float = ...) -> FloatingActionButtonElevation: + """Kotlin: androidx.compose.material3.FloatingActionButtonDefaults.bottomAppBarFabElevation(defaultElevation: androidx.compose.ui.unit.Dp, pressedElevation: androidx.compose.ui.unit.Dp, focusedElevation: androidx.compose.ui.unit.Dp, hoveredElevation: androidx.compose.ui.unit.Dp): androidx.compose.material3.FloatingActionButtonElevation""" + ... + +class InputChipDefaults: + """Kotlin: androidx.compose.material3.InputChipDefaults""" + AvatarSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.InputChipDefaults.AvatarSize(): androidx.compose.ui.unit.Dp""" + Height: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.InputChipDefaults.Height(): androidx.compose.ui.unit.Dp""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.InputChipDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + +class ListItemDefaults: + """Kotlin: androidx.compose.material3.ListItemDefaults""" + Elevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ListItemDefaults.Elevation(): androidx.compose.ui.unit.Dp""" + +class MenuDefaults: + """Kotlin: androidx.compose.material3.MenuDefaults""" + DropdownMenuItemContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.MenuDefaults.DropdownMenuItemContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + ShadowElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.MenuDefaults.ShadowElevation(): androidx.compose.ui.unit.Dp""" + TonalElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.MenuDefaults.TonalElevation(): androidx.compose.ui.unit.Dp""" + +class ModalBottomSheetDefaults: + """Kotlin: androidx.compose.material3.ModalBottomSheetDefaults""" + properties: _t.ClassVar[ModalBottomSheetProperties] + """Kotlin: androidx.compose.material3.ModalBottomSheetDefaults.properties(): androidx.compose.material3.ModalBottomSheetProperties""" + +class NavigationBarDefaults: + """Kotlin: androidx.compose.material3.NavigationBarDefaults""" + Elevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.NavigationBarDefaults.Elevation(): androidx.compose.ui.unit.Dp""" + +class NavigationDrawerItemDefaults: + """Kotlin: androidx.compose.material3.NavigationDrawerItemDefaults""" + ItemPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.NavigationDrawerItemDefaults.ItemPadding(): androidx.compose.foundation.layout.PaddingValues""" + +class NavigationItemIconPosition: + """Kotlin: androidx.compose.material3.NavigationItemIconPosition""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.NavigationItemIconPosition.Start(): androidx.compose.material3.NavigationItemIconPosition""" + Top: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.NavigationItemIconPosition.Top(): androidx.compose.material3.NavigationItemIconPosition""" + +class OutlinedTextFieldDefaults: + """Kotlin: androidx.compose.material3.OutlinedTextFieldDefaults""" + FocusedBorderThickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.OutlinedTextFieldDefaults.FocusedBorderThickness(): androidx.compose.ui.unit.Dp""" + MinHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.OutlinedTextFieldDefaults.MinHeight(): androidx.compose.ui.unit.Dp""" + MinWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.OutlinedTextFieldDefaults.MinWidth(): androidx.compose.ui.unit.Dp""" + UnfocusedBorderThickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.OutlinedTextFieldDefaults.UnfocusedBorderThickness(): androidx.compose.ui.unit.Dp""" + @staticmethod + def content_padding(start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.OutlinedTextFieldDefaults.contentPadding(start: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + +class ProgressIndicatorDefaults: + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults""" + CircularDeterminateStrokeCap: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.CircularDeterminateStrokeCap(): androidx.compose.ui.graphics.StrokeCap""" + CircularIndeterminateStrokeCap: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.CircularIndeterminateStrokeCap(): androidx.compose.ui.graphics.StrokeCap""" + CircularIndicatorTrackGapSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.CircularIndicatorTrackGapSize(): androidx.compose.ui.unit.Dp""" + CircularStrokeWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.CircularStrokeWidth(): androidx.compose.ui.unit.Dp""" + LinearIndicatorTrackGapSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.LinearIndicatorTrackGapSize(): androidx.compose.ui.unit.Dp""" + LinearStrokeCap: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.LinearStrokeCap(): androidx.compose.ui.graphics.StrokeCap""" + LinearTrackStopIndicatorSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.LinearTrackStopIndicatorSize(): androidx.compose.ui.unit.Dp""" + @staticmethod + def draw_stop_indicator(draw_scope: _t.Any, stop_size: float, color: _t.Any, stroke_cap: _t.Any) -> None: + """Kotlin: androidx.compose.material3.ProgressIndicatorDefaults.drawStopIndicator(drawScope: androidx.compose.ui.graphics.drawscope.DrawScope, stopSize: androidx.compose.ui.unit.Dp, color: androidx.compose.ui.graphics.Color, strokeCap: androidx.compose.ui.graphics.StrokeCap): kotlin.Unit""" + ... + +class RippleDefaults: + """Kotlin: androidx.compose.material3.RippleDefaults""" + RippleAlpha: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.RippleDefaults.RippleAlpha(): androidx.compose.material.ripple.RippleAlpha""" + +class SearchBarDefaults: + """Kotlin: androidx.compose.material3.SearchBarDefaults""" + Elevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SearchBarDefaults.Elevation(): androidx.compose.ui.unit.Dp""" + InputFieldHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SearchBarDefaults.InputFieldHeight(): androidx.compose.ui.unit.Dp""" + ShadowElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SearchBarDefaults.ShadowElevation(): androidx.compose.ui.unit.Dp""" + TonalElevation: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SearchBarDefaults.TonalElevation(): androidx.compose.ui.unit.Dp""" + +class SegmentedButtonDefaults: + """Kotlin: androidx.compose.material3.SegmentedButtonDefaults""" + BorderWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SegmentedButtonDefaults.BorderWidth(): androidx.compose.ui.unit.Dp""" + ContentPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.SegmentedButtonDefaults.ContentPadding(): androidx.compose.foundation.layout.PaddingValues""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SegmentedButtonDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + @staticmethod + def border_stroke(color: _t.Any, width: float = ...) -> pythonx.compose.foundation.BorderStroke: + """Kotlin: androidx.compose.material3.SegmentedButtonDefaults.borderStroke(color: androidx.compose.ui.graphics.Color, width: androidx.compose.ui.unit.Dp): androidx.compose.foundation.BorderStroke""" + ... + +class ShapeDefaults: + """Kotlin: androidx.compose.material3.ShapeDefaults""" + ExtraLarge: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShapeDefaults.ExtraLarge(): androidx.compose.foundation.shape.CornerBasedShape""" + ExtraSmall: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShapeDefaults.ExtraSmall(): androidx.compose.foundation.shape.CornerBasedShape""" + Large: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShapeDefaults.Large(): androidx.compose.foundation.shape.CornerBasedShape""" + Medium: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShapeDefaults.Medium(): androidx.compose.foundation.shape.CornerBasedShape""" + Small: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShapeDefaults.Small(): androidx.compose.foundation.shape.CornerBasedShape""" + +class ShortNavigationBarArrangement: + """Kotlin: androidx.compose.material3.ShortNavigationBarArrangement""" + Centered: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShortNavigationBarArrangement.Centered(): androidx.compose.material3.ShortNavigationBarArrangement""" + EqualWeight: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShortNavigationBarArrangement.EqualWeight(): androidx.compose.material3.ShortNavigationBarArrangement""" + +class ShortNavigationBarDefaults: + """Kotlin: androidx.compose.material3.ShortNavigationBarDefaults""" + arrangement: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.ShortNavigationBarDefaults.arrangement(): androidx.compose.material3.ShortNavigationBarArrangement""" + +class SliderDefaults: + """Kotlin: androidx.compose.material3.SliderDefaults""" + TickSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SliderDefaults.TickSize(): androidx.compose.ui.unit.Dp""" + TrackStopIndicatorSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SliderDefaults.TrackStopIndicatorSize(): androidx.compose.ui.unit.Dp""" + +class SuggestionChipDefaults: + """Kotlin: androidx.compose.material3.SuggestionChipDefaults""" + Height: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SuggestionChipDefaults.Height(): androidx.compose.ui.unit.Dp""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SuggestionChipDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + +class SwitchDefaults: + """Kotlin: androidx.compose.material3.SwitchDefaults""" + IconSize: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.SwitchDefaults.IconSize(): androidx.compose.ui.unit.Dp""" + +class TabRowDefaults: + """Kotlin: androidx.compose.material3.TabRowDefaults""" + ScrollableTabRowEdgeStartPadding: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TabRowDefaults.ScrollableTabRowEdgeStartPadding(): androidx.compose.ui.unit.Dp""" + ScrollableTabRowMinTabWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TabRowDefaults.ScrollableTabRowMinTabWidth(): androidx.compose.ui.unit.Dp""" + +class TextFieldDefaults: + """Kotlin: androidx.compose.material3.TextFieldDefaults""" + FocusedBorderThickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TextFieldDefaults.FocusedBorderThickness(): androidx.compose.ui.unit.Dp""" + FocusedIndicatorThickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TextFieldDefaults.FocusedIndicatorThickness(): androidx.compose.ui.unit.Dp""" + MinHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TextFieldDefaults.MinHeight(): androidx.compose.ui.unit.Dp""" + MinWidth: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TextFieldDefaults.MinWidth(): androidx.compose.ui.unit.Dp""" + UnfocusedBorderThickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TextFieldDefaults.UnfocusedBorderThickness(): androidx.compose.ui.unit.Dp""" + UnfocusedIndicatorThickness: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TextFieldDefaults.UnfocusedIndicatorThickness(): androidx.compose.ui.unit.Dp""" + @staticmethod + def content_padding_with_label(start: float = ..., end: float = ..., top: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.TextFieldDefaults.contentPaddingWithLabel(start: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + @staticmethod + def content_padding_without_label(start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.TextFieldDefaults.contentPaddingWithoutLabel(start: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + @staticmethod + def outlined_text_field_padding(start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.TextFieldDefaults.outlinedTextFieldPadding(start: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + @staticmethod + def text_field_with_label_padding(start: float = ..., end: float = ..., top: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.TextFieldDefaults.textFieldWithLabelPadding(start: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + @staticmethod + def text_field_without_label_padding(start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.TextFieldDefaults.textFieldWithoutLabelPadding(start: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, end: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + +class TimePickerDialogDefaults: + """Kotlin: androidx.compose.material3.TimePickerDialogDefaults""" + MinHeightForTimePicker: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TimePickerDialogDefaults.MinHeightForTimePicker(): androidx.compose.ui.unit.Dp""" + +class TimePickerDisplayMode: + """Kotlin: androidx.compose.material3.TimePickerDisplayMode""" + Input: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TimePickerDisplayMode.Input(): androidx.compose.material3.TimePickerDisplayMode""" + Picker: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TimePickerDisplayMode.Picker(): androidx.compose.material3.TimePickerDisplayMode""" + +class TimePickerLayoutType: + """Kotlin: androidx.compose.material3.TimePickerLayoutType""" + Horizontal: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TimePickerLayoutType.Horizontal(): androidx.compose.material3.TimePickerLayoutType""" + Vertical: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TimePickerLayoutType.Vertical(): androidx.compose.material3.TimePickerLayoutType""" + +class TimePickerSelectionMode: + """Kotlin: androidx.compose.material3.TimePickerSelectionMode""" + Hour: _t.ClassVar[int] + """Kotlin: androidx.compose.material3.TimePickerSelectionMode.Hour(): androidx.compose.material3.TimePickerSelectionMode""" + Minute: _t.ClassVar[int] + """Kotlin: androidx.compose.material3.TimePickerSelectionMode.Minute(): androidx.compose.material3.TimePickerSelectionMode""" + +class TooltipAnchorPosition: + """Kotlin: androidx.compose.material3.TooltipAnchorPosition""" + Above: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipAnchorPosition.Above(): androidx.compose.material3.TooltipAnchorPosition""" + Below: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipAnchorPosition.Below(): androidx.compose.material3.TooltipAnchorPosition""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipAnchorPosition.End(): androidx.compose.material3.TooltipAnchorPosition""" + Left: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipAnchorPosition.Left(): androidx.compose.material3.TooltipAnchorPosition""" + Right: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipAnchorPosition.Right(): androidx.compose.material3.TooltipAnchorPosition""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipAnchorPosition.Start(): androidx.compose.material3.TooltipAnchorPosition""" + +class TooltipDefaults: + """Kotlin: androidx.compose.material3.TooltipDefaults""" + @staticmethod + def caret_shape__0() -> DefaultTooltipCaretShape: + """Kotlin: androidx.compose.material3.TooltipDefaults.caretShape(): androidx.compose.material3.DefaultTooltipCaretShape""" + ... + @staticmethod + def caret_shape__DpSize(caret_size: _t.Any) -> pythonx.compose.ui.graphics.Shape: + """Kotlin: androidx.compose.material3.TooltipDefaults.caretShape(caretSize: androidx.compose.ui.unit.DpSize): androidx.compose.ui.graphics.Shape""" + ... + caret_size: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TooltipDefaults.caretSize(): androidx.compose.ui.unit.DpSize""" + plain_tooltip_max_width: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TooltipDefaults.plainTooltipMaxWidth(): androidx.compose.ui.unit.Dp""" + rich_tooltip_max_width: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TooltipDefaults.richTooltipMaxWidth(): androidx.compose.ui.unit.Dp""" + @staticmethod + @_t.overload + def caret_shape() -> DefaultTooltipCaretShape: ... + @staticmethod + @_t.overload + def caret_shape(caret_size: _t.Any) -> pythonx.compose.ui.graphics.Shape: ... # type: ignore[overload-cannot-match] + +class TopAppBarDefaults: + """Kotlin: androidx.compose.material3.TopAppBarDefaults""" + LargeAppBarCollapsedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.LargeAppBarCollapsedHeight(): androidx.compose.ui.unit.Dp""" + LargeAppBarExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.LargeAppBarExpandedHeight(): androidx.compose.ui.unit.Dp""" + LargeFlexibleAppBarWithSubtitleExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.LargeFlexibleAppBarWithSubtitleExpandedHeight(): androidx.compose.ui.unit.Dp""" + LargeFlexibleAppBarWithoutSubtitleExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.LargeFlexibleAppBarWithoutSubtitleExpandedHeight(): androidx.compose.ui.unit.Dp""" + MediumAppBarCollapsedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.MediumAppBarCollapsedHeight(): androidx.compose.ui.unit.Dp""" + MediumAppBarExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.MediumAppBarExpandedHeight(): androidx.compose.ui.unit.Dp""" + MediumFlexibleAppBarWithSubtitleExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.MediumFlexibleAppBarWithSubtitleExpandedHeight(): androidx.compose.ui.unit.Dp""" + MediumFlexibleAppBarWithoutSubtitleExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.MediumFlexibleAppBarWithoutSubtitleExpandedHeight(): androidx.compose.ui.unit.Dp""" + TopAppBarExpandedHeight: _t.ClassVar[float] + """Kotlin: androidx.compose.material3.TopAppBarDefaults.TopAppBarExpandedHeight(): androidx.compose.ui.unit.Dp""" + +class TopAppBarState: + """Kotlin: androidx.compose.material3.TopAppBarState""" + Saver: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.TopAppBarState.Saver(): androidx.compose.runtime.saveable.Saver""" + +class VerticalDragHandleDefaults: + """Kotlin: androidx.compose.material3.VerticalDragHandleDefaults""" + @staticmethod + def sizes__0() -> DragHandleSizes: + """Kotlin: androidx.compose.material3.VerticalDragHandleDefaults.sizes(): androidx.compose.material3.DragHandleSizes""" + ... + @staticmethod + def sizes__DpSize_DpSize_DpSize(size: _t.Any = ..., pressed_size: _t.Any = ..., dragged_size: _t.Any = ...) -> DragHandleSizes: + """Kotlin: androidx.compose.material3.VerticalDragHandleDefaults.sizes(size: androidx.compose.ui.unit.DpSize, pressedSize: androidx.compose.ui.unit.DpSize, draggedSize: androidx.compose.ui.unit.DpSize): androidx.compose.material3.DragHandleSizes""" + ... + @staticmethod + @_t.overload + def sizes() -> DragHandleSizes: ... + @staticmethod + @_t.overload + def sizes(size: _t.Any = ..., pressed_size: _t.Any = ..., dragged_size: _t.Any = ...) -> DragHandleSizes: ... # type: ignore[overload-cannot-match] + +class WideNavigationRailDefaults: + """Kotlin: androidx.compose.material3.WideNavigationRailDefaults""" + ModalExpandedProperties: _t.ClassVar[ModalWideNavigationRailProperties] + """Kotlin: androidx.compose.material3.WideNavigationRailDefaults.ModalExpandedProperties(): androidx.compose.material3.ModalWideNavigationRailProperties""" + arrangement: _t.ClassVar[pythonx.compose.layout.Arrangement.Vertical] + """Kotlin: androidx.compose.material3.WideNavigationRailDefaults.arrangement(): androidx.compose.foundation.layout.Arrangement.Vertical""" + +class WideNavigationRailItemDefaults: + """Kotlin: androidx.compose.material3.WideNavigationRailItemDefaults""" + @staticmethod + def icon_position_for(rail_expanded: bool) -> _t.Any: + """Kotlin: androidx.compose.material3.WideNavigationRailItemDefaults.iconPositionFor(railExpanded: kotlin.Boolean): androidx.compose.material3.NavigationItemIconPosition""" + ... diff --git a/pythonx/compose/material3/badge.py b/pythonx/compose/material3/badge.py deleted file mode 100644 index 8d05049..0000000 --- a/pythonx/compose/material3/badge.py +++ /dev/null @@ -1,44 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import BadgeKt - -@Composable -class Badge(Composable): - """ M3 badge """ - - @classmethod - def compose( - cls, - modifier, - container_color, - content_color, - content - ): - getattr(BadgeKt, "Badge-eopBjH0")( - modifier=modifier, - containerColor=container_color, - contentColor=content_color, - content=content, - c=cls.composer, - changed=1 - ) - - -@Composable -class BadgedBox(Composable): - """ M3 badged box """ - - @classmethod - def compose( - cls, - badge, - modifier, - content - ): - BadgeKt.BadgedBox( - badge=badge, - modifier=modifier, - content=content, - c=cls.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/buttons.py b/pythonx/compose/material3/buttons.py deleted file mode 100644 index 5b04d66..0000000 --- a/pythonx/compose/material3/buttons.py +++ /dev/null @@ -1,295 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import ButtonKt - -__COMPILED_CODE__ = None -Unit = None - -class Button(Composable): - """ M3 filled button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ButtonKt.Button - except Exception: - for name, obj in ButtonKt.__dict__.items(): - if name.startswith("Button-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("Button is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class ElevatedButton(Composable): - """ M3 elevated button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ButtonKt.ElevatedButton - except Exception: - for name, obj in ButtonKt.__dict__.items(): - if name.startswith("ElevatedButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("ElevatedButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class FilledTonalButton(Composable): - """ M3 filled tonal button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ButtonKt.FilledTonalButton - except Exception: - for name, obj in ButtonKt.__dict__.items(): - if name.startswith("FilledTonalButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("FilledTonalButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class OutlinedButton(Composable): - """ M3 outlined button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ButtonKt.OutlinedButton - except Exception: - for name, obj in ButtonKt.__dict__.items(): - if name.startswith("OutlinedButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("OutlinedButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class TextButton(Composable): - """ M3 text button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ButtonKt.TextButton - except Exception: - for name, obj in ButtonKt.__dict__.items(): - if name.startswith("TextButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("TextButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) diff --git a/pythonx/compose/material3/cards.py b/pythonx/compose/material3/cards.py deleted file mode 100644 index c81182e..0000000 --- a/pythonx/compose/material3/cards.py +++ /dev/null @@ -1,153 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import CardKt - -__COMPILED_CODE__ = None -Unit = None - -class Card(Composable): - """ M3 filled card """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = CardKt.Card - except Exception: - for name, obj in CardKt.__dict__.items(): - if name.startswith("Card-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("Card is cannot be found") - - def compose( - self, - modifier=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class ElevatedCard(Composable): - """ M3 elevated card """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = CardKt.ElevatedCard - except Exception: - for name, obj in CardKt.__dict__.items(): - if name.startswith("ElevatedCard-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("ElevatedCard is cannot be found") - - def compose( - self, - modifier=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - shape=shape, - colors=colors, - elevation=elevation, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class OutlinedCard(Composable): - """ M3 outlined card """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = CardKt.OutlinedCard - except Exception: - for name, obj in CardKt.__dict__.items(): - if name.startswith("OutlinedCard-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("OutlinedCard is cannot be found") - - def compose( - self, - modifier=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/checkbox.py b/pythonx/compose/material3/checkbox.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/color_scheme.py b/pythonx/compose/material3/color_scheme.py deleted file mode 100644 index 934d65e..0000000 --- a/pythonx/compose/material3/color_scheme.py +++ /dev/null @@ -1,342 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import ColorSchemeKt -from androidx.compose.material3 import ColorScheme - -__COMPILED_CODE__ = None -Unit = None - -class ColorScheme(Composable): - """ M3 color scheme """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ColorScheme - except Exception: - for name, obj in ColorSchemeKt.__dict__.items(): - if name.startswith("ColorScheme-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("ColorScheme is cannot be found") - - def compose( - self, - primary=__COMPILED_CODE__, - on_primary=__COMPILED_CODE__, - primary_container=__COMPILED_CODE__, - on_primary_container=__COMPILED_CODE__, - inverse_primary=__COMPILED_CODE__, - secondary=__COMPILED_CODE__, - on_secondary=__COMPILED_CODE__, - secondary_container=__COMPILED_CODE__, - on_secondary_container=__COMPILED_CODE__, - tertiary=__COMPILED_CODE__, - on_tertiary=__COMPILED_CODE__, - tertiary_container=__COMPILED_CODE__, - on_tertiary_container=__COMPILED_CODE__, - background=__COMPILED_CODE__, - on_background=__COMPILED_CODE__, - surface=__COMPILED_CODE__, - on_surface=__COMPILED_CODE__, - surface_variant=__COMPILED_CODE__, - on_surface_variant=__COMPILED_CODE__, - surface_tint=__COMPILED_CODE__, - inverse_surface=__COMPILED_CODE__, - inverse_on_surface=__COMPILED_CODE__, - error=__COMPILED_CODE__, - on_error=__COMPILED_CODE__, - error_container=__COMPILED_CODE__, - on_error_container=__COMPILED_CODE__, - outline=__COMPILED_CODE__, - outline_variant=__COMPILED_CODE__, - scrim=__COMPILED_CODE__, - surface_bright=__COMPILED_CODE__, - surface_dim=__COMPILED_CODE__, - surface_container=__COMPILED_CODE__, - surface_container_high=__COMPILED_CODE__, - surface_container_highest=__COMPILED_CODE__, - surface_container_low=__COMPILED_CODE__, - surface_container_lowest=__COMPILED_CODE__, - ): - kwargs = { key: value for key, value in dict( - primary=primary, - onPrimary=on_primary, - primaryContainer=primary_container, - onPrimaryContainer=on_primary_container, - inversePrimary=inverse_primary, - secondary=secondary, - onSecondary=on_secondary, - secondaryContainer=secondary_container, - onSecondaryContainer=on_secondary_container, - tertiary=tertiary, - onTertiary=on_tertiary, - tertiaryContainer=tertiary_container, - onTertiaryContainer=on_tertiary_container, - background=background, - onBackground=on_background, - surface=surface, - onSurface=on_surface, - surfaceVariant=surface_variant, - onSurfaceVariant=on_surface_variant, - surfaceTint=surface_tint, - inverseSurface=inverse_surface, - inverseOnSurface=inverse_on_surface, - error=error, - onError=on_error, - errorContainer=error_container, - onErrorContainer=on_error_container, - outline=outline, - outlineVariant=outline_variant, - scrim=scrim, - surfaceBright=surface_bright, - surfaceDim=surface_dim, - surfaceContainer=surface_container, - surfaceContainerHigh=surface_container_high, - surfaceContainerHighest=surface_container_highest, - surfaceContainerLow=surface_container_low, - surfaceContainerLowest=surface_container_lowest - - - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class lightColorScheme(Composable): - """ M3 light color scheme """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ColorSchemeKt.lightColorScheme - except Exception: - for name, obj in ColorSchemeKt.__dict__.items(): - if name.startswith("lightColorScheme-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("lightColorScheme is cannot be found") - - def compose( - self, - primary=__COMPILED_CODE__, - on_primary=__COMPILED_CODE__, - primary_container=__COMPILED_CODE__, - on_primary_container=__COMPILED_CODE__, - inverse_primary=__COMPILED_CODE__, - secondary=__COMPILED_CODE__, - on_secondary=__COMPILED_CODE__, - secondary_container=__COMPILED_CODE__, - on_secondary_container=__COMPILED_CODE__, - tertiary=__COMPILED_CODE__, - on_tertiary=__COMPILED_CODE__, - tertiary_container=__COMPILED_CODE__, - on_tertiary_container=__COMPILED_CODE__, - background=__COMPILED_CODE__, - on_background=__COMPILED_CODE__, - surface=__COMPILED_CODE__, - on_surface=__COMPILED_CODE__, - surface_variant=__COMPILED_CODE__, - on_surface_variant=__COMPILED_CODE__, - surface_tint=__COMPILED_CODE__, - inverse_surface=__COMPILED_CODE__, - inverse_on_surface=__COMPILED_CODE__, - error=__COMPILED_CODE__, - on_error=__COMPILED_CODE__, - error_container=__COMPILED_CODE__, - on_error_container=__COMPILED_CODE__, - outline=__COMPILED_CODE__, - outline_variant=__COMPILED_CODE__, - scrim=__COMPILED_CODE__, - surface_bright=__COMPILED_CODE__, - surface_dim=__COMPILED_CODE__, - surface_container=__COMPILED_CODE__, - surface_container_high=__COMPILED_CODE__, - surface_container_highest=__COMPILED_CODE__, - surface_container_low=__COMPILED_CODE__, - surface_container_lowest=__COMPILED_CODE__, - ): - kwargs = { key: value for key, value in dict( - primary=primary, - onPrimary=on_primary, - primaryContainer=primary_container, - onPrimaryContainer=on_primary_container, - inversePrimary=inverse_primary, - secondary=secondary, - onSecondary=on_secondary, - secondaryContainer=secondary_container, - onSecondaryContainer=on_secondary_container, - tertiary=tertiary, - onTertiary=on_tertiary, - tertiaryContainer=tertiary_container, - onTertiaryContainer=on_tertiary_container, - background=background, - onBackground=on_background, - surface=surface, - onSurface=on_surface, - surfaceVariant=surface_variant, - onSurfaceVariant=on_surface_variant, - surfaceTint=surface_tint, - inverseSurface=inverse_surface, - inverseOnSurface=inverse_on_surface, - error=error, - onError=on_error, - errorContainer=error_container, - onErrorContainer=on_error_container, - outline=outline, - outlineVariant=outline_variant, - scrim=scrim, - surfaceBright=surface_bright, - surfaceDim=surface_dim, - surfaceContainer=surface_container, - surfaceContainerHigh=surface_container_high, - surfaceContainerHighest=surface_container_highest, - surfaceContainerLow=surface_container_low, - surfaceContainerLowest=surface_container_lowest - - - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class darkColorScheme(Composable): - """ M3 dark color scheme """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ColorSchemeKt.darkColorScheme - except Exception: - for name, obj in ColorSchemeKt.__dict__.items(): - if name.startswith("darkColorScheme-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("darkColorScheme is cannot be found") - - def compose( - self, - primary=__COMPILED_CODE__, - on_primary=__COMPILED_CODE__, - primary_container=__COMPILED_CODE__, - on_primary_container=__COMPILED_CODE__, - inverse_primary=__COMPILED_CODE__, - secondary=__COMPILED_CODE__, - on_secondary=__COMPILED_CODE__, - secondary_container=__COMPILED_CODE__, - on_secondary_container=__COMPILED_CODE__, - tertiary=__COMPILED_CODE__, - on_tertiary=__COMPILED_CODE__, - tertiary_container=__COMPILED_CODE__, - on_tertiary_container=__COMPILED_CODE__, - background=__COMPILED_CODE__, - on_background=__COMPILED_CODE__, - surface=__COMPILED_CODE__, - on_surface=__COMPILED_CODE__, - surface_variant=__COMPILED_CODE__, - on_surface_variant=__COMPILED_CODE__, - surface_tint=__COMPILED_CODE__, - inverse_surface=__COMPILED_CODE__, - inverse_on_surface=__COMPILED_CODE__, - error=__COMPILED_CODE__, - on_error=__COMPILED_CODE__, - error_container=__COMPILED_CODE__, - on_error_container=__COMPILED_CODE__, - outline=__COMPILED_CODE__, - outline_variant=__COMPILED_CODE__, - scrim=__COMPILED_CODE__, - surface_bright=__COMPILED_CODE__, - surface_dim=__COMPILED_CODE__, - surface_container=__COMPILED_CODE__, - surface_container_high=__COMPILED_CODE__, - surface_container_highest=__COMPILED_CODE__, - surface_container_low=__COMPILED_CODE__, - surface_container_lowest=__COMPILED_CODE__, - ): - kwargs = { key: value for key, value in dict( - primary=primary, - onPrimary=on_primary, - primaryContainer=primary_container, - onPrimaryContainer=on_primary_container, - inversePrimary=inverse_primary, - secondary=secondary, - onSecondary=on_secondary, - secondaryContainer=secondary_container, - onSecondaryContainer=on_secondary_container, - tertiary=tertiary, - onTertiary=on_tertiary, - tertiaryContainer=tertiary_container, - onTertiaryContainer=on_tertiary_container, - background=background, - onBackground=on_background, - surface=surface, - onSurface=on_surface, - surfaceVariant=surface_variant, - onSurfaceVariant=on_surface_variant, - surfaceTint=surface_tint, - inverseSurface=inverse_surface, - inverseOnSurface=inverse_on_surface, - error=error, - onError=on_error, - errorContainer=error_container, - onErrorContainer=on_error_container, - outline=outline, - outlineVariant=outline_variant, - scrim=scrim, - surfaceBright=surface_bright, - surfaceDim=surface_dim, - surfaceContainer=surface_container, - surfaceContainerHigh=surface_container_high, - surfaceContainerHighest=surface_container_highest, - surfaceContainerLow=surface_container_low, - surfaceContainerLowest=surface_container_lowest - - - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/date_picker.py b/pythonx/compose/material3/date_picker.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/dialogs.py b/pythonx/compose/material3/dialogs.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/dividers.py b/pythonx/compose/material3/dividers.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/dynamic_color.py b/pythonx/compose/material3/dynamic_color.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/extended_fab.py b/pythonx/compose/material3/extended_fab.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/fab.py b/pythonx/compose/material3/fab.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/icon.py b/pythonx/compose/material3/icon.py deleted file mode 100644 index 08dd46b..0000000 --- a/pythonx/compose/material3/icon.py +++ /dev/null @@ -1,53 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import IconKt - -__COMPILED_CODE__ = None -Unit = None - -class Icon(Composable): - """ M3 icon """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconKt.Icon - except Exception: - for name, obj in IconKt.__dict__.items(): - if name.startswith("Icon-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("Icon is cannot be found") - - def compose( - self, - bitmap=__COMPILED_CODE__, - content_description=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - tint=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - bitmap=bitmap, - contentDescription=content_description, - modifier=modifier, - tint=tint, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/icon_button.py b/pythonx/compose/material3/icon_button.py deleted file mode 100644 index a50a9ba..0000000 --- a/pythonx/compose/material3/icon_button.py +++ /dev/null @@ -1,441 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import IconButtonKt - -__COMPILED_CODE__ = None -Unit = None - -class IconButton(Composable): - """ M3 standard icon button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.IconButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("IconButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("IconButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class IconToggleButton(Composable): - """ M3 standard icon toggle button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.IconToggleButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("IconToggleButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("IconToggleButton is cannot be found") - - def compose( - self, - checked=__COMPILED_CODE__, - on_checked_change=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - checked=checked, - onCheckedChange=on_checked_change, - modifier=modifier, - enabled=enabled, - colors=colors, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class FilledIconButton(Composable): - """ M3 filled icon button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.FilledIconButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("FilledIconButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("FilledIconButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class FilledIconToggleButton(Composable): - """ M3 filled icon toggle button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.FilledIconToggleButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("FilledIconToggleButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("FilledIconToggleButton is cannot be found") - - def compose( - self, - checked=__COMPILED_CODE__, - on_checked_change=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - checked=checked, - onCheckedChange=on_checked_change, - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class FilledTonalIconButton(Composable): - """ M3 filled tonal icon button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.FilledTonalIconButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("FilledTonalIconButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("FilledTonalIconButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class FilledTonalIconToggleButton(Composable): - """ M3 filled tonal icon toggle button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.FilledTonalIconToggleButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("FilledTonalIconToggleButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("FilledTonalIconToggleButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class OutlinedIconButton(Composable): - """ M3 outlined icon button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.OutlinedIconButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("OutlinedIconButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("OutlinedIconButton is cannot be found") - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - border=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - border=border, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - -class OutlinedIconToggleButton(Composable): - """ M3 outlined icon toggle button """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = IconButtonKt.OutlinedIconToggleButton - except Exception: - for name, obj in IconButtonKt.__dict__.items(): - if name.startswith("OutlinedIconToggleButton-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("OutlinedIconToggleButton is cannot be found") - - def compose( - self, - checked=__COMPILED_CODE__, - on_checked_change=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - border=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - checked=checked, - onCheckedChange=on_checked_change, - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - border=border, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/lists.py b/pythonx/compose/material3/lists.py deleted file mode 100644 index bcd7064..0000000 --- a/pythonx/compose/material3/lists.py +++ /dev/null @@ -1,63 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import ListItemKt - -__COMPILED_CODE__ = None -Unit = None - -class ListItem(Composable): - """ M3 list item """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = ListItemKt.ListItem - except Exception: - for name, obj in ListItemKt.__dict__.items(): - if name.startswith("ListItem-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("ListItem is cannot be found") - - def compose( - self, - headline_content=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - overline_content=__COMPILED_CODE__, - supporting_content=__COMPILED_CODE__, - leading_content=__COMPILED_CODE__, - trailing_content=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - tonal_elevation=__COMPILED_CODE__, - shadow_elevation=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - headlineContent=headline_content, - modifier=modifier, - overlineContent=overline_content, - supportingContent=supporting_content, - leadingContent=leading_content, - trailingContent=trailing_content, - colors=colors, - tonalElevation=tonal_elevation, - shadowElevation=shadow_elevation, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/material_theming.py b/pythonx/compose/material3/material_theming.py deleted file mode 100644 index f9b2bd7..0000000 --- a/pythonx/compose/material3/material_theming.py +++ /dev/null @@ -1,51 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import MaterialThemeKt - -__COMPILED_CODE__ = None -Unit = None - -class MaterialTheme(Composable): - """ M3 theme """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = MaterialThemeKt.MaterialTheme - except Exception: - for name, obj in MaterialThemeKt.__dict__.items(): - if name.startswith("MaterialTheme-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("MaterialTheme is cannot be found") - - def compose( - self, - color_scheme=__COMPILED_CODE__, - shapes=__COMPILED_CODE__, - typography=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - colorScheme=color_scheme, - shapes=shapes, - typography=typography, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/menus.py b/pythonx/compose/material3/menus.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/navigation_bar.py b/pythonx/compose/material3/navigation_bar.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/navigation_drawer.py b/pythonx/compose/material3/navigation_drawer.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/navigation_rail.py b/pythonx/compose/material3/navigation_rail.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/progress_indicators.py b/pythonx/compose/material3/progress_indicators.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/radio_button.py b/pythonx/compose/material3/radio_button.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/scaffold.py b/pythonx/compose/material3/scaffold.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/search_bar.py b/pythonx/compose/material3/search_bar.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/segmented_button.py b/pythonx/compose/material3/segmented_button.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/shape.py b/pythonx/compose/material3/shape.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/sliders.py b/pythonx/compose/material3/sliders.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/snackbars.py b/pythonx/compose/material3/snackbars.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/surfaces.py b/pythonx/compose/material3/surfaces.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/swipe_to_dismiss.py b/pythonx/compose/material3/swipe_to_dismiss.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/switch.py b/pythonx/compose/material3/switch.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/tabs.py b/pythonx/compose/material3/tabs.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/text.py b/pythonx/compose/material3/text.py deleted file mode 100644 index b9f20c3..0000000 --- a/pythonx/compose/material3/text.py +++ /dev/null @@ -1,79 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import TextKt - -__COMPILED_CODE__ = None -Unit = None - -class Text(Composable): - """ M3 text """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = TextKt.Text - except Exception: - for name, obj in TextKt.__dict__.items(): - if name.startswith("Text-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("Text is cannot be found") - - def compose( - self, - text=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - color=__COMPILED_CODE__, - font_size=__COMPILED_CODE__, - font_style=__COMPILED_CODE__, - font_weight=__COMPILED_CODE__, - font_family=__COMPILED_CODE__, - letter_spacing=__COMPILED_CODE__, - text_decoration=__COMPILED_CODE__, - text_align=__COMPILED_CODE__, - line_height=__COMPILED_CODE__, - overflow=__COMPILED_CODE__, - soft_wrap=__COMPILED_CODE__, - max_lines=__COMPILED_CODE__, - min_lines=__COMPILED_CODE__, - on_text_layout=__COMPILED_CODE__, - style=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - text=text, - modifier=modifier, - color=color, - fontSize=font_size, - fontStyle=font_style, - fontWeight=font_weight, - fontFamily=font_family, - letterSpacing=letter_spacing, - textDecoration=text_decoration, - textAlign=text_align, - lineHeight=line_height, - overflow=overflow, - softWrap=soft_wrap, - maxLines=max_lines, - minLines=min_lines, - onTextLayout=on_text_layout, - style=style, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/text_field.py b/pythonx/compose/material3/text_field.py deleted file mode 100644 index 5c702f2..0000000 --- a/pythonx/compose/material3/text_field.py +++ /dev/null @@ -1,177 +0,0 @@ -from pythonx.compose.runtime import Composable - -from androidx.compose.material3 import TextFieldKt - -__COMPILED_CODE__ = None -Unit = None - -class TextField(Composable): - """ M3 filled text field """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = TextFieldKt.TextField - except Exception: - for name, obj in TextFieldKt.__dict__.items(): - if name.startswith("TextField-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("TextField is cannot be found") - - def compose( - self, - value=__COMPILED_CODE__, - on_value_change=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - read_only=__COMPILED_CODE__, - text_style=__COMPILED_CODE__, - label=__COMPILED_CODE__, - placeholder=__COMPILED_CODE__, - leading_icon=__COMPILED_CODE__, - trailing_icon=__COMPILED_CODE__, - prefix=__COMPILED_CODE__, - suffix=__COMPILED_CODE__, - support_text=__COMPILED_CODE__, - is_error=__COMPILED_CODE__, - visual_transformation=__COMPILED_CODE__, - keyboard_options=__COMPILED_CODE__, - keyboard_actions=__COMPILED_CODE__, - single_line=__COMPILED_CODE__, - max_lines=__COMPILED_CODE__, - min_lines=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - value=value, - onValueChange=on_value_change, - modifier=modifier, - enabled=enabled, - readOnly=read_only, - textStyle=text_style, - label=label, - placeholder=placeholder, - leadingIcon=leading_icon, - trailingIcon=trailing_icon, - prefix=prefix, - suffix=suffix, - supportingText=support_text, - isError=is_error, - visualTransformation=visual_transformation, - keyboardOptions=keyboard_options, - keyboardActions=keyboard_actions, - singleLine=single_line, - maxLines=max_lines, - minLines=min_lines, - interactionSource=interaction_source, - shape=shape, - colors=colors, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) - - -class OutlinedTextField(Composable): - """ M3 outlined text field """ - - def __init__(self): - super().__init__() - self.__kotlin_composable = None - - def find_composable(self): - super().__init__() - - if self.__kotlin_composable is None: - try: - self.__kotlin_composable = TextFieldKt.OutlinedTextField - except Exception: - for name, obj in TextFieldKt.__dict__.items(): - if name.startswith("OutlinedTextField-"): - self.__kotlin_composable = obj - break - - if not self.__kotlin_composable: - raise Exception("OutlinedTextField is cannot be found") - - def compose( - self, - value=__COMPILED_CODE__, - on_value_change=__COMPILED_CODE__, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - read_only=__COMPILED_CODE__, - text_style=__COMPILED_CODE__, - label=__COMPILED_CODE__, - placeholder=__COMPILED_CODE__, - leading_icon=__COMPILED_CODE__, - trailing_icon=__COMPILED_CODE__, - prefix=__COMPILED_CODE__, - suffix=__COMPILED_CODE__, - support_text=__COMPILED_CODE__, - is_error=__COMPILED_CODE__, - visual_transformation=__COMPILED_CODE__, - keyboard_options=__COMPILED_CODE__, - keyboard_actions=__COMPILED_CODE__, - single_line=__COMPILED_CODE__, - max_lines=__COMPILED_CODE__, - min_lines=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - value=value, - onValueChange=on_value_change, - modifier=modifier, - enabled=enabled, - readOnly=read_only, - textStyle=text_style, - label=label, - placeholder=placeholder, - leadingIcon=leading_icon, - trailingIcon=trailing_icon, - prefix=prefix, - suffix=suffix, - supportingText=support_text, - isError=is_error, - visualTransformation=visual_transformation, - keyboardOptions=keyboard_options, - keyboardActions=keyboard_actions, - singleLine=single_line, - maxLines=max_lines, - minLines=min_lines, - interactionSource=interaction_source, - shape=shape, - colors=colors, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - **kwargs, - c=self.composer, - changed=1 - ) \ No newline at end of file diff --git a/pythonx/compose/material3/time_picker.py b/pythonx/compose/material3/time_picker.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/tool_tip.py b/pythonx/compose/material3/tool_tip.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/top_app_bar.py b/pythonx/compose/material3/top_app_bar.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/material3/typography.py b/pythonx/compose/material3/typography.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/native b/pythonx/compose/native deleted file mode 160000 index 090f019..0000000 --- a/pythonx/compose/native +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 090f01908f5098c28034e327644438e2f66f27f4 diff --git a/pythonx/compose/material3/bottom_sheet.py b/pythonx/compose/py.typed similarity index 100% rename from pythonx/compose/material3/bottom_sheet.py rename to pythonx/compose/py.typed diff --git a/pythonx/compose/pythonx-map.toml b/pythonx/compose/pythonx-map.toml new file mode 100644 index 0000000..df664f9 --- /dev/null +++ b/pythonx/compose/pythonx-map.toml @@ -0,0 +1,73 @@ +# Which Kotlin package each `pythonx.compose.*` module wraps, and which value classes may be +# written as their raw primitive. +# +# **This file is the reason the binder does not have to know Compose exists.** +# `python-multiplatform` used to carry `register_package('pythonx.compose', 'androidx.compose')` in +# its own `commonMain`, which made the language boundary know a UI library by name and put every +# other library one core edit away. It carries nothing now: an embedder installs this map, and the +# `.pyi` generator reads the same file, so the name an IDE completes and the name the interpreter +# resolves cannot drift apart. +# +# The mapping is not inferable from any artefact, which is why it is written down rather than +# derived: `pythonx.compose.layout` wraps `androidx.compose.foundation.layout` and drops +# `foundation.`, and nothing in the jar says so. `UI.ipynb` -- this project's user-facing +# specification -- is what settles the spelling; every module below is one it imports, or a package +# those imports resolve through. + +[modules] +# The four `UI.ipynb` imports by name. +"pythonx.compose.layout" = "androidx.compose.foundation.layout" +"pythonx.compose.material3" = "androidx.compose.material3" +"pythonx.compose.runtime" = "androidx.compose.runtime" +"pythonx.compose.ui" = "androidx.compose.ui" + +# `DefaultIcons` (INTENT section 5.7) is `Icons.Default`, which lives here: `Icons` is an object of +# `material-icons-core`, and `Icons.Default.Add` is an extension property read on `Icons.Filled`. +"pythonx.compose.material" = "androidx.compose.material" +"pythonx.compose.material.icons" = "androidx.compose.material.icons" + +# Reached through the four above rather than imported directly: a `Modifier` chain returns into +# `ui.unit` and `ui.graphics`, and `ui.text` is where `TextStyle` lives. +"pythonx.compose.ui.unit" = "androidx.compose.ui.unit" +"pythonx.compose.ui.text" = "androidx.compose.ui.text" +"pythonx.compose.ui.graphics" = "androidx.compose.ui.graphics" +# `ImageVector`, what an icon is (`Icons.Default.Add`): without this row its stub types it `Any`. +"pythonx.compose.ui.graphics.vector" = "androidx.compose.ui.graphics.vector" + +# `TextFieldState` and `rememberTextFieldState`, what `TextField(state=...)` takes (INTENT section +# 5.8). The state-based overload keeps the buffer and the IME composing region inside Compose, so +# nothing crosses into Python per keystroke; Python makes the state and reads or writes it on demand. +"pythonx.compose.foundation.text.input" = "androidx.compose.foundation.text.input" + +# The long spelling, kept beside the short one because both are real: the generated stubs use +# `pythonx.compose.layout`, and the render fixtures in `python-multiplatform` were written against +# the fully-qualified form. Mapping both means neither is wrong while the spelling settles. +"pythonx.compose.foundation.layout" = "androidx.compose.foundation.layout" +"pythonx.compose.foundation" = "androidx.compose.foundation" +"pythonx.compose" = "androidx.compose" + +[value-classes] +# A value class here may be written as the primitive it wraps: `padding(16)` for `padding(Dp(16f))`. +# +# `Dp`'s public constructor is the identity on its float, so the two spellings mean the same thing. +# `Color` and `TextUnit` are deliberately absent even though they look like numbers: both pack +# several fields into one `packedValue`, so a raw number decodes as something else entirely rather +# than as the value the caller meant. Adding one here is this package's decision to make, which is +# the point of the section being in this file rather than in the binder. +raw-primitive-allowed = [ + "androidx.compose.ui.unit.Dp", +] + +[aliases."pythonx.compose.material3"] +# Names a module also answers for, because the notebook imports them from there (INTENT section 5.2): +# `from pythonx.compose.material3 import Column, Row, Spacer`, while Kotlin declares them in +# `androidx.compose.foundation.layout`. Each is the same object as in its home module; this is data, +# not a wrapper, and the rule that serves it is the one in `_reexport.py`. +"pythonx.compose.layout" = ["Column", "Row", "Spacer"] +# +# An entry is a list of names lent under the SAME name, or a table `{ lent name = "Path.To.Attr" }` +# that lends an attribute path of the source under a DIFFERENT name: the notebook's `DefaultIcons` +# is Kotlin's `Icons.Default` (INTENT section 5.7). The first segment is a name of the source module, +# each further one an attribute read. A path with a dot is read afresh on every access and never kept, +# the way the binder serves `Icons.Default` (a live property); a plain name is resolved once. +"pythonx.compose.material.icons" = { DefaultIcons = "Icons.Default" } diff --git a/pythonx/compose/runtime/__init__.py b/pythonx/compose/runtime/__init__.py index 5ad59d3..3bc9441 100644 --- a/pythonx/compose/runtime/__init__.py +++ b/pythonx/compose/runtime/__init__.py @@ -1,274 +1,128 @@ +"""`pythonx/compose/runtime/__init__.py` -- the 2024 `Composable` class, gone, and what is left. + +## What used to be here, and why it never ran + +A decorator class (`Composable`) holding one `__composer`, plus `ComposeApp`, `KotlinComposable`, +`KotlinWidget` and a `CoroutineScope` family, all built on `jclass` -- +`_runtime = jclass("io.github.thisisthepy.pycomposeui.RuntimeKt")` -- chaquopy's name-based +Java/Kotlin class lookup. `jclass` was never imported in this module, in any commit where the module +had content (`git log -p` on this file shows no `import jclass` anywhere), so every one of those five +module-level statements raised `NameError` before a single class body executed: + + >>> from pythonx.compose.runtime import Composable + NameError: name 'jclass' is not defined + +That is not incidental breakage, it is a different technology than this repository now targets. +`jclass` is chaquopy's global; `PythonMultiplatform`'s binder is a different bridge +(`docs/pythonx-adapter-design.md` §5.1, in `PythonMultiplatform`, reads the same class as "the 2024 +`Composable` class", and `agent-rules.md` §12 retires name-based JVM lookup by name). The other half +of what `Composable.__call__` did -- inspecting `self.compose.__code__.co_varnames` to find where +`content` sat, so it could be popped out and wrapped specially -- is retired for the same reason +`modifier.py`'s mangled-suffix search was: `docs/pythonx-adapter-design.md` §5.6/§7 record that +composer threading, `$changed` and `$default` are now arithmetic the binder's `_bind_composable` (`python_multiplatform.binding`) does from +a slot's *declared type*, uniformly, for a `content` lambda exactly as for any other parameter. There +is nothing left for a Python-side base class to detect or thread by hand. + +## What is left + +One identity decorator, `Composable`, kept because `UI.ipynb` writes `@Composable` on every +screen-defining function and that surface is one an application author should keep being able to +write. Nothing needs to happen to the decorated function for it to work: the composer any nested +`pythonx.compose.*` call needs comes from the one hand-written Kotlin `@Composable` +(`PythonComposition`, in `PythonMultiplatform`) pushing it once per composition pass, and from the +*callee's* slot type deciding whether and how to thread it -- never from anything the caller does. +A plain `def Screen(): Button(...)` already works with no wrapper, no base class and no `content=` +slot detection; `@Composable` changes nothing about that and exists only so the notebook's own +spelling keeps working. + +## The app root and `state` + +`@app` declares the screen the host draws; `state(initial)` makes a value Compose observes. The host +is configured once with `PythonContent("pythonx.compose.runtime", "app_root")`: it reads the module +attribute `app_root`, a Compose `MutableState` whose `.value` is a zero-argument callable or `None` +(nothing is drawn). `app(fn)` writes `app_root.value = fn` and returns `fn` unchanged, so declaring +the root again -- in a notebook cell, say -- replaces the screen. There is deliberately no update or +refresh function (`docs/INTENT.md` section 5.1). + +Both states come from `_new_state`, the one place that asks the binder for +`androidx.compose.runtime.mutableStateOf`. `app_root` is created on first read, because the binder may +be installed after `pythonx` is imported. A Python object with a `.value` would not make Compose +recompose, so when the binder cannot supply `mutableStateOf` (python-multiplatform #38) `_new_state` +raises instead of falling back to one. + +## How it is reached + +By its own dotted name: `import pythonx.compose.runtime` loads this file. The binder used to put a +synthetic `pythonx` with `__path__ = []` into `sys.modules`, which made every file under +`pythonx/compose/` unreachable; PythonMultiplatform `d00f413f` moved its layer to +`python_multiplatform.binding` and leaves `pythonx` to this package (AGENTS.md section 12). +`tests/test_runtime_module.py::TheModuleIsTheFileOnDisk` checks that against the binder's real source. +""" + from __future__ import annotations -from inspect import isfunction -import traceback - - - -def cp_info(target, ori): - if ori is None: - raise ValueError(f"Error: Origin of Target Composable should not be None. - [{ori}], [{target}]") - else: - target.__dict__['__name__'] = ori.__name__ - target.__dict__['__doc__'] = ori.__doc__ - target.__dict__['__module__'] = ori.__module__ - - -_runtime = jclass("io.github.thisisthepy.pycomposeui.RuntimeKt") -print("Compose Runtime:", _runtime) -_runtime_android = jclass("io.github.thisisthepy.pycomposeui.Runtime_androidKt") -print("Compose Android Runtime:", _runtime_android) -ComposableWrapper = _runtime.composableWrapper -print("Composable Wrapper:", ComposableWrapper) -ComposableLambdaImpl = jclass("androidx.compose.runtime.internal.ComposableLambdaImpl") -print("Composable Lambda:", ComposableLambdaImpl) -_rememberSaveable = _runtime_android.rememberSaveableWrapper -print("Remember Saveable:", _rememberSaveable) - - -class Composable: - """ Composable Function Class (Singleton) for Jetpack Compose """ - __composer = None - from_function = False - - def _register_composer(self, composer): - self.__composer = composer - - @property - def composer(self): - return self.__composer - - def __new__(cls, composable=None): - """ When @Composable is called """ - try: - if issubclass(composable, Composable): # is child of Composable - return super().__new__(composable) # return an instance of the composable argument - except TypeError as _: - pass - return super().__new__(cls) # return a new instance of the Composable class - - def __init__(self, composable=None): - """ When @Composable is called """ - if isfunction(composable): # When the decorative target is a function - self.compose = composable - cp_info(self, composable) - self.from_function = True - elif composable is None or issubclass(composable, Composable): # When the decorative target is a child class of Composable or itself - cp_info(self, type(self) if composable is None else composable) - else: # When the decorative target is an object other than a child class of Composable - if hasattr(composable, "content"): - target = composable # When the compose method is staticmethod/classmethod - if isinstance(composable, staticmethod): # When the compose method is staticmethod - self.from_function = True - else: - target = composable() # When the compose method is instancemethod - self.compose = target.compose - cp_info(self, composable) - - def __repr__(self): - return f"<{self.__module__}.{self.__name__} @Composable object at {hex(id(self))}>" - - def __str__(self): - return self.__repr__() - - @staticmethod - def compose(*args, **kwargs): - """ Composition Content method for compose """ - pass - - def __invoke(self, *args, **kwargs): - """ Invoke composableLambda / composableLambdaInstance - Ref: https://sungbin.land/jetpack-compose-%EB%9F%B0%ED%83%80%EC%9E%84%EC%97%90%EC%84%9C-%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94-%EB%A7%88%EB%B2%95-%EC%99%84%EC%A0%84%ED%9E%88-%ED%8C%8C%ED%95%B4%EC%B9%98%EA%B8%B0-composeinitial-4c4c306c0a8c - !WARNING! keyword 'content' must be specified in the kwargs not in the args - :raises ValueError: When content is not callable - """ - composer = self.composer - content = kwargs.pop("content", None) - - try: - if isinstance(content, ComposableLambdaImpl): # isinstance(content, JavaClass) - # TODO: Find a way to check if the content is a JavaClass - content = KotlinComposable(content) # Raw Kotlin Composable - elif content is None or callable(content): # In case of None, Function, Method - pass - else: - raise ValueError(f"Error: Invalid Content Type. Please check your Composable's arguments - Current content type: {type(content)}") - - if content is not None: - kwargs['content'] = content - - return self.compose(*args, **kwargs) # Python Composable - except Exception as err: - print("-----------------------------------------------------------------------------------------------------------") - traceback.print_exc() - print("-----------------------------------------------------------------------------------------------------------") - raise err - - def __call__(self, *args, **kwargs): - """ Do Composition - :raises RuntimeError: When Composer is not set from Kotlin before Python is loaded - """ - if self.composer is None: - raise RuntimeError("Composer for Composable must be registered before Composition starts.") - vars = self.compose.__code__.co_varnames - try: - # Check if content variable is set and where it is - index = vars.index("content") - (0 if self.from_function else 1) # ValueError could be raised - - # Find the actual content variable - if "content" in kwargs: - content = kwargs.pop("content") - else: - args = list(args) - # if pop failed, that means the content argument is set but the content variable not been received - content = args.pop(index) # IndexError could be raised - - if content is None: - content = EmptyComposable - except (ValueError, IndexError) as _: - content = None - - kwargs['content'] = content - return self.__invoke(*args, **kwargs) - - -class ComposeApp(Composable): - """ Composable App Class (should be instanced in Kotlin side) """ - - def __init__(self, composer): - super().__init__() - self._register_composer(composer) - - def __del__(self): - self._register_composer(None) - - -class KotlinComposable(Composable): - """ Raw Kotlin Composable Wrapper Class """ - def __new__(cls, content): - return super().__new__(cls) - - def __init__(self, content): - super().__init__() - self.content = content - - def compose(self, *args): - ComposableWrapper(self.content, args, self.composer, 1) - - -class KotlinWidget(KotlinComposable): - """ Kotlin Composable Linker Class """ - _package_name_preset_: str = "" - - @classmethod - def set_package_name_preset(cls, name): - """ Set the Kotlin package name prefix - !WARNING: This method can be called only once. - :raises RuntimeError: If this method is called multiple times - """ - if not cls._package_name_preset_: - cls._package_name_preset_ = name - else: - raise RuntimeError("KotlinWidget: Kotlin package name preset can be set only once.") - - @classmethod - def get_package_name_preset(cls) -> str: - """ Returns the Kotlin package name prefix """ - return cls._package_name_preset_ - - def __new__(cls, classname, varname=None, package=None): - """ - :raises ModuleNotFoundError: If the class cannot be found (NoClassDefFoundError) - :param classname: Kotlin class/module name without package name - :param varname: Kotlin variable/function name, can be None if you want to use the class itself - :param package: Kotlin package name - """ - # Search Class - classname = classname.replace(".", "_") - try: - try: - content = jclass(f"{package}.{classname}") - except Exception as errr: - try: - content = jclass(f"{package}.{classname}Kt") # retry with -Kt suffix - except Exception as _: - raise errr - except Exception as err: - raise ModuleNotFoundError( - "Could not find the specified Kotlin class." - "Please ensure that the class/object is excluded from the build by ProGuard optimization." - ) from err - - # Get Variable/Method/Function - if varname: - content = content.__dict__[varname] - - return super().__new__(cls, content) - - -@Composable -class EmptyComposable(Composable): - """ Empty Composition """ - def __init__(self, *_, **__): - super().__init__() - - -@Composable -def remember_saveable(value): - _type = type(value).__name__ - if _type == "int": - if value < -2147483648 or value > 2147483647: - _type = "long" - return _rememberSaveable(value, _type, Composable.composer, 1) - - -class CoroutineScope(Composable): - def __init__(self, scope, launcher): - super().__init__() - self._scope = scope - self._launcher = launcher - - def launch(self, block: callable): - self._launcher(self._scope, block) - - -class RememberCoroutineScope(CoroutineScope): - def __init__(self): - super().__init__( - scope=_runtime.rememberCoroutineScopeWrapper(self.composer, 1), - launcher=_runtime_android.coroutineLauncherWrapper - ) - - def launch(self, block: callable): - self._launcher(self._scope, block) - - -class DefaultCoroutineScope(CoroutineScope): - def __init__(self): - super().__init__( - scope=_runtime.defaultCoroutineScopeWrapper(self.composer, 1), - launcher=_runtime_android.coroutineLauncherWrapper - ) - - -class MainCoroutineScope(CoroutineScope): - def __init__(self): - super().__init__( - scope=_runtime.mainCoroutineScopeWrapper(self.composer, 1), - launcher=_runtime_android.coroutineLauncherWrapper - ) - - -class IOCoroutineScope(CoroutineScope): - def __init__(self): - super().__init__( - scope=_runtime.ioCoroutineScopeWrapper(self.composer, 1), - launcher=_runtime_android.coroutineLauncherWrapper - ) - - -class UncondifiedCoroutineScope(CoroutineScope): - def __init__(self): - super().__init__( - scope=_runtime.uncondifiedCoroutineScopeWrapper(self.composer, 1), - launcher=_runtime_android.coroutineLauncherWrapper - ) + +import sys + + +def Composable(target): + """Identity. `UI.ipynb` writes `@Composable def Screen(): ...`; nothing needs to happen to + `Screen` for that to work, because the composer every nested `pythonx.compose.*` call needs is + threaded by `PythonComposition`/`python_multiplatform.binding._bind_composable` from the *callee's* declared slot + type, not from anything the caller -- decorated or not -- does. See the module docstring for + what used to be here and why it is gone. + """ + return target + + + +app_root: State +"""The state the host reads (`PythonContent("pythonx.compose.runtime", "app_root")`); annotated +only, created on first read by `__getattr__` below.""" + + +def _new_state(initial): + """A Compose `MutableState` holding `initial`, from the binder's `mutableStateOf`. + + Never a Python stand-in: only a state Compose created is observed by composition. + """ + try: + import androidx.compose.runtime as kotlin_runtime + + make = kotlin_runtime.mutableStateOf + except (ImportError, AttributeError) as missing: + raise RuntimeError( + "androidx.compose.runtime.mutableStateOf is not available from the binder: " + "calling it from Python needs python-multiplatform #38" + ) from missing + return make(initial) + + +def state(initial): + """A Compose state holding `initial`; read and write it through `.value`.""" + return _new_state(initial) + + +def app(root): + """Declare `root`, a zero-argument function, as the screen the host draws; returns it unchanged. + + Declaring again replaces the screen; there is no update call. + """ + sys.modules[__name__].app_root.value = root + return root + + +from pythonx.compose._reexport import reexport + +_reexported_getattr, _reexported_dir = reexport(__name__) + + +def __getattr__(name): + if name == "app_root": + created = _new_state(None) + globals()["app_root"] = created + return created + return _reexported_getattr(name) + + +def __dir__(): + return sorted(set(_reexported_dir()) | {"app_root"}) diff --git a/pythonx/compose/runtime/__init__.pyi b/pythonx/compose/runtime/__init__.pyi new file mode 100644 index 0000000..beecbf9 --- /dev/null +++ b/pythonx/compose/runtime/__init__.pyi @@ -0,0 +1,180 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.ui + +class _Composer_materialize(_t.Protocol): + def __call__(self, modifier: pythonx.compose.ui.Modifier) -> pythonx.compose.ui.Modifier: ... + +class _CompositionLocalAccessorScope_mediaQuery(_t.Protocol): + def __call__(self, query: _t.Callable[[pythonx.compose.ui.UiMediaScope], bool]) -> bool: ... + +class _CompositionLocalAccessorScope_mediaQuery__CompositionLocalAccessorScope_Boolean(_t.Protocol): + def __call__(self, query: _t.Callable[[pythonx.compose.ui.UiMediaScope], bool]) -> bool: ... + +class _MutableState_setValue(_t.Protocol): + def __call__(self, this_obj: _t.Any | None, property: _t.Any, value: _t.Any | None) -> None: ... + +class _State_getValue(_t.Protocol): + def __call__(self, this_obj: _t.Any | None, property: _t.Any) -> _t.Any | None: ... + +class AbstractApplier: + """Kotlin: androidx.compose.runtime.AbstractApplier""" + +class Applier: + """Kotlin: androidx.compose.runtime.Applier""" + +class Composer: + """Kotlin: androidx.compose.runtime.Composer""" + materialize: _t.ClassVar[_Composer_materialize] + +class CompositionLocal: + """Kotlin: androidx.compose.runtime.CompositionLocal""" + +class CompositionLocalAccessorScope: + """Kotlin: androidx.compose.runtime.CompositionLocalAccessorScope""" + media_query: _t.ClassVar[_CompositionLocalAccessorScope_mediaQuery] + media_query__CompositionLocalAccessorScope_Boolean: _t.ClassVar[_CompositionLocalAccessorScope_mediaQuery__CompositionLocalAccessorScope_Boolean] + +class CompositionLocalContext: + """Kotlin: androidx.compose.runtime.CompositionLocalContext""" + +class MutableState(State): + """Kotlin: androidx.compose.runtime.MutableState""" + set_value: _t.ClassVar[_MutableState_setValue] + @property + def value(self) -> _t.Any | None: + """Kotlin property: androidx.compose.runtime.MutableState.value (androidx.compose.runtime.MutableState.value: kotlin.Any?)""" + ... + @value.setter + def value(self, value: _t.Any | None) -> None: + """Kotlin property: androidx.compose.runtime.MutableState.value=""" + ... + +class ProduceStateScope: + """Kotlin: androidx.compose.runtime.ProduceStateScope""" + +class SnapshotFlowManager: + """Kotlin: androidx.compose.runtime.SnapshotFlowManager""" + +class SnapshotMutationPolicy: + """Kotlin: androidx.compose.runtime.SnapshotMutationPolicy""" + +class State: + """Kotlin: androidx.compose.runtime.State""" + get_value: _t.ClassVar[_State_getValue] + @property + def value(self) -> _t.Any | None: + """Kotlin property: androidx.compose.runtime.State.value (androidx.compose.runtime.State.value: kotlin.Any?)""" + ... + +def collect_as_state(receiver: _t.Any, /, context: _t.Any = ...) -> State: + """Kotlin: kotlinx.coroutines.flow.StateFlow.collectAsState(context: kotlin.coroutines.CoroutineContext): androidx.compose.runtime.State""" + ... + +def derived_state_of__Any(calculation: _t.Callable[[], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.derivedStateOf(calculation: kotlin.Function0): androidx.compose.runtime.State""" + ... + +def derived_state_of__SnapshotMutationPolicy_Any(policy: SnapshotMutationPolicy, calculation: _t.Callable[[], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.derivedStateOf(policy: androidx.compose.runtime.SnapshotMutationPolicy, calculation: kotlin.Function0): androidx.compose.runtime.State""" + ... + +def get_value(receiver: State, /, this_obj: _t.Any | None, property: _t.Any) -> _t.Any | None: + """Kotlin: androidx.compose.runtime.State.getValue(thisObj: kotlin.Any?, property: kotlin.reflect.KProperty): kotlin.Any""" + ... + +def mutable_state_list_of() -> _t.Any: + """Kotlin: androidx.compose.runtime.mutableStateListOf(): androidx.compose.runtime.snapshots.SnapshotStateList""" + ... + +def mutable_state_map_of() -> _t.Any: + """Kotlin: androidx.compose.runtime.mutableStateMapOf(): androidx.compose.runtime.snapshots.SnapshotStateMap""" + ... + +def mutable_state_of(value: _t.Any | None, policy: SnapshotMutationPolicy = ...) -> MutableState: + """Kotlin: androidx.compose.runtime.mutableStateOf(value: kotlin.Any?, policy: androidx.compose.runtime.SnapshotMutationPolicy): androidx.compose.runtime.MutableState""" + ... + +def mutable_state_set_of() -> _t.Any: + """Kotlin: androidx.compose.runtime.mutableStateSetOf(): androidx.compose.runtime.snapshots.SnapshotStateSet""" + ... + +def never_equal_policy() -> SnapshotMutationPolicy: + """Kotlin: androidx.compose.runtime.neverEqualPolicy(): androidx.compose.runtime.SnapshotMutationPolicy""" + ... + +def produce_state__Any_Any(initial_value: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.produceState(initialValue: kotlin.Any?, producer: kotlin.Function2): androidx.compose.runtime.State""" + ... + +def produce_state__Any_Any_Any(initial_value: _t.Any | None, key1: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.produceState(initialValue: kotlin.Any?, key1: kotlin.Any?, producer: kotlin.Function2): androidx.compose.runtime.State""" + ... + +def produce_state__Any_Any_Any_Any(initial_value: _t.Any | None, key1: _t.Any | None, key2: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.produceState(initialValue: kotlin.Any?, key1: kotlin.Any?, key2: kotlin.Any?, producer: kotlin.Function2): androidx.compose.runtime.State""" + ... + +def produce_state__Any_Any_Any_Any_Any(initial_value: _t.Any | None, key1: _t.Any | None, key2: _t.Any | None, key3: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.produceState(initialValue: kotlin.Any?, key1: kotlin.Any?, key2: kotlin.Any?, key3: kotlin.Any?, producer: kotlin.Function2): androidx.compose.runtime.State""" + ... + +def produce_state__Any_Array_Any(initial_value: _t.Any | None, keys: _t.Any, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: + """Kotlin: androidx.compose.runtime.produceState(initialValue: kotlin.Any?, keys: kotlin.Array, producer: kotlin.Function2): androidx.compose.runtime.State""" + ... + +def referential_equality_policy() -> SnapshotMutationPolicy: + """Kotlin: androidx.compose.runtime.referentialEqualityPolicy(): androidx.compose.runtime.SnapshotMutationPolicy""" + ... + +def remember_updated_state(new_value: _t.Any | None) -> State: + """Kotlin: androidx.compose.runtime.rememberUpdatedState(newValue: kotlin.Any?): androidx.compose.runtime.State""" + ... + +def set_value(receiver: MutableState, /, this_obj: _t.Any | None, property: _t.Any, value: _t.Any | None) -> None: + """Kotlin: androidx.compose.runtime.MutableState.setValue(thisObj: kotlin.Any?, property: kotlin.reflect.KProperty, value: kotlin.Any?): kotlin.Unit""" + ... + +def snapshot_flow__Any(block: _t.Callable[[], _t.Any | None]) -> _t.Any: + """Kotlin: androidx.compose.runtime.snapshotFlow(block: kotlin.Function0): kotlinx.coroutines.flow.Flow""" + ... + +def snapshot_flow__SnapshotFlowManager_Any(manager: SnapshotFlowManager, block: _t.Callable[[], _t.Any | None]) -> _t.Any: + """Kotlin: androidx.compose.runtime.snapshotFlow(manager: androidx.compose.runtime.SnapshotFlowManager, block: kotlin.Function0): kotlinx.coroutines.flow.Flow""" + ... + +def structural_equality_policy() -> SnapshotMutationPolicy: + """Kotlin: androidx.compose.runtime.structuralEqualityPolicy(): androidx.compose.runtime.SnapshotMutationPolicy""" + ... + +@_t.overload +def derived_state_of(calculation: _t.Callable[[], _t.Any | None]) -> State: ... +@_t.overload +def derived_state_of(policy: SnapshotMutationPolicy, calculation: _t.Callable[[], _t.Any | None]) -> State: ... # type: ignore[overload-cannot-match] + +@_t.overload +def produce_state(initial_value: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: ... +@_t.overload +def produce_state(initial_value: _t.Any | None, key1: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: ... # type: ignore[overload-cannot-match] +@_t.overload +def produce_state(initial_value: _t.Any | None, key1: _t.Any | None, key2: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: ... # type: ignore[overload-cannot-match] +@_t.overload +def produce_state(initial_value: _t.Any | None, key1: _t.Any | None, key2: _t.Any | None, key3: _t.Any | None, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: ... # type: ignore[overload-cannot-match] +@_t.overload +def produce_state(initial_value: _t.Any | None, keys: _t.Any, producer: _t.Callable[[ProduceStateScope, _t.Any], _t.Any | None]) -> State: ... # type: ignore[overload-cannot-match] + +@_t.overload +def snapshot_flow(block: _t.Callable[[], _t.Any | None]) -> _t.Any: ... +@_t.overload +def snapshot_flow(manager: SnapshotFlowManager, block: _t.Callable[[], _t.Any | None]) -> _t.Any: ... # type: ignore[overload-cannot-match] + +def Composable(target): + ... + +app_root: State + +def state(initial): + ... + +def app(root): + ... diff --git a/pythonx/compose/test/main.py b/pythonx/compose/test/main.py deleted file mode 100644 index e8e15a9..0000000 --- a/pythonx/compose/test/main.py +++ /dev/null @@ -1,79 +0,0 @@ -from pythonx.compose.runtime import Composable, ComposeApp, EmptyComposable, remember_saveable -from pythonx.compose.material3 import SimpleText, SimpleColumn, SimpleRow, SimpleButton -from pythonx.compose.ui import modifier, Alignment - - -@Composable -def UiTestCase(text: str = "UiTestCase"): - SimpleText(text) - - -@Composable -class UiTest: - def compose(self, content: Composable = EmptyComposable): - SimpleColumn(modifier, content=lambda: { - UiTestCase(text="UiTestCase in UiTest"), - content() - }) - - -@Composable -class BasicText: - @classmethod - def compose(cls, text: str = "BasicText"): - SimpleText(text) - - -@Composable -class RichText(Composable): - @staticmethod - def compose(content: Composable = EmptyComposable): - SimpleColumn(modifier, content=Composable(lambda: { - BasicText("Basic Text inside of Rich Text"), - SimpleRow(lambda: { # Unlike Kotlin Compose, pycompose does not require Composable functions as content parameters - BasicText("Row Left Side "), - BasicText("Row Right Side") - }), - content() - })) - - -@ComposeApp -class MainApp: - @staticmethod - def compose(): - hi = remember_saveable("Hi?") - count = remember_saveable(0) - - SimpleColumn(modifier, content=lambda: { - UiTest(), - RichText(), - SimpleText(hi.getValue()), - SimpleButton( - onclick=lambda: { - print("Button1 clicked!!!!!!!"), - hi.setValue(hi.getValue() + " Hi?") - }, - content=lambda: { - SimpleText("Button 1") - } - ), - SimpleButton( - onclick=lambda: { - print("Button2 clicked!!!!!!!"), - count.setValue(count.getValue() + 1) - }, - content=lambda: { - SimpleText(f"Button 2: Clicked {count.getValue()}") - } - ), - SimpleButton( - onclick=lambda: { - print("Run Client"), - run_client() - }, - content=lambda: { - SimpleText("Run Client") - } - ) - }) diff --git a/pythonx/compose/ui/__init__.py b/pythonx/compose/ui/__init__.py index 21ca075..f576918 100644 --- a/pythonx/compose/ui/__init__.py +++ b/pythonx/compose/ui/__init__.py @@ -1,15 +1,21 @@ -from __future__ import annotations -import traceback +"""`pythonx/compose/ui/__init__.py` -- the 2024 `from .modifier import Modifier` wrapper, unexecuted, and why. + +## What used to be here, and why it never ran + +A `try...except` block executing `from .modifier import Modifier`, `modifier = Modifier()`, and +`from .alignment import Alignment, AbsoluteAlignment`. `alignment.py` depended on `from java import jclass` +(Chaquopy-era JVM class lookup, retired in this codebase). -try: - from .modifier import Modifier - modifier = Modifier() - from .alignment import Alignment, AbsoluteAlignment +## How `pythonx.compose.ui` resolves + +`import pythonx.compose.ui` loads this file; it is an ordinary package on disk. The binder serves the +Kotlin package under its Kotlin name, `androidx.compose.ui`, as a separate module, and renames +nothing. This file re-exports it under Pythonic names (`Modifier`, `describe_modifier`, ...) by the +one rule in `pythonx/compose/_reexport.py` (SPEC section 3); it names no declaration itself. +""" + +from __future__ import annotations +from pythonx.compose._reexport import reexport -except Exception as e: - print("-----------------------------------------------------------------------------------------------------------") - traceback.print_exc() - print("ERROR: PyComposeUI Ui Library is not Found.") - print("-----------------------------------------------------------------------------------------------------------") - raise e +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/ui/__init__.pyi b/pythonx/compose/ui/__init__.pyi new file mode 100644 index 0000000..827559a --- /dev/null +++ b/pythonx/compose/ui/__init__.pyi @@ -0,0 +1,975 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.layout +import pythonx.compose.runtime +import pythonx.compose.ui.graphics +import pythonx.compose.ui.unit + +class _ImageComposeScene_use(_t.Protocol): + def __call__(self, block: _t.Callable[[ImageComposeScene], _t.Any | None]) -> _t.Any | None: ... + +class _Modifier_absoluteOffset(_t.Protocol): + @_t.overload + def __call__(self, x: float = ..., y: float = ...) -> Modifier: ... + @_t.overload + def __call__(self, offset: _t.Callable[[_t.Any], _t.Any]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_absoluteOffset__Dp_Dp(_t.Protocol): + def __call__(self, x: float = ..., y: float = ...) -> Modifier: ... + +class _Modifier_absoluteOffset__IntOffset(_t.Protocol): + def __call__(self, offset: _t.Callable[[_t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_absolutePadding(_t.Protocol): + def __call__(self, left: float = ..., top: float = ..., right: float = ..., bottom: float = ...) -> Modifier: ... + +class _Modifier_alpha(_t.Protocol): + def __call__(self, alpha: float) -> Modifier: ... + +class _Modifier_approachLayout(_t.Protocol): + def __call__(self, is_measurement_approach_in_progress: _t.Callable[[_t.Any], bool], is_placement_approach_in_progress: _t.Callable[[_t.Any, _t.Any], bool] = ..., *, approach_measure: _t.Callable[[_t.Any, _t.Any, _t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_aspectRatio(_t.Protocol): + def __call__(self, ratio: float, match_height_constraints_first: bool = ...) -> Modifier: ... + +class _Modifier_blur(_t.Protocol): + @_t.overload + def __call__(self, radius: float, edge_treatment: _t.Any = ...) -> Modifier: ... + @_t.overload + def __call__(self, radius_x: float, radius_y: float, edge_treatment: _t.Any = ...) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_blur__Dp_BlurredEdgeTreatment(_t.Protocol): + def __call__(self, radius: float, edge_treatment: _t.Any = ...) -> Modifier: ... + +class _Modifier_blur__Dp_Dp_BlurredEdgeTreatment(_t.Protocol): + def __call__(self, radius_x: float, radius_y: float, edge_treatment: _t.Any = ...) -> Modifier: ... + +class _Modifier_captionBarPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_clearAndSetSemantics(_t.Protocol): + def __call__(self, properties: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_clip(_t.Protocol): + def __call__(self, shape: pythonx.compose.ui.graphics.Shape) -> Modifier: ... + +class _Modifier_clipToBounds(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_consumeWindowInsets(_t.Protocol): + @_t.overload + def __call__(self, padding_values: _t.Any) -> Modifier: ... + @_t.overload + def __call__(self, insets: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_consumeWindowInsets__PaddingValues(_t.Protocol): + def __call__(self, padding_values: _t.Any) -> Modifier: ... + +class _Modifier_consumeWindowInsets__WindowInsets(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_contentType(_t.Protocol): + def __call__(self, content_type: _t.Any) -> Modifier: ... + +class _Modifier_defaultMinSize(_t.Protocol): + def __call__(self, min_width: float = ..., min_height: float = ...) -> Modifier: ... + +class _Modifier_displayCutoutPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_drawBehind(_t.Protocol): + def __call__(self, on_draw: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_drawWithCache(_t.Protocol): + def __call__(self, on_build_draw_cache: _t.Callable[[_t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_drawWithContent(_t.Protocol): + def __call__(self, on_draw: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_dropShadow(_t.Protocol): + @_t.overload + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, shadow: _t.Any) -> Modifier: ... + @_t.overload + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, block: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_dropShadow__Shape_Shadow(_t.Protocol): + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, shadow: _t.Any) -> Modifier: ... + +class _Modifier_dropShadow__Shape_Unit(_t.Protocol): + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, block: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_fillMaxHeight(_t.Protocol): + def __call__(self, fraction: float = ...) -> Modifier: ... + +class _Modifier_fillMaxSize(_t.Protocol): + def __call__(self, fraction: float = ...) -> Modifier: ... + +class _Modifier_fillMaxWidth(_t.Protocol): + def __call__(self, fraction: float = ...) -> Modifier: ... + +class _Modifier_fitInside(_t.Protocol): + def __call__(self, rulers: _t.Any) -> Modifier: ... + +class _Modifier_fitOutside(_t.Protocol): + def __call__(self, rulers: _t.Any) -> Modifier: ... + +class _Modifier_focusModifier(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_focusOrder(_t.Protocol): + @_t.overload + def __call__(self, focus_requester: _t.Any) -> Modifier: ... + @_t.overload + def __call__(self, focus_requester: _t.Any, focus_order_receiver: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + @_t.overload + def __call__(self, focus_order_receiver: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_focusOrder__FocusRequester(_t.Protocol): + def __call__(self, focus_requester: _t.Any) -> Modifier: ... + +class _Modifier_focusOrder__FocusRequester_Unit(_t.Protocol): + def __call__(self, focus_requester: _t.Any, focus_order_receiver: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_focusOrder__Unit(_t.Protocol): + def __call__(self, focus_order_receiver: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_focusProperties(_t.Protocol): + def __call__(self, scope: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_focusRequester(_t.Protocol): + def __call__(self, focus_requester: _t.Any) -> Modifier: ... + +class _Modifier_focusRestorer(_t.Protocol): + @_t.overload + def __call__(self, fallback: _t.Any = ...) -> Modifier: ... + @_t.overload + def __call__(self, on_restore_failed: _t.Callable[[], _t.Any] | None) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_focusRestorer__androidx_compose_ui_Modifier_androidx_compose_ui_focus_FocusRequester(_t.Protocol): + def __call__(self, fallback: _t.Any = ...) -> Modifier: ... + +class _Modifier_focusRestorer__androidx_compose_ui_Modifier_kotlin_Function0____androidx_compose_ui_focus_FocusRequester(_t.Protocol): + def __call__(self, on_restore_failed: _t.Callable[[], _t.Any] | None) -> Modifier: ... + +class _Modifier_focusTarget(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_graphicsLayer(_t.Protocol): + @_t.overload + def __call__(self, scale_x: float, scale_y: float, alpha: float, translation_x: float, translation_y: float, shadow_elevation: float, rotation_x: float, rotation_y: float, rotation_z: float, camera_distance: float, transform_origin: _t.Any, shape: pythonx.compose.ui.graphics.Shape, clip: bool, render_effect: pythonx.compose.ui.graphics.RenderEffect | None, ambient_shadow_color: _t.Any, spot_shadow_color: _t.Any, compositing_strategy: _t.Any, blend_mode: _t.Any, color_filter: pythonx.compose.ui.graphics.ColorFilter | None) -> Modifier: ... + @_t.overload + def __call__(self, block: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_graphicsLayer__Float_Float_Float_Float_Float_Float_Float_Float_Float_Float_TransformOrigin_Shape_Boolean_RenderEffect_Color_Color_CompositingStrategy_BlendMode_ColorFilter(_t.Protocol): + def __call__(self, scale_x: float, scale_y: float, alpha: float, translation_x: float, translation_y: float, shadow_elevation: float, rotation_x: float, rotation_y: float, rotation_z: float, camera_distance: float, transform_origin: _t.Any, shape: pythonx.compose.ui.graphics.Shape, clip: bool, render_effect: pythonx.compose.ui.graphics.RenderEffect | None, ambient_shadow_color: _t.Any, spot_shadow_color: _t.Any, compositing_strategy: _t.Any, blend_mode: _t.Any, color_filter: pythonx.compose.ui.graphics.ColorFilter | None) -> Modifier: ... + +class _Modifier_graphicsLayer__Unit(_t.Protocol): + def __call__(self, block: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_height(_t.Protocol): + @_t.overload + def __call__(self, height: float) -> Modifier: ... + @_t.overload + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_heightIn(_t.Protocol): + def __call__(self, min: float = ..., max: float = ...) -> Modifier: ... + +class _Modifier_height__Dp(_t.Protocol): + def __call__(self, height: float) -> Modifier: ... + +class _Modifier_height__IntrinsicSize(_t.Protocol): + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... + +class _Modifier_imePadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_innerShadow(_t.Protocol): + @_t.overload + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, shadow: _t.Any) -> Modifier: ... + @_t.overload + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, block: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_innerShadow__Shape_Shadow(_t.Protocol): + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, shadow: _t.Any) -> Modifier: ... + +class _Modifier_innerShadow__Shape_Unit(_t.Protocol): + def __call__(self, shape: pythonx.compose.ui.graphics.Shape, block: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_inspectable(_t.Protocol): + def __call__(self, inspector_info: _t.Callable[[_t.Any], None], factory: _t.Callable[[Modifier], Modifier]) -> Modifier: ... + +class _Modifier_keepScreenOn(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_layout(_t.Protocol): + def __call__(self, measure: _t.Callable[[_t.Any, _t.Any, _t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_layoutBounds(_t.Protocol): + def __call__(self, holder: _t.Any) -> Modifier: ... + +class _Modifier_mandatorySystemGesturesPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_minimumInteractiveComponentSize(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_modifierLocalConsumer(_t.Protocol): + def __call__(self, consumer: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_modifierLocalProvider(_t.Protocol): + def __call__(self, key: _t.Any, value: _t.Callable[[], _t.Any | None]) -> Modifier: ... + +class _Modifier_mouseScrollFilter(_t.Protocol): + def __call__(self, on_mouse_scroll: _t.Callable[[_t.Any, _t.Any], bool]) -> Modifier: ... + +class _Modifier_navigationBarsPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_nestedScroll(_t.Protocol): + def __call__(self, connection: _t.Any, dispatcher: _t.Any | None = ...) -> Modifier: ... + +class _Modifier_offset(_t.Protocol): + @_t.overload + def __call__(self, x: float = ..., y: float = ...) -> Modifier: ... + @_t.overload + def __call__(self, offset: _t.Callable[[_t.Any], _t.Any]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_offset__Dp_Dp(_t.Protocol): + def __call__(self, x: float = ..., y: float = ...) -> Modifier: ... + +class _Modifier_offset__IntOffset(_t.Protocol): + def __call__(self, offset: _t.Callable[[_t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_onConsumedWindowInsetsChanged(_t.Protocol): + def __call__(self, block: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onFirstVisible(_t.Protocol): + def __call__(self, min_duration_ms: int = ..., min_fraction_visible: float = ..., viewport_bounds: _t.Any | None = ..., *, callback: _t.Callable[[], None]) -> Modifier: ... + +class _Modifier_onFocusChanged(_t.Protocol): + def __call__(self, on_focus_changed: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onFocusEvent(_t.Protocol): + def __call__(self, on_focus_event: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onGloballyPositioned(_t.Protocol): + def __call__(self, on_globally_positioned: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onInterceptKeyBeforeSoftKeyboard(_t.Protocol): + def __call__(self, on_intercept_key_before_soft_keyboard: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onKeyEvent(_t.Protocol): + def __call__(self, on_key_event: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onLayoutRectChanged(_t.Protocol): + def __call__(self, throttle_millis: int = ..., debounce_millis: int = ..., *, callback: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onPlaced(_t.Protocol): + def __call__(self, on_placed: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onPointerEvent(_t.Protocol): + def __call__(self, event_type: _t.Any, __a1: _t.Any, /, on_event: _t.Callable[[_t.Any, _t.Any], None]) -> Modifier: ... + +class _Modifier_onPreInterceptKeyBeforeSoftKeyboard(_t.Protocol): + def __call__(self, on_pre_intercept_key_before_soft_keyboard: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onPreRotaryScrollEvent(_t.Protocol): + def __call__(self, on_pre_rotary_scroll_event: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onPreviewKeyEvent(_t.Protocol): + def __call__(self, on_preview_key_event: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onRotaryScrollEvent(_t.Protocol): + def __call__(self, on_rotary_scroll_event: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onSizeChanged(_t.Protocol): + def __call__(self, on_size_changed: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onVisibilityChanged(_t.Protocol): + def __call__(self, min_duration_ms: int = ..., min_fraction_visible: float = ..., viewport_bounds: _t.Any | None = ..., *, callback: _t.Callable[[bool], None]) -> Modifier: ... + +class _Modifier_padding(_t.Protocol): + @_t.overload + def __call__(self, all: float) -> Modifier: ... + @_t.overload + def __call__(self, horizontal: float = ..., vertical: float = ...) -> Modifier: ... # type: ignore[overload-cannot-match] + @_t.overload + def __call__(self, start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> Modifier: ... # type: ignore[overload-cannot-match] + @_t.overload + def __call__(self, padding_values: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_paddingFrom(_t.Protocol): + @_t.overload + def __call__(self, alignment_line: _t.Any, before: float = ..., after: float = ...) -> Modifier: ... + @_t.overload + def __call__(self, alignment_line: _t.Any, before: _t.Any = ..., after: _t.Any = ...) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_paddingFromBaseline(_t.Protocol): + @_t.overload + def __call__(self, top: float = ..., bottom: float = ...) -> Modifier: ... + @_t.overload + def __call__(self, top: _t.Any = ..., bottom: _t.Any = ...) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_paddingFromBaseline__Dp_Dp(_t.Protocol): + def __call__(self, top: float = ..., bottom: float = ...) -> Modifier: ... + +class _Modifier_paddingFromBaseline__TextUnit_TextUnit(_t.Protocol): + def __call__(self, top: _t.Any = ..., bottom: _t.Any = ...) -> Modifier: ... + +class _Modifier_paddingFrom__AlignmentLine_Dp_Dp(_t.Protocol): + def __call__(self, alignment_line: _t.Any, before: float = ..., after: float = ...) -> Modifier: ... + +class _Modifier_paddingFrom__AlignmentLine_TextUnit_TextUnit(_t.Protocol): + def __call__(self, alignment_line: _t.Any, before: _t.Any = ..., after: _t.Any = ...) -> Modifier: ... + +class _Modifier_padding__Dp(_t.Protocol): + def __call__(self, all: float) -> Modifier: ... + +class _Modifier_padding__Dp_Dp(_t.Protocol): + def __call__(self, horizontal: float = ..., vertical: float = ...) -> Modifier: ... + +class _Modifier_padding__Dp_Dp_Dp_Dp(_t.Protocol): + def __call__(self, start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> Modifier: ... + +class _Modifier_padding__PaddingValues(_t.Protocol): + def __call__(self, padding_values: _t.Any) -> Modifier: ... + +class _Modifier_paint(_t.Protocol): + def __call__(self, painter: _t.Any, size_to_intrinsics: bool = ..., alignment: _t.Any = ..., content_scale: _t.Any = ..., alpha: float = ..., color_filter: pythonx.compose.ui.graphics.ColorFilter | None = ...) -> Modifier: ... + +class _Modifier_pointerHoverIcon(_t.Protocol): + def __call__(self, icon: _t.Any, override_descendants: bool = ...) -> Modifier: ... + +class _Modifier_pointerInput(_t.Protocol): + @_t.overload + def __call__(self, key1: _t.Any | None, key2: _t.Any | None, block: _t.Any) -> Modifier: ... + @_t.overload + def __call__(self, key1: _t.Any | None, block: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_pointerInput__Any_Any_PointerInputEventHandler(_t.Protocol): + def __call__(self, key1: _t.Any | None, key2: _t.Any | None, block: _t.Any) -> Modifier: ... + +class _Modifier_pointerInput__Any_PointerInputEventHandler(_t.Protocol): + def __call__(self, key1: _t.Any | None, block: _t.Any) -> Modifier: ... + +class _Modifier_pointerMoveFilter(_t.Protocol): + def __call__(self, on_move: _t.Callable[[_t.Any], bool] = ..., on_exit: _t.Callable[[], bool] = ..., on_enter: _t.Callable[[], bool] = ...) -> Modifier: ... + +class _Modifier_preferredFrameRate(_t.Protocol): + @_t.overload + def __call__(self, frame_rate: float) -> Modifier: ... + @_t.overload + def __call__(self, frame_rate_category: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_preferredFrameRate__Float(_t.Protocol): + def __call__(self, frame_rate: float) -> Modifier: ... + +class _Modifier_preferredFrameRate__FrameRateCategory(_t.Protocol): + def __call__(self, frame_rate_category: _t.Any) -> Modifier: ... + +class _Modifier_pullToRefresh(_t.Protocol): + def __call__(self, is_refreshing: bool, state: _t.Any, enabled: bool = ..., threshold: float = ..., *, on_refresh: _t.Callable[[], None]) -> Modifier: ... + +class _Modifier_recalculateWindowInsets(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_requiredHeight(_t.Protocol): + @_t.overload + def __call__(self, height: float) -> Modifier: ... + @_t.overload + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_requiredHeightIn(_t.Protocol): + def __call__(self, min: float = ..., max: float = ...) -> Modifier: ... + +class _Modifier_requiredHeight__Dp(_t.Protocol): + def __call__(self, height: float) -> Modifier: ... + +class _Modifier_requiredHeight__IntrinsicSize(_t.Protocol): + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... + +class _Modifier_requiredSize(_t.Protocol): + @_t.overload + def __call__(self, size: float) -> Modifier: ... + @_t.overload + def __call__(self, size: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + @_t.overload + def __call__(self, width: float, height: float) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_requiredSizeIn(_t.Protocol): + def __call__(self, min_width: float = ..., min_height: float = ..., max_width: float = ..., max_height: float = ...) -> Modifier: ... + +class _Modifier_requiredSize__Dp(_t.Protocol): + def __call__(self, size: float) -> Modifier: ... + +class _Modifier_requiredSize__DpSize(_t.Protocol): + def __call__(self, size: _t.Any) -> Modifier: ... + +class _Modifier_requiredSize__Dp_Dp(_t.Protocol): + def __call__(self, width: float, height: float) -> Modifier: ... + +class _Modifier_requiredWidth(_t.Protocol): + @_t.overload + def __call__(self, width: float) -> Modifier: ... + @_t.overload + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_requiredWidthIn(_t.Protocol): + def __call__(self, min: float = ..., max: float = ...) -> Modifier: ... + +class _Modifier_requiredWidth__Dp(_t.Protocol): + def __call__(self, width: float) -> Modifier: ... + +class _Modifier_requiredWidth__IntrinsicSize(_t.Protocol): + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... + +class _Modifier_rotate(_t.Protocol): + def __call__(self, degrees: float) -> Modifier: ... + +class _Modifier_safeContentPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_safeDrawingPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_safeGesturesPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_scale(_t.Protocol): + @_t.overload + def __call__(self, scale: float) -> Modifier: ... + @_t.overload + def __call__(self, scale_x: float, scale_y: float) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_scale__Float(_t.Protocol): + def __call__(self, scale: float) -> Modifier: ... + +class _Modifier_scale__Float_Float(_t.Protocol): + def __call__(self, scale_x: float, scale_y: float) -> Modifier: ... + +class _Modifier_semantics(_t.Protocol): + def __call__(self, merge_descendants: bool = ..., *, properties: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_sensitiveContent(_t.Protocol): + def __call__(self, is_content_sensitive: bool = ...) -> Modifier: ... + +class _Modifier_shadow(_t.Protocol): + def __call__(self, elevation: float, shape: pythonx.compose.ui.graphics.Shape = ..., clip: bool = ..., ambient_color: _t.Any = ..., spot_color: _t.Any = ...) -> Modifier: ... + +class _Modifier_size(_t.Protocol): + @_t.overload + def __call__(self, size: float) -> Modifier: ... + @_t.overload + def __call__(self, size: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + @_t.overload + def __call__(self, width: float, height: float) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_sizeIn(_t.Protocol): + def __call__(self, min_width: float = ..., min_height: float = ..., max_width: float = ..., max_height: float = ...) -> Modifier: ... + +class _Modifier_size__Dp(_t.Protocol): + def __call__(self, size: float) -> Modifier: ... + +class _Modifier_size__DpSize(_t.Protocol): + def __call__(self, size: _t.Any) -> Modifier: ... + +class _Modifier_size__Dp_Dp(_t.Protocol): + def __call__(self, width: float, height: float) -> Modifier: ... + +class _Modifier_statusBarsPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_stylusHoverIcon(_t.Protocol): + def __call__(self, icon: _t.Any, override_descendants: bool = ..., touch_bounds_expansion: _t.Any | None = ...) -> Modifier: ... + +class _Modifier_systemBarsPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_systemGesturesPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_testTag(_t.Protocol): + def __call__(self, tag: str) -> Modifier: ... + +class _Modifier_toolingGraphicsLayer(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_visible(_t.Protocol): + def __call__(self, visible: bool) -> Modifier: ... + +class _Modifier_waterfallPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_width(_t.Protocol): + @_t.overload + def __call__(self, width: float) -> Modifier: ... + @_t.overload + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_widthIn(_t.Protocol): + def __call__(self, min: float = ..., max: float = ...) -> Modifier: ... + +class _Modifier_width__Dp(_t.Protocol): + def __call__(self, width: float) -> Modifier: ... + +class _Modifier_width__IntrinsicSize(_t.Protocol): + def __call__(self, intrinsic_size: pythonx.compose.layout.IntrinsicSize) -> Modifier: ... + +class _Modifier_windowInsetsBottomHeight(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_windowInsetsEndWidth(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_windowInsetsPadding(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_windowInsetsStartWidth(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_windowInsetsTopHeight(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_wrapContentHeight(_t.Protocol): + def __call__(self, align: Alignment.Vertical = ..., unbounded: bool = ...) -> Modifier: ... + +class _Modifier_wrapContentSize(_t.Protocol): + def __call__(self, align: _t.Any = ..., unbounded: bool = ...) -> Modifier: ... + +class _Modifier_wrapContentWidth(_t.Protocol): + def __call__(self, align: Alignment.Horizontal = ..., unbounded: bool = ...) -> Modifier: ... + +class _Modifier_zIndex(_t.Protocol): + def __call__(self, z_index: float) -> Modifier: ... + +class BiasAbsoluteAlignment: + """Kotlin: androidx.compose.ui.BiasAbsoluteAlignment""" + def __init__(self, horizontalBias: float, verticalBias: float) -> None: + """Kotlin constructor: androidx.compose.ui.BiasAbsoluteAlignment (androidx.compose.ui.BiasAbsoluteAlignment(horizontalBias: kotlin.Float, verticalBias: kotlin.Float): androidx.compose.ui.BiasAbsoluteAlignment)""" + ... + @property + def horizontal_bias(self) -> float: + """Kotlin property: androidx.compose.ui.BiasAbsoluteAlignment.horizontalBias (androidx.compose.ui.BiasAbsoluteAlignment.horizontalBias: kotlin.Float)""" + ... + @property + def vertical_bias(self) -> float: + """Kotlin property: androidx.compose.ui.BiasAbsoluteAlignment.verticalBias (androidx.compose.ui.BiasAbsoluteAlignment.verticalBias: kotlin.Float)""" + ... + +class BiasAlignment: + """Kotlin: androidx.compose.ui.BiasAlignment""" + def __init__(self, horizontalBias: float, verticalBias: float) -> None: + """Kotlin constructor: androidx.compose.ui.BiasAlignment (androidx.compose.ui.BiasAlignment(horizontalBias: kotlin.Float, verticalBias: kotlin.Float): androidx.compose.ui.BiasAlignment)""" + ... + @property + def horizontal_bias(self) -> float: + """Kotlin property: androidx.compose.ui.BiasAlignment.horizontalBias (androidx.compose.ui.BiasAlignment.horizontalBias: kotlin.Float)""" + ... + @property + def vertical_bias(self) -> float: + """Kotlin property: androidx.compose.ui.BiasAlignment.verticalBias (androidx.compose.ui.BiasAlignment.verticalBias: kotlin.Float)""" + ... + +class CombinedModifier(Modifier): + """Kotlin: androidx.compose.ui.CombinedModifier""" + def __init__(self, outer: Modifier, inner: Modifier) -> None: + """Kotlin constructor: androidx.compose.ui.CombinedModifier (androidx.compose.ui.CombinedModifier(outer: androidx.compose.ui.Modifier, inner: androidx.compose.ui.Modifier): androidx.compose.ui.CombinedModifier)""" + ... + +class ImageComposeScene: + """Kotlin: androidx.compose.ui.ImageComposeScene""" + use: _t.ClassVar[_ImageComposeScene_use] + @property + def constraints(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.ImageComposeScene.constraints (androidx.compose.ui.ImageComposeScene.constraints: androidx.compose.ui.unit.Constraints)""" + ... + @constraints.setter + def constraints(self, value: int) -> None: + """Kotlin property: androidx.compose.ui.ImageComposeScene.constraints=""" + ... + @property + def content_size(self) -> int: + """Kotlin property: androidx.compose.ui.ImageComposeScene.contentSize (androidx.compose.ui.ImageComposeScene.contentSize: androidx.compose.ui.unit.IntSize)""" + ... + @property + def layout_direction(self) -> pythonx.compose.ui.unit.LayoutDirection: + """Kotlin property: androidx.compose.ui.ImageComposeScene.layoutDirection (androidx.compose.ui.ImageComposeScene.layoutDirection: androidx.compose.ui.unit.LayoutDirection)""" + ... + @layout_direction.setter + def layout_direction(self, value: pythonx.compose.ui.unit.LayoutDirection) -> None: + """Kotlin property: androidx.compose.ui.ImageComposeScene.layoutDirection=""" + ... + +class Modifier: + """Kotlin: androidx.compose.ui.Modifier""" + absolute_offset: _t.ClassVar[_Modifier_absoluteOffset] + absolute_offset__Dp_Dp: _t.ClassVar[_Modifier_absoluteOffset__Dp_Dp] + absolute_offset__IntOffset: _t.ClassVar[_Modifier_absoluteOffset__IntOffset] + absolute_padding: _t.ClassVar[_Modifier_absolutePadding] + alpha: _t.ClassVar[_Modifier_alpha] + approach_layout: _t.ClassVar[_Modifier_approachLayout] + aspect_ratio: _t.ClassVar[_Modifier_aspectRatio] + blur: _t.ClassVar[_Modifier_blur] + blur__Dp_BlurredEdgeTreatment: _t.ClassVar[_Modifier_blur__Dp_BlurredEdgeTreatment] + blur__Dp_Dp_BlurredEdgeTreatment: _t.ClassVar[_Modifier_blur__Dp_Dp_BlurredEdgeTreatment] + caption_bar_padding: _t.ClassVar[_Modifier_captionBarPadding] + clear_and_set_semantics: _t.ClassVar[_Modifier_clearAndSetSemantics] + clip: _t.ClassVar[_Modifier_clip] + clip_to_bounds: _t.ClassVar[_Modifier_clipToBounds] + consume_window_insets: _t.ClassVar[_Modifier_consumeWindowInsets] + consume_window_insets__PaddingValues: _t.ClassVar[_Modifier_consumeWindowInsets__PaddingValues] + consume_window_insets__WindowInsets: _t.ClassVar[_Modifier_consumeWindowInsets__WindowInsets] + content_type: _t.ClassVar[_Modifier_contentType] + default_min_size: _t.ClassVar[_Modifier_defaultMinSize] + display_cutout_padding: _t.ClassVar[_Modifier_displayCutoutPadding] + draw_behind: _t.ClassVar[_Modifier_drawBehind] + draw_with_cache: _t.ClassVar[_Modifier_drawWithCache] + draw_with_content: _t.ClassVar[_Modifier_drawWithContent] + drop_shadow: _t.ClassVar[_Modifier_dropShadow] + drop_shadow__Shape_Shadow: _t.ClassVar[_Modifier_dropShadow__Shape_Shadow] + drop_shadow__Shape_Unit: _t.ClassVar[_Modifier_dropShadow__Shape_Unit] + fill_max_height: _t.ClassVar[_Modifier_fillMaxHeight] + fill_max_size: _t.ClassVar[_Modifier_fillMaxSize] + fill_max_width: _t.ClassVar[_Modifier_fillMaxWidth] + fit_inside: _t.ClassVar[_Modifier_fitInside] + fit_outside: _t.ClassVar[_Modifier_fitOutside] + focus_modifier: _t.ClassVar[_Modifier_focusModifier] + focus_order: _t.ClassVar[_Modifier_focusOrder] + focus_order__FocusRequester: _t.ClassVar[_Modifier_focusOrder__FocusRequester] + focus_order__FocusRequester_Unit: _t.ClassVar[_Modifier_focusOrder__FocusRequester_Unit] + focus_order__Unit: _t.ClassVar[_Modifier_focusOrder__Unit] + focus_properties: _t.ClassVar[_Modifier_focusProperties] + focus_requester: _t.ClassVar[_Modifier_focusRequester] + focus_restorer: _t.ClassVar[_Modifier_focusRestorer] + focus_restorer__androidx_compose_ui_Modifier_androidx_compose_ui_focus_FocusRequester: _t.ClassVar[_Modifier_focusRestorer__androidx_compose_ui_Modifier_androidx_compose_ui_focus_FocusRequester] + focus_restorer__androidx_compose_ui_Modifier_kotlin_Function0____androidx_compose_ui_focus_FocusRequester: _t.ClassVar[_Modifier_focusRestorer__androidx_compose_ui_Modifier_kotlin_Function0____androidx_compose_ui_focus_FocusRequester] + focus_target: _t.ClassVar[_Modifier_focusTarget] + graphics_layer: _t.ClassVar[_Modifier_graphicsLayer] + graphics_layer__Float_Float_Float_Float_Float_Float_Float_Float_Float_Float_TransformOrigin_Shape_Boolean_RenderEffect_Color_Color_CompositingStrategy_BlendMode_ColorFilter: _t.ClassVar[_Modifier_graphicsLayer__Float_Float_Float_Float_Float_Float_Float_Float_Float_Float_TransformOrigin_Shape_Boolean_RenderEffect_Color_Color_CompositingStrategy_BlendMode_ColorFilter] + graphics_layer__Unit: _t.ClassVar[_Modifier_graphicsLayer__Unit] + height: _t.ClassVar[_Modifier_height] + height_in: _t.ClassVar[_Modifier_heightIn] + height__Dp: _t.ClassVar[_Modifier_height__Dp] + height__IntrinsicSize: _t.ClassVar[_Modifier_height__IntrinsicSize] + ime_padding: _t.ClassVar[_Modifier_imePadding] + inner_shadow: _t.ClassVar[_Modifier_innerShadow] + inner_shadow__Shape_Shadow: _t.ClassVar[_Modifier_innerShadow__Shape_Shadow] + inner_shadow__Shape_Unit: _t.ClassVar[_Modifier_innerShadow__Shape_Unit] + inspectable: _t.ClassVar[_Modifier_inspectable] + keep_screen_on: _t.ClassVar[_Modifier_keepScreenOn] + layout: _t.ClassVar[_Modifier_layout] + layout_bounds: _t.ClassVar[_Modifier_layoutBounds] + mandatory_system_gestures_padding: _t.ClassVar[_Modifier_mandatorySystemGesturesPadding] + minimum_interactive_component_size: _t.ClassVar[_Modifier_minimumInteractiveComponentSize] + modifier_local_consumer: _t.ClassVar[_Modifier_modifierLocalConsumer] + modifier_local_provider: _t.ClassVar[_Modifier_modifierLocalProvider] + mouse_scroll_filter: _t.ClassVar[_Modifier_mouseScrollFilter] + navigation_bars_padding: _t.ClassVar[_Modifier_navigationBarsPadding] + nested_scroll: _t.ClassVar[_Modifier_nestedScroll] + offset: _t.ClassVar[_Modifier_offset] + offset__Dp_Dp: _t.ClassVar[_Modifier_offset__Dp_Dp] + offset__IntOffset: _t.ClassVar[_Modifier_offset__IntOffset] + on_consumed_window_insets_changed: _t.ClassVar[_Modifier_onConsumedWindowInsetsChanged] + on_first_visible: _t.ClassVar[_Modifier_onFirstVisible] + on_focus_changed: _t.ClassVar[_Modifier_onFocusChanged] + on_focus_event: _t.ClassVar[_Modifier_onFocusEvent] + on_globally_positioned: _t.ClassVar[_Modifier_onGloballyPositioned] + on_intercept_key_before_soft_keyboard: _t.ClassVar[_Modifier_onInterceptKeyBeforeSoftKeyboard] + on_key_event: _t.ClassVar[_Modifier_onKeyEvent] + on_layout_rect_changed: _t.ClassVar[_Modifier_onLayoutRectChanged] + on_placed: _t.ClassVar[_Modifier_onPlaced] + on_pointer_event: _t.ClassVar[_Modifier_onPointerEvent] + on_pre_intercept_key_before_soft_keyboard: _t.ClassVar[_Modifier_onPreInterceptKeyBeforeSoftKeyboard] + on_pre_rotary_scroll_event: _t.ClassVar[_Modifier_onPreRotaryScrollEvent] + on_preview_key_event: _t.ClassVar[_Modifier_onPreviewKeyEvent] + on_rotary_scroll_event: _t.ClassVar[_Modifier_onRotaryScrollEvent] + on_size_changed: _t.ClassVar[_Modifier_onSizeChanged] + on_visibility_changed: _t.ClassVar[_Modifier_onVisibilityChanged] + padding: _t.ClassVar[_Modifier_padding] + padding_from: _t.ClassVar[_Modifier_paddingFrom] + padding_from_baseline: _t.ClassVar[_Modifier_paddingFromBaseline] + padding_from_baseline__Dp_Dp: _t.ClassVar[_Modifier_paddingFromBaseline__Dp_Dp] + padding_from_baseline__TextUnit_TextUnit: _t.ClassVar[_Modifier_paddingFromBaseline__TextUnit_TextUnit] + padding_from__AlignmentLine_Dp_Dp: _t.ClassVar[_Modifier_paddingFrom__AlignmentLine_Dp_Dp] + padding_from__AlignmentLine_TextUnit_TextUnit: _t.ClassVar[_Modifier_paddingFrom__AlignmentLine_TextUnit_TextUnit] + padding__Dp: _t.ClassVar[_Modifier_padding__Dp] + padding__Dp_Dp: _t.ClassVar[_Modifier_padding__Dp_Dp] + padding__Dp_Dp_Dp_Dp: _t.ClassVar[_Modifier_padding__Dp_Dp_Dp_Dp] + padding__PaddingValues: _t.ClassVar[_Modifier_padding__PaddingValues] + paint: _t.ClassVar[_Modifier_paint] + pointer_hover_icon: _t.ClassVar[_Modifier_pointerHoverIcon] + pointer_input: _t.ClassVar[_Modifier_pointerInput] + pointer_input__Any_Any_PointerInputEventHandler: _t.ClassVar[_Modifier_pointerInput__Any_Any_PointerInputEventHandler] + pointer_input__Any_PointerInputEventHandler: _t.ClassVar[_Modifier_pointerInput__Any_PointerInputEventHandler] + pointer_move_filter: _t.ClassVar[_Modifier_pointerMoveFilter] + preferred_frame_rate: _t.ClassVar[_Modifier_preferredFrameRate] + preferred_frame_rate__Float: _t.ClassVar[_Modifier_preferredFrameRate__Float] + preferred_frame_rate__FrameRateCategory: _t.ClassVar[_Modifier_preferredFrameRate__FrameRateCategory] + pull_to_refresh: _t.ClassVar[_Modifier_pullToRefresh] + recalculate_window_insets: _t.ClassVar[_Modifier_recalculateWindowInsets] + required_height: _t.ClassVar[_Modifier_requiredHeight] + required_height_in: _t.ClassVar[_Modifier_requiredHeightIn] + required_height__Dp: _t.ClassVar[_Modifier_requiredHeight__Dp] + required_height__IntrinsicSize: _t.ClassVar[_Modifier_requiredHeight__IntrinsicSize] + required_size: _t.ClassVar[_Modifier_requiredSize] + required_size_in: _t.ClassVar[_Modifier_requiredSizeIn] + required_size__Dp: _t.ClassVar[_Modifier_requiredSize__Dp] + required_size__DpSize: _t.ClassVar[_Modifier_requiredSize__DpSize] + required_size__Dp_Dp: _t.ClassVar[_Modifier_requiredSize__Dp_Dp] + required_width: _t.ClassVar[_Modifier_requiredWidth] + required_width_in: _t.ClassVar[_Modifier_requiredWidthIn] + required_width__Dp: _t.ClassVar[_Modifier_requiredWidth__Dp] + required_width__IntrinsicSize: _t.ClassVar[_Modifier_requiredWidth__IntrinsicSize] + rotate: _t.ClassVar[_Modifier_rotate] + safe_content_padding: _t.ClassVar[_Modifier_safeContentPadding] + safe_drawing_padding: _t.ClassVar[_Modifier_safeDrawingPadding] + safe_gestures_padding: _t.ClassVar[_Modifier_safeGesturesPadding] + scale: _t.ClassVar[_Modifier_scale] + scale__Float: _t.ClassVar[_Modifier_scale__Float] + scale__Float_Float: _t.ClassVar[_Modifier_scale__Float_Float] + semantics: _t.ClassVar[_Modifier_semantics] + sensitive_content: _t.ClassVar[_Modifier_sensitiveContent] + shadow: _t.ClassVar[_Modifier_shadow] + size: _t.ClassVar[_Modifier_size] + size_in: _t.ClassVar[_Modifier_sizeIn] + size__Dp: _t.ClassVar[_Modifier_size__Dp] + size__DpSize: _t.ClassVar[_Modifier_size__DpSize] + size__Dp_Dp: _t.ClassVar[_Modifier_size__Dp_Dp] + status_bars_padding: _t.ClassVar[_Modifier_statusBarsPadding] + stylus_hover_icon: _t.ClassVar[_Modifier_stylusHoverIcon] + system_bars_padding: _t.ClassVar[_Modifier_systemBarsPadding] + system_gestures_padding: _t.ClassVar[_Modifier_systemGesturesPadding] + test_tag: _t.ClassVar[_Modifier_testTag] + tooling_graphics_layer: _t.ClassVar[_Modifier_toolingGraphicsLayer] + visible: _t.ClassVar[_Modifier_visible] + waterfall_padding: _t.ClassVar[_Modifier_waterfallPadding] + width: _t.ClassVar[_Modifier_width] + width_in: _t.ClassVar[_Modifier_widthIn] + width__Dp: _t.ClassVar[_Modifier_width__Dp] + width__IntrinsicSize: _t.ClassVar[_Modifier_width__IntrinsicSize] + window_insets_bottom_height: _t.ClassVar[_Modifier_windowInsetsBottomHeight] + window_insets_end_width: _t.ClassVar[_Modifier_windowInsetsEndWidth] + window_insets_padding: _t.ClassVar[_Modifier_windowInsetsPadding] + window_insets_start_width: _t.ClassVar[_Modifier_windowInsetsStartWidth] + window_insets_top_height: _t.ClassVar[_Modifier_windowInsetsTopHeight] + wrap_content_height: _t.ClassVar[_Modifier_wrapContentHeight] + wrap_content_size: _t.ClassVar[_Modifier_wrapContentSize] + wrap_content_width: _t.ClassVar[_Modifier_wrapContentWidth] + z_index: _t.ClassVar[_Modifier_zIndex] + class Element: + """Kotlin: androidx.compose.ui.Modifier.Element""" + class Node: + """Kotlin: androidx.compose.ui.Modifier.Node""" + +class MotionDurationScale: + """Kotlin: androidx.compose.ui.MotionDurationScale""" + @property + def key(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.MotionDurationScale.key (androidx.compose.ui.MotionDurationScale.key: kotlin.coroutines.CoroutineContext.Key)""" + ... + @property + def scale_factor(self) -> float: + """Kotlin property: androidx.compose.ui.MotionDurationScale.scaleFactor (androidx.compose.ui.MotionDurationScale.scaleFactor: kotlin.Float)""" + ... + +class UiMediaScope: + """Kotlin: androidx.compose.ui.UiMediaScope""" + @property + def has_camera(self) -> bool: + """Kotlin property: androidx.compose.ui.UiMediaScope.hasCamera (androidx.compose.ui.UiMediaScope.hasCamera: kotlin.Boolean)""" + ... + @property + def has_microphone(self) -> bool: + """Kotlin property: androidx.compose.ui.UiMediaScope.hasMicrophone (androidx.compose.ui.UiMediaScope.hasMicrophone: kotlin.Boolean)""" + ... + @property + def keyboard_kind(self) -> UiMediaScope.KeyboardKind: + """Kotlin property: androidx.compose.ui.UiMediaScope.keyboardKind (androidx.compose.ui.UiMediaScope.keyboardKind: androidx.compose.ui.UiMediaScope.KeyboardKind)""" + ... + @property + def pointer_precision(self) -> UiMediaScope.PointerPrecision: + """Kotlin property: androidx.compose.ui.UiMediaScope.pointerPrecision (androidx.compose.ui.UiMediaScope.pointerPrecision: androidx.compose.ui.UiMediaScope.PointerPrecision)""" + ... + @property + def viewing_distance(self) -> UiMediaScope.ViewingDistance: + """Kotlin property: androidx.compose.ui.UiMediaScope.viewingDistance (androidx.compose.ui.UiMediaScope.viewingDistance: androidx.compose.ui.UiMediaScope.ViewingDistance)""" + ... + @property + def window_height(self) -> float: + """Kotlin property: androidx.compose.ui.UiMediaScope.windowHeight (androidx.compose.ui.UiMediaScope.windowHeight: androidx.compose.ui.unit.Dp)""" + ... + @property + def window_posture(self) -> UiMediaScope.Posture: + """Kotlin property: androidx.compose.ui.UiMediaScope.windowPosture (androidx.compose.ui.UiMediaScope.windowPosture: androidx.compose.ui.UiMediaScope.Posture)""" + ... + @property + def window_width(self) -> float: + """Kotlin property: androidx.compose.ui.UiMediaScope.windowWidth (androidx.compose.ui.UiMediaScope.windowWidth: androidx.compose.ui.unit.Dp)""" + ... + class KeyboardKind: + """Kotlin: androidx.compose.ui.UiMediaScope.KeyboardKind""" + class PointerPrecision: + """Kotlin: androidx.compose.ui.UiMediaScope.PointerPrecision""" + class Posture: + """Kotlin: androidx.compose.ui.UiMediaScope.Posture""" + class ViewingDistance: + """Kotlin: androidx.compose.ui.UiMediaScope.ViewingDistance""" + +def configure_swing_globals_for_compose(override_look_and_feel: bool = ..., use_screen_menu_bar_on_mac_os: bool = ..., use_auto_dpi_on_linux: bool = ...) -> None: + """Kotlin: androidx.compose.ui.configureSwingGlobalsForCompose(overrideLookAndFeel: kotlin.Boolean, useScreenMenuBarOnMacOs: kotlin.Boolean, useAutoDpiOnLinux: kotlin.Boolean): kotlin.Unit""" + ... + +def derived_media_query(query: _t.Callable[[UiMediaScope], bool]) -> pythonx.compose.runtime.State: + """Kotlin: androidx.compose.ui.derivedMediaQuery(query: kotlin.Function1): androidx.compose.runtime.State""" + ... + +def keep_screen_on(receiver: Modifier, /) -> Modifier: + """Kotlin: androidx.compose.ui.Modifier.keepScreenOn(): androidx.compose.ui.Modifier""" + ... + +def materialize(receiver: pythonx.compose.runtime.Composer, /, modifier: Modifier) -> Modifier: + """Kotlin: androidx.compose.runtime.Composer.materialize(modifier: androidx.compose.ui.Modifier): androidx.compose.ui.Modifier""" + ... + +def media_query__Boolean(query: _t.Callable[[UiMediaScope], bool]) -> bool: + """Kotlin: androidx.compose.ui.mediaQuery(query: kotlin.Function1): kotlin.Boolean""" + ... + +def media_query__CompositionLocalAccessorScope_Boolean(receiver: pythonx.compose.runtime.CompositionLocalAccessorScope, /, query: _t.Callable[[UiMediaScope], bool]) -> bool: + """Kotlin: androidx.compose.runtime.CompositionLocalAccessorScope.mediaQuery(query: kotlin.Function1): kotlin.Boolean""" + ... + +def media_query__CompositionLocalConsumerModifierNode_Boolean(receiver: _t.Any, /, query: _t.Callable[[UiMediaScope], bool]) -> bool: + """Kotlin: androidx.compose.ui.node.CompositionLocalConsumerModifierNode.mediaQuery(query: kotlin.Function1): kotlin.Boolean""" + ... + +def preferred_frame_rate__Float(receiver: Modifier, /, frame_rate: float) -> Modifier: + """Kotlin: androidx.compose.ui.Modifier.preferredFrameRate(frameRate: kotlin.Float): androidx.compose.ui.Modifier""" + ... + +def preferred_frame_rate__FrameRateCategory(receiver: Modifier, /, frame_rate_category: _t.Any) -> Modifier: + """Kotlin: androidx.compose.ui.Modifier.preferredFrameRate(frameRateCategory: androidx.compose.ui.FrameRateCategory): androidx.compose.ui.Modifier""" + ... + +def sensitive_content(receiver: Modifier, /, is_content_sensitive: bool = ...) -> Modifier: + """Kotlin: androidx.compose.ui.Modifier.sensitiveContent(isContentSensitive: kotlin.Boolean): androidx.compose.ui.Modifier""" + ... + +def use(receiver: ImageComposeScene, /, block: _t.Callable[[ImageComposeScene], _t.Any | None]) -> _t.Any | None: + """Kotlin: androidx.compose.ui.ImageComposeScene.use(block: kotlin.Function1): kotlin.Any""" + ... + +def z_index(receiver: Modifier, /, z_index: float) -> Modifier: + """Kotlin: androidx.compose.ui.Modifier.zIndex(zIndex: kotlin.Float): androidx.compose.ui.Modifier""" + ... + +@_t.overload +def media_query(query: _t.Callable[[UiMediaScope], bool]) -> bool: ... +@_t.overload +def media_query(receiver: pythonx.compose.runtime.CompositionLocalAccessorScope, /, query: _t.Callable[[UiMediaScope], bool]) -> bool: ... # type: ignore[overload-cannot-match] +@_t.overload +def media_query(receiver: _t.Any, /, query: _t.Callable[[UiMediaScope], bool]) -> bool: ... # type: ignore[overload-cannot-match] + +@_t.overload +def preferred_frame_rate(receiver: Modifier, /, frame_rate: float) -> Modifier: ... +@_t.overload +def preferred_frame_rate(receiver: Modifier, /, frame_rate_category: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class AbsoluteAlignment: + """Kotlin: androidx.compose.ui.AbsoluteAlignment""" + BottomLeft: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.BottomLeft(): androidx.compose.ui.Alignment""" + BottomRight: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.BottomRight(): androidx.compose.ui.Alignment""" + CenterLeft: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.CenterLeft(): androidx.compose.ui.Alignment""" + CenterRight: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.CenterRight(): androidx.compose.ui.Alignment""" + Left: _t.ClassVar[Alignment.Horizontal] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.Left(): androidx.compose.ui.Alignment.Horizontal""" + Right: _t.ClassVar[Alignment.Horizontal] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.Right(): androidx.compose.ui.Alignment.Horizontal""" + TopLeft: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.TopLeft(): androidx.compose.ui.Alignment""" + TopRight: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.TopRight(): androidx.compose.ui.Alignment""" + +class Alignment: + """Kotlin: androidx.compose.ui.Alignment""" + class Horizontal: + """Kotlin: androidx.compose.ui.Alignment.Horizontal""" + CenterHorizontally: _t.ClassVar[Alignment.Horizontal] + End: _t.ClassVar[Alignment.Horizontal] + Start: _t.ClassVar[Alignment.Horizontal] + class Vertical: + """Kotlin: androidx.compose.ui.Alignment.Vertical""" + Bottom: _t.ClassVar[Alignment.Vertical] + CenterVertically: _t.ClassVar[Alignment.Vertical] + Top: _t.ClassVar[Alignment.Vertical] + Bottom: _t.ClassVar[Alignment.Vertical] + """Kotlin: androidx.compose.ui.Alignment.Bottom(): androidx.compose.ui.Alignment.Vertical""" + BottomCenter: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.BottomCenter(): androidx.compose.ui.Alignment""" + BottomEnd: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.BottomEnd(): androidx.compose.ui.Alignment""" + BottomStart: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.BottomStart(): androidx.compose.ui.Alignment""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.Center(): androidx.compose.ui.Alignment""" + CenterEnd: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.CenterEnd(): androidx.compose.ui.Alignment""" + CenterHorizontally: _t.ClassVar[Alignment.Horizontal] + """Kotlin: androidx.compose.ui.Alignment.CenterHorizontally(): androidx.compose.ui.Alignment.Horizontal""" + CenterStart: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.CenterStart(): androidx.compose.ui.Alignment""" + CenterVertically: _t.ClassVar[Alignment.Vertical] + """Kotlin: androidx.compose.ui.Alignment.CenterVertically(): androidx.compose.ui.Alignment.Vertical""" + End: _t.ClassVar[Alignment.Horizontal] + """Kotlin: androidx.compose.ui.Alignment.End(): androidx.compose.ui.Alignment.Horizontal""" + Start: _t.ClassVar[Alignment.Horizontal] + """Kotlin: androidx.compose.ui.Alignment.Start(): androidx.compose.ui.Alignment.Horizontal""" + Top: _t.ClassVar[Alignment.Vertical] + """Kotlin: androidx.compose.ui.Alignment.Top(): androidx.compose.ui.Alignment.Vertical""" + TopCenter: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.TopCenter(): androidx.compose.ui.Alignment""" + TopEnd: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.TopEnd(): androidx.compose.ui.Alignment""" + TopStart: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.TopStart(): androidx.compose.ui.Alignment""" + +class ComposeUiFlags: + """Kotlin: androidx.compose.ui.ComposeUiFlags""" + is_accessibility_should_include_offscreen_children_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isAccessibilityShouldIncludeOffscreenChildrenEnabled(): kotlin.Boolean""" + is_bypass_unfocusable_compose_view_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isBypassUnfocusableComposeViewEnabled(): kotlin.Boolean""" + is_focus_restoration_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isFocusRestorationEnabled(): kotlin.Boolean""" + is_graphics_layer_shape_semantics_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isGraphicsLayerShapeSemanticsEnabled(): kotlin.Boolean""" + is_indirect_pointer_navigation_gesture_detector_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isIndirectPointerNavigationGestureDetectorEnabled(): kotlin.Boolean""" + is_initial_focus_on_focusable_available: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isInitialFocusOnFocusableAvailable(): kotlin.Boolean""" + is_media_query_integration_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isMediaQueryIntegrationEnabled(): kotlin.Boolean""" + is_optimized_focus_event_dispatch_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isOptimizedFocusEventDispatchEnabled(): kotlin.Boolean""" + is_skip_non_important_semantics_nodes_hit_test_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isSkipNonImportantSemanticsNodesHitTestEnabled(): kotlin.Boolean""" + is_trackpad_gesture_handling_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isTrackpadGestureHandlingEnabled(): kotlin.Boolean""" + is_traversable_delegates_fix_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isTraversableDelegatesFixEnabled(): kotlin.Boolean""" + is_view_focus_fix_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.ComposeUiFlags.isViewFocusFixEnabled(): kotlin.Boolean""" + +class FrameRateCategory: + """Kotlin: androidx.compose.ui.FrameRateCategory""" + Default: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.FrameRateCategory.Default(): androidx.compose.ui.FrameRateCategory""" + High: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.FrameRateCategory.High(): androidx.compose.ui.FrameRateCategory""" + Normal: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.FrameRateCategory.Normal(): androidx.compose.ui.FrameRateCategory""" diff --git a/pythonx/compose/ui/alignment.py b/pythonx/compose/ui/alignment.py index 9b68396..07343d6 100644 --- a/pythonx/compose/ui/alignment.py +++ b/pythonx/compose/ui/alignment.py @@ -1,79 +1,47 @@ -from __future__ import annotations -from ..wrapper import KotlinWrapper +"""`pythonx/compose/ui/alignment.py` -- what the adaptation layer now produces, and how to spell it. -from java import jclass +`Alignment` and its constants used to be blocked: the walker bound top-level functions and, later, +value-class constructors, and a constant held by a companion was neither. `PythonMultiplatform`'s +`80318c16` added that binding (`CallableKind.STATIC_GETTER`), and `6d896fba` proved a constant +crosses and changes a layout. +The binding exists only under its Kotlin name. Re-exporting it as `pythonx.compose.ui.Alignment` is +this package's job, not the binder's -- the earlier rule that whatever the layer produces gets no +wrapper here (`0856d08`, `f7e21f8`) was the wrong way round. Until that re-export can land, this file +records the two things a caller cannot read off the layer. -_alignment = jclass("androidx.compose.ui.Alignment").Companion -_absolute_alignment = jclass("androidx.compose.ui.AbsoluteAlignment").INSTANCE +## The names the layer produces + Bottom BottomCenter BottomEnd BottomStart Center CenterEnd CenterHorizontally + CenterStart CenterVertically End Start Top TopCenter TopEnd TopStart -class Alignment(KotlinWrapper): - """ - An interface to calculate the position of a sized box inside an available space. - Alignment is often used to define the alignment of a layout inside a parent layout. - """ - TopStart = _alignment.getTopStart() - TopCenter = _alignment.getTopCenter() - TopEnd = _alignment.getTopEnd() - CenterStart = _alignment.getCenterStart() - Center = _alignment.getCenter() - CenterEnd = _alignment.getCenterEnd() - BottomStart = _alignment.getBottomStart() - BottomCenter = _alignment.getBottomCenter() - BottomEnd = _alignment.getBottomEnd() +Read out of the walked table, not from Compose's own source: a name Compose declares but the walker +declines would not be here. - class Vertical(KotlinWrapper): - Top = _alignment.getTop() - CenterVertically = _alignment.getCenterVertically() - Bottom = _alignment.getBottom() +## They are read, not called - class Horizontal(KotlinWrapper): - Start = _alignment.getStart() - CenterHorizontally = _alignment.getCenterHorizontally() - End = _alignment.getEnd() + from pythonx.compose.ui import Alignment + Alignment.Center # no parentheses +`PythonMultiplatform`'s `46be0212` taught the layer to branch on the kind column: a static getter is +evaluated on attribute access and handed back as a value, so `Alignment.Center()` -- the spelling +this file used to prescribe -- now raises `TypeError` because the value is not callable. -# Type Overriding -# Alignment.TopStart.__class__ = Alignment -# Alignment.TopCenter.__class__ = Alignment -# Alignment.TopEnd.__class__ = Alignment -# Alignment.CenterStart.__class__ = Alignment -# Alignment.Center.__class__ = Alignment -# Alignment.CenterEnd.__class__ = Alignment -# Alignment.BottomStart.__class__ = Alignment -# Alignment.BottomCenter.__class__ = Alignment -# Alignment.BottomEnd.__class__ = Alignment -# _Vertical = Alignment.Vertical -# _Vertical.Top.__class__ = _Vertical -# _Vertical.CenterVertically.__class__ = _Vertical -# _Vertical.Bottom.__class__ = _Vertical -# _Horizontal = Alignment.Horizontal -# _Horizontal.Start.__class__ = _Horizontal -# _Horizontal.CenterHorizontally.__class__ = _Horizontal -# _Horizontal.End.__class__ = _Horizontal +`pythonx.compose.ui.Alignment` is the Kotlin object `androidx.compose.ui.Alignment` seen through the +re-export rule (`pythonx/compose/_reexport.py`, `KotlinObject`): constants keep their Kotlin +spelling and are read again on every access, as the binder serves them. +## Grouped by declared type -class AbsoluteAlignment: - """ - A collection of common Alignments unaware of the layout direction. - """ - TopLeft = _absolute_alignment.getTopLeft() - TopLeft.__class__ = Alignment - TopRight = _absolute_alignment.getTopRight() - TopRight.__class__ = Alignment - CenterLeft = _absolute_alignment.getCenterLeft() - CenterLeft.__class__ = Alignment - CenterRight = _absolute_alignment.getCenterRight() - CenterRight.__class__ = Alignment - BottomLeft = _absolute_alignment.getBottomLeft() - BottomLeft.__class__ = Alignment - BottomRight = _absolute_alignment.getBottomRight() - BottomRight.__class__ = Alignment - Left = _absolute_alignment.getLeft() - Left.__class__ = Alignment - Right = _absolute_alignment.getRight() - Right.__class__ = Alignment +The notebook's grouped spelling works beside Kotlin's flat one (INTENT section 5.3): + Alignment.Horizontal.End # the same read as Alignment.End + Alignment.Vertical.Top # the same read as Alignment.Top -#TODO: Add BiasAlignment, BiasAbsoluteAlignment +`Alignment.Horizontal` holds the constants declared as `Alignment.Horizontal` (`CenterHorizontally`, +`End`, `Start`) and `Alignment.Vertical` those declared as `Alignment.Vertical` (`Bottom`, +`CenterVertically`, `Top`). A constant declared as `Alignment` itself (`Center`, `TopStart`, ...) is +in neither. The grouping is the re-export rule's (`ConstantGroup`), read from the declared types +`python_multiplatform.describe(module, name)` reports without running a getter (python-multiplatform +#36), so no list here drives it. +""" diff --git a/pythonx/compose/ui/graphics/__init__.py b/pythonx/compose/ui/graphics/__init__.py new file mode 100644 index 0000000..a0dfd8d --- /dev/null +++ b/pythonx/compose/ui/graphics/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.ui.graphics` -- the Pythonic view of `androidx.compose.ui.graphics` (see `pythonx/compose/_reexport.py`).""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/ui/graphics/__init__.pyi b/pythonx/compose/ui/graphics/__init__.pyi new file mode 100644 index 0000000..85e7040 --- /dev/null +++ b/pythonx/compose/ui/graphics/__init__.pyi @@ -0,0 +1,795 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.ui + +class _ColorFilter_asDesktopColorFilter(_t.Protocol): + def __call__(self) -> _t.Any: ... + +class _ColorFilter_asSkiaColorFilter(_t.Protocol): + def __call__(self) -> _t.Any: ... + +class _PathEffect_asDesktopPathEffect(_t.Protocol): + def __call__(self) -> _t.Any: ... + +class _PathEffect_asSkiaPathEffect(_t.Protocol): + def __call__(self) -> _t.Any: ... + +class _RenderEffect_asDesktopImageFilter(_t.Protocol): + def __call__(self) -> _t.Any: ... + +class BlendModeColorFilter(ColorFilter): + """Kotlin: androidx.compose.ui.graphics.BlendModeColorFilter""" + def __init__(self, color: _t.Any, blendMode: _t.Any) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.BlendModeColorFilter (androidx.compose.ui.graphics.BlendModeColorFilter(color: androidx.compose.ui.graphics.Color, blendMode: androidx.compose.ui.graphics.BlendMode): androidx.compose.ui.graphics.BlendModeColorFilter)""" + ... + @property + def blend_mode(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.BlendModeColorFilter.blendMode (androidx.compose.ui.graphics.BlendModeColorFilter.blendMode: androidx.compose.ui.graphics.BlendMode)""" + ... + @property + def color(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.BlendModeColorFilter.color (androidx.compose.ui.graphics.BlendModeColorFilter.color: androidx.compose.ui.graphics.Color)""" + ... + +class Brush: + """Kotlin: androidx.compose.ui.graphics.Brush""" + @property + def intrinsic_size(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.Brush.intrinsicSize (androidx.compose.ui.graphics.Brush.intrinsicSize: androidx.compose.ui.geometry.Size)""" + ... + +class ColorFilter: + """Kotlin: androidx.compose.ui.graphics.ColorFilter""" + as_desktop_color_filter: _t.ClassVar[_ColorFilter_asDesktopColorFilter] + as_skia_color_filter: _t.ClassVar[_ColorFilter_asSkiaColorFilter] + +class ColorMatrix: + """Kotlin value class androidx.compose.ui.graphics.ColorMatrix over kotlin.FloatArray. As a parameter the raw primitive is also accepted (the binding layer's allowlist decides, at run time); a result is the raw primitive.""" + +class ColorMatrixColorFilter(ColorFilter): + """Kotlin: androidx.compose.ui.graphics.ColorMatrixColorFilter""" + def __init__(self, colorMatrix: ColorMatrix) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.ColorMatrixColorFilter (androidx.compose.ui.graphics.ColorMatrixColorFilter(colorMatrix: androidx.compose.ui.graphics.ColorMatrix): androidx.compose.ui.graphics.ColorMatrixColorFilter)""" + ... + +class ColorProducer: + """Kotlin: androidx.compose.ui.graphics.ColorProducer""" + +class GraphicsContext: + """Kotlin: androidx.compose.ui.graphics.GraphicsContext""" + @property + def shadow_context(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.GraphicsContext.shadowContext (androidx.compose.ui.graphics.GraphicsContext.shadowContext: androidx.compose.ui.graphics.shadow.ShadowContext)""" + ... + +class Interpolatable: + """Kotlin: androidx.compose.ui.graphics.Interpolatable""" + +class Interval: + """Kotlin: androidx.compose.ui.graphics.Interval""" + @property + def data(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.graphics.Interval.data (androidx.compose.ui.graphics.Interval.data: kotlin.Any?)""" + ... + @property + def end(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.Interval.end (androidx.compose.ui.graphics.Interval.end: kotlin.Float)""" + ... + @property + def start(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.Interval.start (androidx.compose.ui.graphics.Interval.start: kotlin.Float)""" + ... + +class LightingColorFilter(ColorFilter): + """Kotlin: androidx.compose.ui.graphics.LightingColorFilter""" + def __init__(self, multiply: _t.Any, add: _t.Any) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.LightingColorFilter (androidx.compose.ui.graphics.LightingColorFilter(multiply: androidx.compose.ui.graphics.Color, add: androidx.compose.ui.graphics.Color): androidx.compose.ui.graphics.LightingColorFilter)""" + ... + @property + def add(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.LightingColorFilter.add (androidx.compose.ui.graphics.LightingColorFilter.add: androidx.compose.ui.graphics.Color)""" + ... + @property + def multiply(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.LightingColorFilter.multiply (androidx.compose.ui.graphics.LightingColorFilter.multiply: androidx.compose.ui.graphics.Color)""" + ... + +class LinearGradient: + """Kotlin: androidx.compose.ui.graphics.LinearGradient""" + @property + def intrinsic_size(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.LinearGradient.intrinsicSize (androidx.compose.ui.graphics.LinearGradient.intrinsicSize: androidx.compose.ui.geometry.Size)""" + ... + +class Outline: + """Kotlin: androidx.compose.ui.graphics.Outline""" + @property + def bounds(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.Outline.bounds (androidx.compose.ui.graphics.Outline.bounds: androidx.compose.ui.geometry.Rect)""" + ... + +class PathEffect: + """Kotlin: androidx.compose.ui.graphics.PathEffect""" + as_desktop_path_effect: _t.ClassVar[_PathEffect_asDesktopPathEffect] + as_skia_path_effect: _t.ClassVar[_PathEffect_asSkiaPathEffect] + +class PathSegment: + """Kotlin: androidx.compose.ui.graphics.PathSegment""" + @property + def type(self) -> PathSegment.Type: + """Kotlin property: androidx.compose.ui.graphics.PathSegment.type (androidx.compose.ui.graphics.PathSegment.type: androidx.compose.ui.graphics.PathSegment.Type)""" + ... + @property + def weight(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.PathSegment.weight (androidx.compose.ui.graphics.PathSegment.weight: kotlin.Float)""" + ... + class Type: + """Kotlin: androidx.compose.ui.graphics.PathSegment.Type""" + +class PixelMap: + """Kotlin: androidx.compose.ui.graphics.PixelMap""" + @property + def buffer_offset(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.PixelMap.bufferOffset (androidx.compose.ui.graphics.PixelMap.bufferOffset: kotlin.Int)""" + ... + @property + def height(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.PixelMap.height (androidx.compose.ui.graphics.PixelMap.height: kotlin.Int)""" + ... + @property + def stride(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.PixelMap.stride (androidx.compose.ui.graphics.PixelMap.stride: kotlin.Int)""" + ... + @property + def width(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.PixelMap.width (androidx.compose.ui.graphics.PixelMap.width: kotlin.Int)""" + ... + +class RadialGradient: + """Kotlin: androidx.compose.ui.graphics.RadialGradient""" + @property + def intrinsic_size(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.RadialGradient.intrinsicSize (androidx.compose.ui.graphics.RadialGradient.intrinsicSize: androidx.compose.ui.geometry.Size)""" + ... + +class RenderEffect: + """Kotlin: androidx.compose.ui.graphics.RenderEffect""" + as_desktop_image_filter: _t.ClassVar[_RenderEffect_asDesktopImageFilter] + @property + def skia_image_filter(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.skiaImageFilter (androidx.compose.ui.graphics.RenderEffect.skiaImageFilter: org.jetbrains.skia.ImageFilter)""" + ... + +class Shader: + """Kotlin: androidx.compose.ui.graphics.Shader""" + @property + def skia_shader(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.skiaShader (androidx.compose.ui.graphics.Shader.skiaShader: org.jetbrains.skia.Shader)""" + ... + +class Shadow: + """Kotlin: androidx.compose.ui.graphics.Shadow""" + @property + def blur_radius(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.Shadow.blurRadius (androidx.compose.ui.graphics.Shadow.blurRadius: kotlin.Float)""" + ... + @property + def color(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.Shadow.color (androidx.compose.ui.graphics.Shadow.color: androidx.compose.ui.graphics.Color)""" + ... + @property + def offset(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.Shadow.offset (androidx.compose.ui.graphics.Shadow.offset: androidx.compose.ui.geometry.Offset)""" + ... + +class Shape: + """Kotlin: androidx.compose.ui.graphics.Shape""" + +class SkiaGraphicsContext(GraphicsContext): + """Kotlin: androidx.compose.ui.graphics.SkiaGraphicsContext""" + def __init__(self, measureDrawBounds: bool = ...) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.SkiaGraphicsContext (androidx.compose.ui.graphics.SkiaGraphicsContext(measureDrawBounds: kotlin.Boolean): androidx.compose.ui.graphics.SkiaGraphicsContext)""" + ... + @property + def active_graphics_layers_count(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.SkiaGraphicsContext.activeGraphicsLayersCount (androidx.compose.ui.graphics.SkiaGraphicsContext.activeGraphicsLayersCount: kotlin.Int)""" + ... + +class SolidColor(Brush, Interpolatable): + """Kotlin: androidx.compose.ui.graphics.SolidColor""" + def __init__(self, value: _t.Any) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.SolidColor (androidx.compose.ui.graphics.SolidColor(value: androidx.compose.ui.graphics.Color): androidx.compose.ui.graphics.SolidColor)""" + ... + @property + def value(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.SolidColor.value (androidx.compose.ui.graphics.SolidColor.value: androidx.compose.ui.graphics.Color)""" + ... + +class Vertices: + """Kotlin: androidx.compose.ui.graphics.Vertices""" + @property + def vertex_mode(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.Vertices.vertexMode (androidx.compose.ui.graphics.Vertices.vertexMode: androidx.compose.ui.graphics.VertexMode)""" + ... + +def BlurEffect(radius_x: float, radius_y: float, edge_treatment: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.BlurEffect(radiusX: kotlin.Float, radiusY: kotlin.Float, edgeTreatment: androidx.compose.ui.graphics.TileMode): androidx.compose.ui.graphics.BlurEffect""" + ... + +def Canvas(image: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Canvas(image: androidx.compose.ui.graphics.ImageBitmap): androidx.compose.ui.graphics.Canvas""" + ... + +def Color__Float_Float_Float_Float_ColorSpace(red: float, green: float, blue: float, alpha: float = ..., color_space: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Color(red: kotlin.Float, green: kotlin.Float, blue: kotlin.Float, alpha: kotlin.Float, colorSpace: androidx.compose.ui.graphics.colorspace.ColorSpace): androidx.compose.ui.graphics.Color""" + ... + +def Color__Int(color: int) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Color(color: kotlin.Int): androidx.compose.ui.graphics.Color""" + ... + +def Color__Int_Int_Int_Int(red: int, green: int, blue: int, alpha: int = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Color(red: kotlin.Int, green: kotlin.Int, blue: kotlin.Int, alpha: kotlin.Int): androidx.compose.ui.graphics.Color""" + ... + +def Color__Long(color: int) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Color(color: kotlin.Long): androidx.compose.ui.graphics.Color""" + ... + +def CompositeShader(dst: Shader, src: Shader, blend_mode: _t.Any) -> Shader: + """Kotlin: androidx.compose.ui.graphics.CompositeShader(dst: androidx.compose.ui.graphics.Shader, src: androidx.compose.ui.graphics.Shader, blendMode: androidx.compose.ui.graphics.BlendMode): androidx.compose.ui.graphics.Shader""" + ... + +def GraphicsLayerScope() -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.GraphicsLayerScope(): androidx.compose.ui.graphics.GraphicsLayerScope""" + ... + +def ImageBitmap(width: int, height: int, config: _t.Any = ..., has_alpha: bool = ..., color_space: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.ImageBitmap(width: kotlin.Int, height: kotlin.Int, config: androidx.compose.ui.graphics.ImageBitmapConfig, hasAlpha: kotlin.Boolean, colorSpace: androidx.compose.ui.graphics.colorspace.ColorSpace): androidx.compose.ui.graphics.ImageBitmap""" + ... + +def ImageShader(image: _t.Any, tile_mode_x: _t.Any = ..., tile_mode_y: _t.Any = ...) -> Shader: + """Kotlin: androidx.compose.ui.graphics.ImageShader(image: androidx.compose.ui.graphics.ImageBitmap, tileModeX: androidx.compose.ui.graphics.TileMode, tileModeY: androidx.compose.ui.graphics.TileMode): androidx.compose.ui.graphics.Shader""" + ... + +def OffsetEffect(offset_x: float, offset_y: float) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.OffsetEffect(offsetX: kotlin.Float, offsetY: kotlin.Float): androidx.compose.ui.graphics.OffsetEffect""" + ... + +def Paint() -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Paint(): androidx.compose.ui.graphics.Paint""" + ... + +def Path() -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path(): androidx.compose.ui.graphics.Path""" + ... + +def PathHitTester(path: _t.Any, tolerance: float = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.PathHitTester(path: androidx.compose.ui.graphics.Path, tolerance: kotlin.Float): androidx.compose.ui.graphics.PathHitTester""" + ... + +def PathIterator(path: _t.Any, conic_evaluation: _t.Any = ..., tolerance: float = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.PathIterator(path: androidx.compose.ui.graphics.Path, conicEvaluation: androidx.compose.ui.graphics.PathIterator.ConicEvaluation, tolerance: kotlin.Float): androidx.compose.ui.graphics.PathIterator""" + ... + +def PathMeasure() -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.PathMeasure(): androidx.compose.ui.graphics.PathMeasure""" + ... + +def ShaderBrush(shader: Shader) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.ShaderBrush(shader: androidx.compose.ui.graphics.Shader): androidx.compose.ui.graphics.ShaderBrush""" + ... + +def TransformOrigin(pivot_fraction_x: float, pivot_fraction_y: float) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.TransformOrigin(pivotFractionX: kotlin.Float, pivotFractionY: kotlin.Float): androidx.compose.ui.graphics.TransformOrigin""" + ... + +def add_outline(receiver: _t.Any, /, outline: Outline) -> None: + """Kotlin: androidx.compose.ui.graphics.Path.addOutline(outline: androidx.compose.ui.graphics.Outline): kotlin.Unit""" + ... + +def add_svg(receiver: _t.Any, /, path_data: str) -> None: + """Kotlin: androidx.compose.ui.graphics.Path.addSvg(pathData: kotlin.String): kotlin.Unit""" + ... + +def as_compose_canvas(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Canvas.asComposeCanvas(): androidx.compose.ui.graphics.Canvas""" + ... + +def as_compose_color_filter(receiver: _t.Any, /) -> ColorFilter: + """Kotlin: org.jetbrains.skia.ColorFilter.asComposeColorFilter(): androidx.compose.ui.graphics.ColorFilter""" + ... + +def as_compose_image_bitmap(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Bitmap.asComposeImageBitmap(): androidx.compose.ui.graphics.ImageBitmap""" + ... + +def as_compose_paint(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Paint.asComposePaint(): androidx.compose.ui.graphics.Paint""" + ... + +def as_compose_path(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Path.asComposePath(): androidx.compose.ui.graphics.Path""" + ... + +def as_compose_path_effect__PathEffect(receiver: _t.Any, /) -> PathEffect: + """Kotlin: org.jetbrains.skia.PathEffect.asComposePathEffect(): androidx.compose.ui.graphics.PathEffect""" + ... + +def as_compose_path_effect__PathMeasure(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.PathMeasure.asComposePathEffect(): androidx.compose.ui.graphics.PathMeasure""" + ... + +def as_compose_render_effect(receiver: _t.Any, /) -> RenderEffect: + """Kotlin: org.jetbrains.skia.ImageFilter.asComposeRenderEffect(): androidx.compose.ui.graphics.RenderEffect""" + ... + +def as_compose_shader(receiver: _t.Any, /) -> Shader: + """Kotlin: org.jetbrains.skia.Shader.asComposeShader(): androidx.compose.ui.graphics.Shader""" + ... + +def as_desktop_bitmap(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.ImageBitmap.asDesktopBitmap(): org.jetbrains.skia.Bitmap""" + ... + +def as_desktop_color_filter(receiver: ColorFilter, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.ColorFilter.asDesktopColorFilter(): org.jetbrains.skia.ColorFilter""" + ... + +def as_desktop_image_filter(receiver: RenderEffect, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.RenderEffect.asDesktopImageFilter(): org.jetbrains.skia.ImageFilter""" + ... + +def as_desktop_path(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path.asDesktopPath(): org.jetbrains.skia.Path""" + ... + +def as_desktop_path_effect(receiver: PathEffect, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.PathEffect.asDesktopPathEffect(): org.jetbrains.skia.PathEffect""" + ... + +def as_image_bitmap__Bitmap(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Bitmap.asImageBitmap(): androidx.compose.ui.graphics.ImageBitmap""" + ... + +def as_image_bitmap__Image(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Image.asImageBitmap(): androidx.compose.ui.graphics.ImageBitmap""" + ... + +def as_skia_bitmap(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.ImageBitmap.asSkiaBitmap(): org.jetbrains.skia.Bitmap""" + ... + +def as_skia_color_filter(receiver: ColorFilter, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.ColorFilter.asSkiaColorFilter(): org.jetbrains.skia.ColorFilter""" + ... + +def as_skia_path(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path.asSkiaPath(): org.jetbrains.skia.Path""" + ... + +def as_skia_path_effect(receiver: PathEffect, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.PathEffect.asSkiaPathEffect(): org.jetbrains.skia.PathEffect""" + ... + +def as_skia_path_measure(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.PathMeasure.asSkiaPathMeasure(): org.jetbrains.skia.PathMeasure""" + ... + +def composite_over(receiver: _t.Any, /, background: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Color.compositeOver(background: androidx.compose.ui.graphics.Color): androidx.compose.ui.graphics.Color""" + ... + +def compute_direction(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path.computeDirection(): androidx.compose.ui.graphics.Path.Direction""" + ... + +def copy(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path.copy(): androidx.compose.ui.graphics.Path""" + ... + +def decode_to_image_bitmap(receiver: bytes, /) -> _t.Any: + """Kotlin: kotlin.ByteArray.decodeToImageBitmap(): androidx.compose.ui.graphics.ImageBitmap""" + ... + +def draw_outline__Outline_Brush_Float_DrawStyle_ColorFilter_BlendMode(receiver: _t.Any, /, outline: Outline, brush: Brush, alpha: float = ..., style: _t.Any = ..., color_filter: ColorFilter | None = ..., blend_mode: _t.Any = ...) -> None: + """Kotlin: androidx.compose.ui.graphics.drawscope.DrawScope.drawOutline(outline: androidx.compose.ui.graphics.Outline, brush: androidx.compose.ui.graphics.Brush, alpha: kotlin.Float, style: androidx.compose.ui.graphics.drawscope.DrawStyle, colorFilter: androidx.compose.ui.graphics.ColorFilter?, blendMode: androidx.compose.ui.graphics.BlendMode): kotlin.Unit""" + ... + +def draw_outline__Outline_Color_Float_DrawStyle_ColorFilter_BlendMode(receiver: _t.Any, /, outline: Outline, color: _t.Any, alpha: float = ..., style: _t.Any = ..., color_filter: ColorFilter | None = ..., blend_mode: _t.Any = ...) -> None: + """Kotlin: androidx.compose.ui.graphics.drawscope.DrawScope.drawOutline(outline: androidx.compose.ui.graphics.Outline, color: androidx.compose.ui.graphics.Color, alpha: kotlin.Float, style: androidx.compose.ui.graphics.drawscope.DrawStyle, colorFilter: androidx.compose.ui.graphics.ColorFilter?, blendMode: androidx.compose.ui.graphics.BlendMode): kotlin.Unit""" + ... + +def draw_outline__Outline_Paint(receiver: _t.Any, /, outline: Outline, paint: _t.Any) -> None: + """Kotlin: androidx.compose.ui.graphics.Canvas.drawOutline(outline: androidx.compose.ui.graphics.Outline, paint: androidx.compose.ui.graphics.Paint): kotlin.Unit""" + ... + +def evaluate_cubic(p1: float, p2: float, t: float) -> float: + """Kotlin: androidx.compose.ui.graphics.evaluateCubic(p1: kotlin.Float, p2: kotlin.Float, t: kotlin.Float): kotlin.Float""" + ... + +def evaluate_y(segment: PathSegment, t: float) -> float: + """Kotlin: androidx.compose.ui.graphics.evaluateY(segment: androidx.compose.ui.graphics.PathSegment, t: kotlin.Float): kotlin.Float""" + ... + +def find_first_cubic_root(p0: float, p1: float, p2: float, p3: float) -> float: + """Kotlin: androidx.compose.ui.graphics.findFirstCubicRoot(p0: kotlin.Float, p1: kotlin.Float, p2: kotlin.Float, p3: kotlin.Float): kotlin.Float""" + ... + +def find_first_root(segment: PathSegment, fraction: float) -> float: + """Kotlin: androidx.compose.ui.graphics.findFirstRoot(segment: androidx.compose.ui.graphics.PathSegment, fraction: kotlin.Float): kotlin.Float""" + ... + +def graphics_layer__Float_Float_Float_Float_Float_Float_Float_Float_Float_Float_TransformOrigin_Shape_Boolean_RenderEffect_Color_Color_CompositingStrategy_BlendMode_ColorFilter(receiver: pythonx.compose.ui.Modifier, /, scale_x: float, scale_y: float, alpha: float, translation_x: float, translation_y: float, shadow_elevation: float, rotation_x: float, rotation_y: float, rotation_z: float, camera_distance: float, transform_origin: _t.Any, shape: Shape, clip: bool, render_effect: RenderEffect | None, ambient_shadow_color: _t.Any, spot_shadow_color: _t.Any, compositing_strategy: _t.Any, blend_mode: _t.Any, color_filter: ColorFilter | None) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.graphicsLayer(scaleX: kotlin.Float, scaleY: kotlin.Float, alpha: kotlin.Float, translationX: kotlin.Float, translationY: kotlin.Float, shadowElevation: kotlin.Float, rotationX: kotlin.Float, rotationY: kotlin.Float, rotationZ: kotlin.Float, cameraDistance: kotlin.Float, transformOrigin: androidx.compose.ui.graphics.TransformOrigin, shape: androidx.compose.ui.graphics.Shape, clip: kotlin.Boolean, renderEffect: androidx.compose.ui.graphics.RenderEffect?, ambientShadowColor: androidx.compose.ui.graphics.Color, spotShadowColor: androidx.compose.ui.graphics.Color, compositingStrategy: androidx.compose.ui.graphics.CompositingStrategy, blendMode: androidx.compose.ui.graphics.BlendMode, colorFilter: androidx.compose.ui.graphics.ColorFilter?): androidx.compose.ui.Modifier""" + ... + +def graphics_layer__Unit(receiver: pythonx.compose.ui.Modifier, /, block: _t.Callable[[_t.Any], None]) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.graphicsLayer(block: kotlin.Function1): androidx.compose.ui.Modifier""" + ... + +def is_identity(receiver: _t.Any, /) -> bool: + """Kotlin: androidx.compose.ui.graphics.Matrix.isIdentity(): kotlin.Boolean""" + ... + +def is_supported__BlendMode(receiver: _t.Any, /) -> bool: + """Kotlin: androidx.compose.ui.graphics.BlendMode.isSupported(): kotlin.Boolean""" + ... + +def is_supported__TileMode(receiver: _t.Any, /) -> bool: + """Kotlin: androidx.compose.ui.graphics.TileMode.isSupported(): kotlin.Boolean""" + ... + +def lerp__Color_Color_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.lerp(start: androidx.compose.ui.graphics.Color, stop: androidx.compose.ui.graphics.Color, fraction: kotlin.Float): androidx.compose.ui.graphics.Color""" + ... + +def lerp__Shadow_Shadow_Float(start: Shadow, stop: Shadow, fraction: float) -> Shadow: + """Kotlin: androidx.compose.ui.graphics.lerp(start: androidx.compose.ui.graphics.Shadow, stop: androidx.compose.ui.graphics.Shadow, fraction: kotlin.Float): androidx.compose.ui.graphics.Shadow""" + ... + +def luminance(receiver: _t.Any, /) -> float: + """Kotlin: androidx.compose.ui.graphics.Color.luminance(): kotlin.Float""" + ... + +def materialize_skia_path(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path.materializeSkiaPath(): org.jetbrains.skia.Path""" + ... + +def prepare_transformation_matrix(matrix: _t.Any, pivot_x: float, pivot_y: float, translation_x: float, translation_y: float, rotation_x: float, rotation_y: float, rotation_z: float, scale_x: float, scale_y: float, camera_distance: float) -> None: + """Kotlin: androidx.compose.ui.graphics.prepareTransformationMatrix(matrix: androidx.compose.ui.graphics.Matrix, pivotX: kotlin.Float, pivotY: kotlin.Float, translationX: kotlin.Float, translationY: kotlin.Float, rotationX: kotlin.Float, rotationY: kotlin.Float, rotationZ: kotlin.Float, scaleX: kotlin.Float, scaleY: kotlin.Float, cameraDistance: kotlin.Float): kotlin.Unit""" + ... + +def remember_graphics_layer() -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.rememberGraphicsLayer(): androidx.compose.ui.graphics.layer.GraphicsLayer""" + ... + +def reverse(receiver: _t.Any, /, destination: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Path.reverse(destination: androidx.compose.ui.graphics.Path): androidx.compose.ui.graphics.Path""" + ... + +def rotate(receiver: _t.Any, /, degrees: float, pivot_x: float, pivot_y: float) -> None: + """Kotlin: androidx.compose.ui.graphics.Canvas.rotate(degrees: kotlin.Float, pivotX: kotlin.Float, pivotY: kotlin.Float): kotlin.Unit""" + ... + +def rotate_rad(receiver: _t.Any, /, radians: float, pivot_x: float = ..., pivot_y: float = ...) -> None: + """Kotlin: androidx.compose.ui.graphics.Canvas.rotateRad(radians: kotlin.Float, pivotX: kotlin.Float, pivotY: kotlin.Float): kotlin.Unit""" + ... + +def scale(receiver: _t.Any, /, sx: float, sy: float = ..., *, pivot_x: float, pivot_y: float) -> None: + """Kotlin: androidx.compose.ui.graphics.Canvas.scale(sx: kotlin.Float, sy: kotlin.Float, pivotX: kotlin.Float, pivotY: kotlin.Float): kotlin.Unit""" + ... + +def take_or_else(receiver: _t.Any, /, block: _t.Callable[[], _t.Any]) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.Color.takeOrElse(block: kotlin.Function0): androidx.compose.ui.graphics.Color""" + ... + +def to_argb(receiver: _t.Any, /) -> int: + """Kotlin: androidx.compose.ui.graphics.Color.toArgb(): kotlin.Int""" + ... + +def to_compose_color_filter(receiver: _t.Any, /) -> ColorFilter: + """Kotlin: org.jetbrains.skia.ColorFilter.toComposeColorFilter(): androidx.compose.ui.graphics.ColorFilter""" + ... + +def to_compose_image_bitmap(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Image.toComposeImageBitmap(): androidx.compose.ui.graphics.ImageBitmap""" + ... + +def to_compose_rect(receiver: _t.Any, /) -> _t.Any: + """Kotlin: org.jetbrains.skia.Rect.toComposeRect(): androidx.compose.ui.geometry.Rect""" + ... + +def to_skia_r_rect(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.geometry.RoundRect.toSkiaRRect(): org.jetbrains.skia.RRect""" + ... + +def to_skia_rect(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.geometry.Rect.toSkiaRect(): org.jetbrains.skia.Rect""" + ... + +def to_svg(receiver: _t.Any, /, as_document: bool = ...) -> str: + """Kotlin: androidx.compose.ui.graphics.Path.toSvg(asDocument: kotlin.Boolean): kotlin.String""" + ... + +def tooling_graphics_layer(receiver: pythonx.compose.ui.Modifier, /) -> pythonx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.toolingGraphicsLayer(): androidx.compose.ui.Modifier""" + ... + +def with_save(receiver: _t.Any, /, block: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.ui.graphics.Canvas.withSave(block: kotlin.Function0): kotlin.Unit""" + ... + +def with_save_layer(receiver: _t.Any, /, bounds: _t.Any, paint: _t.Any, block: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.ui.graphics.Canvas.withSaveLayer(bounds: androidx.compose.ui.geometry.Rect, paint: androidx.compose.ui.graphics.Paint, block: kotlin.Function0): kotlin.Unit""" + ... + +@_t.overload +def Color(red: float, green: float, blue: float, alpha: float = ..., color_space: _t.Any = ...) -> _t.Any: ... +@_t.overload +def Color(color: int) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def Color(red: int, green: int, blue: int, alpha: int = ...) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def Color(color: int) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def as_compose_path_effect(receiver: _t.Any, /) -> PathEffect: ... +@_t.overload +def as_compose_path_effect(receiver: _t.Any, /) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def as_image_bitmap(receiver: _t.Any, /) -> _t.Any: ... +@_t.overload +def as_image_bitmap(receiver: _t.Any, /) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def draw_outline(receiver: _t.Any, /, outline: Outline, brush: Brush, alpha: float = ..., style: _t.Any = ..., color_filter: ColorFilter | None = ..., blend_mode: _t.Any = ...) -> None: ... +@_t.overload +def draw_outline(receiver: _t.Any, /, outline: Outline, color: _t.Any, alpha: float = ..., style: _t.Any = ..., color_filter: ColorFilter | None = ..., blend_mode: _t.Any = ...) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def draw_outline(receiver: _t.Any, /, outline: Outline, paint: _t.Any) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def graphics_layer(receiver: pythonx.compose.ui.Modifier, /, scale_x: float, scale_y: float, alpha: float, translation_x: float, translation_y: float, shadow_elevation: float, rotation_x: float, rotation_y: float, rotation_z: float, camera_distance: float, transform_origin: _t.Any, shape: Shape, clip: bool, render_effect: RenderEffect | None, ambient_shadow_color: _t.Any, spot_shadow_color: _t.Any, compositing_strategy: _t.Any, blend_mode: _t.Any, color_filter: ColorFilter | None) -> pythonx.compose.ui.Modifier: ... +@_t.overload +def graphics_layer(receiver: pythonx.compose.ui.Modifier, /, block: _t.Callable[[_t.Any], None]) -> pythonx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] + +@_t.overload +def is_supported(receiver: _t.Any, /) -> bool: ... +@_t.overload +def is_supported(receiver: _t.Any, /) -> bool: ... # type: ignore[overload-cannot-match] + +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... +@_t.overload +def lerp(start: Shadow, stop: Shadow, fraction: float) -> Shadow: ... # type: ignore[overload-cannot-match] + +class BlendMode: + """Kotlin: androidx.compose.ui.graphics.BlendMode""" + Clear: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Clear(): androidx.compose.ui.graphics.BlendMode""" + Color: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Color(): androidx.compose.ui.graphics.BlendMode""" + ColorBurn: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.ColorBurn(): androidx.compose.ui.graphics.BlendMode""" + ColorDodge: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.ColorDodge(): androidx.compose.ui.graphics.BlendMode""" + Darken: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Darken(): androidx.compose.ui.graphics.BlendMode""" + Difference: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Difference(): androidx.compose.ui.graphics.BlendMode""" + Dst: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Dst(): androidx.compose.ui.graphics.BlendMode""" + DstAtop: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.DstAtop(): androidx.compose.ui.graphics.BlendMode""" + DstIn: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.DstIn(): androidx.compose.ui.graphics.BlendMode""" + DstOut: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.DstOut(): androidx.compose.ui.graphics.BlendMode""" + DstOver: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.DstOver(): androidx.compose.ui.graphics.BlendMode""" + Exclusion: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Exclusion(): androidx.compose.ui.graphics.BlendMode""" + Hardlight: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Hardlight(): androidx.compose.ui.graphics.BlendMode""" + Hue: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Hue(): androidx.compose.ui.graphics.BlendMode""" + Lighten: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Lighten(): androidx.compose.ui.graphics.BlendMode""" + Luminosity: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Luminosity(): androidx.compose.ui.graphics.BlendMode""" + Modulate: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Modulate(): androidx.compose.ui.graphics.BlendMode""" + Multiply: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Multiply(): androidx.compose.ui.graphics.BlendMode""" + Overlay: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Overlay(): androidx.compose.ui.graphics.BlendMode""" + Plus: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Plus(): androidx.compose.ui.graphics.BlendMode""" + Saturation: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Saturation(): androidx.compose.ui.graphics.BlendMode""" + Screen: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Screen(): androidx.compose.ui.graphics.BlendMode""" + Softlight: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Softlight(): androidx.compose.ui.graphics.BlendMode""" + Src: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Src(): androidx.compose.ui.graphics.BlendMode""" + SrcAtop: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.SrcAtop(): androidx.compose.ui.graphics.BlendMode""" + SrcIn: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.SrcIn(): androidx.compose.ui.graphics.BlendMode""" + SrcOut: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.SrcOut(): androidx.compose.ui.graphics.BlendMode""" + SrcOver: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.SrcOver(): androidx.compose.ui.graphics.BlendMode""" + Xor: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.BlendMode.Xor(): androidx.compose.ui.graphics.BlendMode""" + +class ClipOp: + """Kotlin: androidx.compose.ui.graphics.ClipOp""" + Difference: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.ClipOp.Difference(): androidx.compose.ui.graphics.ClipOp""" + Intersect: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.ClipOp.Intersect(): androidx.compose.ui.graphics.ClipOp""" + +class CompositingStrategy: + """Kotlin: androidx.compose.ui.graphics.CompositingStrategy""" + Auto: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.CompositingStrategy.Auto(): androidx.compose.ui.graphics.CompositingStrategy""" + ModulateAlpha: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.CompositingStrategy.ModulateAlpha(): androidx.compose.ui.graphics.CompositingStrategy""" + Offscreen: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.CompositingStrategy.Offscreen(): androidx.compose.ui.graphics.CompositingStrategy""" + +class FilterQuality: + """Kotlin: androidx.compose.ui.graphics.FilterQuality""" + High: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.FilterQuality.High(): androidx.compose.ui.graphics.FilterQuality""" + Low: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.FilterQuality.Low(): androidx.compose.ui.graphics.FilterQuality""" + Medium: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.FilterQuality.Medium(): androidx.compose.ui.graphics.FilterQuality""" + +class ImageBitmapConfig: + """Kotlin: androidx.compose.ui.graphics.ImageBitmapConfig""" + Alpha8: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.ImageBitmapConfig.Alpha8(): androidx.compose.ui.graphics.ImageBitmapConfig""" + Argb8888: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.ImageBitmapConfig.Argb8888(): androidx.compose.ui.graphics.ImageBitmapConfig""" + F16: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.ImageBitmapConfig.F16(): androidx.compose.ui.graphics.ImageBitmapConfig""" + Gpu: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.ImageBitmapConfig.Gpu(): androidx.compose.ui.graphics.ImageBitmapConfig""" + Rgb565: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.ImageBitmapConfig.Rgb565(): androidx.compose.ui.graphics.ImageBitmapConfig""" + +class Matrix: + """Kotlin: androidx.compose.ui.graphics.Matrix""" + Perspective0: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.Perspective0(): kotlin.Int""" + Perspective1: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.Perspective1(): kotlin.Int""" + Perspective2: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.Perspective2(): kotlin.Int""" + ScaleX: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.ScaleX(): kotlin.Int""" + ScaleY: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.ScaleY(): kotlin.Int""" + ScaleZ: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.ScaleZ(): kotlin.Int""" + SkewX: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.SkewX(): kotlin.Int""" + SkewY: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.SkewY(): kotlin.Int""" + TranslateX: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.TranslateX(): kotlin.Int""" + TranslateY: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.TranslateY(): kotlin.Int""" + TranslateZ: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.graphics.Matrix.TranslateZ(): kotlin.Int""" + +class PaintingStyle: + """Kotlin: androidx.compose.ui.graphics.PaintingStyle""" + Fill: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PaintingStyle.Fill(): androidx.compose.ui.graphics.PaintingStyle""" + Stroke: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PaintingStyle.Stroke(): androidx.compose.ui.graphics.PaintingStyle""" + +class PathFillType: + """Kotlin: androidx.compose.ui.graphics.PathFillType""" + EvenOdd: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathFillType.EvenOdd(): androidx.compose.ui.graphics.PathFillType""" + NonZero: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathFillType.NonZero(): androidx.compose.ui.graphics.PathFillType""" + +class PathOperation: + """Kotlin: androidx.compose.ui.graphics.PathOperation""" + class Companion: + """Kotlin: androidx.compose.ui.graphics.PathOperation.Companion""" + @property + def difference(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.difference (androidx.compose.ui.graphics.PathOperation.Companion.difference: androidx.compose.ui.graphics.PathOperation)""" + ... + @property + def intersect(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.intersect (androidx.compose.ui.graphics.PathOperation.Companion.intersect: androidx.compose.ui.graphics.PathOperation)""" + ... + @property + def reverseDifference(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.reverseDifference (androidx.compose.ui.graphics.PathOperation.Companion.reverseDifference: androidx.compose.ui.graphics.PathOperation)""" + ... + @property + def union(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.union (androidx.compose.ui.graphics.PathOperation.Companion.union: androidx.compose.ui.graphics.PathOperation)""" + ... + @property + def xor(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.xor (androidx.compose.ui.graphics.PathOperation.Companion.xor: androidx.compose.ui.graphics.PathOperation)""" + ... + Difference: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathOperation.Difference(): androidx.compose.ui.graphics.PathOperation""" + Intersect: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathOperation.Intersect(): androidx.compose.ui.graphics.PathOperation""" + ReverseDifference: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathOperation.ReverseDifference(): androidx.compose.ui.graphics.PathOperation""" + Union: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathOperation.Union(): androidx.compose.ui.graphics.PathOperation""" + Xor: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PathOperation.Xor(): androidx.compose.ui.graphics.PathOperation""" + +class PointMode: + """Kotlin: androidx.compose.ui.graphics.PointMode""" + Lines: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PointMode.Lines(): androidx.compose.ui.graphics.PointMode""" + Points: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PointMode.Points(): androidx.compose.ui.graphics.PointMode""" + Polygon: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.PointMode.Polygon(): androidx.compose.ui.graphics.PointMode""" + +class StampedPathEffectStyle: + """Kotlin: androidx.compose.ui.graphics.StampedPathEffectStyle""" + Morph: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StampedPathEffectStyle.Morph(): androidx.compose.ui.graphics.StampedPathEffectStyle""" + Rotate: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StampedPathEffectStyle.Rotate(): androidx.compose.ui.graphics.StampedPathEffectStyle""" + Translate: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StampedPathEffectStyle.Translate(): androidx.compose.ui.graphics.StampedPathEffectStyle""" + +class StrokeCap: + """Kotlin: androidx.compose.ui.graphics.StrokeCap""" + Butt: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StrokeCap.Butt(): androidx.compose.ui.graphics.StrokeCap""" + Round: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StrokeCap.Round(): androidx.compose.ui.graphics.StrokeCap""" + Square: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StrokeCap.Square(): androidx.compose.ui.graphics.StrokeCap""" + +class StrokeJoin: + """Kotlin: androidx.compose.ui.graphics.StrokeJoin""" + Bevel: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StrokeJoin.Bevel(): androidx.compose.ui.graphics.StrokeJoin""" + Miter: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StrokeJoin.Miter(): androidx.compose.ui.graphics.StrokeJoin""" + Round: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.StrokeJoin.Round(): androidx.compose.ui.graphics.StrokeJoin""" + +class TileMode: + """Kotlin: androidx.compose.ui.graphics.TileMode""" + Clamp: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.TileMode.Clamp(): androidx.compose.ui.graphics.TileMode""" + Decal: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.TileMode.Decal(): androidx.compose.ui.graphics.TileMode""" + Mirror: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.TileMode.Mirror(): androidx.compose.ui.graphics.TileMode""" + Repeated: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.TileMode.Repeated(): androidx.compose.ui.graphics.TileMode""" + +class VertexMode: + """Kotlin: androidx.compose.ui.graphics.VertexMode""" + TriangleFan: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.VertexMode.TriangleFan(): androidx.compose.ui.graphics.VertexMode""" + TriangleStrip: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.VertexMode.TriangleStrip(): androidx.compose.ui.graphics.VertexMode""" + Triangles: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.graphics.VertexMode.Triangles(): androidx.compose.ui.graphics.VertexMode""" diff --git a/pythonx/compose/ui/graphics/vector/__init__.py b/pythonx/compose/ui/graphics/vector/__init__.py new file mode 100644 index 0000000..9000dfc --- /dev/null +++ b/pythonx/compose/ui/graphics/vector/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.ui.graphics.vector` -- the Pythonic view of `androidx.compose.ui.graphics.vector` (see `pythonx/compose/_reexport.py`).""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/ui/graphics/vector/__init__.pyi b/pythonx/compose/ui/graphics/vector/__init__.pyi new file mode 100644 index 0000000..1e708df --- /dev/null +++ b/pythonx/compose/ui/graphics/vector/__init__.pyi @@ -0,0 +1,221 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.runtime +import pythonx.compose.ui.graphics + +class _ImageVector_Builder_materialPath(_t.Protocol): + def __call__(self, fill_alpha: float = ..., stroke_alpha: float = ..., path_fill_type: _t.Any = ..., *, path_builder: _t.Callable[[PathBuilder], None]) -> ImageVector.Builder: ... + +class _ImageVector_Builder_path(_t.Protocol): + def __call__(self, name: str, fill: pythonx.compose.ui.graphics.Brush | None, fill_alpha: float, stroke: pythonx.compose.ui.graphics.Brush | None, stroke_alpha: float, stroke_line_width: float, stroke_line_cap: _t.Any, stroke_line_join: _t.Any, stroke_line_miter: float, path_fill_type: _t.Any, path_builder: _t.Callable[[PathBuilder], None]) -> ImageVector.Builder: ... + +class ImageVector: + """Kotlin: androidx.compose.ui.graphics.vector.ImageVector""" + @property + def auto_mirror(self) -> bool: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.autoMirror (androidx.compose.ui.graphics.vector.ImageVector.autoMirror: kotlin.Boolean)""" + ... + @property + def default_height(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.defaultHeight (androidx.compose.ui.graphics.vector.ImageVector.defaultHeight: androidx.compose.ui.unit.Dp)""" + ... + @property + def default_width(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.defaultWidth (androidx.compose.ui.graphics.vector.ImageVector.defaultWidth: androidx.compose.ui.unit.Dp)""" + ... + @property + def name(self) -> str: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.name (androidx.compose.ui.graphics.vector.ImageVector.name: kotlin.String)""" + ... + @property + def root(self) -> VectorGroup: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.root (androidx.compose.ui.graphics.vector.ImageVector.root: androidx.compose.ui.graphics.vector.VectorGroup)""" + ... + @property + def tint_blend_mode(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.tintBlendMode (androidx.compose.ui.graphics.vector.ImageVector.tintBlendMode: androidx.compose.ui.graphics.BlendMode)""" + ... + @property + def tint_color(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.tintColor (androidx.compose.ui.graphics.vector.ImageVector.tintColor: androidx.compose.ui.graphics.Color)""" + ... + @property + def viewport_height(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.viewportHeight (androidx.compose.ui.graphics.vector.ImageVector.viewportHeight: kotlin.Float)""" + ... + @property + def viewport_width(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.ImageVector.viewportWidth (androidx.compose.ui.graphics.vector.ImageVector.viewportWidth: kotlin.Float)""" + ... + class Builder: + """Kotlin: androidx.compose.ui.graphics.vector.ImageVector.Builder""" + material_path: _t.ClassVar[_ImageVector_Builder_materialPath] + path: _t.ClassVar[_ImageVector_Builder_path] + +class PathBuilder: + """Kotlin: androidx.compose.ui.graphics.vector.PathBuilder""" + def __init__(self) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.vector.PathBuilder (androidx.compose.ui.graphics.vector.PathBuilder(): androidx.compose.ui.graphics.vector.PathBuilder)""" + ... + +class PathNode: + """Kotlin: androidx.compose.ui.graphics.vector.PathNode""" + @property + def is_curve(self) -> bool: + """Kotlin property: androidx.compose.ui.graphics.vector.PathNode.isCurve (androidx.compose.ui.graphics.vector.PathNode.isCurve: kotlin.Boolean)""" + ... + @property + def is_quad(self) -> bool: + """Kotlin property: androidx.compose.ui.graphics.vector.PathNode.isQuad (androidx.compose.ui.graphics.vector.PathNode.isQuad: kotlin.Boolean)""" + ... + +class PathParser: + """Kotlin: androidx.compose.ui.graphics.vector.PathParser""" + def __init__(self) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.vector.PathParser (androidx.compose.ui.graphics.vector.PathParser(): androidx.compose.ui.graphics.vector.PathParser)""" + ... + +class VNode: + """Kotlin: androidx.compose.ui.graphics.vector.VNode""" + +class VectorApplier(pythonx.compose.runtime.AbstractApplier, pythonx.compose.runtime.Applier): + """Kotlin: androidx.compose.ui.graphics.vector.VectorApplier""" + def __init__(self, root: VNode) -> None: + """Kotlin constructor: androidx.compose.ui.graphics.vector.VectorApplier (androidx.compose.ui.graphics.vector.VectorApplier(root: androidx.compose.ui.graphics.vector.VNode): androidx.compose.ui.graphics.vector.VectorApplier)""" + ... + +class VectorGroup: + """Kotlin: androidx.compose.ui.graphics.vector.VectorGroup""" + @property + def name(self) -> str: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.name (androidx.compose.ui.graphics.vector.VectorGroup.name: kotlin.String)""" + ... + @property + def pivot_x(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.pivotX (androidx.compose.ui.graphics.vector.VectorGroup.pivotX: kotlin.Float)""" + ... + @property + def pivot_y(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.pivotY (androidx.compose.ui.graphics.vector.VectorGroup.pivotY: kotlin.Float)""" + ... + @property + def rotation(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.rotation (androidx.compose.ui.graphics.vector.VectorGroup.rotation: kotlin.Float)""" + ... + @property + def scale_x(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.scaleX (androidx.compose.ui.graphics.vector.VectorGroup.scaleX: kotlin.Float)""" + ... + @property + def scale_y(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.scaleY (androidx.compose.ui.graphics.vector.VectorGroup.scaleY: kotlin.Float)""" + ... + @property + def size(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.size (androidx.compose.ui.graphics.vector.VectorGroup.size: kotlin.Int)""" + ... + @property + def translation_x(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.translationX (androidx.compose.ui.graphics.vector.VectorGroup.translationX: kotlin.Float)""" + ... + @property + def translation_y(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorGroup.translationY (androidx.compose.ui.graphics.vector.VectorGroup.translationY: kotlin.Float)""" + ... + +class VectorPainter(_t.Any): + """Kotlin: androidx.compose.ui.graphics.vector.VectorPainter""" + @property + def intrinsic_size(self) -> int: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPainter.intrinsicSize (androidx.compose.ui.graphics.vector.VectorPainter.intrinsicSize: androidx.compose.ui.geometry.Size)""" + ... + +class VectorPath: + """Kotlin: androidx.compose.ui.graphics.vector.VectorPath""" + @property + def fill(self) -> pythonx.compose.ui.graphics.Brush | None: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.fill (androidx.compose.ui.graphics.vector.VectorPath.fill: androidx.compose.ui.graphics.Brush?)""" + ... + @property + def fill_alpha(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.fillAlpha (androidx.compose.ui.graphics.vector.VectorPath.fillAlpha: kotlin.Float)""" + ... + @property + def name(self) -> str: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.name (androidx.compose.ui.graphics.vector.VectorPath.name: kotlin.String)""" + ... + @property + def path_fill_type(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.pathFillType (androidx.compose.ui.graphics.vector.VectorPath.pathFillType: androidx.compose.ui.graphics.PathFillType)""" + ... + @property + def stroke(self) -> pythonx.compose.ui.graphics.Brush | None: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.stroke (androidx.compose.ui.graphics.vector.VectorPath.stroke: androidx.compose.ui.graphics.Brush?)""" + ... + @property + def stroke_alpha(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.strokeAlpha (androidx.compose.ui.graphics.vector.VectorPath.strokeAlpha: kotlin.Float)""" + ... + @property + def stroke_line_cap(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.strokeLineCap (androidx.compose.ui.graphics.vector.VectorPath.strokeLineCap: androidx.compose.ui.graphics.StrokeCap)""" + ... + @property + def stroke_line_join(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.strokeLineJoin (androidx.compose.ui.graphics.vector.VectorPath.strokeLineJoin: androidx.compose.ui.graphics.StrokeJoin)""" + ... + @property + def stroke_line_miter(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.strokeLineMiter (androidx.compose.ui.graphics.vector.VectorPath.strokeLineMiter: kotlin.Float)""" + ... + @property + def stroke_line_width(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.strokeLineWidth (androidx.compose.ui.graphics.vector.VectorPath.strokeLineWidth: kotlin.Float)""" + ... + @property + def trim_path_end(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.trimPathEnd (androidx.compose.ui.graphics.vector.VectorPath.trimPathEnd: kotlin.Float)""" + ... + @property + def trim_path_offset(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.trimPathOffset (androidx.compose.ui.graphics.vector.VectorPath.trimPathOffset: kotlin.Float)""" + ... + @property + def trim_path_start(self) -> float: + """Kotlin property: androidx.compose.ui.graphics.vector.VectorPath.trimPathStart (androidx.compose.ui.graphics.vector.VectorPath.trimPathStart: kotlin.Float)""" + ... + +def Group(name: str = ..., rotation: float = ..., pivot_x: float = ..., pivot_y: float = ..., scale_x: float = ..., scale_y: float = ..., translation_x: float = ..., translation_y: float = ..., clip_path_data: _t.Any = ..., *, content: _t.Callable[[], None]) -> None: + """Kotlin: androidx.compose.ui.graphics.vector.Group(name: kotlin.String, rotation: kotlin.Float, pivotX: kotlin.Float, pivotY: kotlin.Float, scaleX: kotlin.Float, scaleY: kotlin.Float, translationX: kotlin.Float, translationY: kotlin.Float, clipPathData: kotlin.collections.List, content: kotlin.Function0): kotlin.Unit""" + ... + +def Path(path_data: _t.Any, path_fill_type: _t.Any = ..., name: str = ..., fill: pythonx.compose.ui.graphics.Brush | None = ..., fill_alpha: float = ..., stroke: pythonx.compose.ui.graphics.Brush | None = ..., stroke_alpha: float = ..., stroke_line_width: float = ..., stroke_line_cap: _t.Any = ..., stroke_line_join: _t.Any = ..., stroke_line_miter: float = ..., trim_path_start: float = ..., trim_path_end: float = ..., trim_path_offset: float = ...) -> None: + """Kotlin: androidx.compose.ui.graphics.vector.Path(pathData: kotlin.collections.List, pathFillType: androidx.compose.ui.graphics.PathFillType, name: kotlin.String, fill: androidx.compose.ui.graphics.Brush?, fillAlpha: kotlin.Float, stroke: androidx.compose.ui.graphics.Brush?, strokeAlpha: kotlin.Float, strokeLineWidth: kotlin.Float, strokeLineCap: androidx.compose.ui.graphics.StrokeCap, strokeLineJoin: androidx.compose.ui.graphics.StrokeJoin, strokeLineMiter: kotlin.Float, trimPathStart: kotlin.Float, trimPathEnd: kotlin.Float, trimPathOffset: kotlin.Float): kotlin.Unit""" + ... + +def RenderVectorGroup(group: VectorGroup, configs: _t.Any = ...) -> None: + """Kotlin: androidx.compose.ui.graphics.vector.RenderVectorGroup(group: androidx.compose.ui.graphics.vector.VectorGroup, configs: kotlin.collections.Map): kotlin.Unit""" + ... + +def path(receiver: ImageVector.Builder, /, name: str, fill: pythonx.compose.ui.graphics.Brush | None, fill_alpha: float, stroke: pythonx.compose.ui.graphics.Brush | None, stroke_alpha: float, stroke_line_width: float, stroke_line_cap: _t.Any, stroke_line_join: _t.Any, stroke_line_miter: float, path_fill_type: _t.Any, path_builder: _t.Callable[[PathBuilder], None]) -> ImageVector.Builder: + """Kotlin: androidx.compose.ui.graphics.vector.ImageVector.Builder.path(name: kotlin.String, fill: androidx.compose.ui.graphics.Brush?, fillAlpha: kotlin.Float, stroke: androidx.compose.ui.graphics.Brush?, strokeAlpha: kotlin.Float, strokeLineWidth: kotlin.Float, strokeLineCap: androidx.compose.ui.graphics.StrokeCap, strokeLineJoin: androidx.compose.ui.graphics.StrokeJoin, strokeLineMiter: kotlin.Float, pathFillType: androidx.compose.ui.graphics.PathFillType, pathBuilder: kotlin.Function1): androidx.compose.ui.graphics.vector.ImageVector.Builder""" + ... + +def remember_vector_painter__Dp_Dp_Float_Float_String_Color_BlendMode_Boolean_Unit(default_width: float, default_height: float, viewport_width: float = ..., viewport_height: float = ..., name: str = ..., tint_color: _t.Any = ..., tint_blend_mode: _t.Any = ..., auto_mirror: bool = ..., *, content: _t.Callable[[float, float], None]) -> VectorPainter: + """Kotlin: androidx.compose.ui.graphics.vector.rememberVectorPainter(defaultWidth: androidx.compose.ui.unit.Dp, defaultHeight: androidx.compose.ui.unit.Dp, viewportWidth: kotlin.Float, viewportHeight: kotlin.Float, name: kotlin.String, tintColor: androidx.compose.ui.graphics.Color, tintBlendMode: androidx.compose.ui.graphics.BlendMode, autoMirror: kotlin.Boolean, content: kotlin.Function2): androidx.compose.ui.graphics.vector.VectorPainter""" + ... + +def remember_vector_painter__Dp_Dp_Float_Float_String_Color_BlendMode_Unit(default_width: float, default_height: float, viewport_width: float = ..., viewport_height: float = ..., name: str = ..., tint_color: _t.Any = ..., tint_blend_mode: _t.Any = ..., *, content: _t.Callable[[float, float], None]) -> VectorPainter: + """Kotlin: androidx.compose.ui.graphics.vector.rememberVectorPainter(defaultWidth: androidx.compose.ui.unit.Dp, defaultHeight: androidx.compose.ui.unit.Dp, viewportWidth: kotlin.Float, viewportHeight: kotlin.Float, name: kotlin.String, tintColor: androidx.compose.ui.graphics.Color, tintBlendMode: androidx.compose.ui.graphics.BlendMode, content: kotlin.Function2): androidx.compose.ui.graphics.vector.VectorPainter""" + ... + +def remember_vector_painter__ImageVector(image: ImageVector) -> VectorPainter: + """Kotlin: androidx.compose.ui.graphics.vector.rememberVectorPainter(image: androidx.compose.ui.graphics.vector.ImageVector): androidx.compose.ui.graphics.vector.VectorPainter""" + ... + +@_t.overload +def remember_vector_painter(default_width: float, default_height: float, viewport_width: float = ..., viewport_height: float = ..., name: str = ..., tint_color: _t.Any = ..., tint_blend_mode: _t.Any = ..., auto_mirror: bool = ..., *, content: _t.Callable[[float, float], None]) -> VectorPainter: ... +@_t.overload +def remember_vector_painter(default_width: float, default_height: float, viewport_width: float = ..., viewport_height: float = ..., name: str = ..., tint_color: _t.Any = ..., tint_blend_mode: _t.Any = ..., *, content: _t.Callable[[float, float], None]) -> VectorPainter: ... # type: ignore[overload-cannot-match] +@_t.overload +def remember_vector_painter(image: ImageVector) -> VectorPainter: ... # type: ignore[overload-cannot-match] diff --git a/pythonx/compose/ui/modifier.py b/pythonx/compose/ui/modifier.py index 3b6c335..a551e7c 100644 --- a/pythonx/compose/ui/modifier.py +++ b/pythonx/compose/ui/modifier.py @@ -1,67 +1,110 @@ -from androidx.compose.material3 import ButtonKt - - -__COMPILED_CODE__ = None -Unit = None - -class Modifier: - __padding = None - __fill_max_size = None - - - def padding(self) -> "Modifier": - def find_composable(self): - super().__init__() - - if self.__padding is None: - try: - self.__padding = ButtonKt.Button - except Exception: - for name, obj in ButtonKt.__dict__.items(): - if name.startswith("Button-"): - self.__padding = obj - break - - if not self.__padding: - raise Exception("Button is cannot be found") - - - def compose( - self, - on_click, - modifier=__COMPILED_CODE__, - enabled=__COMPILED_CODE__, - shape=__COMPILED_CODE__, - colors=__COMPILED_CODE__, - elevation=__COMPILED_CODE__, - border=__COMPILED_CODE__, - content_padding=__COMPILED_CODE__, - interaction_source=__COMPILED_CODE__, - content=__COMPILED_CODE__ - ): - kwargs = { key: value for key, value in dict( - modifier=modifier, - enabled=enabled, - shape=shape, - colors=colors, - elevation=elevation, - border=border, - contentPadding=content_padding, - interactionSource=interaction_source, - content=content - ) if value is not __COMPILED_CODE__ } - - if self.__kotlin_composable is None: - self.find_composable() - - self.__kotlin_composable( - onClick=on_click, - **kwargs, - c=self.composer, - changed=1 - ) - - return self.__padding() - - def fill_max_size(self): - return self \ No newline at end of file +"""Where a `Modifier` chain starts -- and the only thing about `Modifier` that is hand-written. + +## What used to be here + +A copy of the Button wrapper. `padding()` composed nothing, `fill_max_size()` returned `self`, and +lines 20-22 searched `ButtonKt.__dict__` for a name beginning `"Button-"` -- a prefix search over +Kotlin's value-class mangling suffix. That search is not merely broken, it is *impossible*: the +suffix hashes the value-class signature only, so `padding`, `size`, `width` and `height` all mangle +to `-3ABfNKs` and a name lookup cannot tell them apart. Looking a Kotlin declaration up by JVM name +is a removed option (`agent-rules.md` §12); the binder generates Kotlin source and lets `kotlinc` +mangle it. + +## What replaced it, and where that lives + +Not here. `Modifier` is an ordinary proxy the binder builds from the upcall table and serves as +`androidx.compose.ui.Modifier`; `pythonx.compose.ui.Modifier` is that same class, re-exported by +the naming rule in `pythonx/compose/_reexport.py`. +Every one of its methods is a `Modifier` extension the artefact walker bound out of Compose's own +jars -- 104 of them at last count (`docs/kotlin-extensions-in-python.md` §3.2) -- and each is +attached to the proxy type on first read and never resolved again. So: + + Modifier.padding(16).size(24) # chained, with zero hand-written wrappers + padding(m, horizontal=8, vertical=4) # dispatched among four `padding` overloads + +None of that is per-declaration Python, which is exactly why none of it is a file +(`docs/pythonx-adapter-design.md` §7). **If this file ever grows a `def padding`, the 2024 mistake +has been made again.** + +## What is left, and why it cannot be derived + +One fact, and it is data rather than code: **the name of a Kotlin function that returns an empty +`Modifier`.** + +`Modifier` as a Kotlin *expression* is `Modifier.Companion`, an object instance, and the artefact +walker binds functions. So the empty modifier every chain starts from has **no bound name**, and the +adaptation layer refuses to invent one -- `Modifier.padding(16)` raises a `TypeError` naming +`register_empty` rather than guessing. Registering that name is the seam, and this file is it. + +**No such function exists in Compose today.** `androidx.compose.ui.emptyModifier` is the name +`ComposeShapedFragment` uses for the fixture, and it is a placeholder: against the real jars nothing +is bound under it, so the class-object spelling does not yet work and only the instance spelling +(`m.padding(16)`, on a `Modifier` Kotlin handed out) does. Closing that needs one line of Kotlin in +the consuming application -- `fun emptyModifier(): Modifier = Modifier`, picked up by KSP -- and +[install] is where its name is supplied. + +## How this module is reached + +As `pythonx.compose.ui.modifier`, an ordinary module of this package. It needs the binder's layer +(`python_multiplatform.binding`) to be installed by the host before [install] can do anything. +""" + +from __future__ import annotations + +import importlib +import sys + +BINDING_MODULE = "python_multiplatform.binding" + +KOTLIN_PACKAGE = "androidx.compose.ui" + +KOTLIN_TYPE = KOTLIN_PACKAGE + ".Modifier" +"""The Kotlin type the proxy stands for. The walker reports it as `receiverTypeName`.""" + +PLACEHOLDER_EMPTY_FACTORY = "androidx.compose.ui.emptyModifier" +"""A name that is **not** bound by Compose. See the module docstring; supply your own to [install].""" + + +def adapter(): + """The binder's installed binding layer, or a `RuntimeError` that says what did not happen. + + The Kotlin host installs it (`PythonxAdapter.install()`), not an import, so its absence means + the host never ran it -- a different failure from a missing package, with a different message. + """ + module = sys.modules.get(BINDING_MODULE) + if module is None or not hasattr(module, "register_empty"): + raise RuntimeError( + "the python-multiplatform binding layer is not installed: the Kotlin host must run " + "PythonxAdapter.install() before anything here can resolve a Modifier" + ) + return module + + +def modifier_type(layer=None): + """The `Modifier` proxy class -- the same object `pythonx.compose.ui.Modifier` is.""" + if layer is None: + adapter() + # Through this package's own module, so the manifest's value-class allowlist is in force. + return importlib.import_module("pythonx.compose.ui").Modifier + + +def install(empty_factory=PLACEHOLDER_EMPTY_FACTORY, layer=None): + """Register where an empty `Modifier` comes from, and return the proxy class. + + :param empty_factory: the fully-qualified Kotlin name of a zero-argument function returning + `Modifier`. Must be bound in the upcall table; nothing in Compose is, so this is normally a + one-line function in the consuming application's own Kotlin. + :param layer: the adaptation layer, for tests that hold one directly. + """ + layer = layer or adapter() + layer.register_empty(KOTLIN_TYPE, empty_factory) + return modifier_type(layer) + + +def __getattr__(name): + # `Modifier` is resolved rather than defined, so that this module cannot hold a stale class + # across a table reinstall -- `_register_table` invalidates every proxy, and a module-level + # binding made at import time would outlive that. + if name == "Modifier": + return modifier_type() + raise AttributeError(name) diff --git a/pythonx/compose/ui/text/__init__.py b/pythonx/compose/ui/text/__init__.py new file mode 100644 index 0000000..2cc495b --- /dev/null +++ b/pythonx/compose/ui/text/__init__.py @@ -0,0 +1,5 @@ +"""`pythonx.compose.ui.text` -- the Pythonic view of `androidx.compose.ui.text` (see `pythonx/compose/_reexport.py`).""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/ui/text/__init__.pyi b/pythonx/compose/ui/text/__init__.pyi new file mode 100644 index 0000000..6044f24 --- /dev/null +++ b/pythonx/compose/ui/text/__init__.pyi @@ -0,0 +1,703 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t +import pythonx.compose.ui.graphics +import pythonx.compose.ui.unit + +class LinkAnnotation: + """Kotlin: androidx.compose.ui.text.LinkAnnotation""" + @property + def link_interaction_listener(self) -> LinkInteractionListener | None: + """Kotlin property: androidx.compose.ui.text.LinkAnnotation.linkInteractionListener (androidx.compose.ui.text.LinkAnnotation.linkInteractionListener: androidx.compose.ui.text.LinkInteractionListener?)""" + ... + @property + def styles(self) -> TextLinkStyles | None: + """Kotlin property: androidx.compose.ui.text.LinkAnnotation.styles (androidx.compose.ui.text.LinkAnnotation.styles: androidx.compose.ui.text.TextLinkStyles?)""" + ... + +class LinkInteractionListener: + """Kotlin: androidx.compose.ui.text.LinkInteractionListener""" + +class MultiParagraph: + """Kotlin: androidx.compose.ui.text.MultiParagraph""" + @_t.overload + def __init__(self, intrinsics: MultiParagraphIntrinsics, constraints: int, maxLines: int = ..., overflow: _t.Any = ...) -> None: ... + @_t.overload + def __init__(self, intrinsics: MultiParagraphIntrinsics, maxLines: int = ..., ellipsis: bool = ..., *, width: float) -> None: ... # type: ignore[overload-cannot-match] + @property + def did_exceed_max_lines(self) -> bool: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.didExceedMaxLines (androidx.compose.ui.text.MultiParagraph.didExceedMaxLines: kotlin.Boolean)""" + ... + @property + def first_baseline(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.firstBaseline (androidx.compose.ui.text.MultiParagraph.firstBaseline: kotlin.Float)""" + ... + @property + def height(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.height (androidx.compose.ui.text.MultiParagraph.height: kotlin.Float)""" + ... + @property + def intrinsics(self) -> MultiParagraphIntrinsics: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.intrinsics (androidx.compose.ui.text.MultiParagraph.intrinsics: androidx.compose.ui.text.MultiParagraphIntrinsics)""" + ... + @property + def last_baseline(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.lastBaseline (androidx.compose.ui.text.MultiParagraph.lastBaseline: kotlin.Float)""" + ... + @property + def line_count(self) -> int: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.lineCount (androidx.compose.ui.text.MultiParagraph.lineCount: kotlin.Int)""" + ... + @property + def max_intrinsic_width(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.maxIntrinsicWidth (androidx.compose.ui.text.MultiParagraph.maxIntrinsicWidth: kotlin.Float)""" + ... + @property + def max_lines(self) -> int: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.maxLines (androidx.compose.ui.text.MultiParagraph.maxLines: kotlin.Int)""" + ... + @property + def min_intrinsic_width(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.minIntrinsicWidth (androidx.compose.ui.text.MultiParagraph.minIntrinsicWidth: kotlin.Float)""" + ... + @property + def width(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraph.width (androidx.compose.ui.text.MultiParagraph.width: kotlin.Float)""" + ... + +class MultiParagraphIntrinsics: + """Kotlin: androidx.compose.ui.text.MultiParagraphIntrinsics""" + @property + def annotated_string(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.MultiParagraphIntrinsics.annotatedString (androidx.compose.ui.text.MultiParagraphIntrinsics.annotatedString: androidx.compose.ui.text.AnnotatedString)""" + ... + @property + def has_stale_resolved_fonts(self) -> bool: + """Kotlin property: androidx.compose.ui.text.MultiParagraphIntrinsics.hasStaleResolvedFonts (androidx.compose.ui.text.MultiParagraphIntrinsics.hasStaleResolvedFonts: kotlin.Boolean)""" + ... + @property + def max_intrinsic_width(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraphIntrinsics.maxIntrinsicWidth (androidx.compose.ui.text.MultiParagraphIntrinsics.maxIntrinsicWidth: kotlin.Float)""" + ... + @property + def min_intrinsic_width(self) -> float: + """Kotlin property: androidx.compose.ui.text.MultiParagraphIntrinsics.minIntrinsicWidth (androidx.compose.ui.text.MultiParagraphIntrinsics.minIntrinsicWidth: kotlin.Float)""" + ... + +class ParagraphIntrinsics: + """Kotlin: androidx.compose.ui.text.ParagraphIntrinsics""" + @property + def has_stale_resolved_fonts(self) -> bool: + """Kotlin property: androidx.compose.ui.text.ParagraphIntrinsics.hasStaleResolvedFonts (androidx.compose.ui.text.ParagraphIntrinsics.hasStaleResolvedFonts: kotlin.Boolean)""" + ... + @property + def max_intrinsic_width(self) -> float: + """Kotlin property: androidx.compose.ui.text.ParagraphIntrinsics.maxIntrinsicWidth (androidx.compose.ui.text.ParagraphIntrinsics.maxIntrinsicWidth: kotlin.Float)""" + ... + @property + def min_intrinsic_width(self) -> float: + """Kotlin property: androidx.compose.ui.text.ParagraphIntrinsics.minIntrinsicWidth (androidx.compose.ui.text.ParagraphIntrinsics.minIntrinsicWidth: kotlin.Float)""" + ... + +class ParagraphStyle: + """Kotlin: androidx.compose.ui.text.ParagraphStyle""" + def __init__(self, textAlign: _t.Any, textDirection: _t.Any, lineHeight: _t.Any, textIndent: _t.Any | None, platformStyle: _t.Any | None, lineHeightStyle: _t.Any | None, lineBreak: _t.Any, hyphens: _t.Any, textMotion: _t.Any | None) -> None: + """Kotlin constructor: androidx.compose.ui.text.ParagraphStyle (androidx.compose.ui.text.ParagraphStyle(textAlign: androidx.compose.ui.text.style.TextAlign, textDirection: androidx.compose.ui.text.style.TextDirection, lineHeight: androidx.compose.ui.unit.TextUnit, textIndent: androidx.compose.ui.text.style.TextIndent?, platformStyle: androidx.compose.ui.text.PlatformParagraphStyle?, lineHeightStyle: androidx.compose.ui.text.style.LineHeightStyle?, lineBreak: androidx.compose.ui.text.style.LineBreak, hyphens: androidx.compose.ui.text.style.Hyphens, textMotion: androidx.compose.ui.text.style.TextMotion?): androidx.compose.ui.text.ParagraphStyle)""" + ... + @property + def deprecated_boxing_hyphens(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_hyphens (androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_hyphens: androidx.compose.ui.text.style.Hyphens?)""" + ... + @property + def deprecated_boxing_line_break(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_lineBreak (androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_lineBreak: androidx.compose.ui.text.style.LineBreak?)""" + ... + @property + def deprecated_boxing_text_align(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_textAlign (androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_textAlign: androidx.compose.ui.text.style.TextAlign?)""" + ... + @property + def deprecated_boxing_text_direction(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_textDirection (androidx.compose.ui.text.ParagraphStyle.deprecated_boxing_textDirection: androidx.compose.ui.text.style.TextDirection?)""" + ... + @property + def hyphens(self) -> int: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.hyphens (androidx.compose.ui.text.ParagraphStyle.hyphens: androidx.compose.ui.text.style.Hyphens)""" + ... + @property + def line_break(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.lineBreak (androidx.compose.ui.text.ParagraphStyle.lineBreak: androidx.compose.ui.text.style.LineBreak)""" + ... + @property + def line_height(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.lineHeight (androidx.compose.ui.text.ParagraphStyle.lineHeight: androidx.compose.ui.unit.TextUnit)""" + ... + @property + def line_height_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.lineHeightStyle (androidx.compose.ui.text.ParagraphStyle.lineHeightStyle: androidx.compose.ui.text.style.LineHeightStyle?)""" + ... + @property + def platform_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.platformStyle (androidx.compose.ui.text.ParagraphStyle.platformStyle: androidx.compose.ui.text.PlatformParagraphStyle?)""" + ... + @property + def text_align(self) -> int: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.textAlign (androidx.compose.ui.text.ParagraphStyle.textAlign: androidx.compose.ui.text.style.TextAlign)""" + ... + @property + def text_direction(self) -> int: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.textDirection (androidx.compose.ui.text.ParagraphStyle.textDirection: androidx.compose.ui.text.style.TextDirection)""" + ... + @property + def text_indent(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.textIndent (androidx.compose.ui.text.ParagraphStyle.textIndent: androidx.compose.ui.text.style.TextIndent?)""" + ... + @property + def text_motion(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.ParagraphStyle.textMotion (androidx.compose.ui.text.ParagraphStyle.textMotion: androidx.compose.ui.text.style.TextMotion?)""" + ... + +class Placeholder: + """Kotlin: androidx.compose.ui.text.Placeholder""" + def __init__(self, width: _t.Any, height: _t.Any, placeholderVerticalAlign: _t.Any) -> None: + """Kotlin constructor: androidx.compose.ui.text.Placeholder (androidx.compose.ui.text.Placeholder(width: androidx.compose.ui.unit.TextUnit, height: androidx.compose.ui.unit.TextUnit, placeholderVerticalAlign: androidx.compose.ui.text.PlaceholderVerticalAlign): androidx.compose.ui.text.Placeholder)""" + ... + @property + def height(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.Placeholder.height (androidx.compose.ui.text.Placeholder.height: androidx.compose.ui.unit.TextUnit)""" + ... + @property + def placeholder_vertical_align(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.Placeholder.placeholderVerticalAlign (androidx.compose.ui.text.Placeholder.placeholderVerticalAlign: androidx.compose.ui.text.PlaceholderVerticalAlign)""" + ... + @property + def width(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.Placeholder.width (androidx.compose.ui.text.Placeholder.width: androidx.compose.ui.unit.TextUnit)""" + ... + +class PlatformTextStyle: + """Kotlin: androidx.compose.ui.text.PlatformTextStyle""" + @_t.overload + def __init__(self, spanStyle: _t.Any | None, paragraphStyle: _t.Any | None) -> None: ... + @_t.overload + def __init__(self, textDecorationLineStyle: _t.Any | None) -> None: ... # type: ignore[overload-cannot-match] + @property + def paragraph_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.PlatformTextStyle.paragraphStyle (androidx.compose.ui.text.PlatformTextStyle.paragraphStyle: androidx.compose.ui.text.PlatformParagraphStyle?)""" + ... + @property + def span_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.PlatformTextStyle.spanStyle (androidx.compose.ui.text.PlatformTextStyle.spanStyle: androidx.compose.ui.text.PlatformSpanStyle?)""" + ... + +class SpanStyle: + """Kotlin: androidx.compose.ui.text.SpanStyle""" + @_t.overload + def __init__(self, brush: pythonx.compose.ui.graphics.Brush | None, alpha: float, fontSize: _t.Any, fontWeight: _t.Any | None, fontStyle: _t.Any | None, fontSynthesis: _t.Any | None, fontFamily: _t.Any | None, fontFeatureSettings: str | None, letterSpacing: _t.Any, baselineShift: _t.Any | None, textGeometricTransform: _t.Any | None, localeList: _t.Any | None, background: _t.Any, textDecoration: _t.Any | None, shadow: pythonx.compose.ui.graphics.Shadow | None, platformStyle: _t.Any | None, drawStyle: _t.Any | None) -> None: ... + @_t.overload + def __init__(self, color: _t.Any, fontSize: _t.Any, fontWeight: _t.Any | None, fontStyle: _t.Any | None, fontSynthesis: _t.Any | None, fontFamily: _t.Any | None, fontFeatureSettings: str | None, letterSpacing: _t.Any, baselineShift: _t.Any | None, textGeometricTransform: _t.Any | None, localeList: _t.Any | None, background: _t.Any, textDecoration: _t.Any | None, shadow: pythonx.compose.ui.graphics.Shadow | None, platformStyle: _t.Any | None, drawStyle: _t.Any | None) -> None: ... # type: ignore[overload-cannot-match] + @property + def alpha(self) -> float: + """Kotlin property: androidx.compose.ui.text.SpanStyle.alpha (androidx.compose.ui.text.SpanStyle.alpha: kotlin.Float)""" + ... + @property + def background(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.SpanStyle.background (androidx.compose.ui.text.SpanStyle.background: androidx.compose.ui.graphics.Color)""" + ... + @property + def baseline_shift(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.baselineShift (androidx.compose.ui.text.SpanStyle.baselineShift: androidx.compose.ui.text.style.BaselineShift?)""" + ... + @property + def brush(self) -> pythonx.compose.ui.graphics.Brush | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.brush (androidx.compose.ui.text.SpanStyle.brush: androidx.compose.ui.graphics.Brush?)""" + ... + @property + def color(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.SpanStyle.color (androidx.compose.ui.text.SpanStyle.color: androidx.compose.ui.graphics.Color)""" + ... + @property + def draw_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.drawStyle (androidx.compose.ui.text.SpanStyle.drawStyle: androidx.compose.ui.graphics.drawscope.DrawStyle?)""" + ... + @property + def font_family(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.fontFamily (androidx.compose.ui.text.SpanStyle.fontFamily: androidx.compose.ui.text.font.FontFamily?)""" + ... + @property + def font_feature_settings(self) -> str | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.fontFeatureSettings (androidx.compose.ui.text.SpanStyle.fontFeatureSettings: kotlin.String?)""" + ... + @property + def font_size(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.SpanStyle.fontSize (androidx.compose.ui.text.SpanStyle.fontSize: androidx.compose.ui.unit.TextUnit)""" + ... + @property + def font_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.fontStyle (androidx.compose.ui.text.SpanStyle.fontStyle: androidx.compose.ui.text.font.FontStyle?)""" + ... + @property + def font_synthesis(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.fontSynthesis (androidx.compose.ui.text.SpanStyle.fontSynthesis: androidx.compose.ui.text.font.FontSynthesis?)""" + ... + @property + def font_weight(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.fontWeight (androidx.compose.ui.text.SpanStyle.fontWeight: androidx.compose.ui.text.font.FontWeight?)""" + ... + @property + def letter_spacing(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.SpanStyle.letterSpacing (androidx.compose.ui.text.SpanStyle.letterSpacing: androidx.compose.ui.unit.TextUnit)""" + ... + @property + def locale_list(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.localeList (androidx.compose.ui.text.SpanStyle.localeList: androidx.compose.ui.text.intl.LocaleList?)""" + ... + @property + def platform_style(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.platformStyle (androidx.compose.ui.text.SpanStyle.platformStyle: androidx.compose.ui.text.PlatformSpanStyle?)""" + ... + @property + def shadow(self) -> pythonx.compose.ui.graphics.Shadow | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.shadow (androidx.compose.ui.text.SpanStyle.shadow: androidx.compose.ui.graphics.Shadow?)""" + ... + @property + def text_decoration(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.textDecoration (androidx.compose.ui.text.SpanStyle.textDecoration: androidx.compose.ui.text.style.TextDecoration?)""" + ... + @property + def text_geometric_transform(self) -> _t.Any | None: + """Kotlin property: androidx.compose.ui.text.SpanStyle.textGeometricTransform (androidx.compose.ui.text.SpanStyle.textGeometricTransform: androidx.compose.ui.text.style.TextGeometricTransform?)""" + ... + +class TextLayoutInput: + """Kotlin: androidx.compose.ui.text.TextLayoutInput""" + @property + def constraints(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.constraints (androidx.compose.ui.text.TextLayoutInput.constraints: androidx.compose.ui.unit.Constraints)""" + ... + @property + def density(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.density (androidx.compose.ui.text.TextLayoutInput.density: androidx.compose.ui.unit.Density)""" + ... + @property + def font_family_resolver(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.fontFamilyResolver (androidx.compose.ui.text.TextLayoutInput.fontFamilyResolver: androidx.compose.ui.text.font.FontFamily.Resolver)""" + ... + @property + def layout_direction(self) -> pythonx.compose.ui.unit.LayoutDirection: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.layoutDirection (androidx.compose.ui.text.TextLayoutInput.layoutDirection: androidx.compose.ui.unit.LayoutDirection)""" + ... + @property + def max_lines(self) -> int: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.maxLines (androidx.compose.ui.text.TextLayoutInput.maxLines: kotlin.Int)""" + ... + @property + def overflow(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.overflow (androidx.compose.ui.text.TextLayoutInput.overflow: androidx.compose.ui.text.style.TextOverflow)""" + ... + @property + def resource_loader(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.resourceLoader (androidx.compose.ui.text.TextLayoutInput.resourceLoader: androidx.compose.ui.text.font.Font.ResourceLoader)""" + ... + @property + def soft_wrap(self) -> bool: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.softWrap (androidx.compose.ui.text.TextLayoutInput.softWrap: kotlin.Boolean)""" + ... + @property + def style(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.style (androidx.compose.ui.text.TextLayoutInput.style: androidx.compose.ui.text.TextStyle)""" + ... + @property + def text(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.text.TextLayoutInput.text (androidx.compose.ui.text.TextLayoutInput.text: androidx.compose.ui.text.AnnotatedString)""" + ... + +class TextLayoutResult: + """Kotlin: androidx.compose.ui.text.TextLayoutResult""" + def __init__(self, layoutInput: TextLayoutInput, multiParagraph: MultiParagraph, size: _t.Any) -> None: + """Kotlin constructor: androidx.compose.ui.text.TextLayoutResult (androidx.compose.ui.text.TextLayoutResult(layoutInput: androidx.compose.ui.text.TextLayoutInput, multiParagraph: androidx.compose.ui.text.MultiParagraph, size: androidx.compose.ui.unit.IntSize): androidx.compose.ui.text.TextLayoutResult)""" + ... + @property + def did_overflow_height(self) -> bool: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.didOverflowHeight (androidx.compose.ui.text.TextLayoutResult.didOverflowHeight: kotlin.Boolean)""" + ... + @property + def did_overflow_width(self) -> bool: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.didOverflowWidth (androidx.compose.ui.text.TextLayoutResult.didOverflowWidth: kotlin.Boolean)""" + ... + @property + def first_baseline(self) -> float: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.firstBaseline (androidx.compose.ui.text.TextLayoutResult.firstBaseline: kotlin.Float)""" + ... + @property + def has_visual_overflow(self) -> bool: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.hasVisualOverflow (androidx.compose.ui.text.TextLayoutResult.hasVisualOverflow: kotlin.Boolean)""" + ... + @property + def last_baseline(self) -> float: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.lastBaseline (androidx.compose.ui.text.TextLayoutResult.lastBaseline: kotlin.Float)""" + ... + @property + def layout_input(self) -> TextLayoutInput: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.layoutInput (androidx.compose.ui.text.TextLayoutResult.layoutInput: androidx.compose.ui.text.TextLayoutInput)""" + ... + @property + def line_count(self) -> int: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.lineCount (androidx.compose.ui.text.TextLayoutResult.lineCount: kotlin.Int)""" + ... + @property + def multi_paragraph(self) -> MultiParagraph: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.multiParagraph (androidx.compose.ui.text.TextLayoutResult.multiParagraph: androidx.compose.ui.text.MultiParagraph)""" + ... + @property + def size(self) -> int: + """Kotlin property: androidx.compose.ui.text.TextLayoutResult.size (androidx.compose.ui.text.TextLayoutResult.size: androidx.compose.ui.unit.IntSize)""" + ... + +class TextLinkStyles: + """Kotlin: androidx.compose.ui.text.TextLinkStyles""" + def __init__(self, style: SpanStyle | None = ..., focusedStyle: SpanStyle | None = ..., hoveredStyle: SpanStyle | None = ..., pressedStyle: SpanStyle | None = ...) -> None: + """Kotlin constructor: androidx.compose.ui.text.TextLinkStyles (androidx.compose.ui.text.TextLinkStyles(style: androidx.compose.ui.text.SpanStyle?, focusedStyle: androidx.compose.ui.text.SpanStyle?, hoveredStyle: androidx.compose.ui.text.SpanStyle?, pressedStyle: androidx.compose.ui.text.SpanStyle?): androidx.compose.ui.text.TextLinkStyles)""" + ... + @property + def focused_style(self) -> SpanStyle | None: + """Kotlin property: androidx.compose.ui.text.TextLinkStyles.focusedStyle (androidx.compose.ui.text.TextLinkStyles.focusedStyle: androidx.compose.ui.text.SpanStyle?)""" + ... + @property + def hovered_style(self) -> SpanStyle | None: + """Kotlin property: androidx.compose.ui.text.TextLinkStyles.hoveredStyle (androidx.compose.ui.text.TextLinkStyles.hoveredStyle: androidx.compose.ui.text.SpanStyle?)""" + ... + @property + def pressed_style(self) -> SpanStyle | None: + """Kotlin property: androidx.compose.ui.text.TextLinkStyles.pressedStyle (androidx.compose.ui.text.TextLinkStyles.pressedStyle: androidx.compose.ui.text.SpanStyle?)""" + ... + @property + def style(self) -> SpanStyle | None: + """Kotlin property: androidx.compose.ui.text.TextLinkStyles.style (androidx.compose.ui.text.TextLinkStyles.style: androidx.compose.ui.text.SpanStyle?)""" + ... + +class TextMeasurer: + """Kotlin: androidx.compose.ui.text.TextMeasurer""" + def __init__(self, defaultFontFamilyResolver: _t.Any, defaultDensity: _t.Any, defaultLayoutDirection: pythonx.compose.ui.unit.LayoutDirection, cacheSize: int = ...) -> None: + """Kotlin constructor: androidx.compose.ui.text.TextMeasurer (androidx.compose.ui.text.TextMeasurer(defaultFontFamilyResolver: androidx.compose.ui.text.font.FontFamily.Resolver, defaultDensity: androidx.compose.ui.unit.Density, defaultLayoutDirection: androidx.compose.ui.unit.LayoutDirection, cacheSize: kotlin.Int): androidx.compose.ui.text.TextMeasurer)""" + ... + +class TtsAnnotation: + """Kotlin: androidx.compose.ui.text.TtsAnnotation""" + +class UrlAnnotation: + """Kotlin: androidx.compose.ui.text.UrlAnnotation""" + def __init__(self, url: str) -> None: + """Kotlin constructor: androidx.compose.ui.text.UrlAnnotation (androidx.compose.ui.text.UrlAnnotation(url: kotlin.String): androidx.compose.ui.text.UrlAnnotation)""" + ... + @property + def url(self) -> str: + """Kotlin property: androidx.compose.ui.text.UrlAnnotation.url (androidx.compose.ui.text.UrlAnnotation.url: kotlin.String)""" + ... + +class VerbatimTtsAnnotation(TtsAnnotation): + """Kotlin: androidx.compose.ui.text.VerbatimTtsAnnotation""" + def __init__(self, verbatim: str) -> None: + """Kotlin constructor: androidx.compose.ui.text.VerbatimTtsAnnotation (androidx.compose.ui.text.VerbatimTtsAnnotation(verbatim: kotlin.String): androidx.compose.ui.text.VerbatimTtsAnnotation)""" + ... + @property + def verbatim(self) -> str: + """Kotlin property: androidx.compose.ui.text.VerbatimTtsAnnotation.verbatim (androidx.compose.ui.text.VerbatimTtsAnnotation.verbatim: kotlin.String)""" + ... + +def AnnotatedString__String_ParagraphStyle(text: str, paragraph_style: ParagraphStyle) -> _t.Any: + """Kotlin: androidx.compose.ui.text.AnnotatedString(text: kotlin.String, paragraphStyle: androidx.compose.ui.text.ParagraphStyle): androidx.compose.ui.text.AnnotatedString""" + ... + +def AnnotatedString__String_SpanStyle_ParagraphStyle(text: str, span_style: SpanStyle, paragraph_style: ParagraphStyle | None = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.AnnotatedString(text: kotlin.String, spanStyle: androidx.compose.ui.text.SpanStyle, paragraphStyle: androidx.compose.ui.text.ParagraphStyle?): androidx.compose.ui.text.AnnotatedString""" + ... + +def Paragraph__ParagraphIntrinsics_Constraints_Int_TextOverflow(paragraph_intrinsics: ParagraphIntrinsics, constraints: int, max_lines: int = ..., overflow: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.Paragraph(paragraphIntrinsics: androidx.compose.ui.text.ParagraphIntrinsics, constraints: androidx.compose.ui.unit.Constraints, maxLines: kotlin.Int, overflow: androidx.compose.ui.text.style.TextOverflow): androidx.compose.ui.text.Paragraph""" + ... + +def Paragraph__ParagraphIntrinsics_Int_Boolean_Float(paragraph_intrinsics: ParagraphIntrinsics, max_lines: int = ..., ellipsis: bool = ..., *, width: float) -> _t.Any: + """Kotlin: androidx.compose.ui.text.Paragraph(paragraphIntrinsics: androidx.compose.ui.text.ParagraphIntrinsics, maxLines: kotlin.Int, ellipsis: kotlin.Boolean, width: kotlin.Float): androidx.compose.ui.text.Paragraph""" + ... + +def StringAnnotation(value: str) -> str: + """Kotlin: androidx.compose.ui.text.StringAnnotation(value: kotlin.String): androidx.compose.ui.text.StringAnnotation""" + ... + +def TextRange__Int(index: int) -> _t.Any: + """Kotlin: androidx.compose.ui.text.TextRange(index: kotlin.Int): androidx.compose.ui.text.TextRange""" + ... + +def TextRange__Int_Int(start: int, end: int) -> _t.Any: + """Kotlin: androidx.compose.ui.text.TextRange(start: kotlin.Int, end: kotlin.Int): androidx.compose.ui.text.TextRange""" + ... + +def build_annotated_string(builder: _t.Callable[[_t.Any], None]) -> _t.Any: + """Kotlin: androidx.compose.ui.text.buildAnnotatedString(builder: kotlin.Function1): androidx.compose.ui.text.AnnotatedString""" + ... + +def capitalize__AnnotatedString_LocaleList(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.AnnotatedString.capitalize(localeList: androidx.compose.ui.text.intl.LocaleList): androidx.compose.ui.text.AnnotatedString""" + ... + +def capitalize__String_Locale(receiver: str, /, locale: _t.Any) -> str: + """Kotlin: kotlin.String.capitalize(locale: androidx.compose.ui.text.intl.Locale): kotlin.String""" + ... + +def capitalize__String_LocaleList(receiver: str, /, locale_list: _t.Any) -> str: + """Kotlin: kotlin.String.capitalize(localeList: androidx.compose.ui.text.intl.LocaleList): kotlin.String""" + ... + +def coerce_in(receiver: _t.Any, /, minimum_value: int, maximum_value: int) -> _t.Any: + """Kotlin: androidx.compose.ui.text.TextRange.coerceIn(minimumValue: kotlin.Int, maximumValue: kotlin.Int): androidx.compose.ui.text.TextRange""" + ... + +def decapitalize__AnnotatedString_LocaleList(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.AnnotatedString.decapitalize(localeList: androidx.compose.ui.text.intl.LocaleList): androidx.compose.ui.text.AnnotatedString""" + ... + +def decapitalize__String_Locale(receiver: str, /, locale: _t.Any) -> str: + """Kotlin: kotlin.String.decapitalize(locale: androidx.compose.ui.text.intl.Locale): kotlin.String""" + ... + +def decapitalize__String_LocaleList(receiver: str, /, locale_list: _t.Any) -> str: + """Kotlin: kotlin.String.decapitalize(localeList: androidx.compose.ui.text.intl.LocaleList): kotlin.String""" + ... + +def draw_text__TextLayoutResult_Brush_Offset_Float_Shadow_TextDecoration_DrawStyle_BlendMode(receiver: _t.Any, /, text_layout_result: TextLayoutResult, brush: pythonx.compose.ui.graphics.Brush, top_left: int = ..., alpha: float = ..., shadow: pythonx.compose.ui.graphics.Shadow | None = ..., text_decoration: _t.Any | None = ..., draw_style: _t.Any | None = ..., blend_mode: _t.Any = ...) -> None: + """Kotlin: androidx.compose.ui.graphics.drawscope.DrawScope.drawText(textLayoutResult: androidx.compose.ui.text.TextLayoutResult, brush: androidx.compose.ui.graphics.Brush, topLeft: androidx.compose.ui.geometry.Offset, alpha: kotlin.Float, shadow: androidx.compose.ui.graphics.Shadow?, textDecoration: androidx.compose.ui.text.style.TextDecoration?, drawStyle: androidx.compose.ui.graphics.drawscope.DrawStyle?, blendMode: androidx.compose.ui.graphics.BlendMode): kotlin.Unit""" + ... + +def draw_text__TextLayoutResult_Color_Offset_Float_Shadow_TextDecoration_DrawStyle_BlendMode(receiver: _t.Any, /, text_layout_result: TextLayoutResult, color: _t.Any, top_left: int, alpha: float, shadow: pythonx.compose.ui.graphics.Shadow | None, text_decoration: _t.Any | None, draw_style: _t.Any | None, blend_mode: _t.Any) -> None: + """Kotlin: androidx.compose.ui.graphics.drawscope.DrawScope.drawText(textLayoutResult: androidx.compose.ui.text.TextLayoutResult, color: androidx.compose.ui.graphics.Color, topLeft: androidx.compose.ui.geometry.Offset, alpha: kotlin.Float, shadow: androidx.compose.ui.graphics.Shadow?, textDecoration: androidx.compose.ui.text.style.TextDecoration?, drawStyle: androidx.compose.ui.graphics.drawscope.DrawStyle?, blendMode: androidx.compose.ui.graphics.BlendMode): kotlin.Unit""" + ... + +def draw_text__TextMeasurer_String_Offset_TextStyle_TextOverflow_Boolean_Int_Size_BlendMode(receiver: _t.Any, /, text_measurer: TextMeasurer, text: str, top_left: int, style: _t.Any, overflow: _t.Any, soft_wrap: bool, max_lines: int, size: int, blend_mode: _t.Any) -> None: + """Kotlin: androidx.compose.ui.graphics.drawscope.DrawScope.drawText(textMeasurer: androidx.compose.ui.text.TextMeasurer, text: kotlin.String, topLeft: androidx.compose.ui.geometry.Offset, style: androidx.compose.ui.text.TextStyle, overflow: androidx.compose.ui.text.style.TextOverflow, softWrap: kotlin.Boolean, maxLines: kotlin.Int, size: androidx.compose.ui.geometry.Size, blendMode: androidx.compose.ui.graphics.BlendMode): kotlin.Unit""" + ... + +def lerp__ParagraphStyle_ParagraphStyle_Float(start: ParagraphStyle, stop: ParagraphStyle, fraction: float) -> ParagraphStyle: + """Kotlin: androidx.compose.ui.text.lerp(start: androidx.compose.ui.text.ParagraphStyle, stop: androidx.compose.ui.text.ParagraphStyle, fraction: kotlin.Float): androidx.compose.ui.text.ParagraphStyle""" + ... + +def lerp__PlatformParagraphStyle_PlatformParagraphStyle_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.text.lerp(start: androidx.compose.ui.text.PlatformParagraphStyle, stop: androidx.compose.ui.text.PlatformParagraphStyle, fraction: kotlin.Float): androidx.compose.ui.text.PlatformParagraphStyle""" + ... + +def lerp__PlatformSpanStyle_PlatformSpanStyle_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.text.lerp(start: androidx.compose.ui.text.PlatformSpanStyle, stop: androidx.compose.ui.text.PlatformSpanStyle, fraction: kotlin.Float): androidx.compose.ui.text.PlatformSpanStyle""" + ... + +def lerp__SpanStyle_SpanStyle_Float(start: SpanStyle, stop: SpanStyle, fraction: float) -> SpanStyle: + """Kotlin: androidx.compose.ui.text.lerp(start: androidx.compose.ui.text.SpanStyle, stop: androidx.compose.ui.text.SpanStyle, fraction: kotlin.Float): androidx.compose.ui.text.SpanStyle""" + ... + +def lerp__TextStyle_TextStyle_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.text.lerp(start: androidx.compose.ui.text.TextStyle, stop: androidx.compose.ui.text.TextStyle, fraction: kotlin.Float): androidx.compose.ui.text.TextStyle""" + ... + +def remember_text_measurer(cache_size: int = ...) -> TextMeasurer: + """Kotlin: androidx.compose.ui.text.rememberTextMeasurer(cacheSize: kotlin.Int): androidx.compose.ui.text.TextMeasurer""" + ... + +def resolve_defaults(style: _t.Any, direction: pythonx.compose.ui.unit.LayoutDirection) -> _t.Any: + """Kotlin: androidx.compose.ui.text.resolveDefaults(style: androidx.compose.ui.text.TextStyle, direction: androidx.compose.ui.unit.LayoutDirection): androidx.compose.ui.text.TextStyle""" + ... + +def to_lower_case__AnnotatedString_LocaleList(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.AnnotatedString.toLowerCase(localeList: androidx.compose.ui.text.intl.LocaleList): androidx.compose.ui.text.AnnotatedString""" + ... + +def to_lower_case__String_Locale(receiver: str, /, locale: _t.Any) -> str: + """Kotlin: kotlin.String.toLowerCase(locale: androidx.compose.ui.text.intl.Locale): kotlin.String""" + ... + +def to_lower_case__String_LocaleList(receiver: str, /, locale_list: _t.Any) -> str: + """Kotlin: kotlin.String.toLowerCase(localeList: androidx.compose.ui.text.intl.LocaleList): kotlin.String""" + ... + +def to_upper_case__AnnotatedString_LocaleList(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.AnnotatedString.toUpperCase(localeList: androidx.compose.ui.text.intl.LocaleList): androidx.compose.ui.text.AnnotatedString""" + ... + +def to_upper_case__String_Locale(receiver: str, /, locale: _t.Any) -> str: + """Kotlin: kotlin.String.toUpperCase(locale: androidx.compose.ui.text.intl.Locale): kotlin.String""" + ... + +def to_upper_case__String_LocaleList(receiver: str, /, locale_list: _t.Any) -> str: + """Kotlin: kotlin.String.toUpperCase(localeList: androidx.compose.ui.text.intl.LocaleList): kotlin.String""" + ... + +def MultiParagraph__MultiParagraphIntrinsics_Constraints_Int_TextOverflow(intrinsics: MultiParagraphIntrinsics, constraints: int, max_lines: int = ..., overflow: _t.Any = ...) -> MultiParagraph: + """Kotlin: androidx.compose.ui.text.MultiParagraph(intrinsics: androidx.compose.ui.text.MultiParagraphIntrinsics, constraints: androidx.compose.ui.unit.Constraints, maxLines: kotlin.Int, overflow: androidx.compose.ui.text.style.TextOverflow): androidx.compose.ui.text.MultiParagraph""" + ... + +def MultiParagraph__MultiParagraphIntrinsics_Int_Boolean_Float(intrinsics: MultiParagraphIntrinsics, max_lines: int = ..., ellipsis: bool = ..., *, width: float) -> MultiParagraph: + """Kotlin: androidx.compose.ui.text.MultiParagraph(intrinsics: androidx.compose.ui.text.MultiParagraphIntrinsics, maxLines: kotlin.Int, ellipsis: kotlin.Boolean, width: kotlin.Float): androidx.compose.ui.text.MultiParagraph""" + ... + +def PlatformTextStyle__PlatformSpanStyle_PlatformParagraphStyle(span_style: _t.Any | None, paragraph_style: _t.Any | None) -> PlatformTextStyle: + """Kotlin: androidx.compose.ui.text.PlatformTextStyle(spanStyle: androidx.compose.ui.text.PlatformSpanStyle?, paragraphStyle: androidx.compose.ui.text.PlatformParagraphStyle?): androidx.compose.ui.text.PlatformTextStyle""" + ... + +def PlatformTextStyle__TextDecorationLineStyle(text_decoration_line_style: _t.Any | None) -> PlatformTextStyle: + """Kotlin: androidx.compose.ui.text.PlatformTextStyle(textDecorationLineStyle: androidx.compose.ui.text.TextDecorationLineStyle?): androidx.compose.ui.text.PlatformTextStyle""" + ... + +def SpanStyle__Brush_Float_TextUnit_FontWeight_FontStyle_FontSynthesis_FontFamily_String_TextUnit_BaselineShift_TextGeometricTransform_LocaleList_Color_TextDecoration_Shadow_PlatformSpanStyle_DrawStyle(brush: pythonx.compose.ui.graphics.Brush | None, alpha: float, font_size: _t.Any, font_weight: _t.Any | None, font_style: _t.Any | None, font_synthesis: _t.Any | None, font_family: _t.Any | None, font_feature_settings: str | None, letter_spacing: _t.Any, baseline_shift: _t.Any | None, text_geometric_transform: _t.Any | None, locale_list: _t.Any | None, background: _t.Any, text_decoration: _t.Any | None, shadow: pythonx.compose.ui.graphics.Shadow | None, platform_style: _t.Any | None, draw_style: _t.Any | None) -> SpanStyle: + """Kotlin: androidx.compose.ui.text.SpanStyle(brush: androidx.compose.ui.graphics.Brush?, alpha: kotlin.Float, fontSize: androidx.compose.ui.unit.TextUnit, fontWeight: androidx.compose.ui.text.font.FontWeight?, fontStyle: androidx.compose.ui.text.font.FontStyle?, fontSynthesis: androidx.compose.ui.text.font.FontSynthesis?, fontFamily: androidx.compose.ui.text.font.FontFamily?, fontFeatureSettings: kotlin.String?, letterSpacing: androidx.compose.ui.unit.TextUnit, baselineShift: androidx.compose.ui.text.style.BaselineShift?, textGeometricTransform: androidx.compose.ui.text.style.TextGeometricTransform?, localeList: androidx.compose.ui.text.intl.LocaleList?, background: androidx.compose.ui.graphics.Color, textDecoration: androidx.compose.ui.text.style.TextDecoration?, shadow: androidx.compose.ui.graphics.Shadow?, platformStyle: androidx.compose.ui.text.PlatformSpanStyle?, drawStyle: androidx.compose.ui.graphics.drawscope.DrawStyle?): androidx.compose.ui.text.SpanStyle""" + ... + +def SpanStyle__Color_TextUnit_FontWeight_FontStyle_FontSynthesis_FontFamily_String_TextUnit_BaselineShift_TextGeometricTransform_LocaleList_Color_TextDecoration_Shadow_PlatformSpanStyle_DrawStyle(color: _t.Any, font_size: _t.Any, font_weight: _t.Any | None, font_style: _t.Any | None, font_synthesis: _t.Any | None, font_family: _t.Any | None, font_feature_settings: str | None, letter_spacing: _t.Any, baseline_shift: _t.Any | None, text_geometric_transform: _t.Any | None, locale_list: _t.Any | None, background: _t.Any, text_decoration: _t.Any | None, shadow: pythonx.compose.ui.graphics.Shadow | None, platform_style: _t.Any | None, draw_style: _t.Any | None) -> SpanStyle: + """Kotlin: androidx.compose.ui.text.SpanStyle(color: androidx.compose.ui.graphics.Color, fontSize: androidx.compose.ui.unit.TextUnit, fontWeight: androidx.compose.ui.text.font.FontWeight?, fontStyle: androidx.compose.ui.text.font.FontStyle?, fontSynthesis: androidx.compose.ui.text.font.FontSynthesis?, fontFamily: androidx.compose.ui.text.font.FontFamily?, fontFeatureSettings: kotlin.String?, letterSpacing: androidx.compose.ui.unit.TextUnit, baselineShift: androidx.compose.ui.text.style.BaselineShift?, textGeometricTransform: androidx.compose.ui.text.style.TextGeometricTransform?, localeList: androidx.compose.ui.text.intl.LocaleList?, background: androidx.compose.ui.graphics.Color, textDecoration: androidx.compose.ui.text.style.TextDecoration?, shadow: androidx.compose.ui.graphics.Shadow?, platformStyle: androidx.compose.ui.text.PlatformSpanStyle?, drawStyle: androidx.compose.ui.graphics.drawscope.DrawStyle?): androidx.compose.ui.text.SpanStyle""" + ... + +@_t.overload +def AnnotatedString(text: str, paragraph_style: ParagraphStyle) -> _t.Any: ... +@_t.overload +def AnnotatedString(text: str, span_style: SpanStyle, paragraph_style: ParagraphStyle | None = ...) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def Paragraph(paragraph_intrinsics: ParagraphIntrinsics, constraints: int, max_lines: int = ..., overflow: _t.Any = ...) -> _t.Any: ... +@_t.overload +def Paragraph(paragraph_intrinsics: ParagraphIntrinsics, max_lines: int = ..., ellipsis: bool = ..., *, width: float) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def TextRange(index: int) -> _t.Any: ... +@_t.overload +def TextRange(start: int, end: int) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def capitalize(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: ... +@_t.overload +def capitalize(receiver: str, /, locale: _t.Any) -> str: ... # type: ignore[overload-cannot-match] +@_t.overload +def capitalize(receiver: str, /, locale_list: _t.Any) -> str: ... # type: ignore[overload-cannot-match] + +@_t.overload +def decapitalize(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: ... +@_t.overload +def decapitalize(receiver: str, /, locale: _t.Any) -> str: ... # type: ignore[overload-cannot-match] +@_t.overload +def decapitalize(receiver: str, /, locale_list: _t.Any) -> str: ... # type: ignore[overload-cannot-match] + +@_t.overload +def draw_text(receiver: _t.Any, /, text_layout_result: TextLayoutResult, brush: pythonx.compose.ui.graphics.Brush, top_left: int = ..., alpha: float = ..., shadow: pythonx.compose.ui.graphics.Shadow | None = ..., text_decoration: _t.Any | None = ..., draw_style: _t.Any | None = ..., blend_mode: _t.Any = ...) -> None: ... +@_t.overload +def draw_text(receiver: _t.Any, /, text_layout_result: TextLayoutResult, color: _t.Any, top_left: int, alpha: float, shadow: pythonx.compose.ui.graphics.Shadow | None, text_decoration: _t.Any | None, draw_style: _t.Any | None, blend_mode: _t.Any) -> None: ... # type: ignore[overload-cannot-match] +@_t.overload +def draw_text(receiver: _t.Any, /, text_measurer: TextMeasurer, text: str, top_left: int, style: _t.Any, overflow: _t.Any, soft_wrap: bool, max_lines: int, size: int, blend_mode: _t.Any) -> None: ... # type: ignore[overload-cannot-match] + +@_t.overload +def lerp(start: ParagraphStyle, stop: ParagraphStyle, fraction: float) -> ParagraphStyle: ... +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: SpanStyle, stop: SpanStyle, fraction: float) -> SpanStyle: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def to_lower_case(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: ... +@_t.overload +def to_lower_case(receiver: str, /, locale: _t.Any) -> str: ... # type: ignore[overload-cannot-match] +@_t.overload +def to_lower_case(receiver: str, /, locale_list: _t.Any) -> str: ... # type: ignore[overload-cannot-match] + +@_t.overload +def to_upper_case(receiver: _t.Any, /, locale_list: _t.Any = ...) -> _t.Any: ... +@_t.overload +def to_upper_case(receiver: str, /, locale: _t.Any) -> str: ... # type: ignore[overload-cannot-match] +@_t.overload +def to_upper_case(receiver: str, /, locale_list: _t.Any) -> str: ... # type: ignore[overload-cannot-match] + +class Bullet: + """Kotlin: androidx.compose.ui.text.Bullet""" + Default: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.Bullet.Default(): androidx.compose.ui.text.Bullet""" + DefaultIndentation: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.Bullet.DefaultIndentation(): androidx.compose.ui.unit.TextUnit""" + DefaultPadding: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.Bullet.DefaultPadding(): androidx.compose.ui.unit.TextUnit""" + DefaultSize: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.Bullet.DefaultSize(): androidx.compose.ui.unit.TextUnit""" + +class ComposeUiTextFlags: + """Kotlin: androidx.compose.ui.text.ComposeUiTextFlags""" + is_correct_shadow_lerp_with_nulls_enabled: _t.ClassVar[bool] + """Kotlin: androidx.compose.ui.text.ComposeUiTextFlags.isCorrectShadowLerpWithNullsEnabled(): kotlin.Boolean""" + +class FontRasterizationSettings: + """Kotlin: androidx.compose.ui.text.FontRasterizationSettings""" + PlatformDefault: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.FontRasterizationSettings.PlatformDefault(): androidx.compose.ui.text.FontRasterizationSettings""" + +class PlaceholderVerticalAlign: + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign""" + AboveBaseline: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.AboveBaseline(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + Bottom: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.Bottom(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.Center(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + TextBottom: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.TextBottom(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + TextCenter: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.TextCenter(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + TextTop: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.TextTop(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + Top: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlaceholderVerticalAlign.Top(): androidx.compose.ui.text.PlaceholderVerticalAlign""" + +class PlatformParagraphStyle: + """Kotlin: androidx.compose.ui.text.PlatformParagraphStyle""" + Default: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlatformParagraphStyle.Default(): androidx.compose.ui.text.PlatformParagraphStyle""" + +class PlatformSpanStyle: + """Kotlin: androidx.compose.ui.text.PlatformSpanStyle""" + Default: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.PlatformSpanStyle.Default(): androidx.compose.ui.text.PlatformSpanStyle""" + +class TextDecorationLineStyle: + """Kotlin: androidx.compose.ui.text.TextDecorationLineStyle""" + Dashed: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.text.TextDecorationLineStyle.Dashed(): androidx.compose.ui.text.TextDecorationLineStyle""" + Dotted: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.text.TextDecorationLineStyle.Dotted(): androidx.compose.ui.text.TextDecorationLineStyle""" + Double: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.text.TextDecorationLineStyle.Double(): androidx.compose.ui.text.TextDecorationLineStyle""" + Solid: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.text.TextDecorationLineStyle.Solid(): androidx.compose.ui.text.TextDecorationLineStyle""" + Wavy: _t.ClassVar[int] + """Kotlin: androidx.compose.ui.text.TextDecorationLineStyle.Wavy(): androidx.compose.ui.text.TextDecorationLineStyle""" + +class TextGranularity: + """Kotlin: androidx.compose.ui.text.TextGranularity""" + Character: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.TextGranularity.Character(): androidx.compose.ui.text.TextGranularity""" + Word: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.TextGranularity.Word(): androidx.compose.ui.text.TextGranularity""" + +class TextInclusionStrategy: + """Kotlin: androidx.compose.ui.text.TextInclusionStrategy""" + AnyOverlap: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.TextInclusionStrategy.AnyOverlap(): androidx.compose.ui.text.TextInclusionStrategy""" + ContainsAll: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.TextInclusionStrategy.ContainsAll(): androidx.compose.ui.text.TextInclusionStrategy""" + ContainsCenter: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.TextInclusionStrategy.ContainsCenter(): androidx.compose.ui.text.TextInclusionStrategy""" + +class TextPainter: + """Kotlin: androidx.compose.ui.text.TextPainter""" + @staticmethod + def paint(canvas: _t.Any, text_layout_result: TextLayoutResult) -> None: + """Kotlin: androidx.compose.ui.text.TextPainter.paint(canvas: androidx.compose.ui.graphics.Canvas, textLayoutResult: androidx.compose.ui.text.TextLayoutResult): kotlin.Unit""" + ... + +class TextStyle: + """Kotlin: androidx.compose.ui.text.TextStyle""" + Default: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.text.TextStyle.Default(): androidx.compose.ui.text.TextStyle""" diff --git a/pythonx/compose/ui/unit/__init__.py b/pythonx/compose/ui/unit/__init__.py index 8251e6f..7ea5fb6 100644 --- a/pythonx/compose/ui/unit/__init__.py +++ b/pythonx/compose/ui/unit/__init__.py @@ -1,3 +1,19 @@ -from __future__ import annotations +"""`pythonx/compose/ui/unit/__init__.py` -- unit declarations provided by the adaptation layer. -from .dp import dp +## What used to be here, and why it is gone + +A relative import `from .dp import dp`. `dp.py` was an empty placeholder file, now deleted; what it +noted still holds: `Dp` parameters take raw numbers (`16` or `16.0`) directly, as in `padding(16)`, +without an explicit `dp` wrapper. + +## Dynamic unit handling + +A raw number reaches a `Dp` parameter because `pythonx-map.toml` allows it and the re-export rule +hands that allowlist to the binder (`pythonx/compose/_reexport.py`). An explicit `Dp` value is +`python_multiplatform.binding.value_of('androidx.compose.ui.unit.Dp', 16)`; a short `dp()` spelling +is not provided yet. +""" + +from pythonx.compose._reexport import reexport + +__getattr__, __dir__ = reexport(__name__) diff --git a/pythonx/compose/ui/unit/__init__.pyi b/pythonx/compose/ui/unit/__init__.pyi new file mode 100644 index 0000000..bd81f8f --- /dev/null +++ b/pythonx/compose/ui/unit/__init__.pyi @@ -0,0 +1,348 @@ +# GENERATED by pythonx/_build/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37103737430, commit a5028618, Compose 1.11.1). Do not edit. +import typing as _t + +class DpRect: + """Kotlin: androidx.compose.ui.unit.DpRect""" + @_t.overload + def __init__(self, origin: int, size: _t.Any) -> None: ... + @_t.overload + def __init__(self, left: float, top: float, right: float, bottom: float) -> None: ... # type: ignore[overload-cannot-match] + @property + def bottom(self) -> float: + """Kotlin property: androidx.compose.ui.unit.DpRect.bottom (androidx.compose.ui.unit.DpRect.bottom: androidx.compose.ui.unit.Dp)""" + ... + @property + def height(self) -> float: + """Kotlin property: androidx.compose.ui.unit.height (androidx.compose.ui.unit.DpRect.height: androidx.compose.ui.unit.Dp)""" + ... + @property + def left(self) -> float: + """Kotlin property: androidx.compose.ui.unit.DpRect.left (androidx.compose.ui.unit.DpRect.left: androidx.compose.ui.unit.Dp)""" + ... + @property + def right(self) -> float: + """Kotlin property: androidx.compose.ui.unit.DpRect.right (androidx.compose.ui.unit.DpRect.right: androidx.compose.ui.unit.Dp)""" + ... + @property + def size(self) -> _t.Any: + """Kotlin property: androidx.compose.ui.unit.size (androidx.compose.ui.unit.DpRect.size: androidx.compose.ui.unit.DpSize)""" + ... + @property + def top(self) -> float: + """Kotlin property: androidx.compose.ui.unit.DpRect.top (androidx.compose.ui.unit.DpRect.top: androidx.compose.ui.unit.Dp)""" + ... + @property + def width(self) -> float: + """Kotlin property: androidx.compose.ui.unit.width (androidx.compose.ui.unit.DpRect.width: androidx.compose.ui.unit.Dp)""" + ... + +class FontScalingLinear: + """Kotlin: androidx.compose.ui.unit.FontScalingLinear""" + @property + def font_scale(self) -> float: + """Kotlin property: androidx.compose.ui.unit.FontScalingLinear.fontScale (androidx.compose.ui.unit.FontScalingLinear.fontScale: kotlin.Float)""" + ... + +class LayoutDirection: + """Kotlin: androidx.compose.ui.unit.LayoutDirection""" + +def Constraints(min_width: int = ..., max_width: int = ..., min_height: int = ..., max_height: int = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.Constraints(minWidth: kotlin.Int, maxWidth: kotlin.Int, minHeight: kotlin.Int, maxHeight: kotlin.Int): androidx.compose.ui.unit.Constraints""" + ... + +def Density(density: float, font_scale: float = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.Density(density: kotlin.Float, fontScale: kotlin.Float): androidx.compose.ui.unit.Density""" + ... + +def DpOffset(x: float, y: float) -> int: + """Kotlin: androidx.compose.ui.unit.DpOffset(x: androidx.compose.ui.unit.Dp, y: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.DpOffset""" + ... + +def DpSize(width: float, height: float) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.DpSize(width: androidx.compose.ui.unit.Dp, height: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.DpSize""" + ... + +def IntOffset(x: int, y: int) -> int: + """Kotlin: androidx.compose.ui.unit.IntOffset(x: kotlin.Int, y: kotlin.Int): androidx.compose.ui.unit.IntOffset""" + ... + +def IntRect__IntOffset_Int(center: int, radius: int) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.IntRect(center: androidx.compose.ui.unit.IntOffset, radius: kotlin.Int): androidx.compose.ui.unit.IntRect""" + ... + +def IntRect__IntOffset_IntOffset(top_left: int, bottom_right: int) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.IntRect(topLeft: androidx.compose.ui.unit.IntOffset, bottomRight: androidx.compose.ui.unit.IntOffset): androidx.compose.ui.unit.IntRect""" + ... + +def IntRect__IntOffset_IntSize(offset: int, size: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.IntRect(offset: androidx.compose.ui.unit.IntOffset, size: androidx.compose.ui.unit.IntSize): androidx.compose.ui.unit.IntRect""" + ... + +def IntSize(width: int, height: int) -> int: + """Kotlin: androidx.compose.ui.unit.IntSize(width: kotlin.Int, height: kotlin.Int): androidx.compose.ui.unit.IntSize""" + ... + +def TextUnit(value: float, type: int) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.TextUnit(value: kotlin.Float, type: androidx.compose.ui.unit.TextUnitType): androidx.compose.ui.unit.TextUnit""" + ... + +def Velocity(x: float, y: float) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.Velocity(x: kotlin.Float, y: kotlin.Float): androidx.compose.ui.unit.Velocity""" + ... + +def coerce_at_least(receiver: float, /, minimum_value: float) -> float: + """Kotlin: androidx.compose.ui.unit.Dp.coerceAtLeast(minimumValue: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def coerce_at_most(receiver: float, /, maximum_value: float) -> float: + """Kotlin: androidx.compose.ui.unit.Dp.coerceAtMost(maximumValue: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def coerce_in(receiver: float, /, minimum_value: float, maximum_value: float) -> float: + """Kotlin: androidx.compose.ui.unit.Dp.coerceIn(minimumValue: androidx.compose.ui.unit.Dp, maximumValue: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def constrain_height(receiver: int, /, height: int) -> int: + """Kotlin: androidx.compose.ui.unit.Constraints.constrainHeight(height: kotlin.Int): kotlin.Int""" + ... + +def constrain_width(receiver: int, /, width: int) -> int: + """Kotlin: androidx.compose.ui.unit.Constraints.constrainWidth(width: kotlin.Int): kotlin.Int""" + ... + +def constrain__Constraints(receiver: int, /, other_constraints: int) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.Constraints.constrain(otherConstraints: androidx.compose.ui.unit.Constraints): androidx.compose.ui.unit.Constraints""" + ... + +def constrain__IntSize(receiver: int, /, size: _t.Any) -> int: + """Kotlin: androidx.compose.ui.unit.Constraints.constrain(size: androidx.compose.ui.unit.IntSize): androidx.compose.ui.unit.IntSize""" + ... + +def is_satisfied_by(receiver: int, /, size: _t.Any) -> bool: + """Kotlin: androidx.compose.ui.unit.Constraints.isSatisfiedBy(size: androidx.compose.ui.unit.IntSize): kotlin.Boolean""" + ... + +def lerp__DpOffset_DpOffset_Float(start: int, stop: int, fraction: float) -> int: + """Kotlin: androidx.compose.ui.unit.lerp(start: androidx.compose.ui.unit.DpOffset, stop: androidx.compose.ui.unit.DpOffset, fraction: kotlin.Float): androidx.compose.ui.unit.DpOffset""" + ... + +def lerp__DpSize_DpSize_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.lerp(start: androidx.compose.ui.unit.DpSize, stop: androidx.compose.ui.unit.DpSize, fraction: kotlin.Float): androidx.compose.ui.unit.DpSize""" + ... + +def lerp__Dp_Dp_Float(start: float, stop: float, fraction: float) -> float: + """Kotlin: androidx.compose.ui.unit.lerp(start: androidx.compose.ui.unit.Dp, stop: androidx.compose.ui.unit.Dp, fraction: kotlin.Float): androidx.compose.ui.unit.Dp""" + ... + +def lerp__IntOffset_IntOffset_Float(start: int, stop: int, fraction: float) -> int: + """Kotlin: androidx.compose.ui.unit.lerp(start: androidx.compose.ui.unit.IntOffset, stop: androidx.compose.ui.unit.IntOffset, fraction: kotlin.Float): androidx.compose.ui.unit.IntOffset""" + ... + +def lerp__IntRect_IntRect_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.lerp(start: androidx.compose.ui.unit.IntRect, stop: androidx.compose.ui.unit.IntRect, fraction: kotlin.Float): androidx.compose.ui.unit.IntRect""" + ... + +def lerp__TextUnit_TextUnit_Float(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.lerp(start: androidx.compose.ui.unit.TextUnit, stop: androidx.compose.ui.unit.TextUnit, fraction: kotlin.Float): androidx.compose.ui.unit.TextUnit""" + ... + +def max(a: float, b: float) -> float: + """Kotlin: androidx.compose.ui.unit.max(a: androidx.compose.ui.unit.Dp, b: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def min(a: float, b: float) -> float: + """Kotlin: androidx.compose.ui.unit.min(a: androidx.compose.ui.unit.Dp, b: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def minus__IntOffset(receiver: int, /, offset: int) -> int: + """Kotlin: androidx.compose.ui.geometry.Offset.minus(offset: androidx.compose.ui.unit.IntOffset): androidx.compose.ui.geometry.Offset""" + ... + +def minus__Offset(receiver: int, /, offset: int) -> int: + """Kotlin: androidx.compose.ui.unit.IntOffset.minus(offset: androidx.compose.ui.geometry.Offset): androidx.compose.ui.geometry.Offset""" + ... + +def offset(receiver: int, /, horizontal: int = ..., vertical: int = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.Constraints.offset(horizontal: kotlin.Int, vertical: kotlin.Int): androidx.compose.ui.unit.Constraints""" + ... + +def plus__IntOffset(receiver: int, /, offset: int) -> int: + """Kotlin: androidx.compose.ui.geometry.Offset.plus(offset: androidx.compose.ui.unit.IntOffset): androidx.compose.ui.geometry.Offset""" + ... + +def plus__Offset(receiver: int, /, offset: int) -> int: + """Kotlin: androidx.compose.ui.unit.IntOffset.plus(offset: androidx.compose.ui.geometry.Offset): androidx.compose.ui.geometry.Offset""" + ... + +def round(receiver: int, /) -> int: + """Kotlin: androidx.compose.ui.geometry.Offset.round(): androidx.compose.ui.unit.IntOffset""" + ... + +def round_to_int_rect(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.geometry.Rect.roundToIntRect(): androidx.compose.ui.unit.IntRect""" + ... + +def round_to_int_size(receiver: int, /) -> int: + """Kotlin: androidx.compose.ui.geometry.Size.roundToIntSize(): androidx.compose.ui.unit.IntSize""" + ... + +def take_or_else__Dp(receiver: float, /, block: _t.Callable[[], _t.Any]) -> float: + """Kotlin: androidx.compose.ui.unit.Dp.takeOrElse(block: kotlin.Function0): androidx.compose.ui.unit.Dp""" + ... + +def take_or_else__DpOffset(receiver: int, /, block: _t.Callable[[], _t.Any]) -> int: + """Kotlin: androidx.compose.ui.unit.DpOffset.takeOrElse(block: kotlin.Function0): androidx.compose.ui.unit.DpOffset""" + ... + +def take_or_else__DpSize(receiver: _t.Any, /, block: _t.Callable[[], _t.Any]) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.DpSize.takeOrElse(block: kotlin.Function0): androidx.compose.ui.unit.DpSize""" + ... + +def take_or_else__TextUnit(receiver: _t.Any, /, block: _t.Callable[[], _t.Any]) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.TextUnit.takeOrElse(block: kotlin.Function0): androidx.compose.ui.unit.TextUnit""" + ... + +def times__Double_Dp(receiver: float, /, other: float) -> float: + """Kotlin: kotlin.Double.times(other: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def times__Double_TextUnit(receiver: float, /, other: _t.Any) -> _t.Any: + """Kotlin: kotlin.Double.times(other: androidx.compose.ui.unit.TextUnit): androidx.compose.ui.unit.TextUnit""" + ... + +def times__Float_Dp(receiver: float, /, other: float) -> float: + """Kotlin: kotlin.Float.times(other: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def times__Float_DpSize(receiver: float, /, size: _t.Any) -> _t.Any: + """Kotlin: kotlin.Float.times(size: androidx.compose.ui.unit.DpSize): androidx.compose.ui.unit.DpSize""" + ... + +def times__Float_TextUnit(receiver: float, /, other: _t.Any) -> _t.Any: + """Kotlin: kotlin.Float.times(other: androidx.compose.ui.unit.TextUnit): androidx.compose.ui.unit.TextUnit""" + ... + +def times__Int_Dp(receiver: int, /, other: float) -> float: + """Kotlin: kotlin.Int.times(other: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.Dp""" + ... + +def times__Int_DpSize(receiver: int, /, size: _t.Any) -> _t.Any: + """Kotlin: kotlin.Int.times(size: androidx.compose.ui.unit.DpSize): androidx.compose.ui.unit.DpSize""" + ... + +def times__Int_IntSize(receiver: int, /, size: _t.Any) -> int: + """Kotlin: kotlin.Int.times(size: androidx.compose.ui.unit.IntSize): androidx.compose.ui.unit.IntSize""" + ... + +def times__Int_TextUnit(receiver: int, /, other: _t.Any) -> _t.Any: + """Kotlin: kotlin.Int.times(other: androidx.compose.ui.unit.TextUnit): androidx.compose.ui.unit.TextUnit""" + ... + +def to_int_rect(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.IntSize.toIntRect(): androidx.compose.ui.unit.IntRect""" + ... + +def to_int_size(receiver: int, /) -> int: + """Kotlin: androidx.compose.ui.geometry.Size.toIntSize(): androidx.compose.ui.unit.IntSize""" + ... + +def to_offset(receiver: int, /) -> int: + """Kotlin: androidx.compose.ui.unit.IntOffset.toOffset(): androidx.compose.ui.geometry.Offset""" + ... + +def to_rect(receiver: _t.Any, /) -> _t.Any: + """Kotlin: androidx.compose.ui.unit.IntRect.toRect(): androidx.compose.ui.geometry.Rect""" + ... + +def to_size(receiver: _t.Any, /) -> int: + """Kotlin: androidx.compose.ui.unit.IntSize.toSize(): androidx.compose.ui.geometry.Size""" + ... + +def DpRect__DpOffset_DpSize(origin: int, size: _t.Any) -> DpRect: + """Kotlin: androidx.compose.ui.unit.DpRect(origin: androidx.compose.ui.unit.DpOffset, size: androidx.compose.ui.unit.DpSize): androidx.compose.ui.unit.DpRect""" + ... + +def DpRect__Dp_Dp_Dp_Dp(left: float, top: float, right: float, bottom: float) -> DpRect: + """Kotlin: androidx.compose.ui.unit.DpRect(left: androidx.compose.ui.unit.Dp, top: androidx.compose.ui.unit.Dp, right: androidx.compose.ui.unit.Dp, bottom: androidx.compose.ui.unit.Dp): androidx.compose.ui.unit.DpRect""" + ... + +@_t.overload +def IntRect(center: int, radius: int) -> _t.Any: ... +@_t.overload +def IntRect(top_left: int, bottom_right: int) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def IntRect(offset: int, size: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def constrain(receiver: int, /, other_constraints: int) -> _t.Any: ... +@_t.overload +def constrain(receiver: int, /, size: _t.Any) -> int: ... # type: ignore[overload-cannot-match] + +@_t.overload +def lerp(start: int, stop: int, fraction: float) -> int: ... +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: float, stop: float, fraction: float) -> float: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: int, stop: int, fraction: float) -> int: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def lerp(start: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def minus(receiver: int, /, offset: int) -> int: ... +@_t.overload +def minus(receiver: int, /, offset: int) -> int: ... # type: ignore[overload-cannot-match] + +@_t.overload +def plus(receiver: int, /, offset: int) -> int: ... +@_t.overload +def plus(receiver: int, /, offset: int) -> int: ... # type: ignore[overload-cannot-match] + +@_t.overload +def take_or_else(receiver: float, /, block: _t.Callable[[], _t.Any]) -> float: ... +@_t.overload +def take_or_else(receiver: int, /, block: _t.Callable[[], _t.Any]) -> int: ... # type: ignore[overload-cannot-match] +@_t.overload +def take_or_else(receiver: _t.Any, /, block: _t.Callable[[], _t.Any]) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def take_or_else(receiver: _t.Any, /, block: _t.Callable[[], _t.Any]) -> _t.Any: ... # type: ignore[overload-cannot-match] + +@_t.overload +def times(receiver: float, /, other: float) -> float: ... +@_t.overload +def times(receiver: float, /, other: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: float, /, other: float) -> float: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: float, /, size: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: float, /, other: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: int, /, other: float) -> float: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: int, /, size: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: int, /, size: _t.Any) -> int: ... # type: ignore[overload-cannot-match] +@_t.overload +def times(receiver: int, /, other: _t.Any) -> _t.Any: ... # type: ignore[overload-cannot-match] + +class Dp: + """Kotlin: androidx.compose.ui.unit.Dp""" + Hairline: _t.ClassVar[float] + """Kotlin: androidx.compose.ui.unit.Dp.Hairline(): androidx.compose.ui.unit.Dp""" + Infinity: _t.ClassVar[float] + """Kotlin: androidx.compose.ui.unit.Dp.Infinity(): androidx.compose.ui.unit.Dp""" + Unspecified: _t.ClassVar[float] + """Kotlin: androidx.compose.ui.unit.Dp.Unspecified(): androidx.compose.ui.unit.Dp""" + +class TextUnitType: + """Kotlin: androidx.compose.ui.unit.TextUnitType""" + Em: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.unit.TextUnitType.Em(): androidx.compose.ui.unit.TextUnitType""" + Sp: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.unit.TextUnitType.Sp(): androidx.compose.ui.unit.TextUnitType""" + Unspecified: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.unit.TextUnitType.Unspecified(): androidx.compose.ui.unit.TextUnitType""" diff --git a/pythonx/compose/ui/unit/dp.py b/pythonx/compose/ui/unit/dp.py deleted file mode 100644 index e69de29..0000000 diff --git a/pythonx/compose/wrapper/__init__.py b/pythonx/compose/wrapper/__init__.py deleted file mode 100644 index 83edc67..0000000 --- a/pythonx/compose/wrapper/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -class KotlinWrapper: - def __new__(cls, kotlin_object): - kotlin_object.__class__ = cls - return kotlin_object diff --git a/test/.gitignore b/test/.gitignore deleted file mode 100644 index 9be4b76..0000000 --- a/test/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# Gradle files -.gradle/ -build/ -kotlin-js-store/ - -# Local configuration file (sdk path, etc) -local.properties - -# Log/OS Files -*.log -.DS_Store - -# Android Studio generated files and folders -captures/ -.externalNativeBuild/ -.cxx/ -*.apk -output.json - -# IntelliJ -*.iml -.idea/ - -# Keystore files -*.jks -*.keystore - -# Google Services (e.g. APIs or Firebase) -google-services.json - -# Android Profiling -*.hprof diff --git a/test/android/build.gradle.kts b/test/android/build.gradle.kts deleted file mode 100644 index 31670aa..0000000 --- a/test/android/build.gradle.kts +++ /dev/null @@ -1,72 +0,0 @@ -plugins { - alias(libs.plugins.android.application) - alias(libs.plugins.kotlin.android) - alias(libs.plugins.jetpack.compose) - - alias(libs.plugins.chaquo.python) -} - -chaquopy { - defaultConfig { - version = "3.11" - } - sourceSets { - getByName("main") { - srcDir("src/main/python") - } - } -} - -android { - namespace = "io.github.thisisthepy.pycomposeui.test.android" - compileSdk = 34 - defaultConfig { - applicationId = "io.github.thisisthepy.pycomposeui.test.android" - minSdk = 24 - targetSdk = 34 - versionCode = 1 - versionName = "1.0" - ndk { - abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86_64", "x86") - } - } - buildFeatures { - compose = true - } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() - } - packaging { - resources { - excludes += "/META-INF/{AL2.0,LGPL2.1}" - } - } - buildTypes { - getByName("release") { - isMinifyEnabled = false - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - } - sourceSets { - getByName("main") { - kotlin.srcDirs("src/main/kotlin") - } - } -} - -dependencies { - //implementation(projects.pythonMultiplatform) - implementation(projects.pycomposeui) - implementation(projects.common) - implementation(compose.ui) - implementation(compose.material3) - implementation(libs.androidx.activity.compose) - implementation(libs.compose.ui.tooling.preview) - debugImplementation(libs.compose.ui.tooling) -} \ No newline at end of file diff --git a/test/android/src/main/AndroidManifest.xml b/test/android/src/main/AndroidManifest.xml deleted file mode 100644 index e640ca4..0000000 --- a/test/android/src/main/AndroidManifest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test/android/src/main/kotlin/io/github/thisisthepy/pycomposeui/test/android/MainActivity.kt b/test/android/src/main/kotlin/io/github/thisisthepy/pycomposeui/test/android/MainActivity.kt deleted file mode 100644 index 5a2b9c4..0000000 --- a/test/android/src/main/kotlin/io/github/thisisthepy/pycomposeui/test/android/MainActivity.kt +++ /dev/null @@ -1,39 +0,0 @@ -package io.github.thisisthepy.pycomposeui.test.android - -import android.os.Bundle -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable -import androidx.compose.runtime.currentComposer -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview -import io.github.thisisthepy.pycomposeui.PythonAppView -import io.github.thisisthepy.pycomposeui.PythonLauncher -import io.github.thisisthepy.pycomposeui.moduleNamePreset -import io.github.thisisthepy.pycomposeui.test.common.App -import io.github.thisisthepy.pycomposeui.test.common.AppTheme - -class MainActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - AppTheme { - println(currentComposer) - PythonLauncher { - try { - moduleNamePreset = "pycomposeui.main" - } catch (ignored: IllegalStateException) {} - - PythonAppView(Modifier.fillMaxSize()) - } - } - } - } -} - -@Preview -@Composable -fun DefaultPreview() { - App() -} diff --git a/test/android/src/main/res/values/styles.xml b/test/android/src/main/res/values/styles.xml deleted file mode 100644 index 6b4fa3d..0000000 --- a/test/android/src/main/res/values/styles.xml +++ /dev/null @@ -1,3 +0,0 @@ - -