From 8cc6e5d8a3aa658cede15de3e574d3db904399f5 Mon Sep 17 00:00:00 2001 From: BREW <81044362+b-re-w@users.noreply.github.com> Date: Sat, 3 Oct 2026 09:02:05 +0900 Subject: [PATCH 1/2] Feat: Ship Pythonic stubs for Compose 1.11.1, generated by the runtime's own rule python-multiplatform now publishes Kotlin-named stubs for real Compose as a CI artifact (kotlin-stubs, run 37077627980). tools/gen_stubs.py reads that zip in place -- it holds two paths that differ only in case, which macOS cannot extract (python-multiplatform #44) -- and writes pythonx/compose/**/__init__.pyi for every manifest module, plus py.typed: - names and parameters follow _reexport.python_name / snake_case, so an editor completes what the interpreter resolves; - stub classes keep their names and their extension members are renamed, but a method's Protocol __call__ keeps Kotlin keyword names, because the runtime does not translate a method's keywords yet (python-multiplatform #34); the header says so; - references into mapped Kotlin packages name the pythonx module; references into unmapped ones become Any; - a Kotlin object is a class in its parent stub (constants as ClassVar, functions as snake_case staticmethods) -- not a sub-package directory, which would be a namespace package at run time and shadow the object the re-export serves; both upstream layouts are read; - the second mapping of a package re-exports the first, so mypy sees one RowScope; material3 re-exports Column, Row and Spacer per [aliases]; - an object shadowed by a same-named function (Color, TextStyle, PaddingValues, TextUnit, ...) is left out, as at run time; constants named None are left out. tests/test_typing.py runs mypy against the committed stubs: correct code passes, a Kotlin-spelled keyword or name on a module function or method name fails, and importing every manifest module checks every stub. CI installs mypy. Drafted by a subagent in a worktree; reviewed here and re-run. feature added: generated stubs for 10 modules (385 kB) and py.typed. test added: 24 in test_stubs.py (including a regeneration check that skips without the zip), 7 in test_typing.py, 2 in test_wheel.py. Red before the generator change: 28 failed, 20 passed. Disabling each generator step fails between 1 and 11 tests. documentation corrected: SPEC S1.1/S1.2 and baseline, PROJECT.md, guide status/getting-started/index/concepts, README and README_ko. Suite against python-multiplatform ba4c6f49: 110 passed, 1 skipped -> 143 passed, 1 skipped. Without a checkout (worktree, no notebook): 54 passed, 57 skipped -> 84 passed, 60 skipped. check_guide.py: 0. Refs #12 --- .github/workflows/tests.yml | 4 +- PROJECT.md | 16 +- README.md | 9 +- docs/SPEC.md | 89 +- docs/guide/concepts.html | 2 +- docs/guide/getting-started.html | 6 +- docs/guide/index.html | 2 +- docs/guide/status.html | 4 +- docs/locale/README_ko.md | 9 +- pythonx/compose/__init__.pyi | 2 + pythonx/compose/foundation/__init__.pyi | 18 + .../compose/foundation/layout/__init__.pyi | 3 + pythonx/compose/layout/__init__.pyi | 707 ++++++++ pythonx/compose/material3/__init__.pyi | 1513 +++++++++++++++++ pythonx/compose/py.typed | 0 pythonx/compose/runtime/__init__.pyi | 28 + pythonx/compose/ui/__init__.pyi | 838 +++++++++ pythonx/compose/ui/graphics/__init__.pyi | 621 +++++++ pythonx/compose/ui/text/__init__.pyi | 311 ++++ pythonx/compose/ui/unit/__init__.pyi | 299 ++++ .../layout/Arrangement/__init__.pyi | 19 + .../compose/foundation/layout/__init__.pyi | 61 + .../androidx/compose/material3/__init__.pyi | 10 + .../androidx/compose/ui/__init__.pyi | 45 + .../compose/ui/text/TextStyle/__init__.pyi | 6 + .../androidx/compose/ui/text/__init__.pyi | 10 + tests/test_stubs.py | 282 ++- tests/test_typing.py | 128 ++ tests/test_wheel.py | 8 + tools/gen_stubs.py | 512 +++++- 30 files changed, 5440 insertions(+), 122 deletions(-) create mode 100644 pythonx/compose/__init__.pyi create mode 100644 pythonx/compose/foundation/__init__.pyi create mode 100644 pythonx/compose/foundation/layout/__init__.pyi create mode 100644 pythonx/compose/layout/__init__.pyi create mode 100644 pythonx/compose/material3/__init__.pyi create mode 100644 pythonx/compose/py.typed create mode 100644 pythonx/compose/runtime/__init__.pyi create mode 100644 pythonx/compose/ui/__init__.pyi create mode 100644 pythonx/compose/ui/graphics/__init__.pyi create mode 100644 pythonx/compose/ui/text/__init__.pyi create mode 100644 pythonx/compose/ui/unit/__init__.pyi create mode 100644 tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/Arrangement/__init__.pyi create mode 100644 tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/__init__.pyi create mode 100644 tests/fixtures/kotlin_stubs_v2/androidx/compose/material3/__init__.pyi create mode 100644 tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/__init__.pyi create mode 100644 tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/TextStyle/__init__.pyi create mode 100644 tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/__init__.pyi create mode 100644 tests/test_typing.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 10f4165..68faf5c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -30,7 +30,7 @@ jobs: - uses: actions/setup-python@v5 with: python-version: '3.13' - - run: pip install pytest setuptools wheel + - run: pip install pytest mypy setuptools wheel - name: Run the suite run: python -m pytest tests -q -rs @@ -57,6 +57,6 @@ jobs: - uses: actions/setup-python@v5 with: python-version: '3.13' - - run: pip install pytest setuptools wheel + - run: pip install pytest mypy setuptools wheel - name: Run the suite run: python -m pytest tests -q -rs diff --git a/PROJECT.md b/PROJECT.md index 749892a..8dd2b1b 100644 --- a/PROJECT.md +++ b/PROJECT.md @@ -27,23 +27,23 @@ Compose(`androidx.compose.*`)를 파이썬에서 쓰기 위한 pip 패키지 **` | 상태 | 항목 | |---|---| -| 구현 | 매핑 매니페스트 `pythonx-map.toml`, `@Composable` 항등 데코레이터, 실제 디스크 패키지 `pythonx` 와 모듈 수준 규칙 기반 재노출(snake_case 이름·키워드·시그니처, 오버로드 디스패치, 값 클래스 허용 목록) | -| 부분 | 배포 설정(스텁·`py.typed` 없음, 매니페스트가 패키지 밖), proxy 메서드의 키워드 인자는 아직 Kotlin 이름(`m.padding(paddingValues=...)`), Material 3 위젯(렌더 증거는 python-multiplatform 에만), `Icon`·색 스킴(import 만 됨), `Alignment`/`Arrangement` 상수(`pythonx` 에서 읽힘; 묶음 표기는 python-multiplatform #36 대기) | -| 계획 | `.pyi` 동봉, 선언형 앱 루트(#11), `remember_saveable`·`DefaultIcons`·코루틴 스코프 | +| 구현 | 매핑 매니페스트 `pythonx-map.toml`, `@Composable` 항등 데코레이터, 실제 디스크 패키지 `pythonx` 와 모듈 수준 규칙 기반 재노출(snake_case 이름·키워드·시그니처, 오버로드 디스패치, 값 클래스 허용 목록), 실제 Compose 1.11.1 에서 생성한 `.pyi` 스텁과 `py.typed`(wheel 포함, mypy 로 검사) | +| 부분 | 배포 설정, proxy 메서드의 키워드 인자는 아직 Kotlin 이름(`m.padding(paddingValues=...)`), Material 3 위젯(렌더 증거는 python-multiplatform 에만), `Icon`·색 스킴(import 만 됨), `Alignment`/`Arrangement` 상수(`pythonx` 에서 읽힘; 묶음 표기는 python-multiplatform #36 대기) | +| 계획 | 선언형 앱 루트(#11), `remember_saveable`·`DefaultIcons`·코루틴 스코프 | ### 테스트 기준선 ``` python3 -m pytest tests -q - PythonMultiplatform 체크아웃 없음 55 passed, 56 skipped - python-multiplatform develop ba4c6f49+ 111 passed + PythonMultiplatform 체크아웃 없음 84 passed, 60 skipped + python-multiplatform develop ba4c6f49+ 143 passed, 1 skipped 그보다 오래된 체크아웃 같은 수, 그중 5 개 건너뜀 (member resolver 없음) ``` member resolver(python-multiplatform `ba4c6f49`)가 없는 바인더에서는 proxy 의 snake_case 메서드를 부르는 -5 개가 건너뛴다. 건너뜀은 통과가 아니다. -체크아웃 없이 통과하는 55 개 중 다수는 *부재*(옛 토큰·삭제된 파일이 없음)를 확인하는 것이라 기능 진척으로 세지 -않는다. +5 개가 건너뛴다. 두 환경 모두의 건너뜀 1 개는 worktree 에 없는 `UI.ipynb` 의 테스트다. 건너뜀은 통과가 아니다. +체크아웃 없이 통과하는 84 개 중 30 개는 타입 스텁과 wheel 을 검사하고(SPEC S1.2), 나머지 다수는 *부재*(옛 토큰·삭제된 +파일이 없음)를 확인하는 것이라 기능 진척으로 세지 않는다. ### 마일스톤 diff --git a/README.md b/README.md index baf2bc7..ed14c27 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ flowchart LR px --> ax["androidx.compose.*
Kotlin names, exposed by python-multiplatform"] ax --> compose["Jetpack / Compose Multiplatform"] map["pythonx-map.toml"] -.-> px - map -.-> pyi[".pyi stubs
(for the wheel, planned)"] + map -.-> pyi[".pyi stubs
(in the wheel)"] ``` | Python module | Kotlin package | @@ -134,8 +134,8 @@ from a sibling [python-multiplatform](https://github.com/thisisthepy/python-mult ## 📦 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; `.pyi` stubs generated from real -Compose and `py.typed` are planned. It runs inside an app that embeds CPython +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. @@ -152,7 +152,8 @@ standalone desktop toolkit. | The empty `Modifier` | 🟡 partial — `Modifier.padding(16)` from the class needs an app-supplied factory against real Compose | | `Alignment` / `Arrangement` | 🟡 partial — `Alignment.Center`, `Arrangement.spaced_by(8)` work; grouped `Alignment.Horizontal.End` pending | | Material 3 widgets (`Text`, `Button`, `Card`, `TextField`, …) | 🟡 partial — re-exported by rule; render proofs per widget pending (#9) | -| Distribution (`pythonx-compose`) | 🟡 partial — the wheel carries the manifest; no stubs from real Compose, no `py.typed` (#12) | +| Type stubs (`.pyi`) from real Compose 1.11.1, `py.typed` | ✅ implemented and checked with mypy; many types are still `Any`, and method keywords are Kotlin's (#12) | +| Distribution (`pythonx-compose`) | 🟡 partial — the wheel carries the manifest, the re-export rule, the stubs and `py.typed` | | Declared app root and Pythonic state, no update call | ⏳ planned (#11) | | `TextField` input-method (IME) handling | ⏳ planned (#10) | | `Icon`, `DefaultIcons`, colour schemes | ⏳ planned (python-multiplatform #37) | diff --git a/docs/SPEC.md b/docs/SPEC.md index a07b154..b48368d 100644 --- a/docs/SPEC.md +++ b/docs/SPEC.md @@ -14,23 +14,26 @@ Each item carries a status: A behaviour change starts here, then becomes a failing test, then code (`AGENTS.md` §5). -## 0. Test baseline (2026-10-03, after issue #8) +## 0. Test baseline (2026-10-03, after issue #12) -Run from a worktree with `python3 -m pytest tests -q` (pytest 8, CPython 3.13): +Run from a worktree with `python -m pytest tests -q -rs` (pytest 8, mypy 2.4, CPython 3.13), where +`UI.ipynb` is absent and its one test skips: | Environment | Result | |---|---| -| No `PythonMultiplatform` checkout found | **55 passed, 56 skipped**, 66 subtests passed | -| python-multiplatform `develop` at `ba4c6f49` or later (has `add_member_resolver`) | **111 passed**, 72 subtests passed | -| an older checkout, without `add_member_resolver` | the same, with 5 of them skipped | +| No `PythonMultiplatform` checkout found | **84 passed, 60 skipped**, 115 subtests passed | +| python-multiplatform `develop` at `ba4c6f49` or later (has `add_member_resolver`) | **143 passed, 1 skipped**, 139 subtests passed | +| an older checkout, without `add_member_resolver` | the same, with 5 more skipped | -Without a checkout, the 56 tests that install the binder's layers through `tests/adapter.py` skip. +Without a checkout, the 59 tests that install the binder's layers through `tests/adapter.py` skip. Against a binder older than `ba4c6f49`, the 5 that call a snake_case method on a proxy the binder -returned skip, because that needs its member resolver (python-multiplatform #17). A skip is not a +returned skip, because that needs its member resolver (python-multiplatform #17). The 1 skip in both +rows is `UI.ipynb`'s (§2). `tests/test_typing.py` skips where mypy is not installed. A skip is not a pass. -Of the 55 that pass without a checkout, most assert **absence** (a retired token, a deleted file, a docstring that -exists). Those are listed in §9 and are not counted as features. +Of the 84 that pass without a checkout, 30 check the type stubs and the wheel (S1.2); most of the +rest assert **absence** (a retired token, a deleted file, a docstring that exists). Those are listed +in §9 and are not counted as features. --- @@ -45,24 +48,66 @@ exists). Those are listed in §9 and are not counted as features. - Shipped and tested: `tests/test_wheel.py` builds the wheel from a copy of the sources and finds `pythonx/compose/pythonx-map.toml`, the re-export rule, and an `__init__.py` for every mapped module (issue #13). The manifest lives inside the package directory so `package-data` carries it. -- Not yet true: no `.pyi` and no `py.typed` exist (S1.2, issue #12). +- Typed: the wheel carries `py.typed` and the generated `.pyi` stubs (S1.2, issue #12). -### S1.2 Type stubs ship in the wheel — `partial` +### S1.2 Type stubs ship in the wheel — `implemented` Stubs carry the Pythonic names and signatures the runtime resolves, so the name an editor completes and the name the interpreter resolves cannot drift. -- In this repository: `tools/gen_stubs.py` converts python-multiplatform's Kotlin-named stubs - (`PythonStubsTask` output, one `androidx/.../__init__.pyi` per package) into - `pythonx/compose/**/__init__.pyi`, using the runtime's own `python_name` / `snake_case`; an - overload set also gets `@overload`s of its base name; a package's own definitions - (`runtime.Composable`) are carried over. `tests/test_stubs.py` converts a fixture holding the fake - host's declarations and checks each stub signature against `inspect.signature` at run time. - Overloads come fewest parameters first, because a type checker takes the first match. Disabling - the parameter rename fails 2 tests, the overloads 1, the name rule 3, the ordering 1. -- Not yet true: no stub is generated from real Compose and none ships, and there is no `py.typed`. - That needs the Kotlin-named stubs for Compose 1.11.1 from python-multiplatform, and object types - better than `int` for completion to be useful (issue #12). +- **What is generated.** `pythonx/compose/**/__init__.pyi` for every module in `pythonx-map.toml`, + beside its `__init__.py`, and an empty `pythonx/compose/py.typed`. The stubs are committed; + regenerating them from the same input produces no diff. +- **From what.** python-multiplatform's CI artefact `kotlin-stubs` (workflow run 37077627980, + commit `86012ca0`): Kotlin-named stubs for Compose 1.11.1, one `androidx/compose/.../__init__.pyi` + per Kotlin package. `python3 tools/gen_stubs.py ` converts them; + the first line of every generated stub records the artefact, run and commit it came from. +- **The rule is the runtime's** (`_reexport.py`), applied by `tools/gen_stubs.py`: + - a module function or constant is renamed with `python_name` (upper-case names kept, others + snake_case, an explicit overload keeps its suffix: `padding__Dp`); its parameters are + snake_case, except the positional-only `receiver` and anonymous `__aN` slots; keyword-only + markers and the binder's `@overload` sets, in the binder's order, are kept; + - a stub class keeps its name. Its extension members (`Modifier.fill_max_width`, a + `ClassVar` of a callable `Protocol`) are renamed with `python_name`, the member resolver's rule, + but the protocol's parameter names stay Kotlin's, because the runtime does not translate a + method's keywords yet (§3); every generated stub says so in its header; + - a Kotlin object served as a sub-package (`Alignment`, `Arrangement`) becomes a class of that + name in its parent module's stub, its constants `ClassVar`s and its functions snake_case + static methods. A sub-package directory holding only `__init__.pyi` would be a namespace + package at run time and would shadow the `KotlinObject` the re-export rule serves. The + generator reads both upstream layouts: the object as its own `/__init__.pyi`, or as a + class inside the parent stub (python-multiplatform #44). An object whose name the parent module + also uses for a function (`Color`, `TextStyle`, `PaddingValues`, `TextUnit`) is left out, + because at run time that name reaches the function; + - a reference to another Kotlin package is rewritten to the `pythonx.compose` module the + manifest lists first for it (`androidx.compose.foundation.layout` → `pythonx.compose.layout`); + a reference to a package the manifest does not map, or to a name the target stub does not + declare, becomes `typing.Any`; + - a module that maps the same Kotlin package as an earlier one (`pythonx.compose.foundation.layout`) + re-exports it (`from pythonx.compose.layout import *`), since at run time both names reach the + same objects; `[aliases]` become re-exports too (`material3` exports `Column`, `Row`, `Spacer` + from `pythonx.compose.layout`); names a package defines itself (`runtime.Composable`) are + carried over. +- **How it is verified.** `tests/test_stubs.py` converts two fixtures holding the fake host's + declarations, in the old and the current upstream format (and the current format with an object + in its parent stub), and checks the generated signatures against `inspect.signature` at run time. + `TheCommittedStubs` regenerates from `.tmp/kotlin-stubs.zip` and requires the committed files to + be identical (it skips where the artefact is absent, which includes CI). `tests/test_typing.py` + runs mypy over small programs against the committed stubs: correct code passes, a misspelled + keyword or function fails. `tests/test_wheel.py` finds `py.typed` and the stubs in the built wheel. + Disabling a step of the generator fails tests: folding objects into their parent 11, rewriting + references 9, keeping the binder's `# type: ignore` comments 7, renaming class members 5, the + second-module re-export 2, the aliases 2, the shadowed-object check 1. +- **Still missing.** + - Many parameter and return types are `Any`: upstream emits `Any` for a class that shares its + name with a function (`PaddingValues`, `TextStyle`, `Color`) and for packages it does not stub; + `Dp` is `float`. + - A method's keywords are Kotlin's in the stub because they are Kotlin's at run time (S4.1). + - The `pythonx.compose` root module maps `androidx.compose`, which has no stub, so its stub is + empty. + - Object constants named like a Python keyword (`FilterQuality.None`) cannot be written as an + attribute, and are left out. + - Regenerating needs the artefact downloaded by hand into `.tmp/`; CI does not fetch it. ## 2. The mapping manifest (`pythonx-map.toml`) — `implemented` diff --git a/docs/guide/concepts.html b/docs/guide/concepts.html index 6f93c4a..e33a507 100644 --- a/docs/guide/concepts.html +++ b/docs/guide/concepts.html @@ -34,7 +34,7 @@

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 stubsfor the wheel · planned@Composable def Screen()your Pythonpythonx.composethis package · real .pyandroidx.compose.*Kotlin names · binderComposeJetpack / Multiplatformpythonx-map.toml→ pythonx.compose, .pyi
+
@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
diff --git a/docs/guide/getting-started.html b/docs/guide/getting-started.html index cdd7177..44ec5d9 100644 --- a/docs/guide/getting-started.html +++ b/docs/guide/getting-started.html @@ -37,15 +37,15 @@

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      # Python 3.11 or later
+python3 -m pip install pytest mypy # Python 3.11 or later

