diff --git a/.codex/skills/update-flet-control-doc-gifs/SKILL.md b/.codex/skills/update-flet-control-doc-gifs/SKILL.md new file mode 100644 index 0000000000..92b246d1fe --- /dev/null +++ b/.codex/skills/update-flet-control-doc-gifs/SKILL.md @@ -0,0 +1,64 @@ +--- +name: update-flet-control-doc-gifs +description: Create or update Flet control screenshots and GIFs that are generated from integration tests and shown in docs. Use when working on `sdk/python/packages/flet/integration_tests/examples`, refreshing static or interactive golden screenshots, or replacing old example media images or GIFs with generated test assets. +--- + +# Update Flet Control Doc Gifs + +Use this skill after the integration test structure is already in place and the task is to capture doc-ready screenshots or interactive GIF states from integration tests. + +## Workflow + +1. Locate the example-backed integration test under `sdk/python/packages/flet/integration_tests/examples`. +2. Prefer extending an existing interaction test instead of creating a second flow test. +3. Build the visual sequence with deterministic states: +- set `page.enable_screenshots = True` +- set `theme_mode` when visuals matter +- set fixed page size before screenshots +- prefer finding controls by visible text or other stable user-facing content; add a `key` only when there is no reliable human-facing locator +- call `pump_and_settle()` after each interaction +4. Capture only states that are visually meaningful: +- before interaction +- hover state +- popup/menu/dialog open +- reopened state that proves persistence +- single static screenshots when one frame is enough for docs +- do not keep screenshots taken after a click if the UI closes and the state is not visible +5. Use `assert_screenshot(...)` for regular golden screenshots and `create_gif([...], "", duration=...)` only when the docs benefit from an animated flow. + - Prefer storing only asserted or docs-facing states as named screenshots; keep intermediate hover/click frames in memory and pass them directly to `create_gif(...)` when they do not need standalone golden files. +6. Update docs to use the generated screenshot or GIF, not an old media asset from `examples/.../media`, when the integration-test asset is now the better docs artifact. +7. Update docs references to point at the intended generated screenshot or GIF path, but do not copy generated assets into `website/static/docs/test-images/...` as part of this workflow. + +## Naming + +- Use short screenshot names that describe visible states, for example `before_click`, `hover_popup`, `popup_open`, `checked_item_reopened`. +- Use one flow GIF name per control/example, for example `app_bar_flow`. +- Use descriptive static screenshot names when the asset is docs-facing, for example `image_for_docs`, `popup_open`, or `checked_item_reopened`. +- Give the integration test a behavior-based name such as `test_actions_and_popup_menu`; avoid placeholder names like `test_basic` when the test covers a specific flow. +- Keep screenshot names stable because they become golden filenames. + +## Docs Update Rules + +- Control docs usually point to generated assets through `frontMatter.example_images`. +- If a docs page still has `example_images` pointing at example media instead of generated test images, update that front matter first so the page has a single source of truth for screenshots and GIFs. +- When a docs page has multiple example sections, add the generated screenshot or GIF directly under the matching `CodeExample` block so each visual stays paired with the example it demonstrates. +- If a docs page still uses `frontMatter.example_media + '/old.png'` or `frontMatter.example_media + '/old.gif'`, replace it with `frontMatter.example_images + '/'` when the generated integration-test asset is the new source of truth. +- Generated screenshots and GIFs from integration tests are commonly stored at `sdk/python/packages/flet/integration_tests/examples/.../golden/macos//`. +- Do not copy generated screenshots or GIFs into `website/static/docs/test-images/...` as part of this skill. Keep the work limited to tests and docs references unless the user explicitly asks for a copy. + +## Verification Checklist + +- The interaction test still reflects the example behavior. +- Every screenshot included in a GIF is visibly different and useful. +- The GIF duration is intentional; prefer shorter loops for hover/click flows unless the interaction needs more time. +- The docs front matter points to the generated test-images location rather than stale example media paths. +- The docs page references the new screenshot or GIF path. +- The generated screenshot or GIF exists in the integration-test golden directory at the path implied by the test names. +- Remove or stop referencing obsolete media screenshots or GIFs only when the new generated asset fully replaces them. + +## References + +- `sdk/python/packages/flet/integration_tests/examples` +- `sdk/python/packages/flet/integration_tests/examples/controls/material/test_alert_dialog.py` +- `sdk/python/packages/flet/integration_tests/examples/controls/material/test_app_bar.py` +- `website/docs/controls` diff --git a/.codex/skills/update-flet-control-doc-gifs/agents/openai.yaml b/.codex/skills/update-flet-control-doc-gifs/agents/openai.yaml new file mode 100644 index 0000000000..13dc7a9513 --- /dev/null +++ b/.codex/skills/update-flet-control-doc-gifs/agents/openai.yaml @@ -0,0 +1,3 @@ +interface: + display_name: "Update Flet Control Doc Gifs" + short_description: "Refresh control screenshots, GIFs, and docs assets" diff --git a/.github/workflows/macos-integration-tests.yml b/.github/workflows/macos-integration-tests.yml index 5b750f245a..e44ab80d04 100644 --- a/.github/workflows/macos-integration-tests.yml +++ b/.github/workflows/macos-integration-tests.yml @@ -41,10 +41,10 @@ jobs: suite: - apps - examples/apps - - examples/core - - examples/cupertino + - examples/controls/core + - examples/controls/cupertino + - examples/controls/material - examples/extensions - - examples/material - controls/core - controls/cupertino - controls/material diff --git a/client/integration_test/flutter_tester.dart b/client/integration_test/flutter_tester.dart index 762ea1e4c5..49bb544e4d 100644 --- a/client/integration_test/flutter_tester.dart +++ b/client/integration_test/flutter_tester.dart @@ -1,7 +1,6 @@ import 'dart:async'; -import 'dart:ui'; - import 'package:flet/flet.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -77,10 +76,55 @@ class FlutterWidgetTester implements Tester { Future tap(TestFinder finder, int finderIndex) => _tester.tap((finder as FlutterTestFinder).raw.at(finderIndex)); + @override + Future mouseClick(TestFinder finder, int finderIndex) async { + final center = _tester.getCenter( + (finder as FlutterTestFinder).raw.at(finderIndex), + ); + await _mouseClickAt(center, kPrimaryButton); + } + + @override + Future mouseDoubleClick(TestFinder finder, int finderIndex) async { + final center = _tester.getCenter( + (finder as FlutterTestFinder).raw.at(finderIndex), + ); + await _mouseDoubleClickAt(center); + } + + @override + Future rightMouseClick(TestFinder finder, int finderIndex) async { + final center = _tester.getCenter( + (finder as FlutterTestFinder).raw.at(finderIndex), + ); + await _mouseClickAt(center, kSecondaryButton); + } + @override Future tapAt(Offset offset) => _tester.tapAt(offset); + @override + Future mouseClickAt(Offset offset) => _mouseClickAt(offset, kPrimaryButton); + + @override + Future mouseDoubleClickAt(Offset offset) => _mouseDoubleClickAt(offset); + + @override + Future rightMouseClickAt(Offset offset) => + _mouseClickAt(offset, kSecondaryButton); + + @override + Future drag(TestFinder finder, int finderIndex, Offset offset) async { + final center = _tester.getCenter( + (finder as FlutterTestFinder).raw.at(finderIndex), + ); + await _dragFrom(center, offset); + } + + @override + Future dragFrom(Offset start, Offset offset) => _dragFrom(start, offset); + @override Future longPress(TestFinder finder, int finderIndex) => _tester.longPress((finder as FlutterTestFinder).raw.at(finderIndex)); @@ -105,6 +149,40 @@ class FlutterWidgetTester implements Tester { await _gesture?.moveTo(center); } + Future _mouseClickAt(Offset offset, int buttons) async { + await _mouseExit(); + _gesture = await _tester.createGesture( + kind: PointerDeviceKind.mouse, + buttons: buttons, + ); + await _gesture?.addPointer(); + await _gesture?.moveTo(offset); + await _gesture?.down(offset); + await _gesture?.up(); + await _mouseExit(); + } + + Future _mouseDoubleClickAt(Offset offset) async { + await _mouseExit(); + _gesture = await _tester.createGesture( + kind: PointerDeviceKind.mouse, + buttons: kPrimaryButton, + ); + await _gesture?.addPointer(); + await _gesture?.moveTo(offset); + await _gesture?.down(offset); + await _gesture?.up(); + await _tester.pump(const Duration(milliseconds: 50)); + await _gesture?.down(offset); + await _gesture?.up(); + await _mouseExit(); + } + + Future _dragFrom(Offset start, Offset offset) async { + await _mouseExit(); + await _tester.dragFrom(start, offset); + } + @override void teardown() => _teardown.complete(); diff --git a/client/pubspec.lock b/client/pubspec.lock index 00553a8f3b..eb705c52fe 100644 --- a/client/pubspec.lock +++ b/client/pubspec.lock @@ -911,10 +911,10 @@ packages: dependency: transitive description: name: matcher - sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.18" + version: "0.12.19" material_color_utilities: dependency: transitive description: @@ -1628,10 +1628,10 @@ packages: dependency: transitive description: name: test_api - sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636" + sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" url: "https://pub.dev" source: hosted - version: "0.7.9" + version: "0.7.10" torch_light: dependency: transitive description: diff --git a/packages/flet/lib/src/controls/page.dart b/packages/flet/lib/src/controls/page.dart index f54a55aad4..c18fd8e601 100644 --- a/packages/flet/lib/src/controls/page.dart +++ b/packages/flet/lib/src/controls/page.dart @@ -260,6 +260,39 @@ class _PageControlState extends State with WidgetsBindingObserver { return data?.buffer.asUint8List(); } + case "take_animation": + { + final frameDelaysMs = + List.from(args["frame_delays_ms"] ?? const []); + final frames = []; + // In integration tests the scheduler doesn't advance animations on + // its own during Future.delayed — WidgetTester.pump is what drives + // the clock. Use it when available so in-flight animations progress + // between captures; fall back to Future.delayed outside test mode. + final tester = FletBackend.of(context).tester; + for (final delayMs in frameDelaysMs) { + final delay = Duration(milliseconds: delayMs); + if (tester != null) { + await tester.pump(duration: delay); + } else { + await Future.delayed(delay); + } + final ctx = _rootKey.currentContext; + if (ctx == null || !ctx.mounted) return frames; + final boundary = ctx.findRenderObject() as RenderRepaintBoundary?; + if (boundary == null) return frames; + final pixelRatio = parseDouble( + args["pixel_ratio"], MediaQuery.of(ctx).devicePixelRatio)!; + final image = await boundary.toImage(pixelRatio: pixelRatio); + final data = + await image.toByteData(format: ui.ImageByteFormat.png); + image.dispose(); + if (data == null) return frames; + frames.add(data.buffer.asUint8List()); + } + return frames; + } + case "push_route": _routeState.route = args["route"]; break; diff --git a/packages/flet/lib/src/services/tester.dart b/packages/flet/lib/src/services/tester.dart index 0f121ad61f..18dc410319 100644 --- a/packages/flet/lib/src/services/tester.dart +++ b/packages/flet/lib/src/services/tester.dart @@ -84,12 +84,65 @@ class TesterService extends FletService { await control.backend.tester!.tap(finder, args["finder_index"]); } + case "mouse_click": + var finder = _finders[args["finder_id"]]; + if (finder != null) { + await control.backend.tester!.mouseClick(finder, args["finder_index"]); + } + + case "mouse_double_click": + var finder = _finders[args["finder_id"]]; + if (finder != null) { + await control.backend.tester! + .mouseDoubleClick(finder, args["finder_index"]); + } + + case "right_mouse_click": + var finder = _finders[args["finder_id"]]; + if (finder != null) { + await control.backend.tester! + .rightMouseClick(finder, args["finder_index"]); + } + case "tap_at": var offset = parseOffset(args["offset"]); if (offset != null) { await control.backend.tester!.tapAt(offset); } + case "mouse_click_at": + var offset = parseOffset(args["offset"]); + if (offset != null) { + await control.backend.tester!.mouseClickAt(offset); + } + + case "mouse_double_click_at": + var offset = parseOffset(args["offset"]); + if (offset != null) { + await control.backend.tester!.mouseDoubleClickAt(offset); + } + + case "right_mouse_click_at": + var offset = parseOffset(args["offset"]); + if (offset != null) { + await control.backend.tester!.rightMouseClickAt(offset); + } + + case "drag": + var finder = _finders[args["finder_id"]]; + var offset = parseOffset(args["offset"]); + if (finder != null && offset != null) { + await control.backend.tester! + .drag(finder, args["finder_index"], offset); + } + + case "drag_from": + var start = parseOffset(args["start"]); + var offset = parseOffset(args["offset"]); + if (start != null && offset != null) { + await control.backend.tester!.dragFrom(start, offset); + } + case "long_press": var finder = _finders[args["finder_id"]]; if (finder != null) { diff --git a/packages/flet/lib/src/testing/tester.dart b/packages/flet/lib/src/testing/tester.dart index a59280a125..cd03bbd11d 100644 --- a/packages/flet/lib/src/testing/tester.dart +++ b/packages/flet/lib/src/testing/tester.dart @@ -15,6 +15,14 @@ abstract class Tester { Future takeScreenshot(String name); Future tapAt(Offset offset); Future tap(TestFinder finder, int finderIndex); + Future mouseClickAt(Offset offset); + Future mouseClick(TestFinder finder, int finderIndex); + Future mouseDoubleClickAt(Offset offset); + Future mouseDoubleClick(TestFinder finder, int finderIndex); + Future rightMouseClickAt(Offset offset); + Future rightMouseClick(TestFinder finder, int finderIndex); + Future drag(TestFinder finder, int finderIndex, Offset offset); + Future dragFrom(Offset start, Offset offset); Future longPress(TestFinder finder, int finderIndex); Future enterText(TestFinder finder, int finderIndex, String text); Future mouseHover(TestFinder finder, int finderIndex); diff --git a/sdk/python/examples/controls/checkbox/styled/main.py b/sdk/python/examples/controls/checkbox/styled/main.py deleted file mode 100644 index 980fbc2544..0000000000 --- a/sdk/python/examples/controls/checkbox/styled/main.py +++ /dev/null @@ -1,30 +0,0 @@ -import flet as ft - - -def main(page: ft.Page): - page.add( - ft.SafeArea( - content=ft.Column( - controls=[ - ft.Checkbox(label="Checkbox with default style"), - ft.Checkbox( - label="Checkbox with constant fill color", - fill_color=ft.Colors.RED, - check_color=ft.Colors.YELLOW, - ), - ft.Checkbox( - label="Checkbox with dynamic fill color", - fill_color={ - ft.ControlState.HOVERED: ft.Colors.BLUE, - ft.ControlState.SELECTED: ft.Colors.GREEN, - ft.ControlState.DEFAULT: ft.Colors.RED, - }, - ), - ] - ) - ), - ) - - -if __name__ == "__main__": - ft.run(main) diff --git a/sdk/python/examples/controls/animated_switcher/image_switch/main.py b/sdk/python/examples/controls/core/animated_switcher/image_switch/main.py similarity index 100% rename from sdk/python/examples/controls/animated_switcher/image_switch/main.py rename to sdk/python/examples/controls/core/animated_switcher/image_switch/main.py diff --git a/sdk/python/examples/controls/animated_switcher/image_switch/pyproject.toml b/sdk/python/examples/controls/core/animated_switcher/image_switch/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/animated_switcher/image_switch/pyproject.toml rename to sdk/python/examples/controls/core/animated_switcher/image_switch/pyproject.toml diff --git a/sdk/python/examples/controls/animated_switcher/image_switch_buffered/main.py b/sdk/python/examples/controls/core/animated_switcher/image_switch_buffered/main.py similarity index 100% rename from sdk/python/examples/controls/animated_switcher/image_switch_buffered/main.py rename to sdk/python/examples/controls/core/animated_switcher/image_switch_buffered/main.py diff --git a/sdk/python/examples/controls/animated_switcher/image_switch_buffered/pyproject.toml b/sdk/python/examples/controls/core/animated_switcher/image_switch_buffered/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/animated_switcher/image_switch_buffered/pyproject.toml rename to sdk/python/examples/controls/core/animated_switcher/image_switch_buffered/pyproject.toml diff --git a/sdk/python/examples/controls/animated_switcher/media/scale_effect.gif b/sdk/python/examples/controls/core/animated_switcher/media/scale_effect.gif similarity index 100% rename from sdk/python/examples/controls/animated_switcher/media/scale_effect.gif rename to sdk/python/examples/controls/core/animated_switcher/media/scale_effect.gif diff --git a/sdk/python/examples/controls/animated_switcher/scale_effect/main.py b/sdk/python/examples/controls/core/animated_switcher/scale_effect/main.py similarity index 100% rename from sdk/python/examples/controls/animated_switcher/scale_effect/main.py rename to sdk/python/examples/controls/core/animated_switcher/scale_effect/main.py diff --git a/sdk/python/examples/controls/animated_switcher/scale_effect/pyproject.toml b/sdk/python/examples/controls/core/animated_switcher/scale_effect/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/animated_switcher/scale_effect/pyproject.toml rename to sdk/python/examples/controls/core/animated_switcher/scale_effect/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/bezier_curves/main.py b/sdk/python/examples/controls/core/canvas/bezier_curves/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/bezier_curves/main.py rename to sdk/python/examples/controls/core/canvas/bezier_curves/main.py diff --git a/sdk/python/examples/controls/canvas/bezier_curves/pyproject.toml b/sdk/python/examples/controls/core/canvas/bezier_curves/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/bezier_curves/pyproject.toml rename to sdk/python/examples/controls/core/canvas/bezier_curves/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/brush/main.py b/sdk/python/examples/controls/core/canvas/brush/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/brush/main.py rename to sdk/python/examples/controls/core/canvas/brush/main.py diff --git a/sdk/python/examples/controls/canvas/brush/pyproject.toml b/sdk/python/examples/controls/core/canvas/brush/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/brush/pyproject.toml rename to sdk/python/examples/controls/core/canvas/brush/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/brush_on_image/main.py b/sdk/python/examples/controls/core/canvas/brush_on_image/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/brush_on_image/main.py rename to sdk/python/examples/controls/core/canvas/brush_on_image/main.py diff --git a/sdk/python/examples/controls/canvas/brush_on_image/pyproject.toml b/sdk/python/examples/controls/core/canvas/brush_on_image/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/brush_on_image/pyproject.toml rename to sdk/python/examples/controls/core/canvas/brush_on_image/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/dash_strokes/main.py b/sdk/python/examples/controls/core/canvas/dash_strokes/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/dash_strokes/main.py rename to sdk/python/examples/controls/core/canvas/dash_strokes/main.py diff --git a/sdk/python/examples/controls/canvas/dash_strokes/pyproject.toml b/sdk/python/examples/controls/core/canvas/dash_strokes/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/dash_strokes/pyproject.toml rename to sdk/python/examples/controls/core/canvas/dash_strokes/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/flet_logo/main.py b/sdk/python/examples/controls/core/canvas/flet_logo/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/flet_logo/main.py rename to sdk/python/examples/controls/core/canvas/flet_logo/main.py diff --git a/sdk/python/examples/controls/canvas/flet_logo/pyproject.toml b/sdk/python/examples/controls/core/canvas/flet_logo/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/flet_logo/pyproject.toml rename to sdk/python/examples/controls/core/canvas/flet_logo/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/gradients/main.py b/sdk/python/examples/controls/core/canvas/gradients/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/gradients/main.py rename to sdk/python/examples/controls/core/canvas/gradients/main.py diff --git a/sdk/python/examples/controls/canvas/gradients/pyproject.toml b/sdk/python/examples/controls/core/canvas/gradients/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/gradients/pyproject.toml rename to sdk/python/examples/controls/core/canvas/gradients/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/media/bezier_curves.png b/sdk/python/examples/controls/core/canvas/media/bezier_curves.png similarity index 100% rename from sdk/python/examples/controls/canvas/media/bezier_curves.png rename to sdk/python/examples/controls/core/canvas/media/bezier_curves.png diff --git a/sdk/python/examples/controls/canvas/media/flet_logo.png b/sdk/python/examples/controls/core/canvas/media/flet_logo.png similarity index 100% rename from sdk/python/examples/controls/canvas/media/flet_logo.png rename to sdk/python/examples/controls/core/canvas/media/flet_logo.png diff --git a/sdk/python/examples/controls/canvas/media/smiling_face.png b/sdk/python/examples/controls/core/canvas/media/smiling_face.png similarity index 100% rename from sdk/python/examples/controls/canvas/media/smiling_face.png rename to sdk/python/examples/controls/core/canvas/media/smiling_face.png diff --git a/sdk/python/examples/controls/canvas/media/text.png b/sdk/python/examples/controls/core/canvas/media/text.png similarity index 100% rename from sdk/python/examples/controls/canvas/media/text.png rename to sdk/python/examples/controls/core/canvas/media/text.png diff --git a/sdk/python/examples/controls/canvas/media/triangles.png b/sdk/python/examples/controls/core/canvas/media/triangles.png similarity index 100% rename from sdk/python/examples/controls/canvas/media/triangles.png rename to sdk/python/examples/controls/core/canvas/media/triangles.png diff --git a/sdk/python/examples/controls/canvas/resize/main.py b/sdk/python/examples/controls/core/canvas/resize/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/resize/main.py rename to sdk/python/examples/controls/core/canvas/resize/main.py diff --git a/sdk/python/examples/controls/canvas/resize/pyproject.toml b/sdk/python/examples/controls/core/canvas/resize/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/resize/pyproject.toml rename to sdk/python/examples/controls/core/canvas/resize/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/smiling_face/main.py b/sdk/python/examples/controls/core/canvas/smiling_face/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/smiling_face/main.py rename to sdk/python/examples/controls/core/canvas/smiling_face/main.py diff --git a/sdk/python/examples/controls/canvas/smiling_face/pyproject.toml b/sdk/python/examples/controls/core/canvas/smiling_face/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/smiling_face/pyproject.toml rename to sdk/python/examples/controls/core/canvas/smiling_face/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/text/main.py b/sdk/python/examples/controls/core/canvas/text/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/text/main.py rename to sdk/python/examples/controls/core/canvas/text/main.py diff --git a/sdk/python/examples/controls/canvas/text/pyproject.toml b/sdk/python/examples/controls/core/canvas/text/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/text/pyproject.toml rename to sdk/python/examples/controls/core/canvas/text/pyproject.toml diff --git a/sdk/python/examples/controls/canvas/triangles/main.py b/sdk/python/examples/controls/core/canvas/triangles/main.py similarity index 100% rename from sdk/python/examples/controls/canvas/triangles/main.py rename to sdk/python/examples/controls/core/canvas/triangles/main.py diff --git a/sdk/python/examples/controls/canvas/triangles/pyproject.toml b/sdk/python/examples/controls/core/canvas/triangles/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/canvas/triangles/pyproject.toml rename to sdk/python/examples/controls/core/canvas/triangles/pyproject.toml diff --git a/sdk/python/examples/controls/column/alignment/main.py b/sdk/python/examples/controls/core/column/alignment/main.py similarity index 100% rename from sdk/python/examples/controls/column/alignment/main.py rename to sdk/python/examples/controls/core/column/alignment/main.py diff --git a/sdk/python/examples/controls/column/alignment/pyproject.toml b/sdk/python/examples/controls/core/column/alignment/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/alignment/pyproject.toml rename to sdk/python/examples/controls/core/column/alignment/pyproject.toml diff --git a/sdk/python/examples/controls/column/custom_scrollbar/main.py b/sdk/python/examples/controls/core/column/custom_scrollbar/main.py similarity index 100% rename from sdk/python/examples/controls/column/custom_scrollbar/main.py rename to sdk/python/examples/controls/core/column/custom_scrollbar/main.py diff --git a/sdk/python/examples/controls/column/custom_scrollbar/pyproject.toml b/sdk/python/examples/controls/core/column/custom_scrollbar/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/custom_scrollbar/pyproject.toml rename to sdk/python/examples/controls/core/column/custom_scrollbar/pyproject.toml diff --git a/sdk/python/examples/controls/column/horizontal_alignment/main.py b/sdk/python/examples/controls/core/column/horizontal_alignment/main.py similarity index 100% rename from sdk/python/examples/controls/column/horizontal_alignment/main.py rename to sdk/python/examples/controls/core/column/horizontal_alignment/main.py diff --git a/sdk/python/examples/controls/column/horizontal_alignment/pyproject.toml b/sdk/python/examples/controls/core/column/horizontal_alignment/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/horizontal_alignment/pyproject.toml rename to sdk/python/examples/controls/core/column/horizontal_alignment/pyproject.toml diff --git a/sdk/python/examples/controls/column/infinite_scrolling/main.py b/sdk/python/examples/controls/core/column/infinite_scrolling/main.py similarity index 100% rename from sdk/python/examples/controls/column/infinite_scrolling/main.py rename to sdk/python/examples/controls/core/column/infinite_scrolling/main.py diff --git a/sdk/python/examples/controls/column/infinite_scrolling/pyproject.toml b/sdk/python/examples/controls/core/column/infinite_scrolling/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/infinite_scrolling/pyproject.toml rename to sdk/python/examples/controls/core/column/infinite_scrolling/pyproject.toml diff --git a/sdk/python/examples/controls/column/media/alignment.png b/sdk/python/examples/controls/core/column/media/alignment.png similarity index 100% rename from sdk/python/examples/controls/column/media/alignment.png rename to sdk/python/examples/controls/core/column/media/alignment.png diff --git a/sdk/python/examples/controls/column/media/horizontal_alignment.png b/sdk/python/examples/controls/core/column/media/horizontal_alignment.png similarity index 100% rename from sdk/python/examples/controls/column/media/horizontal_alignment.png rename to sdk/python/examples/controls/core/column/media/horizontal_alignment.png diff --git a/sdk/python/examples/controls/column/media/programmatic_scroll.png b/sdk/python/examples/controls/core/column/media/programmatic_scroll.png similarity index 100% rename from sdk/python/examples/controls/column/media/programmatic_scroll.png rename to sdk/python/examples/controls/core/column/media/programmatic_scroll.png diff --git a/sdk/python/examples/controls/column/media/scroll_to_key.gif b/sdk/python/examples/controls/core/column/media/scroll_to_key.gif similarity index 100% rename from sdk/python/examples/controls/column/media/scroll_to_key.gif rename to sdk/python/examples/controls/core/column/media/scroll_to_key.gif diff --git a/sdk/python/examples/controls/column/media/spacing.gif b/sdk/python/examples/controls/core/column/media/spacing.gif similarity index 100% rename from sdk/python/examples/controls/column/media/spacing.gif rename to sdk/python/examples/controls/core/column/media/spacing.gif diff --git a/sdk/python/examples/controls/column/media/wrap.gif b/sdk/python/examples/controls/core/column/media/wrap.gif similarity index 100% rename from sdk/python/examples/controls/column/media/wrap.gif rename to sdk/python/examples/controls/core/column/media/wrap.gif diff --git a/sdk/python/examples/controls/column/programmatic_scroll/main.py b/sdk/python/examples/controls/core/column/programmatic_scroll/main.py similarity index 100% rename from sdk/python/examples/controls/column/programmatic_scroll/main.py rename to sdk/python/examples/controls/core/column/programmatic_scroll/main.py diff --git a/sdk/python/examples/controls/column/programmatic_scroll/pyproject.toml b/sdk/python/examples/controls/core/column/programmatic_scroll/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/programmatic_scroll/pyproject.toml rename to sdk/python/examples/controls/core/column/programmatic_scroll/pyproject.toml diff --git a/sdk/python/examples/controls/column/scroll/main.py b/sdk/python/examples/controls/core/column/scroll/main.py similarity index 100% rename from sdk/python/examples/controls/column/scroll/main.py rename to sdk/python/examples/controls/core/column/scroll/main.py diff --git a/sdk/python/examples/controls/column/scroll/pyproject.toml b/sdk/python/examples/controls/core/column/scroll/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/scroll/pyproject.toml rename to sdk/python/examples/controls/core/column/scroll/pyproject.toml diff --git a/sdk/python/examples/controls/column/scroll_events/main.py b/sdk/python/examples/controls/core/column/scroll_events/main.py similarity index 100% rename from sdk/python/examples/controls/column/scroll_events/main.py rename to sdk/python/examples/controls/core/column/scroll_events/main.py diff --git a/sdk/python/examples/controls/column/scroll_events/pyproject.toml b/sdk/python/examples/controls/core/column/scroll_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/scroll_events/pyproject.toml rename to sdk/python/examples/controls/core/column/scroll_events/pyproject.toml diff --git a/sdk/python/examples/controls/column/scroll_to_key/main.py b/sdk/python/examples/controls/core/column/scroll_to_key/main.py similarity index 100% rename from sdk/python/examples/controls/column/scroll_to_key/main.py rename to sdk/python/examples/controls/core/column/scroll_to_key/main.py diff --git a/sdk/python/examples/controls/column/scroll_to_key/pyproject.toml b/sdk/python/examples/controls/core/column/scroll_to_key/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/scroll_to_key/pyproject.toml rename to sdk/python/examples/controls/core/column/scroll_to_key/pyproject.toml diff --git a/sdk/python/examples/controls/column/spacing/main.py b/sdk/python/examples/controls/core/column/spacing/main.py similarity index 100% rename from sdk/python/examples/controls/column/spacing/main.py rename to sdk/python/examples/controls/core/column/spacing/main.py diff --git a/sdk/python/examples/controls/column/spacing/pyproject.toml b/sdk/python/examples/controls/core/column/spacing/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/spacing/pyproject.toml rename to sdk/python/examples/controls/core/column/spacing/pyproject.toml diff --git a/sdk/python/examples/controls/column/wrap/main.py b/sdk/python/examples/controls/core/column/wrap/main.py similarity index 100% rename from sdk/python/examples/controls/column/wrap/main.py rename to sdk/python/examples/controls/core/column/wrap/main.py diff --git a/sdk/python/examples/controls/column/wrap/pyproject.toml b/sdk/python/examples/controls/core/column/wrap/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/column/wrap/pyproject.toml rename to sdk/python/examples/controls/core/column/wrap/pyproject.toml diff --git a/sdk/python/examples/controls/container/animate_1/main.py b/sdk/python/examples/controls/core/container/animate_1/main.py similarity index 100% rename from sdk/python/examples/controls/container/animate_1/main.py rename to sdk/python/examples/controls/core/container/animate_1/main.py diff --git a/sdk/python/examples/controls/container/animate_1/pyproject.toml b/sdk/python/examples/controls/core/container/animate_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/animate_1/pyproject.toml rename to sdk/python/examples/controls/core/container/animate_1/pyproject.toml diff --git a/sdk/python/examples/controls/container/animate_2/main.py b/sdk/python/examples/controls/core/container/animate_2/main.py similarity index 100% rename from sdk/python/examples/controls/container/animate_2/main.py rename to sdk/python/examples/controls/core/container/animate_2/main.py diff --git a/sdk/python/examples/controls/container/animate_2/pyproject.toml b/sdk/python/examples/controls/core/container/animate_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/animate_2/pyproject.toml rename to sdk/python/examples/controls/core/container/animate_2/pyproject.toml diff --git a/sdk/python/examples/controls/container/animate_3/main.py b/sdk/python/examples/controls/core/container/animate_3/main.py similarity index 100% rename from sdk/python/examples/controls/container/animate_3/main.py rename to sdk/python/examples/controls/core/container/animate_3/main.py diff --git a/sdk/python/examples/controls/container/animate_3/pyproject.toml b/sdk/python/examples/controls/core/container/animate_3/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/animate_3/pyproject.toml rename to sdk/python/examples/controls/core/container/animate_3/pyproject.toml diff --git a/sdk/python/examples/controls/container/clickable/main.py b/sdk/python/examples/controls/core/container/clickable/main.py similarity index 100% rename from sdk/python/examples/controls/container/clickable/main.py rename to sdk/python/examples/controls/core/container/clickable/main.py diff --git a/sdk/python/examples/controls/container/clickable/pyproject.toml b/sdk/python/examples/controls/core/container/clickable/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/clickable/pyproject.toml rename to sdk/python/examples/controls/core/container/clickable/pyproject.toml diff --git a/sdk/python/examples/controls/container/handling_clicks/main.py b/sdk/python/examples/controls/core/container/handling_clicks/main.py similarity index 100% rename from sdk/python/examples/controls/container/handling_clicks/main.py rename to sdk/python/examples/controls/core/container/handling_clicks/main.py diff --git a/sdk/python/examples/controls/container/handling_clicks/pyproject.toml b/sdk/python/examples/controls/core/container/handling_clicks/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/handling_clicks/pyproject.toml rename to sdk/python/examples/controls/core/container/handling_clicks/pyproject.toml diff --git a/sdk/python/examples/controls/container/handling_hovers/main.py b/sdk/python/examples/controls/core/container/handling_hovers/main.py similarity index 100% rename from sdk/python/examples/controls/container/handling_hovers/main.py rename to sdk/python/examples/controls/core/container/handling_hovers/main.py diff --git a/sdk/python/examples/controls/container/handling_hovers/pyproject.toml b/sdk/python/examples/controls/core/container/handling_hovers/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/handling_hovers/pyproject.toml rename to sdk/python/examples/controls/core/container/handling_hovers/pyproject.toml diff --git a/sdk/python/examples/controls/container/media/animate_1.gif b/sdk/python/examples/controls/core/container/media/animate_1.gif similarity index 100% rename from sdk/python/examples/controls/container/media/animate_1.gif rename to sdk/python/examples/controls/core/container/media/animate_1.gif diff --git a/sdk/python/examples/controls/container/media/clickable.gif b/sdk/python/examples/controls/core/container/media/clickable.gif similarity index 100% rename from sdk/python/examples/controls/container/media/clickable.gif rename to sdk/python/examples/controls/core/container/media/clickable.gif diff --git a/sdk/python/examples/controls/container/media/handling_clicks.gif b/sdk/python/examples/controls/core/container/media/handling_clicks.gif similarity index 100% rename from sdk/python/examples/controls/container/media/handling_clicks.gif rename to sdk/python/examples/controls/core/container/media/handling_clicks.gif diff --git a/sdk/python/examples/controls/container/media/handling_hovers.gif b/sdk/python/examples/controls/core/container/media/handling_hovers.gif similarity index 100% rename from sdk/python/examples/controls/container/media/handling_hovers.gif rename to sdk/python/examples/controls/core/container/media/handling_hovers.gif diff --git a/sdk/python/examples/controls/container/media/nested_themes_3.gif b/sdk/python/examples/controls/core/container/media/nested_themes_3.gif similarity index 100% rename from sdk/python/examples/controls/container/media/nested_themes_3.gif rename to sdk/python/examples/controls/core/container/media/nested_themes_3.gif diff --git a/sdk/python/examples/controls/container/media/overview_padding_margin_border.png b/sdk/python/examples/controls/core/container/media/overview_padding_margin_border.png similarity index 100% rename from sdk/python/examples/controls/container/media/overview_padding_margin_border.png rename to sdk/python/examples/controls/core/container/media/overview_padding_margin_border.png diff --git a/sdk/python/examples/controls/container/nested_themes_1/main.py b/sdk/python/examples/controls/core/container/nested_themes_1/main.py similarity index 100% rename from sdk/python/examples/controls/container/nested_themes_1/main.py rename to sdk/python/examples/controls/core/container/nested_themes_1/main.py diff --git a/sdk/python/examples/controls/container/nested_themes_1/pyproject.toml b/sdk/python/examples/controls/core/container/nested_themes_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/nested_themes_1/pyproject.toml rename to sdk/python/examples/controls/core/container/nested_themes_1/pyproject.toml diff --git a/sdk/python/examples/controls/container/nested_themes_2/main.py b/sdk/python/examples/controls/core/container/nested_themes_2/main.py similarity index 100% rename from sdk/python/examples/controls/container/nested_themes_2/main.py rename to sdk/python/examples/controls/core/container/nested_themes_2/main.py diff --git a/sdk/python/examples/controls/container/nested_themes_2/pyproject.toml b/sdk/python/examples/controls/core/container/nested_themes_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/nested_themes_2/pyproject.toml rename to sdk/python/examples/controls/core/container/nested_themes_2/pyproject.toml diff --git a/sdk/python/examples/controls/container/nested_themes_3/main.py b/sdk/python/examples/controls/core/container/nested_themes_3/main.py similarity index 100% rename from sdk/python/examples/controls/container/nested_themes_3/main.py rename to sdk/python/examples/controls/core/container/nested_themes_3/main.py diff --git a/sdk/python/examples/controls/container/nested_themes_3/pyproject.toml b/sdk/python/examples/controls/core/container/nested_themes_3/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/nested_themes_3/pyproject.toml rename to sdk/python/examples/controls/core/container/nested_themes_3/pyproject.toml diff --git a/sdk/python/examples/controls/container/size_aware/main.py b/sdk/python/examples/controls/core/container/size_aware/main.py similarity index 100% rename from sdk/python/examples/controls/container/size_aware/main.py rename to sdk/python/examples/controls/core/container/size_aware/main.py diff --git a/sdk/python/examples/controls/container/size_aware/pyproject.toml b/sdk/python/examples/controls/core/container/size_aware/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/container/size_aware/pyproject.toml rename to sdk/python/examples/controls/core/container/size_aware/pyproject.toml diff --git a/sdk/python/examples/controls/control/expand_loose_chat_messages/main.py b/sdk/python/examples/controls/core/control/expand_loose_chat_messages/main.py similarity index 100% rename from sdk/python/examples/controls/control/expand_loose_chat_messages/main.py rename to sdk/python/examples/controls/core/control/expand_loose_chat_messages/main.py diff --git a/sdk/python/examples/controls/control/expand_loose_chat_messages/pyproject.toml b/sdk/python/examples/controls/core/control/expand_loose_chat_messages/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/control/expand_loose_chat_messages/pyproject.toml rename to sdk/python/examples/controls/core/control/expand_loose_chat_messages/pyproject.toml diff --git a/sdk/python/examples/controls/control/expand_row_equal_split/main.py b/sdk/python/examples/controls/core/control/expand_row_equal_split/main.py similarity index 100% rename from sdk/python/examples/controls/control/expand_row_equal_split/main.py rename to sdk/python/examples/controls/core/control/expand_row_equal_split/main.py diff --git a/sdk/python/examples/controls/control/expand_row_equal_split/pyproject.toml b/sdk/python/examples/controls/core/control/expand_row_equal_split/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/control/expand_row_equal_split/pyproject.toml rename to sdk/python/examples/controls/core/control/expand_row_equal_split/pyproject.toml diff --git a/sdk/python/examples/controls/control/expand_row_proportional_1_3_1/main.py b/sdk/python/examples/controls/core/control/expand_row_proportional_1_3_1/main.py similarity index 100% rename from sdk/python/examples/controls/control/expand_row_proportional_1_3_1/main.py rename to sdk/python/examples/controls/core/control/expand_row_proportional_1_3_1/main.py diff --git a/sdk/python/examples/controls/control/expand_row_proportional_1_3_1/pyproject.toml b/sdk/python/examples/controls/core/control/expand_row_proportional_1_3_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/control/expand_row_proportional_1_3_1/pyproject.toml rename to sdk/python/examples/controls/core/control/expand_row_proportional_1_3_1/pyproject.toml diff --git a/sdk/python/examples/controls/control/expand_textfield_in_row/main.py b/sdk/python/examples/controls/core/control/expand_textfield_in_row/main.py similarity index 100% rename from sdk/python/examples/controls/control/expand_textfield_in_row/main.py rename to sdk/python/examples/controls/core/control/expand_textfield_in_row/main.py diff --git a/sdk/python/examples/controls/control/expand_textfield_in_row/pyproject.toml b/sdk/python/examples/controls/core/control/expand_textfield_in_row/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/control/expand_textfield_in_row/pyproject.toml rename to sdk/python/examples/controls/core/control/expand_textfield_in_row/pyproject.toml diff --git a/sdk/python/examples/controls/dismissible/dismissible_list_tiles/main.py b/sdk/python/examples/controls/core/dismissible/dismissible_list_tiles/main.py similarity index 100% rename from sdk/python/examples/controls/dismissible/dismissible_list_tiles/main.py rename to sdk/python/examples/controls/core/dismissible/dismissible_list_tiles/main.py diff --git a/sdk/python/examples/controls/dismissible/dismissible_list_tiles/pyproject.toml b/sdk/python/examples/controls/core/dismissible/dismissible_list_tiles/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dismissible/dismissible_list_tiles/pyproject.toml rename to sdk/python/examples/controls/core/dismissible/dismissible_list_tiles/pyproject.toml diff --git a/sdk/python/examples/controls/dismissible/media/dismissible_list_tiles.gif b/sdk/python/examples/controls/core/dismissible/media/dismissible_list_tiles.gif similarity index 100% rename from sdk/python/examples/controls/dismissible/media/dismissible_list_tiles.gif rename to sdk/python/examples/controls/core/dismissible/media/dismissible_list_tiles.gif diff --git a/sdk/python/examples/controls/dismissible/remove_on_dismiss_declarative/main.py b/sdk/python/examples/controls/core/dismissible/remove_on_dismiss_declarative/main.py similarity index 100% rename from sdk/python/examples/controls/dismissible/remove_on_dismiss_declarative/main.py rename to sdk/python/examples/controls/core/dismissible/remove_on_dismiss_declarative/main.py diff --git a/sdk/python/examples/controls/dismissible/remove_on_dismiss_declarative/pyproject.toml b/sdk/python/examples/controls/core/dismissible/remove_on_dismiss_declarative/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dismissible/remove_on_dismiss_declarative/pyproject.toml rename to sdk/python/examples/controls/core/dismissible/remove_on_dismiss_declarative/pyproject.toml diff --git a/sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers/main.py b/sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers/main.py similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers/main.py rename to sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers/main.py diff --git a/sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers/pyproject.toml b/sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers/pyproject.toml rename to sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers/pyproject.toml diff --git a/sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers_declarative/main.py b/sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers_declarative/main.py similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers_declarative/main.py rename to sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers_declarative/main.py diff --git a/sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers_declarative/pyproject.toml b/sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers_declarative/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_containers_declarative/pyproject.toml rename to sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_containers_declarative/pyproject.toml diff --git a/sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_ordering_declarative/main.py b/sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_ordering_declarative/main.py similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_ordering_declarative/main.py rename to sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_ordering_declarative/main.py diff --git a/sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_ordering_declarative/pyproject.toml b/sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_ordering_declarative/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/drag_and_drop_ordering_declarative/pyproject.toml rename to sdk/python/examples/controls/core/drag_target_and_draggable/drag_and_drop_ordering_declarative/pyproject.toml diff --git a/sdk/python/examples/controls/drag_target_and_draggable/media/drag_and_drop_containers.gif b/sdk/python/examples/controls/core/drag_target_and_draggable/media/drag_and_drop_containers.gif similarity index 100% rename from sdk/python/examples/controls/drag_target_and_draggable/media/drag_and_drop_containers.gif rename to sdk/python/examples/controls/core/drag_target_and_draggable/media/drag_and_drop_containers.gif diff --git a/sdk/python/examples/controls/gesture_detector/draggable_containers/main.py b/sdk/python/examples/controls/core/gesture_detector/draggable_containers/main.py similarity index 100% rename from sdk/python/examples/controls/gesture_detector/draggable_containers/main.py rename to sdk/python/examples/controls/core/gesture_detector/draggable_containers/main.py diff --git a/sdk/python/examples/controls/gesture_detector/draggable_containers/pyproject.toml b/sdk/python/examples/controls/core/gesture_detector/draggable_containers/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/gesture_detector/draggable_containers/pyproject.toml rename to sdk/python/examples/controls/core/gesture_detector/draggable_containers/pyproject.toml diff --git a/sdk/python/examples/controls/gesture_detector/handling_events/main.py b/sdk/python/examples/controls/core/gesture_detector/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/gesture_detector/handling_events/main.py rename to sdk/python/examples/controls/core/gesture_detector/handling_events/main.py diff --git a/sdk/python/examples/controls/gesture_detector/handling_events/pyproject.toml b/sdk/python/examples/controls/core/gesture_detector/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/gesture_detector/handling_events/pyproject.toml rename to sdk/python/examples/controls/core/gesture_detector/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/gesture_detector/media/draggable_containers.gif b/sdk/python/examples/controls/core/gesture_detector/media/draggable_containers.gif similarity index 100% rename from sdk/python/examples/controls/gesture_detector/media/draggable_containers.gif rename to sdk/python/examples/controls/core/gesture_detector/media/draggable_containers.gif diff --git a/sdk/python/examples/controls/gesture_detector/mouse_cursors/main.py b/sdk/python/examples/controls/core/gesture_detector/mouse_cursors/main.py similarity index 100% rename from sdk/python/examples/controls/gesture_detector/mouse_cursors/main.py rename to sdk/python/examples/controls/core/gesture_detector/mouse_cursors/main.py diff --git a/sdk/python/examples/controls/gesture_detector/mouse_cursors/pyproject.toml b/sdk/python/examples/controls/core/gesture_detector/mouse_cursors/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/gesture_detector/mouse_cursors/pyproject.toml rename to sdk/python/examples/controls/core/gesture_detector/mouse_cursors/pyproject.toml diff --git a/sdk/python/examples/controls/gesture_detector/window_drag_area/main.py b/sdk/python/examples/controls/core/gesture_detector/window_drag_area/main.py similarity index 100% rename from sdk/python/examples/controls/gesture_detector/window_drag_area/main.py rename to sdk/python/examples/controls/core/gesture_detector/window_drag_area/main.py diff --git a/sdk/python/examples/controls/gesture_detector/window_drag_area/pyproject.toml b/sdk/python/examples/controls/core/gesture_detector/window_drag_area/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/gesture_detector/window_drag_area/pyproject.toml rename to sdk/python/examples/controls/core/gesture_detector/window_drag_area/pyproject.toml diff --git a/sdk/python/examples/controls/grid_view/media/photo_gallery.png b/sdk/python/examples/controls/core/grid_view/media/photo_gallery.png similarity index 100% rename from sdk/python/examples/controls/grid_view/media/photo_gallery.png rename to sdk/python/examples/controls/core/grid_view/media/photo_gallery.png diff --git a/sdk/python/examples/controls/grid_view/photo_gallery/main.py b/sdk/python/examples/controls/core/grid_view/photo_gallery/main.py similarity index 100% rename from sdk/python/examples/controls/grid_view/photo_gallery/main.py rename to sdk/python/examples/controls/core/grid_view/photo_gallery/main.py diff --git a/sdk/python/examples/controls/grid_view/photo_gallery/pyproject.toml b/sdk/python/examples/controls/core/grid_view/photo_gallery/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/grid_view/photo_gallery/pyproject.toml rename to sdk/python/examples/controls/core/grid_view/photo_gallery/pyproject.toml diff --git a/sdk/python/examples/controls/hero/basic/main.py b/sdk/python/examples/controls/core/hero/basic/main.py similarity index 100% rename from sdk/python/examples/controls/hero/basic/main.py rename to sdk/python/examples/controls/core/hero/basic/main.py diff --git a/sdk/python/examples/controls/hero/basic/pyproject.toml b/sdk/python/examples/controls/core/hero/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/hero/basic/pyproject.toml rename to sdk/python/examples/controls/core/hero/basic/pyproject.toml diff --git a/sdk/python/examples/controls/hero/gallery/main.py b/sdk/python/examples/controls/core/hero/gallery/main.py similarity index 100% rename from sdk/python/examples/controls/hero/gallery/main.py rename to sdk/python/examples/controls/core/hero/gallery/main.py diff --git a/sdk/python/examples/controls/hero/gallery/pyproject.toml b/sdk/python/examples/controls/core/hero/gallery/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/hero/gallery/pyproject.toml rename to sdk/python/examples/controls/core/hero/gallery/pyproject.toml diff --git a/sdk/python/examples/controls/icon/basic/main.py b/sdk/python/examples/controls/core/icon/basic/main.py similarity index 100% rename from sdk/python/examples/controls/icon/basic/main.py rename to sdk/python/examples/controls/core/icon/basic/main.py diff --git a/sdk/python/examples/controls/icon/basic/pyproject.toml b/sdk/python/examples/controls/core/icon/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/icon/basic/pyproject.toml rename to sdk/python/examples/controls/core/icon/basic/pyproject.toml diff --git a/sdk/python/examples/controls/icon/media/basic.png b/sdk/python/examples/controls/core/icon/media/basic.png similarity index 100% rename from sdk/python/examples/controls/icon/media/basic.png rename to sdk/python/examples/controls/core/icon/media/basic.png diff --git a/sdk/python/examples/controls/image/assets/app_icon_512.png b/sdk/python/examples/controls/core/image/assets/app_icon_512.png similarity index 100% rename from sdk/python/examples/controls/image/assets/app_icon_512.png rename to sdk/python/examples/controls/core/image/assets/app_icon_512.png diff --git a/sdk/python/examples/controls/image/dynamic_svg/main.py b/sdk/python/examples/controls/core/image/dynamic_svg/main.py similarity index 100% rename from sdk/python/examples/controls/image/dynamic_svg/main.py rename to sdk/python/examples/controls/core/image/dynamic_svg/main.py diff --git a/sdk/python/examples/controls/image/dynamic_svg/pyproject.toml b/sdk/python/examples/controls/core/image/dynamic_svg/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/dynamic_svg/pyproject.toml rename to sdk/python/examples/controls/core/image/dynamic_svg/pyproject.toml diff --git a/sdk/python/examples/controls/image/fade_in/main.py b/sdk/python/examples/controls/core/image/fade_in/main.py similarity index 100% rename from sdk/python/examples/controls/image/fade_in/main.py rename to sdk/python/examples/controls/core/image/fade_in/main.py diff --git a/sdk/python/examples/controls/image/fade_in/pyproject.toml b/sdk/python/examples/controls/core/image/fade_in/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/fade_in/pyproject.toml rename to sdk/python/examples/controls/core/image/fade_in/pyproject.toml diff --git a/sdk/python/examples/controls/image/gallery/assets/app_icon_512.png b/sdk/python/examples/controls/core/image/gallery/assets/app_icon_512.png similarity index 100% rename from sdk/python/examples/controls/image/gallery/assets/app_icon_512.png rename to sdk/python/examples/controls/core/image/gallery/assets/app_icon_512.png diff --git a/sdk/python/examples/controls/image/gallery/main.py b/sdk/python/examples/controls/core/image/gallery/main.py similarity index 100% rename from sdk/python/examples/controls/image/gallery/main.py rename to sdk/python/examples/controls/core/image/gallery/main.py diff --git a/sdk/python/examples/controls/image/gallery/pyproject.toml b/sdk/python/examples/controls/core/image/gallery/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/gallery/pyproject.toml rename to sdk/python/examples/controls/core/image/gallery/pyproject.toml diff --git a/sdk/python/examples/controls/image/gapless_playback/main.py b/sdk/python/examples/controls/core/image/gapless_playback/main.py similarity index 100% rename from sdk/python/examples/controls/image/gapless_playback/main.py rename to sdk/python/examples/controls/core/image/gapless_playback/main.py diff --git a/sdk/python/examples/controls/image/gapless_playback/pyproject.toml b/sdk/python/examples/controls/core/image/gapless_playback/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/gapless_playback/pyproject.toml rename to sdk/python/examples/controls/core/image/gapless_playback/pyproject.toml diff --git a/sdk/python/examples/controls/image/lucide_icons/main.py b/sdk/python/examples/controls/core/image/lucide_icons/main.py similarity index 100% rename from sdk/python/examples/controls/image/lucide_icons/main.py rename to sdk/python/examples/controls/core/image/lucide_icons/main.py diff --git a/sdk/python/examples/controls/image/lucide_icons/pyproject.toml b/sdk/python/examples/controls/core/image/lucide_icons/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/lucide_icons/pyproject.toml rename to sdk/python/examples/controls/core/image/lucide_icons/pyproject.toml diff --git a/sdk/python/examples/controls/image/media/gallery.gif b/sdk/python/examples/controls/core/image/media/gallery.gif similarity index 100% rename from sdk/python/examples/controls/image/media/gallery.gif rename to sdk/python/examples/controls/core/image/media/gallery.gif diff --git a/sdk/python/examples/controls/image/src_base64_and_bytes/main.py b/sdk/python/examples/controls/core/image/src_base64_and_bytes/main.py similarity index 100% rename from sdk/python/examples/controls/image/src_base64_and_bytes/main.py rename to sdk/python/examples/controls/core/image/src_base64_and_bytes/main.py diff --git a/sdk/python/examples/controls/image/src_base64_and_bytes/pyproject.toml b/sdk/python/examples/controls/core/image/src_base64_and_bytes/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/src_base64_and_bytes/pyproject.toml rename to sdk/python/examples/controls/core/image/src_base64_and_bytes/pyproject.toml diff --git a/sdk/python/examples/controls/image/static_svg/main.py b/sdk/python/examples/controls/core/image/static_svg/main.py similarity index 100% rename from sdk/python/examples/controls/image/static_svg/main.py rename to sdk/python/examples/controls/core/image/static_svg/main.py diff --git a/sdk/python/examples/controls/image/static_svg/pyproject.toml b/sdk/python/examples/controls/core/image/static_svg/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/image/static_svg/pyproject.toml rename to sdk/python/examples/controls/core/image/static_svg/pyproject.toml diff --git a/sdk/python/examples/controls/interactive_viewer/handling_events/main.py b/sdk/python/examples/controls/core/interactive_viewer/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/interactive_viewer/handling_events/main.py rename to sdk/python/examples/controls/core/interactive_viewer/handling_events/main.py diff --git a/sdk/python/examples/controls/interactive_viewer/handling_events/pyproject.toml b/sdk/python/examples/controls/core/interactive_viewer/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/interactive_viewer/handling_events/pyproject.toml rename to sdk/python/examples/controls/core/interactive_viewer/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/interactive_viewer/transformations/main.py b/sdk/python/examples/controls/core/interactive_viewer/transformations/main.py similarity index 100% rename from sdk/python/examples/controls/interactive_viewer/transformations/main.py rename to sdk/python/examples/controls/core/interactive_viewer/transformations/main.py diff --git a/sdk/python/examples/controls/interactive_viewer/transformations/pyproject.toml b/sdk/python/examples/controls/core/interactive_viewer/transformations/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/interactive_viewer/transformations/pyproject.toml rename to sdk/python/examples/controls/core/interactive_viewer/transformations/pyproject.toml diff --git a/sdk/python/examples/controls/keyboard_listener/detect_keys/main.py b/sdk/python/examples/controls/core/keyboard_listener/detect_keys/main.py similarity index 100% rename from sdk/python/examples/controls/keyboard_listener/detect_keys/main.py rename to sdk/python/examples/controls/core/keyboard_listener/detect_keys/main.py diff --git a/sdk/python/examples/controls/keyboard_listener/detect_keys/pyproject.toml b/sdk/python/examples/controls/core/keyboard_listener/detect_keys/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/keyboard_listener/detect_keys/pyproject.toml rename to sdk/python/examples/controls/core/keyboard_listener/detect_keys/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_align/main.py b/sdk/python/examples/controls/core/layout_control/animate_align/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_align/main.py rename to sdk/python/examples/controls/core/layout_control/animate_align/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_align/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_align/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_align/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_align/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_margin/main.py b/sdk/python/examples/controls/core/layout_control/animate_margin/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_margin/main.py rename to sdk/python/examples/controls/core/layout_control/animate_margin/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_margin/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_margin/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_margin/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_margin/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_offset/main.py b/sdk/python/examples/controls/core/layout_control/animate_offset/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_offset/main.py rename to sdk/python/examples/controls/core/layout_control/animate_offset/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_offset/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_offset/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_offset/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_offset/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_opacity/main.py b/sdk/python/examples/controls/core/layout_control/animate_opacity/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_opacity/main.py rename to sdk/python/examples/controls/core/layout_control/animate_opacity/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_opacity/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_opacity/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_opacity/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_opacity/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_position/main.py b/sdk/python/examples/controls/core/layout_control/animate_position/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_position/main.py rename to sdk/python/examples/controls/core/layout_control/animate_position/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_position/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_position/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_position/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_position/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_rotation/main.py b/sdk/python/examples/controls/core/layout_control/animate_rotation/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_rotation/main.py rename to sdk/python/examples/controls/core/layout_control/animate_rotation/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_rotation/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_rotation/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_rotation/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_rotation/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/animate_scale/main.py b/sdk/python/examples/controls/core/layout_control/animate_scale/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_scale/main.py rename to sdk/python/examples/controls/core/layout_control/animate_scale/main.py diff --git a/sdk/python/examples/controls/layout_control/animate_scale/pyproject.toml b/sdk/python/examples/controls/core/layout_control/animate_scale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/animate_scale/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/animate_scale/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/assets/icon-192.png b/sdk/python/examples/controls/core/layout_control/assets/icon-192.png similarity index 100% rename from sdk/python/examples/controls/layout_control/assets/icon-192.png rename to sdk/python/examples/controls/core/layout_control/assets/icon-192.png diff --git a/sdk/python/examples/controls/layout_control/bursting_flet/assets/icon-192.png b/sdk/python/examples/controls/core/layout_control/bursting_flet/assets/icon-192.png similarity index 100% rename from sdk/python/examples/controls/layout_control/bursting_flet/assets/icon-192.png rename to sdk/python/examples/controls/core/layout_control/bursting_flet/assets/icon-192.png diff --git a/sdk/python/examples/controls/layout_control/bursting_flet/main.py b/sdk/python/examples/controls/core/layout_control/bursting_flet/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/bursting_flet/main.py rename to sdk/python/examples/controls/core/layout_control/bursting_flet/main.py diff --git a/sdk/python/examples/controls/layout_control/bursting_flet/pyproject.toml b/sdk/python/examples/controls/core/layout_control/bursting_flet/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/bursting_flet/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/bursting_flet/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/flip/main.py b/sdk/python/examples/controls/core/layout_control/flip/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/flip/main.py rename to sdk/python/examples/controls/core/layout_control/flip/main.py diff --git a/sdk/python/examples/controls/layout_control/flip/pyproject.toml b/sdk/python/examples/controls/core/layout_control/flip/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/flip/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/flip/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/image_slideshow/main.py b/sdk/python/examples/controls/core/layout_control/image_slideshow/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/image_slideshow/main.py rename to sdk/python/examples/controls/core/layout_control/image_slideshow/main.py diff --git a/sdk/python/examples/controls/layout_control/image_slideshow/pyproject.toml b/sdk/python/examples/controls/core/layout_control/image_slideshow/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/image_slideshow/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/image_slideshow/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/matrix4_transform/main.py b/sdk/python/examples/controls/core/layout_control/matrix4_transform/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/matrix4_transform/main.py rename to sdk/python/examples/controls/core/layout_control/matrix4_transform/main.py diff --git a/sdk/python/examples/controls/layout_control/matrix4_transform/pyproject.toml b/sdk/python/examples/controls/core/layout_control/matrix4_transform/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/matrix4_transform/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/matrix4_transform/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/media/animate_offset.gif b/sdk/python/examples/controls/core/layout_control/media/animate_offset.gif similarity index 100% rename from sdk/python/examples/controls/layout_control/media/animate_offset.gif rename to sdk/python/examples/controls/core/layout_control/media/animate_offset.gif diff --git a/sdk/python/examples/controls/layout_control/media/animate_opacity.gif b/sdk/python/examples/controls/core/layout_control/media/animate_opacity.gif similarity index 100% rename from sdk/python/examples/controls/layout_control/media/animate_opacity.gif rename to sdk/python/examples/controls/core/layout_control/media/animate_opacity.gif diff --git a/sdk/python/examples/controls/layout_control/media/animate_position.gif b/sdk/python/examples/controls/core/layout_control/media/animate_position.gif similarity index 100% rename from sdk/python/examples/controls/layout_control/media/animate_position.gif rename to sdk/python/examples/controls/core/layout_control/media/animate_position.gif diff --git a/sdk/python/examples/controls/layout_control/media/animate_rotation.gif b/sdk/python/examples/controls/core/layout_control/media/animate_rotation.gif similarity index 100% rename from sdk/python/examples/controls/layout_control/media/animate_rotation.gif rename to sdk/python/examples/controls/core/layout_control/media/animate_rotation.gif diff --git a/sdk/python/examples/controls/layout_control/media/animate_scale.gif b/sdk/python/examples/controls/core/layout_control/media/animate_scale.gif similarity index 100% rename from sdk/python/examples/controls/layout_control/media/animate_scale.gif rename to sdk/python/examples/controls/core/layout_control/media/animate_scale.gif diff --git a/sdk/python/examples/controls/layout_control/media/animated_switcher.gif b/sdk/python/examples/controls/core/layout_control/media/animated_switcher.gif similarity index 100% rename from sdk/python/examples/controls/layout_control/media/animated_switcher.gif rename to sdk/python/examples/controls/core/layout_control/media/animated_switcher.gif diff --git a/sdk/python/examples/controls/layout_control/offset/main.py b/sdk/python/examples/controls/core/layout_control/offset/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/offset/main.py rename to sdk/python/examples/controls/core/layout_control/offset/main.py diff --git a/sdk/python/examples/controls/layout_control/offset/pyproject.toml b/sdk/python/examples/controls/core/layout_control/offset/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/offset/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/offset/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/rocket/main.py b/sdk/python/examples/controls/core/layout_control/rocket/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/rocket/main.py rename to sdk/python/examples/controls/core/layout_control/rocket/main.py diff --git a/sdk/python/examples/controls/layout_control/rocket/pyproject.toml b/sdk/python/examples/controls/core/layout_control/rocket/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/rocket/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/rocket/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/rotate/main.py b/sdk/python/examples/controls/core/layout_control/rotate/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/rotate/main.py rename to sdk/python/examples/controls/core/layout_control/rotate/main.py diff --git a/sdk/python/examples/controls/layout_control/rotate/pyproject.toml b/sdk/python/examples/controls/core/layout_control/rotate/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/rotate/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/rotate/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/scale/main.py b/sdk/python/examples/controls/core/layout_control/scale/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/scale/main.py rename to sdk/python/examples/controls/core/layout_control/scale/main.py diff --git a/sdk/python/examples/controls/layout_control/scale/pyproject.toml b/sdk/python/examples/controls/core/layout_control/scale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/scale/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/scale/pyproject.toml diff --git a/sdk/python/examples/controls/layout_control/switcher/main.py b/sdk/python/examples/controls/core/layout_control/switcher/main.py similarity index 100% rename from sdk/python/examples/controls/layout_control/switcher/main.py rename to sdk/python/examples/controls/core/layout_control/switcher/main.py diff --git a/sdk/python/examples/controls/layout_control/switcher/pyproject.toml b/sdk/python/examples/controls/core/layout_control/switcher/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/layout_control/switcher/pyproject.toml rename to sdk/python/examples/controls/core/layout_control/switcher/pyproject.toml diff --git a/sdk/python/examples/controls/list_view/autoscroll_and_dynamic_items/main.py b/sdk/python/examples/controls/core/list_view/autoscroll_and_dynamic_items/main.py similarity index 100% rename from sdk/python/examples/controls/list_view/autoscroll_and_dynamic_items/main.py rename to sdk/python/examples/controls/core/list_view/autoscroll_and_dynamic_items/main.py diff --git a/sdk/python/examples/controls/list_view/autoscroll_and_dynamic_items/pyproject.toml b/sdk/python/examples/controls/core/list_view/autoscroll_and_dynamic_items/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/list_view/autoscroll_and_dynamic_items/pyproject.toml rename to sdk/python/examples/controls/core/list_view/autoscroll_and_dynamic_items/pyproject.toml diff --git a/sdk/python/examples/controls/list_view/media/autoscroll_and_dynamic_items.gif b/sdk/python/examples/controls/core/list_view/media/autoscroll_and_dynamic_items.gif similarity index 100% rename from sdk/python/examples/controls/list_view/media/autoscroll_and_dynamic_items.gif rename to sdk/python/examples/controls/core/list_view/media/autoscroll_and_dynamic_items.gif diff --git a/sdk/python/examples/controls/markdown/basic/main.py b/sdk/python/examples/controls/core/markdown/basic/main.py similarity index 100% rename from sdk/python/examples/controls/markdown/basic/main.py rename to sdk/python/examples/controls/core/markdown/basic/main.py diff --git a/sdk/python/examples/controls/markdown/basic/pyproject.toml b/sdk/python/examples/controls/core/markdown/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/markdown/basic/pyproject.toml rename to sdk/python/examples/controls/core/markdown/basic/pyproject.toml diff --git a/sdk/python/examples/controls/markdown/code_syntax_highlight/main.py b/sdk/python/examples/controls/core/markdown/code_syntax_highlight/main.py similarity index 100% rename from sdk/python/examples/controls/markdown/code_syntax_highlight/main.py rename to sdk/python/examples/controls/core/markdown/code_syntax_highlight/main.py diff --git a/sdk/python/examples/controls/markdown/code_syntax_highlight/pyproject.toml b/sdk/python/examples/controls/core/markdown/code_syntax_highlight/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/markdown/code_syntax_highlight/pyproject.toml rename to sdk/python/examples/controls/core/markdown/code_syntax_highlight/pyproject.toml diff --git a/sdk/python/examples/controls/markdown/custom_text_theme/main.py b/sdk/python/examples/controls/core/markdown/custom_text_theme/main.py similarity index 100% rename from sdk/python/examples/controls/markdown/custom_text_theme/main.py rename to sdk/python/examples/controls/core/markdown/custom_text_theme/main.py diff --git a/sdk/python/examples/controls/markdown/custom_text_theme/pyproject.toml b/sdk/python/examples/controls/core/markdown/custom_text_theme/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/markdown/custom_text_theme/pyproject.toml rename to sdk/python/examples/controls/core/markdown/custom_text_theme/pyproject.toml diff --git a/sdk/python/examples/controls/markdown/listviews/main.py b/sdk/python/examples/controls/core/markdown/listviews/main.py similarity index 100% rename from sdk/python/examples/controls/markdown/listviews/main.py rename to sdk/python/examples/controls/core/markdown/listviews/main.py diff --git a/sdk/python/examples/controls/markdown/listviews/pyproject.toml b/sdk/python/examples/controls/core/markdown/listviews/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/markdown/listviews/pyproject.toml rename to sdk/python/examples/controls/core/markdown/listviews/pyproject.toml diff --git a/sdk/python/examples/controls/markdown/media/basic.gif b/sdk/python/examples/controls/core/markdown/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/markdown/media/basic.gif rename to sdk/python/examples/controls/core/markdown/media/basic.gif diff --git a/sdk/python/examples/controls/markdown/media/code_syntax_highlight.png b/sdk/python/examples/controls/core/markdown/media/code_syntax_highlight.png similarity index 100% rename from sdk/python/examples/controls/markdown/media/code_syntax_highlight.png rename to sdk/python/examples/controls/core/markdown/media/code_syntax_highlight.png diff --git a/sdk/python/examples/controls/page/app_exit_confirm_dialog/main.py b/sdk/python/examples/controls/core/page/app_exit_confirm_dialog/main.py similarity index 100% rename from sdk/python/examples/controls/page/app_exit_confirm_dialog/main.py rename to sdk/python/examples/controls/core/page/app_exit_confirm_dialog/main.py diff --git a/sdk/python/examples/controls/page/app_exit_confirm_dialog/pyproject.toml b/sdk/python/examples/controls/core/page/app_exit_confirm_dialog/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/app_exit_confirm_dialog/pyproject.toml rename to sdk/python/examples/controls/core/page/app_exit_confirm_dialog/pyproject.toml diff --git a/sdk/python/examples/controls/page/device_locale/main.py b/sdk/python/examples/controls/core/page/device_locale/main.py similarity index 100% rename from sdk/python/examples/controls/page/device_locale/main.py rename to sdk/python/examples/controls/core/page/device_locale/main.py diff --git a/sdk/python/examples/controls/page/device_locale/pyproject.toml b/sdk/python/examples/controls/core/page/device_locale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/device_locale/pyproject.toml rename to sdk/python/examples/controls/core/page/device_locale/pyproject.toml diff --git a/sdk/python/examples/controls/page/device_orientation/main.py b/sdk/python/examples/controls/core/page/device_orientation/main.py similarity index 100% rename from sdk/python/examples/controls/page/device_orientation/main.py rename to sdk/python/examples/controls/core/page/device_orientation/main.py diff --git a/sdk/python/examples/controls/page/device_orientation/pyproject.toml b/sdk/python/examples/controls/core/page/device_orientation/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/device_orientation/pyproject.toml rename to sdk/python/examples/controls/core/page/device_orientation/pyproject.toml diff --git a/sdk/python/examples/controls/page/keyboard_events/main.py b/sdk/python/examples/controls/core/page/keyboard_events/main.py similarity index 100% rename from sdk/python/examples/controls/page/keyboard_events/main.py rename to sdk/python/examples/controls/core/page/keyboard_events/main.py diff --git a/sdk/python/examples/controls/page/keyboard_events/pyproject.toml b/sdk/python/examples/controls/core/page/keyboard_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/keyboard_events/pyproject.toml rename to sdk/python/examples/controls/core/page/keyboard_events/pyproject.toml diff --git a/sdk/python/examples/controls/page/semantics_debugger/main.py b/sdk/python/examples/controls/core/page/semantics_debugger/main.py similarity index 100% rename from sdk/python/examples/controls/page/semantics_debugger/main.py rename to sdk/python/examples/controls/core/page/semantics_debugger/main.py diff --git a/sdk/python/examples/controls/page/semantics_debugger/pyproject.toml b/sdk/python/examples/controls/core/page/semantics_debugger/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/semantics_debugger/pyproject.toml rename to sdk/python/examples/controls/core/page/semantics_debugger/pyproject.toml diff --git a/sdk/python/examples/controls/page/set_platform/main.py b/sdk/python/examples/controls/core/page/set_platform/main.py similarity index 100% rename from sdk/python/examples/controls/page/set_platform/main.py rename to sdk/python/examples/controls/core/page/set_platform/main.py diff --git a/sdk/python/examples/controls/page/set_platform/pyproject.toml b/sdk/python/examples/controls/core/page/set_platform/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/set_platform/pyproject.toml rename to sdk/python/examples/controls/core/page/set_platform/pyproject.toml diff --git a/sdk/python/examples/controls/page/splash_test/main.py b/sdk/python/examples/controls/core/page/splash_test/main.py similarity index 100% rename from sdk/python/examples/controls/page/splash_test/main.py rename to sdk/python/examples/controls/core/page/splash_test/main.py diff --git a/sdk/python/examples/controls/page/splash_test/pyproject.toml b/sdk/python/examples/controls/core/page/splash_test/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/splash_test/pyproject.toml rename to sdk/python/examples/controls/core/page/splash_test/pyproject.toml diff --git a/sdk/python/examples/controls/page/window_hidden_on_start/main.py b/sdk/python/examples/controls/core/page/window_hidden_on_start/main.py similarity index 100% rename from sdk/python/examples/controls/page/window_hidden_on_start/main.py rename to sdk/python/examples/controls/core/page/window_hidden_on_start/main.py diff --git a/sdk/python/examples/controls/page/window_hidden_on_start/pyproject.toml b/sdk/python/examples/controls/core/page/window_hidden_on_start/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/window_hidden_on_start/pyproject.toml rename to sdk/python/examples/controls/core/page/window_hidden_on_start/pyproject.toml diff --git a/sdk/python/examples/controls/page/window_resize/main.py b/sdk/python/examples/controls/core/page/window_resize/main.py similarity index 100% rename from sdk/python/examples/controls/page/window_resize/main.py rename to sdk/python/examples/controls/core/page/window_resize/main.py diff --git a/sdk/python/examples/controls/page/window_resize/pyproject.toml b/sdk/python/examples/controls/core/page/window_resize/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page/window_resize/pyproject.toml rename to sdk/python/examples/controls/core/page/window_resize/pyproject.toml diff --git a/sdk/python/examples/controls/page_view/basic/main.py b/sdk/python/examples/controls/core/page_view/basic/main.py similarity index 100% rename from sdk/python/examples/controls/page_view/basic/main.py rename to sdk/python/examples/controls/core/page_view/basic/main.py diff --git a/sdk/python/examples/controls/page_view/basic/pyproject.toml b/sdk/python/examples/controls/core/page_view/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page_view/basic/pyproject.toml rename to sdk/python/examples/controls/core/page_view/basic/pyproject.toml diff --git a/sdk/python/examples/controls/page_view/programmatic_swipe/main.py b/sdk/python/examples/controls/core/page_view/programmatic_swipe/main.py similarity index 100% rename from sdk/python/examples/controls/page_view/programmatic_swipe/main.py rename to sdk/python/examples/controls/core/page_view/programmatic_swipe/main.py diff --git a/sdk/python/examples/controls/page_view/programmatic_swipe/pyproject.toml b/sdk/python/examples/controls/core/page_view/programmatic_swipe/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/page_view/programmatic_swipe/pyproject.toml rename to sdk/python/examples/controls/core/page_view/programmatic_swipe/pyproject.toml diff --git a/sdk/python/examples/controls/pagelet/basic/main.py b/sdk/python/examples/controls/core/pagelet/basic/main.py similarity index 100% rename from sdk/python/examples/controls/pagelet/basic/main.py rename to sdk/python/examples/controls/core/pagelet/basic/main.py diff --git a/sdk/python/examples/controls/pagelet/basic/pyproject.toml b/sdk/python/examples/controls/core/pagelet/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/pagelet/basic/pyproject.toml rename to sdk/python/examples/controls/core/pagelet/basic/pyproject.toml diff --git a/sdk/python/examples/controls/pagelet/basic_declarative/main.py b/sdk/python/examples/controls/core/pagelet/basic_declarative/main.py similarity index 100% rename from sdk/python/examples/controls/pagelet/basic_declarative/main.py rename to sdk/python/examples/controls/core/pagelet/basic_declarative/main.py diff --git a/sdk/python/examples/controls/pagelet/basic_declarative/pyproject.toml b/sdk/python/examples/controls/core/pagelet/basic_declarative/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/pagelet/basic_declarative/pyproject.toml rename to sdk/python/examples/controls/core/pagelet/basic_declarative/pyproject.toml diff --git a/sdk/python/examples/controls/placeholder/basic/main.py b/sdk/python/examples/controls/core/placeholder/basic/main.py similarity index 100% rename from sdk/python/examples/controls/placeholder/basic/main.py rename to sdk/python/examples/controls/core/placeholder/basic/main.py diff --git a/sdk/python/examples/controls/placeholder/basic/pyproject.toml b/sdk/python/examples/controls/core/placeholder/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/placeholder/basic/pyproject.toml rename to sdk/python/examples/controls/core/placeholder/basic/pyproject.toml diff --git a/sdk/python/examples/controls/placeholder/media/basic.png b/sdk/python/examples/controls/core/placeholder/media/basic.png similarity index 100% rename from sdk/python/examples/controls/placeholder/media/basic.png rename to sdk/python/examples/controls/core/placeholder/media/basic.png diff --git a/sdk/python/examples/controls/responsive_row/basic/main.py b/sdk/python/examples/controls/core/responsive_row/basic/main.py similarity index 100% rename from sdk/python/examples/controls/responsive_row/basic/main.py rename to sdk/python/examples/controls/core/responsive_row/basic/main.py diff --git a/sdk/python/examples/controls/responsive_row/basic/pyproject.toml b/sdk/python/examples/controls/core/responsive_row/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/responsive_row/basic/pyproject.toml rename to sdk/python/examples/controls/core/responsive_row/basic/pyproject.toml diff --git a/sdk/python/examples/controls/responsive_row/custom_breakpoint/main.py b/sdk/python/examples/controls/core/responsive_row/custom_breakpoint/main.py similarity index 100% rename from sdk/python/examples/controls/responsive_row/custom_breakpoint/main.py rename to sdk/python/examples/controls/core/responsive_row/custom_breakpoint/main.py diff --git a/sdk/python/examples/controls/responsive_row/custom_breakpoint/pyproject.toml b/sdk/python/examples/controls/core/responsive_row/custom_breakpoint/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/responsive_row/custom_breakpoint/pyproject.toml rename to sdk/python/examples/controls/core/responsive_row/custom_breakpoint/pyproject.toml diff --git a/sdk/python/examples/controls/responsive_row/media/basic.gif b/sdk/python/examples/controls/core/responsive_row/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/responsive_row/media/basic.gif rename to sdk/python/examples/controls/core/responsive_row/media/basic.gif diff --git a/sdk/python/examples/controls/rotated_box/basic/main.py b/sdk/python/examples/controls/core/rotated_box/basic/main.py similarity index 100% rename from sdk/python/examples/controls/rotated_box/basic/main.py rename to sdk/python/examples/controls/core/rotated_box/basic/main.py diff --git a/sdk/python/examples/controls/rotated_box/basic/pyproject.toml b/sdk/python/examples/controls/core/rotated_box/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/rotated_box/basic/pyproject.toml rename to sdk/python/examples/controls/core/rotated_box/basic/pyproject.toml diff --git a/sdk/python/examples/controls/row/alignment/main.py b/sdk/python/examples/controls/core/row/alignment/main.py similarity index 100% rename from sdk/python/examples/controls/row/alignment/main.py rename to sdk/python/examples/controls/core/row/alignment/main.py diff --git a/sdk/python/examples/controls/row/alignment/pyproject.toml b/sdk/python/examples/controls/core/row/alignment/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/row/alignment/pyproject.toml rename to sdk/python/examples/controls/core/row/alignment/pyproject.toml diff --git a/sdk/python/examples/controls/row/media/alignment.png b/sdk/python/examples/controls/core/row/media/alignment.png similarity index 100% rename from sdk/python/examples/controls/row/media/alignment.png rename to sdk/python/examples/controls/core/row/media/alignment.png diff --git a/sdk/python/examples/controls/row/media/spacing.gif b/sdk/python/examples/controls/core/row/media/spacing.gif similarity index 100% rename from sdk/python/examples/controls/row/media/spacing.gif rename to sdk/python/examples/controls/core/row/media/spacing.gif diff --git a/sdk/python/examples/controls/row/media/vertical_alignment.png b/sdk/python/examples/controls/core/row/media/vertical_alignment.png similarity index 100% rename from sdk/python/examples/controls/row/media/vertical_alignment.png rename to sdk/python/examples/controls/core/row/media/vertical_alignment.png diff --git a/sdk/python/examples/controls/row/media/wrap.gif b/sdk/python/examples/controls/core/row/media/wrap.gif similarity index 100% rename from sdk/python/examples/controls/row/media/wrap.gif rename to sdk/python/examples/controls/core/row/media/wrap.gif diff --git a/sdk/python/examples/controls/row/spacing/main.py b/sdk/python/examples/controls/core/row/spacing/main.py similarity index 100% rename from sdk/python/examples/controls/row/spacing/main.py rename to sdk/python/examples/controls/core/row/spacing/main.py diff --git a/sdk/python/examples/controls/row/spacing/pyproject.toml b/sdk/python/examples/controls/core/row/spacing/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/row/spacing/pyproject.toml rename to sdk/python/examples/controls/core/row/spacing/pyproject.toml diff --git a/sdk/python/examples/controls/row/vertical_alignment/main.py b/sdk/python/examples/controls/core/row/vertical_alignment/main.py similarity index 100% rename from sdk/python/examples/controls/row/vertical_alignment/main.py rename to sdk/python/examples/controls/core/row/vertical_alignment/main.py diff --git a/sdk/python/examples/controls/row/vertical_alignment/pyproject.toml b/sdk/python/examples/controls/core/row/vertical_alignment/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/row/vertical_alignment/pyproject.toml rename to sdk/python/examples/controls/core/row/vertical_alignment/pyproject.toml diff --git a/sdk/python/examples/controls/row/wrap/main.py b/sdk/python/examples/controls/core/row/wrap/main.py similarity index 100% rename from sdk/python/examples/controls/row/wrap/main.py rename to sdk/python/examples/controls/core/row/wrap/main.py diff --git a/sdk/python/examples/controls/row/wrap/pyproject.toml b/sdk/python/examples/controls/core/row/wrap/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/row/wrap/pyproject.toml rename to sdk/python/examples/controls/core/row/wrap/pyproject.toml diff --git a/sdk/python/examples/controls/safe_area/basic/main.py b/sdk/python/examples/controls/core/safe_area/basic/main.py similarity index 100% rename from sdk/python/examples/controls/safe_area/basic/main.py rename to sdk/python/examples/controls/core/safe_area/basic/main.py diff --git a/sdk/python/examples/controls/safe_area/basic/pyproject.toml b/sdk/python/examples/controls/core/safe_area/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/safe_area/basic/pyproject.toml rename to sdk/python/examples/controls/core/safe_area/basic/pyproject.toml diff --git a/sdk/python/examples/controls/screenshot/taking_screenshot/main.py b/sdk/python/examples/controls/core/screenshot/taking_screenshot/main.py similarity index 100% rename from sdk/python/examples/controls/screenshot/taking_screenshot/main.py rename to sdk/python/examples/controls/core/screenshot/taking_screenshot/main.py diff --git a/sdk/python/examples/controls/screenshot/taking_screenshot/pyproject.toml b/sdk/python/examples/controls/core/screenshot/taking_screenshot/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/screenshot/taking_screenshot/pyproject.toml rename to sdk/python/examples/controls/core/screenshot/taking_screenshot/pyproject.toml diff --git a/sdk/python/examples/controls/screenshot/taking_screenshot/screenshot.png b/sdk/python/examples/controls/core/screenshot/taking_screenshot/screenshot.png similarity index 100% rename from sdk/python/examples/controls/screenshot/taking_screenshot/screenshot.png rename to sdk/python/examples/controls/core/screenshot/taking_screenshot/screenshot.png diff --git a/sdk/python/examples/controls/semantics/basic/main.py b/sdk/python/examples/controls/core/semantics/basic/main.py similarity index 100% rename from sdk/python/examples/controls/semantics/basic/main.py rename to sdk/python/examples/controls/core/semantics/basic/main.py diff --git a/sdk/python/examples/controls/semantics/basic/pyproject.toml b/sdk/python/examples/controls/core/semantics/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/semantics/basic/pyproject.toml rename to sdk/python/examples/controls/core/semantics/basic/pyproject.toml diff --git a/sdk/python/examples/controls/shader_mask/fade_out_image_bottom/main.py b/sdk/python/examples/controls/core/shader_mask/fade_out_image_bottom/main.py similarity index 100% rename from sdk/python/examples/controls/shader_mask/fade_out_image_bottom/main.py rename to sdk/python/examples/controls/core/shader_mask/fade_out_image_bottom/main.py diff --git a/sdk/python/examples/controls/shader_mask/fade_out_image_bottom/pyproject.toml b/sdk/python/examples/controls/core/shader_mask/fade_out_image_bottom/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/shader_mask/fade_out_image_bottom/pyproject.toml rename to sdk/python/examples/controls/core/shader_mask/fade_out_image_bottom/pyproject.toml diff --git a/sdk/python/examples/controls/shader_mask/linear_and_radial_gradients/main.py b/sdk/python/examples/controls/core/shader_mask/linear_and_radial_gradients/main.py similarity index 100% rename from sdk/python/examples/controls/shader_mask/linear_and_radial_gradients/main.py rename to sdk/python/examples/controls/core/shader_mask/linear_and_radial_gradients/main.py diff --git a/sdk/python/examples/controls/shader_mask/linear_and_radial_gradients/pyproject.toml b/sdk/python/examples/controls/core/shader_mask/linear_and_radial_gradients/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/shader_mask/linear_and_radial_gradients/pyproject.toml rename to sdk/python/examples/controls/core/shader_mask/linear_and_radial_gradients/pyproject.toml diff --git a/sdk/python/examples/controls/shader_mask/media/fade_out_image_bottom.png b/sdk/python/examples/controls/core/shader_mask/media/fade_out_image_bottom.png similarity index 100% rename from sdk/python/examples/controls/shader_mask/media/fade_out_image_bottom.png rename to sdk/python/examples/controls/core/shader_mask/media/fade_out_image_bottom.png diff --git a/sdk/python/examples/controls/shader_mask/media/pink_radial_glow.png b/sdk/python/examples/controls/core/shader_mask/media/pink_radial_glow.png similarity index 100% rename from sdk/python/examples/controls/shader_mask/media/pink_radial_glow.png rename to sdk/python/examples/controls/core/shader_mask/media/pink_radial_glow.png diff --git a/sdk/python/examples/controls/shader_mask/pink_radial_glow/main.py b/sdk/python/examples/controls/core/shader_mask/pink_radial_glow/main.py similarity index 100% rename from sdk/python/examples/controls/shader_mask/pink_radial_glow/main.py rename to sdk/python/examples/controls/core/shader_mask/pink_radial_glow/main.py diff --git a/sdk/python/examples/controls/shader_mask/pink_radial_glow/pyproject.toml b/sdk/python/examples/controls/core/shader_mask/pink_radial_glow/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/shader_mask/pink_radial_glow/pyproject.toml rename to sdk/python/examples/controls/core/shader_mask/pink_radial_glow/pyproject.toml diff --git a/sdk/python/examples/controls/shimmer/basic/main.py b/sdk/python/examples/controls/core/shimmer/basic/main.py similarity index 100% rename from sdk/python/examples/controls/shimmer/basic/main.py rename to sdk/python/examples/controls/core/shimmer/basic/main.py diff --git a/sdk/python/examples/controls/shimmer/basic/pyproject.toml b/sdk/python/examples/controls/core/shimmer/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/shimmer/basic/pyproject.toml rename to sdk/python/examples/controls/core/shimmer/basic/pyproject.toml diff --git a/sdk/python/examples/controls/shimmer/basic_placeholder/main.py b/sdk/python/examples/controls/core/shimmer/basic_placeholder/main.py similarity index 100% rename from sdk/python/examples/controls/shimmer/basic_placeholder/main.py rename to sdk/python/examples/controls/core/shimmer/basic_placeholder/main.py diff --git a/sdk/python/examples/controls/shimmer/basic_placeholder/pyproject.toml b/sdk/python/examples/controls/core/shimmer/basic_placeholder/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/shimmer/basic_placeholder/pyproject.toml rename to sdk/python/examples/controls/core/shimmer/basic_placeholder/pyproject.toml diff --git a/sdk/python/examples/controls/shimmer/custom_gradient/main.py b/sdk/python/examples/controls/core/shimmer/custom_gradient/main.py similarity index 100% rename from sdk/python/examples/controls/shimmer/custom_gradient/main.py rename to sdk/python/examples/controls/core/shimmer/custom_gradient/main.py diff --git a/sdk/python/examples/controls/shimmer/custom_gradient/pyproject.toml b/sdk/python/examples/controls/core/shimmer/custom_gradient/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/shimmer/custom_gradient/pyproject.toml rename to sdk/python/examples/controls/core/shimmer/custom_gradient/pyproject.toml diff --git a/sdk/python/examples/controls/stack/absolute_positioning/main.py b/sdk/python/examples/controls/core/stack/absolute_positioning/main.py similarity index 100% rename from sdk/python/examples/controls/stack/absolute_positioning/main.py rename to sdk/python/examples/controls/core/stack/absolute_positioning/main.py diff --git a/sdk/python/examples/controls/stack/absolute_positioning/pyproject.toml b/sdk/python/examples/controls/core/stack/absolute_positioning/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/stack/absolute_positioning/pyproject.toml rename to sdk/python/examples/controls/core/stack/absolute_positioning/pyproject.toml diff --git a/sdk/python/examples/controls/stack/media/absolute_positioning.png b/sdk/python/examples/controls/core/stack/media/absolute_positioning.png similarity index 100% rename from sdk/python/examples/controls/stack/media/absolute_positioning.png rename to sdk/python/examples/controls/core/stack/media/absolute_positioning.png diff --git a/sdk/python/examples/controls/stack/media/online_avatar.png b/sdk/python/examples/controls/core/stack/media/online_avatar.png similarity index 100% rename from sdk/python/examples/controls/stack/media/online_avatar.png rename to sdk/python/examples/controls/core/stack/media/online_avatar.png diff --git a/sdk/python/examples/controls/stack/media/text_on_image.png b/sdk/python/examples/controls/core/stack/media/text_on_image.png similarity index 100% rename from sdk/python/examples/controls/stack/media/text_on_image.png rename to sdk/python/examples/controls/core/stack/media/text_on_image.png diff --git a/sdk/python/examples/controls/stack/online_avatar/main.py b/sdk/python/examples/controls/core/stack/online_avatar/main.py similarity index 100% rename from sdk/python/examples/controls/stack/online_avatar/main.py rename to sdk/python/examples/controls/core/stack/online_avatar/main.py diff --git a/sdk/python/examples/controls/stack/online_avatar/pyproject.toml b/sdk/python/examples/controls/core/stack/online_avatar/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/stack/online_avatar/pyproject.toml rename to sdk/python/examples/controls/core/stack/online_avatar/pyproject.toml diff --git a/sdk/python/examples/controls/stack/text_on_image/main.py b/sdk/python/examples/controls/core/stack/text_on_image/main.py similarity index 100% rename from sdk/python/examples/controls/stack/text_on_image/main.py rename to sdk/python/examples/controls/core/stack/text_on_image/main.py diff --git a/sdk/python/examples/controls/stack/text_on_image/pyproject.toml b/sdk/python/examples/controls/core/stack/text_on_image/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/stack/text_on_image/pyproject.toml rename to sdk/python/examples/controls/core/stack/text_on_image/pyproject.toml diff --git a/sdk/python/examples/controls/text/custom_styles/main.py b/sdk/python/examples/controls/core/text/custom_styles/main.py similarity index 100% rename from sdk/python/examples/controls/text/custom_styles/main.py rename to sdk/python/examples/controls/core/text/custom_styles/main.py diff --git a/sdk/python/examples/controls/text/custom_styles/pyproject.toml b/sdk/python/examples/controls/core/text/custom_styles/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text/custom_styles/pyproject.toml rename to sdk/python/examples/controls/core/text/custom_styles/pyproject.toml diff --git a/sdk/python/examples/controls/text/media/custom_styles.gif b/sdk/python/examples/controls/core/text/media/custom_styles.gif similarity index 100% rename from sdk/python/examples/controls/text/media/custom_styles.gif rename to sdk/python/examples/controls/core/text/media/custom_styles.gif diff --git a/sdk/python/examples/controls/text/media/rich_text_basic.png b/sdk/python/examples/controls/core/text/media/rich_text_basic.png similarity index 100% rename from sdk/python/examples/controls/text/media/rich_text_basic.png rename to sdk/python/examples/controls/core/text/media/rich_text_basic.png diff --git a/sdk/python/examples/controls/text/media/rich_text_border_stroke.png b/sdk/python/examples/controls/core/text/media/rich_text_border_stroke.png similarity index 100% rename from sdk/python/examples/controls/text/media/rich_text_border_stroke.png rename to sdk/python/examples/controls/core/text/media/rich_text_border_stroke.png diff --git a/sdk/python/examples/controls/text/media/rich_text_gradient.png b/sdk/python/examples/controls/core/text/media/rich_text_gradient.png similarity index 100% rename from sdk/python/examples/controls/text/media/rich_text_gradient.png rename to sdk/python/examples/controls/core/text/media/rich_text_gradient.png diff --git a/sdk/python/examples/controls/text/media/text_theme_styles.png b/sdk/python/examples/controls/core/text/media/text_theme_styles.png similarity index 100% rename from sdk/python/examples/controls/text/media/text_theme_styles.png rename to sdk/python/examples/controls/core/text/media/text_theme_styles.png diff --git a/sdk/python/examples/controls/text/media/variable_font_weight.gif b/sdk/python/examples/controls/core/text/media/variable_font_weight.gif similarity index 100% rename from sdk/python/examples/controls/text/media/variable_font_weight.gif rename to sdk/python/examples/controls/core/text/media/variable_font_weight.gif diff --git a/sdk/python/examples/controls/text/rich_text_basic/main.py b/sdk/python/examples/controls/core/text/rich_text_basic/main.py similarity index 100% rename from sdk/python/examples/controls/text/rich_text_basic/main.py rename to sdk/python/examples/controls/core/text/rich_text_basic/main.py diff --git a/sdk/python/examples/controls/text/rich_text_basic/pyproject.toml b/sdk/python/examples/controls/core/text/rich_text_basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text/rich_text_basic/pyproject.toml rename to sdk/python/examples/controls/core/text/rich_text_basic/pyproject.toml diff --git a/sdk/python/examples/controls/text/rich_text_border_stroke/main.py b/sdk/python/examples/controls/core/text/rich_text_border_stroke/main.py similarity index 100% rename from sdk/python/examples/controls/text/rich_text_border_stroke/main.py rename to sdk/python/examples/controls/core/text/rich_text_border_stroke/main.py diff --git a/sdk/python/examples/controls/text/rich_text_border_stroke/pyproject.toml b/sdk/python/examples/controls/core/text/rich_text_border_stroke/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text/rich_text_border_stroke/pyproject.toml rename to sdk/python/examples/controls/core/text/rich_text_border_stroke/pyproject.toml diff --git a/sdk/python/examples/controls/text/rich_text_gradient/main.py b/sdk/python/examples/controls/core/text/rich_text_gradient/main.py similarity index 100% rename from sdk/python/examples/controls/text/rich_text_gradient/main.py rename to sdk/python/examples/controls/core/text/rich_text_gradient/main.py diff --git a/sdk/python/examples/controls/text/rich_text_gradient/pyproject.toml b/sdk/python/examples/controls/core/text/rich_text_gradient/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text/rich_text_gradient/pyproject.toml rename to sdk/python/examples/controls/core/text/rich_text_gradient/pyproject.toml diff --git a/sdk/python/examples/controls/text/text_theme_styles/main.py b/sdk/python/examples/controls/core/text/text_theme_styles/main.py similarity index 100% rename from sdk/python/examples/controls/text/text_theme_styles/main.py rename to sdk/python/examples/controls/core/text/text_theme_styles/main.py diff --git a/sdk/python/examples/controls/text/text_theme_styles/pyproject.toml b/sdk/python/examples/controls/core/text/text_theme_styles/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text/text_theme_styles/pyproject.toml rename to sdk/python/examples/controls/core/text/text_theme_styles/pyproject.toml diff --git a/sdk/python/examples/controls/text/variable_font_weight/main.py b/sdk/python/examples/controls/core/text/variable_font_weight/main.py similarity index 100% rename from sdk/python/examples/controls/text/variable_font_weight/main.py rename to sdk/python/examples/controls/core/text/variable_font_weight/main.py diff --git a/sdk/python/examples/controls/text/variable_font_weight/pyproject.toml b/sdk/python/examples/controls/core/text/variable_font_weight/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text/variable_font_weight/pyproject.toml rename to sdk/python/examples/controls/core/text/variable_font_weight/pyproject.toml diff --git a/sdk/python/examples/controls/transparent_pointer/basic/main.py b/sdk/python/examples/controls/core/transparent_pointer/basic/main.py similarity index 100% rename from sdk/python/examples/controls/transparent_pointer/basic/main.py rename to sdk/python/examples/controls/core/transparent_pointer/basic/main.py diff --git a/sdk/python/examples/controls/transparent_pointer/basic/pyproject.toml b/sdk/python/examples/controls/core/transparent_pointer/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/transparent_pointer/basic/pyproject.toml rename to sdk/python/examples/controls/core/transparent_pointer/basic/pyproject.toml diff --git a/sdk/python/examples/controls/types/alignment/container/main.py b/sdk/python/examples/controls/core/types/alignment/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/alignment/container/main.py rename to sdk/python/examples/controls/core/types/alignment/container/main.py diff --git a/sdk/python/examples/controls/types/alignment/container/pyproject.toml b/sdk/python/examples/controls/core/types/alignment/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/alignment/container/pyproject.toml rename to sdk/python/examples/controls/core/types/alignment/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/alignment/media/container.png b/sdk/python/examples/controls/core/types/alignment/media/container.png similarity index 100% rename from sdk/python/examples/controls/types/alignment/media/container.png rename to sdk/python/examples/controls/core/types/alignment/media/container.png diff --git a/sdk/python/examples/controls/types/alignment/media/overview.png b/sdk/python/examples/controls/core/types/alignment/media/overview.png similarity index 100% rename from sdk/python/examples/controls/types/alignment/media/overview.png rename to sdk/python/examples/controls/core/types/alignment/media/overview.png diff --git a/sdk/python/examples/controls/types/animated_switcher_transition/showcase/main.py b/sdk/python/examples/controls/core/types/animated_switcher_transition/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/animated_switcher_transition/showcase/main.py rename to sdk/python/examples/controls/core/types/animated_switcher_transition/showcase/main.py diff --git a/sdk/python/examples/controls/types/animated_switcher_transition/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/animated_switcher_transition/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/animated_switcher_transition/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/animated_switcher_transition/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/animation_curve/showcase/main.py b/sdk/python/examples/controls/core/types/animation_curve/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/animation_curve/showcase/main.py rename to sdk/python/examples/controls/core/types/animation_curve/showcase/main.py diff --git a/sdk/python/examples/controls/types/animation_curve/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/animation_curve/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/animation_curve/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/animation_curve/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/app_lifecycle_state/showcase/main.py b/sdk/python/examples/controls/core/types/app_lifecycle_state/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/app_lifecycle_state/showcase/main.py rename to sdk/python/examples/controls/core/types/app_lifecycle_state/showcase/main.py diff --git a/sdk/python/examples/controls/types/app_lifecycle_state/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/app_lifecycle_state/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/app_lifecycle_state/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/app_lifecycle_state/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/assertiveness/showcase/main.py b/sdk/python/examples/controls/core/types/assertiveness/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/assertiveness/showcase/main.py rename to sdk/python/examples/controls/core/types/assertiveness/showcase/main.py diff --git a/sdk/python/examples/controls/types/assertiveness/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/assertiveness/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/assertiveness/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/assertiveness/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/axis/showcase/main.py b/sdk/python/examples/controls/core/types/axis/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/axis/showcase/main.py rename to sdk/python/examples/controls/core/types/axis/showcase/main.py diff --git a/sdk/python/examples/controls/types/axis/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/axis/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/axis/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/axis/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/badge/media/in_navigation_bar.png b/sdk/python/examples/controls/core/types/badge/media/in_navigation_bar.png similarity index 100% rename from sdk/python/examples/controls/types/badge/media/in_navigation_bar.png rename to sdk/python/examples/controls/core/types/badge/media/in_navigation_bar.png diff --git a/sdk/python/examples/controls/types/blend_mode/showcase/main.py b/sdk/python/examples/controls/core/types/blend_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/blend_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/blend_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/blend_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/blend_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/blend_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/blend_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/blur/container/main.py b/sdk/python/examples/controls/core/types/blur/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/blur/container/main.py rename to sdk/python/examples/controls/core/types/blur/container/main.py diff --git a/sdk/python/examples/controls/types/blur/container/pyproject.toml b/sdk/python/examples/controls/core/types/blur/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/blur/container/pyproject.toml rename to sdk/python/examples/controls/core/types/blur/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/blur/media/container.gif b/sdk/python/examples/controls/core/types/blur/media/container.gif similarity index 100% rename from sdk/python/examples/controls/types/blur/media/container.gif rename to sdk/python/examples/controls/core/types/blur/media/container.gif diff --git a/sdk/python/examples/controls/types/blur_style/showcase/main.py b/sdk/python/examples/controls/core/types/blur_style/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/blur_style/showcase/main.py rename to sdk/python/examples/controls/core/types/blur_style/showcase/main.py diff --git a/sdk/python/examples/controls/types/blur_style/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/blur_style/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/blur_style/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/blur_style/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/blur_tile_mode/showcase/main.py b/sdk/python/examples/controls/core/types/blur_tile_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/blur_tile_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/blur_tile_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/blur_tile_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/blur_tile_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/blur_tile_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/blur_tile_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/border/container/main.py b/sdk/python/examples/controls/core/types/border/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/border/container/main.py rename to sdk/python/examples/controls/core/types/border/container/main.py diff --git a/sdk/python/examples/controls/types/border/container/pyproject.toml b/sdk/python/examples/controls/core/types/border/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/border/container/pyproject.toml rename to sdk/python/examples/controls/core/types/border/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/border_side_stroke_align/showcase/main.py b/sdk/python/examples/controls/core/types/border_side_stroke_align/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/border_side_stroke_align/showcase/main.py rename to sdk/python/examples/controls/core/types/border_side_stroke_align/showcase/main.py diff --git a/sdk/python/examples/controls/types/border_side_stroke_align/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/border_side_stroke_align/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/border_side_stroke_align/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/border_side_stroke_align/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/border_style/showcase/main.py b/sdk/python/examples/controls/core/types/border_style/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/border_style/showcase/main.py rename to sdk/python/examples/controls/core/types/border_style/showcase/main.py diff --git a/sdk/python/examples/controls/types/border_style/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/border_style/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/border_style/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/border_style/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/box_fit/showcase/main.py b/sdk/python/examples/controls/core/types/box_fit/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/box_fit/showcase/main.py rename to sdk/python/examples/controls/core/types/box_fit/showcase/main.py diff --git a/sdk/python/examples/controls/types/box_fit/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/box_fit/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/box_fit/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/box_fit/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/box_shadow/container/main.py b/sdk/python/examples/controls/core/types/box_shadow/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/box_shadow/container/main.py rename to sdk/python/examples/controls/core/types/box_shadow/container/main.py diff --git a/sdk/python/examples/controls/types/box_shadow/container/pyproject.toml b/sdk/python/examples/controls/core/types/box_shadow/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/box_shadow/container/pyproject.toml rename to sdk/python/examples/controls/core/types/box_shadow/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/box_shape/showcase/main.py b/sdk/python/examples/controls/core/types/box_shape/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/box_shape/showcase/main.py rename to sdk/python/examples/controls/core/types/box_shape/showcase/main.py diff --git a/sdk/python/examples/controls/types/box_shape/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/box_shape/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/box_shape/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/box_shape/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/card_variant/showcase/main.py b/sdk/python/examples/controls/core/types/card_variant/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/card_variant/showcase/main.py rename to sdk/python/examples/controls/core/types/card_variant/showcase/main.py diff --git a/sdk/python/examples/controls/types/card_variant/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/card_variant/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/card_variant/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/card_variant/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/clip_behavior/showcase/main.py b/sdk/python/examples/controls/core/types/clip_behavior/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/clip_behavior/showcase/main.py rename to sdk/python/examples/controls/core/types/clip_behavior/showcase/main.py diff --git a/sdk/python/examples/controls/types/clip_behavior/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/clip_behavior/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/clip_behavior/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/clip_behavior/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/context/disable_auto_update/main.py b/sdk/python/examples/controls/core/types/context/disable_auto_update/main.py similarity index 100% rename from sdk/python/examples/controls/types/context/disable_auto_update/main.py rename to sdk/python/examples/controls/core/types/context/disable_auto_update/main.py diff --git a/sdk/python/examples/controls/types/context/disable_auto_update/pyproject.toml b/sdk/python/examples/controls/core/types/context/disable_auto_update/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/context/disable_auto_update/pyproject.toml rename to sdk/python/examples/controls/core/types/context/disable_auto_update/pyproject.toml diff --git a/sdk/python/examples/controls/types/context/get_page/main.py b/sdk/python/examples/controls/core/types/context/get_page/main.py similarity index 100% rename from sdk/python/examples/controls/types/context/get_page/main.py rename to sdk/python/examples/controls/core/types/context/get_page/main.py diff --git a/sdk/python/examples/controls/types/context/get_page/pyproject.toml b/sdk/python/examples/controls/core/types/context/get_page/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/context/get_page/pyproject.toml rename to sdk/python/examples/controls/core/types/context/get_page/pyproject.toml diff --git a/sdk/python/examples/controls/types/context_menu_trigger/showcase/main.py b/sdk/python/examples/controls/core/types/context_menu_trigger/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/context_menu_trigger/showcase/main.py rename to sdk/python/examples/controls/core/types/context_menu_trigger/showcase/main.py diff --git a/sdk/python/examples/controls/types/context_menu_trigger/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/context_menu_trigger/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/context_menu_trigger/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/context_menu_trigger/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/cross_axis_alignment/showcase/main.py b/sdk/python/examples/controls/core/types/cross_axis_alignment/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/cross_axis_alignment/showcase/main.py rename to sdk/python/examples/controls/core/types/cross_axis_alignment/showcase/main.py diff --git a/sdk/python/examples/controls/types/cross_axis_alignment/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/cross_axis_alignment/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/cross_axis_alignment/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/cross_axis_alignment/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/cupertino_button_size/showcase/main.py b/sdk/python/examples/controls/core/types/cupertino_button_size/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/cupertino_button_size/showcase/main.py rename to sdk/python/examples/controls/core/types/cupertino_button_size/showcase/main.py diff --git a/sdk/python/examples/controls/types/cupertino_button_size/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/cupertino_button_size/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/cupertino_button_size/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/cupertino_button_size/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/cupertino_date_picker_date_order/showcase/main.py b/sdk/python/examples/controls/core/types/cupertino_date_picker_date_order/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/cupertino_date_picker_date_order/showcase/main.py rename to sdk/python/examples/controls/core/types/cupertino_date_picker_date_order/showcase/main.py diff --git a/sdk/python/examples/controls/types/cupertino_date_picker_date_order/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/cupertino_date_picker_date_order/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/cupertino_date_picker_date_order/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/cupertino_date_picker_date_order/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/cupertino_date_picker_mode/showcase/main.py b/sdk/python/examples/controls/core/types/cupertino_date_picker_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/cupertino_date_picker_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/cupertino_date_picker_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/cupertino_date_picker_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/cupertino_date_picker_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/cupertino_date_picker_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/cupertino_date_picker_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/cupertino_timer_picker_mode/showcase/main.py b/sdk/python/examples/controls/core/types/cupertino_timer_picker_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/cupertino_timer_picker_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/cupertino_timer_picker_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/cupertino_timer_picker_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/cupertino_timer_picker_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/cupertino_timer_picker_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/cupertino_timer_picker_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/date_picker_entry_mode/showcase/main.py b/sdk/python/examples/controls/core/types/date_picker_entry_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/date_picker_entry_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/date_picker_entry_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/date_picker_entry_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/date_picker_entry_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/date_picker_entry_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/date_picker_entry_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/date_picker_mode/showcase/main.py b/sdk/python/examples/controls/core/types/date_picker_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/date_picker_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/date_picker_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/date_picker_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/date_picker_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/date_picker_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/date_picker_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/dismiss_direction/showcase/main.py b/sdk/python/examples/controls/core/types/dismiss_direction/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/dismiss_direction/showcase/main.py rename to sdk/python/examples/controls/core/types/dismiss_direction/showcase/main.py diff --git a/sdk/python/examples/controls/types/dismiss_direction/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/dismiss_direction/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/dismiss_direction/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/dismiss_direction/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/filter_quality/showcase/main.py b/sdk/python/examples/controls/core/types/filter_quality/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/filter_quality/showcase/main.py rename to sdk/python/examples/controls/core/types/filter_quality/showcase/main.py diff --git a/sdk/python/examples/controls/types/filter_quality/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/filter_quality/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/filter_quality/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/filter_quality/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/floating_action_button_location/showcase/main.py b/sdk/python/examples/controls/core/types/floating_action_button_location/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/floating_action_button_location/showcase/main.py rename to sdk/python/examples/controls/core/types/floating_action_button_location/showcase/main.py diff --git a/sdk/python/examples/controls/types/floating_action_button_location/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/floating_action_button_location/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/floating_action_button_location/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/floating_action_button_location/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/font_weight/showcase/main.py b/sdk/python/examples/controls/core/types/font_weight/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/font_weight/showcase/main.py rename to sdk/python/examples/controls/core/types/font_weight/showcase/main.py diff --git a/sdk/python/examples/controls/types/font_weight/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/font_weight/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/font_weight/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/font_weight/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/gradient/container/main.py b/sdk/python/examples/controls/core/types/gradient/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/gradient/container/main.py rename to sdk/python/examples/controls/core/types/gradient/container/main.py diff --git a/sdk/python/examples/controls/types/gradient/container/pyproject.toml b/sdk/python/examples/controls/core/types/gradient/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/gradient/container/pyproject.toml rename to sdk/python/examples/controls/core/types/gradient/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/gradient/linear_gradient/container/main.py b/sdk/python/examples/controls/core/types/gradient/linear_gradient/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/gradient/linear_gradient/container/main.py rename to sdk/python/examples/controls/core/types/gradient/linear_gradient/container/main.py diff --git a/sdk/python/examples/controls/types/gradient/linear_gradient/container/pyproject.toml b/sdk/python/examples/controls/core/types/gradient/linear_gradient/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/gradient/linear_gradient/container/pyproject.toml rename to sdk/python/examples/controls/core/types/gradient/linear_gradient/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/gradient/linear_gradient/media/container.png b/sdk/python/examples/controls/core/types/gradient/linear_gradient/media/container.png similarity index 100% rename from sdk/python/examples/controls/types/gradient/linear_gradient/media/container.png rename to sdk/python/examples/controls/core/types/gradient/linear_gradient/media/container.png diff --git a/sdk/python/examples/controls/types/gradient/radial_gradient/container/main.py b/sdk/python/examples/controls/core/types/gradient/radial_gradient/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/gradient/radial_gradient/container/main.py rename to sdk/python/examples/controls/core/types/gradient/radial_gradient/container/main.py diff --git a/sdk/python/examples/controls/types/gradient/radial_gradient/container/pyproject.toml b/sdk/python/examples/controls/core/types/gradient/radial_gradient/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/gradient/radial_gradient/container/pyproject.toml rename to sdk/python/examples/controls/core/types/gradient/radial_gradient/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/gradient/radial_gradient/media/container.png b/sdk/python/examples/controls/core/types/gradient/radial_gradient/media/container.png similarity index 100% rename from sdk/python/examples/controls/types/gradient/radial_gradient/media/container.png rename to sdk/python/examples/controls/core/types/gradient/radial_gradient/media/container.png diff --git a/sdk/python/examples/controls/types/gradient/sweep_gradient/container/main.py b/sdk/python/examples/controls/core/types/gradient/sweep_gradient/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/gradient/sweep_gradient/container/main.py rename to sdk/python/examples/controls/core/types/gradient/sweep_gradient/container/main.py diff --git a/sdk/python/examples/controls/types/gradient/sweep_gradient/container/pyproject.toml b/sdk/python/examples/controls/core/types/gradient/sweep_gradient/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/gradient/sweep_gradient/container/pyproject.toml rename to sdk/python/examples/controls/core/types/gradient/sweep_gradient/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/gradient/sweep_gradient/media/container.png b/sdk/python/examples/controls/core/types/gradient/sweep_gradient/media/container.png similarity index 100% rename from sdk/python/examples/controls/types/gradient/sweep_gradient/media/container.png rename to sdk/python/examples/controls/core/types/gradient/sweep_gradient/media/container.png diff --git a/sdk/python/examples/controls/types/gradient_tile_mode/showcase/main.py b/sdk/python/examples/controls/core/types/gradient_tile_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/gradient_tile_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/gradient_tile_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/gradient_tile_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/gradient_tile_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/gradient_tile_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/gradient_tile_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/image_repeat/showcase/main.py b/sdk/python/examples/controls/core/types/image_repeat/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/image_repeat/showcase/main.py rename to sdk/python/examples/controls/core/types/image_repeat/showcase/main.py diff --git a/sdk/python/examples/controls/types/image_repeat/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/image_repeat/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/image_repeat/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/image_repeat/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/label_position/showcase/main.py b/sdk/python/examples/controls/core/types/label_position/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/label_position/showcase/main.py rename to sdk/python/examples/controls/core/types/label_position/showcase/main.py diff --git a/sdk/python/examples/controls/types/label_position/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/label_position/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/label_position/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/label_position/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/launch_mode/showcase/main.py b/sdk/python/examples/controls/core/types/launch_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/launch_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/launch_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/launch_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/launch_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/launch_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/launch_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/list_tile_style/showcase/main.py b/sdk/python/examples/controls/core/types/list_tile_style/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/list_tile_style/showcase/main.py rename to sdk/python/examples/controls/core/types/list_tile_style/showcase/main.py diff --git a/sdk/python/examples/controls/types/list_tile_style/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/list_tile_style/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/list_tile_style/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/list_tile_style/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/list_tile_title_alignment/showcase/main.py b/sdk/python/examples/controls/core/types/list_tile_title_alignment/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/list_tile_title_alignment/showcase/main.py rename to sdk/python/examples/controls/core/types/list_tile_title_alignment/showcase/main.py diff --git a/sdk/python/examples/controls/types/list_tile_title_alignment/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/list_tile_title_alignment/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/list_tile_title_alignment/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/list_tile_title_alignment/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/main_axis_alignment/showcase/main.py b/sdk/python/examples/controls/core/types/main_axis_alignment/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/main_axis_alignment/showcase/main.py rename to sdk/python/examples/controls/core/types/main_axis_alignment/showcase/main.py diff --git a/sdk/python/examples/controls/types/main_axis_alignment/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/main_axis_alignment/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/main_axis_alignment/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/main_axis_alignment/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/margin/container/main.py b/sdk/python/examples/controls/core/types/margin/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/margin/container/main.py rename to sdk/python/examples/controls/core/types/margin/container/main.py diff --git a/sdk/python/examples/controls/types/margin/container/pyproject.toml b/sdk/python/examples/controls/core/types/margin/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/margin/container/pyproject.toml rename to sdk/python/examples/controls/core/types/margin/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/mouse_cursor/showcase/main.py b/sdk/python/examples/controls/core/types/mouse_cursor/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/mouse_cursor/showcase/main.py rename to sdk/python/examples/controls/core/types/mouse_cursor/showcase/main.py diff --git a/sdk/python/examples/controls/types/mouse_cursor/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/mouse_cursor/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/mouse_cursor/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/mouse_cursor/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/navigation_bar_label_behavior/showcase/main.py b/sdk/python/examples/controls/core/types/navigation_bar_label_behavior/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/navigation_bar_label_behavior/showcase/main.py rename to sdk/python/examples/controls/core/types/navigation_bar_label_behavior/showcase/main.py diff --git a/sdk/python/examples/controls/types/navigation_bar_label_behavior/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/navigation_bar_label_behavior/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/navigation_bar_label_behavior/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/navigation_bar_label_behavior/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/navigation_rail_label_type/showcase/main.py b/sdk/python/examples/controls/core/types/navigation_rail_label_type/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/navigation_rail_label_type/showcase/main.py rename to sdk/python/examples/controls/core/types/navigation_rail_label_type/showcase/main.py diff --git a/sdk/python/examples/controls/types/navigation_rail_label_type/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/navigation_rail_label_type/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/navigation_rail_label_type/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/navigation_rail_label_type/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/orientation/showcase/main.py b/sdk/python/examples/controls/core/types/orientation/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/orientation/showcase/main.py rename to sdk/python/examples/controls/core/types/orientation/showcase/main.py diff --git a/sdk/python/examples/controls/types/orientation/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/orientation/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/orientation/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/orientation/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/overlay_visibility_mode/showcase/main.py b/sdk/python/examples/controls/core/types/overlay_visibility_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/overlay_visibility_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/overlay_visibility_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/overlay_visibility_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/overlay_visibility_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/overlay_visibility_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/overlay_visibility_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/padding/container/main.py b/sdk/python/examples/controls/core/types/padding/container/main.py similarity index 100% rename from sdk/python/examples/controls/types/padding/container/main.py rename to sdk/python/examples/controls/core/types/padding/container/main.py diff --git a/sdk/python/examples/controls/types/padding/container/pyproject.toml b/sdk/python/examples/controls/core/types/padding/container/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/padding/container/pyproject.toml rename to sdk/python/examples/controls/core/types/padding/container/pyproject.toml diff --git a/sdk/python/examples/controls/types/padding/media/container.png b/sdk/python/examples/controls/core/types/padding/media/container.png similarity index 100% rename from sdk/python/examples/controls/types/padding/media/container.png rename to sdk/python/examples/controls/core/types/padding/media/container.png diff --git a/sdk/python/examples/controls/types/paint_gradient/canvas_paint/main.py b/sdk/python/examples/controls/core/types/paint_gradient/canvas_paint/main.py similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/canvas_paint/main.py rename to sdk/python/examples/controls/core/types/paint_gradient/canvas_paint/main.py diff --git a/sdk/python/examples/controls/types/paint_gradient/canvas_paint/pyproject.toml b/sdk/python/examples/controls/core/types/paint_gradient/canvas_paint/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/canvas_paint/pyproject.toml rename to sdk/python/examples/controls/core/types/paint_gradient/canvas_paint/pyproject.toml diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_linear_gradient/canvas_paint/main.py b/sdk/python/examples/controls/core/types/paint_gradient/paint_linear_gradient/canvas_paint/main.py similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_linear_gradient/canvas_paint/main.py rename to sdk/python/examples/controls/core/types/paint_gradient/paint_linear_gradient/canvas_paint/main.py diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_linear_gradient/canvas_paint/pyproject.toml b/sdk/python/examples/controls/core/types/paint_gradient/paint_linear_gradient/canvas_paint/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_linear_gradient/canvas_paint/pyproject.toml rename to sdk/python/examples/controls/core/types/paint_gradient/paint_linear_gradient/canvas_paint/pyproject.toml diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_linear_gradient/media/canvas_paint.png b/sdk/python/examples/controls/core/types/paint_gradient/paint_linear_gradient/media/canvas_paint.png similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_linear_gradient/media/canvas_paint.png rename to sdk/python/examples/controls/core/types/paint_gradient/paint_linear_gradient/media/canvas_paint.png diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_radial_gradient/canvas_paint/main.py b/sdk/python/examples/controls/core/types/paint_gradient/paint_radial_gradient/canvas_paint/main.py similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_radial_gradient/canvas_paint/main.py rename to sdk/python/examples/controls/core/types/paint_gradient/paint_radial_gradient/canvas_paint/main.py diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_radial_gradient/canvas_paint/pyproject.toml b/sdk/python/examples/controls/core/types/paint_gradient/paint_radial_gradient/canvas_paint/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_radial_gradient/canvas_paint/pyproject.toml rename to sdk/python/examples/controls/core/types/paint_gradient/paint_radial_gradient/canvas_paint/pyproject.toml diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_radial_gradient/media/canvas_paint.png b/sdk/python/examples/controls/core/types/paint_gradient/paint_radial_gradient/media/canvas_paint.png similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_radial_gradient/media/canvas_paint.png rename to sdk/python/examples/controls/core/types/paint_gradient/paint_radial_gradient/media/canvas_paint.png diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_sweep_gradient/canvas_paint/main.py b/sdk/python/examples/controls/core/types/paint_gradient/paint_sweep_gradient/canvas_paint/main.py similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_sweep_gradient/canvas_paint/main.py rename to sdk/python/examples/controls/core/types/paint_gradient/paint_sweep_gradient/canvas_paint/main.py diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_sweep_gradient/canvas_paint/pyproject.toml b/sdk/python/examples/controls/core/types/paint_gradient/paint_sweep_gradient/canvas_paint/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_sweep_gradient/canvas_paint/pyproject.toml rename to sdk/python/examples/controls/core/types/paint_gradient/paint_sweep_gradient/canvas_paint/pyproject.toml diff --git a/sdk/python/examples/controls/types/paint_gradient/paint_sweep_gradient/media/canvas_paint.png b/sdk/python/examples/controls/core/types/paint_gradient/paint_sweep_gradient/media/canvas_paint.png similarity index 100% rename from sdk/python/examples/controls/types/paint_gradient/paint_sweep_gradient/media/canvas_paint.png rename to sdk/python/examples/controls/core/types/paint_gradient/paint_sweep_gradient/media/canvas_paint.png diff --git a/sdk/python/examples/controls/types/painting_style/showcase/main.py b/sdk/python/examples/controls/core/types/painting_style/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/painting_style/showcase/main.py rename to sdk/python/examples/controls/core/types/painting_style/showcase/main.py diff --git a/sdk/python/examples/controls/types/painting_style/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/painting_style/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/painting_style/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/painting_style/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/point_mode/showcase/main.py b/sdk/python/examples/controls/core/types/point_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/point_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/point_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/point_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/point_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/point_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/point_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/popup_menu_position/showcase/main.py b/sdk/python/examples/controls/core/types/popup_menu_position/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/popup_menu_position/showcase/main.py rename to sdk/python/examples/controls/core/types/popup_menu_position/showcase/main.py diff --git a/sdk/python/examples/controls/types/popup_menu_position/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/popup_menu_position/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/popup_menu_position/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/popup_menu_position/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/scroll_bar/showcase/main.py b/sdk/python/examples/controls/core/types/scroll_bar/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/scroll_bar/showcase/main.py rename to sdk/python/examples/controls/core/types/scroll_bar/showcase/main.py diff --git a/sdk/python/examples/controls/types/scroll_bar/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/scroll_bar/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/scroll_bar/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/scroll_bar/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/scroll_bar_orientation/showcase/main.py b/sdk/python/examples/controls/core/types/scroll_bar_orientation/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/scroll_bar_orientation/showcase/main.py rename to sdk/python/examples/controls/core/types/scroll_bar_orientation/showcase/main.py diff --git a/sdk/python/examples/controls/types/scroll_bar_orientation/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/scroll_bar_orientation/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/scroll_bar_orientation/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/scroll_bar_orientation/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/scroll_direction/showcase/main.py b/sdk/python/examples/controls/core/types/scroll_direction/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/scroll_direction/showcase/main.py rename to sdk/python/examples/controls/core/types/scroll_direction/showcase/main.py diff --git a/sdk/python/examples/controls/types/scroll_direction/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/scroll_direction/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/scroll_direction/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/scroll_direction/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/scroll_mode/showcase/main.py b/sdk/python/examples/controls/core/types/scroll_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/scroll_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/scroll_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/scroll_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/scroll_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/scroll_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/scroll_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/scroll_type/showcase/main.py b/sdk/python/examples/controls/core/types/scroll_type/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/scroll_type/showcase/main.py rename to sdk/python/examples/controls/core/types/scroll_type/showcase/main.py diff --git a/sdk/python/examples/controls/types/scroll_type/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/scroll_type/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/scroll_type/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/scroll_type/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/slider_interaction/showcase/main.py b/sdk/python/examples/controls/core/types/slider_interaction/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/slider_interaction/showcase/main.py rename to sdk/python/examples/controls/core/types/slider_interaction/showcase/main.py diff --git a/sdk/python/examples/controls/types/slider_interaction/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/slider_interaction/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/slider_interaction/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/slider_interaction/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/snack_bar_behavior/showcase/main.py b/sdk/python/examples/controls/core/types/snack_bar_behavior/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/snack_bar_behavior/showcase/main.py rename to sdk/python/examples/controls/core/types/snack_bar_behavior/showcase/main.py diff --git a/sdk/python/examples/controls/types/snack_bar_behavior/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/snack_bar_behavior/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/snack_bar_behavior/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/snack_bar_behavior/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/stroke_cap/showcase/main.py b/sdk/python/examples/controls/core/types/stroke_cap/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/stroke_cap/showcase/main.py rename to sdk/python/examples/controls/core/types/stroke_cap/showcase/main.py diff --git a/sdk/python/examples/controls/types/stroke_cap/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/stroke_cap/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/stroke_cap/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/stroke_cap/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/stroke_join/showcase/main.py b/sdk/python/examples/controls/core/types/stroke_join/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/stroke_join/showcase/main.py rename to sdk/python/examples/controls/core/types/stroke_join/showcase/main.py diff --git a/sdk/python/examples/controls/types/stroke_join/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/stroke_join/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/stroke_join/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/stroke_join/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/tab_alignment/showcase/main.py b/sdk/python/examples/controls/core/types/tab_alignment/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/tab_alignment/showcase/main.py rename to sdk/python/examples/controls/core/types/tab_alignment/showcase/main.py diff --git a/sdk/python/examples/controls/types/tab_alignment/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/tab_alignment/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/tab_alignment/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/tab_alignment/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/tab_bar_indicator_size/showcase/main.py b/sdk/python/examples/controls/core/types/tab_bar_indicator_size/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/tab_bar_indicator_size/showcase/main.py rename to sdk/python/examples/controls/core/types/tab_bar_indicator_size/showcase/main.py diff --git a/sdk/python/examples/controls/types/tab_bar_indicator_size/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/tab_bar_indicator_size/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/tab_bar_indicator_size/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/tab_bar_indicator_size/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/tab_indicator_animation/showcase/main.py b/sdk/python/examples/controls/core/types/tab_indicator_animation/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/tab_indicator_animation/showcase/main.py rename to sdk/python/examples/controls/core/types/tab_indicator_animation/showcase/main.py diff --git a/sdk/python/examples/controls/types/tab_indicator_animation/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/tab_indicator_animation/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/tab_indicator_animation/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/tab_indicator_animation/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/text_align/showcase/main.py b/sdk/python/examples/controls/core/types/text_align/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/text_align/showcase/main.py rename to sdk/python/examples/controls/core/types/text_align/showcase/main.py diff --git a/sdk/python/examples/controls/types/text_align/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/text_align/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/text_align/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/text_align/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/text_capitalization/showcase/main.py b/sdk/python/examples/controls/core/types/text_capitalization/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/text_capitalization/showcase/main.py rename to sdk/python/examples/controls/core/types/text_capitalization/showcase/main.py diff --git a/sdk/python/examples/controls/types/text_capitalization/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/text_capitalization/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/text_capitalization/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/text_capitalization/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/text_decoration_style/showcase/main.py b/sdk/python/examples/controls/core/types/text_decoration_style/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/text_decoration_style/showcase/main.py rename to sdk/python/examples/controls/core/types/text_decoration_style/showcase/main.py diff --git a/sdk/python/examples/controls/types/text_decoration_style/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/text_decoration_style/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/text_decoration_style/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/text_decoration_style/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/text_overflow/showcase/main.py b/sdk/python/examples/controls/core/types/text_overflow/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/text_overflow/showcase/main.py rename to sdk/python/examples/controls/core/types/text_overflow/showcase/main.py diff --git a/sdk/python/examples/controls/types/text_overflow/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/text_overflow/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/text_overflow/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/text_overflow/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/theme_mode/showcase/main.py b/sdk/python/examples/controls/core/types/theme_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/theme_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/theme_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/theme_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/theme_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/theme_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/theme_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/tile_affinity/showcase/main.py b/sdk/python/examples/controls/core/types/tile_affinity/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/tile_affinity/showcase/main.py rename to sdk/python/examples/controls/core/types/tile_affinity/showcase/main.py diff --git a/sdk/python/examples/controls/types/tile_affinity/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/tile_affinity/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/tile_affinity/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/tile_affinity/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/time_picker_entry_mode/showcase/main.py b/sdk/python/examples/controls/core/types/time_picker_entry_mode/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/time_picker_entry_mode/showcase/main.py rename to sdk/python/examples/controls/core/types/time_picker_entry_mode/showcase/main.py diff --git a/sdk/python/examples/controls/types/time_picker_entry_mode/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/time_picker_entry_mode/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/time_picker_entry_mode/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/time_picker_entry_mode/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/time_picker_hour_format/showcase/main.py b/sdk/python/examples/controls/core/types/time_picker_hour_format/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/time_picker_hour_format/showcase/main.py rename to sdk/python/examples/controls/core/types/time_picker_hour_format/showcase/main.py diff --git a/sdk/python/examples/controls/types/time_picker_hour_format/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/time_picker_hour_format/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/time_picker_hour_format/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/time_picker_hour_format/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/tooltip/media/with_decoration.gif b/sdk/python/examples/controls/core/types/tooltip/media/with_decoration.gif similarity index 100% rename from sdk/python/examples/controls/types/tooltip/media/with_decoration.gif rename to sdk/python/examples/controls/core/types/tooltip/media/with_decoration.gif diff --git a/sdk/python/examples/controls/types/tooltip/with_decoration/main.py b/sdk/python/examples/controls/core/types/tooltip/with_decoration/main.py similarity index 100% rename from sdk/python/examples/controls/types/tooltip/with_decoration/main.py rename to sdk/python/examples/controls/core/types/tooltip/with_decoration/main.py diff --git a/sdk/python/examples/controls/types/tooltip/with_decoration/pyproject.toml b/sdk/python/examples/controls/core/types/tooltip/with_decoration/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/tooltip/with_decoration/pyproject.toml rename to sdk/python/examples/controls/core/types/tooltip/with_decoration/pyproject.toml diff --git a/sdk/python/examples/controls/types/url_target/showcase/main.py b/sdk/python/examples/controls/core/types/url_target/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/url_target/showcase/main.py rename to sdk/python/examples/controls/core/types/url_target/showcase/main.py diff --git a/sdk/python/examples/controls/types/url_target/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/url_target/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/url_target/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/url_target/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/visual_density/showcase/main.py b/sdk/python/examples/controls/core/types/visual_density/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/visual_density/showcase/main.py rename to sdk/python/examples/controls/core/types/visual_density/showcase/main.py diff --git a/sdk/python/examples/controls/types/visual_density/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/visual_density/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/visual_density/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/visual_density/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/types/window_event_type/showcase/main.py b/sdk/python/examples/controls/core/types/window_event_type/showcase/main.py similarity index 100% rename from sdk/python/examples/controls/types/window_event_type/showcase/main.py rename to sdk/python/examples/controls/core/types/window_event_type/showcase/main.py diff --git a/sdk/python/examples/controls/types/window_event_type/showcase/pyproject.toml b/sdk/python/examples/controls/core/types/window_event_type/showcase/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/types/window_event_type/showcase/pyproject.toml rename to sdk/python/examples/controls/core/types/window_event_type/showcase/pyproject.toml diff --git a/sdk/python/examples/controls/vertical_divider/basic/main.py b/sdk/python/examples/controls/core/vertical_divider/basic/main.py similarity index 100% rename from sdk/python/examples/controls/vertical_divider/basic/main.py rename to sdk/python/examples/controls/core/vertical_divider/basic/main.py diff --git a/sdk/python/examples/controls/vertical_divider/basic/pyproject.toml b/sdk/python/examples/controls/core/vertical_divider/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/vertical_divider/basic/pyproject.toml rename to sdk/python/examples/controls/core/vertical_divider/basic/pyproject.toml diff --git a/sdk/python/examples/controls/window_drag_area/no_frame_window/main.py b/sdk/python/examples/controls/core/window_drag_area/no_frame_window/main.py similarity index 100% rename from sdk/python/examples/controls/window_drag_area/no_frame_window/main.py rename to sdk/python/examples/controls/core/window_drag_area/no_frame_window/main.py diff --git a/sdk/python/examples/controls/window_drag_area/no_frame_window/pyproject.toml b/sdk/python/examples/controls/core/window_drag_area/no_frame_window/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/window_drag_area/no_frame_window/pyproject.toml rename to sdk/python/examples/controls/core/window_drag_area/no_frame_window/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_action_sheet/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_action_sheet/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_action_sheet/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_action_sheet/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_action_sheet/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_action_sheet/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_action_sheet/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_action_sheet/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_action_sheet/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_action_sheet/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_action_sheet/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_action_sheet/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_activity_indicator/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_activity_indicator/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_activity_indicator/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_activity_indicator/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_activity_indicator/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_activity_indicator/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_activity_indicator/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_activity_indicator/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_activity_indicator/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_activity_indicator/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_activity_indicator/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_activity_indicator/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_activity_indicator/progress/main.py b/sdk/python/examples/controls/cupertino/cupertino_activity_indicator/progress/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_activity_indicator/progress/main.py rename to sdk/python/examples/controls/cupertino/cupertino_activity_indicator/progress/main.py diff --git a/sdk/python/examples/controls/cupertino_activity_indicator/progress/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_activity_indicator/progress/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_activity_indicator/progress/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_activity_indicator/progress/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/cupertino_material_and_adaptive/main.py b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/cupertino_material_and_adaptive/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/cupertino_material_and_adaptive/main.py rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/cupertino_material_and_adaptive/main.py diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/cupertino_material_and_adaptive/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/cupertino_material_and_adaptive/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/cupertino_material_and_adaptive/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/cupertino_material_and_adaptive/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/file_deletion_confirmation/main.py b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/file_deletion_confirmation/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/file_deletion_confirmation/main.py rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/file_deletion_confirmation/main.py diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/file_deletion_confirmation/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/file_deletion_confirmation/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/file_deletion_confirmation/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/file_deletion_confirmation/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/media/adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/media/adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/media/adaptive.png diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/media/adaptive_dialog_action.png b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/media/adaptive_dialog_action.png similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/media/adaptive_dialog_action.png rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/media/adaptive_dialog_action.png diff --git a/sdk/python/examples/controls/cupertino_alert_dialog/media/file_deletion_confirmation.png b/sdk/python/examples/controls/cupertino/cupertino_alert_dialog/media/file_deletion_confirmation.png similarity index 100% rename from sdk/python/examples/controls/cupertino_alert_dialog/media/file_deletion_confirmation.png rename to sdk/python/examples/controls/cupertino/cupertino_alert_dialog/media/file_deletion_confirmation.png diff --git a/sdk/python/examples/controls/cupertino_app_bar/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_app_bar/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_app_bar/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_app_bar/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_app_bar/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_app_bar/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_app_bar/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_app_bar/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_app_bar/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_app_bar/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_app_bar/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_app_bar/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_app_bar/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_app_bar/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_app_bar/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_app_bar/media/index.png diff --git a/sdk/python/examples/controls/cupertino_app_bar/theme_mode_toggle/main.py b/sdk/python/examples/controls/cupertino/cupertino_app_bar/theme_mode_toggle/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_app_bar/theme_mode_toggle/main.py rename to sdk/python/examples/controls/cupertino/cupertino_app_bar/theme_mode_toggle/main.py diff --git a/sdk/python/examples/controls/cupertino_app_bar/theme_mode_toggle/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_app_bar/theme_mode_toggle/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_app_bar/theme_mode_toggle/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_app_bar/theme_mode_toggle/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_button/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_button/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_button/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_button/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_button/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_button/media/adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_button/media/adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_button/media/adaptive.png diff --git a/sdk/python/examples/controls/cupertino_button/media/adaptive_icon_button.png b/sdk/python/examples/controls/cupertino/cupertino_button/media/adaptive_icon_button.png similarity index 100% rename from sdk/python/examples/controls/cupertino_button/media/adaptive_icon_button.png rename to sdk/python/examples/controls/cupertino/cupertino_button/media/adaptive_icon_button.png diff --git a/sdk/python/examples/controls/cupertino_button/media/adaptive_tonal_button.png b/sdk/python/examples/controls/cupertino/cupertino_button/media/adaptive_tonal_button.png similarity index 100% rename from sdk/python/examples/controls/cupertino_button/media/adaptive_tonal_button.png rename to sdk/python/examples/controls/cupertino/cupertino_button/media/adaptive_tonal_button.png diff --git a/sdk/python/examples/controls/cupertino_button/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_button/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_button/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_button/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_button/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_button/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_button/media/index.png diff --git a/sdk/python/examples/controls/cupertino_checkbox/cupertino_material_and_adaptive/main.py b/sdk/python/examples/controls/cupertino/cupertino_checkbox/cupertino_material_and_adaptive/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_checkbox/cupertino_material_and_adaptive/main.py rename to sdk/python/examples/controls/cupertino/cupertino_checkbox/cupertino_material_and_adaptive/main.py diff --git a/sdk/python/examples/controls/cupertino_checkbox/cupertino_material_and_adaptive/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_checkbox/cupertino_material_and_adaptive/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_checkbox/cupertino_material_and_adaptive/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_checkbox/cupertino_material_and_adaptive/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_checkbox/media/cupertino_material_and_adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_checkbox/media/cupertino_material_and_adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_checkbox/media/cupertino_material_and_adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_checkbox/media/cupertino_material_and_adaptive.png diff --git a/sdk/python/examples/controls/cupertino_checkbox/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_checkbox/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_checkbox/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_checkbox/media/index.png diff --git a/sdk/python/examples/controls/cupertino_checkbox/styled/main.py b/sdk/python/examples/controls/cupertino/cupertino_checkbox/styled/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_checkbox/styled/main.py rename to sdk/python/examples/controls/cupertino/cupertino_checkbox/styled/main.py diff --git a/sdk/python/examples/controls/cupertino_checkbox/styled/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_checkbox/styled/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_checkbox/styled/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_checkbox/styled/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_context_menu/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_context_menu/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_context_menu/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_context_menu/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_context_menu/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_context_menu/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_context_menu/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_context_menu/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_context_menu/media/basic.gif b/sdk/python/examples/controls/cupertino/cupertino_context_menu/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_context_menu/media/basic.gif rename to sdk/python/examples/controls/cupertino/cupertino_context_menu/media/basic.gif diff --git a/sdk/python/examples/controls/cupertino_date_picker/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_date_picker/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_date_picker/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_date_picker/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_date_picker/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_date_picker/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_date_picker/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_date_picker/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_date_picker/custom_locale/main.py b/sdk/python/examples/controls/cupertino/cupertino_date_picker/custom_locale/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_date_picker/custom_locale/main.py rename to sdk/python/examples/controls/cupertino/cupertino_date_picker/custom_locale/main.py diff --git a/sdk/python/examples/controls/cupertino_date_picker/custom_locale/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_date_picker/custom_locale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_date_picker/custom_locale/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_date_picker/custom_locale/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_date_picker/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_date_picker/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_date_picker/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_date_picker/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_filled_button/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_filled_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_filled_button/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_filled_button/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_filled_button/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_filled_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_filled_button/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_filled_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_filled_button/media/adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_filled_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_filled_button/media/adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_filled_button/media/adaptive.png diff --git a/sdk/python/examples/controls/cupertino_filled_button/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_filled_button/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_filled_button/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_filled_button/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_list_tile/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_list_tile/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_list_tile/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_list_tile/media/index.png diff --git a/sdk/python/examples/controls/cupertino_list_tile/media/notched.png b/sdk/python/examples/controls/cupertino/cupertino_list_tile/media/notched.png similarity index 100% rename from sdk/python/examples/controls/cupertino_list_tile/media/notched.png rename to sdk/python/examples/controls/cupertino/cupertino_list_tile/media/notched.png diff --git a/sdk/python/examples/controls/cupertino_list_tile/notched/main.py b/sdk/python/examples/controls/cupertino/cupertino_list_tile/notched/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_list_tile/notched/main.py rename to sdk/python/examples/controls/cupertino/cupertino_list_tile/notched/main.py diff --git a/sdk/python/examples/controls/cupertino_list_tile/notched/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_list_tile/notched/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_list_tile/notched/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_list_tile/notched/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_navigation_bar/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_navigation_bar/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_navigation_bar/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_navigation_bar/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_navigation_bar/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_navigation_bar/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_navigation_bar/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_navigation_bar/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_navigation_bar/media/adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_navigation_bar/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_navigation_bar/media/adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_navigation_bar/media/adaptive.png diff --git a/sdk/python/examples/controls/cupertino_navigation_bar/media/basic.png b/sdk/python/examples/controls/cupertino/cupertino_navigation_bar/media/basic.png similarity index 100% rename from sdk/python/examples/controls/cupertino_navigation_bar/media/basic.png rename to sdk/python/examples/controls/cupertino/cupertino_navigation_bar/media/basic.png diff --git a/sdk/python/examples/controls/cupertino_navigation_bar/wired/main.py b/sdk/python/examples/controls/cupertino/cupertino_navigation_bar/wired/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_navigation_bar/wired/main.py rename to sdk/python/examples/controls/cupertino/cupertino_navigation_bar/wired/main.py diff --git a/sdk/python/examples/controls/cupertino_navigation_bar/wired/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_navigation_bar/wired/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_navigation_bar/wired/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_navigation_bar/wired/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_picker/fruit_selection/main.py b/sdk/python/examples/controls/cupertino/cupertino_picker/fruit_selection/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_picker/fruit_selection/main.py rename to sdk/python/examples/controls/cupertino/cupertino_picker/fruit_selection/main.py diff --git a/sdk/python/examples/controls/cupertino_picker/fruit_selection/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_picker/fruit_selection/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_picker/fruit_selection/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_picker/fruit_selection/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_picker/media/fruit_selection.gif b/sdk/python/examples/controls/cupertino/cupertino_picker/media/fruit_selection.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_picker/media/fruit_selection.gif rename to sdk/python/examples/controls/cupertino/cupertino_picker/media/fruit_selection.gif diff --git a/sdk/python/examples/controls/cupertino_radio/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_radio/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_radio/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_radio/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_radio/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_radio/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_radio/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_radio/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_radio/cupertino_material_and_adaptive/main.py b/sdk/python/examples/controls/cupertino/cupertino_radio/cupertino_material_and_adaptive/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_radio/cupertino_material_and_adaptive/main.py rename to sdk/python/examples/controls/cupertino/cupertino_radio/cupertino_material_and_adaptive/main.py diff --git a/sdk/python/examples/controls/cupertino_radio/cupertino_material_and_adaptive/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_radio/cupertino_material_and_adaptive/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_radio/cupertino_material_and_adaptive/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_radio/cupertino_material_and_adaptive/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_radio/media/cupertino_material_and_adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_radio/media/cupertino_material_and_adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_radio/media/cupertino_material_and_adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_radio/media/cupertino_material_and_adaptive.png diff --git a/sdk/python/examples/controls/cupertino_radio/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_radio/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_radio/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_radio/media/index.png diff --git a/sdk/python/examples/controls/cupertino_segmented_button/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_segmented_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_segmented_button/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_segmented_button/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_segmented_button/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_segmented_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_segmented_button/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_segmented_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_segmented_button/media/basic.gif b/sdk/python/examples/controls/cupertino/cupertino_segmented_button/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_segmented_button/media/basic.gif rename to sdk/python/examples/controls/cupertino/cupertino_segmented_button/media/basic.gif diff --git a/sdk/python/examples/controls/cupertino_segmented_button/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_segmented_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_segmented_button/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_segmented_button/media/index.png diff --git a/sdk/python/examples/controls/cupertino_segmented_button/segments_padding/main.py b/sdk/python/examples/controls/cupertino/cupertino_segmented_button/segments_padding/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_segmented_button/segments_padding/main.py rename to sdk/python/examples/controls/cupertino/cupertino_segmented_button/segments_padding/main.py diff --git a/sdk/python/examples/controls/cupertino_segmented_button/segments_padding/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_segmented_button/segments_padding/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_segmented_button/segments_padding/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_segmented_button/segments_padding/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_slider/handling_events/main.py b/sdk/python/examples/controls/cupertino/cupertino_slider/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_slider/handling_events/main.py rename to sdk/python/examples/controls/cupertino/cupertino_slider/handling_events/main.py diff --git a/sdk/python/examples/controls/cupertino_slider/handling_events/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_slider/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_slider/handling_events/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_slider/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_slider/media/handling_events.gif b/sdk/python/examples/controls/cupertino/cupertino_slider/media/handling_events.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_slider/media/handling_events.gif rename to sdk/python/examples/controls/cupertino/cupertino_slider/media/handling_events.gif diff --git a/sdk/python/examples/controls/cupertino_slider/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_slider/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_slider/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_slider/media/index.png diff --git a/sdk/python/examples/controls/cupertino_sliding_segmented_button/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_sliding_segmented_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_sliding_segmented_button/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_sliding_segmented_button/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_sliding_segmented_button/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_sliding_segmented_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_sliding_segmented_button/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_sliding_segmented_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_sliding_segmented_button/media/basic.gif b/sdk/python/examples/controls/cupertino/cupertino_sliding_segmented_button/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_sliding_segmented_button/media/basic.gif rename to sdk/python/examples/controls/cupertino/cupertino_sliding_segmented_button/media/basic.gif diff --git a/sdk/python/examples/controls/cupertino_switch/cupertino_material_and_adaptive/main.py b/sdk/python/examples/controls/cupertino/cupertino_switch/cupertino_material_and_adaptive/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_switch/cupertino_material_and_adaptive/main.py rename to sdk/python/examples/controls/cupertino/cupertino_switch/cupertino_material_and_adaptive/main.py diff --git a/sdk/python/examples/controls/cupertino_switch/cupertino_material_and_adaptive/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_switch/cupertino_material_and_adaptive/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_switch/cupertino_material_and_adaptive/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_switch/cupertino_material_and_adaptive/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_switch/media/cupertino_material_and_adaptive.gif b/sdk/python/examples/controls/cupertino/cupertino_switch/media/cupertino_material_and_adaptive.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_switch/media/cupertino_material_and_adaptive.gif rename to sdk/python/examples/controls/cupertino/cupertino_switch/media/cupertino_material_and_adaptive.gif diff --git a/sdk/python/examples/controls/cupertino_switch/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_switch/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_switch/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_switch/media/index.png diff --git a/sdk/python/examples/controls/cupertino_text_field/background_image/main.py b/sdk/python/examples/controls/cupertino/cupertino_text_field/background_image/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/background_image/main.py rename to sdk/python/examples/controls/cupertino/cupertino_text_field/background_image/main.py diff --git a/sdk/python/examples/controls/cupertino_text_field/background_image/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_text_field/background_image/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/background_image/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_text_field/background_image/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_text_field/cupertino_material_and_adaptive/main.py b/sdk/python/examples/controls/cupertino/cupertino_text_field/cupertino_material_and_adaptive/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/cupertino_material_and_adaptive/main.py rename to sdk/python/examples/controls/cupertino/cupertino_text_field/cupertino_material_and_adaptive/main.py diff --git a/sdk/python/examples/controls/cupertino_text_field/cupertino_material_and_adaptive/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_text_field/cupertino_material_and_adaptive/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/cupertino_material_and_adaptive/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_text_field/cupertino_material_and_adaptive/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_text_field/media/cupertino_material_and_adaptive.png b/sdk/python/examples/controls/cupertino/cupertino_text_field/media/cupertino_material_and_adaptive.png similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/media/cupertino_material_and_adaptive.png rename to sdk/python/examples/controls/cupertino/cupertino_text_field/media/cupertino_material_and_adaptive.png diff --git a/sdk/python/examples/controls/cupertino_text_field/media/index.png b/sdk/python/examples/controls/cupertino/cupertino_text_field/media/index.png similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/media/index.png rename to sdk/python/examples/controls/cupertino/cupertino_text_field/media/index.png diff --git a/sdk/python/examples/controls/cupertino_text_field/selection_change/main.py b/sdk/python/examples/controls/cupertino/cupertino_text_field/selection_change/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/selection_change/main.py rename to sdk/python/examples/controls/cupertino/cupertino_text_field/selection_change/main.py diff --git a/sdk/python/examples/controls/cupertino_text_field/selection_change/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_text_field/selection_change/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_text_field/selection_change/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_text_field/selection_change/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_timer_picker/basic/main.py b/sdk/python/examples/controls/cupertino/cupertino_timer_picker/basic/main.py similarity index 100% rename from sdk/python/examples/controls/cupertino_timer_picker/basic/main.py rename to sdk/python/examples/controls/cupertino/cupertino_timer_picker/basic/main.py diff --git a/sdk/python/examples/controls/cupertino_timer_picker/basic/pyproject.toml b/sdk/python/examples/controls/cupertino/cupertino_timer_picker/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/cupertino_timer_picker/basic/pyproject.toml rename to sdk/python/examples/controls/cupertino/cupertino_timer_picker/basic/pyproject.toml diff --git a/sdk/python/examples/controls/cupertino_timer_picker/media/basic.gif b/sdk/python/examples/controls/cupertino/cupertino_timer_picker/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/cupertino_timer_picker/media/basic.gif rename to sdk/python/examples/controls/cupertino/cupertino_timer_picker/media/basic.gif diff --git a/sdk/python/examples/controls/date_range_picker/custom_locale/main.py b/sdk/python/examples/controls/date_range_picker/custom_locale/main.py deleted file mode 100644 index 75d432c54b..0000000000 --- a/sdk/python/examples/controls/date_range_picker/custom_locale/main.py +++ /dev/null @@ -1,21 +0,0 @@ -import flet as ft - - -def main(page: ft.Page): - page.horizontal_alignment = ft.CrossAxisAlignment.CENTER - - page.add( - ft.SafeArea( - content=ft.Button( - icon=ft.Icons.CALENDAR_MONTH, - on_click=lambda _: page.show_dialog( - ft.DateRangePicker(locale=ft.Locale("zh", "Hans")) - ), - content="Pick dates (zh_Hans locale)", - ), - ) - ) - - -if __name__ == "__main__": - ft.run(main) diff --git a/sdk/python/examples/controls/alert_dialog/media/adaptive_dialog_action.png b/sdk/python/examples/controls/material/alert_dialog/media/adaptive_dialog_action.png similarity index 100% rename from sdk/python/examples/controls/alert_dialog/media/adaptive_dialog_action.png rename to sdk/python/examples/controls/material/alert_dialog/media/adaptive_dialog_action.png diff --git a/sdk/python/examples/controls/alert_dialog/media/index.png b/sdk/python/examples/controls/material/alert_dialog/media/index.png similarity index 100% rename from sdk/python/examples/controls/alert_dialog/media/index.png rename to sdk/python/examples/controls/material/alert_dialog/media/index.png diff --git a/sdk/python/examples/controls/alert_dialog/modal_and_non_modal/main.py b/sdk/python/examples/controls/material/alert_dialog/modal_and_non_modal/main.py similarity index 100% rename from sdk/python/examples/controls/alert_dialog/modal_and_non_modal/main.py rename to sdk/python/examples/controls/material/alert_dialog/modal_and_non_modal/main.py diff --git a/sdk/python/examples/controls/alert_dialog/modal_and_non_modal/pyproject.toml b/sdk/python/examples/controls/material/alert_dialog/modal_and_non_modal/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/alert_dialog/modal_and_non_modal/pyproject.toml rename to sdk/python/examples/controls/material/alert_dialog/modal_and_non_modal/pyproject.toml diff --git a/sdk/python/examples/controls/app_bar/actions_and_popup_menu/main.py b/sdk/python/examples/controls/material/app_bar/actions_and_popup_menu/main.py similarity index 95% rename from sdk/python/examples/controls/app_bar/actions_and_popup_menu/main.py rename to sdk/python/examples/controls/material/app_bar/actions_and_popup_menu/main.py index eede1872ae..33bc4ecf69 100644 --- a/sdk/python/examples/controls/app_bar/actions_and_popup_menu/main.py +++ b/sdk/python/examples/controls/material/app_bar/actions_and_popup_menu/main.py @@ -17,6 +17,7 @@ def handle_checked_item_click(e: ft.Event[ft.PopupMenuItem]): ft.IconButton(ft.Icons.WB_SUNNY_OUTLINED), ft.IconButton(ft.Icons.FILTER_3), ft.PopupMenuButton( + key="popup", items=[ ft.PopupMenuItem(content="Item 1"), ft.PopupMenuItem(), # divider @@ -25,7 +26,7 @@ def handle_checked_item_click(e: ft.Event[ft.PopupMenuItem]): checked=False, on_click=handle_checked_item_click, ), - ] + ], ), ], ) diff --git a/sdk/python/examples/controls/app_bar/actions_and_popup_menu/pyproject.toml b/sdk/python/examples/controls/material/app_bar/actions_and_popup_menu/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/app_bar/actions_and_popup_menu/pyproject.toml rename to sdk/python/examples/controls/material/app_bar/actions_and_popup_menu/pyproject.toml diff --git a/sdk/python/examples/controls/app_bar/media/actions_and_popup_menu.gif b/sdk/python/examples/controls/material/app_bar/media/actions_and_popup_menu.gif similarity index 100% rename from sdk/python/examples/controls/app_bar/media/actions_and_popup_menu.gif rename to sdk/python/examples/controls/material/app_bar/media/actions_and_popup_menu.gif diff --git a/sdk/python/examples/controls/app_bar/media/index.png b/sdk/python/examples/controls/material/app_bar/media/index.png similarity index 100% rename from sdk/python/examples/controls/app_bar/media/index.png rename to sdk/python/examples/controls/material/app_bar/media/index.png diff --git a/sdk/python/examples/controls/app_bar/theme_mode_toggle/main.py b/sdk/python/examples/controls/material/app_bar/theme_mode_toggle/main.py similarity index 99% rename from sdk/python/examples/controls/app_bar/theme_mode_toggle/main.py rename to sdk/python/examples/controls/material/app_bar/theme_mode_toggle/main.py index cf1ed36311..6314e81ffa 100644 --- a/sdk/python/examples/controls/app_bar/theme_mode_toggle/main.py +++ b/sdk/python/examples/controls/material/app_bar/theme_mode_toggle/main.py @@ -27,6 +27,7 @@ def toggle_theme_mode(e: ft.Event[ft.IconButton]): ) theme_mode_toggle = ft.IconButton( + key="theme_mode_toggle", icon=( ft.Icons.WB_SUNNY_OUTLINED if page.theme_mode == ft.ThemeMode.LIGHT diff --git a/sdk/python/examples/controls/app_bar/theme_mode_toggle/pyproject.toml b/sdk/python/examples/controls/material/app_bar/theme_mode_toggle/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/app_bar/theme_mode_toggle/pyproject.toml rename to sdk/python/examples/controls/material/app_bar/theme_mode_toggle/pyproject.toml diff --git a/sdk/python/examples/controls/auto_complete/basic/main.py b/sdk/python/examples/controls/material/auto_complete/basic/main.py similarity index 100% rename from sdk/python/examples/controls/auto_complete/basic/main.py rename to sdk/python/examples/controls/material/auto_complete/basic/main.py diff --git a/sdk/python/examples/controls/auto_complete/basic/pyproject.toml b/sdk/python/examples/controls/material/auto_complete/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/auto_complete/basic/pyproject.toml rename to sdk/python/examples/controls/material/auto_complete/basic/pyproject.toml diff --git a/sdk/python/examples/controls/autofill_group/basic/main.py b/sdk/python/examples/controls/material/autofill_group/basic/main.py similarity index 100% rename from sdk/python/examples/controls/autofill_group/basic/main.py rename to sdk/python/examples/controls/material/autofill_group/basic/main.py diff --git a/sdk/python/examples/controls/autofill_group/basic/pyproject.toml b/sdk/python/examples/controls/material/autofill_group/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/autofill_group/basic/pyproject.toml rename to sdk/python/examples/controls/material/autofill_group/basic/pyproject.toml diff --git a/sdk/python/examples/controls/autofill_group/media/basic.gif b/sdk/python/examples/controls/material/autofill_group/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/autofill_group/media/basic.gif rename to sdk/python/examples/controls/material/autofill_group/media/basic.gif diff --git a/sdk/python/examples/controls/badge/basic/main.py b/sdk/python/examples/controls/material/badge/basic/main.py similarity index 100% rename from sdk/python/examples/controls/badge/basic/main.py rename to sdk/python/examples/controls/material/badge/basic/main.py diff --git a/sdk/python/examples/controls/badge/basic/pyproject.toml b/sdk/python/examples/controls/material/badge/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/badge/basic/pyproject.toml rename to sdk/python/examples/controls/material/badge/basic/pyproject.toml diff --git a/sdk/python/examples/controls/banner/basic/main.py b/sdk/python/examples/controls/material/banner/basic/main.py similarity index 100% rename from sdk/python/examples/controls/banner/basic/main.py rename to sdk/python/examples/controls/material/banner/basic/main.py diff --git a/sdk/python/examples/controls/banner/basic/pyproject.toml b/sdk/python/examples/controls/material/banner/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/banner/basic/pyproject.toml rename to sdk/python/examples/controls/material/banner/basic/pyproject.toml diff --git a/sdk/python/examples/controls/banner/media/basic.gif b/sdk/python/examples/controls/material/banner/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/banner/media/basic.gif rename to sdk/python/examples/controls/material/banner/media/basic.gif diff --git a/sdk/python/examples/controls/bottom_app_bar/border_radius/main.py b/sdk/python/examples/controls/material/bottom_app_bar/border_radius/main.py similarity index 100% rename from sdk/python/examples/controls/bottom_app_bar/border_radius/main.py rename to sdk/python/examples/controls/material/bottom_app_bar/border_radius/main.py diff --git a/sdk/python/examples/controls/bottom_app_bar/border_radius/pyproject.toml b/sdk/python/examples/controls/material/bottom_app_bar/border_radius/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/bottom_app_bar/border_radius/pyproject.toml rename to sdk/python/examples/controls/material/bottom_app_bar/border_radius/pyproject.toml diff --git a/sdk/python/examples/controls/bottom_app_bar/notched_fab/main.py b/sdk/python/examples/controls/material/bottom_app_bar/notched_fab/main.py similarity index 100% rename from sdk/python/examples/controls/bottom_app_bar/notched_fab/main.py rename to sdk/python/examples/controls/material/bottom_app_bar/notched_fab/main.py diff --git a/sdk/python/examples/controls/bottom_app_bar/notched_fab/pyproject.toml b/sdk/python/examples/controls/material/bottom_app_bar/notched_fab/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/bottom_app_bar/notched_fab/pyproject.toml rename to sdk/python/examples/controls/material/bottom_app_bar/notched_fab/pyproject.toml diff --git a/sdk/python/examples/controls/bottom_sheet/basic/main.py b/sdk/python/examples/controls/material/bottom_sheet/basic/main.py similarity index 100% rename from sdk/python/examples/controls/bottom_sheet/basic/main.py rename to sdk/python/examples/controls/material/bottom_sheet/basic/main.py diff --git a/sdk/python/examples/controls/bottom_sheet/basic/pyproject.toml b/sdk/python/examples/controls/material/bottom_sheet/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/bottom_sheet/basic/pyproject.toml rename to sdk/python/examples/controls/material/bottom_sheet/basic/pyproject.toml diff --git a/sdk/python/examples/controls/bottom_sheet/fullscreen/main.py b/sdk/python/examples/controls/material/bottom_sheet/fullscreen/main.py similarity index 100% rename from sdk/python/examples/controls/bottom_sheet/fullscreen/main.py rename to sdk/python/examples/controls/material/bottom_sheet/fullscreen/main.py diff --git a/sdk/python/examples/controls/bottom_sheet/fullscreen/pyproject.toml b/sdk/python/examples/controls/material/bottom_sheet/fullscreen/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/bottom_sheet/fullscreen/pyproject.toml rename to sdk/python/examples/controls/material/bottom_sheet/fullscreen/pyproject.toml diff --git a/sdk/python/examples/controls/button/animate_on_hover/main.py b/sdk/python/examples/controls/material/button/animate_on_hover/main.py similarity index 100% rename from sdk/python/examples/controls/button/animate_on_hover/main.py rename to sdk/python/examples/controls/material/button/animate_on_hover/main.py diff --git a/sdk/python/examples/controls/button/animate_on_hover/pyproject.toml b/sdk/python/examples/controls/material/button/animate_on_hover/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/animate_on_hover/pyproject.toml rename to sdk/python/examples/controls/material/button/animate_on_hover/pyproject.toml diff --git a/sdk/python/examples/controls/button/basic/main.py b/sdk/python/examples/controls/material/button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/button/basic/main.py rename to sdk/python/examples/controls/material/button/basic/main.py diff --git a/sdk/python/examples/controls/button/basic/pyproject.toml b/sdk/python/examples/controls/material/button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/basic/pyproject.toml rename to sdk/python/examples/controls/material/button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/button/button_shapes/main.py b/sdk/python/examples/controls/material/button/button_shapes/main.py similarity index 100% rename from sdk/python/examples/controls/button/button_shapes/main.py rename to sdk/python/examples/controls/material/button/button_shapes/main.py diff --git a/sdk/python/examples/controls/button/button_shapes/pyproject.toml b/sdk/python/examples/controls/material/button/button_shapes/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/button_shapes/pyproject.toml rename to sdk/python/examples/controls/material/button/button_shapes/pyproject.toml diff --git a/sdk/python/examples/controls/button/custom_content/main.py b/sdk/python/examples/controls/material/button/custom_content/main.py similarity index 100% rename from sdk/python/examples/controls/button/custom_content/main.py rename to sdk/python/examples/controls/material/button/custom_content/main.py diff --git a/sdk/python/examples/controls/button/custom_content/pyproject.toml b/sdk/python/examples/controls/material/button/custom_content/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/custom_content/pyproject.toml rename to sdk/python/examples/controls/material/button/custom_content/pyproject.toml diff --git a/sdk/python/examples/controls/button/handling_clicks/main.py b/sdk/python/examples/controls/material/button/handling_clicks/main.py similarity index 100% rename from sdk/python/examples/controls/button/handling_clicks/main.py rename to sdk/python/examples/controls/material/button/handling_clicks/main.py diff --git a/sdk/python/examples/controls/button/handling_clicks/pyproject.toml b/sdk/python/examples/controls/material/button/handling_clicks/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/handling_clicks/pyproject.toml rename to sdk/python/examples/controls/material/button/handling_clicks/pyproject.toml diff --git a/sdk/python/examples/controls/button/icons/main.py b/sdk/python/examples/controls/material/button/icons/main.py similarity index 100% rename from sdk/python/examples/controls/button/icons/main.py rename to sdk/python/examples/controls/material/button/icons/main.py diff --git a/sdk/python/examples/controls/button/icons/pyproject.toml b/sdk/python/examples/controls/material/button/icons/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/icons/pyproject.toml rename to sdk/python/examples/controls/material/button/icons/pyproject.toml diff --git a/sdk/python/examples/controls/button/media/adaptive.png b/sdk/python/examples/controls/material/button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/button/media/adaptive.png rename to sdk/python/examples/controls/material/button/media/adaptive.png diff --git a/sdk/python/examples/controls/button/media/basic.png b/sdk/python/examples/controls/material/button/media/basic.png similarity index 100% rename from sdk/python/examples/controls/button/media/basic.png rename to sdk/python/examples/controls/material/button/media/basic.png diff --git a/sdk/python/examples/controls/button/media/custom_content.png b/sdk/python/examples/controls/material/button/media/custom_content.png similarity index 100% rename from sdk/python/examples/controls/button/media/custom_content.png rename to sdk/python/examples/controls/material/button/media/custom_content.png diff --git a/sdk/python/examples/controls/button/media/handling_clicks.gif b/sdk/python/examples/controls/material/button/media/handling_clicks.gif similarity index 100% rename from sdk/python/examples/controls/button/media/handling_clicks.gif rename to sdk/python/examples/controls/material/button/media/handling_clicks.gif diff --git a/sdk/python/examples/controls/button/media/icons.png b/sdk/python/examples/controls/material/button/media/icons.png similarity index 100% rename from sdk/python/examples/controls/button/media/icons.png rename to sdk/python/examples/controls/material/button/media/icons.png diff --git a/sdk/python/examples/controls/button/media/index.png b/sdk/python/examples/controls/material/button/media/index.png similarity index 100% rename from sdk/python/examples/controls/button/media/index.png rename to sdk/python/examples/controls/material/button/media/index.png diff --git a/sdk/python/examples/controls/button/styling/main.py b/sdk/python/examples/controls/material/button/styling/main.py similarity index 100% rename from sdk/python/examples/controls/button/styling/main.py rename to sdk/python/examples/controls/material/button/styling/main.py diff --git a/sdk/python/examples/controls/button/styling/pyproject.toml b/sdk/python/examples/controls/material/button/styling/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/button/styling/pyproject.toml rename to sdk/python/examples/controls/material/button/styling/pyproject.toml diff --git a/sdk/python/examples/controls/card/media/music_info.gif b/sdk/python/examples/controls/material/card/media/music_info.gif similarity index 100% rename from sdk/python/examples/controls/card/media/music_info.gif rename to sdk/python/examples/controls/material/card/media/music_info.gif diff --git a/sdk/python/examples/controls/card/music_info/main.py b/sdk/python/examples/controls/material/card/music_info/main.py similarity index 100% rename from sdk/python/examples/controls/card/music_info/main.py rename to sdk/python/examples/controls/material/card/music_info/main.py diff --git a/sdk/python/examples/controls/card/music_info/pyproject.toml b/sdk/python/examples/controls/material/card/music_info/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/card/music_info/pyproject.toml rename to sdk/python/examples/controls/material/card/music_info/pyproject.toml diff --git a/sdk/python/examples/controls/checkbox/basic/main.py b/sdk/python/examples/controls/material/checkbox/basic/main.py similarity index 100% rename from sdk/python/examples/controls/checkbox/basic/main.py rename to sdk/python/examples/controls/material/checkbox/basic/main.py diff --git a/sdk/python/examples/controls/checkbox/basic/pyproject.toml b/sdk/python/examples/controls/material/checkbox/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/checkbox/basic/pyproject.toml rename to sdk/python/examples/controls/material/checkbox/basic/pyproject.toml diff --git a/sdk/python/examples/controls/checkbox/handling_events/main.py b/sdk/python/examples/controls/material/checkbox/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/checkbox/handling_events/main.py rename to sdk/python/examples/controls/material/checkbox/handling_events/main.py diff --git a/sdk/python/examples/controls/checkbox/handling_events/pyproject.toml b/sdk/python/examples/controls/material/checkbox/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/checkbox/handling_events/pyproject.toml rename to sdk/python/examples/controls/material/checkbox/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/checkbox/media/basic.gif b/sdk/python/examples/controls/material/checkbox/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/checkbox/media/basic.gif rename to sdk/python/examples/controls/material/checkbox/media/basic.gif diff --git a/sdk/python/examples/controls/checkbox/media/handling_events.gif b/sdk/python/examples/controls/material/checkbox/media/handling_events.gif similarity index 100% rename from sdk/python/examples/controls/checkbox/media/handling_events.gif rename to sdk/python/examples/controls/material/checkbox/media/handling_events.gif diff --git a/sdk/python/examples/controls/checkbox/media/index.png b/sdk/python/examples/controls/material/checkbox/media/index.png similarity index 100% rename from sdk/python/examples/controls/checkbox/media/index.png rename to sdk/python/examples/controls/material/checkbox/media/index.png diff --git a/sdk/python/examples/controls/material/checkbox/styled/main.py b/sdk/python/examples/controls/material/checkbox/styled/main.py new file mode 100644 index 0000000000..316741d037 --- /dev/null +++ b/sdk/python/examples/controls/material/checkbox/styled/main.py @@ -0,0 +1,35 @@ +import flet as ft + + +def main(page: ft.Page): + page.add( + ft.SafeArea( + content=ft.Column( + controls=[ + ft.Checkbox(label="Checkbox with default style"), + ft.Checkbox( + label="Checkbox with constant fill color", + fill_color=ft.Colors.RED, + check_color=ft.Colors.YELLOW, + ), + ft.Row( + controls=[ + ft.Checkbox( + key="dynamic_fill_checkbox", + fill_color={ + ft.ControlState.HOVERED: ft.Colors.BLUE, + ft.ControlState.SELECTED: ft.Colors.GREEN, + ft.ControlState.DEFAULT: ft.Colors.RED, + }, + ), + ft.Text("Checkbox with dynamic fill color"), + ], + ), + ] + ) + ), + ) + + +if __name__ == "__main__": + ft.run(main) diff --git a/sdk/python/examples/controls/checkbox/styled/pyproject.toml b/sdk/python/examples/controls/material/checkbox/styled/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/checkbox/styled/pyproject.toml rename to sdk/python/examples/controls/material/checkbox/styled/pyproject.toml diff --git a/sdk/python/examples/controls/chip/assist_chips/main.py b/sdk/python/examples/controls/material/chip/assist_chips/main.py similarity index 89% rename from sdk/python/examples/controls/chip/assist_chips/main.py rename to sdk/python/examples/controls/material/chip/assist_chips/main.py index 48fc91e6d6..4579949c82 100644 --- a/sdk/python/examples/controls/chip/assist_chips/main.py +++ b/sdk/python/examples/controls/material/chip/assist_chips/main.py @@ -2,13 +2,16 @@ def main(page: ft.Page): + url_launcher = ft.UrlLauncher() + page.services.append(url_launcher) + def handle_chip1_click(e: ft.Event[ft.Chip]): e.control.label.value = "Saved to favorites" e.control.leading = ft.Icon(ft.Icons.FAVORITE_OUTLINED) e.control.disabled = True async def handle_chip2_click(e: ft.Event[ft.Chip]): - await page.launch_url("https://maps.google.com") + await url_launcher.launch_url("https://maps.google.com") page.add( ft.SafeArea( diff --git a/sdk/python/examples/controls/chip/assist_chips/pyproject.toml b/sdk/python/examples/controls/material/chip/assist_chips/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/chip/assist_chips/pyproject.toml rename to sdk/python/examples/controls/material/chip/assist_chips/pyproject.toml diff --git a/sdk/python/examples/controls/chip/filter_chips/main.py b/sdk/python/examples/controls/material/chip/filter_chips/main.py similarity index 100% rename from sdk/python/examples/controls/chip/filter_chips/main.py rename to sdk/python/examples/controls/material/chip/filter_chips/main.py diff --git a/sdk/python/examples/controls/chip/filter_chips/pyproject.toml b/sdk/python/examples/controls/material/chip/filter_chips/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/chip/filter_chips/pyproject.toml rename to sdk/python/examples/controls/material/chip/filter_chips/pyproject.toml diff --git a/sdk/python/examples/controls/chip/media/assist_chips.png b/sdk/python/examples/controls/material/chip/media/assist_chips.png similarity index 100% rename from sdk/python/examples/controls/chip/media/assist_chips.png rename to sdk/python/examples/controls/material/chip/media/assist_chips.png diff --git a/sdk/python/examples/controls/chip/media/filter_chips.png b/sdk/python/examples/controls/material/chip/media/filter_chips.png similarity index 100% rename from sdk/python/examples/controls/chip/media/filter_chips.png rename to sdk/python/examples/controls/material/chip/media/filter_chips.png diff --git a/sdk/python/examples/controls/circle_avatar/media/user_avatars.png b/sdk/python/examples/controls/material/circle_avatar/media/user_avatars.png similarity index 100% rename from sdk/python/examples/controls/circle_avatar/media/user_avatars.png rename to sdk/python/examples/controls/material/circle_avatar/media/user_avatars.png diff --git a/sdk/python/examples/controls/circle_avatar/user_avatars/main.py b/sdk/python/examples/controls/material/circle_avatar/user_avatars/main.py similarity index 100% rename from sdk/python/examples/controls/circle_avatar/user_avatars/main.py rename to sdk/python/examples/controls/material/circle_avatar/user_avatars/main.py diff --git a/sdk/python/examples/controls/circle_avatar/user_avatars/pyproject.toml b/sdk/python/examples/controls/material/circle_avatar/user_avatars/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/circle_avatar/user_avatars/pyproject.toml rename to sdk/python/examples/controls/material/circle_avatar/user_avatars/pyproject.toml diff --git a/sdk/python/examples/controls/context_menu/custom_trigger/main.py b/sdk/python/examples/controls/material/context_menu/custom_trigger/main.py similarity index 95% rename from sdk/python/examples/controls/context_menu/custom_trigger/main.py rename to sdk/python/examples/controls/material/context_menu/custom_trigger/main.py index 92cae28bf2..e75d19d64f 100644 --- a/sdk/python/examples/controls/context_menu/custom_trigger/main.py +++ b/sdk/python/examples/controls/material/context_menu/custom_trigger/main.py @@ -28,6 +28,7 @@ async def open_menu(e: ft.TapEvent[ft.GestureDetector]): expand=True, on_double_tap_down=open_menu, content=ft.Container( + key="context_menu_custom_trigger_area", bgcolor=ft.Colors.BLUE, alignment=ft.Alignment.CENTER, content=ft.Text("Double-click to open the context menu."), diff --git a/sdk/python/examples/controls/context_menu/custom_trigger/pyproject.toml b/sdk/python/examples/controls/material/context_menu/custom_trigger/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/context_menu/custom_trigger/pyproject.toml rename to sdk/python/examples/controls/material/context_menu/custom_trigger/pyproject.toml diff --git a/sdk/python/examples/controls/context_menu/programmatic_open/main.py b/sdk/python/examples/controls/material/context_menu/programmatic_open/main.py similarity index 100% rename from sdk/python/examples/controls/context_menu/programmatic_open/main.py rename to sdk/python/examples/controls/material/context_menu/programmatic_open/main.py diff --git a/sdk/python/examples/controls/context_menu/programmatic_open/pyproject.toml b/sdk/python/examples/controls/material/context_menu/programmatic_open/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/context_menu/programmatic_open/pyproject.toml rename to sdk/python/examples/controls/material/context_menu/programmatic_open/pyproject.toml diff --git a/sdk/python/examples/controls/context_menu/triggers/main.py b/sdk/python/examples/controls/material/context_menu/triggers/main.py similarity index 97% rename from sdk/python/examples/controls/context_menu/triggers/main.py rename to sdk/python/examples/controls/material/context_menu/triggers/main.py index 0fac275403..f7e356c262 100644 --- a/sdk/python/examples/controls/context_menu/triggers/main.py +++ b/sdk/python/examples/controls/material/context_menu/triggers/main.py @@ -33,6 +33,7 @@ def handle_item_click(e: ft.Event[ft.PopupMenuItem]): on_dismiss=lambda e: print("Menu dismissed"), expand=True, content=ft.Container( + key="context_menu_trigger_area", expand=True, bgcolor=ft.Colors.BLUE, alignment=ft.Alignment.CENTER, diff --git a/sdk/python/examples/controls/context_menu/triggers/pyproject.toml b/sdk/python/examples/controls/material/context_menu/triggers/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/context_menu/triggers/pyproject.toml rename to sdk/python/examples/controls/material/context_menu/triggers/pyproject.toml diff --git a/sdk/python/examples/controls/data_table/adaptive_row_heights/main.py b/sdk/python/examples/controls/material/data_table/adaptive_row_heights/main.py similarity index 100% rename from sdk/python/examples/controls/data_table/adaptive_row_heights/main.py rename to sdk/python/examples/controls/material/data_table/adaptive_row_heights/main.py diff --git a/sdk/python/examples/controls/data_table/adaptive_row_heights/pyproject.toml b/sdk/python/examples/controls/material/data_table/adaptive_row_heights/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/data_table/adaptive_row_heights/pyproject.toml rename to sdk/python/examples/controls/material/data_table/adaptive_row_heights/pyproject.toml diff --git a/sdk/python/examples/controls/data_table/basic/main.py b/sdk/python/examples/controls/material/data_table/basic/main.py similarity index 100% rename from sdk/python/examples/controls/data_table/basic/main.py rename to sdk/python/examples/controls/material/data_table/basic/main.py diff --git a/sdk/python/examples/controls/data_table/basic/pyproject.toml b/sdk/python/examples/controls/material/data_table/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/data_table/basic/pyproject.toml rename to sdk/python/examples/controls/material/data_table/basic/pyproject.toml diff --git a/sdk/python/examples/controls/data_table/handling_events/main.py b/sdk/python/examples/controls/material/data_table/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/data_table/handling_events/main.py rename to sdk/python/examples/controls/material/data_table/handling_events/main.py diff --git a/sdk/python/examples/controls/data_table/handling_events/pyproject.toml b/sdk/python/examples/controls/material/data_table/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/data_table/handling_events/pyproject.toml rename to sdk/python/examples/controls/material/data_table/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/data_table/sortable_and_selectable/main.py b/sdk/python/examples/controls/material/data_table/sortable_and_selectable/main.py similarity index 100% rename from sdk/python/examples/controls/data_table/sortable_and_selectable/main.py rename to sdk/python/examples/controls/material/data_table/sortable_and_selectable/main.py diff --git a/sdk/python/examples/controls/data_table/sortable_and_selectable/pyproject.toml b/sdk/python/examples/controls/material/data_table/sortable_and_selectable/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/data_table/sortable_and_selectable/pyproject.toml rename to sdk/python/examples/controls/material/data_table/sortable_and_selectable/pyproject.toml diff --git a/sdk/python/examples/controls/data_table/spacing/main.py b/sdk/python/examples/controls/material/data_table/spacing/main.py similarity index 98% rename from sdk/python/examples/controls/data_table/spacing/main.py rename to sdk/python/examples/controls/material/data_table/spacing/main.py index 924dc2f5e0..38f4cec3cb 100644 --- a/sdk/python/examples/controls/data_table/spacing/main.py +++ b/sdk/python/examples/controls/material/data_table/spacing/main.py @@ -35,6 +35,7 @@ def set_preset(horizontal_margin: float, column_spacing: float) -> None: update_spacing() horizontal_margin_slider = ft.Slider( + key="horizontal_margin_slider", min=0, max=40, divisions=40, @@ -43,6 +44,7 @@ def set_preset(horizontal_margin: float, column_spacing: float) -> None: on_change=handle_spacing_change, ) column_spacing_slider = ft.Slider( + key="column_spacing_slider", min=0, max=40, divisions=40, diff --git a/sdk/python/examples/controls/data_table/spacing/pyproject.toml b/sdk/python/examples/controls/material/data_table/spacing/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/data_table/spacing/pyproject.toml rename to sdk/python/examples/controls/material/data_table/spacing/pyproject.toml diff --git a/sdk/python/examples/controls/date_picker/basic/main.py b/sdk/python/examples/controls/material/date_picker/basic/main.py similarity index 93% rename from sdk/python/examples/controls/date_picker/basic/main.py rename to sdk/python/examples/controls/material/date_picker/basic/main.py index eae14605f1..96c77b1bbb 100644 --- a/sdk/python/examples/controls/date_picker/basic/main.py +++ b/sdk/python/examples/controls/material/date_picker/basic/main.py @@ -16,11 +16,12 @@ def handle_change(e: ft.Event[ft.DatePicker]): def handle_dismissal(_: ft.Event[ft.DialogControl]): messages.controls.append(ft.Text("DatePicker dismissed")) - today = datetime.datetime.now() + today = datetime.datetime(year=2025, month=4, day=15) picker = ft.DatePicker( first_date=datetime.datetime(year=today.year - 1, month=1, day=1), last_date=datetime.datetime(year=today.year + 1, month=today.month, day=20), + current_date=today, on_change=handle_change, on_dismiss=handle_dismissal, ) diff --git a/sdk/python/examples/controls/date_picker/basic/pyproject.toml b/sdk/python/examples/controls/material/date_picker/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/date_picker/basic/pyproject.toml rename to sdk/python/examples/controls/material/date_picker/basic/pyproject.toml diff --git a/sdk/python/examples/controls/date_picker/custom_locale/main.py b/sdk/python/examples/controls/material/date_picker/custom_locale/main.py similarity index 50% rename from sdk/python/examples/controls/date_picker/custom_locale/main.py rename to sdk/python/examples/controls/material/date_picker/custom_locale/main.py index 3240e1167c..025ffc11b7 100644 --- a/sdk/python/examples/controls/date_picker/custom_locale/main.py +++ b/sdk/python/examples/controls/material/date_picker/custom_locale/main.py @@ -1,15 +1,24 @@ +import datetime + import flet as ft def main(page: ft.Page): page.horizontal_alignment = ft.CrossAxisAlignment.CENTER + current_date = datetime.datetime(year=2025, month=4, day=15) + page.add( ft.SafeArea( content=ft.Button( icon=ft.Icons.CALENDAR_MONTH, on_click=lambda _: page.show_dialog( - ft.DatePicker(locale=ft.Locale("zh", "Hans")) + ft.DatePicker( + locale=ft.Locale("zh", "Hans"), + first_date=datetime.datetime(year=2024, month=1, day=1), + last_date=datetime.datetime(year=2026, month=12, day=31), + current_date=current_date, + ) ), content="Pick date (zh_Hans locale)", ), diff --git a/sdk/python/examples/controls/date_picker/custom_locale/pyproject.toml b/sdk/python/examples/controls/material/date_picker/custom_locale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/date_picker/custom_locale/pyproject.toml rename to sdk/python/examples/controls/material/date_picker/custom_locale/pyproject.toml diff --git a/sdk/python/examples/controls/date_picker/media/basic.png b/sdk/python/examples/controls/material/date_picker/media/basic.png similarity index 100% rename from sdk/python/examples/controls/date_picker/media/basic.png rename to sdk/python/examples/controls/material/date_picker/media/basic.png diff --git a/sdk/python/examples/controls/date_range_picker/basic/main.py b/sdk/python/examples/controls/material/date_range_picker/basic/main.py similarity index 87% rename from sdk/python/examples/controls/date_range_picker/basic/main.py rename to sdk/python/examples/controls/material/date_range_picker/basic/main.py index 3597e791ad..2533b459b3 100644 --- a/sdk/python/examples/controls/date_range_picker/basic/main.py +++ b/sdk/python/examples/controls/material/date_range_picker/basic/main.py @@ -23,11 +23,14 @@ def handle_change(e: ft.Event[ft.DateRangePicker]): def handle_dismissal(_: ft.Event[ft.DialogControl]): messages.controls.append(ft.Text("DateRangePicker dismissed")) - today = datetime.datetime.now() + today = datetime.datetime(year=2025, month=4, day=15) picker = ft.DateRangePicker( start_value=datetime.datetime(year=today.year, month=today.month, day=1), end_value=datetime.datetime(year=today.year, month=today.month, day=15), + first_date=datetime.datetime(year=2024, month=1, day=1), + last_date=datetime.datetime(year=2026, month=12, day=31), + current_date=today, on_change=handle_change, on_dismiss=handle_dismissal, ) diff --git a/sdk/python/examples/controls/date_range_picker/basic/pyproject.toml b/sdk/python/examples/controls/material/date_range_picker/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/date_range_picker/basic/pyproject.toml rename to sdk/python/examples/controls/material/date_range_picker/basic/pyproject.toml diff --git a/sdk/python/examples/controls/material/date_range_picker/custom_locale/main.py b/sdk/python/examples/controls/material/date_range_picker/custom_locale/main.py new file mode 100644 index 0000000000..1471143d1b --- /dev/null +++ b/sdk/python/examples/controls/material/date_range_picker/custom_locale/main.py @@ -0,0 +1,32 @@ +import datetime + +import flet as ft + + +def main(page: ft.Page): + page.horizontal_alignment = ft.CrossAxisAlignment.CENTER + + current_date = datetime.datetime(year=2025, month=4, day=15) + + page.add( + ft.SafeArea( + content=ft.Button( + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda _: page.show_dialog( + ft.DateRangePicker( + locale=ft.Locale("zh", "Hans"), + start_value=datetime.datetime(year=2025, month=4, day=10), + end_value=datetime.datetime(year=2025, month=4, day=20), + first_date=datetime.datetime(year=2024, month=1, day=1), + last_date=datetime.datetime(year=2026, month=12, day=31), + current_date=current_date, + ) + ), + content="Pick dates (zh_Hans locale)", + ), + ) + ) + + +if __name__ == "__main__": + ft.run(main) diff --git a/sdk/python/examples/controls/date_range_picker/custom_locale/pyproject.toml b/sdk/python/examples/controls/material/date_range_picker/custom_locale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/date_range_picker/custom_locale/pyproject.toml rename to sdk/python/examples/controls/material/date_range_picker/custom_locale/pyproject.toml diff --git a/sdk/python/examples/controls/date_range_picker/media/basic.png b/sdk/python/examples/controls/material/date_range_picker/media/basic.png similarity index 100% rename from sdk/python/examples/controls/date_range_picker/media/basic.png rename to sdk/python/examples/controls/material/date_range_picker/media/basic.png diff --git a/sdk/python/examples/controls/divider/basic/main.py b/sdk/python/examples/controls/material/divider/basic/main.py similarity index 100% rename from sdk/python/examples/controls/divider/basic/main.py rename to sdk/python/examples/controls/material/divider/basic/main.py diff --git a/sdk/python/examples/controls/divider/basic/pyproject.toml b/sdk/python/examples/controls/material/divider/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/divider/basic/pyproject.toml rename to sdk/python/examples/controls/material/divider/basic/pyproject.toml diff --git a/sdk/python/examples/controls/divider/media/basic.png b/sdk/python/examples/controls/material/divider/media/basic.png similarity index 100% rename from sdk/python/examples/controls/divider/media/basic.png rename to sdk/python/examples/controls/material/divider/media/basic.png diff --git a/sdk/python/examples/controls/dropdown/color_selection_with_filtering/main.py b/sdk/python/examples/controls/material/dropdown/color_selection_with_filtering/main.py similarity index 95% rename from sdk/python/examples/controls/dropdown/color_selection_with_filtering/main.py rename to sdk/python/examples/controls/material/dropdown/color_selection_with_filtering/main.py index 516baee2c7..2b068a4ad2 100644 --- a/sdk/python/examples/controls/dropdown/color_selection_with_filtering/main.py +++ b/sdk/python/examples/controls/material/dropdown/color_selection_with_filtering/main.py @@ -26,6 +26,7 @@ def handle_dropdown_select(e: ft.Event[ft.Dropdown]): page.add( ft.SafeArea( content=ft.Dropdown( + key="color_dropdown", editable=True, label="Color", options=get_options(), diff --git a/sdk/python/examples/controls/dropdown/color_selection_with_filtering/pyproject.toml b/sdk/python/examples/controls/material/dropdown/color_selection_with_filtering/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown/color_selection_with_filtering/pyproject.toml rename to sdk/python/examples/controls/material/dropdown/color_selection_with_filtering/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown/declarative/main.py b/sdk/python/examples/controls/material/dropdown/declarative/main.py similarity index 96% rename from sdk/python/examples/controls/dropdown/declarative/main.py rename to sdk/python/examples/controls/material/dropdown/declarative/main.py index 30a4ec4e74..b0458ae32a 100644 --- a/sdk/python/examples/controls/dropdown/declarative/main.py +++ b/sdk/python/examples/controls/material/dropdown/declarative/main.py @@ -27,6 +27,7 @@ def App(): ft.Column( controls=[ ft.Dropdown( + key="declarative_dropdown", editable=True, label="Color", value=form.color, diff --git a/sdk/python/examples/controls/dropdown/declarative/pyproject.toml b/sdk/python/examples/controls/material/dropdown/declarative/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown/declarative/pyproject.toml rename to sdk/python/examples/controls/material/dropdown/declarative/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown/icon_selection/main.py b/sdk/python/examples/controls/material/dropdown/icon_selection/main.py similarity index 96% rename from sdk/python/examples/controls/dropdown/icon_selection/main.py rename to sdk/python/examples/controls/material/dropdown/icon_selection/main.py index ec32ac8b3f..797320a766 100644 --- a/sdk/python/examples/controls/dropdown/icon_selection/main.py +++ b/sdk/python/examples/controls/material/dropdown/icon_selection/main.py @@ -17,6 +17,7 @@ def get_options() -> list[ft.DropdownOption]: page.add( ft.SafeArea( content=ft.Dropdown( + key="icon_dropdown", border=ft.InputBorder.UNDERLINE, enable_filter=True, editable=True, diff --git a/sdk/python/examples/controls/dropdown/icon_selection/pyproject.toml b/sdk/python/examples/controls/material/dropdown/icon_selection/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown/icon_selection/pyproject.toml rename to sdk/python/examples/controls/material/dropdown/icon_selection/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown/media/color_selection_with_filtering.gif b/sdk/python/examples/controls/material/dropdown/media/color_selection_with_filtering.gif similarity index 100% rename from sdk/python/examples/controls/dropdown/media/color_selection_with_filtering.gif rename to sdk/python/examples/controls/material/dropdown/media/color_selection_with_filtering.gif diff --git a/sdk/python/examples/controls/dropdown/media/icon_selection.png b/sdk/python/examples/controls/material/dropdown/media/icon_selection.png similarity index 100% rename from sdk/python/examples/controls/dropdown/media/icon_selection.png rename to sdk/python/examples/controls/material/dropdown/media/icon_selection.png diff --git a/sdk/python/examples/controls/dropdown/select_and_change_events/main.py b/sdk/python/examples/controls/material/dropdown/select_and_change_events/main.py similarity index 96% rename from sdk/python/examples/controls/dropdown/select_and_change_events/main.py rename to sdk/python/examples/controls/material/dropdown/select_and_change_events/main.py index 1c4b55908d..e818656797 100644 --- a/sdk/python/examples/controls/dropdown/select_and_change_events/main.py +++ b/sdk/python/examples/controls/material/dropdown/select_and_change_events/main.py @@ -40,6 +40,7 @@ def dropdown_text_change(e: ft.Event[ft.Dropdown]): display_value, display_text, ft.Dropdown( + key="select_change_dropdown", editable=True, label="Color", width=float("inf"), diff --git a/sdk/python/examples/controls/dropdown/select_and_change_events/pyproject.toml b/sdk/python/examples/controls/material/dropdown/select_and_change_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown/select_and_change_events/pyproject.toml rename to sdk/python/examples/controls/material/dropdown/select_and_change_events/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown/styled/main.py b/sdk/python/examples/controls/material/dropdown/styled/main.py similarity index 80% rename from sdk/python/examples/controls/dropdown/styled/main.py rename to sdk/python/examples/controls/material/dropdown/styled/main.py index 4427a84169..7c8014e49c 100644 --- a/sdk/python/examples/controls/dropdown/styled/main.py +++ b/sdk/python/examples/controls/material/dropdown/styled/main.py @@ -7,6 +7,7 @@ def main(page: ft.Page): content=ft.Column( controls=[ ft.Dropdown( + key="styled_dropdown_1", text_size=20, content_padding=10, color=ft.Colors.PURPLE_200, @@ -17,12 +18,13 @@ def main(page: ft.Page): focused_border_color=ft.Colors.GREEN_ACCENT_400, focused_border_width=5, options=[ - ft.DropdownOption("a", "Item A"), - ft.DropdownOption("b", "Item B"), - ft.DropdownOption("c", "Item C"), + ft.DropdownOption("a", "Style 1A"), + ft.DropdownOption("b", "Style 1B"), + ft.DropdownOption("c", "Style 1C"), ], ), ft.Dropdown( + key="styled_dropdown_2", border_radius=30, filled=True, fill_color=ft.Colors.RED_400, @@ -32,12 +34,13 @@ def main(page: ft.Page): focused_border_color=ft.Colors.PINK_300, focused_border_width=20, options=[ - ft.DropdownOption("a", "Item A"), - ft.DropdownOption("b", "Item B"), - ft.DropdownOption("c", "Item C"), + ft.DropdownOption("a", "Style 2A"), + ft.DropdownOption("b", "Style 2B"), + ft.DropdownOption("c", "Style 2C"), ], ), ft.Dropdown( + key="styled_dropdown_3", border_color=ft.Colors.PINK_ACCENT, focused_border_color=ft.Colors.GREEN_ACCENT_400, focused_border_width=25, @@ -45,14 +48,15 @@ def main(page: ft.Page): width=150, border_width=5, options=[ - ft.DropdownOption("a", "Item A"), - ft.DropdownOption("b", "Item B"), - ft.DropdownOption("c", "Item C"), + ft.DropdownOption("a", "Style 3A"), + ft.DropdownOption("b", "Style 3B"), + ft.DropdownOption("c", "Style 3C"), ], ), ft.Container( padding=ft.Padding.only(bottom=20), content=ft.Dropdown( + key="styled_dropdown_4", text_size=30, color=ft.Colors.ORANGE_ACCENT, border_radius=20, @@ -64,13 +68,14 @@ def main(page: ft.Page): width=200, height=50, options=[ - ft.dropdown.Option("a", "Item A"), - ft.dropdown.Option("b", "Item B"), - ft.dropdown.Option("c", "Item C"), + ft.dropdown.Option("a", "Style 4A"), + ft.dropdown.Option("b", "Style 4B"), + ft.dropdown.Option("c", "Style 4C"), ], ), ), ft.Dropdown( + key="styled_dropdown_5", text_size=30, border_radius=20, filled=True, @@ -82,7 +87,7 @@ def main(page: ft.Page): options=[ ft.DropdownOption( key="a", - text="Item A", + text="Style 5A", style=ft.ButtonStyle( shape=ft.BeveledRectangleBorder(radius=15), color={ @@ -94,7 +99,7 @@ def main(page: ft.Page): ), ft.DropdownOption( key="b", - text="Item B", + text="Style 5B", style=ft.ButtonStyle( shape=ft.BeveledRectangleBorder(radius=15), color={ @@ -106,7 +111,7 @@ def main(page: ft.Page): ), ft.DropdownOption( key="c", - text="Item C", + text="Style 5C", style=ft.ButtonStyle( shape=ft.BeveledRectangleBorder(radius=15), color={ diff --git a/sdk/python/examples/controls/dropdown/styled/pyproject.toml b/sdk/python/examples/controls/material/dropdown/styled/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown/styled/pyproject.toml rename to sdk/python/examples/controls/material/dropdown/styled/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown_m2/add_and_delete_options/main.py b/sdk/python/examples/controls/material/dropdown_m2/add_and_delete_options/main.py similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/add_and_delete_options/main.py rename to sdk/python/examples/controls/material/dropdown_m2/add_and_delete_options/main.py diff --git a/sdk/python/examples/controls/dropdown_m2/add_and_delete_options/pyproject.toml b/sdk/python/examples/controls/material/dropdown_m2/add_and_delete_options/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/add_and_delete_options/pyproject.toml rename to sdk/python/examples/controls/material/dropdown_m2/add_and_delete_options/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown_m2/basic/main.py b/sdk/python/examples/controls/material/dropdown_m2/basic/main.py similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/basic/main.py rename to sdk/python/examples/controls/material/dropdown_m2/basic/main.py diff --git a/sdk/python/examples/controls/dropdown_m2/basic/pyproject.toml b/sdk/python/examples/controls/material/dropdown_m2/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/basic/pyproject.toml rename to sdk/python/examples/controls/material/dropdown_m2/basic/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown_m2/dropdown_random_icon/main.py b/sdk/python/examples/controls/material/dropdown_m2/dropdown_random_icon/main.py similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/dropdown_random_icon/main.py rename to sdk/python/examples/controls/material/dropdown_m2/dropdown_random_icon/main.py diff --git a/sdk/python/examples/controls/dropdown_m2/dropdown_random_icon/pyproject.toml b/sdk/python/examples/controls/material/dropdown_m2/dropdown_random_icon/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/dropdown_random_icon/pyproject.toml rename to sdk/python/examples/controls/material/dropdown_m2/dropdown_random_icon/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown_m2/handling_events/main.py b/sdk/python/examples/controls/material/dropdown_m2/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/handling_events/main.py rename to sdk/python/examples/controls/material/dropdown_m2/handling_events/main.py diff --git a/sdk/python/examples/controls/dropdown_m2/handling_events/pyproject.toml b/sdk/python/examples/controls/material/dropdown_m2/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/handling_events/pyproject.toml rename to sdk/python/examples/controls/material/dropdown_m2/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown_m2/label_and_hint/main.py b/sdk/python/examples/controls/material/dropdown_m2/label_and_hint/main.py similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/label_and_hint/main.py rename to sdk/python/examples/controls/material/dropdown_m2/label_and_hint/main.py diff --git a/sdk/python/examples/controls/dropdown_m2/label_and_hint/pyproject.toml b/sdk/python/examples/controls/material/dropdown_m2/label_and_hint/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/label_and_hint/pyproject.toml rename to sdk/python/examples/controls/material/dropdown_m2/label_and_hint/pyproject.toml diff --git a/sdk/python/examples/controls/dropdown_m2/media/add_and_delete_options.gif b/sdk/python/examples/controls/material/dropdown_m2/media/add_and_delete_options.gif similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/media/add_and_delete_options.gif rename to sdk/python/examples/controls/material/dropdown_m2/media/add_and_delete_options.gif diff --git a/sdk/python/examples/controls/dropdown_m2/media/basic.gif b/sdk/python/examples/controls/material/dropdown_m2/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/media/basic.gif rename to sdk/python/examples/controls/material/dropdown_m2/media/basic.gif diff --git a/sdk/python/examples/controls/dropdown_m2/media/handling_events.gif b/sdk/python/examples/controls/material/dropdown_m2/media/handling_events.gif similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/media/handling_events.gif rename to sdk/python/examples/controls/material/dropdown_m2/media/handling_events.gif diff --git a/sdk/python/examples/controls/dropdown_m2/media/label_and_hint.gif b/sdk/python/examples/controls/material/dropdown_m2/media/label_and_hint.gif similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/media/label_and_hint.gif rename to sdk/python/examples/controls/material/dropdown_m2/media/label_and_hint.gif diff --git a/sdk/python/examples/controls/dropdown_m2/media/search.gif b/sdk/python/examples/controls/material/dropdown_m2/media/search.gif similarity index 100% rename from sdk/python/examples/controls/dropdown_m2/media/search.gif rename to sdk/python/examples/controls/material/dropdown_m2/media/search.gif diff --git a/sdk/python/examples/controls/expansion_panel_list/basic/main.py b/sdk/python/examples/controls/material/expansion_panel_list/basic/main.py similarity index 100% rename from sdk/python/examples/controls/expansion_panel_list/basic/main.py rename to sdk/python/examples/controls/material/expansion_panel_list/basic/main.py diff --git a/sdk/python/examples/controls/expansion_panel_list/basic/pyproject.toml b/sdk/python/examples/controls/material/expansion_panel_list/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_panel_list/basic/pyproject.toml rename to sdk/python/examples/controls/material/expansion_panel_list/basic/pyproject.toml diff --git a/sdk/python/examples/controls/expansion_panel_list/media/basic.gif b/sdk/python/examples/controls/material/expansion_panel_list/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/expansion_panel_list/media/basic.gif rename to sdk/python/examples/controls/material/expansion_panel_list/media/basic.gif diff --git a/sdk/python/examples/controls/expansion_panel_list/scrollable/main.py b/sdk/python/examples/controls/material/expansion_panel_list/scrollable/main.py similarity index 100% rename from sdk/python/examples/controls/expansion_panel_list/scrollable/main.py rename to sdk/python/examples/controls/material/expansion_panel_list/scrollable/main.py diff --git a/sdk/python/examples/controls/expansion_panel_list/scrollable/pyproject.toml b/sdk/python/examples/controls/material/expansion_panel_list/scrollable/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_panel_list/scrollable/pyproject.toml rename to sdk/python/examples/controls/material/expansion_panel_list/scrollable/pyproject.toml diff --git a/sdk/python/examples/controls/expansion_tile/basic/main.py b/sdk/python/examples/controls/material/expansion_tile/basic/main.py similarity index 100% rename from sdk/python/examples/controls/expansion_tile/basic/main.py rename to sdk/python/examples/controls/material/expansion_tile/basic/main.py diff --git a/sdk/python/examples/controls/expansion_tile/basic/pyproject.toml b/sdk/python/examples/controls/material/expansion_tile/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_tile/basic/pyproject.toml rename to sdk/python/examples/controls/material/expansion_tile/basic/pyproject.toml diff --git a/sdk/python/examples/controls/expansion_tile/borders/main.py b/sdk/python/examples/controls/material/expansion_tile/borders/main.py similarity index 100% rename from sdk/python/examples/controls/expansion_tile/borders/main.py rename to sdk/python/examples/controls/material/expansion_tile/borders/main.py diff --git a/sdk/python/examples/controls/expansion_tile/borders/pyproject.toml b/sdk/python/examples/controls/material/expansion_tile/borders/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_tile/borders/pyproject.toml rename to sdk/python/examples/controls/material/expansion_tile/borders/pyproject.toml diff --git a/sdk/python/examples/controls/expansion_tile/custom_animations/main.py b/sdk/python/examples/controls/material/expansion_tile/custom_animations/main.py similarity index 100% rename from sdk/python/examples/controls/expansion_tile/custom_animations/main.py rename to sdk/python/examples/controls/material/expansion_tile/custom_animations/main.py diff --git a/sdk/python/examples/controls/expansion_tile/custom_animations/pyproject.toml b/sdk/python/examples/controls/material/expansion_tile/custom_animations/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_tile/custom_animations/pyproject.toml rename to sdk/python/examples/controls/material/expansion_tile/custom_animations/pyproject.toml diff --git a/sdk/python/examples/controls/expansion_tile/programmatic_expansion/main.py b/sdk/python/examples/controls/material/expansion_tile/programmatic_expansion/main.py similarity index 100% rename from sdk/python/examples/controls/expansion_tile/programmatic_expansion/main.py rename to sdk/python/examples/controls/material/expansion_tile/programmatic_expansion/main.py diff --git a/sdk/python/examples/controls/expansion_tile/programmatic_expansion/pyproject.toml b/sdk/python/examples/controls/material/expansion_tile/programmatic_expansion/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_tile/programmatic_expansion/pyproject.toml rename to sdk/python/examples/controls/material/expansion_tile/programmatic_expansion/pyproject.toml diff --git a/sdk/python/examples/controls/expansion_tile/theme_mode_toggle/main.py b/sdk/python/examples/controls/material/expansion_tile/theme_mode_toggle/main.py similarity index 87% rename from sdk/python/examples/controls/expansion_tile/theme_mode_toggle/main.py rename to sdk/python/examples/controls/material/expansion_tile/theme_mode_toggle/main.py index 1dc1710ce8..579b09222f 100644 --- a/sdk/python/examples/controls/expansion_tile/theme_mode_toggle/main.py +++ b/sdk/python/examples/controls/material/expansion_tile/theme_mode_toggle/main.py @@ -4,15 +4,16 @@ def main(page: ft.Page): page.spacing = 0 page.padding = 0 + page.theme_mode = ft.ThemeMode.LIGHT - def handle_switch_change(_: ft.Event[ft.Switch]): - if page.theme_mode == ft.ThemeMode.DARK: - page.theme_mode = ft.ThemeMode.LIGHT - switch.thumb_icon = ft.Icons.LIGHT_MODE - else: - switch.thumb_icon = ft.Icons.DARK_MODE - page.theme_mode = ft.ThemeMode.DARK - switch.update() + def handle_switch_change(e: ft.Event[ft.Switch]): + page.theme_mode = ft.ThemeMode.DARK if e.control.value else ft.ThemeMode.LIGHT + e.control.thumb_icon = ( + ft.Icons.DARK_MODE + if page.theme_mode == ft.ThemeMode.DARK + else ft.Icons.LIGHT_MODE + ) + page.update() def handle_expansion_tile_change(e: ft.Event[ft.ExpansionTile]): page.show_dialog( @@ -34,7 +35,10 @@ def handle_expansion_tile_change(e: ft.Event[ft.ExpansionTile]): ) e.control.trailing.update() - switch = ft.Switch(thumb_icon=ft.Icons.DARK_MODE, on_change=handle_switch_change) + switch = ft.Switch( + thumb_icon=ft.Icons.DARK_MODE, + on_change=handle_switch_change, + ) page.add( ft.SafeArea( @@ -42,6 +46,7 @@ def handle_expansion_tile_change(e: ft.Event[ft.ExpansionTile]): spacing=0, controls=[ ft.ExpansionTile( + key="theme_mode_toggle_top_panel", title=ft.Text("ExpansionTile 1"), subtitle=ft.Text("Trailing expansion arrow icon"), bgcolor=ft.Colors.BLUE_GREY_200, diff --git a/sdk/python/examples/controls/expansion_tile/theme_mode_toggle/pyproject.toml b/sdk/python/examples/controls/material/expansion_tile/theme_mode_toggle/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/expansion_tile/theme_mode_toggle/pyproject.toml rename to sdk/python/examples/controls/material/expansion_tile/theme_mode_toggle/pyproject.toml diff --git a/sdk/python/examples/controls/filled_button/basic/main.py b/sdk/python/examples/controls/material/filled_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/filled_button/basic/main.py rename to sdk/python/examples/controls/material/filled_button/basic/main.py diff --git a/sdk/python/examples/controls/filled_button/basic/pyproject.toml b/sdk/python/examples/controls/material/filled_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/filled_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/filled_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/filled_button/media/adaptive.png b/sdk/python/examples/controls/material/filled_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/filled_button/media/adaptive.png rename to sdk/python/examples/controls/material/filled_button/media/adaptive.png diff --git a/sdk/python/examples/controls/filled_button/media/basic.png b/sdk/python/examples/controls/material/filled_button/media/basic.png similarity index 100% rename from sdk/python/examples/controls/filled_button/media/basic.png rename to sdk/python/examples/controls/material/filled_button/media/basic.png diff --git a/sdk/python/examples/controls/filled_button/media/index.png b/sdk/python/examples/controls/material/filled_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/filled_button/media/index.png rename to sdk/python/examples/controls/material/filled_button/media/index.png diff --git a/sdk/python/examples/controls/filled_tonal_button/basic/main.py b/sdk/python/examples/controls/material/filled_tonal_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/filled_tonal_button/basic/main.py rename to sdk/python/examples/controls/material/filled_tonal_button/basic/main.py diff --git a/sdk/python/examples/controls/filled_tonal_button/basic/pyproject.toml b/sdk/python/examples/controls/material/filled_tonal_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/filled_tonal_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/filled_tonal_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/filled_tonal_button/media/adaptive.png b/sdk/python/examples/controls/material/filled_tonal_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/filled_tonal_button/media/adaptive.png rename to sdk/python/examples/controls/material/filled_tonal_button/media/adaptive.png diff --git a/sdk/python/examples/controls/filled_tonal_button/media/basic.png b/sdk/python/examples/controls/material/filled_tonal_button/media/basic.png similarity index 100% rename from sdk/python/examples/controls/filled_tonal_button/media/basic.png rename to sdk/python/examples/controls/material/filled_tonal_button/media/basic.png diff --git a/sdk/python/examples/controls/filled_tonal_button/media/index.png b/sdk/python/examples/controls/material/filled_tonal_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/filled_tonal_button/media/index.png rename to sdk/python/examples/controls/material/filled_tonal_button/media/index.png diff --git a/sdk/python/examples/controls/floating_action_button/handling_clicks/main.py b/sdk/python/examples/controls/material/floating_action_button/handling_clicks/main.py similarity index 98% rename from sdk/python/examples/controls/floating_action_button/handling_clicks/main.py rename to sdk/python/examples/controls/material/floating_action_button/handling_clicks/main.py index d879b2f0ef..df6ae30919 100644 --- a/sdk/python/examples/controls/floating_action_button/handling_clicks/main.py +++ b/sdk/python/examples/controls/material/floating_action_button/handling_clicks/main.py @@ -27,6 +27,7 @@ def handle_fab_click(e: ft.Event[ft.FloatingActionButton]): count += 1 page.floating_action_button = ft.FloatingActionButton( + key="handling_clicks_fab", icon=ft.Icons.ADD, on_click=handle_fab_click, bgcolor=ft.Colors.LIME_300, diff --git a/sdk/python/examples/controls/floating_action_button/handling_clicks/pyproject.toml b/sdk/python/examples/controls/material/floating_action_button/handling_clicks/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/floating_action_button/handling_clicks/pyproject.toml rename to sdk/python/examples/controls/material/floating_action_button/handling_clicks/pyproject.toml diff --git a/sdk/python/examples/controls/floating_action_button/media/handling_clicks.gif b/sdk/python/examples/controls/material/floating_action_button/media/handling_clicks.gif similarity index 100% rename from sdk/python/examples/controls/floating_action_button/media/handling_clicks.gif rename to sdk/python/examples/controls/material/floating_action_button/media/handling_clicks.gif diff --git a/sdk/python/examples/controls/floating_action_button/media/index.png b/sdk/python/examples/controls/material/floating_action_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/floating_action_button/media/index.png rename to sdk/python/examples/controls/material/floating_action_button/media/index.png diff --git a/sdk/python/examples/controls/icon_button/handling_clicks/main.py b/sdk/python/examples/controls/material/icon_button/handling_clicks/main.py similarity index 92% rename from sdk/python/examples/controls/icon_button/handling_clicks/main.py rename to sdk/python/examples/controls/material/icon_button/handling_clicks/main.py index a93ad915de..b65e615873 100644 --- a/sdk/python/examples/controls/icon_button/handling_clicks/main.py +++ b/sdk/python/examples/controls/material/icon_button/handling_clicks/main.py @@ -14,6 +14,7 @@ def button_clicked(e: ft.Event[ft.IconButton]): content=ft.Column( controls=[ button := ft.IconButton( + key="handling_clicks_icon_button", icon=ft.Icons.PLAY_CIRCLE_FILL_OUTLINED, data=0, on_click=button_clicked, diff --git a/sdk/python/examples/controls/icon_button/handling_clicks/pyproject.toml b/sdk/python/examples/controls/material/icon_button/handling_clicks/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/icon_button/handling_clicks/pyproject.toml rename to sdk/python/examples/controls/material/icon_button/handling_clicks/pyproject.toml diff --git a/sdk/python/examples/controls/icon_button/media/adaptive.png b/sdk/python/examples/controls/material/icon_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/icon_button/media/adaptive.png rename to sdk/python/examples/controls/material/icon_button/media/adaptive.png diff --git a/sdk/python/examples/controls/icon_button/media/handling_clicks.gif b/sdk/python/examples/controls/material/icon_button/media/handling_clicks.gif similarity index 100% rename from sdk/python/examples/controls/icon_button/media/handling_clicks.gif rename to sdk/python/examples/controls/material/icon_button/media/handling_clicks.gif diff --git a/sdk/python/examples/controls/icon_button/media/index.png b/sdk/python/examples/controls/material/icon_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/icon_button/media/index.png rename to sdk/python/examples/controls/material/icon_button/media/index.png diff --git a/sdk/python/examples/controls/icon_button/selected_icon/main.py b/sdk/python/examples/controls/material/icon_button/selected_icon/main.py similarity index 95% rename from sdk/python/examples/controls/icon_button/selected_icon/main.py rename to sdk/python/examples/controls/material/icon_button/selected_icon/main.py index 51da3b112c..a48cb53f4c 100644 --- a/sdk/python/examples/controls/icon_button/selected_icon/main.py +++ b/sdk/python/examples/controls/material/icon_button/selected_icon/main.py @@ -14,6 +14,7 @@ def handle_click(e: ft.Event[ft.IconButton]): page.add( ft.SafeArea( content=ft.IconButton( + key="selected_icon_button", icon=ft.Icons.BATTERY_1_BAR, selected_icon=ft.Icons.BATTERY_FULL, scale=5, diff --git a/sdk/python/examples/controls/icon_button/selected_icon/pyproject.toml b/sdk/python/examples/controls/material/icon_button/selected_icon/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/icon_button/selected_icon/pyproject.toml rename to sdk/python/examples/controls/material/icon_button/selected_icon/pyproject.toml diff --git a/sdk/python/examples/controls/icon_button/variants/main.py b/sdk/python/examples/controls/material/icon_button/variants/main.py similarity index 100% rename from sdk/python/examples/controls/icon_button/variants/main.py rename to sdk/python/examples/controls/material/icon_button/variants/main.py diff --git a/sdk/python/examples/controls/icon_button/variants/pyproject.toml b/sdk/python/examples/controls/material/icon_button/variants/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/icon_button/variants/pyproject.toml rename to sdk/python/examples/controls/material/icon_button/variants/pyproject.toml diff --git a/sdk/python/examples/controls/material/list_tile/basic/assets/icon-192.png b/sdk/python/examples/controls/material/list_tile/basic/assets/icon-192.png new file mode 100644 index 0000000000..65da3b9571 Binary files /dev/null and b/sdk/python/examples/controls/material/list_tile/basic/assets/icon-192.png differ diff --git a/sdk/python/examples/controls/list_tile/basic/main.py b/sdk/python/examples/controls/material/list_tile/basic/main.py similarity index 98% rename from sdk/python/examples/controls/list_tile/basic/main.py rename to sdk/python/examples/controls/material/list_tile/basic/main.py index c86703a7de..62eccfb21e 100644 --- a/sdk/python/examples/controls/list_tile/basic/main.py +++ b/sdk/python/examples/controls/material/list_tile/basic/main.py @@ -25,7 +25,7 @@ def main(page: ft.Page): ), ft.ListTile( leading=ft.Image( - src="/icons/icon-192.png", + src="assets/icon-192.png", fit=ft.BoxFit.CONTAIN, ), title=ft.Text("One-line with leading control"), diff --git a/sdk/python/examples/controls/list_tile/basic/pyproject.toml b/sdk/python/examples/controls/material/list_tile/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/list_tile/basic/pyproject.toml rename to sdk/python/examples/controls/material/list_tile/basic/pyproject.toml diff --git a/sdk/python/examples/controls/list_tile/media/basic.png b/sdk/python/examples/controls/material/list_tile/media/basic.png similarity index 100% rename from sdk/python/examples/controls/list_tile/media/basic.png rename to sdk/python/examples/controls/material/list_tile/media/basic.png diff --git a/sdk/python/examples/controls/list_tile/media/index.png b/sdk/python/examples/controls/material/list_tile/media/index.png similarity index 100% rename from sdk/python/examples/controls/list_tile/media/index.png rename to sdk/python/examples/controls/material/list_tile/media/index.png diff --git a/sdk/python/examples/controls/menu_bar/media/nested_submenus.gif b/sdk/python/examples/controls/material/menu_bar/media/nested_submenus.gif similarity index 100% rename from sdk/python/examples/controls/menu_bar/media/nested_submenus.gif rename to sdk/python/examples/controls/material/menu_bar/media/nested_submenus.gif diff --git a/sdk/python/examples/controls/menu_bar/nested_submenus/main.py b/sdk/python/examples/controls/material/menu_bar/nested_submenus/main.py similarity index 100% rename from sdk/python/examples/controls/menu_bar/nested_submenus/main.py rename to sdk/python/examples/controls/material/menu_bar/nested_submenus/main.py diff --git a/sdk/python/examples/controls/menu_bar/nested_submenus/pyproject.toml b/sdk/python/examples/controls/material/menu_bar/nested_submenus/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/menu_bar/nested_submenus/pyproject.toml rename to sdk/python/examples/controls/material/menu_bar/nested_submenus/pyproject.toml diff --git a/sdk/python/examples/controls/menu_item_button/basic/main.py b/sdk/python/examples/controls/material/menu_item_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/menu_item_button/basic/main.py rename to sdk/python/examples/controls/material/menu_item_button/basic/main.py diff --git a/sdk/python/examples/controls/menu_item_button/basic/pyproject.toml b/sdk/python/examples/controls/material/menu_item_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/menu_item_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/menu_item_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/menu_item_button/media/basic.gif b/sdk/python/examples/controls/material/menu_item_button/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/menu_item_button/media/basic.gif rename to sdk/python/examples/controls/material/menu_item_button/media/basic.gif diff --git a/sdk/python/examples/controls/navigation_bar/basic/main.py b/sdk/python/examples/controls/material/navigation_bar/basic/main.py similarity index 100% rename from sdk/python/examples/controls/navigation_bar/basic/main.py rename to sdk/python/examples/controls/material/navigation_bar/basic/main.py diff --git a/sdk/python/examples/controls/navigation_bar/basic/pyproject.toml b/sdk/python/examples/controls/material/navigation_bar/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/navigation_bar/basic/pyproject.toml rename to sdk/python/examples/controls/material/navigation_bar/basic/pyproject.toml diff --git a/sdk/python/examples/controls/navigation_bar/media/adaptive.png b/sdk/python/examples/controls/material/navigation_bar/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/navigation_bar/media/adaptive.png rename to sdk/python/examples/controls/material/navigation_bar/media/adaptive.png diff --git a/sdk/python/examples/controls/navigation_bar/media/basic.gif b/sdk/python/examples/controls/material/navigation_bar/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/navigation_bar/media/basic.gif rename to sdk/python/examples/controls/material/navigation_bar/media/basic.gif diff --git a/sdk/python/examples/controls/navigation_drawer/media/position_end.gif b/sdk/python/examples/controls/material/navigation_drawer/media/position_end.gif similarity index 100% rename from sdk/python/examples/controls/navigation_drawer/media/position_end.gif rename to sdk/python/examples/controls/material/navigation_drawer/media/position_end.gif diff --git a/sdk/python/examples/controls/navigation_drawer/media/position_start.gif b/sdk/python/examples/controls/material/navigation_drawer/media/position_start.gif similarity index 100% rename from sdk/python/examples/controls/navigation_drawer/media/position_start.gif rename to sdk/python/examples/controls/material/navigation_drawer/media/position_start.gif diff --git a/sdk/python/examples/controls/navigation_drawer/position_end/main.py b/sdk/python/examples/controls/material/navigation_drawer/position_end/main.py similarity index 100% rename from sdk/python/examples/controls/navigation_drawer/position_end/main.py rename to sdk/python/examples/controls/material/navigation_drawer/position_end/main.py diff --git a/sdk/python/examples/controls/navigation_drawer/position_end/pyproject.toml b/sdk/python/examples/controls/material/navigation_drawer/position_end/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/navigation_drawer/position_end/pyproject.toml rename to sdk/python/examples/controls/material/navigation_drawer/position_end/pyproject.toml diff --git a/sdk/python/examples/controls/navigation_drawer/position_start/main.py b/sdk/python/examples/controls/material/navigation_drawer/position_start/main.py similarity index 100% rename from sdk/python/examples/controls/navigation_drawer/position_start/main.py rename to sdk/python/examples/controls/material/navigation_drawer/position_start/main.py diff --git a/sdk/python/examples/controls/navigation_drawer/position_start/pyproject.toml b/sdk/python/examples/controls/material/navigation_drawer/position_start/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/navigation_drawer/position_start/pyproject.toml rename to sdk/python/examples/controls/material/navigation_drawer/position_start/pyproject.toml diff --git a/sdk/python/examples/controls/navigation_rail/basic/main.py b/sdk/python/examples/controls/material/navigation_rail/basic/main.py similarity index 100% rename from sdk/python/examples/controls/navigation_rail/basic/main.py rename to sdk/python/examples/controls/material/navigation_rail/basic/main.py diff --git a/sdk/python/examples/controls/navigation_rail/basic/pyproject.toml b/sdk/python/examples/controls/material/navigation_rail/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/navigation_rail/basic/pyproject.toml rename to sdk/python/examples/controls/material/navigation_rail/basic/pyproject.toml diff --git a/sdk/python/examples/controls/navigation_rail/media/basic.png b/sdk/python/examples/controls/material/navigation_rail/media/basic.png similarity index 100% rename from sdk/python/examples/controls/navigation_rail/media/basic.png rename to sdk/python/examples/controls/material/navigation_rail/media/basic.png diff --git a/sdk/python/examples/controls/outlined_button/basic/main.py b/sdk/python/examples/controls/material/outlined_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/outlined_button/basic/main.py rename to sdk/python/examples/controls/material/outlined_button/basic/main.py diff --git a/sdk/python/examples/controls/outlined_button/basic/pyproject.toml b/sdk/python/examples/controls/material/outlined_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/outlined_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/outlined_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/outlined_button/custom_content/main.py b/sdk/python/examples/controls/material/outlined_button/custom_content/main.py similarity index 100% rename from sdk/python/examples/controls/outlined_button/custom_content/main.py rename to sdk/python/examples/controls/material/outlined_button/custom_content/main.py diff --git a/sdk/python/examples/controls/outlined_button/custom_content/pyproject.toml b/sdk/python/examples/controls/material/outlined_button/custom_content/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/outlined_button/custom_content/pyproject.toml rename to sdk/python/examples/controls/material/outlined_button/custom_content/pyproject.toml diff --git a/sdk/python/examples/controls/outlined_button/handling_clicks/main.py b/sdk/python/examples/controls/material/outlined_button/handling_clicks/main.py similarity index 100% rename from sdk/python/examples/controls/outlined_button/handling_clicks/main.py rename to sdk/python/examples/controls/material/outlined_button/handling_clicks/main.py diff --git a/sdk/python/examples/controls/outlined_button/handling_clicks/pyproject.toml b/sdk/python/examples/controls/material/outlined_button/handling_clicks/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/outlined_button/handling_clicks/pyproject.toml rename to sdk/python/examples/controls/material/outlined_button/handling_clicks/pyproject.toml diff --git a/sdk/python/examples/controls/outlined_button/icons/main.py b/sdk/python/examples/controls/material/outlined_button/icons/main.py similarity index 100% rename from sdk/python/examples/controls/outlined_button/icons/main.py rename to sdk/python/examples/controls/material/outlined_button/icons/main.py diff --git a/sdk/python/examples/controls/outlined_button/icons/pyproject.toml b/sdk/python/examples/controls/material/outlined_button/icons/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/outlined_button/icons/pyproject.toml rename to sdk/python/examples/controls/material/outlined_button/icons/pyproject.toml diff --git a/sdk/python/examples/controls/outlined_button/media/adaptive.png b/sdk/python/examples/controls/material/outlined_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/outlined_button/media/adaptive.png rename to sdk/python/examples/controls/material/outlined_button/media/adaptive.png diff --git a/sdk/python/examples/controls/outlined_button/media/basic.png b/sdk/python/examples/controls/material/outlined_button/media/basic.png similarity index 100% rename from sdk/python/examples/controls/outlined_button/media/basic.png rename to sdk/python/examples/controls/material/outlined_button/media/basic.png diff --git a/sdk/python/examples/controls/outlined_button/media/custom_content.png b/sdk/python/examples/controls/material/outlined_button/media/custom_content.png similarity index 100% rename from sdk/python/examples/controls/outlined_button/media/custom_content.png rename to sdk/python/examples/controls/material/outlined_button/media/custom_content.png diff --git a/sdk/python/examples/controls/outlined_button/media/handling_clicks.gif b/sdk/python/examples/controls/material/outlined_button/media/handling_clicks.gif similarity index 100% rename from sdk/python/examples/controls/outlined_button/media/handling_clicks.gif rename to sdk/python/examples/controls/material/outlined_button/media/handling_clicks.gif diff --git a/sdk/python/examples/controls/outlined_button/media/icons.png b/sdk/python/examples/controls/material/outlined_button/media/icons.png similarity index 100% rename from sdk/python/examples/controls/outlined_button/media/icons.png rename to sdk/python/examples/controls/material/outlined_button/media/icons.png diff --git a/sdk/python/examples/controls/outlined_button/media/index.png b/sdk/python/examples/controls/material/outlined_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/outlined_button/media/index.png rename to sdk/python/examples/controls/material/outlined_button/media/index.png diff --git a/sdk/python/examples/controls/popup_menu_button/basic/main.py b/sdk/python/examples/controls/material/popup_menu_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/popup_menu_button/basic/main.py rename to sdk/python/examples/controls/material/popup_menu_button/basic/main.py diff --git a/sdk/python/examples/controls/popup_menu_button/basic/pyproject.toml b/sdk/python/examples/controls/material/popup_menu_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/popup_menu_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/popup_menu_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/popup_menu_button/media/basic.gif b/sdk/python/examples/controls/material/popup_menu_button/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/popup_menu_button/media/basic.gif rename to sdk/python/examples/controls/material/popup_menu_button/media/basic.gif diff --git a/sdk/python/examples/controls/popup_menu_button/media/index.gif b/sdk/python/examples/controls/material/popup_menu_button/media/index.gif similarity index 100% rename from sdk/python/examples/controls/popup_menu_button/media/index.gif rename to sdk/python/examples/controls/material/popup_menu_button/media/index.gif diff --git a/sdk/python/examples/controls/progress_bar/determinate_and_indeterminate/main.py b/sdk/python/examples/controls/material/progress_bar/determinate_and_indeterminate/main.py similarity index 100% rename from sdk/python/examples/controls/progress_bar/determinate_and_indeterminate/main.py rename to sdk/python/examples/controls/material/progress_bar/determinate_and_indeterminate/main.py diff --git a/sdk/python/examples/controls/progress_bar/determinate_and_indeterminate/pyproject.toml b/sdk/python/examples/controls/material/progress_bar/determinate_and_indeterminate/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/progress_bar/determinate_and_indeterminate/pyproject.toml rename to sdk/python/examples/controls/material/progress_bar/determinate_and_indeterminate/pyproject.toml diff --git a/sdk/python/examples/controls/progress_bar/media/determinate_and_indeterminate.gif b/sdk/python/examples/controls/material/progress_bar/media/determinate_and_indeterminate.gif similarity index 100% rename from sdk/python/examples/controls/progress_bar/media/determinate_and_indeterminate.gif rename to sdk/python/examples/controls/material/progress_bar/media/determinate_and_indeterminate.gif diff --git a/sdk/python/examples/controls/progress_ring/determinate_and_indeterminate/main.py b/sdk/python/examples/controls/material/progress_ring/determinate_and_indeterminate/main.py similarity index 100% rename from sdk/python/examples/controls/progress_ring/determinate_and_indeterminate/main.py rename to sdk/python/examples/controls/material/progress_ring/determinate_and_indeterminate/main.py diff --git a/sdk/python/examples/controls/progress_ring/determinate_and_indeterminate/pyproject.toml b/sdk/python/examples/controls/material/progress_ring/determinate_and_indeterminate/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/progress_ring/determinate_and_indeterminate/pyproject.toml rename to sdk/python/examples/controls/material/progress_ring/determinate_and_indeterminate/pyproject.toml diff --git a/sdk/python/examples/controls/progress_ring/gauge_with_progress/main.py b/sdk/python/examples/controls/material/progress_ring/gauge_with_progress/main.py similarity index 96% rename from sdk/python/examples/controls/progress_ring/gauge_with_progress/main.py rename to sdk/python/examples/controls/material/progress_ring/gauge_with_progress/main.py index be375e3a8c..c4debb6670 100644 --- a/sdk/python/examples/controls/progress_ring/gauge_with_progress/main.py +++ b/sdk/python/examples/controls/material/progress_ring/gauge_with_progress/main.py @@ -11,7 +11,7 @@ def main(page: ft.Page): ft.Container(content=ft.Text("60%"), alignment=ft.Alignment.CENTER), ft.ProgressRing(value=0.6, width=100, height=100), ], - ) + ), ) ) diff --git a/sdk/python/examples/controls/progress_ring/gauge_with_progress/pyproject.toml b/sdk/python/examples/controls/material/progress_ring/gauge_with_progress/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/progress_ring/gauge_with_progress/pyproject.toml rename to sdk/python/examples/controls/material/progress_ring/gauge_with_progress/pyproject.toml diff --git a/sdk/python/examples/controls/progress_ring/media/determinate_and_indeterminate.gif b/sdk/python/examples/controls/material/progress_ring/media/determinate_and_indeterminate.gif similarity index 100% rename from sdk/python/examples/controls/progress_ring/media/determinate_and_indeterminate.gif rename to sdk/python/examples/controls/material/progress_ring/media/determinate_and_indeterminate.gif diff --git a/sdk/python/examples/controls/radio/basic/main.py b/sdk/python/examples/controls/material/radio/basic/main.py similarity index 100% rename from sdk/python/examples/controls/radio/basic/main.py rename to sdk/python/examples/controls/material/radio/basic/main.py diff --git a/sdk/python/examples/controls/radio/basic/pyproject.toml b/sdk/python/examples/controls/material/radio/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/radio/basic/pyproject.toml rename to sdk/python/examples/controls/material/radio/basic/pyproject.toml diff --git a/sdk/python/examples/controls/radio/handling_selection_changes/main.py b/sdk/python/examples/controls/material/radio/handling_selection_changes/main.py similarity index 100% rename from sdk/python/examples/controls/radio/handling_selection_changes/main.py rename to sdk/python/examples/controls/material/radio/handling_selection_changes/main.py diff --git a/sdk/python/examples/controls/radio/handling_selection_changes/pyproject.toml b/sdk/python/examples/controls/material/radio/handling_selection_changes/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/radio/handling_selection_changes/pyproject.toml rename to sdk/python/examples/controls/material/radio/handling_selection_changes/pyproject.toml diff --git a/sdk/python/examples/controls/radio/media/basic.gif b/sdk/python/examples/controls/material/radio/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/radio/media/basic.gif rename to sdk/python/examples/controls/material/radio/media/basic.gif diff --git a/sdk/python/examples/controls/radio/media/handling_selection_changes.gif b/sdk/python/examples/controls/material/radio/media/handling_selection_changes.gif similarity index 100% rename from sdk/python/examples/controls/radio/media/handling_selection_changes.gif rename to sdk/python/examples/controls/material/radio/media/handling_selection_changes.gif diff --git a/sdk/python/examples/controls/radio/media/index.png b/sdk/python/examples/controls/material/radio/media/index.png similarity index 100% rename from sdk/python/examples/controls/radio/media/index.png rename to sdk/python/examples/controls/material/radio/media/index.png diff --git a/sdk/python/examples/controls/radio/styled/main.py b/sdk/python/examples/controls/material/radio/styled/main.py similarity index 100% rename from sdk/python/examples/controls/radio/styled/main.py rename to sdk/python/examples/controls/material/radio/styled/main.py diff --git a/sdk/python/examples/controls/radio/styled/pyproject.toml b/sdk/python/examples/controls/material/radio/styled/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/radio/styled/pyproject.toml rename to sdk/python/examples/controls/material/radio/styled/pyproject.toml diff --git a/sdk/python/examples/controls/range_slider/basic/main.py b/sdk/python/examples/controls/material/range_slider/basic/main.py similarity index 100% rename from sdk/python/examples/controls/range_slider/basic/main.py rename to sdk/python/examples/controls/material/range_slider/basic/main.py diff --git a/sdk/python/examples/controls/range_slider/basic/pyproject.toml b/sdk/python/examples/controls/material/range_slider/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/range_slider/basic/pyproject.toml rename to sdk/python/examples/controls/material/range_slider/basic/pyproject.toml diff --git a/sdk/python/examples/controls/range_slider/handling_change_events/main.py b/sdk/python/examples/controls/material/range_slider/handling_change_events/main.py similarity index 100% rename from sdk/python/examples/controls/range_slider/handling_change_events/main.py rename to sdk/python/examples/controls/material/range_slider/handling_change_events/main.py diff --git a/sdk/python/examples/controls/range_slider/handling_change_events/pyproject.toml b/sdk/python/examples/controls/material/range_slider/handling_change_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/range_slider/handling_change_events/pyproject.toml rename to sdk/python/examples/controls/material/range_slider/handling_change_events/pyproject.toml diff --git a/sdk/python/examples/controls/range_slider/media/basic.gif b/sdk/python/examples/controls/material/range_slider/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/range_slider/media/basic.gif rename to sdk/python/examples/controls/material/range_slider/media/basic.gif diff --git a/sdk/python/examples/controls/reorderable_drag_handle/basic/main.py b/sdk/python/examples/controls/material/reorderable_drag_handle/basic/main.py similarity index 100% rename from sdk/python/examples/controls/reorderable_drag_handle/basic/main.py rename to sdk/python/examples/controls/material/reorderable_drag_handle/basic/main.py diff --git a/sdk/python/examples/controls/reorderable_drag_handle/basic/pyproject.toml b/sdk/python/examples/controls/material/reorderable_drag_handle/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/reorderable_drag_handle/basic/pyproject.toml rename to sdk/python/examples/controls/material/reorderable_drag_handle/basic/pyproject.toml diff --git a/sdk/python/examples/controls/reorderable_list_view/horizontal_and_vertical/main.py b/sdk/python/examples/controls/material/reorderable_list_view/horizontal_and_vertical/main.py similarity index 100% rename from sdk/python/examples/controls/reorderable_list_view/horizontal_and_vertical/main.py rename to sdk/python/examples/controls/material/reorderable_list_view/horizontal_and_vertical/main.py diff --git a/sdk/python/examples/controls/reorderable_list_view/media/horizontal_and_vertical.gif b/sdk/python/examples/controls/material/reorderable_list_view/media/horizontal_and_vertical.gif similarity index 100% rename from sdk/python/examples/controls/reorderable_list_view/media/horizontal_and_vertical.gif rename to sdk/python/examples/controls/material/reorderable_list_view/media/horizontal_and_vertical.gif diff --git a/sdk/python/examples/controls/search_bar/basic/main.py b/sdk/python/examples/controls/material/search_bar/basic/main.py similarity index 100% rename from sdk/python/examples/controls/search_bar/basic/main.py rename to sdk/python/examples/controls/material/search_bar/basic/main.py diff --git a/sdk/python/examples/controls/search_bar/basic/pyproject.toml b/sdk/python/examples/controls/material/search_bar/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/search_bar/basic/pyproject.toml rename to sdk/python/examples/controls/material/search_bar/basic/pyproject.toml diff --git a/sdk/python/examples/controls/search_bar/media/basic.gif b/sdk/python/examples/controls/material/search_bar/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/search_bar/media/basic.gif rename to sdk/python/examples/controls/material/search_bar/media/basic.gif diff --git a/sdk/python/examples/controls/segmented_button/media/basic.gif b/sdk/python/examples/controls/material/segmented_button/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/segmented_button/media/basic.gif rename to sdk/python/examples/controls/material/segmented_button/media/basic.gif diff --git a/sdk/python/examples/controls/segmented_button/single_multiple_selection/main.py b/sdk/python/examples/controls/material/segmented_button/single_multiple_selection/main.py similarity index 100% rename from sdk/python/examples/controls/segmented_button/single_multiple_selection/main.py rename to sdk/python/examples/controls/material/segmented_button/single_multiple_selection/main.py diff --git a/sdk/python/examples/controls/segmented_button/single_multiple_selection/pyproject.toml b/sdk/python/examples/controls/material/segmented_button/single_multiple_selection/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/segmented_button/single_multiple_selection/pyproject.toml rename to sdk/python/examples/controls/material/segmented_button/single_multiple_selection/pyproject.toml diff --git a/sdk/python/examples/controls/selection_area/basic/main.py b/sdk/python/examples/controls/material/selection_area/basic/main.py similarity index 100% rename from sdk/python/examples/controls/selection_area/basic/main.py rename to sdk/python/examples/controls/material/selection_area/basic/main.py diff --git a/sdk/python/examples/controls/selection_area/basic/pyproject.toml b/sdk/python/examples/controls/material/selection_area/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/selection_area/basic/pyproject.toml rename to sdk/python/examples/controls/material/selection_area/basic/pyproject.toml diff --git a/sdk/python/examples/controls/selection_area/media/basic.gif b/sdk/python/examples/controls/material/selection_area/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/selection_area/media/basic.gif rename to sdk/python/examples/controls/material/selection_area/media/basic.gif diff --git a/sdk/python/examples/controls/slider/basic/main.py b/sdk/python/examples/controls/material/slider/basic/main.py similarity index 100% rename from sdk/python/examples/controls/slider/basic/main.py rename to sdk/python/examples/controls/material/slider/basic/main.py diff --git a/sdk/python/examples/controls/slider/basic/pyproject.toml b/sdk/python/examples/controls/material/slider/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/slider/basic/pyproject.toml rename to sdk/python/examples/controls/material/slider/basic/pyproject.toml diff --git a/sdk/python/examples/controls/slider/custom_label/main.py b/sdk/python/examples/controls/material/slider/custom_label/main.py similarity index 100% rename from sdk/python/examples/controls/slider/custom_label/main.py rename to sdk/python/examples/controls/material/slider/custom_label/main.py diff --git a/sdk/python/examples/controls/slider/custom_label/pyproject.toml b/sdk/python/examples/controls/material/slider/custom_label/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/slider/custom_label/pyproject.toml rename to sdk/python/examples/controls/material/slider/custom_label/pyproject.toml diff --git a/sdk/python/examples/controls/slider/handling_events/main.py b/sdk/python/examples/controls/material/slider/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/slider/handling_events/main.py rename to sdk/python/examples/controls/material/slider/handling_events/main.py diff --git a/sdk/python/examples/controls/slider/handling_events/pyproject.toml b/sdk/python/examples/controls/material/slider/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/slider/handling_events/pyproject.toml rename to sdk/python/examples/controls/material/slider/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/slider/random_values/main.py b/sdk/python/examples/controls/material/slider/random_values/main.py similarity index 100% rename from sdk/python/examples/controls/slider/random_values/main.py rename to sdk/python/examples/controls/material/slider/random_values/main.py diff --git a/sdk/python/examples/controls/slider/random_values/pyproject.toml b/sdk/python/examples/controls/material/slider/random_values/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/slider/random_values/pyproject.toml rename to sdk/python/examples/controls/material/slider/random_values/pyproject.toml diff --git a/sdk/python/examples/controls/snack_bar/action/main.py b/sdk/python/examples/controls/material/snack_bar/action/main.py similarity index 100% rename from sdk/python/examples/controls/snack_bar/action/main.py rename to sdk/python/examples/controls/material/snack_bar/action/main.py diff --git a/sdk/python/examples/controls/snack_bar/action/pyproject.toml b/sdk/python/examples/controls/material/snack_bar/action/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/snack_bar/action/pyproject.toml rename to sdk/python/examples/controls/material/snack_bar/action/pyproject.toml diff --git a/sdk/python/examples/controls/snack_bar/basic/main.py b/sdk/python/examples/controls/material/snack_bar/basic/main.py similarity index 100% rename from sdk/python/examples/controls/snack_bar/basic/main.py rename to sdk/python/examples/controls/material/snack_bar/basic/main.py diff --git a/sdk/python/examples/controls/snack_bar/basic/pyproject.toml b/sdk/python/examples/controls/material/snack_bar/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/snack_bar/basic/pyproject.toml rename to sdk/python/examples/controls/material/snack_bar/basic/pyproject.toml diff --git a/sdk/python/examples/controls/snack_bar/counter/main.py b/sdk/python/examples/controls/material/snack_bar/counter/main.py similarity index 100% rename from sdk/python/examples/controls/snack_bar/counter/main.py rename to sdk/python/examples/controls/material/snack_bar/counter/main.py diff --git a/sdk/python/examples/controls/snack_bar/counter/pyproject.toml b/sdk/python/examples/controls/material/snack_bar/counter/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/snack_bar/counter/pyproject.toml rename to sdk/python/examples/controls/material/snack_bar/counter/pyproject.toml diff --git a/sdk/python/examples/controls/snack_bar/media/basic.gif b/sdk/python/examples/controls/material/snack_bar/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/snack_bar/media/basic.gif rename to sdk/python/examples/controls/material/snack_bar/media/basic.gif diff --git a/sdk/python/examples/controls/submenu_button/basic/main.py b/sdk/python/examples/controls/material/submenu_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/submenu_button/basic/main.py rename to sdk/python/examples/controls/material/submenu_button/basic/main.py diff --git a/sdk/python/examples/controls/submenu_button/basic/pyproject.toml b/sdk/python/examples/controls/material/submenu_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/submenu_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/submenu_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/submenu_button/media/basic.gif b/sdk/python/examples/controls/material/submenu_button/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/submenu_button/media/basic.gif rename to sdk/python/examples/controls/material/submenu_button/media/basic.gif diff --git a/sdk/python/examples/controls/submenu_button/standalone/main.py b/sdk/python/examples/controls/material/submenu_button/standalone/main.py similarity index 100% rename from sdk/python/examples/controls/submenu_button/standalone/main.py rename to sdk/python/examples/controls/material/submenu_button/standalone/main.py diff --git a/sdk/python/examples/controls/submenu_button/standalone/pyproject.toml b/sdk/python/examples/controls/material/submenu_button/standalone/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/submenu_button/standalone/pyproject.toml rename to sdk/python/examples/controls/material/submenu_button/standalone/pyproject.toml diff --git a/sdk/python/examples/controls/switch/basic/main.py b/sdk/python/examples/controls/material/switch/basic/main.py similarity index 100% rename from sdk/python/examples/controls/switch/basic/main.py rename to sdk/python/examples/controls/material/switch/basic/main.py diff --git a/sdk/python/examples/controls/switch/basic/pyproject.toml b/sdk/python/examples/controls/material/switch/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/switch/basic/pyproject.toml rename to sdk/python/examples/controls/material/switch/basic/pyproject.toml diff --git a/sdk/python/examples/controls/switch/handling_events/main.py b/sdk/python/examples/controls/material/switch/handling_events/main.py similarity index 100% rename from sdk/python/examples/controls/switch/handling_events/main.py rename to sdk/python/examples/controls/material/switch/handling_events/main.py diff --git a/sdk/python/examples/controls/switch/handling_events/pyproject.toml b/sdk/python/examples/controls/material/switch/handling_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/switch/handling_events/pyproject.toml rename to sdk/python/examples/controls/material/switch/handling_events/pyproject.toml diff --git a/sdk/python/examples/controls/switch/media/basic.gif b/sdk/python/examples/controls/material/switch/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/switch/media/basic.gif rename to sdk/python/examples/controls/material/switch/media/basic.gif diff --git a/sdk/python/examples/controls/switch/media/handling_events.gif b/sdk/python/examples/controls/material/switch/media/handling_events.gif similarity index 100% rename from sdk/python/examples/controls/switch/media/handling_events.gif rename to sdk/python/examples/controls/material/switch/media/handling_events.gif diff --git a/sdk/python/examples/controls/switch/media/index.png b/sdk/python/examples/controls/material/switch/media/index.png similarity index 100% rename from sdk/python/examples/controls/switch/media/index.png rename to sdk/python/examples/controls/material/switch/media/index.png diff --git a/sdk/python/examples/controls/tabs/basic/main.py b/sdk/python/examples/controls/material/tabs/basic/main.py similarity index 100% rename from sdk/python/examples/controls/tabs/basic/main.py rename to sdk/python/examples/controls/material/tabs/basic/main.py diff --git a/sdk/python/examples/controls/tabs/basic/pyproject.toml b/sdk/python/examples/controls/material/tabs/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/tabs/basic/pyproject.toml rename to sdk/python/examples/controls/material/tabs/basic/pyproject.toml diff --git a/sdk/python/examples/controls/tabs/custom_indicator/main.py b/sdk/python/examples/controls/material/tabs/custom_indicator/main.py similarity index 100% rename from sdk/python/examples/controls/tabs/custom_indicator/main.py rename to sdk/python/examples/controls/material/tabs/custom_indicator/main.py diff --git a/sdk/python/examples/controls/tabs/custom_indicator/pyproject.toml b/sdk/python/examples/controls/material/tabs/custom_indicator/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/tabs/custom_indicator/pyproject.toml rename to sdk/python/examples/controls/material/tabs/custom_indicator/pyproject.toml diff --git a/sdk/python/examples/controls/tabs/dynamic_tab_addition/main.py b/sdk/python/examples/controls/material/tabs/dynamic_tab_addition/main.py similarity index 100% rename from sdk/python/examples/controls/tabs/dynamic_tab_addition/main.py rename to sdk/python/examples/controls/material/tabs/dynamic_tab_addition/main.py diff --git a/sdk/python/examples/controls/tabs/dynamic_tab_addition/pyproject.toml b/sdk/python/examples/controls/material/tabs/dynamic_tab_addition/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/tabs/dynamic_tab_addition/pyproject.toml rename to sdk/python/examples/controls/material/tabs/dynamic_tab_addition/pyproject.toml diff --git a/sdk/python/examples/controls/tabs/media/basic.gif b/sdk/python/examples/controls/material/tabs/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/tabs/media/basic.gif rename to sdk/python/examples/controls/material/tabs/media/basic.gif diff --git a/sdk/python/examples/controls/tabs/move_to/main.py b/sdk/python/examples/controls/material/tabs/move_to/main.py similarity index 100% rename from sdk/python/examples/controls/tabs/move_to/main.py rename to sdk/python/examples/controls/material/tabs/move_to/main.py diff --git a/sdk/python/examples/controls/tabs/move_to/pyproject.toml b/sdk/python/examples/controls/material/tabs/move_to/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/tabs/move_to/pyproject.toml rename to sdk/python/examples/controls/material/tabs/move_to/pyproject.toml diff --git a/sdk/python/examples/controls/tabs/nested/main.py b/sdk/python/examples/controls/material/tabs/nested/main.py similarity index 100% rename from sdk/python/examples/controls/tabs/nested/main.py rename to sdk/python/examples/controls/material/tabs/nested/main.py diff --git a/sdk/python/examples/controls/tabs/nested/pyproject.toml b/sdk/python/examples/controls/material/tabs/nested/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/tabs/nested/pyproject.toml rename to sdk/python/examples/controls/material/tabs/nested/pyproject.toml diff --git a/sdk/python/examples/controls/text_button/basic/main.py b/sdk/python/examples/controls/material/text_button/basic/main.py similarity index 100% rename from sdk/python/examples/controls/text_button/basic/main.py rename to sdk/python/examples/controls/material/text_button/basic/main.py diff --git a/sdk/python/examples/controls/text_button/basic/pyproject.toml b/sdk/python/examples/controls/material/text_button/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_button/basic/pyproject.toml rename to sdk/python/examples/controls/material/text_button/basic/pyproject.toml diff --git a/sdk/python/examples/controls/text_button/custom_content/main.py b/sdk/python/examples/controls/material/text_button/custom_content/main.py similarity index 100% rename from sdk/python/examples/controls/text_button/custom_content/main.py rename to sdk/python/examples/controls/material/text_button/custom_content/main.py diff --git a/sdk/python/examples/controls/text_button/custom_content/pyproject.toml b/sdk/python/examples/controls/material/text_button/custom_content/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_button/custom_content/pyproject.toml rename to sdk/python/examples/controls/material/text_button/custom_content/pyproject.toml diff --git a/sdk/python/examples/controls/text_button/handling_clicks/main.py b/sdk/python/examples/controls/material/text_button/handling_clicks/main.py similarity index 100% rename from sdk/python/examples/controls/text_button/handling_clicks/main.py rename to sdk/python/examples/controls/material/text_button/handling_clicks/main.py diff --git a/sdk/python/examples/controls/text_button/handling_clicks/pyproject.toml b/sdk/python/examples/controls/material/text_button/handling_clicks/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_button/handling_clicks/pyproject.toml rename to sdk/python/examples/controls/material/text_button/handling_clicks/pyproject.toml diff --git a/sdk/python/examples/controls/text_button/icons/main.py b/sdk/python/examples/controls/material/text_button/icons/main.py similarity index 100% rename from sdk/python/examples/controls/text_button/icons/main.py rename to sdk/python/examples/controls/material/text_button/icons/main.py diff --git a/sdk/python/examples/controls/text_button/icons/pyproject.toml b/sdk/python/examples/controls/material/text_button/icons/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_button/icons/pyproject.toml rename to sdk/python/examples/controls/material/text_button/icons/pyproject.toml diff --git a/sdk/python/examples/controls/text_button/media/adaptive.png b/sdk/python/examples/controls/material/text_button/media/adaptive.png similarity index 100% rename from sdk/python/examples/controls/text_button/media/adaptive.png rename to sdk/python/examples/controls/material/text_button/media/adaptive.png diff --git a/sdk/python/examples/controls/text_button/media/index.png b/sdk/python/examples/controls/material/text_button/media/index.png similarity index 100% rename from sdk/python/examples/controls/text_button/media/index.png rename to sdk/python/examples/controls/material/text_button/media/index.png diff --git a/sdk/python/examples/controls/text_field/basic/main.py b/sdk/python/examples/controls/material/text_field/basic/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/basic/main.py rename to sdk/python/examples/controls/material/text_field/basic/main.py diff --git a/sdk/python/examples/controls/text_field/basic/pyproject.toml b/sdk/python/examples/controls/material/text_field/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/basic/pyproject.toml rename to sdk/python/examples/controls/material/text_field/basic/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/handling_change_events/main.py b/sdk/python/examples/controls/material/text_field/handling_change_events/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/handling_change_events/main.py rename to sdk/python/examples/controls/material/text_field/handling_change_events/main.py diff --git a/sdk/python/examples/controls/text_field/handling_change_events/pyproject.toml b/sdk/python/examples/controls/material/text_field/handling_change_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/handling_change_events/pyproject.toml rename to sdk/python/examples/controls/material/text_field/handling_change_events/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/label_hint_helper_counter/main.py b/sdk/python/examples/controls/material/text_field/label_hint_helper_counter/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/label_hint_helper_counter/main.py rename to sdk/python/examples/controls/material/text_field/label_hint_helper_counter/main.py diff --git a/sdk/python/examples/controls/text_field/label_hint_helper_counter/pyproject.toml b/sdk/python/examples/controls/material/text_field/label_hint_helper_counter/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/label_hint_helper_counter/pyproject.toml rename to sdk/python/examples/controls/material/text_field/label_hint_helper_counter/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/media/basic.gif b/sdk/python/examples/controls/material/text_field/media/basic.gif similarity index 100% rename from sdk/python/examples/controls/text_field/media/basic.gif rename to sdk/python/examples/controls/material/text_field/media/basic.gif diff --git a/sdk/python/examples/controls/text_field/media/handling_change_events.gif b/sdk/python/examples/controls/material/text_field/media/handling_change_events.gif similarity index 100% rename from sdk/python/examples/controls/text_field/media/handling_change_events.gif rename to sdk/python/examples/controls/material/text_field/media/handling_change_events.gif diff --git a/sdk/python/examples/controls/text_field/media/index.png b/sdk/python/examples/controls/material/text_field/media/index.png similarity index 100% rename from sdk/python/examples/controls/text_field/media/index.png rename to sdk/python/examples/controls/material/text_field/media/index.png diff --git a/sdk/python/examples/controls/text_field/media/multiline.gif b/sdk/python/examples/controls/material/text_field/media/multiline.gif similarity index 100% rename from sdk/python/examples/controls/text_field/media/multiline.gif rename to sdk/python/examples/controls/material/text_field/media/multiline.gif diff --git a/sdk/python/examples/controls/text_field/media/password.gif b/sdk/python/examples/controls/material/text_field/media/password.gif similarity index 100% rename from sdk/python/examples/controls/text_field/media/password.gif rename to sdk/python/examples/controls/material/text_field/media/password.gif diff --git a/sdk/python/examples/controls/text_field/media/prefix_and_suffix.gif b/sdk/python/examples/controls/material/text_field/media/prefix_and_suffix.gif similarity index 100% rename from sdk/python/examples/controls/text_field/media/prefix_and_suffix.gif rename to sdk/python/examples/controls/material/text_field/media/prefix_and_suffix.gif diff --git a/sdk/python/examples/controls/text_field/media/underlined_and_borderless.gif b/sdk/python/examples/controls/material/text_field/media/underlined_and_borderless.gif similarity index 100% rename from sdk/python/examples/controls/text_field/media/underlined_and_borderless.gif rename to sdk/python/examples/controls/material/text_field/media/underlined_and_borderless.gif diff --git a/sdk/python/examples/controls/text_field/multiline/main.py b/sdk/python/examples/controls/material/text_field/multiline/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/multiline/main.py rename to sdk/python/examples/controls/material/text_field/multiline/main.py diff --git a/sdk/python/examples/controls/text_field/multiline/pyproject.toml b/sdk/python/examples/controls/material/text_field/multiline/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/multiline/pyproject.toml rename to sdk/python/examples/controls/material/text_field/multiline/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/password/main.py b/sdk/python/examples/controls/material/text_field/password/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/password/main.py rename to sdk/python/examples/controls/material/text_field/password/main.py diff --git a/sdk/python/examples/controls/text_field/password/pyproject.toml b/sdk/python/examples/controls/material/text_field/password/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/password/pyproject.toml rename to sdk/python/examples/controls/material/text_field/password/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/prefix_and_suffix/main.py b/sdk/python/examples/controls/material/text_field/prefix_and_suffix/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/prefix_and_suffix/main.py rename to sdk/python/examples/controls/material/text_field/prefix_and_suffix/main.py diff --git a/sdk/python/examples/controls/text_field/prefix_and_suffix/pyproject.toml b/sdk/python/examples/controls/material/text_field/prefix_and_suffix/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/prefix_and_suffix/pyproject.toml rename to sdk/python/examples/controls/material/text_field/prefix_and_suffix/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/selection_change/main.py b/sdk/python/examples/controls/material/text_field/selection_change/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/selection_change/main.py rename to sdk/python/examples/controls/material/text_field/selection_change/main.py diff --git a/sdk/python/examples/controls/text_field/selection_change/pyproject.toml b/sdk/python/examples/controls/material/text_field/selection_change/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/selection_change/pyproject.toml rename to sdk/python/examples/controls/material/text_field/selection_change/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/styled/main.py b/sdk/python/examples/controls/material/text_field/styled/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/styled/main.py rename to sdk/python/examples/controls/material/text_field/styled/main.py diff --git a/sdk/python/examples/controls/text_field/styled/pyproject.toml b/sdk/python/examples/controls/material/text_field/styled/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/styled/pyproject.toml rename to sdk/python/examples/controls/material/text_field/styled/pyproject.toml diff --git a/sdk/python/examples/controls/text_field/underlined_and_borderless/main.py b/sdk/python/examples/controls/material/text_field/underlined_and_borderless/main.py similarity index 100% rename from sdk/python/examples/controls/text_field/underlined_and_borderless/main.py rename to sdk/python/examples/controls/material/text_field/underlined_and_borderless/main.py diff --git a/sdk/python/examples/controls/text_field/underlined_and_borderless/pyproject.toml b/sdk/python/examples/controls/material/text_field/underlined_and_borderless/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/text_field/underlined_and_borderless/pyproject.toml rename to sdk/python/examples/controls/material/text_field/underlined_and_borderless/pyproject.toml diff --git a/sdk/python/examples/controls/time_picker/basic/main.py b/sdk/python/examples/controls/material/time_picker/basic/main.py similarity index 100% rename from sdk/python/examples/controls/time_picker/basic/main.py rename to sdk/python/examples/controls/material/time_picker/basic/main.py diff --git a/sdk/python/examples/controls/time_picker/basic/pyproject.toml b/sdk/python/examples/controls/material/time_picker/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/time_picker/basic/pyproject.toml rename to sdk/python/examples/controls/material/time_picker/basic/pyproject.toml diff --git a/sdk/python/examples/controls/time_picker/custom_locale/main.py b/sdk/python/examples/controls/material/time_picker/custom_locale/main.py similarity index 100% rename from sdk/python/examples/controls/time_picker/custom_locale/main.py rename to sdk/python/examples/controls/material/time_picker/custom_locale/main.py diff --git a/sdk/python/examples/controls/time_picker/custom_locale/pyproject.toml b/sdk/python/examples/controls/material/time_picker/custom_locale/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/time_picker/custom_locale/pyproject.toml rename to sdk/python/examples/controls/material/time_picker/custom_locale/pyproject.toml diff --git a/sdk/python/examples/controls/time_picker/hour_formats/main.py b/sdk/python/examples/controls/material/time_picker/hour_formats/main.py similarity index 100% rename from sdk/python/examples/controls/time_picker/hour_formats/main.py rename to sdk/python/examples/controls/material/time_picker/hour_formats/main.py diff --git a/sdk/python/examples/controls/time_picker/hour_formats/pyproject.toml b/sdk/python/examples/controls/material/time_picker/hour_formats/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/time_picker/hour_formats/pyproject.toml rename to sdk/python/examples/controls/material/time_picker/hour_formats/pyproject.toml diff --git a/sdk/python/examples/controls/ads/example_1/main.py b/sdk/python/examples/extensions/ads/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/ads/example_1/main.py rename to sdk/python/examples/extensions/ads/example_1/main.py diff --git a/sdk/python/examples/controls/ads/example_1/pyproject.toml b/sdk/python/examples/extensions/ads/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/ads/example_1/pyproject.toml rename to sdk/python/examples/extensions/ads/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/ads/media/example_1.gif b/sdk/python/examples/extensions/ads/media/example_1.gif similarity index 100% rename from sdk/python/examples/controls/ads/media/example_1.gif rename to sdk/python/examples/extensions/ads/media/example_1.gif diff --git a/sdk/python/examples/controls/camera/example_1/main.py b/sdk/python/examples/extensions/camera/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/camera/example_1/main.py rename to sdk/python/examples/extensions/camera/example_1/main.py diff --git a/sdk/python/examples/controls/camera/example_1/pyproject.toml b/sdk/python/examples/extensions/camera/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/camera/example_1/pyproject.toml rename to sdk/python/examples/extensions/camera/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/bar_chart/example_1/main.py b/sdk/python/examples/extensions/charts/bar_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/bar_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/bar_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/bar_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/bar_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/bar_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/bar_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/bar_chart/example_2/main.py b/sdk/python/examples/extensions/charts/bar_chart/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/charts/bar_chart/example_2/main.py rename to sdk/python/examples/extensions/charts/bar_chart/example_2/main.py diff --git a/sdk/python/examples/controls/charts/bar_chart/example_2/pyproject.toml b/sdk/python/examples/extensions/charts/bar_chart/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/bar_chart/example_2/pyproject.toml rename to sdk/python/examples/extensions/charts/bar_chart/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/charts/bar_chart/media/example_1.png b/sdk/python/examples/extensions/charts/bar_chart/media/example_1.png similarity index 100% rename from sdk/python/examples/controls/charts/bar_chart/media/example_1.png rename to sdk/python/examples/extensions/charts/bar_chart/media/example_1.png diff --git a/sdk/python/examples/controls/charts/bar_chart/media/example_2.gif b/sdk/python/examples/extensions/charts/bar_chart/media/example_2.gif similarity index 100% rename from sdk/python/examples/controls/charts/bar_chart/media/example_2.gif rename to sdk/python/examples/extensions/charts/bar_chart/media/example_2.gif diff --git a/sdk/python/examples/controls/charts/candlestick_chart/example_1/main.py b/sdk/python/examples/extensions/charts/candlestick_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/candlestick_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/candlestick_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/candlestick_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/candlestick_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/candlestick_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/candlestick_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/candlestick_chart/media/example_1.png b/sdk/python/examples/extensions/charts/candlestick_chart/media/example_1.png similarity index 100% rename from sdk/python/examples/controls/charts/candlestick_chart/media/example_1.png rename to sdk/python/examples/extensions/charts/candlestick_chart/media/example_1.png diff --git a/sdk/python/examples/controls/charts/line_chart/dashboard_declarative/main.py b/sdk/python/examples/extensions/charts/line_chart/dashboard_declarative/main.py similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/dashboard_declarative/main.py rename to sdk/python/examples/extensions/charts/line_chart/dashboard_declarative/main.py diff --git a/sdk/python/examples/controls/charts/line_chart/dashboard_declarative/pyproject.toml b/sdk/python/examples/extensions/charts/line_chart/dashboard_declarative/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/dashboard_declarative/pyproject.toml rename to sdk/python/examples/extensions/charts/line_chart/dashboard_declarative/pyproject.toml diff --git a/sdk/python/examples/controls/charts/line_chart/example_1/main.py b/sdk/python/examples/extensions/charts/line_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/line_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/line_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/line_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/line_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/line_chart/example_2/main.py b/sdk/python/examples/extensions/charts/line_chart/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/example_2/main.py rename to sdk/python/examples/extensions/charts/line_chart/example_2/main.py diff --git a/sdk/python/examples/controls/charts/line_chart/example_2/pyproject.toml b/sdk/python/examples/extensions/charts/line_chart/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/example_2/pyproject.toml rename to sdk/python/examples/extensions/charts/line_chart/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/charts/line_chart/media/example_1.gif b/sdk/python/examples/extensions/charts/line_chart/media/example_1.gif similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/media/example_1.gif rename to sdk/python/examples/extensions/charts/line_chart/media/example_1.gif diff --git a/sdk/python/examples/controls/charts/line_chart/media/example_2.gif b/sdk/python/examples/extensions/charts/line_chart/media/example_2.gif similarity index 100% rename from sdk/python/examples/controls/charts/line_chart/media/example_2.gif rename to sdk/python/examples/extensions/charts/line_chart/media/example_2.gif diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/animate/main.py b/sdk/python/examples/extensions/charts/matplotlib_chart/animate/main.py similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/animate/main.py rename to sdk/python/examples/extensions/charts/matplotlib_chart/animate/main.py diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/animate/pyproject.toml b/sdk/python/examples/extensions/charts/matplotlib_chart/animate/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/animate/pyproject.toml rename to sdk/python/examples/extensions/charts/matplotlib_chart/animate/pyproject.toml diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/bar_chart/main.py b/sdk/python/examples/extensions/charts/matplotlib_chart/bar_chart/main.py similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/bar_chart/main.py rename to sdk/python/examples/extensions/charts/matplotlib_chart/bar_chart/main.py diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/bar_chart/pyproject.toml b/sdk/python/examples/extensions/charts/matplotlib_chart/bar_chart/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/bar_chart/pyproject.toml rename to sdk/python/examples/extensions/charts/matplotlib_chart/bar_chart/pyproject.toml diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/handle_events/main.py b/sdk/python/examples/extensions/charts/matplotlib_chart/handle_events/main.py similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/handle_events/main.py rename to sdk/python/examples/extensions/charts/matplotlib_chart/handle_events/main.py diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/handle_events/pyproject.toml b/sdk/python/examples/extensions/charts/matplotlib_chart/handle_events/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/handle_events/pyproject.toml rename to sdk/python/examples/extensions/charts/matplotlib_chart/handle_events/pyproject.toml diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/media/3d.png b/sdk/python/examples/extensions/charts/matplotlib_chart/media/3d.png similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/media/3d.png rename to sdk/python/examples/extensions/charts/matplotlib_chart/media/3d.png diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/media/animate.png b/sdk/python/examples/extensions/charts/matplotlib_chart/media/animate.png similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/media/animate.png rename to sdk/python/examples/extensions/charts/matplotlib_chart/media/animate.png diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/media/bar_chart.png b/sdk/python/examples/extensions/charts/matplotlib_chart/media/bar_chart.png similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/media/bar_chart.png rename to sdk/python/examples/extensions/charts/matplotlib_chart/media/bar_chart.png diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/media/handle_events.png b/sdk/python/examples/extensions/charts/matplotlib_chart/media/handle_events.png similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/media/handle_events.png rename to sdk/python/examples/extensions/charts/matplotlib_chart/media/handle_events.png diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/media/toolbar.png b/sdk/python/examples/extensions/charts/matplotlib_chart/media/toolbar.png similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/media/toolbar.png rename to sdk/python/examples/extensions/charts/matplotlib_chart/media/toolbar.png diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/three_d/main.py b/sdk/python/examples/extensions/charts/matplotlib_chart/three_d/main.py similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/three_d/main.py rename to sdk/python/examples/extensions/charts/matplotlib_chart/three_d/main.py diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/three_d/pyproject.toml b/sdk/python/examples/extensions/charts/matplotlib_chart/three_d/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/three_d/pyproject.toml rename to sdk/python/examples/extensions/charts/matplotlib_chart/three_d/pyproject.toml diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/toolbar/main.py b/sdk/python/examples/extensions/charts/matplotlib_chart/toolbar/main.py similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/toolbar/main.py rename to sdk/python/examples/extensions/charts/matplotlib_chart/toolbar/main.py diff --git a/sdk/python/examples/controls/charts/matplotlib_chart/toolbar/pyproject.toml b/sdk/python/examples/extensions/charts/matplotlib_chart/toolbar/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/matplotlib_chart/toolbar/pyproject.toml rename to sdk/python/examples/extensions/charts/matplotlib_chart/toolbar/pyproject.toml diff --git a/sdk/python/examples/controls/charts/pie_chart/example_1/main.py b/sdk/python/examples/extensions/charts/pie_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/pie_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/pie_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/pie_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/pie_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/pie_chart/example_2/main.py b/sdk/python/examples/extensions/charts/pie_chart/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/example_2/main.py rename to sdk/python/examples/extensions/charts/pie_chart/example_2/main.py diff --git a/sdk/python/examples/controls/charts/pie_chart/example_2/pyproject.toml b/sdk/python/examples/extensions/charts/pie_chart/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/example_2/pyproject.toml rename to sdk/python/examples/extensions/charts/pie_chart/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/charts/pie_chart/example_3/main.py b/sdk/python/examples/extensions/charts/pie_chart/example_3/main.py similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/example_3/main.py rename to sdk/python/examples/extensions/charts/pie_chart/example_3/main.py diff --git a/sdk/python/examples/controls/charts/pie_chart/example_3/pyproject.toml b/sdk/python/examples/extensions/charts/pie_chart/example_3/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/example_3/pyproject.toml rename to sdk/python/examples/extensions/charts/pie_chart/example_3/pyproject.toml diff --git a/sdk/python/examples/controls/charts/pie_chart/media/example_1.gif b/sdk/python/examples/extensions/charts/pie_chart/media/example_1.gif similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/media/example_1.gif rename to sdk/python/examples/extensions/charts/pie_chart/media/example_1.gif diff --git a/sdk/python/examples/controls/charts/pie_chart/media/example_2.gif b/sdk/python/examples/extensions/charts/pie_chart/media/example_2.gif similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/media/example_2.gif rename to sdk/python/examples/extensions/charts/pie_chart/media/example_2.gif diff --git a/sdk/python/examples/controls/charts/pie_chart/media/example_3.gif b/sdk/python/examples/extensions/charts/pie_chart/media/example_3.gif similarity index 100% rename from sdk/python/examples/controls/charts/pie_chart/media/example_3.gif rename to sdk/python/examples/extensions/charts/pie_chart/media/example_3.gif diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_1/main.py b/sdk/python/examples/extensions/charts/plotly_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/plotly_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/plotly_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/plotly_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_2/main.py b/sdk/python/examples/extensions/charts/plotly_chart/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_2/main.py rename to sdk/python/examples/extensions/charts/plotly_chart/example_2/main.py diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_2/pyproject.toml b/sdk/python/examples/extensions/charts/plotly_chart/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_2/pyproject.toml rename to sdk/python/examples/extensions/charts/plotly_chart/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_3/main.py b/sdk/python/examples/extensions/charts/plotly_chart/example_3/main.py similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_3/main.py rename to sdk/python/examples/extensions/charts/plotly_chart/example_3/main.py diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_3/pyproject.toml b/sdk/python/examples/extensions/charts/plotly_chart/example_3/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_3/pyproject.toml rename to sdk/python/examples/extensions/charts/plotly_chart/example_3/pyproject.toml diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_4/main.py b/sdk/python/examples/extensions/charts/plotly_chart/example_4/main.py similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_4/main.py rename to sdk/python/examples/extensions/charts/plotly_chart/example_4/main.py diff --git a/sdk/python/examples/controls/charts/plotly_chart/example_4/pyproject.toml b/sdk/python/examples/extensions/charts/plotly_chart/example_4/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/example_4/pyproject.toml rename to sdk/python/examples/extensions/charts/plotly_chart/example_4/pyproject.toml diff --git a/sdk/python/examples/controls/charts/plotly_chart/media/example_1.png b/sdk/python/examples/extensions/charts/plotly_chart/media/example_1.png similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/media/example_1.png rename to sdk/python/examples/extensions/charts/plotly_chart/media/example_1.png diff --git a/sdk/python/examples/controls/charts/plotly_chart/media/example_2.png b/sdk/python/examples/extensions/charts/plotly_chart/media/example_2.png similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/media/example_2.png rename to sdk/python/examples/extensions/charts/plotly_chart/media/example_2.png diff --git a/sdk/python/examples/controls/charts/plotly_chart/media/example_3.png b/sdk/python/examples/extensions/charts/plotly_chart/media/example_3.png similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/media/example_3.png rename to sdk/python/examples/extensions/charts/plotly_chart/media/example_3.png diff --git a/sdk/python/examples/controls/charts/plotly_chart/media/example_4.png b/sdk/python/examples/extensions/charts/plotly_chart/media/example_4.png similarity index 100% rename from sdk/python/examples/controls/charts/plotly_chart/media/example_4.png rename to sdk/python/examples/extensions/charts/plotly_chart/media/example_4.png diff --git a/sdk/python/examples/controls/charts/radar_chart/example_1/main.py b/sdk/python/examples/extensions/charts/radar_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/radar_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/radar_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/radar_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/radar_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/radar_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/radar_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/radar_chart/media/example_1.png b/sdk/python/examples/extensions/charts/radar_chart/media/example_1.png similarity index 100% rename from sdk/python/examples/controls/charts/radar_chart/media/example_1.png rename to sdk/python/examples/extensions/charts/radar_chart/media/example_1.png diff --git a/sdk/python/examples/controls/charts/scatter_chart/example_1/main.py b/sdk/python/examples/extensions/charts/scatter_chart/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/charts/scatter_chart/example_1/main.py rename to sdk/python/examples/extensions/charts/scatter_chart/example_1/main.py diff --git a/sdk/python/examples/controls/charts/scatter_chart/example_1/pyproject.toml b/sdk/python/examples/extensions/charts/scatter_chart/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/charts/scatter_chart/example_1/pyproject.toml rename to sdk/python/examples/extensions/charts/scatter_chart/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/charts/scatter_chart/media/example_1.png b/sdk/python/examples/extensions/charts/scatter_chart/media/example_1.png similarity index 100% rename from sdk/python/examples/controls/charts/scatter_chart/media/example_1.png rename to sdk/python/examples/extensions/charts/scatter_chart/media/example_1.png diff --git a/sdk/python/examples/controls/code_editor/example_1/main.py b/sdk/python/examples/extensions/code_editor/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/code_editor/example_1/main.py rename to sdk/python/examples/extensions/code_editor/example_1/main.py diff --git a/sdk/python/examples/controls/code_editor/example_1/pyproject.toml b/sdk/python/examples/extensions/code_editor/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/code_editor/example_1/pyproject.toml rename to sdk/python/examples/extensions/code_editor/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/code_editor/example_2/main.py b/sdk/python/examples/extensions/code_editor/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/code_editor/example_2/main.py rename to sdk/python/examples/extensions/code_editor/example_2/main.py diff --git a/sdk/python/examples/controls/code_editor/example_2/pyproject.toml b/sdk/python/examples/extensions/code_editor/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/code_editor/example_2/pyproject.toml rename to sdk/python/examples/extensions/code_editor/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/code_editor/example_3/main.py b/sdk/python/examples/extensions/code_editor/example_3/main.py similarity index 100% rename from sdk/python/examples/controls/code_editor/example_3/main.py rename to sdk/python/examples/extensions/code_editor/example_3/main.py diff --git a/sdk/python/examples/controls/code_editor/example_3/pyproject.toml b/sdk/python/examples/extensions/code_editor/example_3/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/code_editor/example_3/pyproject.toml rename to sdk/python/examples/extensions/code_editor/example_3/pyproject.toml diff --git a/sdk/python/examples/controls/color_pickers/example_1/main.py b/sdk/python/examples/extensions/color_pickers/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_1/main.py rename to sdk/python/examples/extensions/color_pickers/example_1/main.py diff --git a/sdk/python/examples/controls/color_pickers/example_1/pyproject.toml b/sdk/python/examples/extensions/color_pickers/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_1/pyproject.toml rename to sdk/python/examples/extensions/color_pickers/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/color_pickers/example_2/main.py b/sdk/python/examples/extensions/color_pickers/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_2/main.py rename to sdk/python/examples/extensions/color_pickers/example_2/main.py diff --git a/sdk/python/examples/controls/color_pickers/example_2/pyproject.toml b/sdk/python/examples/extensions/color_pickers/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_2/pyproject.toml rename to sdk/python/examples/extensions/color_pickers/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/color_pickers/example_3/main.py b/sdk/python/examples/extensions/color_pickers/example_3/main.py similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_3/main.py rename to sdk/python/examples/extensions/color_pickers/example_3/main.py diff --git a/sdk/python/examples/controls/color_pickers/example_3/pyproject.toml b/sdk/python/examples/extensions/color_pickers/example_3/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_3/pyproject.toml rename to sdk/python/examples/extensions/color_pickers/example_3/pyproject.toml diff --git a/sdk/python/examples/controls/color_pickers/example_4/main.py b/sdk/python/examples/extensions/color_pickers/example_4/main.py similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_4/main.py rename to sdk/python/examples/extensions/color_pickers/example_4/main.py diff --git a/sdk/python/examples/controls/color_pickers/example_4/pyproject.toml b/sdk/python/examples/extensions/color_pickers/example_4/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_4/pyproject.toml rename to sdk/python/examples/extensions/color_pickers/example_4/pyproject.toml diff --git a/sdk/python/examples/controls/color_pickers/example_5/main.py b/sdk/python/examples/extensions/color_pickers/example_5/main.py similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_5/main.py rename to sdk/python/examples/extensions/color_pickers/example_5/main.py diff --git a/sdk/python/examples/controls/color_pickers/example_5/pyproject.toml b/sdk/python/examples/extensions/color_pickers/example_5/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_5/pyproject.toml rename to sdk/python/examples/extensions/color_pickers/example_5/pyproject.toml diff --git a/sdk/python/examples/controls/color_pickers/example_6/main.py b/sdk/python/examples/extensions/color_pickers/example_6/main.py similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_6/main.py rename to sdk/python/examples/extensions/color_pickers/example_6/main.py diff --git a/sdk/python/examples/controls/color_pickers/example_6/pyproject.toml b/sdk/python/examples/extensions/color_pickers/example_6/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/color_pickers/example_6/pyproject.toml rename to sdk/python/examples/extensions/color_pickers/example_6/pyproject.toml diff --git a/sdk/python/examples/controls/datatable2/example_1/main.py b/sdk/python/examples/extensions/datatable2/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/datatable2/example_1/main.py rename to sdk/python/examples/extensions/datatable2/example_1/main.py diff --git a/sdk/python/examples/controls/datatable2/example_1/pyproject.toml b/sdk/python/examples/extensions/datatable2/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/datatable2/example_1/pyproject.toml rename to sdk/python/examples/extensions/datatable2/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/datatable2/example_2/data.py b/sdk/python/examples/extensions/datatable2/example_2/data.py similarity index 100% rename from sdk/python/examples/controls/datatable2/example_2/data.py rename to sdk/python/examples/extensions/datatable2/example_2/data.py diff --git a/sdk/python/examples/controls/datatable2/example_2/main.py b/sdk/python/examples/extensions/datatable2/example_2/main.py similarity index 100% rename from sdk/python/examples/controls/datatable2/example_2/main.py rename to sdk/python/examples/extensions/datatable2/example_2/main.py diff --git a/sdk/python/examples/controls/datatable2/example_2/pyproject.toml b/sdk/python/examples/extensions/datatable2/example_2/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/datatable2/example_2/pyproject.toml rename to sdk/python/examples/extensions/datatable2/example_2/pyproject.toml diff --git a/sdk/python/examples/controls/datatable2/media/example_2.gif b/sdk/python/examples/extensions/datatable2/media/example_2.gif similarity index 100% rename from sdk/python/examples/controls/datatable2/media/example_2.gif rename to sdk/python/examples/extensions/datatable2/media/example_2.gif diff --git a/sdk/python/examples/controls/lottie/assets/sample.json b/sdk/python/examples/extensions/lottie/assets/sample.json similarity index 100% rename from sdk/python/examples/controls/lottie/assets/sample.json rename to sdk/python/examples/extensions/lottie/assets/sample.json diff --git a/sdk/python/examples/controls/lottie/example_1/assets/sample.json b/sdk/python/examples/extensions/lottie/example_1/assets/sample.json similarity index 100% rename from sdk/python/examples/controls/lottie/example_1/assets/sample.json rename to sdk/python/examples/extensions/lottie/example_1/assets/sample.json diff --git a/sdk/python/examples/controls/lottie/example_1/main.py b/sdk/python/examples/extensions/lottie/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/lottie/example_1/main.py rename to sdk/python/examples/extensions/lottie/example_1/main.py diff --git a/sdk/python/examples/controls/lottie/example_1/pyproject.toml b/sdk/python/examples/extensions/lottie/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/lottie/example_1/pyproject.toml rename to sdk/python/examples/extensions/lottie/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/map/basic/main.py b/sdk/python/examples/extensions/map/basic/main.py similarity index 100% rename from sdk/python/examples/controls/map/basic/main.py rename to sdk/python/examples/extensions/map/basic/main.py diff --git a/sdk/python/examples/controls/map/basic/pyproject.toml b/sdk/python/examples/extensions/map/basic/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/map/basic/pyproject.toml rename to sdk/python/examples/extensions/map/basic/pyproject.toml diff --git a/sdk/python/examples/controls/map/camera_controls/main.py b/sdk/python/examples/extensions/map/camera_controls/main.py similarity index 100% rename from sdk/python/examples/controls/map/camera_controls/main.py rename to sdk/python/examples/extensions/map/camera_controls/main.py diff --git a/sdk/python/examples/controls/map/camera_controls/pyproject.toml b/sdk/python/examples/extensions/map/camera_controls/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/map/camera_controls/pyproject.toml rename to sdk/python/examples/extensions/map/camera_controls/pyproject.toml diff --git a/sdk/python/examples/controls/map/idle_camera/main.py b/sdk/python/examples/extensions/map/idle_camera/main.py similarity index 100% rename from sdk/python/examples/controls/map/idle_camera/main.py rename to sdk/python/examples/extensions/map/idle_camera/main.py diff --git a/sdk/python/examples/controls/map/idle_camera/pyproject.toml b/sdk/python/examples/extensions/map/idle_camera/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/map/idle_camera/pyproject.toml rename to sdk/python/examples/extensions/map/idle_camera/pyproject.toml diff --git a/sdk/python/examples/controls/map/interaction_flags/main.py b/sdk/python/examples/extensions/map/interaction_flags/main.py similarity index 100% rename from sdk/python/examples/controls/map/interaction_flags/main.py rename to sdk/python/examples/extensions/map/interaction_flags/main.py diff --git a/sdk/python/examples/controls/map/interaction_flags/pyproject.toml b/sdk/python/examples/extensions/map/interaction_flags/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/map/interaction_flags/pyproject.toml rename to sdk/python/examples/extensions/map/interaction_flags/pyproject.toml diff --git a/sdk/python/examples/controls/map/multi_layers/main.py b/sdk/python/examples/extensions/map/multi_layers/main.py similarity index 100% rename from sdk/python/examples/controls/map/multi_layers/main.py rename to sdk/python/examples/extensions/map/multi_layers/main.py diff --git a/sdk/python/examples/controls/map/multi_layers/pyproject.toml b/sdk/python/examples/extensions/map/multi_layers/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/map/multi_layers/pyproject.toml rename to sdk/python/examples/extensions/map/multi_layers/pyproject.toml diff --git a/sdk/python/examples/controls/rive/example_1/assets/vehicles.riv b/sdk/python/examples/extensions/rive/example_1/assets/vehicles.riv similarity index 100% rename from sdk/python/examples/controls/rive/example_1/assets/vehicles.riv rename to sdk/python/examples/extensions/rive/example_1/assets/vehicles.riv diff --git a/sdk/python/examples/controls/rive/example_1/main.py b/sdk/python/examples/extensions/rive/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/rive/example_1/main.py rename to sdk/python/examples/extensions/rive/example_1/main.py diff --git a/sdk/python/examples/controls/rive/example_1/pyproject.toml b/sdk/python/examples/extensions/rive/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/rive/example_1/pyproject.toml rename to sdk/python/examples/extensions/rive/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/video/example_1/main.py b/sdk/python/examples/extensions/video/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/video/example_1/main.py rename to sdk/python/examples/extensions/video/example_1/main.py diff --git a/sdk/python/examples/controls/video/example_1/pyproject.toml b/sdk/python/examples/extensions/video/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/video/example_1/pyproject.toml rename to sdk/python/examples/extensions/video/example_1/pyproject.toml diff --git a/sdk/python/examples/controls/webview/example_1/main.py b/sdk/python/examples/extensions/webview/example_1/main.py similarity index 100% rename from sdk/python/examples/controls/webview/example_1/main.py rename to sdk/python/examples/extensions/webview/example_1/main.py diff --git a/sdk/python/examples/controls/webview/example_1/pyproject.toml b/sdk/python/examples/extensions/webview/example_1/pyproject.toml similarity index 100% rename from sdk/python/examples/controls/webview/example_1/pyproject.toml rename to sdk/python/examples/extensions/webview/example_1/pyproject.toml diff --git a/sdk/python/packages/flet-ads/README.md b/sdk/python/packages/flet-ads/README.md index c95c54ea46..2d00f8afa9 100644 --- a/sdk/python/packages/flet-ads/README.md +++ b/sdk/python/packages/flet-ads/README.md @@ -39,4 +39,4 @@ To install the `flet-ads` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/ads). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/ads). diff --git a/sdk/python/packages/flet-charts/README.md b/sdk/python/packages/flet-charts/README.md index 4c32914974..43911767a7 100644 --- a/sdk/python/packages/flet-charts/README.md +++ b/sdk/python/packages/flet-charts/README.md @@ -39,7 +39,7 @@ To install the `flet-charts` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/charts). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/charts). ### Available charts diff --git a/sdk/python/packages/flet-code-editor/README.md b/sdk/python/packages/flet-code-editor/README.md index 8412500778..cb9318b7fe 100644 --- a/sdk/python/packages/flet-code-editor/README.md +++ b/sdk/python/packages/flet-code-editor/README.md @@ -31,4 +31,4 @@ To install the `flet-code-editor` package and add it to your project dependencie ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/examples/controls/code_editor). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/code_editor). diff --git a/sdk/python/packages/flet-color-pickers/README.md b/sdk/python/packages/flet-color-pickers/README.md index bc699eb339..9746f01a2c 100644 --- a/sdk/python/packages/flet-color-pickers/README.md +++ b/sdk/python/packages/flet-color-pickers/README.md @@ -39,4 +39,4 @@ To install the `flet-color-pickers` package and add it to your project dependenc ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/color_pickers). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/color_pickers). diff --git a/sdk/python/packages/flet-datatable2/README.md b/sdk/python/packages/flet-datatable2/README.md index 6e68eced38..93e7e56752 100644 --- a/sdk/python/packages/flet-datatable2/README.md +++ b/sdk/python/packages/flet-datatable2/README.md @@ -42,4 +42,4 @@ To install the `flet-datatable2` package and add it to your project dependencies ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/examples/controls/datatable2). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/datatable2). diff --git a/sdk/python/packages/flet-lottie/README.md b/sdk/python/packages/flet-lottie/README.md index 26fbbed264..c3fa638c11 100644 --- a/sdk/python/packages/flet-lottie/README.md +++ b/sdk/python/packages/flet-lottie/README.md @@ -39,4 +39,4 @@ To install the `flet-lottie` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/lottie). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/lottie). diff --git a/sdk/python/packages/flet-map/README.md b/sdk/python/packages/flet-map/README.md index 78f9f831f6..5f2c57c8b8 100644 --- a/sdk/python/packages/flet-map/README.md +++ b/sdk/python/packages/flet-map/README.md @@ -39,4 +39,4 @@ To install the `flet-map` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/map). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/map). diff --git a/sdk/python/packages/flet-rive/README.md b/sdk/python/packages/flet-rive/README.md index 8d160721fa..94bc36e0c1 100644 --- a/sdk/python/packages/flet-rive/README.md +++ b/sdk/python/packages/flet-rive/README.md @@ -39,4 +39,4 @@ To install the `flet-rive` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/rive). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/rive). diff --git a/sdk/python/packages/flet-video/README.md b/sdk/python/packages/flet-video/README.md index 1a605b85fd..701829f16e 100644 --- a/sdk/python/packages/flet-video/README.md +++ b/sdk/python/packages/flet-video/README.md @@ -53,4 +53,4 @@ To install the `flet-video` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/controls/video). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/video). diff --git a/sdk/python/packages/flet-webview/README.md b/sdk/python/packages/flet-webview/README.md index 56c42c0204..862557c241 100644 --- a/sdk/python/packages/flet-webview/README.md +++ b/sdk/python/packages/flet-webview/README.md @@ -40,4 +40,4 @@ To install the `flet-webview` package and add it to your project dependencies: ### Examples -For examples, see [these](https://github.com/flet-dev/flet/tree/main/examples/controls/webview). +For examples, see [these](https://github.com/flet-dev/flet/tree/main/sdk/python/examples/extensions/webview). diff --git a/sdk/python/packages/flet/integration_tests/assets/assets/icon-192.png b/sdk/python/packages/flet/integration_tests/assets/assets/icon-192.png new file mode 100644 index 0000000000..65da3b9571 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/assets/assets/icon-192.png differ diff --git a/sdk/python/packages/flet/integration_tests/controls/core/golden/macos/canvas/draw_url_image.png b/sdk/python/packages/flet/integration_tests/controls/core/golden/macos/canvas/draw_url_image.png index 42e220fea6..e188f98943 100644 Binary files a/sdk/python/packages/flet/integration_tests/controls/core/golden/macos/canvas/draw_url_image.png and b/sdk/python/packages/flet/integration_tests/controls/core/golden/macos/canvas/draw_url_image.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/core/__init__.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/__init__.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/__init__.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/__init__.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/canvas/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/canvas/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/canvas/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/canvas/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/column/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/column/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/column/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/column/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/container/nested_themes_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/container/nested_themes_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/container/nested_themes_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/container/nested_themes_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/container/nested_themes_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/container/nested_themes_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/container/nested_themes_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/container/nested_themes_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/container/size_aware.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/container/size_aware.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/container/size_aware.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/container/size_aware.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_loose_chat_messages.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_loose_chat_messages.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_loose_chat_messages.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_loose_chat_messages.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_row_equal_split.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_row_equal_split.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_row_equal_split.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_row_equal_split.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_row_proportional_1_3_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_row_proportional_1_3_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_row_proportional_1_3_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_row_proportional_1_3_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_textfield_in_row.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_textfield_in_row.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/control/expand_textfield_in_row.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/control/expand_textfield_in_row.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/grid_view/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/grid_view/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/grid_view/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/grid_view/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/hero/basic.gif b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/hero/basic.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/hero/basic.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/hero/basic.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/hero/basic_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/hero/basic_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/hero/basic_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/hero/basic_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/hero/basic_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/hero/basic_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/hero/basic_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/hero/basic_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/icon/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/icon/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/icon/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/icon/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/image/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/image/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/image/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/image/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip_after_x.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip_after_x.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip_after_x.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip_after_x.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip_after_y.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip_after_y.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip_after_y.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip_after_y.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip_initial.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/flip_initial.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/flip_initial.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/matrix4_transform.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/matrix4_transform.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/layout_control/matrix4_transform.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/layout_control/matrix4_transform.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/list_view/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/list_view/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/list_view/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/list_view/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/markdown/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/markdown/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/markdown/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/markdown/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/pagelet/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/pagelet/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/pagelet/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/pagelet/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/pagelet/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/pagelet/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/pagelet/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/pagelet/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/placeholder/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/placeholder/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/placeholder/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/placeholder/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/placeholder/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/placeholder/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/placeholder/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/placeholder/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic.gif b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic_3.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic_3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/basic_3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/basic_3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint.gif b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint_3.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint_3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/custom_breakpoint_3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/custom_breakpoint_3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/responsive_row/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/responsive_row/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/rotated_box/rotated_box.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/rotated_box/rotated_box.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/rotated_box/rotated_box.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/rotated_box/rotated_box.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/alignment.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/alignment.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/alignment.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/alignment.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/row_spacing_adjustment.gif b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/row_spacing_adjustment.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/row_spacing_adjustment.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/row_spacing_adjustment.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/spacing1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/spacing1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/spacing1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/spacing1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/spacing2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/spacing2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/spacing2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/spacing2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/spacing3.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/spacing3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/spacing3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/spacing3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/vertical_alignment.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/vertical_alignment.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/vertical_alignment.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/vertical_alignment.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap3.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap_adjustment.gif b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap_adjustment.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/row/wrap_adjustment.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/row/wrap_adjustment.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/fade_out_image_bottom.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/fade_out_image_bottom.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/fade_out_image_bottom.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/fade_out_image_bottom.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/linear_and_radial_gradients.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/linear_and_radial_gradients.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/linear_and_radial_gradients.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/linear_and_radial_gradients.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/pink_radial_glow.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/pink_radial_glow.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shader_mask/pink_radial_glow.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shader_mask/pink_radial_glow.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/basic_placeholder.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/basic_placeholder.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/basic_placeholder.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/basic_placeholder.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/custom_gradient.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/custom_gradient.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/custom_gradient.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/custom_gradient.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs.gif b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_0.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_0.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_0.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_0.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_3.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_4.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_4.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_4.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_4.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_5.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_5.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_5.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_5.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_6.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_6.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_6.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_6.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_7.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_7.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_7.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_7.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_8.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_8.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_8.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_8.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_9.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_9.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/shimmer/image_for_docs_9.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/shimmer/image_for_docs_9.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/stack/absolute_positioning.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/stack/absolute_positioning.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/stack/absolute_positioning.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/stack/absolute_positioning.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/stack/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/stack/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/stack/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/stack/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/stack/online_avatar.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/stack/online_avatar.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/stack/online_avatar.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/stack/online_avatar.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/text/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/text/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/text/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/text/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/vertical_divider/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/vertical_divider/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/vertical_divider/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/vertical_divider/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/vertical_divider/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/vertical_divider/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/vertical_divider/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/vertical_divider/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/window_drag_area/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/window_drag_area/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/window_drag_area/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/window_drag_area/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/golden/macos/window_drag_area/no_frame_window.png b/sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/window_drag_area/no_frame_window.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/golden/macos/window_drag_area/no_frame_window.png rename to sdk/python/packages/flet/integration_tests/examples/controls/core/golden/macos/window_drag_area/no_frame_window.png diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_canvas.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_canvas.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_canvas.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_canvas.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_column.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_column.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_column.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_column.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_container.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_container.py similarity index 89% rename from sdk/python/packages/flet/integration_tests/examples/core/test_container.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_container.py index cb3b4fe70f..f16da8e81d 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_container.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_container.py @@ -1,8 +1,8 @@ import pytest -import examples.controls.container.nested_themes_1.main as nested_themes_1 -import examples.controls.container.nested_themes_2.main as nested_themes_2 -import examples.controls.container.size_aware.main as size_aware +import examples.controls.core.container.nested_themes_1.main as nested_themes_1 +import examples.controls.core.container.nested_themes_2.main as nested_themes_2 +import examples.controls.core.container.size_aware.main as size_aware import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_control.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_control.py similarity index 86% rename from sdk/python/packages/flet/integration_tests/examples/core/test_control.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_control.py index b306dd9ede..170e5a6558 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_control.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_control.py @@ -1,16 +1,16 @@ import pytest import flet.testing as ftt -from examples.controls.control.expand_loose_chat_messages import ( +from examples.controls.core.control.expand_loose_chat_messages import ( main as expand_loose_chat_messages_main, ) -from examples.controls.control.expand_row_equal_split import ( +from examples.controls.core.control.expand_row_equal_split import ( main as expand_row_equal_split_main, ) -from examples.controls.control.expand_row_proportional_1_3_1 import ( +from examples.controls.core.control.expand_row_proportional_1_3_1 import ( main as expand_row_proportional_1_3_1_main, ) -from examples.controls.control.expand_textfield_in_row import ( +from examples.controls.core.control.expand_textfield_in_row import ( main as expand_textfield_in_row_main, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_grid_view.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_grid_view.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_grid_view.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_grid_view.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_hero.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_hero.py similarity index 96% rename from sdk/python/packages/flet/integration_tests/examples/core/test_hero.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_hero.py index 2ef30273b7..78c4c7742e 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_hero.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_hero.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.hero.basic import main as basic +from examples.controls.core.hero.basic import main as basic @pytest.mark.parametrize( diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_icon.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_icon.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_icon.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_icon.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_image.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_image.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_image.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_image.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_layout_control.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_layout_control.py similarity index 92% rename from sdk/python/packages/flet/integration_tests/examples/core/test_layout_control.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_layout_control.py index 6cce09452e..e3d199d166 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_layout_control.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_layout_control.py @@ -1,8 +1,10 @@ import pytest import flet.testing as ftt -from examples.controls.layout_control.flip import main as flip -from examples.controls.layout_control.matrix4_transform import main as matrix4_transform +from examples.controls.core.layout_control.flip import main as flip +from examples.controls.core.layout_control.matrix4_transform import ( + main as matrix4_transform, +) @pytest.mark.parametrize( diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_list_view.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_list_view.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_list_view.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_list_view.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_markdown.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_markdown.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_markdown.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_markdown.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_pagelet.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_pagelet.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/core/test_pagelet.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_pagelet.py index bd8e3b5323..0e1cccbcac 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_pagelet.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_pagelet.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.pagelet.basic.main import main as basic +from examples.controls.core.pagelet.basic.main import main as basic @pytest.mark.asyncio(loop_scope="function") diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_placeholder.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_placeholder.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/core/test_placeholder.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_placeholder.py index c8893949f7..fbd33b72ea 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_placeholder.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_placeholder.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.placeholder.basic.main import main as basic +from examples.controls.core.placeholder.basic.main import main as basic @pytest.mark.asyncio(loop_scope="function") diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_responsive_row.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_responsive_row.py similarity index 96% rename from sdk/python/packages/flet/integration_tests/examples/core/test_responsive_row.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_responsive_row.py index 850d816ef5..f148e6b155 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_responsive_row.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_responsive_row.py @@ -4,8 +4,8 @@ import flet as ft import flet.testing as ftt -from examples.controls.responsive_row.basic.main import main as basic -from examples.controls.responsive_row.custom_breakpoint.main import ( +from examples.controls.core.responsive_row.basic.main import main as basic +from examples.controls.core.responsive_row.custom_breakpoint.main import ( main as custom_breakpoint, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_rotated_box.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_rotated_box.py similarity index 89% rename from sdk/python/packages/flet/integration_tests/examples/core/test_rotated_box.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_rotated_box.py index d66b3af6c8..88f6717431 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_rotated_box.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_rotated_box.py @@ -1,7 +1,7 @@ import pytest import flet.testing as ftt -from examples.controls.rotated_box.basic.main import main as basic +from examples.controls.core.rotated_box.basic.main import main as basic @pytest.mark.parametrize( diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_row.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_row.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/core/test_row.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_row.py index 1055d707fb..074e132daf 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_row.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_row.py @@ -1,9 +1,9 @@ import pytest -import examples.controls.row.alignment.main as alignment -import examples.controls.row.spacing.main as spacing -import examples.controls.row.vertical_alignment.main as vertical_alignment -import examples.controls.row.wrap.main as wrap +import examples.controls.core.row.alignment.main as alignment +import examples.controls.core.row.spacing.main as spacing +import examples.controls.core.row.vertical_alignment.main as vertical_alignment +import examples.controls.core.row.wrap.main as wrap import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_shader_mask.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_shader_mask.py similarity index 98% rename from sdk/python/packages/flet/integration_tests/examples/core/test_shader_mask.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_shader_mask.py index 761fc6aa74..68f3c6487c 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_shader_mask.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_shader_mask.py @@ -1,12 +1,16 @@ import pytest -import examples.controls.shader_mask.fade_out_image_bottom.main as fade_out_image_bottom -import examples.controls.shader_mask.pink_radial_glow.main as pink_radial_glow import flet as ft import flet.testing as ftt -from examples.controls.shader_mask.linear_and_radial_gradients import ( +from examples.controls.core.shader_mask.fade_out_image_bottom import ( + main as fade_out_image_bottom, +) +from examples.controls.core.shader_mask.linear_and_radial_gradients import ( main as linear_gradients, ) +from examples.controls.core.shader_mask.pink_radial_glow import ( + main as pink_radial_glow, +) @pytest.mark.asyncio(loop_scope="function") diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_shimmer.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_shimmer.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/core/test_shimmer.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_shimmer.py index 97712a80de..bf04598528 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_shimmer.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_shimmer.py @@ -1,7 +1,7 @@ import pytest -import examples.controls.shimmer.basic_placeholder.main as basic_placeholder -import examples.controls.shimmer.custom_gradient.main as custom_gradient +import examples.controls.core.shimmer.basic_placeholder.main as basic_placeholder +import examples.controls.core.shimmer.custom_gradient.main as custom_gradient import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_stack.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_stack.py similarity index 98% rename from sdk/python/packages/flet/integration_tests/examples/core/test_stack.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_stack.py index 54e929ec84..188dd85e46 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_stack.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_stack.py @@ -1,7 +1,7 @@ import pytest -import examples.controls.stack.absolute_positioning.main as absolute_positioning -import examples.controls.stack.online_avatar.main as online_avatar +import examples.controls.core.stack.absolute_positioning.main as absolute_positioning +import examples.controls.core.stack.online_avatar.main as online_avatar import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_text.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_text.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/core/test_text.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_text.py diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_vertical_divider.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_vertical_divider.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/core/test_vertical_divider.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_vertical_divider.py index 3df5c67d47..f5cd7a9072 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_vertical_divider.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_vertical_divider.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.vertical_divider.basic.main as basic +import examples.controls.core.vertical_divider.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/core/test_window_drag_area.py b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_window_drag_area.py similarity index 92% rename from sdk/python/packages/flet/integration_tests/examples/core/test_window_drag_area.py rename to sdk/python/packages/flet/integration_tests/examples/controls/core/test_window_drag_area.py index 4195ce672f..323e194ddd 100644 --- a/sdk/python/packages/flet/integration_tests/examples/core/test_window_drag_area.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/core/test_window_drag_area.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.window_drag_area.no_frame_window.main as no_frame_window +import examples.controls.core.window_drag_area.no_frame_window.main as no_frame_window import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_action_sheet/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_action_sheet/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_action_sheet/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_action_sheet/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_activity_indicator/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_activity_indicator/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_activity_indicator/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_activity_indicator/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_checkbox/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_checkbox/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_checkbox/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_checkbox/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_filled_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_filled_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_filled_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_filled_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_list_tile/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_list_tile/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_list_tile/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_list_tile/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_radio/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_radio/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_radio/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_radio/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_segmented_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_segmented_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_segmented_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_segmented_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_slider/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_slider/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_slider/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_slider/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_sliding_segmented_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_sliding_segmented_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_sliding_segmented_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_sliding_segmented_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_switch/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_switch/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_switch/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_switch/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_textfield/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_textfield/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_textfield/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_textfield/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_timer_picker/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_timer_picker/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_timer_picker/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_timer_picker/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_timer_picker/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_timer_picker/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_timer_picker/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_timer_picker/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_tinted_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_tinted_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/golden/macos/cupertino_tinted_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/golden/macos/cupertino_tinted_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_action_sheet.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_action_sheet.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_action_sheet.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_action_sheet.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_activity_indicator.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_activity_indicator.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_activity_indicator.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_activity_indicator.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_checkbox.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_checkbox.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_checkbox.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_checkbox.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_filled_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_filled_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_filled_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_filled_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_list_tile.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_list_tile.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_list_tile.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_list_tile.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_radio.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_radio.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_radio.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_radio.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_segmented_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_segmented_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_segmented_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_segmented_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_slider.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_slider.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_slider.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_slider.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_sliding_segmented_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_sliding_segmented_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_sliding_segmented_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_sliding_segmented_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_switch.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_switch.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_switch.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_switch.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_textfield.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_textfield.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_textfield.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_textfield.py diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_timer_picker.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_timer_picker.py similarity index 93% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_timer_picker.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_timer_picker.py index 3ff4f5c72f..58e4b96be8 100644 --- a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_timer_picker.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_timer_picker.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.cupertino_timer_picker.basic.main as basic +import examples.controls.cupertino.cupertino_timer_picker.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_tinted_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_tinted_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/cupertino/test_cupertino_tinted_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/cupertino/test_cupertino_tinted_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/alert_dialog_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/alert_dialog_flow.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/alert_dialog_flow.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/alert_dialog_flow.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/before_click.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/before_click.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/before_click.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/modal_dialog.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/modal_dialog.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/modal_dialog.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/modal_dialog.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/non_modal_dialog.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/non_modal_dialog.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/alert_dialog/non_modal_dialog.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/alert_dialog/non_modal_dialog.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/app_bar_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/app_bar_flow.gif new file mode 100644 index 0000000000..22a6a1c32e Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/app_bar_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/before_click.png new file mode 100644 index 0000000000..51a8b9eb8a Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/before_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/checked_item.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/checked_item.png new file mode 100644 index 0000000000..69ef56b80d Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/checked_item.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/checked_item_reopened.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/checked_item_reopened.png new file mode 100644 index 0000000000..5183d20a22 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/checked_item_reopened.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/hover_checked_item.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/hover_checked_item.png new file mode 100644 index 0000000000..7e778cd774 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/hover_checked_item.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/hover_popup.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/hover_popup.png new file mode 100644 index 0000000000..ff276090d5 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/hover_popup.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/app_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/app_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/popup_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/popup_open.png new file mode 100644 index 0000000000..aa69f44acf Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/popup_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_after_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_after_click.png new file mode 100644 index 0000000000..29ebcf3eed Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_after_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_before_click.png new file mode 100644 index 0000000000..8d85cfabd8 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_before_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_hover.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_hover.png new file mode 100644 index 0000000000..c4368a44db Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_hover.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_toggle_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_toggle_flow.gif new file mode 100644 index 0000000000..56a8a2f957 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/app_bar/theme_mode_toggle_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/after_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/after_click.png new file mode 100644 index 0000000000..468a7897aa Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/after_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/auto_complete_basic_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/auto_complete_basic_flow.gif new file mode 100644 index 0000000000..36640827b6 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/auto_complete_basic_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/before_click.png new file mode 100644 index 0000000000..47db9fea78 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/auto_complete/before_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/badge/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/badge/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/badge/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/badge/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/badge/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/badge/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/badge/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/badge/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/after_ignore.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/after_ignore.png new file mode 100644 index 0000000000..7145b7e89e Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/after_ignore.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/banner_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/banner_flow.gif new file mode 100644 index 0000000000..e2e5254092 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/banner_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/banner_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/banner_open.png new file mode 100644 index 0000000000..921b8682b3 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/banner_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/before_click.png new file mode 100644 index 0000000000..f84d581ecf Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/before_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/hover_ignore.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/hover_ignore.png new file mode 100644 index 0000000000..63510011c9 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/hover_ignore.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/hover_show_banner.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/hover_show_banner.png new file mode 100644 index 0000000000..cb9786fd07 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/hover_show_banner.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/banner/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/banner/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/banner/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_app_bar/border_radius.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_app_bar/border_radius.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_app_bar/border_radius.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_app_bar/border_radius.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_app_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_app_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_app_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_app_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_app_bar/notched_fab.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_app_bar/notched_fab.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_app_bar/notched_fab.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_app_bar/notched_fab.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/basic.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/basic.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/basic.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/basic.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/basic_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/basic_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/basic_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/basic_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/basic_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/basic_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/basic_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/basic_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_3.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_4.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_4.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_4.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_4.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_5.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_5.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/fullscreen_5.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/fullscreen_5.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/bottom_sheet/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/bottom_sheet/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/animate_on_hover_hovered.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/animate_on_hover_hovered.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/animate_on_hover_hovered.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/animate_on_hover_hovered.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/animate_on_hover_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/animate_on_hover_initial.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/animate_on_hover_initial.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/animate_on_hover_initial.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/button_shapes.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/button_shapes.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/button_shapes.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/button_shapes.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/custom_content.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/custom_content.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/custom_content.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/custom_content.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/handling_clicks.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/handling_clicks.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/handling_clicks.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/handling_clicks.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/icons.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/icons.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/icons.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/icons.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/styled_hovered.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/styled_hovered.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/styled_hovered.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/styled_hovered.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/styled_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/styled_initial.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/button/styled_initial.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/button/styled_initial.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/card/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/card/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/card/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/card/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/card/music_info.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/card/music_info.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/card/music_info.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/card/music_info.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/handling_events.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/handling_events.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/handling_events.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/handling_events.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes.png new file mode 100644 index 0000000000..8a0c4a9d1a Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_flow.gif new file mode 100644 index 0000000000..ac030590ee Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_hovered.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_hovered.png new file mode 100644 index 0000000000..406b3f0c07 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_hovered.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_selected.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_selected.png new file mode 100644 index 0000000000..55bc4334cd Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/checkbox/styled_checkboxes_selected.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/assist_chips.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/assist_chips.png new file mode 100644 index 0000000000..c4392dcfb8 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/assist_chips.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/filter_chips.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/filter_chips.png new file mode 100644 index 0000000000..826538b339 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/filter_chips.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/chip/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/chip/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/chip/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/circle_avatar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/circle_avatar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/circle_avatar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/circle_avatar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/circle_avatar/user_avatars.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/circle_avatar/user_avatars.png new file mode 100644 index 0000000000..dbbc589896 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/circle_avatar/user_avatars.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/after_double_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/after_double_click.png new file mode 100644 index 0000000000..58bb14ace7 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/after_double_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/after_tap.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/after_tap.png new file mode 100644 index 0000000000..efacb87f33 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/after_tap.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/before_click.png new file mode 100644 index 0000000000..a4c701ef2d Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/before_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/before_double_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/before_double_click.png new file mode 100644 index 0000000000..a5487b7cc2 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/before_double_click.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/custom_trigger_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/custom_trigger_flow.gif new file mode 100644 index 0000000000..2ef0ed49ac Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/custom_trigger_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/context_menu/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/context_menu/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/left_click_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/left_click_open.png new file mode 100644 index 0000000000..efacb87f33 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/left_click_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/context_menu/programmatic_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/programmatic_open.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/context_menu/programmatic_open.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/programmatic_open.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/right_click_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/right_click_open.png new file mode 100644 index 0000000000..c414481a83 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/right_click_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/triggers_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/triggers_flow.gif new file mode 100644 index 0000000000..10d942246b Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/context_menu/triggers_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/adaptive_row_heights.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/adaptive_row_heights.png new file mode 100644 index 0000000000..6e7b4af2ac Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/adaptive_row_heights.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/datatable/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/datatable/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_click_column_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_click_column_1.png new file mode 100644 index 0000000000..f46370f434 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_click_column_1.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_click_row_a.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_click_row_a.png new file mode 100644 index 0000000000..cc4f17fedc Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_click_row_a.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_flow.gif new file mode 100644 index 0000000000..b016f3033f Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_hover_column_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_hover_column_1.png new file mode 100644 index 0000000000..3c0cf0709f Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_hover_column_1.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_hover_row_a.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_hover_row_a.png new file mode 100644 index 0000000000..66115c7a58 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_hover_row_a.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_initial.png new file mode 100644 index 0000000000..62ca2ab1db Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/handling_events_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/datatable/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/datatable/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/datatable/sortable_and_selectable.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/sortable_and_selectable.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/datatable/sortable_and_selectable.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/sortable_and_selectable.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_after_column_spacing_drag.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_after_column_spacing_drag.png new file mode 100644 index 0000000000..cd55e00423 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_after_column_spacing_drag.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_after_horizontal_margin_drag.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_after_horizontal_margin_drag.png new file mode 100644 index 0000000000..c80bb75fe0 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_after_horizontal_margin_drag.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_compact_preset.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_compact_preset.png new file mode 100644 index 0000000000..f183d16ee5 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_compact_preset.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_flow.gif new file mode 100644 index 0000000000..35d0722cf3 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_compact_preset.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_compact_preset.png new file mode 100644 index 0000000000..70151eb4c6 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_compact_preset.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_reset.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_reset.png new file mode 100644 index 0000000000..130ae0d218 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_reset.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_spacious_preset.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_spacious_preset.png new file mode 100644 index 0000000000..3e2773e5c1 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_hover_spacious_preset.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_initial.png new file mode 100644 index 0000000000..8a4a0607d1 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_reset.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_reset.png new file mode 100644 index 0000000000..dbaf1001dd Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_reset.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_spacious_preset.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_spacious_preset.png new file mode 100644 index 0000000000..29a4e8fdc0 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/datatable/spacing_spacious_preset.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/basic.png new file mode 100644 index 0000000000..aa22a7de46 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/basic.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/custom_locale.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/custom_locale.png new file mode 100644 index 0000000000..60cc9f42c2 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/custom_locale.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/image_for_docs.png new file mode 100644 index 0000000000..77a998cfe7 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_picker/image_for_docs.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/basic.png new file mode 100644 index 0000000000..f4e199f93e Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/basic.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/custom_locale.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/custom_locale.png new file mode 100644 index 0000000000..98f4143da1 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/custom_locale.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/image_for_docs.png new file mode 100644 index 0000000000..8361c84847 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/date_range_picker/image_for_docs.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/divider/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/divider/basic.png new file mode 100644 index 0000000000..859c28e420 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/divider/basic.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/divider/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/divider/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/divider/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/divider/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/color_selection_with_filtering_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/color_selection_with_filtering_flow.gif new file mode 100644 index 0000000000..18cace93e5 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/color_selection_with_filtering_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/declarative_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/declarative_flow.gif new file mode 100644 index 0000000000..0f7379e308 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/declarative_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/icon_selection_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/icon_selection_flow.gif new file mode 100644 index 0000000000..fd8443a180 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/icon_selection_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/dropdown/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/image_for_docs.png similarity index 98% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/dropdown/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/image_for_docs.png index 6258924431..c493489116 100644 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/dropdown/image_for_docs.png and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/image_for_docs.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/select_and_change_events_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/select_and_change_events_flow.gif new file mode 100644 index 0000000000..be12bd5be0 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/select_and_change_events_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/styled_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/styled_flow.gif new file mode 100644 index 0000000000..088e142da7 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown/styled_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/dropdown_m2/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown_m2/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/dropdown_m2/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/dropdown_m2/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_panel/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_panel/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_flow.gif new file mode 100644 index 0000000000..58b0433f1b Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_header_placeholder_closed.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_header_placeholder_closed.png new file mode 100644 index 0000000000..adca7bead0 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_header_placeholder_closed.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_header_placeholder_opened.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_header_placeholder_opened.png new file mode 100644 index 0000000000..5d69f65206 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_header_placeholder_opened.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_delete_hovered.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_delete_hovered.png new file mode 100644 index 0000000000..3010127165 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_delete_hovered.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_deleted.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_deleted.png new file mode 100644 index 0000000000..74743d2956 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_deleted.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_opened.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_opened.png new file mode 100644 index 0000000000..f53d879db7 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/basic_panel_0_opened.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_panel_list/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_panel_list/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/scrollable.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/scrollable.png new file mode 100644 index 0000000000..aa3808b862 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_panel_list/scrollable.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_tile/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_tile/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_closed.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_closed.png new file mode 100644 index 0000000000..ecd8e2f2d4 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_closed.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_flow.gif new file mode 100644 index 0000000000..758f997097 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_opened.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_opened.png new file mode 100644 index 0000000000..6c797fdd66 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/borders_opened.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/custom_animations_default.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/custom_animations_default.gif new file mode 100644 index 0000000000..fa4331a825 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/custom_animations_default.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_tile/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/image_for_docs.png similarity index 99% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_tile/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/image_for_docs.png index 0670f76991..2957fff48a 100644 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/expansion_tile/image_for_docs.png and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/image_for_docs.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_collapsed.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_collapsed.png new file mode 100644 index 0000000000..65459bac66 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_collapsed.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_flow.gif new file mode 100644 index 0000000000..29d95d15a9 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_flow.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_initial.png new file mode 100644 index 0000000000..1dffb83504 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/programmatic_expansion_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/theme_mode_toggle_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/theme_mode_toggle_initial.png new file mode 100644 index 0000000000..95954ea52f Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/expansion_tile/theme_mode_toggle_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_button/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_button/basic.png new file mode 100644 index 0000000000..0ea095c2c4 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_button/basic.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_button/image_for_docs.png new file mode 100644 index 0000000000..44387f2791 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_button/image_for_docs.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_icon_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_icon_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_icon_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_icon_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_button/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_button/basic.png new file mode 100644 index 0000000000..70fc685afa Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_button/basic.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_button/image_for_docs.png new file mode 100644 index 0000000000..05cc332685 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_button/image_for_docs.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_tonal_icon_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_icon_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_tonal_icon_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/filled_tonal_icon_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks.gif new file mode 100644 index 0000000000..5a58647362 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks_final.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks_final.png new file mode 100644 index 0000000000..a958ee6588 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks_final.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks_initial.png new file mode 100644 index 0000000000..ddc6063d93 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/handling_clicks_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/floating_action_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/floating_action_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/floating_action_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks.gif new file mode 100644 index 0000000000..bc2f573499 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks_final.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks_final.png new file mode 100644 index 0000000000..134d21409a Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks_final.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks_initial.png new file mode 100644 index 0000000000..cd79a6b779 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/handling_clicks_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/icon_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/icon_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon.gif new file mode 100644 index 0000000000..b0f1c433f1 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon_final.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon_final.png new file mode 100644 index 0000000000..e3df6866f8 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon_final.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon_initial.png new file mode 100644 index 0000000000..0605785765 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/selected_icon_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/variants.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/variants.png new file mode 100644 index 0000000000..662a06d045 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/icon_button/variants.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/list_tile/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/list_tile/basic.png new file mode 100644 index 0000000000..f2fbfbb325 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/list_tile/basic.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/list_tile/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/list_tile/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/list_tile/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/list_tile/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus.gif new file mode 100644 index 0000000000..c7edd74583 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus_initial.png new file mode 100644 index 0000000000..6e774283c8 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus_menu_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus_menu_open.png new file mode 100644 index 0000000000..718439b86d Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_bar/nested_submenus_menu_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic.gif new file mode 100644 index 0000000000..dc89b68dbe Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic_initial.png new file mode 100644 index 0000000000..eb9c483029 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic_open.png new file mode 100644 index 0000000000..bd01f01511 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/basic_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/menu_item_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_bar/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_bar/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_bar/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_bar/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end3.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_end3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_end3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start3.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_drawer/position_start3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_drawer/position_start3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_rail/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_rail/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_rail/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_rail/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_rail/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_rail/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/navigation_rail/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/navigation_rail/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/custom_content.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/custom_content.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/custom_content.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/custom_content.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks.gif new file mode 100644 index 0000000000..949b3aa45d Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks_final.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks_final.png new file mode 100644 index 0000000000..ba2b3e10d1 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks_final.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks_initial.png new file mode 100644 index 0000000000..eb57ec581c Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/handling_clicks_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/icons.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/icons.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/icons.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/icons.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/outlined_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic.gif new file mode 100644 index 0000000000..46a83bd118 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic.gif differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic_initial.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic_initial.png new file mode 100644 index 0000000000..f8277397ec Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic_initial.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic_open.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic_open.png new file mode 100644 index 0000000000..9fc458eb82 Binary files /dev/null and b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/basic_open.png differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/popup_menu_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/popup_menu_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/popup_menu_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/progress_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/progress_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/progress_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/progress_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/progress_ring/gauge_with_progress.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/progress_ring/gauge_with_progress.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/progress_ring/gauge_with_progress.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/progress_ring/gauge_with_progress.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/progress_ring/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/progress_ring/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/progress_ring/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/progress_ring/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/radio/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/radio/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/radio/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/radio/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/radio/handling_selection_changes.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/radio/handling_selection_changes.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/radio/handling_selection_changes.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/radio/handling_selection_changes.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/radio/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/radio/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/radio/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/radio/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic3.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/basic3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/basic3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events3.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/handling_events3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/handling_events3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/range_slider/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/range_slider/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/reorderable_list_view/horizontal_and_vertical.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/reorderable_list_view/horizontal_and_vertical.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/reorderable_list_view/horizontal_and_vertical.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/reorderable_list_view/horizontal_and_vertical.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/reorderable_list_view/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/reorderable_list_view/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/reorderable_list_view/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/reorderable_list_view/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/search_bar/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/search_bar/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/search_bar/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/search_bar/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/search_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/search_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/search_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/search_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/segmented_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/segmented_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/segmented_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/segmented_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/segmented_button/single_multiple_selection.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/segmented_button/single_multiple_selection.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/segmented_button/single_multiple_selection.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/segmented_button/single_multiple_selection.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/selection_area/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/selection_area/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/selection_area/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/selection_area/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/selection_area/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/selection_area/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/selection_area/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/selection_area/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/custom_label.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/custom_label.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/custom_label.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/custom_label.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/handling_events.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/handling_events.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/handling_events.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/handling_events.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/slider/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/slider/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/action_custom.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/action_custom.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/action_custom.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/action_custom.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/action_simple.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/action_simple.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/action_simple.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/action_simple.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/before_click.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/before_click.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/before_click.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/before_click.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/click_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/click_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/click_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/click_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/click_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/click_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/click_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/click_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/snack_bar_flow.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/snack_bar_flow.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/snack_bar/snack_bar_flow.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/snack_bar/snack_bar_flow.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/submenu_button/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/submenu_button/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/submenu_button/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/submenu_button/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/submenu_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/submenu_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/submenu_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/submenu_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/switch/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/switch/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/switch/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/switch/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/switch/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/switch/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/switch/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/switch/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/custom_content.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/custom_content.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/custom_content.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/custom_content.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/handling_clicks.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/handling_clicks.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/handling_clicks.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/handling_clicks.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/icons.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/icons.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/icons.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/icons.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/text_button/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/text_button/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/textfield/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/textfield/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/textfield/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/textfield/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/basic.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/basic.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/basic.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/basic.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats.gif b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats.gif similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats.gif rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats.gif diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_1.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_1.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_1.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_1.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_10.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_10.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_10.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_10.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_11.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_11.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_11.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_11.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_2.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_2.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_2.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_2.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_3.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_3.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_3.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_3.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_4.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_4.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_4.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_4.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_5.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_5.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_5.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_5.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_6.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_6.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_6.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_6.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_7.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_7.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_7.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_7.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_8.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_8.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_8.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_8.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_9.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_9.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/hour_formats_9.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/hour_formats_9.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/image_for_docs.png similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/golden/macos/time_picker/image_for_docs.png rename to sdk/python/packages/flet/integration_tests/examples/controls/material/golden/macos/time_picker/image_for_docs.png diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_alert_dialog.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_alert_dialog.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/material/test_alert_dialog.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_alert_dialog.py index 671af43c94..83f6aa29b2 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_alert_dialog.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_alert_dialog.py @@ -1,8 +1,10 @@ import pytest -import examples.controls.alert_dialog.modal_and_non_modal.main as modal_and_non_modal import flet as ft import flet.testing as ftt +from examples.controls.material.alert_dialog.modal_and_non_modal import ( + main as modal_and_non_modal, +) @pytest.mark.asyncio(loop_scope="function") diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_app_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_app_bar.py new file mode 100644 index 0000000000..f6640e7eda --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_app_bar.py @@ -0,0 +1,144 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.app_bar.actions_and_popup_menu import ( + main as actions_and_popup_menu, +) +from examples.controls.material.app_bar.theme_mode_toggle import ( + main as theme_mode_toggle, +) + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.AppBar( + leading=ft.Icon(ft.Icons.MENU), + title=ft.Text("Dashboard"), + actions=[ + ft.IconButton(ft.Icons.SEARCH), + ft.IconButton(ft.Icons.MORE_VERT), + ], + bgcolor=ft.Colors.SURFACE_CONTAINER, + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": actions_and_popup_menu.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_actions_and_popup_menu(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(450, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "before_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + button = await flet_app_function.tester.find_by_key("popup") + await flet_app_function.tester.mouse_hover(button) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "hover_popup", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + await flet_app_function.tester.tap(button) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "popup_open", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + checked_item = await flet_app_function.tester.find_by_text("Checked item") + await flet_app_function.tester.mouse_hover(checked_item) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "hover_checked_item", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + await flet_app_function.tester.tap(checked_item) + await flet_app_function.tester.pump_and_settle() + + await flet_app_function.tester.tap(button) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "checked_item_reopened", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + [ + "before_click", + "hover_popup", + "popup_open", + "hover_checked_item", + "checked_item_reopened", + ], + "app_bar_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": theme_mode_toggle.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_theme_mode_toggle(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(450, 450) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "theme_mode_before_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + toggle_button = await flet_app_function.tester.find_by_key("theme_mode_toggle") + await flet_app_function.tester.mouse_hover(toggle_button) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "theme_mode_hover", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + await flet_app_function.tester.tap(toggle_button) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "theme_mode_after_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + [ + "theme_mode_before_click", + "theme_mode_hover", + "theme_mode_after_click", + ], + "theme_mode_toggle_flow", + duration=1000, + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_auto_complete.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_auto_complete.py new file mode 100644 index 0000000000..a6c03d3132 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_auto_complete.py @@ -0,0 +1,41 @@ +import pytest + +import flet.testing as ftt +from examples.controls.material.auto_complete.basic import main as basic + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic_example_opens_suggestions(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(450, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "before_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + text_field = await flet_app_function.tester.find_by_text("One") + await flet_app_function.tester.tap(text_field) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "after_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + ["before_click", "after_click"], + "auto_complete_basic_flow", + duration=1000, + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_badge.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_badge.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/material/test_badge.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_badge.py index 76749ebfaa..a15a01ecf6 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_badge.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_badge.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.badge.basic.main as basic +import examples.controls.material.badge.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_banner.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_banner.py new file mode 100644 index 0000000000..2863d50e56 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_banner.py @@ -0,0 +1,104 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.banner.basic import main as basic + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + page = flet_app_function.page + page.theme_mode = ft.ThemeMode.LIGHT + page.enable_screenshots = True + flet_app_function.resize_page(400, 200) + banner = ft.Banner( + leading=ft.Icon(ft.Icons.INFO_OUTLINED, color=ft.Colors.PRIMARY), + content=ft.Text("Backup completed successfully."), + actions=[ft.TextButton("Dismiss")], + bgcolor=ft.Colors.SURFACE_CONTAINER_LOW, + open=True, + ) + page.add(banner) + page.update() + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "test_image_for_docs", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + page.update() + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic_banner_flow(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(450, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "before_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + show_banner_button = await flet_app_function.tester.find_by_text("Show Banner") + await flet_app_function.tester.mouse_hover(show_banner_button) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "hover_show_banner", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(show_banner_button) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "banner_open", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + ignore_button = await flet_app_function.tester.find_by_text("Ignore") + await flet_app_function.tester.mouse_hover(ignore_button) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "hover_ignore", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(ignore_button) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "after_ignore", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + [ + "before_click", + "hover_show_banner", + "banner_open", + "hover_ignore", + "after_ignore", + ], + "banner_flow", + duration=1000, + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_bottom_app_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_bottom_app_bar.py similarity index 92% rename from sdk/python/packages/flet/integration_tests/examples/material/test_bottom_app_bar.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_bottom_app_bar.py index fff254d679..7407c5b0e8 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_bottom_app_bar.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_bottom_app_bar.py @@ -1,7 +1,7 @@ import pytest -import examples.controls.bottom_app_bar.border_radius.main as border_radius -import examples.controls.bottom_app_bar.notched_fab.main as notched_fab +import examples.controls.material.bottom_app_bar.border_radius.main as border_radius +import examples.controls.material.bottom_app_bar.notched_fab.main as notched_fab import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_bottom_sheet.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_bottom_sheet.py similarity index 96% rename from sdk/python/packages/flet/integration_tests/examples/material/test_bottom_sheet.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_bottom_sheet.py index b73be06496..4b3ff641db 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_bottom_sheet.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_bottom_sheet.py @@ -1,7 +1,7 @@ import pytest -import examples.controls.bottom_sheet.basic.main as basic -import examples.controls.bottom_sheet.fullscreen.main as fullscreen +import examples.controls.material.bottom_sheet.basic.main as basic +import examples.controls.material.bottom_sheet.fullscreen.main as fullscreen import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_button.py similarity index 89% rename from sdk/python/packages/flet/integration_tests/examples/material/test_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_button.py index 9b467211cb..cc6b68a756 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_button.py @@ -1,12 +1,12 @@ import pytest -import examples.controls.button.animate_on_hover.main as animate_on_hover -import examples.controls.button.basic.main as basic -import examples.controls.button.button_shapes.main as button_shapes -import examples.controls.button.custom_content.main as custom_content -import examples.controls.button.handling_clicks.main as handling_clicks -import examples.controls.button.icons.main as icons -import examples.controls.button.styling.main as styling +import examples.controls.material.button.animate_on_hover.main as animate_on_hover +import examples.controls.material.button.basic.main as basic +import examples.controls.material.button.button_shapes.main as button_shapes +import examples.controls.material.button.custom_content.main as custom_content +import examples.controls.material.button.handling_clicks.main as handling_clicks +import examples.controls.material.button.icons.main as icons +import examples.controls.material.button.styling.main as styling import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_card.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_card.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/material/test_card.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_card.py index 69b2c24fab..d6f8da03ef 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_card.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_card.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.card.music_info.main as music_info +import examples.controls.material.card.music_info.main as music_info import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_checkbox.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_checkbox.py similarity index 62% rename from sdk/python/packages/flet/integration_tests/examples/material/test_checkbox.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_checkbox.py index e0ccab0563..bc51199ab2 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_checkbox.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_checkbox.py @@ -1,8 +1,8 @@ import pytest -import examples.controls.checkbox.basic.main as basic -import examples.controls.checkbox.handling_events.main as handling_events -import examples.controls.checkbox.styled.main as styled +import examples.controls.material.checkbox.basic.main as basic +import examples.controls.material.checkbox.handling_events.main as handling_events +import examples.controls.material.checkbox.styled.main as styled import flet as ft import flet.testing as ftt @@ -69,7 +69,33 @@ async def test_handling_events(flet_app_function: ftt.FletTestApp): ) @pytest.mark.asyncio(loop_scope="function") async def test_styled(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + scr = await flet_app_function.wrap_page_controls_in_screenshot() flet_app_function.assert_screenshot( "styled_checkboxes", - await flet_app_function.take_page_controls_screenshot(), + await scr.capture(pixel_ratio=flet_app_function.screenshots_pixel_ratio), + ) + checkbox = await flet_app_function.tester.find_by_key("dynamic_fill_checkbox") + await flet_app_function.tester.mouse_hover(checkbox) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "styled_checkboxes_hovered", + await scr.capture(pixel_ratio=flet_app_function.screenshots_pixel_ratio), + ) + await flet_app_function.tester.tap(checkbox) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "styled_checkboxes_selected", + await scr.capture(pixel_ratio=flet_app_function.screenshots_pixel_ratio), + ) + flet_app_function.create_gif( + [ + "styled_checkboxes", + "styled_checkboxes_hovered", + "styled_checkboxes_selected", + ], + "styled_checkboxes_flow", + duration=1000, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_datatable.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_chip.py similarity index 51% rename from sdk/python/packages/flet/integration_tests/examples/material/test_datatable.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_chip.py index 3f5e64eaa8..961a0aef06 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_datatable.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_chip.py @@ -1,11 +1,9 @@ import pytest +import examples.controls.material.chip.assist_chips.main as assist_chips +import examples.controls.material.chip.filter_chips.main as filter_chips import flet as ft import flet.testing as ftt -from examples.controls.data_table.basic import main as basic -from examples.controls.data_table.sortable_and_selectable import ( - main as sortable_and_selectable, -) @pytest.mark.asyncio(loop_scope="function") @@ -13,43 +11,27 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT await flet_app_function.assert_control_screenshot( request.node.name, - ft.DataTable( - columns=[ - ft.DataColumn(label=ft.Text("Name")), - ft.DataColumn(label=ft.Text("Role")), - ], - rows=[ - ft.DataRow( - cells=[ - ft.DataCell(ft.Text("Alice")), - ft.DataCell(ft.Text("Engineer")), - ] - ), - ft.DataRow( - cells=[ - ft.DataCell(ft.Text("Bob")), - ft.DataCell(ft.Text("Designer")), - ] - ), - ], + ft.Chip( + label="Explore topics", + leading=ft.Icon(ft.Icons.EXPLORE_OUTLINED), ), ) @pytest.mark.parametrize( "flet_app_function", - [{"flet_app_main": basic.main}], + [{"flet_app_main": assist_chips.main}], indirect=True, ) @pytest.mark.asyncio(loop_scope="function") -async def test_basic(flet_app_function: ftt.FletTestApp): +async def test_assist_chips(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT flet_app_function.page.enable_screenshots = True - flet_app_function.resize_page(355, 260) + flet_app_function.resize_page(450, 220) flet_app_function.page.update() - await flet_app_function.tester.pump_and_settle() flet_app_function.assert_screenshot( - "basic", + "assist_chips", await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio ), @@ -58,18 +40,27 @@ async def test_basic(flet_app_function: ftt.FletTestApp): @pytest.mark.parametrize( "flet_app_function", - [{"flet_app_main": sortable_and_selectable.main}], + [{"flet_app_main": filter_chips.main}], indirect=True, ) @pytest.mark.asyncio(loop_scope="function") -async def test_sortable_and_selectable(flet_app_function: ftt.FletTestApp): +async def test_filter_chips(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT flet_app_function.page.enable_screenshots = True - flet_app_function.resize_page(500, 620) + flet_app_function.resize_page(950, 250) flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + dogs_ok = await flet_app_function.tester.find_by_text("Dogs OK") + await flet_app_function.tester.tap(dogs_ok) + await flet_app_function.tester.pump_and_settle() + cats_ok = await flet_app_function.tester.find_by_text("Cats OK") + await flet_app_function.tester.tap(cats_ok) await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( - "sortable_and_selectable", + "filter_chips", await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio ), diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_circle_avatar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_circle_avatar.py new file mode 100644 index 0000000000..d49c37bc81 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_circle_avatar.py @@ -0,0 +1,38 @@ +import pytest + +import examples.controls.material.circle_avatar.user_avatars.main as user_avatars +import flet as ft +import flet.testing as ftt + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.CircleAvatar( + content=ft.Text("AB"), + bgcolor=ft.Colors.PRIMARY, + color=ft.Colors.ON_PRIMARY, + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": user_avatars.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_user_avatars(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(180, 260) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "user_avatars", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_context_menu.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_context_menu.py new file mode 100644 index 0000000000..ce67961754 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_context_menu.py @@ -0,0 +1,155 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.context_menu.custom_trigger import ( + main as custom_trigger, +) +from examples.controls.material.context_menu.programmatic_open import ( + main as programmatic_open, +) +from examples.controls.material.context_menu.triggers import main as triggers + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(250, 200) + flet_app_function.page.add( + menu := ft.ContextMenu( + content=ft.IconButton(ft.Icons.MENU), + items=[ + ft.PopupMenuItem("Rename"), + ft.PopupMenuItem("Duplicate"), + ], + ) + ) + await flet_app_function.tester.pump_and_settle() + + # open menu + await menu.open() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + request.node.name, + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": triggers.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_triggers(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(300, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "before_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + trigger_area = await flet_app_function.tester.find_by_key( + "context_menu_trigger_area" + ) + await flet_app_function.tester.mouse_click(trigger_area) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "left_click_open", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap_at(ft.Offset(20, 20)) + await flet_app_function.tester.pump_and_settle() + + await flet_app_function.tester.right_mouse_click(trigger_area) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "right_click_open", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + ["before_click", "left_click_open", "right_click_open"], + "triggers_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": custom_trigger.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_custom_trigger(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(300, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "before_double_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + trigger_area = await flet_app_function.tester.find_by_key( + "context_menu_custom_trigger_area" + ) + await flet_app_function.tester.mouse_double_click(trigger_area) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "after_double_click", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + ["before_double_click", "after_double_click"], + "custom_trigger_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": programmatic_open.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_programmatic_open(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(300, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + # click button to open menu + await flet_app_function.tester.tap( + await flet_app_function.tester.find_by_text("Click to open menu") + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + test_programmatic_open.__name__, + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_datatable.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_datatable.py new file mode 100644 index 0000000000..50647fd3e9 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_datatable.py @@ -0,0 +1,306 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.data_table.adaptive_row_heights import ( + main as adaptive_row_heights, +) +from examples.controls.material.data_table.basic import main as basic +from examples.controls.material.data_table.handling_events import ( + main as handling_events, +) +from examples.controls.material.data_table.sortable_and_selectable import ( + main as sortable_and_selectable, +) +from examples.controls.material.data_table.spacing import main as spacing + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.DataTable( + columns=[ + ft.DataColumn(label=ft.Text("Name")), + ft.DataColumn(label=ft.Text("Role")), + ], + rows=[ + ft.DataRow( + cells=[ + ft.DataCell(ft.Text("Alice")), + ft.DataCell(ft.Text("Engineer")), + ] + ), + ft.DataRow( + cells=[ + ft.DataCell(ft.Text("Bob")), + ft.DataCell(ft.Text("Designer")), + ] + ), + ], + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(355, 260) + flet_app_function.page.update() + + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "basic", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": sortable_and_selectable.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_sortable_and_selectable(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(500, 620) + flet_app_function.page.update() + + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "sortable_and_selectable", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": adaptive_row_heights.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_adaptive_row_heights(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(620, 420) + flet_app_function.page.update() + + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "adaptive_row_heights", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": handling_events.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_handling_events(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(760, 380) + flet_app_function.page.update() + + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "handling_events_initial", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + row_a = await flet_app_function.tester.find_by_text("A") + await flet_app_function.tester.mouse_hover(row_a) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "handling_events_hover_row_a", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(row_a) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "handling_events_click_row_a", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + column_1 = await flet_app_function.tester.find_by_text("Column 1") + await flet_app_function.tester.mouse_hover(column_1) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "handling_events_hover_column_1", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(column_1) + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "handling_events_click_column_1", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + [ + "handling_events_initial", + "handling_events_hover_row_a", + "handling_events_click_row_a", + "handling_events_hover_column_1", + "handling_events_click_column_1", + ], + "handling_events_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": spacing.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_spacing(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(700, 500) + flet_app_function.page.update() + + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "spacing_initial", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + horizontal_margin_slider = await flet_app_function.tester.find_by_key( + "horizontal_margin_slider" + ) + await flet_app_function.tester.drag( + horizontal_margin_slider, + ft.Offset(120, 0), + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_after_horizontal_margin_drag", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + column_spacing_slider = await flet_app_function.tester.find_by_key( + "column_spacing_slider" + ) + await flet_app_function.tester.drag( + column_spacing_slider, + ft.Offset(120, 0), + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_after_column_spacing_drag", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + compact_preset = await flet_app_function.tester.find_by_text("Compact preset") + await flet_app_function.tester.mouse_hover(compact_preset) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_hover_compact_preset", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(compact_preset) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_compact_preset", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + spacious_preset = await flet_app_function.tester.find_by_text("Spacious preset") + await flet_app_function.tester.mouse_hover(spacious_preset) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_hover_spacious_preset", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(spacious_preset) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_spacious_preset", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + reset_button = await flet_app_function.tester.find_by_text("Reset") + await flet_app_function.tester.mouse_hover(reset_button) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_hover_reset", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(reset_button) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "spacing_reset", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + [ + "spacing_initial", + "spacing_after_horizontal_margin_drag", + "spacing_after_column_spacing_drag", + "spacing_hover_compact_preset", + "spacing_compact_preset", + "spacing_hover_spacious_preset", + "spacing_spacious_preset", + "spacing_hover_reset", + "spacing_reset", + ], + "spacing_flow", + duration=1000, + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_date_picker.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_date_picker.py new file mode 100644 index 0000000000..a0f8c1b2ce --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_date_picker.py @@ -0,0 +1,81 @@ +import datetime + +import pytest + +import examples.controls.material.date_picker.basic.main as basic +import examples.controls.material.date_picker.custom_locale.main as custom_locale +import flet as ft +import flet.testing as ftt + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 520) + flet_app_function.page.update() + + flet_app_function.page.show_dialog( + ft.DatePicker( + value=datetime.datetime(2025, 4, 15), + first_date=datetime.datetime(2024, 1, 1), + last_date=datetime.datetime(2026, 12, 31), + current_date=datetime.datetime(2025, 4, 15), + ) + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + request.node.name, + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 520) + flet_app_function.page.update() + + await flet_app_function.tester.tap( + await flet_app_function.tester.find_by_text("Pick date") + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": custom_locale.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_custom_locale(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 520) + flet_app_function.page.update() + + await flet_app_function.tester.tap( + await flet_app_function.tester.find_by_text("Pick date (zh_Hans locale)") + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "custom_locale", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_date_range_picker.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_date_range_picker.py new file mode 100644 index 0000000000..c15a68c653 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_date_range_picker.py @@ -0,0 +1,82 @@ +import datetime + +import pytest + +import examples.controls.material.date_range_picker.basic.main as basic +import examples.controls.material.date_range_picker.custom_locale.main as custom_locale +import flet as ft +import flet.testing as ftt + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(620, 480) + flet_app_function.page.update() + + flet_app_function.page.show_dialog( + ft.DateRangePicker( + start_value=datetime.datetime(2025, 4, 10), + end_value=datetime.datetime(2025, 4, 20), + first_date=datetime.datetime(2024, 1, 1), + last_date=datetime.datetime(2026, 12, 31), + current_date=datetime.datetime(2025, 4, 15), + ) + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + request.node.name, + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(620, 480) + flet_app_function.page.update() + + await flet_app_function.tester.tap( + await flet_app_function.tester.find_by_text("Pick date range") + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": custom_locale.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_custom_locale(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(620, 480) + flet_app_function.page.update() + + await flet_app_function.tester.tap( + await flet_app_function.tester.find_by_text("Pick dates (zh_Hans locale)") + ) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "custom_locale", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_divider.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_divider.py new file mode 100644 index 0000000000..64b7acdb40 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_divider.py @@ -0,0 +1,42 @@ +import pytest + +import examples.controls.material.divider.basic.main as basic +import flet as ft +import flet.testing as ftt + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.Column( + width=240, + spacing=10, + controls=[ + ft.Text("Section A", weight=ft.FontWeight.W_600), + ft.Divider(), + ft.Text("Section B"), + ], + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(320, 480) + flet_app_function.page.update() + + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "basic", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_dropdown.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_dropdown.py new file mode 100644 index 0000000000..78c1a3bb0f --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_dropdown.py @@ -0,0 +1,278 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.dropdown.color_selection_with_filtering import ( + main as color_selection_with_filtering, +) +from examples.controls.material.dropdown.declarative import main as declarative +from examples.controls.material.dropdown.icon_selection import main as icon_selection +from examples.controls.material.dropdown.select_and_change_events import ( + main as select_and_change_events, +) +from examples.controls.material.dropdown.styled import main as styled + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.Dropdown( + width=220, + value="alice", + options=[ + ft.dropdown.Option(key="alice", text="Alice"), + ft.dropdown.Option(key="bob", text="Bob"), + ], + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": color_selection_with_filtering.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_color_selection_with_filtering(flet_app_function: ftt.FletTestApp): + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(350, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + frames: list[bytes] = [ + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ] + + dropdown = await flet_app_function.tester.find_by_key("color_dropdown") + await flet_app_function.tester.tap(dropdown) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.enter_text(dropdown, "re") + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + red_options = await flet_app_function.tester.find_by_text("red") + assert red_options.count >= 1 + await flet_app_function.tester.tap(red_options.last) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="color_selection_with_filtering_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": icon_selection.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_icon_selection(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(350, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + frames: list[bytes] = [ + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ] + + dropdown = await flet_app_function.tester.find_by_key("icon_dropdown") + await flet_app_function.tester.tap(dropdown) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + heart_options = await flet_app_function.tester.find_by_icon(ft.Icons.FAVORITE) + assert heart_options.count >= 1 + await flet_app_function.tester.tap(heart_options.last) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="icon_selection_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": declarative.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_declarative(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(360, 260) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + frames: list[bytes] = [ + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ] + + dropdown = await flet_app_function.tester.find_by_key("declarative_dropdown") + await flet_app_function.tester.tap(dropdown) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + green_option = await flet_app_function.tester.find_by_text("Green") + assert green_option.count >= 1 + await flet_app_function.tester.tap(green_option.last) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="declarative_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": select_and_change_events.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_select_and_change_events(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(380, 400) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + frames: list[bytes] = [] + dropdown = await flet_app_function.tester.find_by_key("select_change_dropdown") + await flet_app_function.tester.tap(dropdown) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + red_option = await flet_app_function.tester.find_by_text("red") + assert red_option.count >= 1 + await flet_app_function.tester.mouse_hover(red_option.last) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + await flet_app_function.tester.tap(red_option.last) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.enter_text(dropdown, "deep_red") + await flet_app_function.tester.pump_and_settle() + await flet_app_function.tester.tap_at(ft.Offset(10, 10)) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="select_and_change_events_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": styled.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_styled(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 600) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + frames = [ + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ] + + for index in range(1, 6): + dropdown = await flet_app_function.tester.find_by_key( + f"styled_dropdown_{index}" + ) + await flet_app_function.tester.tap(dropdown) + await flet_app_function.tester.pump_and_settle() + + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + selected_option = await flet_app_function.tester.find_by_text(f"Style {index}B") + assert selected_option.count >= 1 + await flet_app_function.tester.tap(selected_option.last) + await flet_app_function.tester.pump_and_settle() + + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="styled_flow", + duration=1000, + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_dropdown_m2.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_dropdown_m2.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/test_dropdown_m2.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_dropdown_m2.py diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_expansion_panel.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_panel.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/test_expansion_panel.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_panel.py diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_panel_list.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_panel_list.py new file mode 100644 index 0000000000..85133eb149 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_panel_list.py @@ -0,0 +1,130 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.expansion_panel_list.basic import main as basic +from examples.controls.material.expansion_panel_list.scrollable import ( + main as scrollable, +) + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.ExpansionPanelList( + width=400, + controls=[ + ft.ExpansionPanel( + header=ft.Text("Details"), + content=ft.Text("More information here"), + expanded=True, + ), + ft.ExpansionPanel( + header=ft.Text("History"), + content=ft.Text("View previous updates"), + ), + ], + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 500) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic_header_placeholder_opened", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + expand_icons = await flet_app_function.tester.find_by_icon(ft.Icons.EXPAND_MORE) + assert expand_icons.count >= 1 + await flet_app_function.tester.tap(expand_icons.first) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic_header_placeholder_closed", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + expand_icons = await flet_app_function.tester.find_by_icon(ft.Icons.EXPAND_MORE) + assert expand_icons.count >= 2 + await flet_app_function.tester.tap(expand_icons.at(1)) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic_panel_0_opened", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + delete_icons = await flet_app_function.tester.find_by_icon(ft.Icons.DELETE) + assert delete_icons.count >= 1 + await flet_app_function.tester.mouse_hover(delete_icons.first) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic_panel_0_delete_hovered", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + await flet_app_function.tester.tap(delete_icons.first) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "basic_panel_0_deleted", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + [ + "basic_header_placeholder_opened", + "basic_header_placeholder_closed", + "basic_panel_0_opened", + "basic_panel_0_delete_hovered", + "basic_panel_0_deleted", + ], + "basic_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": scrollable.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_scrollable(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 500) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "scrollable", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_tile.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_tile.py new file mode 100644 index 0000000000..1f844a853f --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_expansion_tile.py @@ -0,0 +1,239 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.expansion_tile.basic import main as basic +from examples.controls.material.expansion_tile.borders import main as borders +from examples.controls.material.expansion_tile.custom_animations import ( + main as custom_animations, +) +from examples.controls.material.expansion_tile.programmatic_expansion import ( + main as programmatic_expansion, +) +from examples.controls.material.expansion_tile.theme_mode_toggle import ( + main as theme_mode_toggle, +) + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.ExpansionTile( + width=400, + title="Account", + subtitle="Manage profile and security", + expanded=True, + controls=[ + ft.ListTile(title=ft.Text("Profile")), + ft.ListTile(title=ft.Text("Security")), + ], + ), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.assert_screenshot( + test_basic.__name__, + await flet_app_function.take_page_controls_screenshot(), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": borders.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_borders(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(460, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "borders_closed", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + expand_icons = await flet_app_function.tester.find_by_icon(ft.Icons.EXPAND_MORE) + assert expand_icons.count >= 1 + await flet_app_function.tester.tap(expand_icons.first) + await flet_app_function.tester.pump_and_settle() + + flet_app_function.assert_screenshot( + "borders_opened", + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ), + ) + + flet_app_function.create_gif( + ["borders_closed", "borders_opened"], + "borders_flow", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": custom_animations.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_custom_animations_default(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(460, 300) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + # Pre-tap frame — GIF will hold this for 2 s so the viewer sees the + # expanded tile before the collapse starts. + pre_tap_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + + expand_icons = await flet_app_function.tester.find_by_icon(ft.Icons.EXPAND_MORE) + assert expand_icons.count >= 1 + await flet_app_function.tester.tap(expand_icons.first) + + # ExpansionTile's default animation is 200 ms and renders at 60 Hz vsync, + # so it produces ~12 distinct pixel-level states. Sample at ~vsync + # spacing — no point oversampling, neighbors would be pixel-identical. + frame_delays_ms = [0] + [17] * 13 + [50] + animation_frames = await flet_app_function.page.take_animation( + "default_animation", + frame_delays_ms, + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + + # Play back at 80 ms/frame, hold the first frame for 2 s and the final + # settled frame for 3 s before the GIF loops. + frames = [pre_tap_frame, *animation_frames] + durations = [2000] + [80] * (len(animation_frames) - 1) + [3000] + flet_app_function.create_gif( + frames=frames, + output_name="custom_animations_default", + duration=durations, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": programmatic_expansion.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_programmatic_expansion(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(520, 320) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + frame_delays_ms = [0] + [17] * 13 + [50] + frames: list[bytes] = [] + durations: list[int] = [] + + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "programmatic_expansion_initial", + initial_frame, + ) + frames.append(initial_frame) + durations.append(1200) + + collapse_button = await flet_app_function.tester.find_by_text("Collapse Tile") + await flet_app_function.tester.mouse_hover(collapse_button) + await flet_app_function.tester.pump_and_settle() + hover_collapse_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + frames.append(hover_collapse_frame) + durations.append(1000) + + await flet_app_function.tester.tap(collapse_button) + collapse_animation_frames = await flet_app_function.page.take_animation( + "programmatic_expansion_collapse", + frame_delays_ms, + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + collapsed_frame = collapse_animation_frames[-1] + flet_app_function.assert_screenshot( + "programmatic_expansion_collapsed", + collapsed_frame, + ) + frames.extend(collapse_animation_frames) + durations.extend([80] * (len(collapse_animation_frames) - 1) + [1000]) + + expand_button = await flet_app_function.tester.find_by_text("Expand Tile") + await flet_app_function.tester.mouse_hover(expand_button) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + durations.append(1000) + + await flet_app_function.tester.tap(expand_button) + expand_animation_frames = await flet_app_function.page.take_animation( + "programmatic_expansion_expand", + frame_delays_ms, + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + frames.extend(expand_animation_frames) + durations.extend([80] * (len(expand_animation_frames) - 1) + [1500]) + + flet_app_function.create_gif( + frames=frames, + output_name="programmatic_expansion_flow", + duration=durations, + ) + + +@pytest.mark.skip(reason="Will fix it later") +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": theme_mode_toggle.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_theme_mode_toggle_top_panel(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(500, 700) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + + top_panel = await flet_app_function.tester.find_by_key( + "theme_mode_toggle_top_panel" + ) + await flet_app_function.tester.tap(top_panel) + await flet_app_function.tester.pump_and_settle() + expanded_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + + flet_app_function.create_gif( + frames=[initial_frame, expanded_frame], + output_name="theme_mode_toggle_top_panel_flow", + duration=[1200, 1500], + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_expansion_tile.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_button.py similarity index 61% rename from sdk/python/packages/flet/integration_tests/examples/material/test_expansion_tile.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_button.py index 29c0200460..1c3def9627 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_expansion_tile.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_button.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.expansion_tile.basic import main as basic +from examples.controls.material.filled_button.basic import main as basic @pytest.mark.asyncio(loop_scope="function") @@ -10,16 +10,7 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT await flet_app_function.assert_control_screenshot( request.node.name, - ft.ExpansionTile( - width=400, - title="Account", - subtitle="Manage profile and security", - expanded=True, - controls=[ - ft.ListTile(title=ft.Text("Profile")), - ft.ListTile(title=ft.Text("Security")), - ], - ), + ft.FilledButton(content="Tap me"), ) @@ -30,7 +21,8 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): ) @pytest.mark.asyncio(loop_scope="function") async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT flet_app_function.assert_screenshot( - test_basic.__name__, + "basic", await flet_app_function.take_page_controls_screenshot(), ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_filled_icon_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_icon_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/test_filled_icon_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_icon_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_tonal_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_tonal_button.py new file mode 100644 index 0000000000..a2cc355d93 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_tonal_button.py @@ -0,0 +1,28 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.filled_tonal_button.basic import main as basic + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.FilledTonalButton(content="Tap me"), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.assert_screenshot( + "basic", + await flet_app_function.take_page_controls_screenshot(), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_filled_tonal_icon_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_tonal_icon_button.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/test_filled_tonal_icon_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_filled_tonal_icon_button.py diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_floating_action_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_floating_action_button.py new file mode 100644 index 0000000000..4ce7b251fc --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_floating_action_button.py @@ -0,0 +1,97 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.floating_action_button.handling_clicks import ( + main as handling_clicks, +) + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.FloatingActionButton(icon=ft.Icons.ADD), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": handling_clicks.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_handling_clicks(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(420, 520) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "handling_clicks_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + + fab = await flet_app_function.tester.find_by_key("handling_clicks_fab") + await flet_app_function.tester.mouse_hover(fab) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(fab) + await flet_app_function.tester.pump_and_settle() + last_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "handling_clicks_final", + last_frame, + ) + frames.append(last_frame) + + await flet_app_function.tester.mouse_hover(fab) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(fab) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.mouse_hover(fab) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(fab) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="handling_clicks", + duration=1000, + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_icon_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_icon_button.py new file mode 100644 index 0000000000..3d0d98b6b6 --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_icon_button.py @@ -0,0 +1,153 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.icon_button.handling_clicks import ( + main as handling_clicks, +) +from examples.controls.material.icon_button.selected_icon import ( + main as selected_icon, +) +from examples.controls.material.icon_button.variants import ( + main as variants, +) + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.IconButton(icon=ft.Icons.FAVORITE, icon_color=ft.Colors.PRIMARY), + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": handling_clicks.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_handling_clicks(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(320, 220) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "handling_clicks_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + + button = await flet_app_function.tester.find_by_key("handling_clicks_icon_button") + await flet_app_function.tester.mouse_hover(button) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(button) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(button) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(button) + await flet_app_function.tester.pump_and_settle() + final_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "handling_clicks_final", + final_frame, + ) + frames.append(final_frame) + + flet_app_function.create_gif( + frames=frames, + output_name="handling_clicks", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": selected_icon.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_selected_icon(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(320, 240) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "selected_icon_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + + button = await flet_app_function.tester.find_by_key("selected_icon_button") + await flet_app_function.tester.mouse_hover(button) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + ) + + await flet_app_function.tester.tap(button) + await flet_app_function.tester.pump_and_settle() + final_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "selected_icon_final", + final_frame, + ) + frames.append(final_frame) + + flet_app_function.create_gif( + frames=frames, + output_name="selected_icon", + duration=1000, + ) + + +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": variants.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_variants(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.resize_page(640, 420) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + flet_app_function.assert_screenshot( + "variants", + await flet_app_function.take_page_controls_screenshot(), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/controls/material/test_list_tile.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_list_tile.py new file mode 100644 index 0000000000..68ebec6a0f --- /dev/null +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_list_tile.py @@ -0,0 +1,43 @@ +import pytest + +import flet as ft +import flet.testing as ftt +from examples.controls.material.list_tile.basic import main as basic + + +@pytest.mark.asyncio(loop_scope="function") +async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.assert_control_screenshot( + request.node.name, + ft.ListTile( + width=400, + leading=ft.Icon(ft.Icons.ACCOUNT_CIRCLE), + title="Jane Doe", + subtitle="Product Manager", + trailing=ft.Icon(ft.Icons.CHEVRON_RIGHT), + bgcolor=ft.Colors.SURFACE_CONTAINER_LOW, + ), + ) + + +# @pytest.mark.skip(reason="Will fix later") +@pytest.mark.parametrize( + "flet_app_function", + [{"flet_app_main": basic.main}], + indirect=True, +) +@pytest.mark.asyncio(loop_scope="function") +async def test_basic(flet_app_function: ftt.FletTestApp): + flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + flet_app_function.resize_page(560, 620) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + # Asset-backed Image in the example needs one timed pump to finish painting. + flet_app_function.assert_screenshot( + "basic", + await flet_app_function.take_page_controls_screenshot( + pump_times=7, + pump_duration=1000, + ), + ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_menu_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_menu_bar.py similarity index 73% rename from sdk/python/packages/flet/integration_tests/examples/material/test_menu_bar.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_menu_bar.py index 1435f4fd96..2ee2c791b4 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_menu_bar.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_menu_bar.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.menu_bar.nested_submenus import main as nested_submenus +from examples.controls.material.menu_bar.nested_submenus import main as nested_submenus @pytest.mark.asyncio(loop_scope="function") @@ -51,33 +51,50 @@ async def test_nested_submenus(flet_app_function: ftt.FletTestApp): await flet_app_function.tester.pump_and_settle( duration=ft.Duration(milliseconds=500) ) + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) flet_app_function.assert_screenshot( - "nested_submenus1", + "nested_submenus_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + smb = await flet_app_function.tester.find_by_text("File") + await flet_app_function.tester.mouse_hover(smb) + await flet_app_function.tester.pump_and_settle() + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) - smb = await flet_app_function.tester.find_by_text("File") await flet_app_function.tester.tap(smb) await flet_app_function.tester.pump_and_settle() + menu_open_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) flet_app_function.assert_screenshot( - "nested_submenus2", + "nested_submenus_menu_open", + menu_open_frame, + ) + frames.append(menu_open_frame) + mib = await flet_app_function.tester.find_by_text("Save") + await flet_app_function.tester.mouse_hover(mib) + await flet_app_function.tester.pump_and_settle() + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) - mib = await flet_app_function.tester.find_by_text("Save") await flet_app_function.tester.tap(mib) await flet_app_function.tester.pump_and_settle() - flet_app_function.assert_screenshot( - "nested_submenus3", + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) flet_app_function.create_gif( - ["nested_submenus1", "nested_submenus2", "nested_submenus3"], - "nested_submenus", + frames=frames, + output_name="nested_submenus", duration=1600, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_menu_item_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_menu_item_button.py similarity index 72% rename from sdk/python/packages/flet/integration_tests/examples/material/test_menu_item_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_menu_item_button.py index c3cf8cd0c2..4be7b7353f 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_menu_item_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_menu_item_button.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.menu_item_button.basic import main as basic +from examples.controls.material.menu_item_button.basic import main as basic @pytest.mark.asyncio(loop_scope="function") @@ -47,33 +47,50 @@ async def test_basic(flet_app_function: ftt.FletTestApp): await flet_app_function.tester.pump_and_settle( duration=ft.Duration(milliseconds=500) ) + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) flet_app_function.assert_screenshot( - "basic1", + "basic_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + btn = await flet_app_function.tester.find_by_text("BgColors") + await flet_app_function.tester.mouse_hover(btn) + await flet_app_function.tester.pump_and_settle() + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) - btn = await flet_app_function.tester.find_by_text("BgColors") await flet_app_function.tester.tap(btn) await flet_app_function.tester.pump_and_settle() + open_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) flet_app_function.assert_screenshot( - "basic2", + "basic_open", + open_frame, + ) + frames.append(open_frame) + mib = await flet_app_function.tester.find_by_text("Green") + await flet_app_function.tester.mouse_hover(mib) + await flet_app_function.tester.pump_and_settle() + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) - mib = await flet_app_function.tester.find_by_text("Green") await flet_app_function.tester.tap(mib) await flet_app_function.tester.pump_and_settle() - flet_app_function.assert_screenshot( - "basic3", + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) flet_app_function.create_gif( - ["basic1", "basic2", "basic3"], - "basic", + frames=frames, + output_name="basic", duration=1600, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_navigation_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_bar.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/material/test_navigation_bar.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_bar.py index 941244a2dc..51e9469da9 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_navigation_bar.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_bar.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.navigation_bar.basic.main import main as basic +from examples.controls.material.navigation_bar.basic.main import main as basic @pytest.mark.asyncio(loop_scope="function") diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_navigation_drawer.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_drawer.py similarity index 96% rename from sdk/python/packages/flet/integration_tests/examples/material/test_navigation_drawer.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_drawer.py index 3a53e85cc7..fc8c9b2f2d 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_navigation_drawer.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_drawer.py @@ -2,8 +2,10 @@ import flet as ft import flet.testing as ftt -from examples.controls.navigation_drawer.position_end.main import main as position_end -from examples.controls.navigation_drawer.position_start.main import ( +from examples.controls.material.navigation_drawer.position_end.main import ( + main as position_end, +) +from examples.controls.material.navigation_drawer.position_start.main import ( main as position_start, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_navigation_rail.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_rail.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/material/test_navigation_rail.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_rail.py index 5cc871fb4a..02d597b9c4 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_navigation_rail.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_navigation_rail.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.navigation_rail.basic.main import main as basic +from examples.controls.material.navigation_rail.basic.main import main as basic @pytest.mark.asyncio(loop_scope="function") diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_outlined_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_outlined_button.py similarity index 72% rename from sdk/python/packages/flet/integration_tests/examples/material/test_outlined_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_outlined_button.py index 3784d2166f..0565913ffa 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_outlined_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_outlined_button.py @@ -2,12 +2,14 @@ import flet as ft import flet.testing as ftt -from examples.controls.outlined_button.basic.main import main as basic -from examples.controls.outlined_button.custom_content.main import main as custom_content -from examples.controls.outlined_button.handling_clicks.main import ( +from examples.controls.material.outlined_button.basic.main import main as basic +from examples.controls.material.outlined_button.custom_content.main import ( + main as custom_content, +) +from examples.controls.material.outlined_button.handling_clicks.main import ( main as handling_clicks, ) -from examples.controls.outlined_button.icons.main import main as icons +from examples.controls.material.outlined_button.icons.main import main as icons @pytest.mark.asyncio(loop_scope="function") @@ -71,34 +73,54 @@ async def test_handling_clicks(flet_app_function: ftt.FletTestApp): flet_app_function.page.enable_screenshots = True flet_app_function.resize_page(300, 150) flet_app_function.page.update() - ob = await flet_app_function.tester.find_by_text_containing("event") - await flet_app_function.tester.tap(ob) await flet_app_function.tester.pump_and_settle() + ob = await flet_app_function.tester.find_by_text_containing("event") + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) flet_app_function.assert_screenshot( - "handling_clicks1", + "handling_clicks_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + + await flet_app_function.tester.mouse_hover(ob) + await flet_app_function.tester.pump_and_settle() + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) + await flet_app_function.tester.tap(ob) await flet_app_function.tester.pump_and_settle() - flet_app_function.assert_screenshot( - "handling_clicks2", + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) ) + await flet_app_function.tester.tap(ob) await flet_app_function.tester.pump_and_settle() - flet_app_function.assert_screenshot( - "handling_clicks3", + frames.append( await flet_app_function.page.take_screenshot( pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), + ) + ) + + await flet_app_function.tester.tap(ob) + await flet_app_function.tester.pump_and_settle() + final_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio + ) + flet_app_function.assert_screenshot( + "handling_clicks_final", + final_frame, ) + frames.append(final_frame) flet_app_function.create_gif( - ["handling_clicks1", "handling_clicks2", "handling_clicks3"], - "handling_clicks", + frames=frames, + output_name="handling_clicks", duration=1600, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_popup_menu_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_popup_menu_button.py similarity index 50% rename from sdk/python/packages/flet/integration_tests/examples/material/test_popup_menu_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_popup_menu_button.py index c7867cfa31..191985b7ce 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_popup_menu_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_popup_menu_button.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.popup_menu_button.basic.main import main as basic +from examples.controls.material.popup_menu_button.basic.main import main as basic @pytest.mark.asyncio(loop_scope="function") @@ -36,7 +36,6 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): ) -@pytest.mark.skip(reason="Test runs asynchronously") @pytest.mark.parametrize( "flet_app_function", [{"flet_app_main": basic}], @@ -46,10 +45,58 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): async def test_basic(flet_app_function: ftt.FletTestApp): flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT flet_app_function.page.enable_screenshots = True + flet_app_function.resize_page(300, 240) + flet_app_function.page.update() + await flet_app_function.tester.pump_and_settle() + pb = await flet_app_function.tester.find_by_key("popup") + initial_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + flet_app_function.assert_screenshot( + "basic_initial", + initial_frame, + ) + frames: list[bytes] = [initial_frame] + + await flet_app_function.tester.mouse_hover(pb) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + ) + await flet_app_function.tester.tap(pb) await flet_app_function.tester.pump_and_settle() + open_frame = await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) flet_app_function.assert_screenshot( - "basic", - await flet_app_function.page.take_screenshot(delay=ft.Duration(seconds=15)), + "basic_open", + open_frame, + ) + frames.append(open_frame) + + check_power = await flet_app_function.tester.find_by_text("Check power") + await flet_app_function.tester.mouse_hover(check_power) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + ) + + await flet_app_function.tester.tap(check_power) + await flet_app_function.tester.pump_and_settle() + frames.append( + await flet_app_function.page.take_screenshot( + pixel_ratio=flet_app_function.screenshots_pixel_ratio, + ) + ) + + flet_app_function.create_gif( + frames=frames, + output_name="basic", + duration=1000, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_progress_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_progress_bar.py similarity index 92% rename from sdk/python/packages/flet/integration_tests/examples/material/test_progress_bar.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_progress_bar.py index 0577a52421..68b1e2a838 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_progress_bar.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_progress_bar.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.progress_bar.determinate_and_indeterminate.main import ( +from examples.controls.material.progress_bar.determinate_and_indeterminate.main import ( main as determinate_and_indeterminate, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_progress_ring.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_progress_ring.py similarity index 85% rename from sdk/python/packages/flet/integration_tests/examples/material/test_progress_ring.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_progress_ring.py index 13f5de22fa..66e158f4db 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_progress_ring.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_progress_ring.py @@ -2,10 +2,10 @@ import flet as ft import flet.testing as ftt -from examples.controls.progress_ring.determinate_and_indeterminate.main import ( +from examples.controls.material.progress_ring.determinate_and_indeterminate import ( main as determinate_and_indeterminate, ) -from examples.controls.progress_ring.gauge_with_progress.main import ( +from examples.controls.material.progress_ring.gauge_with_progress import ( main as gauge_with_progress, ) @@ -19,6 +19,7 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): ) +@pytest.mark.skip(reason="Will fix later") @pytest.mark.parametrize( "flet_app_function", [{"flet_app_main": gauge_with_progress}], @@ -27,6 +28,7 @@ async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): @pytest.mark.asyncio(loop_scope="function") async def test_gauge_with_progress(flet_app_function: ftt.FletTestApp): flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT + await flet_app_function.tester.pump_and_settle() flet_app_function.assert_screenshot( "gauge_with_progress", await flet_app_function.take_page_controls_screenshot(), diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_radio.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_radio.py similarity index 93% rename from sdk/python/packages/flet/integration_tests/examples/material/test_radio.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_radio.py index d17b6f9ccd..28002af6a1 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_radio.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_radio.py @@ -2,8 +2,8 @@ import flet as ft import flet.testing as ftt -from examples.controls.radio.basic.main import main as basic -from examples.controls.radio.handling_selection_changes.main import ( +from examples.controls.material.radio.basic.main import main as basic +from examples.controls.material.radio.handling_selection_changes.main import ( main as handling_selection_changes, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_range_slider.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_range_slider.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/material/test_range_slider.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_range_slider.py index f6f8fedbba..7ecf08d0c3 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_range_slider.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_range_slider.py @@ -2,8 +2,8 @@ import flet as ft import flet.testing as ftt -from examples.controls.range_slider.basic.main import main as basic -from examples.controls.range_slider.handling_change_events.main import ( +from examples.controls.material.range_slider.basic.main import main as basic +from examples.controls.material.range_slider.handling_change_events.main import ( main as handling_change_events, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_reorderable_list_view.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_reorderable_list_view.py similarity index 93% rename from sdk/python/packages/flet/integration_tests/examples/material/test_reorderable_list_view.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_reorderable_list_view.py index 6b434c3481..d7799833ed 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_reorderable_list_view.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_reorderable_list_view.py @@ -2,7 +2,7 @@ import flet as ft import flet.testing as ftt -from examples.controls.reorderable_list_view.horizontal_and_vertical import ( +from examples.controls.material.reorderable_list_view.horizontal_and_vertical import ( main as horizontal_and_vertical, ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_search_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_search_bar.py similarity index 94% rename from sdk/python/packages/flet/integration_tests/examples/material/test_search_bar.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_search_bar.py index 83a5950d5f..e3d37a26c2 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_search_bar.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_search_bar.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.search_bar.basic.main as basic +import examples.controls.material.search_bar.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_segmented_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_segmented_button.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/material/test_segmented_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_segmented_button.py index 0d347158b8..a9510a3b2b 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_segmented_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_segmented_button.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.segmented_button.single_multiple_selection.main as sms +import examples.controls.material.segmented_button.single_multiple_selection.main as sms import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_selection_area.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_selection_area.py similarity index 92% rename from sdk/python/packages/flet/integration_tests/examples/material/test_selection_area.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_selection_area.py index 356039f883..f8d883f6e6 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_selection_area.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_selection_area.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.selection_area.basic.main as basic +import examples.controls.material.selection_area.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_slider.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_slider.py similarity index 88% rename from sdk/python/packages/flet/integration_tests/examples/material/test_slider.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_slider.py index 3a590b68d0..e649f5065d 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_slider.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_slider.py @@ -1,8 +1,8 @@ import pytest -import examples.controls.slider.basic.main as basic -import examples.controls.slider.custom_label.main as custom_label -import examples.controls.slider.handling_events.main as handling_events +import examples.controls.material.slider.basic.main as basic +import examples.controls.material.slider.custom_label.main as custom_label +import examples.controls.material.slider.handling_events.main as handling_events import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_snack_bar.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_snack_bar.py similarity index 95% rename from sdk/python/packages/flet/integration_tests/examples/material/test_snack_bar.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_snack_bar.py index 7fa88f8bcf..591e605d9a 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_snack_bar.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_snack_bar.py @@ -1,8 +1,8 @@ import pytest -import examples.controls.snack_bar.action.main as action -import examples.controls.snack_bar.basic.main as basic -import examples.controls.snack_bar.counter.main as counter +import examples.controls.material.snack_bar.action.main as action +import examples.controls.material.snack_bar.basic.main as basic +import examples.controls.material.snack_bar.counter.main as counter import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_submenu_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_submenu_button.py similarity index 97% rename from sdk/python/packages/flet/integration_tests/examples/material/test_submenu_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_submenu_button.py index 34f29a3416..e0f78cffcf 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_submenu_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_submenu_button.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.submenu_button.basic.main as basic +import examples.controls.material.submenu_button.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_switch.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_switch.py similarity index 93% rename from sdk/python/packages/flet/integration_tests/examples/material/test_switch.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_switch.py index f156ff478d..64c101c30b 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_switch.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_switch.py @@ -1,6 +1,6 @@ import pytest -import examples.controls.switch.basic.main as basic +import examples.controls.material.switch.basic.main as basic import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_text_button.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_text_button.py similarity index 88% rename from sdk/python/packages/flet/integration_tests/examples/material/test_text_button.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_text_button.py index 1910f31912..997d33a1ce 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_text_button.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_text_button.py @@ -1,9 +1,9 @@ import pytest -import examples.controls.text_button.basic.main as basic -import examples.controls.text_button.custom_content.main as custom_content -import examples.controls.text_button.handling_clicks.main as handling_clicks -import examples.controls.text_button.icons.main as icons +import examples.controls.material.text_button.basic.main as basic +import examples.controls.material.text_button.custom_content.main as custom_content +import examples.controls.material.text_button.handling_clicks.main as handling_clicks +import examples.controls.material.text_button.icons.main as icons import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_textfield.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_textfield.py similarity index 100% rename from sdk/python/packages/flet/integration_tests/examples/material/test_textfield.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_textfield.py diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_time_picker.py b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_time_picker.py similarity index 96% rename from sdk/python/packages/flet/integration_tests/examples/material/test_time_picker.py rename to sdk/python/packages/flet/integration_tests/examples/controls/material/test_time_picker.py index 71309ec364..df6373f2c5 100644 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_time_picker.py +++ b/sdk/python/packages/flet/integration_tests/examples/controls/material/test_time_picker.py @@ -2,8 +2,8 @@ import pytest -import examples.controls.time_picker.basic.main as basic -import examples.controls.time_picker.hour_formats.main as hour_formats +import examples.controls.material.time_picker.basic.main as basic +import examples.controls.material.time_picker.hour_formats.main as hour_formats import flet as ft import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/extensions/code_editor/test_code_editor.py b/sdk/python/packages/flet/integration_tests/examples/extensions/code_editor/test_code_editor.py index 5f7068114a..433c34bdb7 100644 --- a/sdk/python/packages/flet/integration_tests/examples/extensions/code_editor/test_code_editor.py +++ b/sdk/python/packages/flet/integration_tests/examples/extensions/code_editor/test_code_editor.py @@ -1,8 +1,8 @@ import pytest -import examples.controls.code_editor.example_1.main as example_1 -import examples.controls.code_editor.example_2.main as example_2 -import examples.controls.code_editor.example_3.main as example_3 +import examples.extensions.code_editor.example_1.main as example_1 +import examples.extensions.code_editor.example_2.main as example_2 +import examples.extensions.code_editor.example_3.main as example_3 import flet.testing as ftt diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/styled_checkboxes.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/styled_checkboxes.png deleted file mode 100644 index c6d2a05486..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/checkbox/styled_checkboxes.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_button/image_for_docs.png deleted file mode 100644 index 1de1a48e3e..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_button/image_for_docs.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_tonal_button/image_for_docs.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_tonal_button/image_for_docs.png deleted file mode 100644 index afdd50ff54..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/filled_tonal_button/image_for_docs.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus.gif b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus.gif deleted file mode 100644 index 512d8a2ca6..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus.gif and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus1.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus1.png deleted file mode 100644 index d2285850af..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus1.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus2.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus2.png deleted file mode 100644 index 75a68f50ac..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus2.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus3.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus3.png deleted file mode 100644 index b683da87d4..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_bar/nested_submenus3.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic.gif b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic.gif deleted file mode 100644 index f3a292bfe2..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic.gif and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic1.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic1.png deleted file mode 100644 index da4e139927..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic1.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic2.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic2.png deleted file mode 100644 index b368f923a2..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic2.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic3.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic3.png deleted file mode 100644 index 051624188e..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/menu_item_button/basic3.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks.gif b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks.gif deleted file mode 100644 index 1a8794494a..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks.gif and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks1.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks1.png deleted file mode 100644 index 2a15539714..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks1.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks2.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks2.png deleted file mode 100644 index 9c87225b9f..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks2.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks3.png b/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks3.png deleted file mode 100644 index b4777602a5..0000000000 Binary files a/sdk/python/packages/flet/integration_tests/examples/material/golden/macos/outlined_button/handling_clicks3.png and /dev/null differ diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_app_bar.py b/sdk/python/packages/flet/integration_tests/examples/material/test_app_bar.py deleted file mode 100644 index 31fb96e3bc..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_app_bar.py +++ /dev/null @@ -1,21 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.AppBar( - leading=ft.Icon(ft.Icons.MENU), - title=ft.Text("Dashboard"), - actions=[ - ft.IconButton(ft.Icons.SEARCH), - ft.IconButton(ft.Icons.MORE_VERT), - ], - bgcolor=ft.Colors.SURFACE_CONTAINER, - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_banner.py b/sdk/python/packages/flet/integration_tests/examples/material/test_banner.py deleted file mode 100644 index 9dc89c2404..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_banner.py +++ /dev/null @@ -1,29 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - page = flet_app_function.page - page.theme_mode = ft.ThemeMode.LIGHT - page.enable_screenshots = True - flet_app_function.resize_page(400, 200) - banner = ft.Banner( - leading=ft.Icon(ft.Icons.INFO_OUTLINED, color=ft.Colors.PRIMARY), - content=ft.Text("Backup completed successfully."), - actions=[ft.TextButton("Dismiss")], - bgcolor=ft.Colors.SURFACE_CONTAINER_LOW, - open=True, - ) - page.add(banner) - page.update() - await flet_app_function.tester.pump_and_settle() - flet_app_function.assert_screenshot( - "test_image_for_docs", - await flet_app_function.page.take_screenshot( - pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), - ) - page.update() diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_chip.py b/sdk/python/packages/flet/integration_tests/examples/material/test_chip.py deleted file mode 100644 index 66944d9632..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_chip.py +++ /dev/null @@ -1,16 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.Chip( - label="Explore topics", - leading=ft.Icon(ft.Icons.EXPLORE_OUTLINED), - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_circle_avatar.py b/sdk/python/packages/flet/integration_tests/examples/material/test_circle_avatar.py deleted file mode 100644 index 5d11a09c2f..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_circle_avatar.py +++ /dev/null @@ -1,17 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.CircleAvatar( - content=ft.Text("AB"), - bgcolor=ft.Colors.PRIMARY, - color=ft.Colors.ON_PRIMARY, - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_context_menu.py b/sdk/python/packages/flet/integration_tests/examples/material/test_context_menu.py deleted file mode 100644 index 77be1e16b7..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_context_menu.py +++ /dev/null @@ -1,58 +0,0 @@ -import pytest - -import examples.controls.context_menu.programmatic_open.main as programmatic_open -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.enable_screenshots = True - flet_app_function.resize_page(250, 200) - flet_app_function.page.add( - menu := ft.ContextMenu( - content=ft.IconButton(ft.Icons.MENU), - items=[ - ft.PopupMenuItem("Rename"), - ft.PopupMenuItem("Duplicate"), - ], - ) - ) - await flet_app_function.tester.pump_and_settle() - - # open menu - await menu.open() - await flet_app_function.tester.pump_and_settle() - - flet_app_function.assert_screenshot( - request.node.name, - await flet_app_function.page.take_screenshot( - pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), - ) - - -@pytest.mark.parametrize( - "flet_app_function", - [{"flet_app_main": programmatic_open.main}], - indirect=True, -) -@pytest.mark.asyncio(loop_scope="function") -async def test_programmatic_open(flet_app_function: ftt.FletTestApp): - flet_app_function.page.enable_screenshots = True - flet_app_function.resize_page(300, 300) - flet_app_function.page.update() - await flet_app_function.tester.pump_and_settle() - - # click button to open menu - await flet_app_function.tester.tap( - await flet_app_function.tester.find_by_text("Click to open menu") - ) - await flet_app_function.tester.pump_and_settle() - - flet_app_function.assert_screenshot( - test_programmatic_open.__name__, - await flet_app_function.page.take_screenshot( - pixel_ratio=flet_app_function.screenshots_pixel_ratio - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_divider.py b/sdk/python/packages/flet/integration_tests/examples/material/test_divider.py deleted file mode 100644 index 148cef1161..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_divider.py +++ /dev/null @@ -1,21 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.Column( - width=240, - spacing=10, - controls=[ - ft.Text("Section A", weight=ft.FontWeight.W_600), - ft.Divider(), - ft.Text("Section B"), - ], - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_dropdown.py b/sdk/python/packages/flet/integration_tests/examples/material/test_dropdown.py deleted file mode 100644 index 1d4c9b821a..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_dropdown.py +++ /dev/null @@ -1,20 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.Dropdown( - width=220, - value="alice", - options=[ - ft.dropdown.Option(key="alice", text="Alice"), - ft.dropdown.Option(key="bob", text="Bob"), - ], - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_expansion_panel_list.py b/sdk/python/packages/flet/integration_tests/examples/material/test_expansion_panel_list.py deleted file mode 100644 index b033b0a3a5..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_expansion_panel_list.py +++ /dev/null @@ -1,26 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.ExpansionPanelList( - width=400, - controls=[ - ft.ExpansionPanel( - header=ft.Text("Details"), - content=ft.Text("More information here"), - expanded=True, - ), - ft.ExpansionPanel( - header=ft.Text("History"), - content=ft.Text("View previous updates"), - ), - ], - ), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_filled_button.py b/sdk/python/packages/flet/integration_tests/examples/material/test_filled_button.py deleted file mode 100644 index 50c8510a8c..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_filled_button.py +++ /dev/null @@ -1,13 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.FilledButton(content="Tap me"), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_filled_tonal_button.py b/sdk/python/packages/flet/integration_tests/examples/material/test_filled_tonal_button.py deleted file mode 100644 index d731d340fa..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_filled_tonal_button.py +++ /dev/null @@ -1,13 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.FilledTonalButton(content="Tap me"), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_floating_action_button.py b/sdk/python/packages/flet/integration_tests/examples/material/test_floating_action_button.py deleted file mode 100644 index ddfdd6238f..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_floating_action_button.py +++ /dev/null @@ -1,13 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.FloatingActionButton(icon=ft.Icons.ADD), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_icon_button.py b/sdk/python/packages/flet/integration_tests/examples/material/test_icon_button.py deleted file mode 100644 index 91632e01f3..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_icon_button.py +++ /dev/null @@ -1,13 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.IconButton(icon=ft.Icons.FAVORITE, icon_color=ft.Colors.PRIMARY), - ) diff --git a/sdk/python/packages/flet/integration_tests/examples/material/test_list_tile.py b/sdk/python/packages/flet/integration_tests/examples/material/test_list_tile.py deleted file mode 100644 index 7c583f6ece..0000000000 --- a/sdk/python/packages/flet/integration_tests/examples/material/test_list_tile.py +++ /dev/null @@ -1,20 +0,0 @@ -import pytest - -import flet as ft -import flet.testing as ftt - - -@pytest.mark.asyncio(loop_scope="function") -async def test_image_for_docs(flet_app_function: ftt.FletTestApp, request): - flet_app_function.page.theme_mode = ft.ThemeMode.LIGHT - await flet_app_function.assert_control_screenshot( - request.node.name, - ft.ListTile( - width=400, - leading=ft.Icon(ft.Icons.ACCOUNT_CIRCLE), - title="Jane Doe", - subtitle="Product Manager", - trailing=ft.Icon(ft.Icons.CHEVRON_RIGHT), - bgcolor=ft.Colors.SURFACE_CONTAINER_LOW, - ), - ) diff --git a/sdk/python/packages/flet/src/flet/controls/base_page.py b/sdk/python/packages/flet/src/flet/controls/base_page.py index a723841896..4e40d41faa 100644 --- a/sdk/python/packages/flet/src/flet/controls/base_page.py +++ b/sdk/python/packages/flet/src/flet/controls/base_page.py @@ -489,6 +489,41 @@ async def take_screenshot( "take_screenshot", arguments={"pixel_ratio": pixel_ratio, "delay": delay} ) + async def take_animation( + self, + name: str, + frame_delays_ms: list[int], + pixel_ratio: Optional[Number] = None, + ) -> list[bytes]: + """ + Captures an animated sequence of page screenshots in a single + round-trip. Each entry in `frame_delays_ms` is the delay in + milliseconds to wait before capturing that frame. The wait and + capture loop runs entirely on the Flutter side, so animation + timing isn't distorted by Python-Flutter RPC latency the way it + is with a Python-driven `take_screenshot` loop. + + Requires `enable_screenshots` = `True`. + + Args: + name: Name prefix for the captured frames (for debugging). + frame_delays_ms: Per-frame delays in milliseconds. The list + length determines the number of frames captured. + pixel_ratio: A pixel ratio of the captured frames. + If `None`, device-specific pixel ratio will be used. + + Returns: + List of PNG-encoded frames, one per entry in `frame_delays_ms`. + """ + return await self._invoke_method( + "take_animation", + arguments={ + "name": name, + "frame_delays_ms": frame_delays_ms, + "pixel_ratio": pixel_ratio, + }, + ) + # overlay @property def overlay(self) -> list[BaseControl]: diff --git a/sdk/python/packages/flet/src/flet/controls/material/date_picker.py b/sdk/python/packages/flet/src/flet/controls/material/date_picker.py index e8dfca2ee6..7de5ab9e41 100644 --- a/sdk/python/packages/flet/src/flet/controls/material/date_picker.py +++ b/sdk/python/packages/flet/src/flet/controls/material/date_picker.py @@ -86,6 +86,16 @@ class DatePicker(DialogControl): Depending on the :attr:`entry_mode`, it will show either a Calendar or an Input (TextField) for picking a date. + + ```python + picker = ft.DatePicker() + + ft.Button( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda _: page.show_dialog(picker), + ) + ``` """ value: Optional[DateTimeValue] = None diff --git a/sdk/python/packages/flet/src/flet/controls/material/date_range_picker.py b/sdk/python/packages/flet/src/flet/controls/material/date_range_picker.py index 3ea6cf09ac..c3b2d69134 100644 --- a/sdk/python/packages/flet/src/flet/controls/material/date_range_picker.py +++ b/sdk/python/packages/flet/src/flet/controls/material/date_range_picker.py @@ -30,6 +30,16 @@ class DateRangePicker(DialogControl): Depending on the :attr:`entry_mode`, it will show either a Calendar or an Input (text field) for picking a date range. + + ```python + picker = ft.DateRangePicker() + + ft.Button( + "Pick date range", + icon=ft.Icons.DATE_RANGE, + on_click=lambda _: page.show_dialog(picker), + ) + ``` """ start_value: Optional[DateTimeValue] = None diff --git a/sdk/python/packages/flet/src/flet/controls/material/dropdownm2.py b/sdk/python/packages/flet/src/flet/controls/material/dropdownm2.py index cd376226f3..a5136b3b9a 100644 --- a/sdk/python/packages/flet/src/flet/controls/material/dropdownm2.py +++ b/sdk/python/packages/flet/src/flet/controls/material/dropdownm2.py @@ -12,6 +12,7 @@ IconDataOrControl, Number, ) +from flet.utils.deprecated import deprecated_class from flet.utils.validation import V, ValidationRules __all__ = ["DropdownM2", "Option"] @@ -74,6 +75,11 @@ class Option(Control): ) +@deprecated_class( + reason="Use Dropdown instead.", + version="0.84.0", + delete_version="1.0", +) @control("DropdownM2") class DropdownM2(FormFieldControl): """ diff --git a/sdk/python/packages/flet/src/flet/testing/flet_test_app.py b/sdk/python/packages/flet/src/flet/testing/flet_test_app.py index 8f6d4da46a..33cf45e15a 100644 --- a/sdk/python/packages/flet/src/flet/testing/flet_test_app.py +++ b/sdk/python/packages/flet/src/flet/testing/flet_test_app.py @@ -4,14 +4,14 @@ import os import platform import tempfile -from collections.abc import Iterable +from collections.abc import Iterable, Sequence from enum import Enum from io import BytesIO from pathlib import Path from typing import TYPE_CHECKING, Optional, Union import numpy as np -from PIL import Image +from PIL import Image, ImageSequence from skimage.metrics import structural_similarity as ssim import flet as ft @@ -500,29 +500,45 @@ def _compare_images_rgb(self, img1: Image.Image, img2: Image.Image) -> float: def create_gif( self, - image_names: Iterable[str], - output_name: str, + image_names: Optional[Iterable[str]] = None, + output_name: str = "", *, - duration: int = 1000, + frames: Optional[Iterable[bytes]] = None, + duration: Union[int, Sequence[int]] = 1000, loop: int = 0, disposal: DisposalMode = DisposalMode.DEFAULT, ) -> Path: - """Create an animated GIF from a sequence of image files. + """Create an animated GIF from a sequence of PNG frames. + + Exactly one of ``image_names`` or ``frames`` must be provided. Unlike + :meth:`assert_gif`, this method only writes the GIF and returns its + path; it does not compare against a golden file. Args: image_names: Iterable of file name stems (without ``.png``) in the - order they should appear in the animation. + order they should appear in the animation. Frames are read from + disk under the test's golden directory. output_name: Base name for the resulting animation. The ``.gif`` extension is added automatically and the file is stored in the - same directory as the provided frames. - duration: Frame duration in milliseconds. Defaults to ``300``. + same directory as the source frames. + frames: Iterable of PNG-encoded frame bytes to use directly, in the + order they should appear in the animation. Typically paired + with :meth:`Page.take_animation`. + duration: Frame duration in milliseconds. Either a single ``int`` + applied to every frame, or a sequence of ``int`` with one + entry per frame. Pass the same list used for + ``take_animation(frame_delays_ms=...)`` to have the GIF play + at the same pace it was captured. loop: Number of times the GIF should repeat (``0`` means infinite). + disposal: Frame disposal mode. Returns: Path to the generated GIF file. Raises: - ValueError: If ``image_names`` is empty. + ValueError: If neither or both of ``image_names`` / ``frames`` are + given, the input is empty, or a ``duration`` sequence has a + different length than the frame count. FileNotFoundError: If any referenced image file does not exist. """ @@ -530,52 +546,215 @@ def create_gif( raise ValueError("test_path must be set to create GIF animations") if not self.test_platform: raise ValueError("test_platform must be set to create GIF animations") + if (image_names is None) == (frames is None): + raise ValueError("Exactly one of image_names or frames must be provided") + + golden_dir = self._golden_dir() + output = golden_dir / f"{output_name}.gif" + output.parent.mkdir(parents=True, exist_ok=True) - names = list(image_names) - if not names: - raise ValueError("image_names must contain at least one entry") + if image_names is not None: + names = list(image_names) + if not names: + raise ValueError("image_names must contain at least one entry") + frame_bytes_list: list[bytes] = [] + for name in names: + path = golden_dir / f"{name}.png" + if not path.exists(): + raise FileNotFoundError(path) + frame_bytes_list.append(path.read_bytes()) + else: + frame_bytes_list = list(frames or ()) - stem = output_name - golden_dir = ( + gif_bytes = self._frames_to_gif_bytes( + frame_bytes_list, duration, loop, disposal + ) + output.write_bytes(gif_bytes) + return output + + def _golden_dir(self) -> Path: + return ( Path(self.__test_path).parent / "golden" / self.test_platform / Path(self.__test_path).stem.removeprefix("test_") ) - output = golden_dir / f"{stem}.gif" - output.parent.mkdir(parents=True, exist_ok=True) - frames: list[Image.Image] = [] + def _frames_to_gif_bytes( + self, + frames: list[bytes], + duration: Union[int, Sequence[int]], + loop: int, + disposal: DisposalMode, + ) -> bytes: + if not frames: + raise ValueError("frames must contain at least one entry") + gif_frames: list[Image.Image] = [] try: - for name in names: - path = golden_dir / f"{name}.png" - if not path.exists(): - raise FileNotFoundError(path) + for frame_bytes in frames: + with Image.open(BytesIO(frame_bytes)) as img: + gif_frames.append( + img.convert("RGB").convert( + "P", palette=Image.ADAPTIVE, colors=256 + ) + ) - frames.append( - Image.open(path) - .convert("RGB") - .convert( - "P", - palette=Image.ADAPTIVE, - colors=256, + if isinstance(duration, int): + save_duration: Union[int, list[int]] = duration + else: + save_duration = list(duration) + if len(save_duration) != len(gif_frames): + raise ValueError( + f"duration sequence length ({len(save_duration)}) must " + f"match frame count ({len(gif_frames)})" ) - ) - first, *rest = frames + first, *rest = gif_frames + out = BytesIO() first.save( - output, + out, + format="GIF", save_all=True, append_images=rest, - duration=duration, + duration=save_duration, loop=loop, optimize=True, disposal=disposal.value, ) + return out.getvalue() finally: - for frame in frames: + for frame in gif_frames: frame.close() - return output + def _gif_frames_from_bytes(self, data: bytes) -> list[Image.Image]: + frames: list[Image.Image] = [] + with Image.open(BytesIO(data)) as gif: + for frame in ImageSequence.Iterator(gif): + frames.append(frame.convert("RGBA")) + return frames + + def _assert_gif_bytes( + self, name: str, golden_gif_bytes: bytes, actual_gif_bytes: bytes + ) -> None: + golden_frames = self._gif_frames_from_bytes(golden_gif_bytes) + actual_frames = self._gif_frames_from_bytes(actual_gif_bytes) + try: + assert len(golden_frames) == len(actual_frames), ( + f"{name} GIF frame count differs " + f"({len(actual_frames)} != {len(golden_frames)})" + ) + for index, (golden_frame, actual_frame) in enumerate( + zip(golden_frames, actual_frames, strict=True) + ): + similarity = self._compare_images_rgb(golden_frame, actual_frame) + print(f"GIF similarity for {name} frame {index}: {similarity}%") + assert similarity > self.screenshots_similarity_threshold, ( + f"{name} GIF frame {index} differs " + f"(similarity: {similarity}% <= " + f"{self.screenshots_similarity_threshold}%)" + ) + except AssertionError: + actual_gif_path = self._golden_dir() / f"{name}_actual.gif" + actual_gif_path.write_bytes(actual_gif_bytes) + raise + finally: + for frame in golden_frames: + frame.close() + for frame in actual_frames: + frame.close() + + def assert_gif( + self, + name: str, + frames: Iterable[bytes], + *, + duration: Union[int, Sequence[int]] = 1000, + loop: int = 0, + disposal: DisposalMode = DisposalMode.DEFAULT, + similarity_threshold: float = 0, + ): + """Compare an animated GIF built from `frames` against a golden GIF. + + Builds the GIF in memory from the provided frames. If the + `FLET_TEST_GOLDEN=1` environment variable is set, writes the GIF as + the golden reference. Otherwise loads the existing golden GIF from + disk and compares frame-by-frame via structural similarity, saving + an `_actual.gif` next to the golden on mismatch. + + Args: + name: GIF name - will be used as a base for the GIF file name. + frames: Iterable of PNG-encoded frame bytes. Typically the result + of `Page.take_animation(...)`. + duration: Frame duration in milliseconds. Either a single `int` + or a per-frame sequence matching the number of frames. + loop: Number of times the GIF should repeat (`0` means infinite). + disposal: Frame disposal mode. + similarity_threshold: Minimum acceptable per-frame SSIM (%). Uses + `screenshots_similarity_threshold` when `0`. + """ + if not self.test_platform: + raise RuntimeError( + "FLET_TEST_PLATFORM environment variable must be set to test with GIFs" + ) + if not self.__test_path: + raise RuntimeError("test_path must be set to test with GIFs") + + gif_bytes = self._frames_to_gif_bytes(list(frames), duration, loop, disposal) + + golden_gif_path = self._golden_dir() / f"{name.removeprefix('test_')}.gif" + + if self.__golden: + golden_gif_path.parent.mkdir(parents=True, exist_ok=True) + golden_gif_path.write_bytes(gif_bytes) + return + + if not golden_gif_path.exists(): + raise RuntimeError(f"Golden GIF for {name} not found: {golden_gif_path}") + + similarity, frame_count_mismatch = self._compare_gifs( + golden_gif_path, gif_bytes + ) + print(f"Similarity for {name}: {similarity}%") + if similarity_threshold == 0: + similarity_threshold = self.screenshots_similarity_threshold + + if frame_count_mismatch or similarity <= similarity_threshold: + actual_gif_path = ( + golden_gif_path.parent + / f"{golden_gif_path.parent.stem}_{golden_gif_path.stem}_actual.gif" # noqa: E501 + ) + actual_gif_path.write_bytes(gif_bytes) + + if frame_count_mismatch: + raise AssertionError(frame_count_mismatch) + assert similarity > similarity_threshold, ( + f"{name} GIFs are not identical " + f"(similarity: {similarity}% <= {similarity_threshold}%)" + ) + + def _compare_gifs( + self, golden_path: Path, current_bytes: bytes + ) -> tuple[float, Optional[str]]: + """Returns (min-per-frame similarity, frame-count-mismatch message).""" + with ( + Image.open(golden_path) as golden, + Image.open(BytesIO(current_bytes)) as current, + ): + if golden.n_frames != current.n_frames: + return ( + 0.0, + f"GIF frame count mismatch: " + f"golden={golden.n_frames}, current={current.n_frames}", + ) + similarities: list[float] = [] + for i in range(golden.n_frames): + golden.seek(i) + current.seek(i) + similarities.append( + self._compare_images_rgb( + golden.convert("RGB"), current.convert("RGB") + ) + ) + return min(similarities), None __pump_and_settle_timeout = 10.0 diff --git a/sdk/python/packages/flet/src/flet/testing/tester.py b/sdk/python/packages/flet/src/flet/testing/tester.py index 159eff910f..e2ade7b808 100644 --- a/sdk/python/packages/flet/src/flet/testing/tester.py +++ b/sdk/python/packages/flet/src/flet/testing/tester.py @@ -122,6 +122,41 @@ async def tap(self, finder: Finder): "tap", {"finder_id": finder.id, "finder_index": finder.index} ) + async def mouse_click(self, finder: Finder): + """ + Dispatch a primary mouse click at the center of the given control. + + Args: + finder: Finder to search for a control. + """ + await self._invoke_method( + "mouse_click", {"finder_id": finder.id, "finder_index": finder.index} + ) + + async def right_mouse_click(self, finder: Finder): + """ + Dispatch a secondary mouse click at the center of the given control. + + Args: + finder: Finder to search for a control. + """ + await self._invoke_method( + "right_mouse_click", + {"finder_id": finder.id, "finder_index": finder.index}, + ) + + async def mouse_double_click(self, finder: Finder): + """ + Dispatch a primary mouse double click at the center of the given control. + + Args: + finder: Finder to search for a control. + """ + await self._invoke_method( + "mouse_double_click", + {"finder_id": finder.id, "finder_index": finder.index}, + ) + async def tap_at(self, offset: Offset): """ Dispatch a pointer down / pointer up sequence at the given offset. @@ -131,6 +166,56 @@ async def tap_at(self, offset: Offset): """ await self._invoke_method("tap_at", {"offset": offset}) + async def mouse_click_at(self, offset: Offset): + """ + Dispatch a primary mouse click at the given offset. + + Args: + offset: Offset value at which the click will occur. + """ + await self._invoke_method("mouse_click_at", {"offset": offset}) + + async def right_mouse_click_at(self, offset: Offset): + """ + Dispatch a secondary mouse click at the given offset. + + Args: + offset: Offset value at which the click will occur. + """ + await self._invoke_method("right_mouse_click_at", {"offset": offset}) + + async def mouse_double_click_at(self, offset: Offset): + """ + Dispatch a primary mouse double click at the given offset. + + Args: + offset: Offset value at which the double click will occur. + """ + await self._invoke_method("mouse_double_click_at", {"offset": offset}) + + async def drag(self, finder: Finder, offset: Offset): + """ + Drag from the center of the given control by the provided offset. + + Args: + finder: Finder to search for a control. + offset: Offset delta to drag by. + """ + await self._invoke_method( + "drag", + {"finder_id": finder.id, "finder_index": finder.index, "offset": offset}, + ) + + async def drag_from(self, start: Offset, offset: Offset): + """ + Drag from the given start offset by the provided offset delta. + + Args: + start: Initial pointer location. + offset: Offset delta to drag by. + """ + await self._invoke_method("drag_from", {"start": start, "offset": offset}) + async def long_press(self, finder: Finder): """ Dispatch a pointer down / pointer up sequence (with a delay of 600 ms between \ diff --git a/sdk/python/packages/flet/tests/test_deprecated.py b/sdk/python/packages/flet/tests/test_deprecated.py index 4b2bec1bad..a8a30b877c 100644 --- a/sdk/python/packages/flet/tests/test_deprecated.py +++ b/sdk/python/packages/flet/tests/test_deprecated.py @@ -8,6 +8,7 @@ import pytest +import flet as ft from flet.utils.deprecated import deprecated, deprecated_class, deprecated_warning @@ -160,3 +161,14 @@ def test_deprecated_warning_points_to_user_code_through_flet_frames(): warning = captured[0] assert warning.filename == __file__ assert warning.lineno == expected_line + + +def test_dropdownm2_warns_with_removal_version(): + with pytest.warns( + DeprecationWarning, + match=re.escape( + "DropdownM2 is deprecated since version 0.84.0 and will be removed in " + "version 1.0. Use Dropdown instead." + ), + ): + ft.DropdownM2() diff --git a/website/blog/2026-04-01-flet-v-0-84-release-announcement.md b/website/blog/2026-04-01-flet-v-0-84-release-announcement.md index a83ab8f329..173483d241 100644 --- a/website/blog/2026-04-01-flet-v-0-84-release-announcement.md +++ b/website/blog/2026-04-01-flet-v-0-84-release-announcement.md @@ -148,20 +148,25 @@ After - a structured project directory: ``` sdk/python/examples/controls/ -├── button/ -│ ├── basic/ -│ │ ├── main.py -│ │ └── pyproject.toml -│ ├── icons/ -│ │ ├── main.py -│ │ └── pyproject.toml -│ └── styling/ -│ ├── main.py -│ └── pyproject.toml -├── canvas/ -│ ├── bezier_curves/ -│ ├── brush/ -│ └── ... +├── material/ +│ └── button/ +│ ├── basic/ +│ │ ├── main.py +│ │ └── pyproject.toml +│ ├── icons/ +│ │ ├── main.py +│ │ └── pyproject.toml +│ └── styling/ +│ ├── main.py +│ └── pyproject.toml +├── core/ +│ └── canvas/ +│ ├── bezier_curves/ +│ ├── brush/ +│ └── ... +└── cupertino/ + └── cupertino_button/ + └── basic/ ``` Each `pyproject.toml` includes Gallery and MCP metadata: diff --git a/website/docs/controls/ads/bannerad.md b/website/docs/controls/ads/bannerad.md index ca40792063..d91c3b16d3 100644 --- a/website/docs/controls/ads/bannerad.md +++ b/website/docs/controls/ads/bannerad.md @@ -1,7 +1,7 @@ --- class_name: "flet_ads.banner_ad.BannerAd" -examples: "controls/ads" -example_images: "examples/controls/ads/media" +examples: "extensions/ads" +example_images: "examples/extensions/ads/media" title: "BannerAd" --- diff --git a/website/docs/controls/ads/index.md b/website/docs/controls/ads/index.md index 8a3b00bea6..c946b693d2 100644 --- a/website/docs/controls/ads/index.md +++ b/website/docs/controls/ads/index.md @@ -1,6 +1,6 @@ --- -examples: "controls/ads" -example_images: "examples/controls/ads/media" +examples: "extensions/ads" +example_images: "examples/extensions/ads/media" title: "Ads" --- diff --git a/website/docs/controls/ads/interstitialad.md b/website/docs/controls/ads/interstitialad.md index ce56692aa0..8e559976a9 100644 --- a/website/docs/controls/ads/interstitialad.md +++ b/website/docs/controls/ads/interstitialad.md @@ -1,7 +1,7 @@ --- class_name: "flet_ads.interstitial_ad.InterstitialAd" -examples: "controls/ads" -example_images: "examples/controls/ads/media" +examples: "extensions/ads" +example_images: "examples/extensions/ads/media" title: "InterstitialAd" --- diff --git a/website/docs/controls/alertdialog.md b/website/docs/controls/alertdialog.md index 3dd6cde1a7..5c2e131b9d 100644 --- a/website/docs/controls/alertdialog.md +++ b/website/docs/controls/alertdialog.md @@ -1,7 +1,7 @@ --- class_name: "flet.AlertDialog" -examples: "controls/alert_dialog" -example_images: "test-images/examples/material/golden/macos/alert_dialog" +examples: "controls/material/alert_dialog" +example_images: "test-images/examples/controls/material/golden/macos/alert_dialog" title: "AlertDialog" --- diff --git a/website/docs/controls/animatedswitcher.md b/website/docs/controls/animatedswitcher.md index 209921aada..6789fa7966 100644 --- a/website/docs/controls/animatedswitcher.md +++ b/website/docs/controls/animatedswitcher.md @@ -1,7 +1,7 @@ --- class_name: "flet.AnimatedSwitcher" -examples: "controls/animated_switcher" -example_images: "examples/controls/animated_switcher/media" +examples: "controls/core/animated_switcher" +example_images: "examples/controls/core/animated_switcher/media" title: "AnimatedSwitcher" --- diff --git a/website/docs/controls/appbar.md b/website/docs/controls/appbar.md index c0d8e0345a..df5a292160 100644 --- a/website/docs/controls/appbar.md +++ b/website/docs/controls/appbar.md @@ -1,8 +1,8 @@ --- class_name: "flet.AppBar" -examples: "controls/app_bar" -example_images: "test-images/examples/material/golden/macos/app_bar" -example_media: "examples/controls/app_bar/media" +examples: "controls/material/app_bar" +example_images: "test-images/examples/controls/material/golden/macos/app_bar" +example_media: "examples/controls/material/app_bar/media" title: "AppBar" --- @@ -18,10 +18,12 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -actions-and-popup-menu +actions-and-popup-menu ### Theme and Material Mode Toggles +theme-and-material-mode-toggles + diff --git a/website/docs/controls/autocomplete.md b/website/docs/controls/autocomplete.md index e8dd6e0931..f90be7ae78 100644 --- a/website/docs/controls/autocomplete.md +++ b/website/docs/controls/autocomplete.md @@ -1,11 +1,11 @@ --- class_name: "flet.AutoComplete" -examples: "controls/auto_complete" -example_images: "examples/controls/auto_complete/media" +examples: "controls/material/auto_complete" +example_images: "test-images/examples/controls/material/golden/macos/auto_complete" title: "AutoComplete" --- -import {ClassMembers, ClassSummary, CodeExample} from '@site/src/components/crocodocs'; +import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/components/crocodocs'; @@ -17,4 +17,6 @@ import {ClassMembers, ClassSummary, CodeExample} from '@site/src/components/croc +auto-complete-basic-example + diff --git a/website/docs/controls/autofillgroup.md b/website/docs/controls/autofillgroup.md index beb2c98bfc..59c3805cdf 100644 --- a/website/docs/controls/autofillgroup.md +++ b/website/docs/controls/autofillgroup.md @@ -1,7 +1,7 @@ --- class_name: "flet.AutofillGroup" -examples: "controls/autofill_group" -example_images: "examples/controls/autofill_group/media" +examples: "controls/material/autofill_group" +example_images: "examples/controls/material/autofill_group/media" title: "AutofillGroup" --- diff --git a/website/docs/controls/banner.md b/website/docs/controls/banner.md index 07a24381b8..f782b6b01d 100644 --- a/website/docs/controls/banner.md +++ b/website/docs/controls/banner.md @@ -1,8 +1,8 @@ --- class_name: "flet.Banner" -examples: "controls/banner" -example_images: "test-images/examples/material/golden/macos/banner" -example_media: "examples/controls/banner/media" +examples: "controls/material/banner" +example_images: "test-images/examples/controls/material/golden/macos/banner" +example_media: "examples/controls/material/banner/media" title: "Banner" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic diff --git a/website/docs/controls/bottomappbar.md b/website/docs/controls/bottomappbar.md index ad39003c69..816f7e5182 100644 --- a/website/docs/controls/bottomappbar.md +++ b/website/docs/controls/bottomappbar.md @@ -1,7 +1,7 @@ --- class_name: "flet.BottomAppBar" -examples: "controls/bottom_app_bar" -example_images: "test-images/examples/material/golden/macos/bottom_app_bar" +examples: "controls/material/bottom_app_bar" +example_images: "test-images/examples/controls/material/golden/macos/bottom_app_bar" title: "BottomAppBar" --- diff --git a/website/docs/controls/bottomsheet.md b/website/docs/controls/bottomsheet.md index f83c501232..1b065339f2 100644 --- a/website/docs/controls/bottomsheet.md +++ b/website/docs/controls/bottomsheet.md @@ -1,7 +1,7 @@ --- class_name: "flet.BottomSheet" -examples: "controls/bottom_sheet" -example_images: "test-images/examples/material/golden/macos/bottom_sheet" +examples: "controls/material/bottom_sheet" +example_images: "test-images/examples/controls/material/golden/macos/bottom_sheet" title: "BottomSheet" --- diff --git a/website/docs/controls/button.md b/website/docs/controls/button.md index d7422ec0c7..2cc965769c 100644 --- a/website/docs/controls/button.md +++ b/website/docs/controls/button.md @@ -1,7 +1,7 @@ --- class_name: "flet.Button" -examples: "controls/button" -example_images: "test-images/examples/material/golden/macos/button" +examples: "controls/material/button" +example_images: "test-images/examples/controls/material/golden/macos/button" title: "Button" --- diff --git a/website/docs/controls/camera/index.md b/website/docs/controls/camera/index.md index 76930e895c..ce765eb7cb 100644 --- a/website/docs/controls/camera/index.md +++ b/website/docs/controls/camera/index.md @@ -1,6 +1,6 @@ --- class_name: "flet_camera.Camera" -examples: "controls/camera" +examples: "extensions/camera" title: "Camera" --- diff --git a/website/docs/controls/canvas/index.md b/website/docs/controls/canvas/index.md index ba5d41d3dd..c08f95cab2 100644 --- a/website/docs/controls/canvas/index.md +++ b/website/docs/controls/canvas/index.md @@ -1,8 +1,8 @@ --- class_name: "flet.canvas.Canvas" -examples: "controls/canvas" -example_images: "test-images/examples/core/golden/macos/canvas" -example_media: "examples/controls/canvas/media" +examples: "controls/core/canvas" +example_images: "test-images/examples/controls/core/golden/macos/canvas" +example_media: "examples/controls/core/canvas/media" title: "Canvas" --- diff --git a/website/docs/controls/card.md b/website/docs/controls/card.md index 5c23ba6e28..48ca5260a3 100644 --- a/website/docs/controls/card.md +++ b/website/docs/controls/card.md @@ -1,7 +1,7 @@ --- class_name: "flet.Card" -examples: "controls/card" -example_images: "test-images/examples/material/golden/macos/card" +examples: "controls/material/card" +example_images: "test-images/examples/controls/material/golden/macos/card" title: "Card" --- diff --git a/website/docs/controls/charts/barchart.md b/website/docs/controls/charts/barchart.md index 4b6e747ebd..07aae7bc1a 100644 --- a/website/docs/controls/charts/barchart.md +++ b/website/docs/controls/charts/barchart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.bar_chart.BarChart" -examples: "controls/charts/bar_chart" +examples: "extensions/charts/bar_chart" example_images: "test-images-charts/examples/golden/macos/bar_chart" diagram: "/docs/assets/controls/charts/bar-chart-diagram.svg" title: "BarChart" diff --git a/website/docs/controls/charts/candlestickchart.md b/website/docs/controls/charts/candlestickchart.md index 328e285144..1b0176d772 100644 --- a/website/docs/controls/charts/candlestickchart.md +++ b/website/docs/controls/charts/candlestickchart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.candlestick_chart.CandlestickChart" -examples: "controls/charts/candlestick_chart" +examples: "extensions/charts/candlestick_chart" example_images: "test-images-charts/examples/golden/macos/candlestick_chart" title: "CandlestickChart" --- diff --git a/website/docs/controls/charts/index.md b/website/docs/controls/charts/index.md index 7e1d2ecbec..3cc60f56c8 100644 --- a/website/docs/controls/charts/index.md +++ b/website/docs/controls/charts/index.md @@ -1,5 +1,5 @@ --- -examples: "controls/charts" +examples: "extensions/charts" title: "Overview" --- diff --git a/website/docs/controls/charts/linechart.md b/website/docs/controls/charts/linechart.md index 5722b7614f..d6a4912eae 100644 --- a/website/docs/controls/charts/linechart.md +++ b/website/docs/controls/charts/linechart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.line_chart.LineChart" -examples: "controls/charts/line_chart" +examples: "extensions/charts/line_chart" example_images: "test-images-charts/examples/golden/macos/line_chart" diagram: "/docs/assets/controls/charts/line-chart-diagram.svg" title: "LineChart" diff --git a/website/docs/controls/charts/matplotlibchart.md b/website/docs/controls/charts/matplotlibchart.md index 2b1349ca63..ad71b65565 100644 --- a/website/docs/controls/charts/matplotlibchart.md +++ b/website/docs/controls/charts/matplotlibchart.md @@ -1,8 +1,8 @@ --- class_name: "flet_charts.matplotlib_chart.MatplotlibChart" -examples: "controls/charts/matplotlib_chart" +examples: "extensions/charts/matplotlib_chart" example_images: "test-images-charts/examples/golden/macos/matplotlib_chart" -example_media: "examples/controls/charts/matplotlib_chart/media" +example_media: "examples/extensions/charts/matplotlib_chart/media" title: "MatplotlibChart" --- diff --git a/website/docs/controls/charts/matplotlibchartwithtoolbar.md b/website/docs/controls/charts/matplotlibchartwithtoolbar.md index a9552ce3b5..41728d9833 100644 --- a/website/docs/controls/charts/matplotlibchartwithtoolbar.md +++ b/website/docs/controls/charts/matplotlibchartwithtoolbar.md @@ -1,8 +1,8 @@ --- class_name: "flet_charts.matplotlib_chart_with_toolbar.MatplotlibChartWithToolbar" -examples: "controls/charts/matplotlib_chart" +examples: "extensions/charts/matplotlib_chart" example_images: "test-images-charts/examples/golden/macos/matplotlib_chart" -example_media: "examples/controls/charts/matplotlib_chart/media" +example_media: "examples/extensions/charts/matplotlib_chart/media" title: "MatplotlibChartWithToolbar" --- diff --git a/website/docs/controls/charts/piechart.md b/website/docs/controls/charts/piechart.md index 6989ccfc63..6c4b3dbd79 100644 --- a/website/docs/controls/charts/piechart.md +++ b/website/docs/controls/charts/piechart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.pie_chart.PieChart" -examples: "controls/charts/pie_chart" +examples: "extensions/charts/pie_chart" example_images: "test-images-charts/examples/golden/macos/pie_chart" diagram: "/docs/assets/controls/charts/pie-chart-diagram.svg" title: "PieChart" diff --git a/website/docs/controls/charts/plotlychart.md b/website/docs/controls/charts/plotlychart.md index 5f6e8492e0..d125a595df 100644 --- a/website/docs/controls/charts/plotlychart.md +++ b/website/docs/controls/charts/plotlychart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.plotly_chart.PlotlyChart" -examples: "controls/charts/plotly_chart" +examples: "extensions/charts/plotly_chart" example_images: "test-images-charts/examples/golden/macos/plotly_chart" title: "PlotlyChart" --- diff --git a/website/docs/controls/charts/radarchart.md b/website/docs/controls/charts/radarchart.md index 798d6f191b..dac5aaa738 100644 --- a/website/docs/controls/charts/radarchart.md +++ b/website/docs/controls/charts/radarchart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.radar_chart.RadarChart" -examples: "controls/charts/radar_chart" +examples: "extensions/charts/radar_chart" example_images: "test-images-charts/examples/golden/macos/radar_chart" title: "RadarChart" --- diff --git a/website/docs/controls/charts/scatterchart.md b/website/docs/controls/charts/scatterchart.md index bb6e2719f4..7850a9b727 100644 --- a/website/docs/controls/charts/scatterchart.md +++ b/website/docs/controls/charts/scatterchart.md @@ -1,6 +1,6 @@ --- class_name: "flet_charts.scatter_chart.ScatterChart" -examples: "controls/charts/scatter_chart" +examples: "extensions/charts/scatter_chart" example_images: "test-images-charts/examples/golden/macos/scatter_chart" title: "ScatterChart" --- diff --git a/website/docs/controls/checkbox.md b/website/docs/controls/checkbox.md index 002fbe1a64..4ceb56c455 100644 --- a/website/docs/controls/checkbox.md +++ b/website/docs/controls/checkbox.md @@ -1,7 +1,7 @@ --- class_name: "flet.Checkbox" -examples: "controls/checkbox" -example_images: "test-images/examples/material/golden/macos/checkbox" +examples: "controls/material/checkbox" +example_images: "test-images/examples/controls/material/golden/macos/checkbox" title: "Checkbox" --- @@ -29,6 +29,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -Styled checkboxes +Styled checkboxes diff --git a/website/docs/controls/chip.md b/website/docs/controls/chip.md index 9b90275464..5bb9516d73 100644 --- a/website/docs/controls/chip.md +++ b/website/docs/controls/chip.md @@ -1,8 +1,8 @@ --- class_name: "flet.Chip" -examples: "controls/chip" -example_images: "test-images/examples/material/golden/macos/chip" -example_media: "examples/controls/chip/media" +examples: "controls/material/chip" +example_images: "test-images/examples/controls/material/golden/macos/chip" +example_media: "examples/controls/material/chip/media" title: "Chip" --- @@ -25,7 +25,7 @@ An alternative to assist chips are buttons, which should appear persistently and -assist-chips +assist-chips ### Filter chips @@ -36,6 +36,6 @@ They can be a good alternative to switches or checkboxes. -filter-chips +filter-chips diff --git a/website/docs/controls/circleavatar.md b/website/docs/controls/circleavatar.md index 732614a7d3..6e47dbee8c 100644 --- a/website/docs/controls/circleavatar.md +++ b/website/docs/controls/circleavatar.md @@ -1,8 +1,8 @@ --- class_name: "flet.CircleAvatar" -examples: "controls/circle_avatar" -example_images: "test-images/examples/material/golden/macos/circle_avatar" -example_media: "examples/controls/circle_avatar/media" +examples: "controls/material/circle_avatar" +example_images: "test-images/examples/controls/material/golden/macos/circle_avatar" +example_media: "examples/controls/material/circle_avatar/media" title: "CircleAvatar" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -user-avatars +user-avatars diff --git a/website/docs/controls/codeeditor/index.md b/website/docs/controls/codeeditor/index.md index f8ef74c23d..db56616908 100644 --- a/website/docs/controls/codeeditor/index.md +++ b/website/docs/controls/codeeditor/index.md @@ -1,6 +1,6 @@ --- class_name: "flet_code_editor.CodeEditor" -examples: "controls/code_editor" +examples: "extensions/code_editor" example_images: "test-images/examples/extensions/code_editor/golden/macos/code_editor" title: "CodeEditor" --- diff --git a/website/docs/controls/colorpickers/blockpicker.md b/website/docs/controls/colorpickers/blockpicker.md index 33ede3d2f4..6ff023b604 100644 --- a/website/docs/controls/colorpickers/blockpicker.md +++ b/website/docs/controls/colorpickers/blockpicker.md @@ -1,6 +1,6 @@ --- class_name: "flet_color_pickers.BlockPicker" -examples: "controls/color_pickers" +examples: "extensions/color_pickers" example_images: "test-images/examples/extensions/color_pickers/golden/macos/color_pickers" title: "BlockPicker" --- diff --git a/website/docs/controls/colorpickers/colorpicker.md b/website/docs/controls/colorpickers/colorpicker.md index 630a181c20..d2515f389b 100644 --- a/website/docs/controls/colorpickers/colorpicker.md +++ b/website/docs/controls/colorpickers/colorpicker.md @@ -1,6 +1,6 @@ --- class_name: "flet_color_pickers.ColorPicker" -examples: "controls/color_pickers" +examples: "extensions/color_pickers" example_images: "test-images/examples/extensions/color_pickers/golden/macos/color_pickers" title: "ColorPicker" --- diff --git a/website/docs/controls/colorpickers/hueringpicker.md b/website/docs/controls/colorpickers/hueringpicker.md index c67d4104dc..99d671fc7c 100644 --- a/website/docs/controls/colorpickers/hueringpicker.md +++ b/website/docs/controls/colorpickers/hueringpicker.md @@ -1,6 +1,6 @@ --- class_name: "flet_color_pickers.HueRingPicker" -examples: "controls/color_pickers" +examples: "extensions/color_pickers" example_images: "test-images/examples/extensions/color_pickers/golden/macos/color_pickers" title: "HueRingPicker" --- diff --git a/website/docs/controls/colorpickers/index.md b/website/docs/controls/colorpickers/index.md index c0f042255f..9ccdb98df9 100644 --- a/website/docs/controls/colorpickers/index.md +++ b/website/docs/controls/colorpickers/index.md @@ -1,5 +1,5 @@ --- -examples: "controls/color_pickers" +examples: "extensions/color_pickers" title: "Color pickers" --- diff --git a/website/docs/controls/colorpickers/materialpicker.md b/website/docs/controls/colorpickers/materialpicker.md index 81c7fe07f2..1a2ca3baaa 100644 --- a/website/docs/controls/colorpickers/materialpicker.md +++ b/website/docs/controls/colorpickers/materialpicker.md @@ -1,6 +1,6 @@ --- class_name: "flet_color_pickers.MaterialPicker" -examples: "controls/color_pickers" +examples: "extensions/color_pickers" example_images: "test-images/examples/extensions/color_pickers/golden/macos/color_pickers" title: "MaterialPicker" --- diff --git a/website/docs/controls/colorpickers/multiplechoiceblockpicker.md b/website/docs/controls/colorpickers/multiplechoiceblockpicker.md index c7f3e95d7a..903ebfce81 100644 --- a/website/docs/controls/colorpickers/multiplechoiceblockpicker.md +++ b/website/docs/controls/colorpickers/multiplechoiceblockpicker.md @@ -1,6 +1,6 @@ --- class_name: "flet_color_pickers.MultipleChoiceBlockPicker" -examples: "controls/color_pickers" +examples: "extensions/color_pickers" example_images: "test-images/examples/extensions/color_pickers/golden/macos/color_pickers" title: "MultipleChoiceBlockPicker" --- diff --git a/website/docs/controls/colorpickers/slidepicker.md b/website/docs/controls/colorpickers/slidepicker.md index 13a9fdb3f1..393967c3a4 100644 --- a/website/docs/controls/colorpickers/slidepicker.md +++ b/website/docs/controls/colorpickers/slidepicker.md @@ -1,6 +1,6 @@ --- class_name: "flet_color_pickers.SlidePicker" -examples: "controls/color_pickers" +examples: "extensions/color_pickers" example_images: "test-images/examples/extensions/color_pickers/golden/macos/color_pickers" title: "SlidePicker" --- diff --git a/website/docs/controls/column.md b/website/docs/controls/column.md index dcaf58a37d..6515a79109 100644 --- a/website/docs/controls/column.md +++ b/website/docs/controls/column.md @@ -1,8 +1,8 @@ --- class_name: "flet.Column" -examples: "controls/column" -example_images: "test-images/examples/core/golden/macos/column" -example_media: "examples/controls/column/media" +examples: "controls/core/column" +example_images: "test-images/examples/controls/core/golden/macos/column" +example_media: "examples/controls/core/column/media" title: "Column" --- diff --git a/website/docs/controls/container.md b/website/docs/controls/container.md index 1f0fbb3162..f12b3ba4ba 100644 --- a/website/docs/controls/container.md +++ b/website/docs/controls/container.md @@ -1,8 +1,8 @@ --- class_name: "flet.Container" -examples: "controls/container" -example_media: "examples/controls/container/media" -example_images: "test-images/examples/core/golden/macos/container" +examples: "controls/core/container" +example_media: "examples/controls/core/container/media" +example_images: "test-images/examples/controls/core/golden/macos/container" title: "Container" --- diff --git a/website/docs/controls/contextmenu.md b/website/docs/controls/contextmenu.md index 2171e7b7b1..4743331fe5 100644 --- a/website/docs/controls/contextmenu.md +++ b/website/docs/controls/contextmenu.md @@ -1,7 +1,7 @@ --- class_name: "flet.ContextMenu" -examples: "controls/context_menu" -example_images: "test-images/examples/material/golden/macos/context_menu" +examples: "controls/material/context_menu" +example_images: "test-images/examples/controls/material/golden/macos/context_menu" title: "ContextMenu" --- @@ -15,14 +15,18 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -## Programmatic open + + +### Programmatic open -## Programmatic open with custom trigger +### Programmatic open with custom trigger + + diff --git a/website/docs/controls/cupertinoactionsheet/index.md b/website/docs/controls/cupertinoactionsheet/index.md index 2afadbc380..9f9468dccc 100644 --- a/website/docs/controls/cupertinoactionsheet/index.md +++ b/website/docs/controls/cupertinoactionsheet/index.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoActionSheet" -examples: "controls/cupertino_action_sheet" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_action_sheet" -example_media: "examples/controls/cupertino_action_sheet/media" +examples: "controls/cupertino/cupertino_action_sheet" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_action_sheet" +example_media: "examples/controls/cupertino/cupertino_action_sheet/media" title: "CupertinoActionSheet" --- diff --git a/website/docs/controls/cupertinoactivityindicator.md b/website/docs/controls/cupertinoactivityindicator.md index 0138e198f3..56ede40e9e 100644 --- a/website/docs/controls/cupertinoactivityindicator.md +++ b/website/docs/controls/cupertinoactivityindicator.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoActivityIndicator" -examples: "controls/cupertino_activity_indicator" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_activity_indicator" -example_media: "examples/controls/cupertino_activity_indicator/media" +examples: "controls/cupertino/cupertino_activity_indicator" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_activity_indicator" +example_media: "examples/controls/cupertino/cupertino_activity_indicator/media" title: "CupertinoActivityIndicator" --- diff --git a/website/docs/controls/cupertinoalertdialog.md b/website/docs/controls/cupertinoalertdialog.md index a3e65af9a5..5f85abc6e2 100644 --- a/website/docs/controls/cupertinoalertdialog.md +++ b/website/docs/controls/cupertinoalertdialog.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoAlertDialog" -examples: "controls/cupertino_alert_dialog" -example_images: "examples/controls/cupertino_alert_dialog/media" +examples: "controls/cupertino/cupertino_alert_dialog" +example_images: "examples/controls/cupertino/cupertino_alert_dialog/media" title: "CupertinoAlertDialog" --- diff --git a/website/docs/controls/cupertinoappbar.md b/website/docs/controls/cupertinoappbar.md index 946123ef7f..8a73b8f740 100644 --- a/website/docs/controls/cupertinoappbar.md +++ b/website/docs/controls/cupertinoappbar.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoAppBar" -examples: "controls/cupertino_app_bar" -example_images: "examples/controls/cupertino_app_bar/media" +examples: "controls/cupertino/cupertino_app_bar" +example_images: "examples/controls/cupertino/cupertino_app_bar/media" title: "CupertinoAppBar" --- diff --git a/website/docs/controls/cupertinobottomsheet.md b/website/docs/controls/cupertinobottomsheet.md index 7512fd20eb..a16fe1126a 100644 --- a/website/docs/controls/cupertinobottomsheet.md +++ b/website/docs/controls/cupertinobottomsheet.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoBottomSheet" -examples: "controls/cupertino_action_sheet" -example_images: "examples/controls/cupertino_action_sheet/media" +examples: "controls/cupertino/cupertino_action_sheet" +example_images: "examples/controls/cupertino/cupertino_action_sheet/media" title: "CupertinoBottomSheet" --- diff --git a/website/docs/controls/cupertinobutton.md b/website/docs/controls/cupertinobutton.md index 46a9377cf2..e25251f317 100644 --- a/website/docs/controls/cupertinobutton.md +++ b/website/docs/controls/cupertinobutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoButton" -examples: "controls/cupertino_button" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_button" -example_media: "examples/controls/cupertino_button/media" +examples: "controls/cupertino/cupertino_button" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_button" +example_media: "examples/controls/cupertino/cupertino_button/media" title: "CupertinoButton" --- diff --git a/website/docs/controls/cupertinocheckbox.md b/website/docs/controls/cupertinocheckbox.md index 6cf668ad81..6042f3db78 100644 --- a/website/docs/controls/cupertinocheckbox.md +++ b/website/docs/controls/cupertinocheckbox.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoCheckbox" -examples: "controls/cupertino_checkbox" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_checkbox" -example_media: "examples/controls/cupertino_checkbox/media" +examples: "controls/cupertino/cupertino_checkbox" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_checkbox" +example_media: "examples/controls/cupertino/cupertino_checkbox/media" title: "CupertinoCheckbox" --- diff --git a/website/docs/controls/cupertinocontextmenu/index.md b/website/docs/controls/cupertinocontextmenu/index.md index 8a60201102..6f5c1b769c 100644 --- a/website/docs/controls/cupertinocontextmenu/index.md +++ b/website/docs/controls/cupertinocontextmenu/index.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoContextMenu" -examples: "controls/cupertino_context_menu" -example_images: "examples/controls/cupertino_context_menu/media" +examples: "controls/cupertino/cupertino_context_menu" +example_images: "examples/controls/cupertino/cupertino_context_menu/media" title: "CupertinoContextMenu" --- diff --git a/website/docs/controls/cupertinodatepicker.md b/website/docs/controls/cupertinodatepicker.md index 0835e0d523..23947eed76 100644 --- a/website/docs/controls/cupertinodatepicker.md +++ b/website/docs/controls/cupertinodatepicker.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoDatePicker" -examples: "controls/cupertino_date_picker" -example_images: "examples/controls/cupertino_date_picker/media" +examples: "controls/cupertino/cupertino_date_picker" +example_images: "examples/controls/cupertino/cupertino_date_picker/media" title: "CupertinoDatePicker" --- diff --git a/website/docs/controls/cupertinofilledbutton.md b/website/docs/controls/cupertinofilledbutton.md index 88064cfea2..afdbab6fc3 100644 --- a/website/docs/controls/cupertinofilledbutton.md +++ b/website/docs/controls/cupertinofilledbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoFilledButton" -examples: "controls/cupertino_filled_button" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_filled_button" -example_media: "examples/controls/cupertino_filled_button/media" +examples: "controls/cupertino/cupertino_filled_button" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_filled_button" +example_media: "examples/controls/cupertino/cupertino_filled_button/media" title: "CupertinoFilledButton" --- diff --git a/website/docs/controls/cupertinolisttile.md b/website/docs/controls/cupertinolisttile.md index 3107c303aa..fab8ceea95 100644 --- a/website/docs/controls/cupertinolisttile.md +++ b/website/docs/controls/cupertinolisttile.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoListTile" -examples: "controls/cupertino_list_tile" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_list_tile" -example_media: "examples/controls/cupertino_list_tile/media" +examples: "controls/cupertino/cupertino_list_tile" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_list_tile" +example_media: "examples/controls/cupertino/cupertino_list_tile/media" title: "CupertinoListTile" --- diff --git a/website/docs/controls/cupertinonavigationbar.md b/website/docs/controls/cupertinonavigationbar.md index 0b74096ceb..fbdff805aa 100644 --- a/website/docs/controls/cupertinonavigationbar.md +++ b/website/docs/controls/cupertinonavigationbar.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoNavigationBar" -examples: "controls/cupertino_navigation_bar" -example_images: "examples/controls/cupertino_navigation_bar/media" +examples: "controls/cupertino/cupertino_navigation_bar" +example_images: "examples/controls/cupertino/cupertino_navigation_bar/media" title: "CupertinoNavigationBar" --- diff --git a/website/docs/controls/cupertinopicker.md b/website/docs/controls/cupertinopicker.md index ad9ad2e82f..51a28335e7 100644 --- a/website/docs/controls/cupertinopicker.md +++ b/website/docs/controls/cupertinopicker.md @@ -1,7 +1,7 @@ --- class_name: "flet.CupertinoPicker" -examples: "controls/cupertino_picker" -example_images: "examples/controls/cupertino_picker/media" +examples: "controls/cupertino/cupertino_picker" +example_images: "examples/controls/cupertino/cupertino_picker/media" title: "CupertinoPicker" --- diff --git a/website/docs/controls/cupertinoradio.md b/website/docs/controls/cupertinoradio.md index cb983ba30c..76af4198f1 100644 --- a/website/docs/controls/cupertinoradio.md +++ b/website/docs/controls/cupertinoradio.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoRadio" -examples: "controls/cupertino_radio" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_radio" -example_media: "examples/controls/cupertino_radio/media" +examples: "controls/cupertino/cupertino_radio" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_radio" +example_media: "examples/controls/cupertino/cupertino_radio/media" title: "CupertinoRadio" --- diff --git a/website/docs/controls/cupertinosegmentedbutton.md b/website/docs/controls/cupertinosegmentedbutton.md index 7af605f764..1ab0e1b70a 100644 --- a/website/docs/controls/cupertinosegmentedbutton.md +++ b/website/docs/controls/cupertinosegmentedbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoSegmentedButton" -examples: "controls/cupertino_segmented_button" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_segmented_button" -example_media: "examples/controls/cupertino_segmented_button/media" +examples: "controls/cupertino/cupertino_segmented_button" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_segmented_button" +example_media: "examples/controls/cupertino/cupertino_segmented_button/media" title: "CupertinoSegmentedButton" --- diff --git a/website/docs/controls/cupertinoslider.md b/website/docs/controls/cupertinoslider.md index ff4a60d839..8345600c18 100644 --- a/website/docs/controls/cupertinoslider.md +++ b/website/docs/controls/cupertinoslider.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoSlider" -examples: "controls/cupertino_slider" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_slider" -example_media: "examples/controls/cupertino_slider/media" +examples: "controls/cupertino/cupertino_slider" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_slider" +example_media: "examples/controls/cupertino/cupertino_slider/media" title: "CupertinoSlider" --- diff --git a/website/docs/controls/cupertinoslidingsegmentedbutton.md b/website/docs/controls/cupertinoslidingsegmentedbutton.md index a4e9cdff8d..ae0f02c6e2 100644 --- a/website/docs/controls/cupertinoslidingsegmentedbutton.md +++ b/website/docs/controls/cupertinoslidingsegmentedbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoSlidingSegmentedButton" -examples: "controls/cupertino_sliding_segmented_button" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_sliding_segmented_button" -example_media: "examples/controls/cupertino_sliding_segmented_button/media" +examples: "controls/cupertino/cupertino_sliding_segmented_button" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_sliding_segmented_button" +example_media: "examples/controls/cupertino/cupertino_sliding_segmented_button/media" title: "CupertinoSlidingSegmentedButton" --- diff --git a/website/docs/controls/cupertinoswitch.md b/website/docs/controls/cupertinoswitch.md index 10de38777d..c36f846d25 100644 --- a/website/docs/controls/cupertinoswitch.md +++ b/website/docs/controls/cupertinoswitch.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoSwitch" -examples: "controls/cupertino_switch" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_switch" -example_media: "examples/controls/cupertino_switch/media" +examples: "controls/cupertino/cupertino_switch" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_switch" +example_media: "examples/controls/cupertino/cupertino_switch/media" title: "CupertinoSwitch" --- diff --git a/website/docs/controls/cupertinotextfield.md b/website/docs/controls/cupertinotextfield.md index 34508c11b9..84b2e0cbde 100644 --- a/website/docs/controls/cupertinotextfield.md +++ b/website/docs/controls/cupertinotextfield.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoTextField" -examples: "controls/cupertino_text_field" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_textfield" -example_media: "examples/controls/cupertino_text_field/media" +examples: "controls/cupertino/cupertino_text_field" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_textfield" +example_media: "examples/controls/cupertino/cupertino_text_field/media" title: "CupertinoTextField" --- diff --git a/website/docs/controls/cupertinotimerpicker.md b/website/docs/controls/cupertinotimerpicker.md index 02517c9e29..3b59023602 100644 --- a/website/docs/controls/cupertinotimerpicker.md +++ b/website/docs/controls/cupertinotimerpicker.md @@ -1,8 +1,8 @@ --- class_name: "flet.CupertinoTimerPicker" -examples: "controls/cupertino_timer_picker" -example_media: "examples/controls/cupertino_timer_picker/media" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_timer_picker" +examples: "controls/cupertino/cupertino_timer_picker" +example_media: "examples/controls/cupertino/cupertino_timer_picker/media" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_timer_picker" title: "CupertinoTimerPicker" --- diff --git a/website/docs/controls/cupertinotintedbutton.md b/website/docs/controls/cupertinotintedbutton.md index 370191f614..507766d556 100644 --- a/website/docs/controls/cupertinotintedbutton.md +++ b/website/docs/controls/cupertinotintedbutton.md @@ -1,6 +1,6 @@ --- class_name: "flet.CupertinoTintedButton" -example_images: "test-images/examples/cupertino/golden/macos/cupertino_tinted_button" +example_images: "test-images/examples/controls/cupertino/golden/macos/cupertino_tinted_button" title: "CupertinoTintedButton" --- diff --git a/website/docs/controls/datatable/index.md b/website/docs/controls/datatable/index.md index 6376ab0b69..b88227eb42 100644 --- a/website/docs/controls/datatable/index.md +++ b/website/docs/controls/datatable/index.md @@ -1,7 +1,7 @@ --- class_name: "flet.DataTable" -examples: "controls/data_table" -example_images: "test-images/examples/material/golden/macos/datatable" +examples: "controls/material/data_table" +example_images: "test-images/examples/controls/material/golden/macos/datatable" title: "DataTable" --- @@ -29,6 +29,8 @@ Use [`column_spacing`](index.md#flet.DataTable.column_spacing) to control spacin + + ### Adaptive row heights Setting [`data_row_max_height`](index.md#flet.DataTable.data_row_max_height) to `float('inf')` @@ -37,6 +39,8 @@ respective content, instead of all rows having the same height. + + ### Sortable columns and selectable rows This example demonstrates row selection (including select-all), @@ -50,4 +54,6 @@ sortable string and numeric columns, and stable selection across sorts and refre + + diff --git a/website/docs/controls/datatable2/index.md b/website/docs/controls/datatable2/index.md index c6c88f7d5b..28dbb91c26 100644 --- a/website/docs/controls/datatable2/index.md +++ b/website/docs/controls/datatable2/index.md @@ -1,6 +1,6 @@ --- -examples: "controls/datatable2" -example_media: "examples/controls/datatable2/media" +examples: "extensions/datatable2" +example_media: "examples/extensions/datatable2/media" title: "Overview" --- diff --git a/website/docs/controls/datepicker.md b/website/docs/controls/datepicker.md index 26b8298800..ec67110d10 100644 --- a/website/docs/controls/datepicker.md +++ b/website/docs/controls/datepicker.md @@ -1,13 +1,13 @@ --- class_name: "flet.DatePicker" -examples: "controls/date_picker" -example_images: "examples/controls/date_picker/media" +examples: "controls/material/date_picker" +example_images: "test-images/examples/controls/material/golden/macos/date_picker" title: "DatePicker" --- import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/components/crocodocs'; - + ## Examples @@ -17,6 +17,12 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic + +### Custom locale + + + +custom-locale diff --git a/website/docs/controls/daterangepicker.md b/website/docs/controls/daterangepicker.md index 59faf2dab7..7d83190ddf 100644 --- a/website/docs/controls/daterangepicker.md +++ b/website/docs/controls/daterangepicker.md @@ -1,13 +1,13 @@ --- class_name: "flet.DateRangePicker" -examples: "controls/date_range_picker" -example_images: "test-images/controls/material/golden/macos/date_range_picker" +examples: "controls/material/date_range_picker" +example_images: "test-images/examples/controls/material/golden/macos/date_range_picker" title: "DateRangePicker" --- import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/components/crocodocs'; - + ## Examples @@ -17,6 +17,12 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic + +### Custom locale + + + +custom-locale diff --git a/website/docs/controls/dismissible.md b/website/docs/controls/dismissible.md index dcabb8b0c6..a97c2644ce 100644 --- a/website/docs/controls/dismissible.md +++ b/website/docs/controls/dismissible.md @@ -1,7 +1,7 @@ --- class_name: "flet.Dismissible" -examples: "controls/dismissible" -example_images: "examples/controls/dismissible/media" +examples: "controls/core/dismissible" +example_images: "examples/controls/core/dismissible/media" title: "Dismissible" --- diff --git a/website/docs/controls/divider.md b/website/docs/controls/divider.md index 63eb9d8c92..bff91f27dd 100644 --- a/website/docs/controls/divider.md +++ b/website/docs/controls/divider.md @@ -1,8 +1,8 @@ --- class_name: "flet.Divider" -examples: "controls/divider" -example_images: "test-images/examples/material/golden/macos/divider" -example_media: "examples/controls/divider/media" +examples: "controls/material/divider" +example_images: "test-images/examples/controls/material/golden/macos/divider" +example_media: "examples/controls/material/divider/media" title: "Divider" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic diff --git a/website/docs/controls/draggable.md b/website/docs/controls/draggable.md index 924e79ade5..67778aa479 100644 --- a/website/docs/controls/draggable.md +++ b/website/docs/controls/draggable.md @@ -1,7 +1,7 @@ --- class_name: "flet.Draggable" -examples: "controls/drag_target_and_draggable" -example_images: "examples/controls/drag_target_and_draggable/media" +examples: "controls/core/drag_target_and_draggable" +example_images: "examples/controls/core/drag_target_and_draggable/media" title: "Draggable" --- diff --git a/website/docs/controls/dropdown/index.md b/website/docs/controls/dropdown/index.md index 99640e4aa1..6226e7f360 100644 --- a/website/docs/controls/dropdown/index.md +++ b/website/docs/controls/dropdown/index.md @@ -1,8 +1,7 @@ --- class_name: "flet.Dropdown" -examples: "controls/dropdown" -example_images: "test-images/examples/material/golden/macos/dropdown" -example_media: "examples/controls/dropdown/media" +examples: "controls/material/dropdown" +example_images: "test-images/examples/controls/material/golden/macos/dropdown" title: "Dropdown" --- @@ -20,16 +19,30 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -color-selection-with-filtering +color-selection-with-filtering ### Icon selection -icon-selection +icon-selection + +### Declarative dropdown + + + +declarative-dropdown + +### Select and change events + + + +select-and-change-events ### Styled dropdowns +styled-dropdowns + diff --git a/website/docs/controls/dropdownm2.md b/website/docs/controls/dropdownm2.md index cb6ffcef5d..0574737690 100644 --- a/website/docs/controls/dropdownm2.md +++ b/website/docs/controls/dropdownm2.md @@ -1,8 +1,8 @@ --- class_name: "flet.DropdownM2" -examples: "controls/dropdown_m2" -example_images: "test-images/examples/material/golden/macos/dropdown_m2" -example_media: "examples/controls/dropdown_m2/media" +examples: "controls/material/dropdown_m2" +example_images: "test-images/examples/controls/material/golden/macos/dropdown_m2" +example_media: "examples/controls/material/dropdown_m2/media" title: "DropdownM2" --- diff --git a/website/docs/controls/expansionpanel.md b/website/docs/controls/expansionpanel.md index 1f13db111f..1067a751de 100644 --- a/website/docs/controls/expansionpanel.md +++ b/website/docs/controls/expansionpanel.md @@ -1,6 +1,6 @@ --- class_name: "flet.ExpansionPanel" -example_images: "test-images/examples/material/golden/macos/expansion_panel" +example_images: "test-images/examples/controls/material/golden/macos/expansion_panel" title: "ExpansionPanel" --- diff --git a/website/docs/controls/expansionpanellist.md b/website/docs/controls/expansionpanellist.md index 586f745165..a0467d35dc 100644 --- a/website/docs/controls/expansionpanellist.md +++ b/website/docs/controls/expansionpanellist.md @@ -1,8 +1,8 @@ --- class_name: "flet.ExpansionPanelList" -examples: "controls/expansion_panel_list" -example_images: "test-images/examples/material/golden/macos/expansion_panel_list" -example_media: "examples/controls/expansion_panel_list/media" +examples: "controls/material/expansion_panel_list" +example_images: "test-images/examples/controls/material/golden/macos/expansion_panel_list" +example_media: "examples/controls/material/expansion_panel_list/media" title: "ExpansionPanelList" --- @@ -18,7 +18,7 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen - + ### Scrolling @@ -26,4 +26,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen + + diff --git a/website/docs/controls/expansiontile.md b/website/docs/controls/expansiontile.md index e55c4407f6..822a99e448 100644 --- a/website/docs/controls/expansiontile.md +++ b/website/docs/controls/expansiontile.md @@ -1,7 +1,7 @@ --- class_name: "flet.ExpansionTile" -examples: "controls/expansion_tile" -example_images: "test-images/examples/material/golden/macos/expansion_tile" +examples: "controls/material/expansion_tile" +example_images: "test-images/examples/controls/material/golden/macos/expansion_tile" title: "ExpansionTile" --- @@ -19,14 +19,18 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -## Programmatic expansion/collapse +### Programmatic expansion/collapse -## Custom animations + + +### Custom animations + + ### Theme mode toggle @@ -35,4 +39,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen + + diff --git a/website/docs/controls/filledbutton.md b/website/docs/controls/filledbutton.md index ee076131a2..33c8ecdaf1 100644 --- a/website/docs/controls/filledbutton.md +++ b/website/docs/controls/filledbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.FilledButton" -examples: "controls/filled_button" -example_images: "test-images/examples/material/golden/macos/filled_button" -example_media: "examples/controls/filled_button/media" +examples: "controls/material/filled_button" +example_images: "test-images/examples/controls/material/golden/macos/filled_button" +example_media: "examples/controls/material/filled_button/media" title: "FilledButton" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic diff --git a/website/docs/controls/fillediconbutton.md b/website/docs/controls/fillediconbutton.md index 2dd493f85c..b9194aeb60 100644 --- a/website/docs/controls/fillediconbutton.md +++ b/website/docs/controls/fillediconbutton.md @@ -1,6 +1,6 @@ --- class_name: "flet.FilledIconButton" -example_images: "test-images/examples/material/golden/macos/filled_icon_button" +example_images: "test-images/examples/controls/material/golden/macos/filled_icon_button" title: "FilledIconButton" --- diff --git a/website/docs/controls/filledtonalbutton.md b/website/docs/controls/filledtonalbutton.md index fb2ae8a834..f6d62d33f0 100644 --- a/website/docs/controls/filledtonalbutton.md +++ b/website/docs/controls/filledtonalbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.FilledTonalButton" -examples: "controls/filled_tonal_button" -example_images: "test-images/examples/material/golden/macos/filled_tonal_button" -example_media: "examples/controls/filled_tonal_button/media" +examples: "controls/material/filled_tonal_button" +example_images: "test-images/examples/controls/material/golden/macos/filled_tonal_button" +example_media: "examples/controls/material/filled_tonal_button/media" title: "FilledTonalButton" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic diff --git a/website/docs/controls/filledtonaliconbutton.md b/website/docs/controls/filledtonaliconbutton.md index 1bc5343d69..80d3478bdb 100644 --- a/website/docs/controls/filledtonaliconbutton.md +++ b/website/docs/controls/filledtonaliconbutton.md @@ -1,6 +1,6 @@ --- class_name: "flet.FilledTonalIconButton" -example_images: "test-images/examples/material/golden/macos/filled_tonal_icon_button" +example_images: "test-images/examples/controls/material/golden/macos/filled_tonal_icon_button" title: "FilledTonalIconButton" --- diff --git a/website/docs/controls/floatingactionbutton.md b/website/docs/controls/floatingactionbutton.md index e1c6021fb6..85fe6fb02a 100644 --- a/website/docs/controls/floatingactionbutton.md +++ b/website/docs/controls/floatingactionbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.FloatingActionButton" -examples: "controls/floating_action_button" -example_images: "test-images/examples/material/golden/macos/floating_action_button" -example_media: "examples/controls/floating_action_button/media" +examples: "controls/material/floating_action_button" +example_images: "test-images/examples/controls/material/golden/macos/floating_action_button" +example_media: "examples/controls/material/floating_action_button/media" title: "FloatingActionButton" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -handling-clicks +handling-clicks diff --git a/website/docs/controls/gesturedetector.md b/website/docs/controls/gesturedetector.md index 7946e27002..aadcfef5a8 100644 --- a/website/docs/controls/gesturedetector.md +++ b/website/docs/controls/gesturedetector.md @@ -1,7 +1,7 @@ --- class_name: "flet.GestureDetector" -examples: "controls/gesture_detector" -example_images: "examples/controls/gesture_detector/media" +examples: "controls/core/gesture_detector" +example_images: "examples/controls/core/gesture_detector/media" title: "GestureDetector" --- diff --git a/website/docs/controls/gridview.md b/website/docs/controls/gridview.md index c130942e40..89dbda99bc 100644 --- a/website/docs/controls/gridview.md +++ b/website/docs/controls/gridview.md @@ -1,8 +1,8 @@ --- class_name: "flet.GridView" -examples: "controls/grid_view" -example_images: "test-images/examples/core/golden/macos/grid_view" -example_media: "examples/controls/grid_view/media" +examples: "controls/core/grid_view" +example_images: "test-images/examples/controls/core/golden/macos/grid_view" +example_media: "examples/controls/core/grid_view/media" title: "GridView" --- diff --git a/website/docs/controls/hero.md b/website/docs/controls/hero.md index 8806a816b0..511bc5ef4a 100644 --- a/website/docs/controls/hero.md +++ b/website/docs/controls/hero.md @@ -1,7 +1,7 @@ --- class_name: "flet.Hero" -examples: "controls/hero" -example_images: "test-images/examples/core/golden/macos/hero" +examples: "controls/core/hero" +example_images: "test-images/examples/controls/core/golden/macos/hero" title: "Hero" --- diff --git a/website/docs/controls/icon.md b/website/docs/controls/icon.md index be15eb40dc..62b53aa4f3 100644 --- a/website/docs/controls/icon.md +++ b/website/docs/controls/icon.md @@ -1,8 +1,8 @@ --- class_name: "flet.Icon" -examples: "controls/icon" -example_images: "test-images/examples/core/golden/macos/icon" -example_media: "examples/controls/icon/media" +examples: "controls/core/icon" +example_images: "test-images/examples/controls/core/golden/macos/icon" +example_media: "examples/controls/core/icon/media" title: "Icon" --- diff --git a/website/docs/controls/iconbutton.md b/website/docs/controls/iconbutton.md index 79cddb13c2..cd9d7145f6 100644 --- a/website/docs/controls/iconbutton.md +++ b/website/docs/controls/iconbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.IconButton" -examples: "controls/icon_button" -example_images: "test-images/examples/material/golden/macos/icon_button" -example_media: "examples/controls/icon_button/media" +examples: "controls/material/icon_button" +example_images: "test-images/examples/controls/material/golden/macos/icon_button" +example_media: "examples/controls/material/icon_button/media" title: "IconButton" --- @@ -18,10 +18,18 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -handling-clicks +handling-clicks ### Selected icon +selected-icon + +### Variants + + + +variants + diff --git a/website/docs/controls/image.md b/website/docs/controls/image.md index f63f86e975..a89c94bfb6 100644 --- a/website/docs/controls/image.md +++ b/website/docs/controls/image.md @@ -1,8 +1,8 @@ --- class_name: "flet.Image" -examples: "controls/image" -example_images: "test-images/examples/core/golden/macos/image" -example_media: "examples/controls/image/media" +examples: "controls/core/image" +example_images: "test-images/examples/controls/core/golden/macos/image" +example_media: "examples/controls/core/image/media" title: "Image" --- diff --git a/website/docs/controls/interactiveviewer.md b/website/docs/controls/interactiveviewer.md index a67f758954..8cb56a20d4 100644 --- a/website/docs/controls/interactiveviewer.md +++ b/website/docs/controls/interactiveviewer.md @@ -1,6 +1,6 @@ --- class_name: "flet.InteractiveViewer" -examples: "controls/interactive_viewer" +examples: "controls/core/interactive_viewer" title: "InteractiveViewer" --- diff --git a/website/docs/controls/keyboardlistener.md b/website/docs/controls/keyboardlistener.md index 69514af09e..c730a871b9 100644 --- a/website/docs/controls/keyboardlistener.md +++ b/website/docs/controls/keyboardlistener.md @@ -1,6 +1,6 @@ --- class_name: "flet.KeyboardListener" -examples: "controls/keyboard_listener" +examples: "controls/core/keyboard_listener" title: "KeyboardListener" --- diff --git a/website/docs/controls/layoutcontrol.md b/website/docs/controls/layoutcontrol.md index 6e9667e892..3d6fe719ea 100644 --- a/website/docs/controls/layoutcontrol.md +++ b/website/docs/controls/layoutcontrol.md @@ -1,6 +1,6 @@ --- class_name: "flet.LayoutControl" -examples: "controls/layout_control" +examples: "controls/core/layout_control" example_images: "test-images/controls/core/golden/macos/layout_control" example_images_examples: "../test-images/examples/core/golden/macos/layout_control" title: "LayoutControl" diff --git a/website/docs/controls/listtile.md b/website/docs/controls/listtile.md index f2b78b293b..6325116ea7 100644 --- a/website/docs/controls/listtile.md +++ b/website/docs/controls/listtile.md @@ -1,8 +1,8 @@ --- class_name: "flet.ListTile" -examples: "controls/list_tile" -example_images: "test-images/examples/material/golden/macos/list_tile" -example_media: "examples/controls/list_tile/media" +examples: "controls/material/list_tile" +example_images: "test-images/examples/controls/material/golden/macos/list_tile" +example_media: "examples/controls/material/list_tile/media" title: "ListTile" --- @@ -18,6 +18,6 @@ import {ClassMembers, ClassSummary, CodeExample, Image} from '@site/src/componen -basic +basic diff --git a/website/docs/controls/listview.md b/website/docs/controls/listview.md index 7f435acfb2..94f2b48587 100644 --- a/website/docs/controls/listview.md +++ b/website/docs/controls/listview.md @@ -1,8 +1,8 @@ --- class_name: "flet.ListView" -examples: "controls/list_view" -example_media: "examples/controls/list_view/media" -example_images: "test-images/examples/core/golden/macos/list_view" +examples: "controls/core/list_view" +example_media: "examples/controls/core/list_view/media" +example_images: "test-images/examples/controls/core/golden/macos/list_view" title: "ListView" --- diff --git a/website/docs/controls/lottie/index.md b/website/docs/controls/lottie/index.md index 3ed43cd18b..600fc98b2a 100644 --- a/website/docs/controls/lottie/index.md +++ b/website/docs/controls/lottie/index.md @@ -1,6 +1,6 @@ --- class_name: "flet_lottie.Lottie" -examples: "controls/lottie" +examples: "extensions/lottie" title: "Lottie" --- diff --git a/website/docs/controls/map/index.md b/website/docs/controls/map/index.md index 5d75fefea6..3aaf40efb8 100644 --- a/website/docs/controls/map/index.md +++ b/website/docs/controls/map/index.md @@ -1,5 +1,5 @@ --- -examples: "controls/map" +examples: "extensions/map" title: "Overview" --- diff --git a/website/docs/controls/markdown.md b/website/docs/controls/markdown.md index e6fcef4373..7689273d3c 100644 --- a/website/docs/controls/markdown.md +++ b/website/docs/controls/markdown.md @@ -1,8 +1,8 @@ --- class_name: "flet.Markdown" -examples: "controls/markdown" -example_images: "test-images/examples/core/golden/macos/markdown" -example_media: "examples/controls/markdown/media" +examples: "controls/core/markdown" +example_images: "test-images/examples/controls/core/golden/macos/markdown" +example_media: "examples/controls/core/markdown/media" title: "Markdown" --- diff --git a/website/docs/controls/menubar.md b/website/docs/controls/menubar.md index 5ea3d41a48..f0e785d290 100644 --- a/website/docs/controls/menubar.md +++ b/website/docs/controls/menubar.md @@ -1,7 +1,7 @@ --- class_name: "flet.MenuBar" -examples: "controls/menu_bar" -example_images: "test-images/examples/material/golden/macos/menu_bar" +examples: "controls/material/menu_bar" +example_images: "test-images/examples/controls/material/golden/macos/menu_bar" title: "MenuBar" --- diff --git a/website/docs/controls/menuitembutton.md b/website/docs/controls/menuitembutton.md index da93e70f03..46866376e7 100644 --- a/website/docs/controls/menuitembutton.md +++ b/website/docs/controls/menuitembutton.md @@ -1,7 +1,7 @@ --- class_name: "flet.MenuItemButton" -examples: "controls/menu_item_button" -example_images: "test-images/examples/material/golden/macos/menu_item_button" +examples: "controls/material/menu_item_button" +example_images: "test-images/examples/controls/material/golden/macos/menu_item_button" title: "MenuItemButton" --- diff --git a/website/docs/controls/navigationbar/index.md b/website/docs/controls/navigationbar/index.md index 069076258d..c150fff647 100644 --- a/website/docs/controls/navigationbar/index.md +++ b/website/docs/controls/navigationbar/index.md @@ -1,7 +1,7 @@ --- class_name: "flet.NavigationBar" -examples: "controls/navigation_bar" -example_images: "test-images/examples/material/golden/macos/navigation_bar" +examples: "controls/material/navigation_bar" +example_images: "test-images/examples/controls/material/golden/macos/navigation_bar" title: "NavigationBar" --- diff --git a/website/docs/controls/navigationdrawer/index.md b/website/docs/controls/navigationdrawer/index.md index 4f65bb9fad..d6040f5277 100644 --- a/website/docs/controls/navigationdrawer/index.md +++ b/website/docs/controls/navigationdrawer/index.md @@ -1,7 +1,7 @@ --- class_name: "flet.NavigationDrawer" -examples: "controls/navigation_drawer" -example_images: "test-images/examples/material/golden/macos/navigation_drawer" +examples: "controls/material/navigation_drawer" +example_images: "test-images/examples/controls/material/golden/macos/navigation_drawer" title: "NavigationDrawer" --- diff --git a/website/docs/controls/navigationrail/index.md b/website/docs/controls/navigationrail/index.md index f64105d8b2..8118f87fff 100644 --- a/website/docs/controls/navigationrail/index.md +++ b/website/docs/controls/navigationrail/index.md @@ -1,7 +1,7 @@ --- class_name: "flet.NavigationRail" -examples: "controls/navigation_rail" -example_images: "test-images/examples/material/golden/macos/navigation_rail" +examples: "controls/material/navigation_rail" +example_images: "test-images/examples/controls/material/golden/macos/navigation_rail" title: "NavigationRail" --- diff --git a/website/docs/controls/outlinedbutton.md b/website/docs/controls/outlinedbutton.md index 815e2d1db1..b075132e8d 100644 --- a/website/docs/controls/outlinedbutton.md +++ b/website/docs/controls/outlinedbutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.OutlinedButton" -examples: "controls/outlined_button" -example_media: "examples/controls/outlined_button/media" -example_images: "test-images/examples/material/golden/macos/outlined_button" +examples: "controls/material/outlined_button" +example_media: "examples/controls/material/outlined_button/media" +example_images: "test-images/examples/controls/material/golden/macos/outlined_button" title: "OutlinedButton" --- diff --git a/website/docs/controls/page.md b/website/docs/controls/page.md index 5026e46f51..215822b7e0 100644 --- a/website/docs/controls/page.md +++ b/website/docs/controls/page.md @@ -1,7 +1,7 @@ --- class_name: "flet.Page" -examples: "controls/page" -example_images: "examples/controls/page/media" +examples: "controls/core/page" +example_images: "examples/controls/core/page/media" title: "Page" --- diff --git a/website/docs/controls/pagelet.md b/website/docs/controls/pagelet.md index 7865890713..bb48f995e8 100644 --- a/website/docs/controls/pagelet.md +++ b/website/docs/controls/pagelet.md @@ -1,7 +1,7 @@ --- class_name: "flet.Pagelet" -examples: "controls/pagelet" -example_images: "test-images/examples/core/golden/macos/pagelet" +examples: "controls/core/pagelet" +example_images: "test-images/examples/controls/core/golden/macos/pagelet" title: "Pagelet" --- diff --git a/website/docs/controls/pageview.md b/website/docs/controls/pageview.md index 741a88656e..e7598c82fa 100644 --- a/website/docs/controls/pageview.md +++ b/website/docs/controls/pageview.md @@ -1,6 +1,6 @@ --- class_name: "flet.PageView" -examples: "controls/page_view" +examples: "controls/core/page_view" title: "PageView" --- diff --git a/website/docs/controls/placeholder.md b/website/docs/controls/placeholder.md index 82bd14c587..786734de30 100644 --- a/website/docs/controls/placeholder.md +++ b/website/docs/controls/placeholder.md @@ -1,7 +1,7 @@ --- class_name: "flet.Placeholder" -examples: "controls/placeholder" -example_images: "test-images/examples/core/golden/macos/placeholder" +examples: "controls/core/placeholder" +example_images: "test-images/examples/controls/core/golden/macos/placeholder" title: "Placeholder" --- diff --git a/website/docs/controls/popupmenubutton.md b/website/docs/controls/popupmenubutton.md index 3095d6c9aa..0f03d35dfd 100644 --- a/website/docs/controls/popupmenubutton.md +++ b/website/docs/controls/popupmenubutton.md @@ -1,8 +1,8 @@ --- class_name: "flet.PopupMenuButton" -examples: "controls/popup_menu_button" -example_media: "examples/controls/popup_menu_button/media" -example_images: "test-images/examples/material/golden/macos/popup_menu_button" +examples: "controls/material/popup_menu_button" +example_media: "examples/controls/material/popup_menu_button/media" +example_images: "test-images/examples/controls/material/golden/macos/popup_menu_button" popup_menu_item_class_name: "flet.PopupMenuItem" title: "PopupMenuButton" --- @@ -19,7 +19,7 @@ import {ClassAll, ClassMembers, ClassSummary, CodeExample, Image} from '@site/sr -basic +basic diff --git a/website/docs/controls/progressbar.md b/website/docs/controls/progressbar.md index 5ee789172d..ed79d0a920 100644 --- a/website/docs/controls/progressbar.md +++ b/website/docs/controls/progressbar.md @@ -1,8 +1,8 @@ --- class_name: "flet.ProgressBar" -examples: "controls/progress_bar" -example_media: "examples/controls/progress_bar/media" -example_images: "test-images/examples/material/golden/macos/progress_bar" +examples: "controls/material/progress_bar" +example_media: "examples/controls/material/progress_bar/media" +example_images: "test-images/examples/controls/material/golden/macos/progress_bar" title: "ProgressBar" --- diff --git a/website/docs/controls/progressring.md b/website/docs/controls/progressring.md index 7f19818f8f..a4b2c5e0fb 100644 --- a/website/docs/controls/progressring.md +++ b/website/docs/controls/progressring.md @@ -1,8 +1,8 @@ --- class_name: "flet.ProgressRing" -examples: "controls/progress_ring" -example_images: "test-images/examples/material/golden/macos/progress_ring" -example_media: "examples/controls/progress_ring/media" +examples: "controls/material/progress_ring" +example_images: "test-images/examples/controls/material/golden/macos/progress_ring" +example_media: "examples/controls/material/progress_ring/media" title: "ProgressRing" --- diff --git a/website/docs/controls/radio.md b/website/docs/controls/radio.md index 67e77d6709..986b11de56 100644 --- a/website/docs/controls/radio.md +++ b/website/docs/controls/radio.md @@ -1,7 +1,7 @@ --- class_name: "flet.Radio" -examples: "controls/radio" -example_images: "test-images/examples/material/golden/macos/radio" +examples: "controls/material/radio" +example_images: "test-images/examples/controls/material/golden/macos/radio" title: "Radio" --- diff --git a/website/docs/controls/rangeslider.md b/website/docs/controls/rangeslider.md index ad563f67ec..518b82218e 100644 --- a/website/docs/controls/rangeslider.md +++ b/website/docs/controls/rangeslider.md @@ -1,7 +1,7 @@ --- class_name: "flet.RangeSlider" -examples: "controls/range_slider" -example_images: "test-images/examples/material/golden/macos/range_slider" +examples: "controls/material/range_slider" +example_images: "test-images/examples/controls/material/golden/macos/range_slider" title: "RangeSlider" --- diff --git a/website/docs/controls/reorderabledraghandle.md b/website/docs/controls/reorderabledraghandle.md index 8d21beb6d1..de98b7a3cc 100644 --- a/website/docs/controls/reorderabledraghandle.md +++ b/website/docs/controls/reorderabledraghandle.md @@ -1,6 +1,6 @@ --- class_name: "flet.ReorderableDragHandle" -examples: "controls/reorderable_drag_handle" +examples: "controls/material/reorderable_drag_handle" title: "ReorderableDragHandle" --- diff --git a/website/docs/controls/reorderablelistview.md b/website/docs/controls/reorderablelistview.md index 3ad5d4652c..037e5fa25f 100644 --- a/website/docs/controls/reorderablelistview.md +++ b/website/docs/controls/reorderablelistview.md @@ -1,7 +1,7 @@ --- class_name: "flet.ReorderableListView" -examples: "controls/reorderable_list_view" -example_images: "test-images/examples/material/golden/macos/reorderable_list_view" +examples: "controls/material/reorderable_list_view" +example_images: "test-images/examples/controls/material/golden/macos/reorderable_list_view" title: "ReorderableListView" --- diff --git a/website/docs/controls/responsiverow.md b/website/docs/controls/responsiverow.md index da662b44f7..c943f9d187 100644 --- a/website/docs/controls/responsiverow.md +++ b/website/docs/controls/responsiverow.md @@ -1,7 +1,7 @@ --- class_name: "flet.ResponsiveRow" -examples: "controls/responsive_row" -example_images: "test-images/examples/core/golden/macos/responsive_row" +examples: "controls/core/responsive_row" +example_images: "test-images/examples/controls/core/golden/macos/responsive_row" title: "ResponsiveRow" --- diff --git a/website/docs/controls/rive/index.md b/website/docs/controls/rive/index.md index 0c42f6f8d3..cd5b4d65be 100644 --- a/website/docs/controls/rive/index.md +++ b/website/docs/controls/rive/index.md @@ -1,6 +1,6 @@ --- class_name: "flet_rive.Rive" -examples: "controls/rive" +examples: "extensions/rive" title: "Rive" --- diff --git a/website/docs/controls/rotatedbox.md b/website/docs/controls/rotatedbox.md index bc4bc91a50..c0269198e1 100644 --- a/website/docs/controls/rotatedbox.md +++ b/website/docs/controls/rotatedbox.md @@ -1,7 +1,7 @@ --- class_name: "flet.RotatedBox" -examples: "controls/rotated_box" -example_images: "test-images/examples/core/golden/macos/rotated_box" +examples: "controls/core/rotated_box" +example_images: "test-images/examples/controls/core/golden/macos/rotated_box" title: "RotatedBox" --- diff --git a/website/docs/controls/row.md b/website/docs/controls/row.md index cfba3515a9..bdf7630cba 100644 --- a/website/docs/controls/row.md +++ b/website/docs/controls/row.md @@ -1,7 +1,7 @@ --- class_name: "flet.Row" -examples: "controls/row" -example_images: "test-images/examples/core/golden/macos/row" +examples: "controls/core/row" +example_images: "test-images/examples/controls/core/golden/macos/row" title: "Row" --- diff --git a/website/docs/controls/safearea.md b/website/docs/controls/safearea.md index 9b2ca71980..b7a3f5133d 100644 --- a/website/docs/controls/safearea.md +++ b/website/docs/controls/safearea.md @@ -1,6 +1,6 @@ --- class_name: "flet.SafeArea" -examples: "controls/safe_area" +examples: "controls/core/safe_area" title: "SafeArea" --- diff --git a/website/docs/controls/screenshot.md b/website/docs/controls/screenshot.md index 3b0f1d3d0d..3e0be32a61 100644 --- a/website/docs/controls/screenshot.md +++ b/website/docs/controls/screenshot.md @@ -1,6 +1,6 @@ --- class_name: "flet.Screenshot" -examples: "controls/screenshot" +examples: "controls/core/screenshot" title: "Screenshot" --- diff --git a/website/docs/controls/searchbar.md b/website/docs/controls/searchbar.md index 70bb8d98f0..91564f0514 100644 --- a/website/docs/controls/searchbar.md +++ b/website/docs/controls/searchbar.md @@ -1,7 +1,7 @@ --- class_name: "flet.SearchBar" -examples: "controls/search_bar" -example_images: "test-images/examples/material/golden/macos/search_bar" +examples: "controls/material/search_bar" +example_images: "test-images/examples/controls/material/golden/macos/search_bar" title: "SearchBar" --- diff --git a/website/docs/controls/segmentedbutton.md b/website/docs/controls/segmentedbutton.md index 8f55f3c112..b12d16769f 100644 --- a/website/docs/controls/segmentedbutton.md +++ b/website/docs/controls/segmentedbutton.md @@ -1,7 +1,7 @@ --- class_name: "flet.SegmentedButton" -examples: "controls/segmented_button" -example_images: "test-images/examples/material/golden/macos/segmented_button" +examples: "controls/material/segmented_button" +example_images: "test-images/examples/controls/material/golden/macos/segmented_button" title: "SegmentedButton" --- diff --git a/website/docs/controls/selectionarea.md b/website/docs/controls/selectionarea.md index a9c417fbbc..92ed6fabfa 100644 --- a/website/docs/controls/selectionarea.md +++ b/website/docs/controls/selectionarea.md @@ -1,8 +1,8 @@ --- class_name: "flet.SelectionArea" -examples: "controls/selection_area" -example_images: "test-images/examples/material/golden/macos/selection_area" -example_media: "examples/controls/selection_area/media" +examples: "controls/material/selection_area" +example_images: "test-images/examples/controls/material/golden/macos/selection_area" +example_media: "examples/controls/material/selection_area/media" title: "SelectionArea" --- diff --git a/website/docs/controls/semantics.md b/website/docs/controls/semantics.md index 1b4430f37c..2bf73a7a31 100644 --- a/website/docs/controls/semantics.md +++ b/website/docs/controls/semantics.md @@ -1,6 +1,6 @@ --- class_name: "flet.Semantics" -examples: "controls/semantics" +examples: "controls/core/semantics" title: "Semantics" --- diff --git a/website/docs/controls/shadermask.md b/website/docs/controls/shadermask.md index 64ca7a148a..75b32946d2 100644 --- a/website/docs/controls/shadermask.md +++ b/website/docs/controls/shadermask.md @@ -1,7 +1,7 @@ --- class_name: "flet.ShaderMask" -examples: "controls/shader_mask" -example_images: "test-images/examples/core/golden/macos/shader_mask" +examples: "controls/core/shader_mask" +example_images: "test-images/examples/controls/core/golden/macos/shader_mask" title: "ShaderMask" --- diff --git a/website/docs/controls/shimmer.md b/website/docs/controls/shimmer.md index 1bdb23cc85..9b7174d7a4 100644 --- a/website/docs/controls/shimmer.md +++ b/website/docs/controls/shimmer.md @@ -1,7 +1,7 @@ --- class_name: "flet.Shimmer" -examples: "controls/shimmer" -example_images: "test-images/examples/core/golden/macos/shimmer" +examples: "controls/core/shimmer" +example_images: "test-images/examples/controls/core/golden/macos/shimmer" title: "Shimmer" --- diff --git a/website/docs/controls/slider.md b/website/docs/controls/slider.md index 153754e544..05eeaf4b5a 100644 --- a/website/docs/controls/slider.md +++ b/website/docs/controls/slider.md @@ -1,7 +1,7 @@ --- class_name: "flet.Slider" -examples: "controls/slider" -example_images: "test-images/examples/material/golden/macos/slider" +examples: "controls/material/slider" +example_images: "test-images/examples/controls/material/golden/macos/slider" title: "Slider" --- diff --git a/website/docs/controls/snackbar.md b/website/docs/controls/snackbar.md index 5cb179a87c..9104aee4ea 100644 --- a/website/docs/controls/snackbar.md +++ b/website/docs/controls/snackbar.md @@ -1,7 +1,7 @@ --- class_name: "flet.SnackBar" -examples: "controls/snack_bar" -example_images: "test-images/examples/material/golden/macos/snack_bar" +examples: "controls/material/snack_bar" +example_images: "test-images/examples/controls/material/golden/macos/snack_bar" snack_bar_action_class_name: "flet.SnackBarAction" title: "SnackBar" --- diff --git a/website/docs/controls/stack.md b/website/docs/controls/stack.md index 53de6df70b..ec2cb9fa9e 100644 --- a/website/docs/controls/stack.md +++ b/website/docs/controls/stack.md @@ -1,7 +1,7 @@ --- class_name: "flet.Stack" -examples: "controls/stack" -example_images: "test-images/examples/core/golden/macos/stack" +examples: "controls/core/stack" +example_images: "test-images/examples/controls/core/golden/macos/stack" title: "Stack" --- diff --git a/website/docs/controls/submenubutton.md b/website/docs/controls/submenubutton.md index f37c59d82f..05a9c39318 100644 --- a/website/docs/controls/submenubutton.md +++ b/website/docs/controls/submenubutton.md @@ -1,7 +1,7 @@ --- class_name: "flet.SubmenuButton" -examples: "controls/submenu_button" -example_images: "test-images/examples/material/golden/macos/submenu_button" +examples: "controls/material/submenu_button" +example_images: "test-images/examples/controls/material/golden/macos/submenu_button" title: "SubmenuButton" --- diff --git a/website/docs/controls/switch.md b/website/docs/controls/switch.md index c1c39ac6fd..aa0d82f82f 100644 --- a/website/docs/controls/switch.md +++ b/website/docs/controls/switch.md @@ -1,8 +1,8 @@ --- class_name: "flet.Switch" -examples: "controls/switch" -example_images: "test-images/examples/material/golden/macos/switch" -example_media: "examples/controls/switch/media" +examples: "controls/material/switch" +example_images: "test-images/examples/controls/material/golden/macos/switch" +example_media: "examples/controls/material/switch/media" title: "Switch" --- diff --git a/website/docs/controls/tabs/index.md b/website/docs/controls/tabs/index.md index 6a9d6221b4..86d909079c 100644 --- a/website/docs/controls/tabs/index.md +++ b/website/docs/controls/tabs/index.md @@ -1,7 +1,7 @@ --- class_name: "flet.Tabs" -examples: "controls/tabs" -example_images: "examples/controls/tabs/media" +examples: "controls/material/tabs" +example_images: "examples/controls/material/tabs/media" title: "Tabs" --- diff --git a/website/docs/controls/text.md b/website/docs/controls/text.md index d31d107563..e796845352 100644 --- a/website/docs/controls/text.md +++ b/website/docs/controls/text.md @@ -1,8 +1,8 @@ --- class_name: "flet.Text" -examples: "controls/text" -example_images: "test-images/examples/core/golden/macos/text" -example_media: "examples/controls/text/media" +examples: "controls/core/text" +example_images: "test-images/examples/controls/core/golden/macos/text" +example_media: "examples/controls/core/text/media" title: "Text" --- diff --git a/website/docs/controls/textbutton.md b/website/docs/controls/textbutton.md index 24117413f6..3cfa0a9290 100644 --- a/website/docs/controls/textbutton.md +++ b/website/docs/controls/textbutton.md @@ -1,7 +1,7 @@ --- class_name: "flet.TextButton" -examples: "controls/text_button" -example_images: "test-images/examples/material/golden/macos/text_button" +examples: "controls/material/text_button" +example_images: "test-images/examples/controls/material/golden/macos/text_button" title: "TextButton" --- diff --git a/website/docs/controls/textfield.md b/website/docs/controls/textfield.md index ab202e5844..79dc6a99df 100644 --- a/website/docs/controls/textfield.md +++ b/website/docs/controls/textfield.md @@ -1,8 +1,8 @@ --- class_name: "flet.TextField" -examples: "controls/text_field" -example_images: "test-images/examples/material/golden/macos/textfield" -example_media: "examples/controls/text_field/media" +examples: "controls/material/text_field" +example_images: "test-images/examples/controls/material/golden/macos/textfield" +example_media: "examples/controls/material/text_field/media" title: "TextField" --- diff --git a/website/docs/controls/timepicker.md b/website/docs/controls/timepicker.md index 2a4d101dfd..3ec2f48881 100644 --- a/website/docs/controls/timepicker.md +++ b/website/docs/controls/timepicker.md @@ -1,7 +1,7 @@ --- class_name: "flet.TimePicker" -examples: "controls/time_picker" -example_images: "test-images/examples/material/golden/macos/time_picker" +examples: "controls/material/time_picker" +example_images: "test-images/examples/controls/material/golden/macos/time_picker" title: "TimePicker" --- diff --git a/website/docs/controls/transparentpointer.md b/website/docs/controls/transparentpointer.md index 2fbf80df96..0894b0e183 100644 --- a/website/docs/controls/transparentpointer.md +++ b/website/docs/controls/transparentpointer.md @@ -1,6 +1,6 @@ --- class_name: "flet.TransparentPointer" -examples: "controls/transparent_pointer" +examples: "controls/core/transparent_pointer" title: "TransparentPointer" --- diff --git a/website/docs/controls/verticaldivider.md b/website/docs/controls/verticaldivider.md index 034cca6c37..61d175847f 100644 --- a/website/docs/controls/verticaldivider.md +++ b/website/docs/controls/verticaldivider.md @@ -1,7 +1,7 @@ --- class_name: "flet.VerticalDivider" -examples: "controls/vertical_divider" -example_images: "test-images/examples/core/golden/macos/vertical_divider" +examples: "controls/core/vertical_divider" +example_images: "test-images/examples/controls/core/golden/macos/vertical_divider" title: "VerticalDivider" --- diff --git a/website/docs/controls/video/index.md b/website/docs/controls/video/index.md index 5bb0707adf..8ef3e7cddc 100644 --- a/website/docs/controls/video/index.md +++ b/website/docs/controls/video/index.md @@ -1,6 +1,6 @@ --- class_name: "flet_video.Video" -examples: "controls/video" +examples: "extensions/video" title: "Video" --- diff --git a/website/docs/controls/webview/index.md b/website/docs/controls/webview/index.md index 92b8d57abb..b9a849d7fd 100644 --- a/website/docs/controls/webview/index.md +++ b/website/docs/controls/webview/index.md @@ -1,6 +1,6 @@ --- class_name: "flet_webview.WebView" -examples: "controls/webview" +examples: "extensions/webview" title: "WebView" --- diff --git a/website/docs/controls/windowdragarea.md b/website/docs/controls/windowdragarea.md index 81bb8c8ad5..3d038f87df 100644 --- a/website/docs/controls/windowdragarea.md +++ b/website/docs/controls/windowdragarea.md @@ -1,7 +1,7 @@ --- class_name: "flet.WindowDragArea" -examples: "controls/window_drag_area" -example_images: "test-images/examples/core/golden/macos/window_drag_area" +examples: "controls/core/window_drag_area" +example_images: "test-images/examples/controls/core/golden/macos/window_drag_area" title: "WindowDragArea" --- diff --git a/website/docs/cookbook/animations.md b/website/docs/cookbook/animations.md index 776a514102..a4d555f0aa 100644 --- a/website/docs/cookbook/animations.md +++ b/website/docs/cookbook/animations.md @@ -45,7 +45,7 @@ enables implicit animation of [`Control.opacity`](../controls/control.md#flet.Co -animate-opacity +animate-opacity ### Rotation animation @@ -54,7 +54,7 @@ enables implicit animation of [`LayoutControl.rotate`](../controls/layoutcontrol -animate-rotation +animate-rotation ### Scale animation @@ -63,7 +63,7 @@ enables implicit animation of [`LayoutControl.scale`](../controls/layoutcontrol. -animate-scale +animate-scale ### Offset animation @@ -78,7 +78,7 @@ Offset animation is used for various sliding effects: -animate-offset +animate-offset ### Position animation @@ -95,7 +95,7 @@ Note: -animate-position +animate-position ### Animate @@ -104,7 +104,7 @@ enables implicit animation of container properties such as size, background colo -animate +animate ### Animated content switcher diff --git a/website/docs/cookbook/expanding-controls.md b/website/docs/cookbook/expanding-controls.md index 51cd5b68bf..696340cd6b 100644 --- a/website/docs/cookbook/expanding-controls.md +++ b/website/docs/cookbook/expanding-controls.md @@ -1,6 +1,6 @@ --- title: "Expanding Controls" -examples: "controls/control" +examples: "controls/core/control" example_images: "test-images/examples/core/golden/macos/control" --- diff --git a/website/docs/types/alignment.md b/website/docs/types/alignment.md index fab194d0b0..a6163ea06f 100644 --- a/website/docs/types/alignment.md +++ b/website/docs/types/alignment.md @@ -1,6 +1,6 @@ --- -examples: "controls/types/alignment" -example_media: "examples/controls/types/alignment/media" +examples: "controls/core/types/alignment" +example_media: "examples/controls/core/types/alignment/media" title: "Alignment" --- diff --git a/website/docs/types/animatedswitchertransition.md b/website/docs/types/animatedswitchertransition.md index 6e6d02b0c2..bfd9a8094b 100644 --- a/website/docs/types/animatedswitchertransition.md +++ b/website/docs/types/animatedswitchertransition.md @@ -1,6 +1,6 @@ --- class_name: "flet.AnimatedSwitcherTransition" -examples: "controls/types/animated_switcher_transition" +examples: "controls/core/types/animated_switcher_transition" title: "AnimatedSwitcherTransition" --- diff --git a/website/docs/types/animationcurve.md b/website/docs/types/animationcurve.md index f6e0ccd2b1..80ce999868 100644 --- a/website/docs/types/animationcurve.md +++ b/website/docs/types/animationcurve.md @@ -1,6 +1,6 @@ --- class_name: "flet.AnimationCurve" -examples: "controls/types/animation_curve" +examples: "controls/core/types/animation_curve" title: "AnimationCurve" --- diff --git a/website/docs/types/applifecyclestate.md b/website/docs/types/applifecyclestate.md index 555aeff953..556ab0dab6 100644 --- a/website/docs/types/applifecyclestate.md +++ b/website/docs/types/applifecyclestate.md @@ -1,6 +1,6 @@ --- class_name: "flet.AppLifecycleState" -examples: "controls/types/app_lifecycle_state" +examples: "controls/core/types/app_lifecycle_state" title: "AppLifecycleState" --- diff --git a/website/docs/types/assertiveness.md b/website/docs/types/assertiveness.md index d50cd6f113..c72d579069 100644 --- a/website/docs/types/assertiveness.md +++ b/website/docs/types/assertiveness.md @@ -1,6 +1,6 @@ --- class_name: "flet.Assertiveness" -examples: "controls/types/assertiveness" +examples: "controls/core/types/assertiveness" title: "Assertiveness" --- diff --git a/website/docs/types/axis.md b/website/docs/types/axis.md index 6a1d2d7722..a65783f2c3 100644 --- a/website/docs/types/axis.md +++ b/website/docs/types/axis.md @@ -1,6 +1,6 @@ --- class_name: "flet.Axis" -examples: "controls/types/axis" +examples: "controls/core/types/axis" title: "Axis" --- diff --git a/website/docs/types/badge.md b/website/docs/types/badge.md index 8f71726123..230de0975f 100644 --- a/website/docs/types/badge.md +++ b/website/docs/types/badge.md @@ -1,7 +1,7 @@ --- class_name: "flet.Badge" -examples: "controls/badge" -example_images: "test-images/examples/material/golden/macos/badge" +examples: "controls/material/badge" +example_images: "test-images/examples/controls/material/golden/macos/badge" title: "Badge" --- diff --git a/website/docs/types/blendmode.md b/website/docs/types/blendmode.md index 4020dd9f5c..3cd941464e 100644 --- a/website/docs/types/blendmode.md +++ b/website/docs/types/blendmode.md @@ -1,6 +1,6 @@ --- class_name: "flet.BlendMode" -examples: "controls/types/blend_mode" +examples: "controls/core/types/blend_mode" title: "BlendMode" --- diff --git a/website/docs/types/blur.md b/website/docs/types/blur.md index 22eb380f4b..26c1f1fb3b 100644 --- a/website/docs/types/blur.md +++ b/website/docs/types/blur.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -container +container diff --git a/website/docs/types/blurstyle.md b/website/docs/types/blurstyle.md index f375264e1c..60f7a7cd6b 100644 --- a/website/docs/types/blurstyle.md +++ b/website/docs/types/blurstyle.md @@ -1,6 +1,6 @@ --- class_name: "flet.BlurStyle" -examples: "controls/types/blur_style" +examples: "controls/core/types/blur_style" title: "BlurStyle" --- diff --git a/website/docs/types/blurtilemode.md b/website/docs/types/blurtilemode.md index 876892ae92..d912193195 100644 --- a/website/docs/types/blurtilemode.md +++ b/website/docs/types/blurtilemode.md @@ -1,6 +1,6 @@ --- class_name: "flet.BlurTileMode" -examples: "controls/types/blur_tile_mode" +examples: "controls/core/types/blur_tile_mode" title: "BlurTileMode" --- diff --git a/website/docs/types/bordersidestrokealign.md b/website/docs/types/bordersidestrokealign.md index 4b1777f47f..4db62b4a42 100644 --- a/website/docs/types/bordersidestrokealign.md +++ b/website/docs/types/bordersidestrokealign.md @@ -1,6 +1,6 @@ --- class_name: "flet.BorderSideStrokeAlign" -examples: "controls/types/border_side_stroke_align" +examples: "controls/core/types/border_side_stroke_align" title: "BorderSideStrokeAlign" --- diff --git a/website/docs/types/borderstyle.md b/website/docs/types/borderstyle.md index 38240a2498..7014a35447 100644 --- a/website/docs/types/borderstyle.md +++ b/website/docs/types/borderstyle.md @@ -1,6 +1,6 @@ --- class_name: "flet.BorderStyle" -examples: "controls/types/border_style" +examples: "controls/core/types/border_style" title: "BorderStyle" --- diff --git a/website/docs/types/boxfit.md b/website/docs/types/boxfit.md index 2626c659c8..d706d7e008 100644 --- a/website/docs/types/boxfit.md +++ b/website/docs/types/boxfit.md @@ -1,6 +1,6 @@ --- class_name: "flet.BoxFit" -examples: "controls/types/box_fit" +examples: "controls/core/types/box_fit" title: "BoxFit" --- diff --git a/website/docs/types/boxshape.md b/website/docs/types/boxshape.md index 9e6bb48402..b7c58940ea 100644 --- a/website/docs/types/boxshape.md +++ b/website/docs/types/boxshape.md @@ -1,6 +1,6 @@ --- class_name: "flet.BoxShape" -examples: "controls/types/box_shape" +examples: "controls/core/types/box_shape" title: "BoxShape" --- diff --git a/website/docs/types/cardvariant.md b/website/docs/types/cardvariant.md index b22c37817a..9ed6f37eec 100644 --- a/website/docs/types/cardvariant.md +++ b/website/docs/types/cardvariant.md @@ -1,6 +1,6 @@ --- class_name: "flet.CardVariant" -examples: "controls/types/card_variant" +examples: "controls/core/types/card_variant" title: "CardVariant" --- diff --git a/website/docs/types/clipbehavior.md b/website/docs/types/clipbehavior.md index 1439aad22e..87f8deec34 100644 --- a/website/docs/types/clipbehavior.md +++ b/website/docs/types/clipbehavior.md @@ -1,6 +1,6 @@ --- class_name: "flet.ClipBehavior" -examples: "controls/types/clip_behavior" +examples: "controls/core/types/clip_behavior" title: "ClipBehavior" --- diff --git a/website/docs/types/contextmenutrigger.md b/website/docs/types/contextmenutrigger.md index c4d3c10dc7..9c21a6dea7 100644 --- a/website/docs/types/contextmenutrigger.md +++ b/website/docs/types/contextmenutrigger.md @@ -1,6 +1,6 @@ --- class_name: "flet.ContextMenuTrigger" -examples: "controls/types/context_menu_trigger" +examples: "controls/core/types/context_menu_trigger" title: "ContextMenuTrigger" --- diff --git a/website/docs/types/crossaxisalignment.md b/website/docs/types/crossaxisalignment.md index 2e2f406b25..d37c4e03ac 100644 --- a/website/docs/types/crossaxisalignment.md +++ b/website/docs/types/crossaxisalignment.md @@ -1,6 +1,6 @@ --- class_name: "flet.CrossAxisAlignment" -examples: "controls/types/cross_axis_alignment" +examples: "controls/core/types/cross_axis_alignment" title: "CrossAxisAlignment" --- diff --git a/website/docs/types/cupertinobuttonsize.md b/website/docs/types/cupertinobuttonsize.md index 827df071fe..c03b70e5fd 100644 --- a/website/docs/types/cupertinobuttonsize.md +++ b/website/docs/types/cupertinobuttonsize.md @@ -1,6 +1,6 @@ --- class_name: "flet.CupertinoButtonSize" -examples: "controls/types/cupertino_button_size" +examples: "controls/core/types/cupertino_button_size" title: "CupertinoButtonSize" --- diff --git a/website/docs/types/cupertinodatepickerdateorder.md b/website/docs/types/cupertinodatepickerdateorder.md index 8de7d0a145..5dd29f6592 100644 --- a/website/docs/types/cupertinodatepickerdateorder.md +++ b/website/docs/types/cupertinodatepickerdateorder.md @@ -1,6 +1,6 @@ --- class_name: "flet.CupertinoDatePickerDateOrder" -examples: "controls/types/cupertino_date_picker_date_order" +examples: "controls/core/types/cupertino_date_picker_date_order" title: "CupertinoDatePickerDateOrder" --- diff --git a/website/docs/types/cupertinodatepickermode.md b/website/docs/types/cupertinodatepickermode.md index 07fdf624ac..9c9952860a 100644 --- a/website/docs/types/cupertinodatepickermode.md +++ b/website/docs/types/cupertinodatepickermode.md @@ -1,6 +1,6 @@ --- class_name: "flet.CupertinoDatePickerMode" -examples: "controls/types/cupertino_date_picker_mode" +examples: "controls/core/types/cupertino_date_picker_mode" title: "CupertinoDatePickerMode" --- diff --git a/website/docs/types/cupertinotimerpickermode.md b/website/docs/types/cupertinotimerpickermode.md index 67d7c42dac..d43dfbb406 100644 --- a/website/docs/types/cupertinotimerpickermode.md +++ b/website/docs/types/cupertinotimerpickermode.md @@ -1,6 +1,6 @@ --- class_name: "flet.CupertinoTimerPickerMode" -examples: "controls/types/cupertino_timer_picker_mode" +examples: "controls/core/types/cupertino_timer_picker_mode" title: "CupertinoTimerPickerMode" --- diff --git a/website/docs/types/datepickerentrymode.md b/website/docs/types/datepickerentrymode.md index bdb8f7c23e..7ca12bf60e 100644 --- a/website/docs/types/datepickerentrymode.md +++ b/website/docs/types/datepickerentrymode.md @@ -1,6 +1,6 @@ --- class_name: "flet.DatePickerEntryMode" -examples: "controls/types/date_picker_entry_mode" +examples: "controls/core/types/date_picker_entry_mode" title: "DatePickerEntryMode" --- diff --git a/website/docs/types/datepickermode.md b/website/docs/types/datepickermode.md index 39e920e6f7..67b681826d 100644 --- a/website/docs/types/datepickermode.md +++ b/website/docs/types/datepickermode.md @@ -1,6 +1,6 @@ --- class_name: "flet.DatePickerMode" -examples: "controls/types/date_picker_mode" +examples: "controls/core/types/date_picker_mode" title: "DatePickerMode" --- diff --git a/website/docs/types/dismissdirection.md b/website/docs/types/dismissdirection.md index 6704184f4d..8e769363e5 100644 --- a/website/docs/types/dismissdirection.md +++ b/website/docs/types/dismissdirection.md @@ -1,6 +1,6 @@ --- class_name: "flet.DismissDirection" -examples: "controls/types/dismiss_direction" +examples: "controls/core/types/dismiss_direction" title: "DismissDirection" --- diff --git a/website/docs/types/filterquality.md b/website/docs/types/filterquality.md index c8db47b351..8faf828b7d 100644 --- a/website/docs/types/filterquality.md +++ b/website/docs/types/filterquality.md @@ -1,6 +1,6 @@ --- class_name: "flet.FilterQuality" -examples: "controls/types/filter_quality" +examples: "controls/core/types/filter_quality" title: "FilterQuality" --- diff --git a/website/docs/types/floatingactionbuttonlocation.md b/website/docs/types/floatingactionbuttonlocation.md index 089d0c50bf..65e9219167 100644 --- a/website/docs/types/floatingactionbuttonlocation.md +++ b/website/docs/types/floatingactionbuttonlocation.md @@ -1,6 +1,6 @@ --- class_name: "flet.FloatingActionButtonLocation" -examples: "controls/types/floating_action_button_location" +examples: "controls/core/types/floating_action_button_location" title: "FloatingActionButtonLocation" --- diff --git a/website/docs/types/fontweight.md b/website/docs/types/fontweight.md index 9ea40d8808..00de084014 100644 --- a/website/docs/types/fontweight.md +++ b/website/docs/types/fontweight.md @@ -1,6 +1,6 @@ --- class_name: "flet.FontWeight" -examples: "controls/types/font_weight" +examples: "controls/core/types/font_weight" title: "FontWeight" --- diff --git a/website/docs/types/gradienttilemode.md b/website/docs/types/gradienttilemode.md index cd2baf7bdf..4c81a73c45 100644 --- a/website/docs/types/gradienttilemode.md +++ b/website/docs/types/gradienttilemode.md @@ -1,6 +1,6 @@ --- class_name: "flet.GradientTileMode" -examples: "controls/types/gradient_tile_mode" +examples: "controls/core/types/gradient_tile_mode" title: "GradientTileMode" --- diff --git a/website/docs/types/imagerepeat.md b/website/docs/types/imagerepeat.md index 190eb098a6..03dd068450 100644 --- a/website/docs/types/imagerepeat.md +++ b/website/docs/types/imagerepeat.md @@ -1,6 +1,6 @@ --- class_name: "flet.ImageRepeat" -examples: "controls/types/image_repeat" +examples: "controls/core/types/image_repeat" title: "ImageRepeat" --- diff --git a/website/docs/types/labelposition.md b/website/docs/types/labelposition.md index 5faebfc240..9164915cc0 100644 --- a/website/docs/types/labelposition.md +++ b/website/docs/types/labelposition.md @@ -1,6 +1,6 @@ --- class_name: "flet.LabelPosition" -examples: "controls/types/label_position" +examples: "controls/core/types/label_position" title: "LabelPosition" --- diff --git a/website/docs/types/launchmode.md b/website/docs/types/launchmode.md index ce144ced4d..acc76a0c2e 100644 --- a/website/docs/types/launchmode.md +++ b/website/docs/types/launchmode.md @@ -1,6 +1,6 @@ --- class_name: "flet.LaunchMode" -examples: "controls/types/launch_mode" +examples: "controls/core/types/launch_mode" title: "LaunchMode" --- diff --git a/website/docs/types/lineargradient.md b/website/docs/types/lineargradient.md index 23be74fd71..c63f32f7e2 100644 --- a/website/docs/types/lineargradient.md +++ b/website/docs/types/lineargradient.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -container +container diff --git a/website/docs/types/listtilestyle.md b/website/docs/types/listtilestyle.md index 3a978ed7dc..c69bdd3bd4 100644 --- a/website/docs/types/listtilestyle.md +++ b/website/docs/types/listtilestyle.md @@ -1,6 +1,6 @@ --- class_name: "flet.ListTileStyle" -examples: "controls/types/list_tile_style" +examples: "controls/core/types/list_tile_style" title: "ListTileStyle" --- diff --git a/website/docs/types/listtiletitlealignment.md b/website/docs/types/listtiletitlealignment.md index a660436fac..f29883675b 100644 --- a/website/docs/types/listtiletitlealignment.md +++ b/website/docs/types/listtiletitlealignment.md @@ -1,6 +1,6 @@ --- class_name: "flet.ListTileTitleAlignment" -examples: "controls/types/list_tile_title_alignment" +examples: "controls/core/types/list_tile_title_alignment" title: "ListTileTitleAlignment" --- diff --git a/website/docs/types/mainaxisalignment.md b/website/docs/types/mainaxisalignment.md index 2b5cb98706..fdb4ec6745 100644 --- a/website/docs/types/mainaxisalignment.md +++ b/website/docs/types/mainaxisalignment.md @@ -1,6 +1,6 @@ --- class_name: "flet.MainAxisAlignment" -examples: "controls/types/main_axis_alignment" +examples: "controls/core/types/main_axis_alignment" title: "MainAxisAlignment" --- diff --git a/website/docs/types/mousecursor.md b/website/docs/types/mousecursor.md index 4d75926647..8b4140766e 100644 --- a/website/docs/types/mousecursor.md +++ b/website/docs/types/mousecursor.md @@ -1,6 +1,6 @@ --- class_name: "flet.MouseCursor" -examples: "controls/types/mouse_cursor" +examples: "controls/core/types/mouse_cursor" title: "MouseCursor" --- diff --git a/website/docs/types/navigationbarlabelbehavior.md b/website/docs/types/navigationbarlabelbehavior.md index 9c2769a8fc..a6d7eb9b48 100644 --- a/website/docs/types/navigationbarlabelbehavior.md +++ b/website/docs/types/navigationbarlabelbehavior.md @@ -1,6 +1,6 @@ --- class_name: "flet.NavigationBarLabelBehavior" -examples: "controls/types/navigation_bar_label_behavior" +examples: "controls/core/types/navigation_bar_label_behavior" title: "NavigationBarLabelBehavior" --- diff --git a/website/docs/types/navigationraillabeltype.md b/website/docs/types/navigationraillabeltype.md index d707accc73..1f70d7edef 100644 --- a/website/docs/types/navigationraillabeltype.md +++ b/website/docs/types/navigationraillabeltype.md @@ -1,6 +1,6 @@ --- class_name: "flet.NavigationRailLabelType" -examples: "controls/types/navigation_rail_label_type" +examples: "controls/core/types/navigation_rail_label_type" title: "NavigationRailLabelType" --- diff --git a/website/docs/types/orientation.md b/website/docs/types/orientation.md index cd325e05f6..eae6e622e9 100644 --- a/website/docs/types/orientation.md +++ b/website/docs/types/orientation.md @@ -1,6 +1,6 @@ --- class_name: "flet.Orientation" -examples: "controls/types/orientation" +examples: "controls/core/types/orientation" title: "Orientation" --- diff --git a/website/docs/types/overlayvisibilitymode.md b/website/docs/types/overlayvisibilitymode.md index 27850eeeb8..6a93296f90 100644 --- a/website/docs/types/overlayvisibilitymode.md +++ b/website/docs/types/overlayvisibilitymode.md @@ -1,6 +1,6 @@ --- class_name: "flet.OverlayVisibilityMode" -examples: "controls/types/overlay_visibility_mode" +examples: "controls/core/types/overlay_visibility_mode" title: "OverlayVisibilityMode" --- diff --git a/website/docs/types/padding.md b/website/docs/types/padding.md index bc961c895c..66cd8f9410 100644 --- a/website/docs/types/padding.md +++ b/website/docs/types/padding.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -container +container diff --git a/website/docs/types/paintingstyle.md b/website/docs/types/paintingstyle.md index 123967572e..b734d7b80d 100644 --- a/website/docs/types/paintingstyle.md +++ b/website/docs/types/paintingstyle.md @@ -1,6 +1,6 @@ --- class_name: "flet.PaintingStyle" -examples: "controls/types/painting_style" +examples: "controls/core/types/painting_style" title: "PaintingStyle" --- diff --git a/website/docs/types/paintlineargradient.md b/website/docs/types/paintlineargradient.md index d96cd2a73c..434ff10e01 100644 --- a/website/docs/types/paintlineargradient.md +++ b/website/docs/types/paintlineargradient.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -canvas-paint +canvas-paint diff --git a/website/docs/types/paintradialgradient.md b/website/docs/types/paintradialgradient.md index 4165271d96..8e4919bf12 100644 --- a/website/docs/types/paintradialgradient.md +++ b/website/docs/types/paintradialgradient.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -canvas-paint +canvas-paint diff --git a/website/docs/types/paintsweepgradient.md b/website/docs/types/paintsweepgradient.md index be36062947..02cf8134d8 100644 --- a/website/docs/types/paintsweepgradient.md +++ b/website/docs/types/paintsweepgradient.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -canvas-paint +canvas-paint diff --git a/website/docs/types/pointmode.md b/website/docs/types/pointmode.md index a8ba70bd71..89a4342545 100644 --- a/website/docs/types/pointmode.md +++ b/website/docs/types/pointmode.md @@ -1,6 +1,6 @@ --- class_name: "flet.canvas.PointMode" -examples: "controls/types/point_mode" +examples: "controls/core/types/point_mode" title: "PointMode" --- diff --git a/website/docs/types/popupmenuposition.md b/website/docs/types/popupmenuposition.md index 51624d4739..3192f9ab3f 100644 --- a/website/docs/types/popupmenuposition.md +++ b/website/docs/types/popupmenuposition.md @@ -1,6 +1,6 @@ --- class_name: "flet.PopupMenuPosition" -examples: "controls/types/popup_menu_position" +examples: "controls/core/types/popup_menu_position" title: "PopupMenuPosition" --- diff --git a/website/docs/types/radialgradient.md b/website/docs/types/radialgradient.md index c64881ad30..cc1921918a 100644 --- a/website/docs/types/radialgradient.md +++ b/website/docs/types/radialgradient.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -container +container diff --git a/website/docs/types/scrollbar.md b/website/docs/types/scrollbar.md index bd51700363..7f12e234a4 100644 --- a/website/docs/types/scrollbar.md +++ b/website/docs/types/scrollbar.md @@ -1,6 +1,6 @@ --- class_name: "flet.Scrollbar" -examples: "controls/types/scroll_bar" +examples: "controls/core/types/scroll_bar" title: "Scrollbar" --- diff --git a/website/docs/types/scrollbarorientation.md b/website/docs/types/scrollbarorientation.md index b11d3e9a6e..99da18d614 100644 --- a/website/docs/types/scrollbarorientation.md +++ b/website/docs/types/scrollbarorientation.md @@ -1,6 +1,6 @@ --- class_name: "flet.ScrollbarOrientation" -examples: "controls/types/scroll_bar_orientation" +examples: "controls/core/types/scroll_bar_orientation" title: "ScrollbarOrientation" --- diff --git a/website/docs/types/scrolldirection.md b/website/docs/types/scrolldirection.md index 10b57b9871..acaacd2f5f 100644 --- a/website/docs/types/scrolldirection.md +++ b/website/docs/types/scrolldirection.md @@ -1,6 +1,6 @@ --- class_name: "flet.ScrollDirection" -examples: "controls/types/scroll_direction" +examples: "controls/core/types/scroll_direction" title: "ScrollDirection" --- diff --git a/website/docs/types/scrollmode.md b/website/docs/types/scrollmode.md index ab2394a108..a5c63b05f3 100644 --- a/website/docs/types/scrollmode.md +++ b/website/docs/types/scrollmode.md @@ -1,6 +1,6 @@ --- class_name: "flet.ScrollMode" -examples: "controls/types/scroll_mode" +examples: "controls/core/types/scroll_mode" title: "ScrollMode" --- diff --git a/website/docs/types/scrolltype.md b/website/docs/types/scrolltype.md index 9cb9bba0e1..acc9053604 100644 --- a/website/docs/types/scrolltype.md +++ b/website/docs/types/scrolltype.md @@ -1,6 +1,6 @@ --- class_name: "flet.ScrollType" -examples: "controls/types/scroll_type" +examples: "controls/core/types/scroll_type" title: "ScrollType" --- diff --git a/website/docs/types/sliderinteraction.md b/website/docs/types/sliderinteraction.md index 9ff67b29f2..62f3a0f0f6 100644 --- a/website/docs/types/sliderinteraction.md +++ b/website/docs/types/sliderinteraction.md @@ -1,6 +1,6 @@ --- class_name: "flet.SliderInteraction" -examples: "controls/types/slider_interaction" +examples: "controls/core/types/slider_interaction" title: "SliderInteraction" --- diff --git a/website/docs/types/snackbarbehavior.md b/website/docs/types/snackbarbehavior.md index d391e4e3a6..06e0193610 100644 --- a/website/docs/types/snackbarbehavior.md +++ b/website/docs/types/snackbarbehavior.md @@ -1,6 +1,6 @@ --- class_name: "flet.SnackBarBehavior" -examples: "controls/types/snack_bar_behavior" +examples: "controls/core/types/snack_bar_behavior" title: "SnackBarBehavior" --- diff --git a/website/docs/types/strokecap.md b/website/docs/types/strokecap.md index f1edd1fce0..54314a27d0 100644 --- a/website/docs/types/strokecap.md +++ b/website/docs/types/strokecap.md @@ -1,6 +1,6 @@ --- class_name: "flet.StrokeCap" -examples: "controls/types/stroke_cap" +examples: "controls/core/types/stroke_cap" title: "StrokeCap" --- diff --git a/website/docs/types/strokejoin.md b/website/docs/types/strokejoin.md index 018bd9ba85..bb68bd89a8 100644 --- a/website/docs/types/strokejoin.md +++ b/website/docs/types/strokejoin.md @@ -1,6 +1,6 @@ --- class_name: "flet.StrokeJoin" -examples: "controls/types/stroke_join" +examples: "controls/core/types/stroke_join" title: "StrokeJoin" --- diff --git a/website/docs/types/sweepgradient.md b/website/docs/types/sweepgradient.md index da22b0b94a..ea01918510 100644 --- a/website/docs/types/sweepgradient.md +++ b/website/docs/types/sweepgradient.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -container +container diff --git a/website/docs/types/tabalignment.md b/website/docs/types/tabalignment.md index adbd66be05..27984940cc 100644 --- a/website/docs/types/tabalignment.md +++ b/website/docs/types/tabalignment.md @@ -1,6 +1,6 @@ --- class_name: "flet.TabAlignment" -examples: "controls/types/tab_alignment" +examples: "controls/core/types/tab_alignment" title: "TabAlignment" --- diff --git a/website/docs/types/tabbarindicatorsize.md b/website/docs/types/tabbarindicatorsize.md index 36a26b2e72..d0b856cc46 100644 --- a/website/docs/types/tabbarindicatorsize.md +++ b/website/docs/types/tabbarindicatorsize.md @@ -1,6 +1,6 @@ --- class_name: "flet.TabBarIndicatorSize" -examples: "controls/types/tab_bar_indicator_size" +examples: "controls/core/types/tab_bar_indicator_size" title: "TabBarIndicatorSize" --- diff --git a/website/docs/types/tabindicatoranimation.md b/website/docs/types/tabindicatoranimation.md index 48cbd1864d..4d5f4ffe29 100644 --- a/website/docs/types/tabindicatoranimation.md +++ b/website/docs/types/tabindicatoranimation.md @@ -1,6 +1,6 @@ --- class_name: "flet.TabIndicatorAnimation" -examples: "controls/types/tab_indicator_animation" +examples: "controls/core/types/tab_indicator_animation" title: "TabIndicatorAnimation" --- diff --git a/website/docs/types/textalign.md b/website/docs/types/textalign.md index 547f7a474e..4a6ea28135 100644 --- a/website/docs/types/textalign.md +++ b/website/docs/types/textalign.md @@ -1,6 +1,6 @@ --- class_name: "flet.TextAlign" -examples: "controls/types/text_align" +examples: "controls/core/types/text_align" title: "TextAlign" --- diff --git a/website/docs/types/textcapitalization.md b/website/docs/types/textcapitalization.md index 2968cc7ce5..bb3952ea4a 100644 --- a/website/docs/types/textcapitalization.md +++ b/website/docs/types/textcapitalization.md @@ -1,6 +1,6 @@ --- class_name: "flet.TextCapitalization" -examples: "controls/types/text_capitalization" +examples: "controls/core/types/text_capitalization" title: "TextCapitalization" --- diff --git a/website/docs/types/textdecorationstyle.md b/website/docs/types/textdecorationstyle.md index 473d4b905f..f841742a3f 100644 --- a/website/docs/types/textdecorationstyle.md +++ b/website/docs/types/textdecorationstyle.md @@ -1,6 +1,6 @@ --- class_name: "flet.TextDecorationStyle" -examples: "controls/types/text_decoration_style" +examples: "controls/core/types/text_decoration_style" title: "TextDecorationStyle" --- diff --git a/website/docs/types/textoverflow.md b/website/docs/types/textoverflow.md index 0e932d19a6..a964438fda 100644 --- a/website/docs/types/textoverflow.md +++ b/website/docs/types/textoverflow.md @@ -1,6 +1,6 @@ --- class_name: "flet.TextOverflow" -examples: "controls/types/text_overflow" +examples: "controls/core/types/text_overflow" title: "TextOverflow" --- diff --git a/website/docs/types/thememode.md b/website/docs/types/thememode.md index b7360b647d..13b124684b 100644 --- a/website/docs/types/thememode.md +++ b/website/docs/types/thememode.md @@ -1,6 +1,6 @@ --- class_name: "flet.ThemeMode" -examples: "controls/types/theme_mode" +examples: "controls/core/types/theme_mode" title: "ThemeMode" --- diff --git a/website/docs/types/tileaffinity.md b/website/docs/types/tileaffinity.md index fff6d20dce..31a30cd368 100644 --- a/website/docs/types/tileaffinity.md +++ b/website/docs/types/tileaffinity.md @@ -1,6 +1,6 @@ --- class_name: "flet.TileAffinity" -examples: "controls/types/tile_affinity" +examples: "controls/core/types/tile_affinity" title: "TileAffinity" --- diff --git a/website/docs/types/timepickerentrymode.md b/website/docs/types/timepickerentrymode.md index 8fe21a4fad..1ba7a45b6e 100644 --- a/website/docs/types/timepickerentrymode.md +++ b/website/docs/types/timepickerentrymode.md @@ -1,6 +1,6 @@ --- class_name: "flet.TimePickerEntryMode" -examples: "controls/types/time_picker_entry_mode" +examples: "controls/core/types/time_picker_entry_mode" title: "TimePickerEntryMode" --- diff --git a/website/docs/types/timepickerhourformat.md b/website/docs/types/timepickerhourformat.md index 76ab2a5357..04c4058bfd 100644 --- a/website/docs/types/timepickerhourformat.md +++ b/website/docs/types/timepickerhourformat.md @@ -1,6 +1,6 @@ --- class_name: "flet.TimePickerHourFormat" -examples: "controls/types/time_picker_hour_format" +examples: "controls/core/types/time_picker_hour_format" title: "TimePickerHourFormat" --- diff --git a/website/docs/types/tooltip.md b/website/docs/types/tooltip.md index 0226a98cf6..ce482ac834 100644 --- a/website/docs/types/tooltip.md +++ b/website/docs/types/tooltip.md @@ -12,4 +12,4 @@ import {ClassAll, CodeExample, Image} from '@site/src/components/crocodocs'; -with-decoration +with-decoration diff --git a/website/docs/types/urltarget.md b/website/docs/types/urltarget.md index 20940a0fc4..2aa2c12d24 100644 --- a/website/docs/types/urltarget.md +++ b/website/docs/types/urltarget.md @@ -1,6 +1,6 @@ --- class_name: "flet.UrlTarget" -examples: "controls/types/url_target" +examples: "controls/core/types/url_target" title: "UrlTarget" --- diff --git a/website/docs/types/visualdensity.md b/website/docs/types/visualdensity.md index 095a3e2583..c6ae826f7c 100644 --- a/website/docs/types/visualdensity.md +++ b/website/docs/types/visualdensity.md @@ -1,6 +1,6 @@ --- class_name: "flet.VisualDensity" -examples: "controls/types/visual_density" +examples: "controls/core/types/visual_density" title: "VisualDensity" --- diff --git a/website/docs/types/windoweventtype.md b/website/docs/types/windoweventtype.md index 9656c2d06d..79d6f2d656 100644 --- a/website/docs/types/windoweventtype.md +++ b/website/docs/types/windoweventtype.md @@ -1,6 +1,6 @@ --- class_name: "flet.WindowEventType" -examples: "controls/types/window_event_type" +examples: "controls/core/types/window_event_type" title: "WindowEventType" --- diff --git a/website/sidebars.js b/website/sidebars.js index f0e887ab7d..d656c2ceb8 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -841,11 +841,6 @@ module.exports = { "id": "controls/dropdown/index" } }, - { - "type": "doc", - "id": "controls/dropdownm2", - "label": "DropdownM2" - }, { "type": "doc", "id": "controls/expansionpanel", diff --git a/website/sidebars.yml b/website/sidebars.yml index 5abf04ebd5..a4201d1a0d 100644 --- a/website/sidebars.yml +++ b/website/sidebars.yml @@ -170,7 +170,7 @@ docs: Dropdown: _index: controls/dropdown/index.md DropdownOption: controls/dropdownoption.md - DropdownM2: controls/dropdownm2.md + #DropdownM2: controls/dropdownm2.md ExpansionPanel: controls/expansionpanel.md ExpansionPanelList: controls/expansionpanellist.md ExpansionTile: controls/expansiontile.md