openuispec 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/cli/index.ts +4 -2
- package/cli/init.ts +23 -8
- package/docs/cli.md +13 -8
- package/drift/index.ts +41 -15
- package/mcp-server/index.ts +155 -116
- package/mcp-server/screenshot.ts +19 -4
- package/package.json +5 -2
- package/prepare/index.ts +16 -0
- package/scripts/take-all-screenshots.ts +507 -0
- package/status/index.ts +2 -2
- package/examples/social-app/.mcp.json +0 -10
- package/examples/social-app/AGENTS.md +0 -124
- package/examples/social-app/CLAUDE.md +0 -124
- package/examples/social-app/backend/.gitkeep +0 -1
- package/examples/social-app/generated/android/social-app/app/.paparazzi-hashes.json +0 -3
- package/examples/social-app/generated/android/social-app/app/build.gradle.kts +0 -94
- package/examples/social-app/generated/android/social-app/app/src/main/AndroidManifest.xml +0 -26
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/AppContainer.kt +0 -20
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/MainActivity.kt +0 -35
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/SocialAppApplication.kt +0 -13
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/MockData.kt +0 -98
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/AppPreferences.kt +0 -19
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/DataStorePreferencesRepository.kt +0 -68
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/PreferencesRepository.kt +0 -15
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/model/Models.kt +0 -34
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/MainShell.kt +0 -390
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/components/Components.kt +0 -234
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/components/ContractPrimitives.kt +0 -641
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/navigation/RootComponent.kt +0 -113
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/ChatDetailScreen.kt +0 -212
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/CreatePostScreen.kt +0 -113
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/DiscoverScreen.kt +0 -137
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/EditProfileScreen.kt +0 -180
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/HomeFeedScreen.kt +0 -169
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/MessagesInboxScreen.kt +0 -85
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/NotificationsScreen.kt +0 -74
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/PostDetailScreen.kt +0 -293
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/ProfileSelfScreen.kt +0 -116
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SearchResultsScreen.kt +0 -161
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SettingsScreen.kt +0 -164
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SettingsStore.kt +0 -95
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/UserProfileScreen.kt +0 -123
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Color.kt +0 -33
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Shape.kt +0 -41
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Spacing.kt +0 -20
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Theme.kt +0 -82
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Type.kt +0 -60
- package/examples/social-app/generated/android/social-app/app/src/main/res/drawable/ic_launcher_foreground.xml +0 -9
- package/examples/social-app/generated/android/social-app/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/examples/social-app/generated/android/social-app/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
- package/examples/social-app/generated/android/social-app/app/src/main/res/values/strings.xml +0 -91
- package/examples/social-app/generated/android/social-app/app/src/main/res/values/themes.xml +0 -10
- package/examples/social-app/generated/android/social-app/app/src/main/res/values-ru/strings.xml +0 -79
- package/examples/social-app/generated/android/social-app/app/src/main/res/values-uz/strings.xml +0 -79
- package/examples/social-app/generated/android/social-app/app/src/main/xml/AndroidManifest.xml +0 -23
- package/examples/social-app/generated/android/social-app/app/src/test/kotlin/com/social/app/screenshots/HomeFeedScreenshotTest.kt +0 -34
- package/examples/social-app/generated/android/social-app/build.gradle.kts +0 -7
- package/examples/social-app/generated/android/social-app/gradle/libs.versions.toml +0 -50
- package/examples/social-app/generated/android/social-app/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/social-app/generated/android/social-app/gradle/wrapper/gradle-wrapper.properties +0 -8
- package/examples/social-app/generated/android/social-app/gradle.properties +0 -11
- package/examples/social-app/generated/android/social-app/gradlew +0 -248
- package/examples/social-app/generated/android/social-app/settings.gradle.kts +0 -27
- package/examples/social-app/generated/web/social-app/index.html +0 -12
- package/examples/social-app/generated/web/social-app/package-lock.json +0 -2517
- package/examples/social-app/generated/web/social-app/package.json +0 -27
- package/examples/social-app/generated/web/social-app/src/app/App.tsx +0 -58
- package/examples/social-app/generated/web/social-app/src/components/Shell.tsx +0 -259
- package/examples/social-app/generated/web/social-app/src/components/cards.tsx +0 -317
- package/examples/social-app/generated/web/social-app/src/components/ui.tsx +0 -340
- package/examples/social-app/generated/web/social-app/src/flows/CreatePostFlow.tsx +0 -86
- package/examples/social-app/generated/web/social-app/src/i18n.tsx +0 -59
- package/examples/social-app/generated/web/social-app/src/lib/icons.tsx +0 -85
- package/examples/social-app/generated/web/social-app/src/lib/tokens.ts +0 -70
- package/examples/social-app/generated/web/social-app/src/lib/utils.ts +0 -97
- package/examples/social-app/generated/web/social-app/src/locales/en.json +0 -67
- package/examples/social-app/generated/web/social-app/src/locales/ru.json +0 -67
- package/examples/social-app/generated/web/social-app/src/locales/uz.json +0 -67
- package/examples/social-app/generated/web/social-app/src/main.tsx +0 -16
- package/examples/social-app/generated/web/social-app/src/screens/ChatDetailScreen.tsx +0 -90
- package/examples/social-app/generated/web/social-app/src/screens/DiscoverScreen.tsx +0 -86
- package/examples/social-app/generated/web/social-app/src/screens/EditProfileScreen.tsx +0 -57
- package/examples/social-app/generated/web/social-app/src/screens/HomeFeedScreen.tsx +0 -103
- package/examples/social-app/generated/web/social-app/src/screens/MessagesInboxScreen.tsx +0 -52
- package/examples/social-app/generated/web/social-app/src/screens/NotificationsScreen.tsx +0 -41
- package/examples/social-app/generated/web/social-app/src/screens/PostDetailScreen.tsx +0 -115
- package/examples/social-app/generated/web/social-app/src/screens/ProfileSelfScreen.tsx +0 -57
- package/examples/social-app/generated/web/social-app/src/screens/ProfileUserScreen.tsx +0 -76
- package/examples/social-app/generated/web/social-app/src/screens/SearchResultsScreen.tsx +0 -96
- package/examples/social-app/generated/web/social-app/src/screens/SettingsScreen.tsx +0 -79
- package/examples/social-app/generated/web/social-app/src/state/store.ts +0 -592
- package/examples/social-app/generated/web/social-app/src/styles.css +0 -125
- package/examples/social-app/generated/web/social-app/src/vite-env.d.ts +0 -1
- package/examples/social-app/generated/web/social-app/tsconfig.json +0 -22
- package/examples/social-app/generated/web/social-app/tsconfig.node.json +0 -13
- package/examples/social-app/generated/web/social-app/tsconfig.node.tsbuildinfo +0 -1
- package/examples/social-app/generated/web/social-app/tsconfig.tsbuildinfo +0 -1
- package/examples/social-app/generated/web/social-app/vite.config.d.ts +0 -2
- package/examples/social-app/generated/web/social-app/vite.config.js +0 -6
- package/examples/social-app/generated/web/social-app/vite.config.ts +0 -7
- package/examples/social-app/package.json +0 -13
- package/examples/social-app/take-web-screenshots.ts +0 -97
- package/examples/taskflow/.codex/config.toml +0 -4
- package/examples/taskflow/.mcp.json +0 -10
- package/examples/taskflow/AGENTS.md +0 -124
- package/examples/taskflow/CLAUDE.md +0 -124
- package/examples/taskflow/backend/.gitkeep +0 -1
- package/examples/taskflow/generated/android/TaskFlow/README.md +0 -43
- package/examples/taskflow/generated/android/TaskFlow/app/build.gradle.kts +0 -76
- package/examples/taskflow/generated/android/TaskFlow/app/proguard-rules.pro +0 -1
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/AndroidManifest.xml +0 -21
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/MainActivity.kt +0 -19
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/TaskFlowApp.kt +0 -283
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/model/DomainModels.kt +0 -106
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/model/SampleData.kt +0 -57
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/components/Common.kt +0 -109
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/HomeScreen.kt +0 -112
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/ProjectsScreen.kt +0 -61
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/SettingsScreen.kt +0 -82
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/TaskDetailScreen.kt +0 -111
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/sheets/Sheets.kt +0 -77
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Color.kt +0 -30
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Theme.kt +0 -86
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Type.kt +0 -57
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/res/values/strings.xml +0 -155
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/res/values/themes.xml +0 -4
- package/examples/taskflow/generated/android/TaskFlow/build.gradle.kts +0 -5
- package/examples/taskflow/generated/android/TaskFlow/gradle/gradle-daemon-jvm.properties +0 -12
- package/examples/taskflow/generated/android/TaskFlow/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/taskflow/generated/android/TaskFlow/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/examples/taskflow/generated/android/TaskFlow/gradle.properties +0 -4
- package/examples/taskflow/generated/android/TaskFlow/gradlew +0 -18
- package/examples/taskflow/generated/android/TaskFlow/gradlew.bat +0 -12
- package/examples/taskflow/generated/android/TaskFlow/settings.gradle.kts +0 -18
- package/examples/taskflow/generated/ios/TaskFlow/README.md +0 -21
- package/examples/taskflow/generated/ios/TaskFlow/Resources/en.lproj/Localizable.strings +0 -115
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/App/TaskFlowApp.swift +0 -24
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Components/AppChrome.swift +0 -150
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Flows/TaskEditorSheet.swift +0 -220
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Models/DomainModels.swift +0 -122
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/CalendarView.swift +0 -21
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/HomeView.swift +0 -201
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProfileEditView.swift +0 -48
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProjectDetailView.swift +0 -59
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProjectsView.swift +0 -63
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/SettingsView.swift +0 -85
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/TaskDetailView.swift +0 -219
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Support/AppModel.swift +0 -320
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Support/AppSupport.swift +0 -41
- package/examples/taskflow/generated/ios/TaskFlow/project.yml +0 -31
- package/examples/taskflow/generated/web/TaskFlow/README.md +0 -19
- package/examples/taskflow/generated/web/TaskFlow/index.html +0 -12
- package/examples/taskflow/generated/web/TaskFlow/package-lock.json +0 -1908
- package/examples/taskflow/generated/web/TaskFlow/package.json +0 -24
- package/examples/taskflow/generated/web/TaskFlow/src/App.tsx +0 -58
- package/examples/taskflow/generated/web/TaskFlow/src/AppShell.tsx +0 -55
- package/examples/taskflow/generated/web/TaskFlow/src/components/Common.tsx +0 -82
- package/examples/taskflow/generated/web/TaskFlow/src/components/Modals.tsx +0 -191
- package/examples/taskflow/generated/web/TaskFlow/src/components/Nav.tsx +0 -41
- package/examples/taskflow/generated/web/TaskFlow/src/generated/messages.ts +0 -131
- package/examples/taskflow/generated/web/TaskFlow/src/hooks.ts +0 -25
- package/examples/taskflow/generated/web/TaskFlow/src/i18n.ts +0 -39
- package/examples/taskflow/generated/web/TaskFlow/src/locales.en.json +0 -111
- package/examples/taskflow/generated/web/TaskFlow/src/main.tsx +0 -13
- package/examples/taskflow/generated/web/TaskFlow/src/screens/HomeScreen.tsx +0 -111
- package/examples/taskflow/generated/web/TaskFlow/src/screens/ProjectsScreen.tsx +0 -82
- package/examples/taskflow/generated/web/TaskFlow/src/screens/SettingsScreens.tsx +0 -132
- package/examples/taskflow/generated/web/TaskFlow/src/screens/TaskDetail.tsx +0 -105
- package/examples/taskflow/generated/web/TaskFlow/src/store.ts +0 -216
- package/examples/taskflow/generated/web/TaskFlow/src/styles.css +0 -617
- package/examples/taskflow/generated/web/TaskFlow/src/types.ts +0 -64
- package/examples/taskflow/generated/web/TaskFlow/src/utils.ts +0 -78
- package/examples/taskflow/generated/web/TaskFlow/tsconfig.json +0 -21
- package/examples/taskflow/generated/web/TaskFlow/vite.config.ts +0 -6
- package/examples/todo-orbit/.codex/config.toml +0 -4
- package/examples/todo-orbit/.mcp.json +0 -10
- package/examples/todo-orbit/AGENTS.md +0 -124
- package/examples/todo-orbit/CLAUDE.md +0 -124
- package/examples/todo-orbit/backend/.gitkeep +0 -1
- package/examples/todo-orbit/generated/android/Todo Orbit/README.md +0 -14
- package/examples/todo-orbit/generated/android/Todo Orbit/app/build.gradle.kts +0 -58
- package/examples/todo-orbit/generated/android/Todo Orbit/app/proguard-rules.pro +0 -1
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/AndroidManifest.xml +0 -20
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/MainActivity.kt +0 -14
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/TodoOrbitApp.kt +0 -345
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/AppLogic.kt +0 -231
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/Models.kt +0 -169
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/Strings.kt +0 -8
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/components/CommonComponents.kt +0 -236
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/AnalyticsScreen.kt +0 -193
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/SettingsScreen.kt +0 -102
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/TasksScreen.kt +0 -347
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/sheets/EditorSheets.kt +0 -347
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/theme/TodoOrbitTheme.kt +0 -59
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/res/values/strings.xml +0 -149
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/res/values-ru/strings.xml +0 -155
- package/examples/todo-orbit/generated/android/Todo Orbit/build.gradle.kts +0 -4
- package/examples/todo-orbit/generated/android/Todo Orbit/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/todo-orbit/generated/android/Todo Orbit/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/examples/todo-orbit/generated/android/Todo Orbit/gradle.properties +0 -4
- package/examples/todo-orbit/generated/android/Todo Orbit/gradlew +0 -248
- package/examples/todo-orbit/generated/android/Todo Orbit/gradlew.bat +0 -93
- package/examples/todo-orbit/generated/android/Todo Orbit/settings.gradle.kts +0 -18
- package/examples/todo-orbit/generated/ios/Todo Orbit/.screenshot-uitest/Sources/ScreenshotUITest.swift +0 -36
- package/examples/todo-orbit/generated/ios/Todo Orbit/README.md +0 -29
- package/examples/todo-orbit/generated/ios/Todo Orbit/Resources/en.lproj/Localizable.strings +0 -119
- package/examples/todo-orbit/generated/ios/Todo Orbit/Resources/ru.lproj/Localizable.strings +0 -119
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/App/TodoOrbitApp.swift +0 -50
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/OrbitChrome.swift +0 -204
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/SchedulePreviewView.swift +0 -126
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/TrendChartView.swift +0 -70
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Flows/RecurringRuleSheet.swift +0 -126
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Flows/TaskEditorSheet.swift +0 -61
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Models/DomainModels.swift +0 -238
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/AnalyticsView.swift +0 -94
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/SettingsView.swift +0 -76
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/TasksHomeView.swift +0 -364
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Support/AppModel.swift +0 -324
- package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/project.pbxproj +0 -439
- package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/xcshareddata/xcschemes/TodoOrbit.xcscheme +0 -89
- package/examples/todo-orbit/generated/ios/Todo Orbit/project.yml +0 -32
- package/examples/todo-orbit/generated/web/Todo Orbit/index.html +0 -16
- package/examples/todo-orbit/generated/web/Todo Orbit/package-lock.json +0 -1087
- package/examples/todo-orbit/generated/web/Todo Orbit/package.json +0 -24
- package/examples/todo-orbit/generated/web/Todo Orbit/src/App.tsx +0 -2167
- package/examples/todo-orbit/generated/web/Todo Orbit/src/main.tsx +0 -13
- package/examples/todo-orbit/generated/web/Todo Orbit/src/styles.css +0 -926
- package/examples/todo-orbit/generated/web/Todo Orbit/tsconfig.json +0 -19
- package/examples/todo-orbit/generated/web/Todo Orbit/vite.config.ts +0 -6
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import type { Filter, Project, Task } from "./types";
|
|
2
|
-
|
|
3
|
-
export function matchesFilter(task: Task, filter: Filter) {
|
|
4
|
-
const due = task.dueDate ? new Date(task.dueDate) : null;
|
|
5
|
-
const today = new Date();
|
|
6
|
-
today.setHours(0, 0, 0, 0);
|
|
7
|
-
if (filter === "all") return true;
|
|
8
|
-
if (filter === "done") return task.status === "done";
|
|
9
|
-
if (filter === "today") return Boolean(due && due.toDateString() === today.toDateString() && task.status !== "done");
|
|
10
|
-
return Boolean(due && due > today && task.status !== "done");
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function matchesQuery(task: Task, projects: Project[], query: string) {
|
|
14
|
-
if (!query.trim()) return true;
|
|
15
|
-
const projectName = projects.find((project) => project.id === task.projectId)?.name ?? "";
|
|
16
|
-
return [task.title, task.description ?? "", projectName, task.tags.join(" ")]
|
|
17
|
-
.join(" ")
|
|
18
|
-
.toLowerCase()
|
|
19
|
-
.includes(query.toLowerCase());
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function buildCounts(tasks: Task[]) {
|
|
23
|
-
return {
|
|
24
|
-
all: tasks.length,
|
|
25
|
-
today: tasks.filter((task) => matchesFilter(task, "today")).length,
|
|
26
|
-
upcoming: tasks.filter((task) => matchesFilter(task, "upcoming")).length,
|
|
27
|
-
done: tasks.filter((task) => task.status === "done").length
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function parseTags(value: string) {
|
|
32
|
-
return value
|
|
33
|
-
.split(",")
|
|
34
|
-
.map((item) => item.trim())
|
|
35
|
-
.filter(Boolean);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function initials(name: string) {
|
|
39
|
-
return name
|
|
40
|
-
.split(" ")
|
|
41
|
-
.slice(0, 2)
|
|
42
|
-
.map((part) => part[0]?.toUpperCase() ?? "")
|
|
43
|
-
.join("");
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function relativeDate(value: string) {
|
|
47
|
-
const date = new Date(value);
|
|
48
|
-
const today = new Date();
|
|
49
|
-
today.setHours(0, 0, 0, 0);
|
|
50
|
-
const target = new Date(date);
|
|
51
|
-
target.setHours(0, 0, 0, 0);
|
|
52
|
-
const diff = Math.round((target.getTime() - today.getTime()) / 86400000);
|
|
53
|
-
if (diff === 0) return "Today";
|
|
54
|
-
if (diff === 1) return "Tomorrow";
|
|
55
|
-
if (diff === -1) return "Yesterday";
|
|
56
|
-
if (diff > 1) return `in ${diff} days`;
|
|
57
|
-
return `${Math.abs(diff)} days ago`;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export function formatDate(value: string) {
|
|
61
|
-
return new Date(value).toLocaleDateString("en-US", {
|
|
62
|
-
month: "short",
|
|
63
|
-
day: "numeric",
|
|
64
|
-
year: "numeric"
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export function addDays(days: number) {
|
|
69
|
-
const next = new Date();
|
|
70
|
-
next.setDate(next.getDate() + days);
|
|
71
|
-
return next.toISOString();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function daysAgo(days: number) {
|
|
75
|
-
const previous = new Date();
|
|
76
|
-
previous.setDate(previous.getDate() - days);
|
|
77
|
-
return previous.toISOString();
|
|
78
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2020",
|
|
4
|
-
"useDefineForClassFields": true,
|
|
5
|
-
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
-
"allowJs": false,
|
|
7
|
-
"skipLibCheck": true,
|
|
8
|
-
"esModuleInterop": true,
|
|
9
|
-
"allowSyntheticDefaultImports": true,
|
|
10
|
-
"strict": true,
|
|
11
|
-
"forceConsistentCasingInFileNames": true,
|
|
12
|
-
"module": "ESNext",
|
|
13
|
-
"moduleResolution": "Node",
|
|
14
|
-
"resolveJsonModule": true,
|
|
15
|
-
"isolatedModules": true,
|
|
16
|
-
"noEmit": true,
|
|
17
|
-
"jsx": "react-jsx"
|
|
18
|
-
},
|
|
19
|
-
"include": ["src"],
|
|
20
|
-
"references": []
|
|
21
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<!-- openuispec-rules-start -->
|
|
2
|
-
<!-- openuispec-rules-version: 0.2.4 -->
|
|
3
|
-
# OpenUISpec — AI Assistant Rules
|
|
4
|
-
# ================================
|
|
5
|
-
# This project uses OpenUISpec to define UI as a semantic spec.
|
|
6
|
-
# Spec files are the single source of truth for all UI across platforms.
|
|
7
|
-
# Targets: "ios", "android", "web"
|
|
8
|
-
|
|
9
|
-
## MANDATORY — UI work requires OpenUISpec tools
|
|
10
|
-
|
|
11
|
-
When the user's request involves UI — screens, navigation, layout, tokens, flows, localization,
|
|
12
|
-
or any visual/structural change — you MUST use the OpenUISpec tools before writing any code.
|
|
13
|
-
|
|
14
|
-
### MCP Tools (use these when available)
|
|
15
|
-
|
|
16
|
-
Call these MCP tools directly. They return structured JSON with everything you need.
|
|
17
|
-
|
|
18
|
-
**Pre-generation:**
|
|
19
|
-
1. Call `openuispec_prepare` with the target platform — returns spec context, platform config, constraints.
|
|
20
|
-
2. Call `openuispec_read_specs` to load spec file contents. Use these as the AUTHORITATIVE source.
|
|
21
|
-
3. If spec changes are needed, update spec files FIRST, then call `openuispec_check`.
|
|
22
|
-
4. Generate or update the platform UI code based on the spec contents.
|
|
23
|
-
|
|
24
|
-
**Post-generation (EVERY TIME after writing UI code):**
|
|
25
|
-
5. Call `openuispec_check` to validate spec integrity.
|
|
26
|
-
6. Call `openuispec_read_specs` for the screens/contracts you just generated code for.
|
|
27
|
-
7. Audit your generated code against the spec. For each screen, verify:
|
|
28
|
-
- Every field/action in the spec has a corresponding UI element
|
|
29
|
-
- Token values (colors, spacing, radii) match exactly — no approximations
|
|
30
|
-
- Contract `must_handle` states are all implemented (loading, error, empty, etc.)
|
|
31
|
-
- Adaptive breakpoints match the spec's `size_classes`
|
|
32
|
-
- Locale keys match `$t:` references
|
|
33
|
-
- Navigation targets match flow definitions
|
|
34
|
-
8. Report any real gaps found and fix them before finishing.
|
|
35
|
-
|
|
36
|
-
**Creating new spec files:**
|
|
37
|
-
- Call `openuispec_spec_types` to discover available spec types.
|
|
38
|
-
- Call `openuispec_spec_schema` with the specific type to get the full JSON schema.
|
|
39
|
-
- Write the spec file following the schema exactly.
|
|
40
|
-
|
|
41
|
-
**Focused getters (prefer these for incremental edits over `read_specs`):**
|
|
42
|
-
- `openuispec_get_screen(name)` — single screen spec
|
|
43
|
-
- `openuispec_get_contract(name, variant?)` — single contract, optionally one variant
|
|
44
|
-
- `openuispec_get_tokens(category)` — single token category (color, typography, spacing, etc.)
|
|
45
|
-
- `openuispec_get_locale(locale, keys?)` — single locale file, optionally filtered keys
|
|
46
|
-
- `openuispec_check(target, screens?, contracts?)` — scoped audit for specific screens/contracts
|
|
47
|
-
|
|
48
|
-
Use `read_specs` for full-project generation; use focused getters when editing one screen or contract.
|
|
49
|
-
|
|
50
|
-
**Other tools:**
|
|
51
|
-
- `openuispec_status` — cross-target summary, good starting point
|
|
52
|
-
- `openuispec_drift` with `explain: true` — property-level spec changes
|
|
53
|
-
- `openuispec_validate` — schema-only validation by group
|
|
54
|
-
|
|
55
|
-
### CLI fallback (when MCP is not available)
|
|
56
|
-
|
|
57
|
-
If MCP tools are not available, use these CLI commands with `--json` flag:
|
|
58
|
-
- `openuispec prepare --target <t> --json` — build AI-ready work bundle
|
|
59
|
-
- `openuispec check --target <t> --json` — composite validation
|
|
60
|
-
- `openuispec status --json` — cross-target status
|
|
61
|
-
- `openuispec drift --target <t> --explain --json` — semantic drift
|
|
62
|
-
- `openuispec validate [group...] --json` — schema validation
|
|
63
|
-
- `openuispec read-specs [paths...]` — read spec file contents
|
|
64
|
-
- `openuispec get-screen <name>` — get a single screen spec
|
|
65
|
-
- `openuispec get-contract <name> [--variant v]` — get a contract spec
|
|
66
|
-
- `openuispec get-tokens <category>` — get tokens for a category
|
|
67
|
-
- `openuispec get-locale <locale> [--keys k1,k2]` — get a locale file
|
|
68
|
-
- `openuispec spec-types` — list available spec types
|
|
69
|
-
- `openuispec spec-schema <type>` — get JSON schema for a spec type
|
|
70
|
-
- `openuispec screenshot --route /path` — screenshot the web app
|
|
71
|
-
- `openuispec screenshot-android [--project-dir path]` — screenshot Android app
|
|
72
|
-
- `openuispec screenshot-ios [--project-dir path]` — screenshot iOS app
|
|
73
|
-
|
|
74
|
-
### Other CLI commands
|
|
75
|
-
- `openuispec init` — scaffold a new spec project
|
|
76
|
-
- `openuispec drift --snapshot --target <t>` — snapshot current state (only after UI code is updated)
|
|
77
|
-
- `openuispec configure-target <t>` — configure target platform stack
|
|
78
|
-
- `openuispec update-rules` — update AI rules to match installed package version
|
|
79
|
-
|
|
80
|
-
## Spec format reference
|
|
81
|
-
|
|
82
|
-
The spec format, schemas, and generation rules are in the installed `openuispec` package.
|
|
83
|
-
You MUST read the reference files before creating or editing spec files — do NOT guess the format.
|
|
84
|
-
|
|
85
|
-
**Find the package:** `node_modules/openuispec/` or run `npm root -g` → `<prefix>/openuispec/`.
|
|
86
|
-
**Online fallback:** `https://openuispec.rsteam.uz/llms-full.txt`
|
|
87
|
-
|
|
88
|
-
**Reference files (read in order):**
|
|
89
|
-
1. `README.md` — schema tables, file format, root wrapper keys
|
|
90
|
-
2. `spec/openuispec-v0.1.md` — full specification
|
|
91
|
-
3. `examples/taskflow/openuispec/` — complete working example
|
|
92
|
-
4. `schema/` — JSON Schemas for every file type
|
|
93
|
-
|
|
94
|
-
## Spec location
|
|
95
|
-
- Spec root: `openuispec/` — read `openuispec/openuispec.yaml` first for actual paths.
|
|
96
|
-
- Default dirs: tokens/, screens/, flows/, contracts/, platform/, locales/
|
|
97
|
-
|
|
98
|
-
## When to start from spec vs platform code
|
|
99
|
-
|
|
100
|
-
**Spec-first** (use `openuispec_prepare` or `openuispec prepare`):
|
|
101
|
-
- Screen structure, navigation, fields, actions, validation, data binding changes
|
|
102
|
-
- Token, variant, contract, flow, or localization changes
|
|
103
|
-
- Changes affecting multiple platforms
|
|
104
|
-
- Requests in product/UI terms
|
|
105
|
-
|
|
106
|
-
**Platform-first** (skip spec tools):
|
|
107
|
-
- Platform-specific polish (iOS-only, Android-only, web-only)
|
|
108
|
-
- Local bug fixes that don't alter shared semantic behavior
|
|
109
|
-
|
|
110
|
-
## If spec directories are empty (first-time setup)
|
|
111
|
-
|
|
112
|
-
Read `spec/openuispec-v0.1.md` from the package first, then:
|
|
113
|
-
1. Scan codebase for UI screens → create `openuispec/screens/<name>.yaml` as `status: stub`
|
|
114
|
-
2. Extract tokens (colors, fonts, spacing) → `openuispec/tokens/`
|
|
115
|
-
3. Create contract extensions → `openuispec/contracts/`
|
|
116
|
-
4. Create locale files → `openuispec/locales/<locale>.json`
|
|
117
|
-
5. Fill in `data_model`, `api.endpoints` in `openuispec/openuispec.yaml`
|
|
118
|
-
|
|
119
|
-
## Rules
|
|
120
|
-
- Do not snapshot drift unless the UI code has also been updated.
|
|
121
|
-
- Do not modify generated UI without checking whether the spec must change first.
|
|
122
|
-
- Do not use `configure-target --defaults` as silent approval — ask the user to confirm.
|
|
123
|
-
- Always read spec format from the installed package, not from cached/memorized content.
|
|
124
|
-
<!-- openuispec-rules-end -->
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<!-- openuispec-rules-start -->
|
|
2
|
-
<!-- openuispec-rules-version: 0.2.4 -->
|
|
3
|
-
# OpenUISpec — AI Assistant Rules
|
|
4
|
-
# ================================
|
|
5
|
-
# This project uses OpenUISpec to define UI as a semantic spec.
|
|
6
|
-
# Spec files are the single source of truth for all UI across platforms.
|
|
7
|
-
# Targets: "ios", "android", "web"
|
|
8
|
-
|
|
9
|
-
## MANDATORY — UI work requires OpenUISpec tools
|
|
10
|
-
|
|
11
|
-
When the user's request involves UI — screens, navigation, layout, tokens, flows, localization,
|
|
12
|
-
or any visual/structural change — you MUST use the OpenUISpec tools before writing any code.
|
|
13
|
-
|
|
14
|
-
### MCP Tools (use these when available)
|
|
15
|
-
|
|
16
|
-
Call these MCP tools directly. They return structured JSON with everything you need.
|
|
17
|
-
|
|
18
|
-
**Pre-generation:**
|
|
19
|
-
1. Call `openuispec_prepare` with the target platform — returns spec context, platform config, constraints.
|
|
20
|
-
2. Call `openuispec_read_specs` to load spec file contents. Use these as the AUTHORITATIVE source.
|
|
21
|
-
3. If spec changes are needed, update spec files FIRST, then call `openuispec_check`.
|
|
22
|
-
4. Generate or update the platform UI code based on the spec contents.
|
|
23
|
-
|
|
24
|
-
**Post-generation (EVERY TIME after writing UI code):**
|
|
25
|
-
5. Call `openuispec_check` to validate spec integrity.
|
|
26
|
-
6. Call `openuispec_read_specs` for the screens/contracts you just generated code for.
|
|
27
|
-
7. Audit your generated code against the spec. For each screen, verify:
|
|
28
|
-
- Every field/action in the spec has a corresponding UI element
|
|
29
|
-
- Token values (colors, spacing, radii) match exactly — no approximations
|
|
30
|
-
- Contract `must_handle` states are all implemented (loading, error, empty, etc.)
|
|
31
|
-
- Adaptive breakpoints match the spec's `size_classes`
|
|
32
|
-
- Locale keys match `$t:` references
|
|
33
|
-
- Navigation targets match flow definitions
|
|
34
|
-
8. Report any real gaps found and fix them before finishing.
|
|
35
|
-
|
|
36
|
-
**Creating new spec files:**
|
|
37
|
-
- Call `openuispec_spec_types` to discover available spec types.
|
|
38
|
-
- Call `openuispec_spec_schema` with the specific type to get the full JSON schema.
|
|
39
|
-
- Write the spec file following the schema exactly.
|
|
40
|
-
|
|
41
|
-
**Focused getters (prefer these for incremental edits over `read_specs`):**
|
|
42
|
-
- `openuispec_get_screen(name)` — single screen spec
|
|
43
|
-
- `openuispec_get_contract(name, variant?)` — single contract, optionally one variant
|
|
44
|
-
- `openuispec_get_tokens(category)` — single token category (color, typography, spacing, etc.)
|
|
45
|
-
- `openuispec_get_locale(locale, keys?)` — single locale file, optionally filtered keys
|
|
46
|
-
- `openuispec_check(target, screens?, contracts?)` — scoped audit for specific screens/contracts
|
|
47
|
-
|
|
48
|
-
Use `read_specs` for full-project generation; use focused getters when editing one screen or contract.
|
|
49
|
-
|
|
50
|
-
**Other tools:**
|
|
51
|
-
- `openuispec_status` — cross-target summary, good starting point
|
|
52
|
-
- `openuispec_drift` with `explain: true` — property-level spec changes
|
|
53
|
-
- `openuispec_validate` — schema-only validation by group
|
|
54
|
-
|
|
55
|
-
### CLI fallback (when MCP is not available)
|
|
56
|
-
|
|
57
|
-
If MCP tools are not available, use these CLI commands with `--json` flag:
|
|
58
|
-
- `openuispec prepare --target <t> --json` — build AI-ready work bundle
|
|
59
|
-
- `openuispec check --target <t> --json` — composite validation
|
|
60
|
-
- `openuispec status --json` — cross-target status
|
|
61
|
-
- `openuispec drift --target <t> --explain --json` — semantic drift
|
|
62
|
-
- `openuispec validate [group...] --json` — schema validation
|
|
63
|
-
- `openuispec read-specs [paths...]` — read spec file contents
|
|
64
|
-
- `openuispec get-screen <name>` — get a single screen spec
|
|
65
|
-
- `openuispec get-contract <name> [--variant v]` — get a contract spec
|
|
66
|
-
- `openuispec get-tokens <category>` — get tokens for a category
|
|
67
|
-
- `openuispec get-locale <locale> [--keys k1,k2]` — get a locale file
|
|
68
|
-
- `openuispec spec-types` — list available spec types
|
|
69
|
-
- `openuispec spec-schema <type>` — get JSON schema for a spec type
|
|
70
|
-
- `openuispec screenshot --route /path` — screenshot the web app
|
|
71
|
-
- `openuispec screenshot-android [--project-dir path]` — screenshot Android app
|
|
72
|
-
- `openuispec screenshot-ios [--project-dir path]` — screenshot iOS app
|
|
73
|
-
|
|
74
|
-
### Other CLI commands
|
|
75
|
-
- `openuispec init` — scaffold a new spec project
|
|
76
|
-
- `openuispec drift --snapshot --target <t>` — snapshot current state (only after UI code is updated)
|
|
77
|
-
- `openuispec configure-target <t>` — configure target platform stack
|
|
78
|
-
- `openuispec update-rules` — update AI rules to match installed package version
|
|
79
|
-
|
|
80
|
-
## Spec format reference
|
|
81
|
-
|
|
82
|
-
The spec format, schemas, and generation rules are in the installed `openuispec` package.
|
|
83
|
-
You MUST read the reference files before creating or editing spec files — do NOT guess the format.
|
|
84
|
-
|
|
85
|
-
**Find the package:** `node_modules/openuispec/` or run `npm root -g` → `<prefix>/openuispec/`.
|
|
86
|
-
**Online fallback:** `https://openuispec.rsteam.uz/llms-full.txt`
|
|
87
|
-
|
|
88
|
-
**Reference files (read in order):**
|
|
89
|
-
1. `README.md` — schema tables, file format, root wrapper keys
|
|
90
|
-
2. `spec/openuispec-v0.1.md` — full specification
|
|
91
|
-
3. `examples/taskflow/openuispec/` — complete working example
|
|
92
|
-
4. `schema/` — JSON Schemas for every file type
|
|
93
|
-
|
|
94
|
-
## Spec location
|
|
95
|
-
- Spec root: `openuispec/` — read `openuispec/openuispec.yaml` first for actual paths.
|
|
96
|
-
- Default dirs: tokens/, screens/, flows/, contracts/, platform/, locales/
|
|
97
|
-
|
|
98
|
-
## When to start from spec vs platform code
|
|
99
|
-
|
|
100
|
-
**Spec-first** (use `openuispec_prepare` or `openuispec prepare`):
|
|
101
|
-
- Screen structure, navigation, fields, actions, validation, data binding changes
|
|
102
|
-
- Token, variant, contract, flow, or localization changes
|
|
103
|
-
- Changes affecting multiple platforms
|
|
104
|
-
- Requests in product/UI terms
|
|
105
|
-
|
|
106
|
-
**Platform-first** (skip spec tools):
|
|
107
|
-
- Platform-specific polish (iOS-only, Android-only, web-only)
|
|
108
|
-
- Local bug fixes that don't alter shared semantic behavior
|
|
109
|
-
|
|
110
|
-
## If spec directories are empty (first-time setup)
|
|
111
|
-
|
|
112
|
-
Read `spec/openuispec-v0.1.md` from the package first, then:
|
|
113
|
-
1. Scan codebase for UI screens → create `openuispec/screens/<name>.yaml` as `status: stub`
|
|
114
|
-
2. Extract tokens (colors, fonts, spacing) → `openuispec/tokens/`
|
|
115
|
-
3. Create contract extensions → `openuispec/contracts/`
|
|
116
|
-
4. Create locale files → `openuispec/locales/<locale>.json`
|
|
117
|
-
5. Fill in `data_model`, `api.endpoints` in `openuispec/openuispec.yaml`
|
|
118
|
-
|
|
119
|
-
## Rules
|
|
120
|
-
- Do not snapshot drift unless the UI code has also been updated.
|
|
121
|
-
- Do not modify generated UI without checking whether the spec must change first.
|
|
122
|
-
- Do not use `configure-target --defaults` as silent approval — ask the user to confirm.
|
|
123
|
-
- Always read spec format from the installed package, not from cached/memorized content.
|
|
124
|
-
<!-- openuispec-rules-end -->
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Todo Orbit Android
|
|
2
|
-
|
|
3
|
-
Generated Android target for the OpenUISpec Todo Orbit project.
|
|
4
|
-
|
|
5
|
-
## Structure
|
|
6
|
-
|
|
7
|
-
- `app/` — Android application module
|
|
8
|
-
- `app/src/main/java/uz/rsteam/todoorbit/MainActivity.kt` — Compose app scaffold
|
|
9
|
-
- `app/src/main/java/uz/rsteam/todoorbit/ui/theme/TodoOrbitTheme.kt` — light/dark theme mapped from spec tokens
|
|
10
|
-
|
|
11
|
-
## Notes
|
|
12
|
-
|
|
13
|
-
- The project models the current OpenUISpec surface: tasks, analytics, settings, create/edit flows, recurring rule flow, bilingual strings, theme switching, and the two custom contracts (`x_task_trend_chart`, `x_schedule_preview`).
|
|
14
|
-
- Build verification was limited by the local environment: `gradle`, `kotlinc`, and `sdkmanager` were not installed in the workspace session, so this target was generated as a credible Gradle/Compose project but not compiled here.
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
plugins {
|
|
2
|
-
id("com.android.application")
|
|
3
|
-
id("org.jetbrains.kotlin.plugin.compose")
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
android {
|
|
7
|
-
namespace = "uz.rsteam.todoorbit"
|
|
8
|
-
compileSdk = 36
|
|
9
|
-
|
|
10
|
-
defaultConfig {
|
|
11
|
-
applicationId = "uz.rsteam.todoorbit"
|
|
12
|
-
minSdk = 26
|
|
13
|
-
targetSdk = 35
|
|
14
|
-
versionCode = 1
|
|
15
|
-
versionName = "0.1.0"
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
buildTypes {
|
|
19
|
-
release {
|
|
20
|
-
isMinifyEnabled = false
|
|
21
|
-
proguardFiles(
|
|
22
|
-
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
23
|
-
"proguard-rules.pro"
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
compileOptions {
|
|
29
|
-
sourceCompatibility = JavaVersion.VERSION_17
|
|
30
|
-
targetCompatibility = JavaVersion.VERSION_17
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
buildFeatures {
|
|
34
|
-
compose = true
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
packaging {
|
|
38
|
-
resources {
|
|
39
|
-
excludes += "/META-INF/{AL2.0,LGPL2.1}"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
dependencies {
|
|
45
|
-
implementation(platform("androidx.compose:compose-bom:2026.03.00"))
|
|
46
|
-
implementation("androidx.appcompat:appcompat:1.7.1")
|
|
47
|
-
implementation("androidx.core:core-ktx:1.16.0")
|
|
48
|
-
implementation("androidx.activity:activity-compose:1.11.0")
|
|
49
|
-
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.4")
|
|
50
|
-
implementation("androidx.compose.ui:ui")
|
|
51
|
-
implementation("androidx.compose.ui:ui-tooling-preview")
|
|
52
|
-
implementation("androidx.compose.foundation:foundation")
|
|
53
|
-
implementation("androidx.compose.material3:material3")
|
|
54
|
-
implementation("androidx.compose.material:material-icons-extended")
|
|
55
|
-
|
|
56
|
-
debugImplementation("androidx.compose.ui:ui-tooling")
|
|
57
|
-
debugImplementation("androidx.compose.ui:ui-test-manifest")
|
|
58
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Intentionally minimal for generated demo output.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
3
|
-
|
|
4
|
-
<application
|
|
5
|
-
android:allowBackup="true"
|
|
6
|
-
android:label="@string/app_name"
|
|
7
|
-
android:supportsRtl="true"
|
|
8
|
-
android:theme="@android:style/Theme.Material.Light.NoActionBar">
|
|
9
|
-
<activity
|
|
10
|
-
android:name=".MainActivity"
|
|
11
|
-
android:exported="true">
|
|
12
|
-
<intent-filter>
|
|
13
|
-
<action android:name="android.intent.action.MAIN" />
|
|
14
|
-
|
|
15
|
-
<category android:name="android.intent.category.LAUNCHER" />
|
|
16
|
-
</intent-filter>
|
|
17
|
-
</activity>
|
|
18
|
-
</application>
|
|
19
|
-
|
|
20
|
-
</manifest>
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
package uz.rsteam.todoorbit
|
|
2
|
-
|
|
3
|
-
import android.os.Bundle
|
|
4
|
-
import androidx.activity.ComponentActivity
|
|
5
|
-
import androidx.activity.compose.setContent
|
|
6
|
-
|
|
7
|
-
class MainActivity : ComponentActivity() {
|
|
8
|
-
override fun onCreate(savedInstanceState: Bundle?) {
|
|
9
|
-
super.onCreate(savedInstanceState)
|
|
10
|
-
setContent {
|
|
11
|
-
TodoOrbitGeneratedApp()
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|