2. Run the tests2. 테스트 실행

python3 -m pytest tests -q
-

Expect 55 passed, 56 skipped. The skipped tests drive the binder's adaptation layer and need a python-multiplatform checkout beside this one, or:

55 passed, 56 skipped 가 정상입니다. 건너뛴 테스트는 바인더의 적응 계층을 구동하며, 옆에 python-multiplatform 체크아웃이 있거나 다음이 필요합니다:

+

Expect 84 passed, 60 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:

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

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

With a current one (ba4c6f49 or later) all pass; an older one skips 5 that call a snake_case method on a proxy the binder returned. That is expected and recorded.

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

+

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

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

diff --git a/docs/guide/index.html b/docs/guide/index.html index 093dad1..cceb0e6 100644 --- a/docs/guide/index.html +++ b/docs/guide/index.html @@ -67,7 +67,7 @@

Same widgets. Python names.

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 stubsfor the wheel · planned@Composable def Screen()your Pythonpythonx.composethis package · real .pyandroidx.compose.*Kotlin names · binderComposeJetpack / Multiplatformpythonx-map.toml→ pythonx.compose, .pyi +
@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 해 재구성하는 실제 파이썬입니다. 어떤 모듈이 무엇에 대응하는지는 매니페스트 하나가 말합니다.
diff --git a/docs/guide/status.html b/docs/guide/status.html index 220a8c2..ab77b01 100644 --- a/docs/guide/status.html +++ b/docs/guide/status.html @@ -34,9 +34,9 @@

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])
partial부분Snake-case names, keywords and signatures — done for modules and method names; method keywords are still Kotlin'ssnake_case 이름·키워드·시그니처 — 모듈과 메서드 이름 완료, 메서드 키워드는 아직 Kotlin 이름
partial부분The empty Modifier — Modifier.padding(16) from the class needs an app-supplied factory against real Compose빈 Modifier — 클래스에서 시작하는 Modifier.padding(16) 은 실제 Compose 에서 앱이 제공하는 팩토리가 필요
partial부분Alignment / Arrangement — Alignment.Center, Arrangement.End, Arrangement.spaced_by(8) work; grouped Alignment.Horizontal.End pendingAlignment / Arrangement — Alignment.Center, Arrangement.End, Arrangement.spaced_by(8) 동작; 묶음 표기 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 and the re-export rule; no stubs from real Compose and no py.typed yet (#12)pythonx-compose 배포 — wheel 에 매니페스트와 재노출 규칙 포함; 실제 Compose 스텁과 py.typed 는 아직 없음(#12)
planned계획A declared app root and Pythonic state, with no update call (#11)갱신 호출 없는 선언형 앱 루트와 파이썬다운 상태(#11)
planned계획TextField input-method (IME) handling (#10)TextField 입력기(IME) 처리(#10)
planned계획Icon, DefaultIcons (python-multiplatform #37), colour schemesIcon, DefaultIcons (python-multiplatform #37), 색 스킴
planned계획remember_saveable, coroutine scopesremember_saveable, 코루틴 스코프
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 and method keywords are Kotlin's런타임과 같은 이름 규칙으로 실제 Compose 1.11.1 에서 생성한 타입 스텁(.pyi)과 py.typed, mypy 로 검사(#12); 아직 많은 타입이 Any 이고 메서드 키워드는 Kotlin 이름
partial부분Snake-case names, keywords and signatures — done for modules and method names; method keywords are still Kotlin'ssnake_case 이름·키워드·시그니처 — 모듈과 메서드 이름 완료, 메서드 키워드는 아직 Kotlin 이름
partial부분The empty Modifier — Modifier.padding(16) from the class needs an app-supplied factory against real Compose빈 Modifier — 클래스에서 시작하는 Modifier.padding(16) 은 실제 Compose 에서 앱이 제공하는 팩토리가 필요
partial부분Alignment / Arrangement — Alignment.Center, Arrangement.End, Arrangement.spaced_by(8) work; grouped Alignment.Horizontal.End pendingAlignment / Arrangement — Alignment.Center, Arrangement.End, Arrangement.spaced_by(8) 동작; 묶음 표기 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 포함
planned계획A declared app root and Pythonic state, with no update call (#11)갱신 호출 없는 선언형 앱 루트와 파이썬다운 상태(#11)
planned계획TextField input-method (IME) handling (#10)TextField 입력기(IME) 처리(#10)
planned계획Icon, DefaultIcons (python-multiplatform #37), colour schemesIcon, DefaultIcons (python-multiplatform #37), 색 스킴
planned계획remember_saveable, coroutine scopesremember_saveable, 코루틴 스코프
-

Test baseline: 55 passed, 56 skipped without a python-multiplatform checkout; 111 passed with a current one.

테스트 기준선: python-multiplatform 체크아웃이 없으면 55 passed, 56 skipped, 최신 체크아웃이면 111 passed.

+

Test baseline: 84 passed, 60 skipped without a python-multiplatform checkout; 143 passed, 1 skipped with a current one. The one skip in both is the test that reads the maintainer's UI.ipynb.

테스트 기준선: python-multiplatform 체크아웃이 없으면 84 passed, 60 skipped, 최신 체크아웃이면 143 passed, 1 skipped. 두 경우 모두의 건너뜀 1 개는 메인테이너의 UI.ipynb 를 읽는 테스트입니다.

FAQ

diff --git a/docs/locale/README_ko.md b/docs/locale/README_ko.md index a19fb7c..79dc6cc 100644 --- a/docs/locale/README_ko.md +++ b/docs/locale/README_ko.md @@ -65,7 +65,7 @@ flowchart LR px --> ax["androidx.compose.*
python-multiplatform 이 Kotlin 이름 그대로 노출"] ax --> compose["Jetpack / Compose Multiplatform"] map["pythonx-map.toml"] -.-> px - map -.-> pyi[".pyi 스텁
(wheel 포함 예정)"] + map -.-> pyi[".pyi 스텁
(wheel 에 포함)"] ``` | 파이썬 모듈 | Kotlin 패키지 | @@ -134,8 +134,8 @@ python_name("Modifier") # 'Modifier' ## 📦 설치 pip 패키지 **`pythonx-compose`**(파이썬 3.11 이상)로 배포되며, import 패키지 `pythonx.compose` 와 -매니페스트를 wheel 안에 담습니다. 실제 Compose 에서 생성한 `.pyi` 스텁과 `py.typed` 는 계획 -단계입니다. [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) +매니페스트를 wheel 안에 담으며, 타입 정보도 함께 배포합니다: 실제 Compose 1.11.1 에서 생성한 `.pyi` +스텁과 `py.typed`. [python-multiplatform](https://github.com/thisisthepy/python-multiplatform) 으로 CPython 을 임베딩한 앱 안에서 동작하며, 단독 데스크톱 툴킷이 아닙니다. ## 🧪 현황 @@ -151,7 +151,8 @@ pip 패키지 **`pythonx-compose`**(파이썬 3.11 이상)로 배포되며, impo | 빈 `Modifier` | 🟡 부분 — 클래스에서 시작하는 `Modifier.padding(16)` 은 실제 Compose 에서 앱이 제공하는 팩토리가 필요 | | `Alignment` / `Arrangement` | 🟡 부분 — `Alignment.Center`, `Arrangement.spaced_by(8)` 동작; 묶음 표기 `Alignment.Horizontal.End` 대기 | | Material 3 위젯 (`Text`, `Button`, `Card`, `TextField`, …) | 🟡 부분 — 규칙으로 재노출됨; 위젯별 렌더 증거 대기(#9) | -| 배포 (`pythonx-compose`) | 🟡 부분 — wheel 에 매니페스트 포함; 실제 Compose 스텁과 `py.typed` 없음(#12) | +| 실제 Compose 1.11.1 에서 생성한 타입 스텁(`.pyi`), `py.typed` | ✅ 구현, mypy 로 검사; 아직 많은 타입이 `Any` 이고 메서드 키워드는 Kotlin 이름(#12) | +| 배포 (`pythonx-compose`) | 🟡 부분 — wheel 에 매니페스트, 재노출 규칙, 스텁, `py.typed` 포함 | | 갱신 호출 없는 선언형 앱 루트와 파이썬다운 상태 | ⏳ 계획(#11) | | `TextField` 입력기(IME) 처리 | ⏳ 계획(#10) | | `Icon`, `DefaultIcons`, 색 스킴 | ⏳ 계획(python-multiplatform #37) | diff --git a/pythonx/compose/__init__.pyi b/pythonx/compose/__init__.pyi new file mode 100644 index 0000000..ec5dfe5 --- /dev/null +++ b/pythonx/compose/__init__.pyi @@ -0,0 +1,2 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. diff --git a/pythonx/compose/foundation/__init__.pyi b/pythonx/compose/foundation/__init__.pyi new file mode 100644 index 0000000..ed79fa0 --- /dev/null +++ b/pythonx/compose/foundation/__init__.pyi @@ -0,0 +1,18 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +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__.pyi b/pythonx/compose/foundation/layout/__init__.pyi new file mode 100644 index 0000000..38bf4a2 --- /dev/null +++ b/pythonx/compose/foundation/layout/__init__.pyi @@ -0,0 +1,3 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +from pythonx.compose.layout import * diff --git a/pythonx/compose/layout/__init__.pyi b/pythonx/compose/layout/__init__.pyi new file mode 100644 index 0000000..98e9e2e --- /dev/null +++ b/pythonx/compose/layout/__init__.pyi @@ -0,0 +1,707 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +import typing as _t +import pythonx.compose.ui +import pythonx.compose.ui.unit + +class _RowScope_NavigationBarItem(_t.Protocol): + def __call__(self, selected: bool, onClick: _t.Callable[[], None], icon: _t.Callable[[], None], modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., label: _t.Callable[[], None] | None = ..., alwaysShowLabel: bool = ..., colors: bool = ..., interactionSource: _t.Any | None = ...) -> None: ... + +class BoxScope: + """Kotlin: androidx.compose.foundation.layout.BoxScope""" + +class BoxWithConstraintsScope: + """Kotlin: androidx.compose.foundation.layout.BoxWithConstraintsScope""" + +class ColumnScope: + """Kotlin: androidx.compose.foundation.layout.ColumnScope""" + +class ContextualFlowColumnScope: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowColumnScope""" + +class ContextualFlowRowScope: + """Kotlin: androidx.compose.foundation.layout.ContextualFlowRowScope""" + +class FlexBoxConfig: + """Kotlin: androidx.compose.foundation.layout.FlexBoxConfig""" + +class FlexBoxScope: + """Kotlin: androidx.compose.foundation.layout.FlexBoxScope""" + +class FlowColumnScope: + """Kotlin: androidx.compose.foundation.layout.FlowColumnScope""" + +class FlowRowScope: + """Kotlin: androidx.compose.foundation.layout.FlowRowScope""" + +class GridConfigurationScope: + """Kotlin: androidx.compose.foundation.layout.GridConfigurationScope""" + +class IntrinsicSize: + """Kotlin: androidx.compose.foundation.layout.IntrinsicSize""" + +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: _t.Any = ..., horizontal_alignment: _t.Any = ..., *, 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: _t.Any = ..., horizontal_arrangement: _t.Any = ..., item_horizontal_alignment: _t.Any = ..., 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: _t.Any = ..., vertical_arrangement: _t.Any = ..., item_vertical_alignment: _t.Any = ..., 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: _t.Any = ..., horizontal_arrangement: _t.Any = ..., item_horizontal_alignment: _t.Any = ..., 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: _t.Any = ..., horizontal_arrangement: _t.Any = ..., item_horizontal_alignment: _t.Any = ..., 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: _t.Any = ..., vertical_arrangement: _t.Any = ..., item_vertical_alignment: _t.Any = ..., 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: _t.Any = ..., vertical_arrangement: _t.Any = ..., item_vertical_alignment: _t.Any = ..., 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 MutableWindowInsets(initial_insets: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.MutableWindowInsets(initialInsets: androidx.compose.foundation.layout.WindowInsets): androidx.compose.foundation.layout.MutableWindowInsets""" + ... + +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: _t.Any = ..., vertical_alignment: _t.Any = ..., *, 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: _t.Any = ..., 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: _t.Any = ..., 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: _t.Any = ..., horizontal_arrangement: _t.Any = ..., item_horizontal_alignment: _t.Any = ..., 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: _t.Any = ..., horizontal_arrangement: _t.Any = ..., item_horizontal_alignment: _t.Any = ..., 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: _t.Any = ..., vertical_arrangement: _t.Any = ..., item_vertical_alignment: _t.Any = ..., 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: _t.Any = ..., vertical_arrangement: _t.Any = ..., item_vertical_alignment: _t.Any = ..., 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""" + Bottom: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Bottom(): androidx.compose.foundation.layout.Arrangement.Vertical""" + Center: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Center(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.End(): androidx.compose.foundation.layout.Arrangement.Horizontal""" + SpaceAround: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceAround(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + SpaceBetween: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceBetween(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + SpaceEvenly: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceEvenly(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Start(): androidx.compose.foundation.layout.Arrangement.Horizontal""" + Top: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.foundation.layout.Arrangement.Top(): androidx.compose.foundation.layout.Arrangement.Vertical""" + +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/material3/__init__.pyi b/pythonx/compose/material3/__init__.pyi new file mode 100644 index 0000000..9070118 --- /dev/null +++ b/pythonx/compose/material3/__init__.pyi @@ -0,0 +1,1513 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +import typing as _t +import pythonx.compose.foundation +import pythonx.compose.layout +import pythonx.compose.ui +import pythonx.compose.ui.graphics +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 + +class _ColorScheme_contentColorFor(_t.Protocol): + def __call__(self, backgroundColor: _t.Any) -> _t.Any: ... + +class _ColorScheme_contentColorFor__ColorScheme_Color(_t.Protocol): + def __call__(self, backgroundColor: _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, onCheckedChange: _t.Callable[[bool], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: bool = ..., border: pythonx.compose.foundation.BorderStroke = ..., contentPadding: _t.Any = ..., interactionSource: _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, onCheckedChange: _t.Callable[[bool], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: bool = ..., border: pythonx.compose.foundation.BorderStroke = ..., contentPadding: _t.Any = ..., interactionSource: _t.Any | None = ..., icon: _t.Callable[[], None] = ..., *, label: _t.Callable[[], None]) -> None: ... + +class _SingleChoiceSegmentedButtonRowScope_SegmentedButton(_t.Protocol): + def __call__(self, selected: bool, onClick: _t.Callable[[], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: bool = ..., border: pythonx.compose.foundation.BorderStroke = ..., contentPadding: _t.Any = ..., interactionSource: _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, onClick: _t.Callable[[], None], shape: pythonx.compose.ui.graphics.Shape, modifier: pythonx.compose.ui.Modifier = ..., enabled: bool = ..., colors: bool = ..., border: pythonx.compose.foundation.BorderStroke = ..., contentPadding: _t.Any = ..., interactionSource: _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 = ..., caretShape: pythonx.compose.ui.graphics.Shape | None = ..., maxWidth: _t.Any = ..., shape: float = ..., contentColor: _t.Any = ..., containerColor: _t.Any = ..., tonalElevation: _t.Any = ..., shadowElevation: 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 = ..., caretShape: pythonx.compose.ui.graphics.Shape | None = ..., maxWidth: _t.Any = ..., shape: float = ..., colors: RichTooltipColors = ..., tonalElevation: _t.Any = ..., shadowElevation: float = ..., *, text: _t.Callable[[], None]) -> None: ... + +class AppBarColumnScope: + """Kotlin: androidx.compose.material3.AppBarColumnScope""" + +class AppBarRowScope: + """Kotlin: androidx.compose.material3.AppBarRowScope""" + +class BottomAppBarScrollBehavior: + """Kotlin: androidx.compose.material3.BottomAppBarScrollBehavior""" + +class ButtonColors: + """Kotlin: androidx.compose.material3.ButtonColors""" + +class ButtonElevation: + """Kotlin: androidx.compose.material3.ButtonElevation""" + +class CardColors: + """Kotlin: androidx.compose.material3.CardColors""" + +class CardElevation: + """Kotlin: androidx.compose.material3.CardElevation""" + +class CheckboxColors: + """Kotlin: androidx.compose.material3.CheckboxColors""" + +class ChipColors: + """Kotlin: androidx.compose.material3.ChipColors""" + +class ChipElevation: + """Kotlin: androidx.compose.material3.ChipElevation""" + +class ColorScheme: + """Kotlin: androidx.compose.material3.ColorScheme""" + 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] + +class DatePickerColors: + """Kotlin: androidx.compose.material3.DatePickerColors""" + +class DatePickerFormatter: + """Kotlin: androidx.compose.material3.DatePickerFormatter""" + +class DatePickerState: + """Kotlin: androidx.compose.material3.DatePickerState""" + +class DateRangePickerState: + """Kotlin: androidx.compose.material3.DateRangePickerState""" + +class DragHandleColors: + """Kotlin: androidx.compose.material3.DragHandleColors""" + +class DragHandleSizes: + """Kotlin: androidx.compose.material3.DragHandleSizes""" + +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""" + +class IconToggleButtonColors: + """Kotlin: androidx.compose.material3.IconToggleButtonColors""" + +class ListItemColors: + """Kotlin: androidx.compose.material3.ListItemColors""" + +class MenuItemColors: + """Kotlin: androidx.compose.material3.MenuItemColors""" + +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 NavigationDrawerItemColors: + """Kotlin: androidx.compose.material3.NavigationDrawerItemColors""" + +class NavigationItemColors: + """Kotlin: androidx.compose.material3.NavigationItemColors""" + +class NavigationRailItemColors: + """Kotlin: androidx.compose.material3.NavigationRailItemColors""" + +class RadioButtonColors: + """Kotlin: androidx.compose.material3.RadioButtonColors""" + +class RangeSliderState: + """Kotlin: androidx.compose.material3.RangeSliderState""" + +class RichTooltipColors: + """Kotlin: androidx.compose.material3.RichTooltipColors""" + +class SearchBarColors: + """Kotlin: androidx.compose.material3.SearchBarColors""" + +class SearchBarScrollBehavior: + """Kotlin: androidx.compose.material3.SearchBarScrollBehavior""" + +class SearchBarState: + """Kotlin: androidx.compose.material3.SearchBarState""" + +class SearchBarValue: + """Kotlin: androidx.compose.material3.SearchBarValue""" + +class SelectableChipColors: + """Kotlin: androidx.compose.material3.SelectableChipColors""" + +class SelectableChipElevation: + """Kotlin: androidx.compose.material3.SelectableChipElevation""" + +class SelectableDates: + """Kotlin: androidx.compose.material3.SelectableDates""" + +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""" + +class SliderState(_t.Any): + """Kotlin: androidx.compose.material3.SliderState""" + +class SnackbarData: + """Kotlin: androidx.compose.material3.SnackbarData""" + +class SwipeToDismissBoxValue: + """Kotlin: androidx.compose.material3.SwipeToDismissBoxValue""" + +class SwitchColors: + """Kotlin: androidx.compose.material3.SwitchColors""" + +class TabIndicatorScope: + """Kotlin: androidx.compose.material3.TabIndicatorScope""" + +class TextFieldColors: + """Kotlin: androidx.compose.material3.TextFieldColors""" + +class TextFieldLabelPosition: + """Kotlin: androidx.compose.material3.TextFieldLabelPosition""" + +class TextFieldLabelScope: + """Kotlin: androidx.compose.material3.TextFieldLabelScope""" + +class TimePickerColors: + """Kotlin: androidx.compose.material3.TimePickerColors""" + +class TooltipScope: + """Kotlin: androidx.compose.material3.TooltipScope""" + PlainTooltip: _t.ClassVar[_TooltipScope_PlainTooltip] + RichTooltip: _t.ClassVar[_TooltipScope_RichTooltip] + +class TopAppBarColors: + """Kotlin: androidx.compose.material3.TopAppBarColors""" + +class TopAppBarScrollBehavior: + """Kotlin: androidx.compose.material3.TopAppBarScrollBehavior""" + +class WideNavigationRailColors: + """Kotlin: androidx.compose.material3.WideNavigationRailColors""" + +class WideNavigationRailState: + """Kotlin: androidx.compose.material3.WideNavigationRailState""" + +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[[_t.Any], 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 AppBarMenuState() -> _t.Any: + """Kotlin: androidx.compose.material3.AppBarMenuState(): androidx.compose.material3.AppBarMenuState""" + ... + +def AppBarRow(overflow_indicator: _t.Callable[[_t.Any], 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: _t.Any = ..., 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[[_t.Any], 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 BottomSheetScaffoldState(bottom_sheet_state: _t.Any, snackbar_host_state: _t.Any) -> _t.Any: + """Kotlin: androidx.compose.material3.BottomSheetScaffoldState(bottomSheetState: androidx.compose.material3.SheetState, snackbarHostState: androidx.compose.material3.SnackbarHostState): androidx.compose.material3.BottomSheetScaffoldState""" + ... + +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: _t.Any, 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: _t.Any = ..., 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 DragHandleShapes(shape: pythonx.compose.ui.graphics.Shape, pressed_shape: pythonx.compose.ui.graphics.Shape, dragged_shape: pythonx.compose.ui.graphics.Shape) -> _t.Any: + """Kotlin: 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""" + ... + +def DrawerState(initial_value: DrawerValue, confirm_state_change: _t.Callable[[DrawerValue], bool] = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.DrawerState(initialValue: androidx.compose.material3.DrawerValue, confirmStateChange: kotlin.Function1): androidx.compose.material3.DrawerState""" + ... + +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: _t.Any, 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: _t.Any = ..., typography: _t.Any = ..., *, 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: _t.Any = ..., 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: _t.Any = ..., *, 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 ModalBottomSheetProperties(should_dismiss_on_back_press: bool = ..., should_dismiss_on_click_outside: bool = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.ModalBottomSheetProperties(shouldDismissOnBackPress: kotlin.Boolean, shouldDismissOnClickOutside: kotlin.Boolean): androidx.compose.material3.ModalBottomSheetProperties""" + ... + +def ModalDrawerSheet__DrawerState_Modifier_Shape_Color_Color_Dp_WindowInsets_Unit(drawer_state: _t.Any, 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: _t.Any = ..., 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: _t.Any = ..., expanded_properties: _t.Any = ..., *, 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 ModalWideNavigationRailProperties(should_dismiss_on_back_press: bool = ...) -> _t.Any: + """Kotlin: androidx.compose.material3.ModalWideNavigationRailProperties(shouldDismissOnBackPress: kotlin.Boolean): androidx.compose.material3.ModalWideNavigationRailProperties""" + ... + +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: bool = ..., 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: _t.Any, 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: _t.Any | None = ..., output_transformation: _t.Any | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: _t.Any | None = ..., line_limits: _t.Any = ..., 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: _t.Any = ..., shape: float = ..., content_color: _t.Any = ..., container_color: _t.Any = ..., tonal_elevation: _t.Any = ..., 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: _t.Any = ..., shape: float = ..., colors: RichTooltipColors = ..., tonal_elevation: _t.Any = ..., 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: bool = ..., 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: bool = ..., 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 Shapes(extra_small: _t.Any = ..., small: _t.Any = ..., medium: _t.Any = ..., large: _t.Any = ..., extra_large: _t.Any = ...) -> _t.Any: + """Kotlin: 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""" + ... + +def SheetState(skip_partially_expanded: bool, positional_threshold: _t.Callable[[], float], velocity_threshold: _t.Callable[[], float], initial_value: SheetValue = ..., confirm_value_change: _t.Callable[[SheetValue], bool] = ..., skip_hidden_state: bool = ...) -> _t.Any: + """Kotlin: 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""" + ... + +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: _t.Any, 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 SnackbarHostState() -> _t.Any: + """Kotlin: androidx.compose.material3.SnackbarHostState(): androidx.compose.material3.SnackbarHostState""" + ... + +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: _t.Any, 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 SwipeToDismissBoxState__SwipeToDismissBoxValue_Density_Boolean_Float(initial_value: SwipeToDismissBoxValue, density: _t.Any, confirm_value_change: _t.Callable[[SwipeToDismissBoxValue], bool] = ..., *, positional_threshold: _t.Callable[[float], float]) -> _t.Any: + """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]) -> _t.Any: + """Kotlin: androidx.compose.material3.SwipeToDismissBoxState(initialValue: androidx.compose.material3.SwipeToDismissBoxValue, positionalThreshold: kotlin.Function1): androidx.compose.material3.SwipeToDismissBoxState""" + ... + +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: _t.Any, 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: _t.Any | None = ..., output_transformation: _t.Any | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: _t.Any | None = ..., line_limits: _t.Any = ..., 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 Typography(display_large: _t.Any, display_medium: _t.Any, display_small: _t.Any, headline_large: _t.Any, headline_medium: _t.Any, headline_small: _t.Any, title_large: _t.Any, title_medium: _t.Any, title_small: _t.Any, body_large: _t.Any, body_medium: _t.Any, body_small: _t.Any, label_large: _t.Any, label_medium: _t.Any, label_small: _t.Any) -> _t.Any: + """Kotlin: 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""" + ... + +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: _t.Any = ..., 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: _t.Any = ..., *, 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: _t.Any = ..., snackbar_host_state: _t.Any = ...) -> _t.Any: + """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] = ...) -> _t.Any: + """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] = ...) -> _t.Any: + """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 = ...) -> _t.Any: + """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] = ...) -> _t.Any: + """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] = ...) -> _t.Any: + """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""" + ... + +@_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: _t.Any, 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: _t.Any, 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: _t.Any, 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: _t.Any, 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: _t.Any | None = ..., output_transformation: _t.Any | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: _t.Any | None = ..., line_limits: _t.Any = ..., 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: bool = ..., 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: bool = ..., 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 SwipeToDismissBoxState(initial_value: SwipeToDismissBoxValue, density: _t.Any, confirm_value_change: _t.Callable[[SwipeToDismissBoxValue], bool] = ..., *, positional_threshold: _t.Callable[[float], float]) -> _t.Any: ... +@_t.overload +def SwipeToDismissBoxState(initial_value: SwipeToDismissBoxValue, positional_threshold: _t.Callable[[float], float]) -> _t.Any: ... # 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: _t.Any, 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: _t.Any | None = ..., output_transformation: _t.Any | None = ..., keyboard_options: _t.Any = ..., on_keyboard_action: _t.Any | None = ..., line_limits: _t.Any = ..., 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] = ...) -> _t.Any: ... +@_t.overload +def remember_swipe_to_dismiss_box_state(initial_value: SwipeToDismissBoxValue = ..., positional_threshold: _t.Callable[[float], float] = ...) -> _t.Any: ... # 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""" + +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""" + +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[_t.Any] + """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""" + +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""" + +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""" + +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""" + +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""" + 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""" + +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 WideNavigationRailDefaults: + """Kotlin: androidx.compose.material3.WideNavigationRailDefaults""" + ModalExpandedProperties: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.WideNavigationRailDefaults.ModalExpandedProperties(): androidx.compose.material3.ModalWideNavigationRailProperties""" + arrangement: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.material3.WideNavigationRailDefaults.arrangement(): androidx.compose.foundation.layout.Arrangement.Vertical""" diff --git a/pythonx/compose/py.typed b/pythonx/compose/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/pythonx/compose/runtime/__init__.pyi b/pythonx/compose/runtime/__init__.pyi new file mode 100644 index 0000000..06d9004 --- /dev/null +++ b/pythonx/compose/runtime/__init__.pyi @@ -0,0 +1,28 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +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 Composer: + """Kotlin: androidx.compose.runtime.Composer""" + materialize: _t.ClassVar[_Composer_materialize] + +class CompositionLocalAccessorScope: + """Kotlin: androidx.compose.runtime.CompositionLocalAccessorScope""" + media_query: _t.ClassVar[_CompositionLocalAccessorScope_mediaQuery] + media_query__CompositionLocalAccessorScope_Boolean: _t.ClassVar[_CompositionLocalAccessorScope_mediaQuery__CompositionLocalAccessorScope_Boolean] + +class State: + """Kotlin: androidx.compose.runtime.State""" + +def Composable(target): + ... diff --git a/pythonx/compose/ui/__init__.pyi b/pythonx/compose/ui/__init__.pyi new file mode 100644 index 0000000..83202af --- /dev/null +++ b/pythonx/compose/ui/__init__.pyi @@ -0,0 +1,838 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +import typing as _t +import pythonx.compose.layout +import pythonx.compose.runtime +import pythonx.compose.ui.graphics + +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, isMeasurementApproachInProgress: _t.Callable[[_t.Any], bool], isPlacementApproachInProgress: _t.Callable[[_t.Any, _t.Any], bool] = ..., *, approachMeasure: _t.Callable[[_t.Any, _t.Any, _t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_aspectRatio(_t.Protocol): + def __call__(self, ratio: float, matchHeightConstraintsFirst: bool = ...) -> Modifier: ... + +class _Modifier_blur(_t.Protocol): + @_t.overload + def __call__(self, radius: float, edgeTreatment: _t.Any = ...) -> Modifier: ... + @_t.overload + def __call__(self, radiusX: float, radiusY: float, edgeTreatment: _t.Any = ...) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_blur__Dp_BlurredEdgeTreatment(_t.Protocol): + def __call__(self, radius: float, edgeTreatment: _t.Any = ...) -> Modifier: ... + +class _Modifier_blur__Dp_Dp_BlurredEdgeTreatment(_t.Protocol): + def __call__(self, radiusX: float, radiusY: float, edgeTreatment: _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, paddingValues: _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, paddingValues: _t.Any) -> Modifier: ... + +class _Modifier_consumeWindowInsets__WindowInsets(_t.Protocol): + def __call__(self, insets: _t.Any) -> Modifier: ... + +class _Modifier_contentType(_t.Protocol): + def __call__(self, contentType: _t.Any) -> Modifier: ... + +class _Modifier_defaultMinSize(_t.Protocol): + def __call__(self, minWidth: float = ..., minHeight: float = ...) -> Modifier: ... + +class _Modifier_displayCutoutPadding(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_drawBehind(_t.Protocol): + def __call__(self, onDraw: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_drawWithCache(_t.Protocol): + def __call__(self, onBuildDrawCache: _t.Callable[[_t.Any], _t.Any]) -> Modifier: ... + +class _Modifier_drawWithContent(_t.Protocol): + def __call__(self, onDraw: _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, focusRequester: _t.Any) -> Modifier: ... + @_t.overload + def __call__(self, focusRequester: _t.Any, focusOrderReceiver: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + @_t.overload + def __call__(self, focusOrderReceiver: _t.Callable[[_t.Any], None]) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_focusOrder__FocusRequester(_t.Protocol): + def __call__(self, focusRequester: _t.Any) -> Modifier: ... + +class _Modifier_focusOrder__FocusRequester_Unit(_t.Protocol): + def __call__(self, focusRequester: _t.Any, focusOrderReceiver: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_focusOrder__Unit(_t.Protocol): + def __call__(self, focusOrderReceiver: _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, focusRequester: _t.Any) -> Modifier: ... + +class _Modifier_focusRestorer(_t.Protocol): + @_t.overload + def __call__(self, fallback: _t.Any = ...) -> Modifier: ... + @_t.overload + def __call__(self, onRestoreFailed: _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, onRestoreFailed: _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, scaleX: float, scaleY: float, alpha: float, translationX: float, translationY: float, shadowElevation: float, rotationX: float, rotationY: float, rotationZ: float, cameraDistance: float, transformOrigin: _t.Any, shape: pythonx.compose.ui.graphics.Shape, clip: bool, renderEffect: pythonx.compose.ui.graphics.RenderEffect | None, ambientShadowColor: _t.Any, spotShadowColor: _t.Any, compositingStrategy: _t.Any, blendMode: _t.Any, colorFilter: 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, scaleX: float, scaleY: float, alpha: float, translationX: float, translationY: float, shadowElevation: float, rotationX: float, rotationY: float, rotationZ: float, cameraDistance: float, transformOrigin: _t.Any, shape: pythonx.compose.ui.graphics.Shape, clip: bool, renderEffect: pythonx.compose.ui.graphics.RenderEffect | None, ambientShadowColor: _t.Any, spotShadowColor: _t.Any, compositingStrategy: _t.Any, blendMode: _t.Any, colorFilter: 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, intrinsicSize: 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, intrinsicSize: 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, inspectorInfo: _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_mouseScrollFilter(_t.Protocol): + def __call__(self, onMouseScroll: _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, minDurationMs: int = ..., minFractionVisible: float = ..., viewportBounds: _t.Any | None = ..., *, callback: _t.Callable[[], None]) -> Modifier: ... + +class _Modifier_onFocusChanged(_t.Protocol): + def __call__(self, onFocusChanged: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onFocusEvent(_t.Protocol): + def __call__(self, onFocusEvent: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onGloballyPositioned(_t.Protocol): + def __call__(self, onGloballyPositioned: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onInterceptKeyBeforeSoftKeyboard(_t.Protocol): + def __call__(self, onInterceptKeyBeforeSoftKeyboard: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onKeyEvent(_t.Protocol): + def __call__(self, onKeyEvent: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onLayoutRectChanged(_t.Protocol): + def __call__(self, throttleMillis: int = ..., debounceMillis: int = ..., *, callback: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onPlaced(_t.Protocol): + def __call__(self, onPlaced: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onPointerEvent(_t.Protocol): + def __call__(self, eventType: _t.Any, __a1: _t.Any, /, onEvent: _t.Callable[[_t.Any, _t.Any], None]) -> Modifier: ... + +class _Modifier_onPreInterceptKeyBeforeSoftKeyboard(_t.Protocol): + def __call__(self, onPreInterceptKeyBeforeSoftKeyboard: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onPreRotaryScrollEvent(_t.Protocol): + def __call__(self, onPreRotaryScrollEvent: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onPreviewKeyEvent(_t.Protocol): + def __call__(self, onPreviewKeyEvent: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onRotaryScrollEvent(_t.Protocol): + def __call__(self, onRotaryScrollEvent: _t.Callable[[_t.Any], bool]) -> Modifier: ... + +class _Modifier_onSizeChanged(_t.Protocol): + def __call__(self, onSizeChanged: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_onVisibilityChanged(_t.Protocol): + def __call__(self, minDurationMs: int = ..., minFractionVisible: float = ..., viewportBounds: _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, paddingValues: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_paddingFrom(_t.Protocol): + @_t.overload + def __call__(self, alignmentLine: _t.Any, before: float = ..., after: float = ...) -> Modifier: ... + @_t.overload + def __call__(self, alignmentLine: _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, alignmentLine: _t.Any, before: float = ..., after: float = ...) -> Modifier: ... + +class _Modifier_paddingFrom__AlignmentLine_TextUnit_TextUnit(_t.Protocol): + def __call__(self, alignmentLine: _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, paddingValues: _t.Any) -> Modifier: ... + +class _Modifier_paint(_t.Protocol): + def __call__(self, painter: _t.Any, sizeToIntrinsics: bool = ..., alignment: _t.Any = ..., contentScale: _t.Any = ..., alpha: float = ..., colorFilter: pythonx.compose.ui.graphics.ColorFilter | None = ...) -> Modifier: ... + +class _Modifier_pointerHoverIcon(_t.Protocol): + def __call__(self, icon: _t.Any, overrideDescendants: bool = ...) -> Modifier: ... + +class _Modifier_pointerMoveFilter(_t.Protocol): + def __call__(self, onMove: _t.Callable[[_t.Any], bool] = ..., onExit: _t.Callable[[], bool] = ..., onEnter: _t.Callable[[], bool] = ...) -> Modifier: ... + +class _Modifier_preferredFrameRate(_t.Protocol): + @_t.overload + def __call__(self, frameRate: float) -> Modifier: ... + @_t.overload + def __call__(self, frameRateCategory: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_preferredFrameRate__Float(_t.Protocol): + def __call__(self, frameRate: float) -> Modifier: ... + +class _Modifier_preferredFrameRate__FrameRateCategory(_t.Protocol): + def __call__(self, frameRateCategory: _t.Any) -> Modifier: ... + +class _Modifier_pullToRefresh(_t.Protocol): + def __call__(self, isRefreshing: bool, state: _t.Any, enabled: bool = ..., threshold: float = ..., *, onRefresh: _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, intrinsicSize: 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, intrinsicSize: 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, minWidth: float = ..., minHeight: float = ..., maxWidth: float = ..., maxHeight: 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, intrinsicSize: 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, intrinsicSize: 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, scaleX: float, scaleY: 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, scaleX: float, scaleY: float) -> Modifier: ... + +class _Modifier_semantics(_t.Protocol): + def __call__(self, mergeDescendants: bool = ..., *, properties: _t.Callable[[_t.Any], None]) -> Modifier: ... + +class _Modifier_sensitiveContent(_t.Protocol): + def __call__(self, isContentSensitive: bool = ...) -> Modifier: ... + +class _Modifier_shadow(_t.Protocol): + def __call__(self, elevation: float, shape: pythonx.compose.ui.graphics.Shape = ..., clip: bool = ..., ambientColor: _t.Any = ..., spotColor: _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, minWidth: float = ..., minHeight: float = ..., maxWidth: float = ..., maxHeight: 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, overrideDescendants: bool = ..., touchBoundsExpansion: _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, intrinsicSize: 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, intrinsicSize: 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: _t.Any = ..., 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: _t.Any = ..., unbounded: bool = ...) -> Modifier: ... + +class _Modifier_zIndex(_t.Protocol): + def __call__(self, zIndex: float) -> Modifier: ... + +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] + 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_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 UiMediaScope: + """Kotlin: androidx.compose.ui.UiMediaScope""" + +def BiasAbsoluteAlignment(horizontal_bias: float, vertical_bias: float) -> _t.Any: + """Kotlin: androidx.compose.ui.BiasAbsoluteAlignment(horizontalBias: kotlin.Float, verticalBias: kotlin.Float): androidx.compose.ui.BiasAbsoluteAlignment""" + ... + +def BiasAlignment(horizontal_bias: float, vertical_bias: float) -> _t.Any: + """Kotlin: androidx.compose.ui.BiasAlignment(horizontalBias: kotlin.Float, verticalBias: kotlin.Float): androidx.compose.ui.BiasAlignment""" + ... + +def CombinedModifier(outer: Modifier, inner: Modifier) -> _t.Any: + """Kotlin: androidx.compose.ui.CombinedModifier(outer: androidx.compose.ui.Modifier, inner: androidx.compose.ui.Modifier): androidx.compose.ui.CombinedModifier""" + ... + +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 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[_t.Any] + """Kotlin: androidx.compose.ui.AbsoluteAlignment.Left(): androidx.compose.ui.Alignment.Horizontal""" + Right: _t.ClassVar[_t.Any] + """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""" + Bottom: _t.ClassVar[_t.Any] + """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[_t.Any] + """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[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.CenterVertically(): androidx.compose.ui.Alignment.Vertical""" + End: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.End(): androidx.compose.ui.Alignment.Horizontal""" + Start: _t.ClassVar[_t.Any] + """Kotlin: androidx.compose.ui.Alignment.Start(): androidx.compose.ui.Alignment.Horizontal""" + Top: _t.ClassVar[_t.Any] + """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/graphics/__init__.pyi b/pythonx/compose/ui/graphics/__init__.pyi new file mode 100644 index 0000000..550b0c6 --- /dev/null +++ b/pythonx/compose/ui/graphics/__init__.pyi @@ -0,0 +1,621 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +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 Brush: + """Kotlin: androidx.compose.ui.graphics.Brush""" + +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 ColorProducer: + """Kotlin: androidx.compose.ui.graphics.ColorProducer""" + +class GraphicsContext: + """Kotlin: androidx.compose.ui.graphics.GraphicsContext""" + +class Outline: + """Kotlin: androidx.compose.ui.graphics.Outline""" + +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""" + +class RenderEffect: + """Kotlin: androidx.compose.ui.graphics.RenderEffect""" + as_desktop_image_filter: _t.ClassVar[_RenderEffect_asDesktopImageFilter] + +class Shader: + """Kotlin: androidx.compose.ui.graphics.Shader""" + +class Shape: + """Kotlin: androidx.compose.ui.graphics.Shape""" + +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 SkiaGraphicsContext(measure_draw_bounds: bool = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.graphics.SkiaGraphicsContext(measureDrawBounds: kotlin.Boolean): androidx.compose.ui.graphics.SkiaGraphicsContext""" + ... + +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: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: + """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: _t.Any, stop: _t.Any, fraction: float) -> _t.Any: ... # 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""" + 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 Shadow: + """Kotlin: androidx.compose.ui.graphics.Shadow""" + +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/text/__init__.pyi b/pythonx/compose/ui/text/__init__.pyi new file mode 100644 index 0000000..2ce79e5 --- /dev/null +++ b/pythonx/compose/ui/text/__init__.pyi @@ -0,0 +1,311 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +import typing as _t +import pythonx.compose.ui.graphics +import pythonx.compose.ui.unit + +class MultiParagraphIntrinsics: + """Kotlin: androidx.compose.ui.text.MultiParagraphIntrinsics""" + +class ParagraphIntrinsics: + """Kotlin: androidx.compose.ui.text.ParagraphIntrinsics""" + +class ParagraphStyle: + """Kotlin: androidx.compose.ui.text.ParagraphStyle""" + +class SpanStyle: + """Kotlin: androidx.compose.ui.text.SpanStyle""" + +class TextLayoutResult: + """Kotlin: androidx.compose.ui.text.TextLayoutResult""" + +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 MultiParagraph(intrinsics: MultiParagraphIntrinsics, max_lines: int = ..., ellipsis: bool = ..., *, width: float) -> _t.Any: + """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 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 PlatformTextStyle(span_style: _t.Any | None, paragraph_style: _t.Any | None) -> _t.Any: + """Kotlin: androidx.compose.ui.text.PlatformTextStyle(spanStyle: androidx.compose.ui.text.PlatformSpanStyle?, paragraphStyle: androidx.compose.ui.text.PlatformParagraphStyle?): androidx.compose.ui.text.PlatformTextStyle""" + ... + +def StringAnnotation(value: str) -> str: + """Kotlin: androidx.compose.ui.text.StringAnnotation(value: kotlin.String): androidx.compose.ui.text.StringAnnotation""" + ... + +def TextLinkStyles(style: SpanStyle | None = ..., focused_style: SpanStyle | None = ..., hovered_style: SpanStyle | None = ..., pressed_style: SpanStyle | None = ...) -> _t.Any: + """Kotlin: 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""" + ... + +def TextMeasurer(default_font_family_resolver: _t.Any, default_density: _t.Any, default_layout_direction: pythonx.compose.ui.unit.LayoutDirection, cache_size: int = ...) -> _t.Any: + """Kotlin: 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""" + ... + +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 UrlAnnotation(url: str) -> _t.Any: + """Kotlin: androidx.compose.ui.text.UrlAnnotation(url: kotlin.String): androidx.compose.ui.text.UrlAnnotation""" + ... + +def VerbatimTtsAnnotation(verbatim: str) -> _t.Any: + """Kotlin: androidx.compose.ui.text.VerbatimTtsAnnotation(verbatim: kotlin.String): androidx.compose.ui.text.VerbatimTtsAnnotation""" + ... + +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: _t.Any | 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: _t.Any | 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: _t.Any, 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 = ...) -> _t.Any: + """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""" + ... + +@_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: _t.Any | 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: _t.Any | 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: _t.Any, 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 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__.pyi b/pythonx/compose/ui/unit/__init__.pyi new file mode 100644 index 0000000..057daef --- /dev/null +++ b/pythonx/compose/ui/unit/__init__.pyi @@ -0,0 +1,299 @@ +# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs (artifact kotlin-stubs, workflow run 37077627980, commit 86012ca0, Compose 1.11.1). Do not edit. +# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: the runtime does not translate a method's keywords yet. +import typing as _t + +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""" + ... + +@_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/tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/Arrangement/__init__.pyi b/tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/Arrangement/__init__.pyi new file mode 100644 index 0000000..e722173 --- /dev/null +++ b/tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/Arrangement/__init__.pyi @@ -0,0 +1,19 @@ +# GENERATED by python-multiplatform-gradle-plugin. Do not edit. + +import typing as _t + +End: _t.Any +"""Kotlin: androidx.compose.foundation.layout.Arrangement.End(): androidx.compose.foundation.layout.Arrangement.Horizontal""" + +SpaceBetween: _t.Any +"""Kotlin: androidx.compose.foundation.layout.Arrangement.SpaceBetween(): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + +Start: _t.Any +"""Kotlin: androidx.compose.foundation.layout.Arrangement.Start(): androidx.compose.foundation.layout.Arrangement.Horizontal""" + +Top: _t.Any +"""Kotlin: androidx.compose.foundation.layout.Arrangement.Top(): androidx.compose.foundation.layout.Arrangement.Vertical""" + +def spacedBy(space: float) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.Arrangement.spacedBy(space: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.Arrangement.HorizontalOrVertical""" + ... diff --git a/tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/__init__.pyi b/tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/__init__.pyi new file mode 100644 index 0000000..3edfd0e --- /dev/null +++ b/tests/fixtures/kotlin_stubs_v2/androidx/compose/foundation/layout/__init__.pyi @@ -0,0 +1,61 @@ +# GENERATED by python-multiplatform-gradle-plugin. Do not edit. + +import typing as _t +import androidx.compose.ui +import androidx.compose.ui.draw + +class ColumnScope: + """Kotlin: androidx.compose.foundation.layout.ColumnScope""" + +def Column(modifier: androidx.compose.ui.Modifier = ..., verticalArrangement: _t.Any = ..., *, content: _t.Callable[[ColumnScope], None]) -> None: + """Kotlin: androidx.compose.foundation.layout.Column(modifier: androidx.compose.ui.Modifier, verticalArrangement: androidx.compose.foundation.layout.Arrangement.Vertical, content: kotlin.Function1): kotlin.Unit""" + ... + +def Row(modifier: androidx.compose.ui.Modifier = ...) -> None: + """Kotlin: androidx.compose.foundation.layout.Row(modifier: androidx.compose.ui.Modifier): kotlin.Unit""" + ... + +def Spacer(modifier: androidx.compose.ui.Modifier = ...) -> None: + """Kotlin: androidx.compose.foundation.layout.Spacer(modifier: androidx.compose.ui.Modifier): kotlin.Unit""" + ... + +def fillMaxWidth(receiver: androidx.compose.ui.Modifier, /) -> androidx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.fillMaxWidth(): androidx.compose.ui.Modifier""" + ... + +def padding__Dp(receiver: androidx.compose.ui.Modifier, /, all: float) -> androidx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.padding(all: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def padding__Dp_Dp(receiver: androidx.compose.ui.Modifier, /, horizontal: float = ..., vertical: float = ...) -> androidx.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: androidx.compose.ui.Modifier, /, start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> androidx.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: androidx.compose.ui.Modifier, /, paddingValues: _t.Any) -> androidx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.padding(paddingValues: androidx.compose.foundation.layout.PaddingValues): androidx.compose.ui.Modifier""" + ... + +def paddingValuesOf(all: float) -> _t.Any: + """Kotlin: androidx.compose.foundation.layout.paddingValuesOf(all: androidx.compose.ui.unit.Dp): androidx.compose.foundation.layout.PaddingValues""" + ... + +def size__Dp(receiver: androidx.compose.ui.Modifier, /, size: float) -> androidx.compose.ui.Modifier: + """Kotlin: androidx.compose.ui.Modifier.size(size: androidx.compose.ui.unit.Dp): androidx.compose.ui.Modifier""" + ... + +def zIndexOf(receiver: androidx.compose.ui.Modifier, /, zIndex: float) -> androidx.compose.ui.draw.DrawResult: + """A return type in a Kotlin package the manifest does not map.""" + ... + +@_t.overload +def padding(receiver: androidx.compose.ui.Modifier, /, all: float) -> androidx.compose.ui.Modifier: ... +@_t.overload +def padding(receiver: androidx.compose.ui.Modifier, /, horizontal: float = ..., vertical: float = ...) -> androidx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] +@_t.overload +def padding(receiver: androidx.compose.ui.Modifier, /, start: float = ..., top: float = ..., end: float = ..., bottom: float = ...) -> androidx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] +@_t.overload +def padding(receiver: androidx.compose.ui.Modifier, /, paddingValues: _t.Any) -> androidx.compose.ui.Modifier: ... # type: ignore[overload-cannot-match] diff --git a/tests/fixtures/kotlin_stubs_v2/androidx/compose/material3/__init__.pyi b/tests/fixtures/kotlin_stubs_v2/androidx/compose/material3/__init__.pyi new file mode 100644 index 0000000..1784714 --- /dev/null +++ b/tests/fixtures/kotlin_stubs_v2/androidx/compose/material3/__init__.pyi @@ -0,0 +1,10 @@ +# GENERATED by python-multiplatform-gradle-plugin. Do not edit. + +import typing as _t +import androidx.compose.ui +import androidx.compose.ui.text +import kotlin.collections + +def Text(text: str, modifier: androidx.compose.ui.Modifier = ..., fontSize: _t.Any = ..., inlineContent: kotlin.collections.Map = ..., onTextLayout: _t.Callable[[androidx.compose.ui.text.TextLayoutResult], None] | None = ..., style: androidx.compose.ui.text.ParagraphStyle = ...) -> None: + """Kotlin: androidx.compose.material3.Text(text: kotlin.String, modifier: androidx.compose.ui.Modifier, fontSize: androidx.compose.ui.unit.TextUnit, inlineContent: kotlin.collections.Map, onTextLayout: kotlin.Function1, style: androidx.compose.ui.text.ParagraphStyle): kotlin.Unit""" + ... diff --git a/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/__init__.pyi b/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/__init__.pyi new file mode 100644 index 0000000..5e2af2b --- /dev/null +++ b/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/__init__.pyi @@ -0,0 +1,45 @@ +# GENERATED by python-multiplatform-gradle-plugin. Do not edit. + +import typing as _t +import androidx.compose.foundation.layout + +class _Modifier_fillMaxWidth(_t.Protocol): + def __call__(self) -> Modifier: ... + +class _Modifier_padding(_t.Protocol): + @_t.overload + def __call__(self, all: float) -> Modifier: ... + @_t.overload + def __call__(self, paddingValues: _t.Any) -> Modifier: ... # type: ignore[overload-cannot-match] + +class _Modifier_padding__PaddingValues(_t.Protocol): + def __call__(self, paddingValues: _t.Any) -> Modifier: ... + +class _Modifier_zIndex(_t.Protocol): + def __call__(self, zIndex: float) -> Modifier: ... + +class _Modifier_column(_t.Protocol): + def __call__(self, scope: androidx.compose.foundation.layout.ColumnScope) -> Modifier: ... + +class Alignment: + """Kotlin: androidx.compose.ui.Alignment""" + Center: _t.ClassVar[_t.Any] + CenterHorizontally: _t.ClassVar[_t.Any] + End: _t.ClassVar[_t.Any] + Top: _t.ClassVar[_t.Any] + +class Modifier: + """Kotlin: androidx.compose.ui.Modifier""" + column: _t.ClassVar[_Modifier_column] + fillMaxWidth: _t.ClassVar[_Modifier_fillMaxWidth] + padding: _t.ClassVar[_Modifier_padding] + padding__PaddingValues: _t.ClassVar[_Modifier_padding__PaddingValues] + zIndex: _t.ClassVar[_Modifier_zIndex] + +def describeModifier(modifier: Modifier) -> str: + """Kotlin: androidx.compose.ui.describeModifier(modifier: androidx.compose.ui.Modifier): kotlin.String""" + ... + +def toURLString(raw: str) -> str: + """Kotlin: androidx.compose.ui.toURLString(raw: kotlin.String): kotlin.String""" + ... diff --git a/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/TextStyle/__init__.pyi b/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/TextStyle/__init__.pyi new file mode 100644 index 0000000..dd76382 --- /dev/null +++ b/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/TextStyle/__init__.pyi @@ -0,0 +1,6 @@ +# GENERATED by python-multiplatform-gradle-plugin. Do not edit. + +import typing as _t + +Default: _t.Any +"""Kotlin: androidx.compose.ui.text.TextStyle.Default(): androidx.compose.ui.text.TextStyle""" diff --git a/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/__init__.pyi b/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/__init__.pyi new file mode 100644 index 0000000..8da301b --- /dev/null +++ b/tests/fixtures/kotlin_stubs_v2/androidx/compose/ui/text/__init__.pyi @@ -0,0 +1,10 @@ +# GENERATED by python-multiplatform-gradle-plugin. Do not edit. + +import typing as _t + +class TextLayoutResult: + """Kotlin: androidx.compose.ui.text.TextLayoutResult""" + +def TextStyle(fontSize: _t.Any = ...) -> _t.Any: + """Kotlin: androidx.compose.ui.text.TextStyle(fontSize: androidx.compose.ui.unit.TextUnit): androidx.compose.ui.text.TextStyle""" + ... diff --git a/tests/test_stubs.py b/tests/test_stubs.py index 880d0e5..356a777 100644 --- a/tests/test_stubs.py +++ b/tests/test_stubs.py @@ -1,8 +1,15 @@ """Pythonic stubs from the binder's Kotlin-named ones, by the rule the runtime resolves names with. -The input here is a fixture shaped like python-multiplatform's `PythonStubsTask` output, holding the -same declarations `fake_host.py` binds. So the second class can do what a stub is for and check it: -the signature an editor reads from the stub is the signature `inspect.signature` reports at run time. +The inputs here are two fixtures shaped like python-multiplatform's `PythonStubsTask` output, holding +the same declarations `fake_host.py` binds: `kotlin_stubs` in the first format (bare functions, +explicit overloads only) and `kotlin_stubs_v2` in the current one (`import typing as _t`, one stub +class per bound Kotlin type with its extension members as `ClassVar`s of callable protocols, the +binder's own `@overload` sets, Kotlin objects either as `/__init__.pyi` or as a class in the +parent stub). So `TheStubMatchesTheRuntime` can do what a stub is for and check it: the signature an +editor reads from the stub is the signature `inspect.signature` reports at run time. + +`TheCommittedStubs` holds the stubs this repository ships to the real input, python-multiplatform's +`kotlin-stubs` artefact, when it has been downloaded to `.tmp/kotlin-stubs.zip`. """ from __future__ import annotations @@ -10,7 +17,9 @@ import ast import inspect import sys +import tempfile import unittest +import zipfile from pathlib import Path HERE = Path(__file__).resolve().parent @@ -24,11 +33,20 @@ import gen_stubs # noqa: E402 KOTLIN_STUBS = HERE / "fixtures" / "kotlin_stubs" +KOTLIN_STUBS_V2 = HERE / "fixtures" / "kotlin_stubs_v2" +ARTEFACT = REPO / ".tmp" / "kotlin-stubs.zip" PACKAGE = REPO / "pythonx" +COMPOSE = PACKAGE / "compose" +LAYOUT = COMPOSE / "layout" / "__init__.pyi" +LONG_LAYOUT = COMPOSE / "foundation" / "layout" / "__init__.pyi" +UI = COMPOSE / "ui" / "__init__.pyi" +TEXT = COMPOSE / "ui" / "text" / "__init__.pyi" +MATERIAL3 = COMPOSE / "material3" / "__init__.pyi" -def _generated() -> dict[Path, str]: - return gen_stubs.generate(KOTLIN_STUBS, PACKAGE) + +def _generated(root: Path = KOTLIN_STUBS) -> dict[Path, str]: + return gen_stubs.generate(root, PACKAGE) def _functions(text: str) -> dict[str, list[ast.FunctionDef]]: @@ -39,15 +57,40 @@ def _functions(text: str) -> dict[str, list[ast.FunctionDef]]: return found +def _classes(text: str) -> dict[str, ast.ClassDef]: + return {node.name: node for node in ast.parse(text).body if isinstance(node, ast.ClassDef)} + + +def _members(cls: ast.ClassDef) -> dict[str, ast.stmt]: + found: dict[str, ast.stmt] = {} + for node in cls.body: + if isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + found[node.target.id] = node + elif isinstance(node, ast.FunctionDef): + found.setdefault(node.name, node) + return found + + def _parameter_names(function: ast.FunctionDef) -> list[str]: a = function.args return [p.arg for p in (*a.posonlyargs, *a.args, *a.kwonlyargs)] -LAYOUT = PACKAGE / "compose" / "foundation" / "layout" / "__init__.pyi" +def _imports(text: str) -> list[str]: + return [ast.unparse(node) for node in ast.parse(text).body if isinstance(node, (ast.Import, ast.ImportFrom))] + + +def _code_names(text: str) -> set[str]: + """Every dotted name the stub's code (not its docstrings or comments) refers to.""" + names = set() + for node in ast.walk(ast.parse(text)): + if isinstance(node, (ast.Attribute, ast.Name)): + names.add(ast.unparse(node)) + return names class TheConversion(unittest.TestCase): + """The first upstream format, still converted the way it always was.""" def setUp(self): self.stubs = _generated() @@ -69,7 +112,7 @@ def test_an_overload_set_gets_its_base_name_as_overloads(self): padding = _functions(self.stubs[LAYOUT])["padding"] self.assertEqual(4, len(padding)) for variant in padding: - self.assertEqual(["overload"], [ast.unparse(d) for d in variant.decorator_list]) + self.assertEqual(["_t.overload"], [ast.unparse(d) for d in variant.decorator_list]) def test_overloads_come_fewest_parameters_first(self): """mypy takes the first matching overload, so the order is part of the contract.""" @@ -82,12 +125,12 @@ def test_anonymous_and_receiver_slots_keep_their_names(self): scan = _functions(self.stubs[LAYOUT])["scan"][0] self.assertEqual(["receiver", "first", "__a1", "last"], _parameter_names(scan)) - def test_a_nested_object_stub_is_converted_one_level_down(self): - nested = PACKAGE / "compose" / "foundation" / "layout" / "Arrangement" / "__init__.pyi" - self.assertIn("SpaceBetween: int", self.stubs[nested]) + def test_a_nested_object_stub_becomes_a_class_in_its_parent(self): + arrangement = _classes(self.stubs[LAYOUT])["Arrangement"] + self.assertEqual("_t.ClassVar[int]", ast.unparse(_members(arrangement)["SpaceBetween"].annotation)) def test_names_the_package_defines_itself_are_carried_over(self): - runtime = self.stubs[PACKAGE / "compose" / "runtime" / "__init__.pyi"] + runtime = self.stubs[COMPOSE / "runtime" / "__init__.pyi"] self.assertIn("def Composable(target)", runtime) def test_every_stub_is_valid_python(self): @@ -96,6 +139,190 @@ def test_every_stub_is_valid_python(self): compile(text, str(path), "exec") +class TheCurrentFormat(unittest.TestCase): + """The current upstream format: stub classes, protocols, the binder's own overload sets.""" + + def setUp(self): + self.stubs = _generated(KOTLIN_STUBS_V2) + + def test_module_functions_and_their_parameters_follow_the_runtime_rule(self): + functions = _functions(self.stubs[LAYOUT]) + self.assertIn("padding_values_of", functions) + self.assertIn("fill_max_width", functions) + self.assertNotIn("fillMaxWidth", functions) + self.assertEqual(["receiver", "padding_values"], _parameter_names(functions["padding__PaddingValues"][0])) + + def test_keyword_only_parameters_stay_keyword_only(self): + column = _functions(self.stubs[LAYOUT])["Column"][0] + self.assertEqual(["modifier", "vertical_arrangement"], [a.arg for a in column.args.args]) + self.assertEqual(["content"], [a.arg for a in column.args.kwonlyargs]) + + def test_the_binders_overload_set_is_kept_in_its_order(self): + padding = _functions(self.stubs[LAYOUT])["padding"] + self.assertEqual( + [["receiver", "all"], ["receiver", "horizontal", "vertical"], + ["receiver", "start", "top", "end", "bottom"], ["receiver", "padding_values"]], + [_parameter_names(variant) for variant in padding], + ) + for variant in padding: + self.assertEqual(["_t.overload"], [ast.unparse(d) for d in variant.decorator_list]) + + def test_the_binders_type_ignore_comments_survive(self): + """Without them mypy reports the binder's unreachable overloads in every program that imports the stub.""" + lines = [line for line in self.stubs[LAYOUT].splitlines() if line.startswith("def padding(")] + self.assertEqual(4, len(lines)) + self.assertNotIn("# type: ignore", lines[0]) + for line in lines[1:]: + self.assertTrue(line.endswith("# type: ignore[overload-cannot-match]"), line) + + def test_a_stub_class_keeps_its_name_and_its_members_follow_the_member_resolver(self): + modifier = _members(_classes(self.stubs[UI])["Modifier"]) + self.assertIn("fill_max_width", modifier) + self.assertIn("padding__PaddingValues", modifier) + self.assertIn("z_index", modifier) + self.assertNotIn("fillMaxWidth", modifier) + self.assertEqual("_t.ClassVar[_Modifier_zIndex]", ast.unparse(modifier["z_index"].annotation)) + + def test_a_methods_keywords_stay_kotlin(self): + """The runtime translates a method's name, not its keywords (SPEC section 3).""" + protocols = _classes(self.stubs[UI]) + call = _members(protocols["_Modifier_padding__PaddingValues"])["__call__"] + self.assertEqual(["self", "paddingValues"], _parameter_names(call)) + call = _members(protocols["_Modifier_zIndex"])["__call__"] + self.assertEqual(["self", "zIndex"], _parameter_names(call)) + + def test_the_header_records_the_input_and_the_keyword_caveat(self): + header = self.stubs[UI].splitlines()[:2] + self.assertTrue(header[0].startswith("# GENERATED by tools/gen_stubs.py"), header[0]) + self.assertIn("Kotlin", header[1]) + self.assertIn("keyword", header[1]) + + def test_references_to_mapped_kotlin_packages_name_the_pythonx_module(self): + text = self.stubs[LAYOUT] + self.assertIn("import pythonx.compose.ui", _imports(text)) + column = _functions(text)["Column"][0] + self.assertEqual("pythonx.compose.ui.Modifier", ast.unparse(column.args.args[0].annotation)) + self.assertFalse({name for name in _code_names(text) if name.startswith("androidx")}) + + def test_the_first_manifest_module_for_a_package_is_the_one_referenced(self): + call = _members(_classes(self.stubs[UI])["_Modifier_column"])["__call__"] + self.assertEqual("pythonx.compose.layout.ColumnScope", ast.unparse(call.args.args[1].annotation)) + self.assertIn("import pythonx.compose.layout", _imports(self.stubs[UI])) + + def test_unmapped_or_undeclared_references_become_any(self): + z_index_of = _functions(self.stubs[LAYOUT])["z_index_of"][0] + self.assertEqual("_t.Any", ast.unparse(z_index_of.returns)) + self.assertNotIn("import androidx.compose.ui.draw", _imports(self.stubs[LAYOUT])) + text = _functions(self.stubs[MATERIAL3])["Text"][0] + annotations = {a.arg: ast.unparse(a.annotation) for a in text.args.args} + self.assertEqual("_t.Any", annotations["inline_content"]) # kotlin.collections: unmapped + self.assertEqual("_t.Any", annotations["style"]) # ui.text declares no ParagraphStyle + self.assertEqual( + "_t.Callable[[pythonx.compose.ui.text.TextLayoutResult], None] | None", annotations["on_text_layout"] + ) + self.assertEqual( + ["import typing as _t", "import pythonx.compose.ui", "import pythonx.compose.ui.text"], + [line for line in _imports(self.stubs[MATERIAL3]) if not line.startswith("from ")], + ) + + def test_an_object_sub_package_becomes_a_class_in_its_parent(self): + arrangement = _members(_classes(self.stubs[LAYOUT])["Arrangement"]) + self.assertEqual("_t.ClassVar[_t.Any]", ast.unparse(arrangement["SpaceBetween"].annotation)) + spaced_by = arrangement["spaced_by"] + self.assertEqual(["staticmethod"], [ast.unparse(d) for d in spaced_by.decorator_list]) + self.assertEqual(["space"], _parameter_names(spaced_by)) + + def test_an_object_already_in_its_parent_stub_is_kept(self): + """python-multiplatform #44 moves objects into the parent stub; that layout converts the same.""" + alignment = _members(_classes(self.stubs[UI])["Alignment"]) + self.assertEqual({"Center", "CenterHorizontally", "End", "Top"}, set(alignment)) + + def test_an_object_shadowed_by_a_function_of_its_name_is_left_out(self): + """At run time `TextStyle` reaches the function, so `TextStyle.Default` is not there to stub.""" + notes: list[str] = [] + stubs = gen_stubs.generate(KOTLIN_STUBS_V2, PACKAGE, notes) + self.assertNotIn("TextStyle", _classes(stubs[TEXT])) + self.assertEqual(["font_size"], _parameter_names(_functions(stubs[TEXT])["TextStyle"][0])) + self.assertNotIn("Default", _code_names(stubs[TEXT])) + self.assertEqual( + ["androidx.compose.ui.text.TextStyle"], [note.split(":")[0] for note in notes if "shadowed" in note] + ) + + def test_no_stub_lands_where_it_would_make_a_namespace_package(self): + """A directory holding only `__init__.pyi` imports as a namespace package and would shadow + the `KotlinObject` the re-export rule serves for that name.""" + for path in self.stubs: + with self.subTest(stub=str(path.relative_to(REPO))): + self.assertTrue((path.parent / "__init__.py").is_file()) + + def test_a_second_module_for_the_same_package_re_exports_the_first(self): + self.assertEqual(["from pythonx.compose.layout import *"], _imports(self.stubs[LONG_LAYOUT])) + + def test_aliases_are_re_exported(self): + imports = _imports(self.stubs[MATERIAL3]) + for name in ("Column", "Row", "Spacer"): + self.assertIn(f"from pythonx.compose.layout import {name} as {name}", imports) + + def test_a_constant_named_like_a_python_keyword_is_left_out(self): + source = ( + "import typing as _t\n\nNone: _t.Any\n\"\"\"Kotlin: a.B.None(): a.B\"\"\"\n\n" + "Hairline: float\n\"\"\"Kotlin: a.B.Hairline(): a.B\"\"\"\n" + ) + tree = gen_stubs.parse(source) + self.assertEqual(["Hairline"], [n.target.id for n in tree.body if isinstance(n, ast.AnnAssign)]) + + def test_a_zip_converts_like_the_directory_and_tolerates_case_colliding_paths(self): + with tempfile.TemporaryDirectory(dir=REPO / ".tmp") as scratch: + archive = Path(scratch) / "kotlin-stubs.zip" + with zipfile.ZipFile(archive, "w") as out: + for path in sorted(KOTLIN_STUBS_V2.rglob("*.pyi")): + out.write(path, path.relative_to(KOTLIN_STUBS_V2).as_posix()) + # The real artefact holds both: a package and an object differing only in case. + out.writestr("androidx/compose/ui/text/shadow/__init__.pyi", "import typing as _t\n") + out.writestr("androidx/compose/ui/text/Shadow/__init__.pyi", "import typing as _t\n\nNone: _t.Any\n") + from_zip = _generated(archive) + from_directory = _generated(KOTLIN_STUBS_V2) + self.assertEqual(sorted(from_directory), sorted(from_zip)) + for path, text in from_directory.items(): + if path == TEXT: + continue + with self.subTest(stub=str(path.relative_to(REPO))): + # Line 1 names the input, which differs; everything after it is the conversion. + self.assertEqual(text.splitlines()[1:], from_zip[path].splitlines()[1:]) + self.assertIn("Shadow", _classes(from_zip[TEXT])) + + def test_every_stub_is_valid_python(self): + for path, text in self.stubs.items(): + with self.subTest(stub=str(path.relative_to(REPO))): + compile(text, str(path), "exec") + + +class TheCommittedStubs(unittest.TestCase): + """What ships is what the generator makes of python-multiplatform's `kotlin-stubs` artefact.""" + + def test_py_typed_and_a_stub_for_every_mapped_module_are_committed(self): + self.assertTrue((COMPOSE / "py.typed").is_file()) + for module_name in gen_stubs.manifest()["modules"]: + with self.subTest(module=module_name): + self.assertTrue((PACKAGE.joinpath(*module_name.split(".")[1:]) / "__init__.pyi").is_file()) + + def test_the_committed_stubs_are_exactly_what_the_artefact_generates(self): + if not ARTEFACT.is_file(): + self.skipTest( + f"{ARTEFACT.relative_to(REPO)} is absent: download python-multiplatform's `kotlin-stubs` " + "artefact there to check the committed stubs against it" + ) + generated = gen_stubs.generate(ARTEFACT, PACKAGE) + committed = { + path for path in COMPOSE.rglob("*.pyi") + if "lite" not in path.relative_to(COMPOSE).parts + } + self.assertEqual(sorted(committed), sorted(generated)) + for path, text in generated.items(): + with self.subTest(stub=str(path.relative_to(REPO))): + self.assertEqual(text, path.read_text(encoding="utf-8")) + + class TheStubMatchesTheRuntime(unittest.TestCase): """What an editor reads from the stub is what `inspect.signature` reports at run time.""" @@ -111,7 +338,7 @@ def setUp(self): self.addCleanup(adapter_loader.uninstall) def test_each_single_declaration_has_the_same_parameter_names(self): - import pythonx.compose.foundation.layout as layout + import pythonx.compose.layout as layout functions = _functions(_generated()[LAYOUT]) for name in ("padding__Dp", "padding__Dp_Dp", "padding__PaddingValues", "padding_values_of", @@ -120,6 +347,37 @@ def test_each_single_declaration_has_the_same_parameter_names(self): runtime = list(inspect.signature(getattr(layout, name)).parameters) self.assertEqual(runtime, _parameter_names(functions[name][0])) + def test_the_current_format_has_the_same_parameter_names(self): + import pythonx.compose.layout as layout + import pythonx.compose.ui as ui + + stubs = _generated(KOTLIN_STUBS_V2) + functions = {**_functions(stubs[LAYOUT]), **_functions(stubs[UI])} + for module, name in ((layout, "padding__Dp"), (layout, "padding__Dp_Dp"), + (layout, "padding__Dp_Dp_Dp_Dp"), (layout, "padding__PaddingValues"), + (layout, "padding_values_of"), (layout, "size__Dp"), + (layout, "fill_max_width"), (ui, "describe_modifier"), (ui, "to_url_string")): + with self.subTest(name=name): + runtime = list(inspect.signature(getattr(module, name)).parameters) + self.assertEqual(runtime, _parameter_names(functions[name][0])) + + def test_an_object_function_has_the_same_parameter_names(self): + import pythonx.compose.layout as layout + + arrangement = _members(_classes(_generated(KOTLIN_STUBS_V2)[LAYOUT])["Arrangement"]) + runtime = list(inspect.signature(layout.Arrangement.spaced_by).parameters) + self.assertEqual(runtime, _parameter_names(arrangement["spaced_by"])) + + def test_an_object_constant_in_the_stub_is_read_at_run_time(self): + import pythonx.compose.layout as layout + import pythonx.compose.ui as ui + + stubs = _generated(KOTLIN_STUBS_V2) + for module, stub, name in ((layout, LAYOUT, "Arrangement"), (ui, UI, "Alignment")): + for constant in _members(_classes(stubs[stub])[name]): + with self.subTest(constant=f"{name}.{constant}"): + self.assertIsNotNone(getattr(getattr(module, name), constant)) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_typing.py b/tests/test_typing.py new file mode 100644 index 0000000..1869ba0 --- /dev/null +++ b/tests/test_typing.py @@ -0,0 +1,128 @@ +"""A type checker reads the committed stubs the way the interpreter resolves names. + +Each case is a small program type-checked by mypy against this checkout's `pythonx.compose` stubs +(`MYPYPATH` is the repository root). Correct code must pass; a misspelled keyword or function must +fail, naming what is wrong, because a stub that accepts everything proves nothing. + +Needs `mypy` importable in the running interpreter; without it the tests skip, and a skip is not a +pass. +""" + +from __future__ import annotations + +import importlib.util +import os +import subprocess +import sys +import tempfile +import textwrap +import unittest +from pathlib import Path + +REPO = Path(__file__).resolve().parents[1] +SCRATCH = REPO / ".tmp" + + +def _mypy(program: str) -> tuple[int, str]: + """mypy's exit code and output for one program, with this checkout's stubs on the path.""" + SCRATCH.mkdir(exist_ok=True) + with tempfile.TemporaryDirectory(dir=SCRATCH) as scratch: + source = Path(scratch) / "program.py" + source.write_text(textwrap.dedent(program), encoding="utf-8") + env = {**os.environ, "MYPYPATH": str(REPO)} + done = subprocess.run( + [sys.executable, "-m", "mypy", "--no-error-summary", "--show-error-codes", + "--cache-dir", str(Path(scratch) / "cache"), "--python-version", "3.11", str(source)], + cwd=REPO, env=env, capture_output=True, text=True, + ) + return done.returncode, done.stdout + done.stderr + + +class TheStubsTypeCheck(unittest.TestCase): + + @classmethod + def setUpClass(cls): + if importlib.util.find_spec("mypy") is None: + raise unittest.SkipTest("mypy is not installed; the stubs cannot be type-checked here") + + def assertPasses(self, program: str) -> None: + code, output = _mypy(program) + self.assertEqual(0, code, output) + self.assertEqual("", output.strip()) + + def assertFails(self, program: str, *expected: str) -> None: + code, output = _mypy(program) + self.assertEqual(1, code, output) + for fragment in expected: + self.assertIn(fragment, output) + + def test_the_notebook_imports_and_a_modifier_chain_pass(self): + self.assertPasses(""" + from pythonx.compose.layout import Column, Arrangement + from pythonx.compose.ui import Modifier, Alignment + from pythonx.compose.material3 import Text, Column as M3Column, Row, Spacer + from pythonx.compose.runtime import Composable + + def chain(m: Modifier) -> Modifier: + return m.padding(16).fill_max_width() + + @Composable + def Screen() -> None: + Column( + vertical_arrangement=Arrangement.SpaceBetween, + horizontal_alignment=Alignment.CenterHorizontally, + content=lambda scope: Text("hi", font_size=20), + ) + M3Column(content=lambda scope: None) + """) + + def test_every_committed_stub_type_checks(self): + """mypy reports errors inside a stub it reads from the search path, so this checks them all.""" + import tomllib + + with (REPO / "pythonx" / "compose" / "pythonx-map.toml").open("rb") as handle: + modules = sorted(tomllib.load(handle)["modules"]) + self.assertPasses("".join(f"import {module}\n" for module in modules)) + + def test_a_methods_keywords_are_kotlins(self): + """As at run time (SPEC section 3): the method is snake_case, its keywords are not yet.""" + self.assertPasses(""" + from pythonx.compose.ui import Modifier + + Modifier.padding(paddingValues=None) + """) + self.assertFails(""" + from pythonx.compose.ui import Modifier + + Modifier.padding(padding_values=None) + """, '"padding_values"', 'did you mean "paddingValues"') + + def test_a_modifier_chain_on_the_class_passes(self): + self.assertPasses(""" + from pythonx.compose.ui import Modifier + + m: Modifier = Modifier.padding(16).fill_max_width() + """) + + def test_a_misspelled_keyword_fails(self): + self.assertFails(""" + from pythonx.compose.material3 import Text + + Text("hi", fontSize=20) + """, '"fontSize"', 'did you mean "font_size"') + + def test_a_misspelled_function_fails(self): + self.assertFails(""" + from pythonx.compose.ui import Modifier + + Modifier.padding(16).fillMaxWidth() + """, '"fillMaxWidth"', "[attr-defined]") + + def test_a_kotlin_spelled_module_function_fails(self): + self.assertFails(""" + from pythonx.compose.layout import fillMaxWidth + """, "fillMaxWidth", "[attr-defined]") + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_wheel.py b/tests/test_wheel.py index 9a81371..db8cfa4 100644 --- a/tests/test_wheel.py +++ b/tests/test_wheel.py @@ -73,6 +73,14 @@ def test_every_mapped_module_is_a_file_in_the_wheel(self): def test_the_re_export_rule_ships(self): self.assertIn("pythonx/compose/_reexport.py", self.names) + def test_the_package_is_marked_typed(self): + self.assertIn("pythonx/compose/py.typed", self.names) + + def test_the_generated_stubs_ship(self): + for stub in ("pythonx/compose/ui/__init__.pyi", "pythonx/compose/layout/__init__.pyi"): + with self.subTest(stub=stub): + self.assertIn(stub, self.names) + if __name__ == "__main__": unittest.main() diff --git a/tools/gen_stubs.py b/tools/gen_stubs.py index b986564..6a13413 100644 --- a/tools/gen_stubs.py +++ b/tools/gen_stubs.py @@ -1,32 +1,51 @@ """Generate `pythonx.compose` stubs from the binder's Kotlin-named stubs, by the runtime's own rule. - python3 tools/gen_stubs.py [--out pythonx/compose/..] + python3 tools/gen_stubs.py [--out pythonx/compose/..] -`` is what python-multiplatform's `PythonStubsTask` writes: 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`: +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 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 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; -- every explicit overload (`padding__Dp`, `padding__Dp_Dp`) also contributes an `@overload` of its - base name (`padding`), which is the name the runtime's dispatcher answers to, fewest parameters - first because a type checker takes the first match; -- a nested object stub (`Arrangement/__init__.pyi`) is converted the same way, one level down; + `__aN` slots, which a caller never writes by name; keyword-only markers stay; +- 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; the parameters of a member's callable protocol stay Kotlin's, because the + runtime does not translate a method's keywords yet. A static method (a function of a Kotlin + object) is reached through `KotlinObject`, which does translate them, so its parameters are + snake_case; +- 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 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; - 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. 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 -from collections import defaultdict +import zipfile +from functools import cached_property from pathlib import Path REPO = Path(__file__).resolve().parents[1] @@ -35,8 +54,96 @@ from pythonx.compose._reexport import manifest, python_name, snake_case # noqa: E402 -HEADER = "# GENERATED by tools/gen_stubs.py from python-multiplatform's Kotlin-named stubs. Do not edit.\n" STUB_NAME = "__init__.pyi" +TYPING = "_t" +KEYWORD_NOTE = ( + "# Methods are reached by snake_case names, but their keyword arguments keep Kotlin's names: " + "the runtime does not translate a method's keywords yet.\n" +) +_ANY = f"{TYPING}.Any" + + +def header(source: str) -> str: + return f"# GENERATED by tools/gen_stubs.py from {source}. Do not edit.\n" + KEYWORD_NOTE + + +# ---------------------------------------------------------------------------------------------- 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: @@ -55,50 +162,318 @@ def _arity(arguments: ast.arguments) -> int: return len(arguments.posonlyargs) + len(arguments.args) + len(arguments.kwonlyargs) +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) -> ast.FunctionDef: copy = ast.parse(ast.unparse(function)).body[0] copy.name = name - copy.decorator_list = [ast.Name(id="overload", ctx=ast.Load())] + copy.decorator_list + copy.decorator_list = [_annotation(f"{TYPING}.overload")] + copy.decorator_list return copy -def convert(source: str) -> str: - """One Kotlin-named stub module, rewritten to the Pythonic surface.""" - tree = ast.parse(source) - body: list[ast.stmt] = [] - overloads: dict[str, list[ast.FunctionDef]] = defaultdict(list) - for node in tree.body: - if isinstance(node, ast.FunctionDef): - node.name = python_name(node.name) - _rename_arguments(node.args) - base, sep, _ = node.name.partition("__") - if sep: - overloads[base].append(node) - body.append(node) - elif isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): - node.target.id = python_name(node.target.id) +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] + + +# -------------------------------------------------------------------------------------- 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} + declared.update(name for name in self.stubs.objects(kotlin_package) if name not in functions) + self._declared[kotlin_package] = declared + return dotted in self._declared[kotlin_package] + + 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 = { + alias.name for node in tree.body if isinstance(node, ast.Import) for alias in node.names + if alias.name != "typing" + } + 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_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) and not _is_protocol(node): + self._convert_class(node) body.append(node) - elif isinstance(node, ast.ClassDef): - for member in node.body: - if isinstance(member, ast.FunctionDef) and not member.name.startswith("__"): - member.name = python_name(member.name) + + defined = {node.name for node in body if isinstance(node, ast.FunctionDef)} + for base, variants in explicit.items(): + if base in defined: + continue # the binder's own overload set (current format) stands as it is + ordered = sorted(variants, key=lambda variant: _arity(variant.args)) + body.extend(_overload(variant, base) for variant in ordered) + + for name in self.stubs.objects(kotlin_package) if kotlin_package else (): + self._add_object(body, kotlin_package, name, imported) + + 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)) + for source_module, names in sorted(manifest().get("aliases", {}).get(module_name, {}).items()): + lines.extend(f"from {source_module} import {name} as {name}\n" for name in sorted(names)) + lines.append("\n") + lines.append(_emit_module(body)) + return "".join(lines) + + def _convert_class(self, cls: ast.ClassDef) -> None: + 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("__"): + member.name = python_name(member.name) + if _is_static(member): + # A function of a Kotlin object: `KotlinObject` translates its keywords. _rename_arguments(member.args) - body.append(node) + elif isinstance(member, ast.ClassDef) and not _is_protocol(member): + 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( + alias.name for node in tree.body if isinstance(node, ast.Import) for alias in node.names + if alias.name != "typing" + ) + groups: list[list[ast.stmt]] = [] # each member with the docstring that follows it + for node in tree.body: + if isinstance(node, ast.AnnAssign) and isinstance(node.target, ast.Name): + node.target.id = python_name(node.target.id) + 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) + 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]) + elif isinstance(node, ast.Expr) and groups and isinstance(groups[-1][0], ast.AnnAssign): + groups[-1].append(node) + 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: - body.append(node) - defined = {node.name for node in body if isinstance(node, ast.FunctionDef)} - for base, variants in overloads.items(): - if base in defined: - continue - # mypy picks the first matching `@overload`, so the order is the contract: fewest parameters - # first, ties kept in table order -- the order the binder's dispatcher tries them in. - ordered = sorted(variants, key=lambda variant: _arity(variant.args)) - body.extend(_overload(variant, base) for variant in ordered) - lines = [HEADER] - if overloads: - lines.append("from typing import overload\n") - lines.extend(ast.unparse(node) + "\n" for node in body) - return "\n".join(lines) + 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]: @@ -116,37 +491,48 @@ def own_definitions(init_py: Path) -> list[str]: return stubs -def generate(kotlin_root: Path, package_root: Path) -> dict[Path, str]: - """Every stub this manifest yields: output path -> text. Writes nothing.""" +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:]) - kotlin_dir = kotlin_root.joinpath(*kotlin_package.split(".")) + 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") - source = kotlin_dir / STUB_NAME - text = convert(source.read_text(encoding="utf-8")) if source.is_file() else HEADER if own: text += "\n" + "\n".join(own) out[module_dir / STUB_NAME] = text - if kotlin_dir.is_dir(): - for nested in sorted(kotlin_dir.iterdir()): - nested_stub = nested / STUB_NAME - if nested.is_dir() and nested.name[:1].isupper() and nested_stub.is_file(): - out[module_dir / nested.name / STUB_NAME] = convert(nested_stub.read_text(encoding="utf-8")) + 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_root", type=Path) + 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_root.is_dir(): - parser.error(f"{args.kotlin_root} is not a directory of Kotlin-named stubs") - for path, text in generate(args.kotlin_root, args.out).items(): + 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 From 8eb1325a0158e5e1f2405134950eb3bff1771bf5 Mon Sep 17 00:00:00 2001 From: BREW <81044362+b-re-w@users.noreply.github.com> Date: Sat, 3 Oct 2026 09:04:49 +0900 Subject: [PATCH 2/2] Test: Create the git-ignored scratch directory before using it test_typing.py made its temporary directory under .tmp/, which exists in a working checkout but not in a fresh one, so CI failed with FileNotFoundError. Both tests that use .tmp/ now create it first. defect fixed: tests assumed .tmp/ existed. Checked by running both modules with .tmp/ moved away: they pass. Refs #12 --- tests/test_stubs.py | 1 + tests/test_typing.py | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/test_stubs.py b/tests/test_stubs.py index 356a777..3a56f94 100644 --- a/tests/test_stubs.py +++ b/tests/test_stubs.py @@ -272,6 +272,7 @@ def test_a_constant_named_like_a_python_keyword_is_left_out(self): self.assertEqual(["Hairline"], [n.target.id for n in tree.body if isinstance(n, ast.AnnAssign)]) def test_a_zip_converts_like_the_directory_and_tolerates_case_colliding_paths(self): + (REPO / ".tmp").mkdir(exist_ok=True) with tempfile.TemporaryDirectory(dir=REPO / ".tmp") as scratch: archive = Path(scratch) / "kotlin-stubs.zip" with zipfile.ZipFile(archive, "w") as out: diff --git a/tests/test_typing.py b/tests/test_typing.py index 1869ba0..dcecfb6 100644 --- a/tests/test_typing.py +++ b/tests/test_typing.py @@ -26,6 +26,7 @@ def _mypy(program: str) -> tuple[int, str]: """mypy's exit code and output for one program, with this checkout's stubs on the path.""" SCRATCH.mkdir(exist_ok=True) + SCRATCH.mkdir(exist_ok=True) # git-ignored, so absent on a fresh checkout such as CI's with tempfile.TemporaryDirectory(dir=SCRATCH) as scratch: source = Path(scratch) / "program.py" source.write_text(textwrap.dedent(program), encoding="utf-8")