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.
Files changed (231) hide show
  1. package/README.md +3 -1
  2. package/cli/index.ts +4 -2
  3. package/cli/init.ts +23 -8
  4. package/docs/cli.md +13 -8
  5. package/drift/index.ts +41 -15
  6. package/mcp-server/index.ts +155 -116
  7. package/mcp-server/screenshot.ts +19 -4
  8. package/package.json +5 -2
  9. package/prepare/index.ts +16 -0
  10. package/scripts/take-all-screenshots.ts +507 -0
  11. package/status/index.ts +2 -2
  12. package/examples/social-app/.mcp.json +0 -10
  13. package/examples/social-app/AGENTS.md +0 -124
  14. package/examples/social-app/CLAUDE.md +0 -124
  15. package/examples/social-app/backend/.gitkeep +0 -1
  16. package/examples/social-app/generated/android/social-app/app/.paparazzi-hashes.json +0 -3
  17. package/examples/social-app/generated/android/social-app/app/build.gradle.kts +0 -94
  18. package/examples/social-app/generated/android/social-app/app/src/main/AndroidManifest.xml +0 -26
  19. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/AppContainer.kt +0 -20
  20. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/MainActivity.kt +0 -35
  21. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/SocialAppApplication.kt +0 -13
  22. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/MockData.kt +0 -98
  23. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/AppPreferences.kt +0 -19
  24. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/DataStorePreferencesRepository.kt +0 -68
  25. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/PreferencesRepository.kt +0 -15
  26. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/model/Models.kt +0 -34
  27. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/MainShell.kt +0 -390
  28. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/components/Components.kt +0 -234
  29. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/components/ContractPrimitives.kt +0 -641
  30. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/navigation/RootComponent.kt +0 -113
  31. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/ChatDetailScreen.kt +0 -212
  32. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/CreatePostScreen.kt +0 -113
  33. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/DiscoverScreen.kt +0 -137
  34. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/EditProfileScreen.kt +0 -180
  35. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/HomeFeedScreen.kt +0 -169
  36. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/MessagesInboxScreen.kt +0 -85
  37. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/NotificationsScreen.kt +0 -74
  38. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/PostDetailScreen.kt +0 -293
  39. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/ProfileSelfScreen.kt +0 -116
  40. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SearchResultsScreen.kt +0 -161
  41. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SettingsScreen.kt +0 -164
  42. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SettingsStore.kt +0 -95
  43. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/UserProfileScreen.kt +0 -123
  44. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Color.kt +0 -33
  45. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Shape.kt +0 -41
  46. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Spacing.kt +0 -20
  47. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Theme.kt +0 -82
  48. package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Type.kt +0 -60
  49. package/examples/social-app/generated/android/social-app/app/src/main/res/drawable/ic_launcher_foreground.xml +0 -9
  50. package/examples/social-app/generated/android/social-app/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  51. package/examples/social-app/generated/android/social-app/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
  52. package/examples/social-app/generated/android/social-app/app/src/main/res/values/strings.xml +0 -91
  53. package/examples/social-app/generated/android/social-app/app/src/main/res/values/themes.xml +0 -10
  54. package/examples/social-app/generated/android/social-app/app/src/main/res/values-ru/strings.xml +0 -79
  55. package/examples/social-app/generated/android/social-app/app/src/main/res/values-uz/strings.xml +0 -79
  56. package/examples/social-app/generated/android/social-app/app/src/main/xml/AndroidManifest.xml +0 -23
  57. package/examples/social-app/generated/android/social-app/app/src/test/kotlin/com/social/app/screenshots/HomeFeedScreenshotTest.kt +0 -34
  58. package/examples/social-app/generated/android/social-app/build.gradle.kts +0 -7
  59. package/examples/social-app/generated/android/social-app/gradle/libs.versions.toml +0 -50
  60. package/examples/social-app/generated/android/social-app/gradle/wrapper/gradle-wrapper.jar +0 -0
  61. package/examples/social-app/generated/android/social-app/gradle/wrapper/gradle-wrapper.properties +0 -8
  62. package/examples/social-app/generated/android/social-app/gradle.properties +0 -11
  63. package/examples/social-app/generated/android/social-app/gradlew +0 -248
  64. package/examples/social-app/generated/android/social-app/settings.gradle.kts +0 -27
  65. package/examples/social-app/generated/web/social-app/index.html +0 -12
  66. package/examples/social-app/generated/web/social-app/package-lock.json +0 -2517
  67. package/examples/social-app/generated/web/social-app/package.json +0 -27
  68. package/examples/social-app/generated/web/social-app/src/app/App.tsx +0 -58
  69. package/examples/social-app/generated/web/social-app/src/components/Shell.tsx +0 -259
  70. package/examples/social-app/generated/web/social-app/src/components/cards.tsx +0 -317
  71. package/examples/social-app/generated/web/social-app/src/components/ui.tsx +0 -340
  72. package/examples/social-app/generated/web/social-app/src/flows/CreatePostFlow.tsx +0 -86
  73. package/examples/social-app/generated/web/social-app/src/i18n.tsx +0 -59
  74. package/examples/social-app/generated/web/social-app/src/lib/icons.tsx +0 -85
  75. package/examples/social-app/generated/web/social-app/src/lib/tokens.ts +0 -70
  76. package/examples/social-app/generated/web/social-app/src/lib/utils.ts +0 -97
  77. package/examples/social-app/generated/web/social-app/src/locales/en.json +0 -67
  78. package/examples/social-app/generated/web/social-app/src/locales/ru.json +0 -67
  79. package/examples/social-app/generated/web/social-app/src/locales/uz.json +0 -67
  80. package/examples/social-app/generated/web/social-app/src/main.tsx +0 -16
  81. package/examples/social-app/generated/web/social-app/src/screens/ChatDetailScreen.tsx +0 -90
  82. package/examples/social-app/generated/web/social-app/src/screens/DiscoverScreen.tsx +0 -86
  83. package/examples/social-app/generated/web/social-app/src/screens/EditProfileScreen.tsx +0 -57
  84. package/examples/social-app/generated/web/social-app/src/screens/HomeFeedScreen.tsx +0 -103
  85. package/examples/social-app/generated/web/social-app/src/screens/MessagesInboxScreen.tsx +0 -52
  86. package/examples/social-app/generated/web/social-app/src/screens/NotificationsScreen.tsx +0 -41
  87. package/examples/social-app/generated/web/social-app/src/screens/PostDetailScreen.tsx +0 -115
  88. package/examples/social-app/generated/web/social-app/src/screens/ProfileSelfScreen.tsx +0 -57
  89. package/examples/social-app/generated/web/social-app/src/screens/ProfileUserScreen.tsx +0 -76
  90. package/examples/social-app/generated/web/social-app/src/screens/SearchResultsScreen.tsx +0 -96
  91. package/examples/social-app/generated/web/social-app/src/screens/SettingsScreen.tsx +0 -79
  92. package/examples/social-app/generated/web/social-app/src/state/store.ts +0 -592
  93. package/examples/social-app/generated/web/social-app/src/styles.css +0 -125
  94. package/examples/social-app/generated/web/social-app/src/vite-env.d.ts +0 -1
  95. package/examples/social-app/generated/web/social-app/tsconfig.json +0 -22
  96. package/examples/social-app/generated/web/social-app/tsconfig.node.json +0 -13
  97. package/examples/social-app/generated/web/social-app/tsconfig.node.tsbuildinfo +0 -1
  98. package/examples/social-app/generated/web/social-app/tsconfig.tsbuildinfo +0 -1
  99. package/examples/social-app/generated/web/social-app/vite.config.d.ts +0 -2
  100. package/examples/social-app/generated/web/social-app/vite.config.js +0 -6
  101. package/examples/social-app/generated/web/social-app/vite.config.ts +0 -7
  102. package/examples/social-app/package.json +0 -13
  103. package/examples/social-app/take-web-screenshots.ts +0 -97
  104. package/examples/taskflow/.codex/config.toml +0 -4
  105. package/examples/taskflow/.mcp.json +0 -10
  106. package/examples/taskflow/AGENTS.md +0 -124
  107. package/examples/taskflow/CLAUDE.md +0 -124
  108. package/examples/taskflow/backend/.gitkeep +0 -1
  109. package/examples/taskflow/generated/android/TaskFlow/README.md +0 -43
  110. package/examples/taskflow/generated/android/TaskFlow/app/build.gradle.kts +0 -76
  111. package/examples/taskflow/generated/android/TaskFlow/app/proguard-rules.pro +0 -1
  112. package/examples/taskflow/generated/android/TaskFlow/app/src/main/AndroidManifest.xml +0 -21
  113. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/MainActivity.kt +0 -19
  114. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/TaskFlowApp.kt +0 -283
  115. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/model/DomainModels.kt +0 -106
  116. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/model/SampleData.kt +0 -57
  117. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/components/Common.kt +0 -109
  118. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/HomeScreen.kt +0 -112
  119. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/ProjectsScreen.kt +0 -61
  120. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/SettingsScreen.kt +0 -82
  121. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/TaskDetailScreen.kt +0 -111
  122. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/sheets/Sheets.kt +0 -77
  123. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Color.kt +0 -30
  124. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Theme.kt +0 -86
  125. package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Type.kt +0 -57
  126. package/examples/taskflow/generated/android/TaskFlow/app/src/main/res/values/strings.xml +0 -155
  127. package/examples/taskflow/generated/android/TaskFlow/app/src/main/res/values/themes.xml +0 -4
  128. package/examples/taskflow/generated/android/TaskFlow/build.gradle.kts +0 -5
  129. package/examples/taskflow/generated/android/TaskFlow/gradle/gradle-daemon-jvm.properties +0 -12
  130. package/examples/taskflow/generated/android/TaskFlow/gradle/wrapper/gradle-wrapper.jar +0 -0
  131. package/examples/taskflow/generated/android/TaskFlow/gradle/wrapper/gradle-wrapper.properties +0 -7
  132. package/examples/taskflow/generated/android/TaskFlow/gradle.properties +0 -4
  133. package/examples/taskflow/generated/android/TaskFlow/gradlew +0 -18
  134. package/examples/taskflow/generated/android/TaskFlow/gradlew.bat +0 -12
  135. package/examples/taskflow/generated/android/TaskFlow/settings.gradle.kts +0 -18
  136. package/examples/taskflow/generated/ios/TaskFlow/README.md +0 -21
  137. package/examples/taskflow/generated/ios/TaskFlow/Resources/en.lproj/Localizable.strings +0 -115
  138. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/App/TaskFlowApp.swift +0 -24
  139. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Components/AppChrome.swift +0 -150
  140. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Flows/TaskEditorSheet.swift +0 -220
  141. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Models/DomainModels.swift +0 -122
  142. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/CalendarView.swift +0 -21
  143. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/HomeView.swift +0 -201
  144. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProfileEditView.swift +0 -48
  145. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProjectDetailView.swift +0 -59
  146. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProjectsView.swift +0 -63
  147. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/SettingsView.swift +0 -85
  148. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/TaskDetailView.swift +0 -219
  149. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Support/AppModel.swift +0 -320
  150. package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Support/AppSupport.swift +0 -41
  151. package/examples/taskflow/generated/ios/TaskFlow/project.yml +0 -31
  152. package/examples/taskflow/generated/web/TaskFlow/README.md +0 -19
  153. package/examples/taskflow/generated/web/TaskFlow/index.html +0 -12
  154. package/examples/taskflow/generated/web/TaskFlow/package-lock.json +0 -1908
  155. package/examples/taskflow/generated/web/TaskFlow/package.json +0 -24
  156. package/examples/taskflow/generated/web/TaskFlow/src/App.tsx +0 -58
  157. package/examples/taskflow/generated/web/TaskFlow/src/AppShell.tsx +0 -55
  158. package/examples/taskflow/generated/web/TaskFlow/src/components/Common.tsx +0 -82
  159. package/examples/taskflow/generated/web/TaskFlow/src/components/Modals.tsx +0 -191
  160. package/examples/taskflow/generated/web/TaskFlow/src/components/Nav.tsx +0 -41
  161. package/examples/taskflow/generated/web/TaskFlow/src/generated/messages.ts +0 -131
  162. package/examples/taskflow/generated/web/TaskFlow/src/hooks.ts +0 -25
  163. package/examples/taskflow/generated/web/TaskFlow/src/i18n.ts +0 -39
  164. package/examples/taskflow/generated/web/TaskFlow/src/locales.en.json +0 -111
  165. package/examples/taskflow/generated/web/TaskFlow/src/main.tsx +0 -13
  166. package/examples/taskflow/generated/web/TaskFlow/src/screens/HomeScreen.tsx +0 -111
  167. package/examples/taskflow/generated/web/TaskFlow/src/screens/ProjectsScreen.tsx +0 -82
  168. package/examples/taskflow/generated/web/TaskFlow/src/screens/SettingsScreens.tsx +0 -132
  169. package/examples/taskflow/generated/web/TaskFlow/src/screens/TaskDetail.tsx +0 -105
  170. package/examples/taskflow/generated/web/TaskFlow/src/store.ts +0 -216
  171. package/examples/taskflow/generated/web/TaskFlow/src/styles.css +0 -617
  172. package/examples/taskflow/generated/web/TaskFlow/src/types.ts +0 -64
  173. package/examples/taskflow/generated/web/TaskFlow/src/utils.ts +0 -78
  174. package/examples/taskflow/generated/web/TaskFlow/tsconfig.json +0 -21
  175. package/examples/taskflow/generated/web/TaskFlow/vite.config.ts +0 -6
  176. package/examples/todo-orbit/.codex/config.toml +0 -4
  177. package/examples/todo-orbit/.mcp.json +0 -10
  178. package/examples/todo-orbit/AGENTS.md +0 -124
  179. package/examples/todo-orbit/CLAUDE.md +0 -124
  180. package/examples/todo-orbit/backend/.gitkeep +0 -1
  181. package/examples/todo-orbit/generated/android/Todo Orbit/README.md +0 -14
  182. package/examples/todo-orbit/generated/android/Todo Orbit/app/build.gradle.kts +0 -58
  183. package/examples/todo-orbit/generated/android/Todo Orbit/app/proguard-rules.pro +0 -1
  184. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/AndroidManifest.xml +0 -20
  185. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/MainActivity.kt +0 -14
  186. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/TodoOrbitApp.kt +0 -345
  187. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/AppLogic.kt +0 -231
  188. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/Models.kt +0 -169
  189. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/Strings.kt +0 -8
  190. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/components/CommonComponents.kt +0 -236
  191. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/AnalyticsScreen.kt +0 -193
  192. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/SettingsScreen.kt +0 -102
  193. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/TasksScreen.kt +0 -347
  194. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/sheets/EditorSheets.kt +0 -347
  195. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/theme/TodoOrbitTheme.kt +0 -59
  196. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/res/values/strings.xml +0 -149
  197. package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/res/values-ru/strings.xml +0 -155
  198. package/examples/todo-orbit/generated/android/Todo Orbit/build.gradle.kts +0 -4
  199. package/examples/todo-orbit/generated/android/Todo Orbit/gradle/wrapper/gradle-wrapper.jar +0 -0
  200. package/examples/todo-orbit/generated/android/Todo Orbit/gradle/wrapper/gradle-wrapper.properties +0 -7
  201. package/examples/todo-orbit/generated/android/Todo Orbit/gradle.properties +0 -4
  202. package/examples/todo-orbit/generated/android/Todo Orbit/gradlew +0 -248
  203. package/examples/todo-orbit/generated/android/Todo Orbit/gradlew.bat +0 -93
  204. package/examples/todo-orbit/generated/android/Todo Orbit/settings.gradle.kts +0 -18
  205. package/examples/todo-orbit/generated/ios/Todo Orbit/.screenshot-uitest/Sources/ScreenshotUITest.swift +0 -36
  206. package/examples/todo-orbit/generated/ios/Todo Orbit/README.md +0 -29
  207. package/examples/todo-orbit/generated/ios/Todo Orbit/Resources/en.lproj/Localizable.strings +0 -119
  208. package/examples/todo-orbit/generated/ios/Todo Orbit/Resources/ru.lproj/Localizable.strings +0 -119
  209. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/App/TodoOrbitApp.swift +0 -50
  210. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/OrbitChrome.swift +0 -204
  211. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/SchedulePreviewView.swift +0 -126
  212. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/TrendChartView.swift +0 -70
  213. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Flows/RecurringRuleSheet.swift +0 -126
  214. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Flows/TaskEditorSheet.swift +0 -61
  215. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Models/DomainModels.swift +0 -238
  216. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/AnalyticsView.swift +0 -94
  217. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/SettingsView.swift +0 -76
  218. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/TasksHomeView.swift +0 -364
  219. package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Support/AppModel.swift +0 -324
  220. package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/project.pbxproj +0 -439
  221. package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  222. package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/xcshareddata/xcschemes/TodoOrbit.xcscheme +0 -89
  223. package/examples/todo-orbit/generated/ios/Todo Orbit/project.yml +0 -32
  224. package/examples/todo-orbit/generated/web/Todo Orbit/index.html +0 -16
  225. package/examples/todo-orbit/generated/web/Todo Orbit/package-lock.json +0 -1087
  226. package/examples/todo-orbit/generated/web/Todo Orbit/package.json +0 -24
  227. package/examples/todo-orbit/generated/web/Todo Orbit/src/App.tsx +0 -2167
  228. package/examples/todo-orbit/generated/web/Todo Orbit/src/main.tsx +0 -13
  229. package/examples/todo-orbit/generated/web/Todo Orbit/src/styles.css +0 -926
  230. package/examples/todo-orbit/generated/web/Todo Orbit/tsconfig.json +0 -19
  231. package/examples/todo-orbit/generated/web/Todo Orbit/vite.config.ts +0 -6
@@ -1,164 +0,0 @@
1
- package com.social.app.ui.screens
2
-
3
- import androidx.compose.foundation.layout.Arrangement
4
- import androidx.compose.foundation.layout.Column
5
- import androidx.compose.foundation.layout.fillMaxSize
6
- import androidx.compose.foundation.layout.padding
7
- import androidx.compose.foundation.rememberScrollState
8
- import androidx.compose.foundation.verticalScroll
9
- import androidx.compose.material.icons.Icons
10
- import androidx.compose.material.icons.automirrored.filled.ArrowBack
11
- import androidx.compose.material.icons.filled.Edit
12
- import androidx.compose.material3.ExperimentalMaterial3Api
13
- import androidx.compose.material3.Icon
14
- import androidx.compose.material3.IconButton
15
- import androidx.compose.material3.MaterialTheme
16
- import androidx.compose.material3.Scaffold
17
- import androidx.compose.material3.Text
18
- import androidx.compose.material3.TopAppBar
19
- import androidx.compose.material3.TopAppBarDefaults
20
- import androidx.compose.runtime.Composable
21
- import androidx.compose.runtime.DisposableEffect
22
- import androidx.compose.runtime.getValue
23
- import androidx.compose.runtime.mutableStateOf
24
- import androidx.compose.runtime.remember
25
- import androidx.compose.runtime.rememberCoroutineScope
26
- import androidx.compose.runtime.setValue
27
- import androidx.compose.ui.Modifier
28
- import androidx.compose.ui.res.stringResource
29
- import com.arkivanov.mvikotlin.core.store.StoreFactory
30
- import com.arkivanov.mvikotlin.extensions.coroutines.stateFlow
31
- import com.social.app.R
32
- import com.social.app.data.preferences.PreferencesRepository
33
- import com.social.app.data.preferences.ThemeMode
34
- import com.social.app.ui.components.ActionTriggerButton
35
- import com.social.app.ui.components.ActionTriggerVariant
36
- import com.social.app.ui.components.ChipOption
37
- import com.social.app.ui.components.ContractConfirmationDialog
38
- import com.social.app.ui.components.ContractSectionHeader
39
- import com.social.app.ui.components.ContractSelectField
40
- import com.social.app.ui.components.ContractToggleField
41
- import com.social.app.ui.theme.Spacing
42
- import androidx.compose.runtime.collectAsState
43
-
44
- @OptIn(ExperimentalMaterial3Api::class)
45
- @Composable
46
- fun SettingsScreen(
47
- onBackClick: () -> Unit,
48
- onEditProfileClick: () -> Unit,
49
- preferencesRepository: PreferencesRepository,
50
- storeFactory: StoreFactory,
51
- ) {
52
- val storeScope = rememberCoroutineScope()
53
- val store =
54
- remember(preferencesRepository, storeFactory) {
55
- SettingsStoreFactory(
56
- storeFactory = storeFactory,
57
- preferencesRepository = preferencesRepository,
58
- ).create()
59
- }
60
- DisposableEffect(store) {
61
- onDispose(store::dispose)
62
- }
63
- val stateFlow = remember(store, storeScope) { store.stateFlow(storeScope) }
64
- val state by stateFlow.collectAsState()
65
- val preferences = state.preferences
66
- var themeExpanded by remember { mutableStateOf(false) }
67
- var showLogoutDialog by remember { mutableStateOf(false) }
68
-
69
- val themeOptions =
70
- listOf(
71
- ChipOption("system", stringResource(R.string.settings_theme_system)),
72
- ChipOption("light", stringResource(R.string.settings_theme_light)),
73
- ChipOption("dark", stringResource(R.string.settings_theme_dark)),
74
- )
75
-
76
- Scaffold(
77
- topBar = {
78
- TopAppBar(
79
- title = { Text(stringResource(R.string.nav_settings)) },
80
- navigationIcon = {
81
- IconButton(onClick = onBackClick) {
82
- Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null)
83
- }
84
- },
85
- colors = TopAppBarDefaults.topAppBarColors(containerColor = MaterialTheme.colorScheme.surface)
86
- )
87
- }
88
- ) { padding ->
89
- Column(
90
- modifier = Modifier
91
- .fillMaxSize()
92
- .padding(padding)
93
- .padding(horizontal = Spacing.MD)
94
- .verticalScroll(rememberScrollState())
95
- .padding(bottom = Spacing.XL),
96
- verticalArrangement = Arrangement.spacedBy(Spacing.SM),
97
- ) {
98
- ContractSectionHeader(stringResource(R.string.settings_appearance))
99
- ContractSelectField(
100
- label = stringResource(R.string.settings_theme),
101
- selectedLabel = themeOptions.first { it.value == preferences.themeMode.storageValue }.label,
102
- expanded = themeExpanded,
103
- onExpandedChange = { themeExpanded = it },
104
- options = themeOptions,
105
- onOptionSelected = {
106
- store.accept(SettingsStore.Intent.SelectTheme(ThemeMode.fromStorageValue(it.value)))
107
- },
108
- )
109
-
110
- ContractSectionHeader(stringResource(R.string.settings_notifications))
111
- ContractToggleField(
112
- label = stringResource(R.string.settings_push_notifications),
113
- checked = preferences.pushNotifications,
114
- onCheckedChange = {
115
- store.accept(SettingsStore.Intent.SetPushNotifications(it))
116
- },
117
- )
118
- ContractToggleField(
119
- label = stringResource(R.string.settings_message_previews),
120
- checked = preferences.messagePreviews,
121
- onCheckedChange = {
122
- store.accept(SettingsStore.Intent.SetMessagePreviews(it))
123
- },
124
- )
125
-
126
- ContractSectionHeader(stringResource(R.string.settings_language))
127
- ContractToggleField(
128
- label = stringResource(R.string.settings_auto_translate),
129
- checked = preferences.autoTranslate,
130
- onCheckedChange = {
131
- store.accept(SettingsStore.Intent.SetAutoTranslate(it))
132
- },
133
- )
134
-
135
- ContractSectionHeader(stringResource(R.string.settings_account))
136
- Column(verticalArrangement = Arrangement.spacedBy(Spacing.SM)) {
137
- ActionTriggerButton(
138
- text = stringResource(R.string.settings_edit_profile),
139
- onClick = onEditProfileClick,
140
- variant = ActionTriggerVariant.Secondary,
141
- fullWidth = false,
142
- icon = { Icon(Icons.Default.Edit, contentDescription = null) },
143
- )
144
- ActionTriggerButton(
145
- text = stringResource(R.string.settings_logout),
146
- onClick = { showLogoutDialog = true },
147
- variant = ActionTriggerVariant.Destructive,
148
- fullWidth = false,
149
- )
150
- }
151
- }
152
- }
153
-
154
- if (showLogoutDialog) {
155
- ContractConfirmationDialog(
156
- title = stringResource(R.string.settings_logout),
157
- message = stringResource(R.string.settings_logout_confirm),
158
- confirmLabel = stringResource(R.string.settings_logout),
159
- dismissLabel = stringResource(R.string.common_cancel),
160
- onConfirm = { showLogoutDialog = false },
161
- onDismiss = { showLogoutDialog = false },
162
- )
163
- }
164
- }
@@ -1,95 +0,0 @@
1
- package com.social.app.ui.screens
2
-
3
- import com.arkivanov.mvikotlin.core.store.Reducer
4
- import com.arkivanov.mvikotlin.core.store.Store
5
- import com.arkivanov.mvikotlin.core.store.StoreFactory
6
- import com.arkivanov.mvikotlin.core.store.SimpleBootstrapper
7
- import com.arkivanov.mvikotlin.extensions.coroutines.CoroutineExecutor
8
- import com.social.app.data.preferences.AppPreferences
9
- import com.social.app.data.preferences.PreferencesRepository
10
- import com.social.app.data.preferences.ThemeMode
11
- import kotlinx.coroutines.launch
12
-
13
- interface SettingsStore : Store<SettingsStore.Intent, SettingsStore.State, Nothing> {
14
- sealed interface Intent {
15
- data class SelectTheme(val themeMode: ThemeMode) : Intent
16
-
17
- data class SetPushNotifications(val enabled: Boolean) : Intent
18
-
19
- data class SetMessagePreviews(val enabled: Boolean) : Intent
20
-
21
- data class SetAutoTranslate(val enabled: Boolean) : Intent
22
- }
23
-
24
- data class State(
25
- val preferences: AppPreferences = AppPreferences(),
26
- )
27
- }
28
-
29
- class SettingsStoreFactory(
30
- private val storeFactory: StoreFactory,
31
- private val preferencesRepository: PreferencesRepository,
32
- ) {
33
- fun create(): SettingsStore =
34
- object : SettingsStore,
35
- Store<SettingsStore.Intent, SettingsStore.State, Nothing> by storeFactory.create(
36
- name = "SettingsStore",
37
- initialState = SettingsStore.State(),
38
- bootstrapper = SimpleBootstrapper(Action.ObservePreferences),
39
- executorFactory = ::ExecutorImpl,
40
- reducer = ReducerImpl,
41
- ) {}
42
-
43
- private sealed interface Action {
44
- data object ObservePreferences : Action
45
- }
46
-
47
- private sealed interface Message {
48
- data class PreferencesLoaded(val preferences: AppPreferences) : Message
49
- }
50
-
51
- private inner class ExecutorImpl :
52
- CoroutineExecutor<SettingsStore.Intent, Action, SettingsStore.State, Message, Nothing>() {
53
- override fun executeAction(action: Action) {
54
- when (action) {
55
- Action.ObservePreferences ->
56
- scope.launch {
57
- preferencesRepository.preferences.collect { preferences ->
58
- dispatch(Message.PreferencesLoaded(preferences))
59
- }
60
- }
61
- }
62
- }
63
-
64
- override fun executeIntent(intent: SettingsStore.Intent) {
65
- when (intent) {
66
- is SettingsStore.Intent.SelectTheme ->
67
- scope.launch {
68
- preferencesRepository.updateThemeMode(intent.themeMode)
69
- }
70
-
71
- is SettingsStore.Intent.SetPushNotifications ->
72
- scope.launch {
73
- preferencesRepository.updatePushNotifications(intent.enabled)
74
- }
75
-
76
- is SettingsStore.Intent.SetMessagePreviews ->
77
- scope.launch {
78
- preferencesRepository.updateMessagePreviews(intent.enabled)
79
- }
80
-
81
- is SettingsStore.Intent.SetAutoTranslate ->
82
- scope.launch {
83
- preferencesRepository.updateAutoTranslate(intent.enabled)
84
- }
85
- }
86
- }
87
- }
88
-
89
- private object ReducerImpl : Reducer<SettingsStore.State, Message> {
90
- override fun SettingsStore.State.reduce(msg: Message): SettingsStore.State =
91
- when (msg) {
92
- is Message.PreferencesLoaded -> copy(preferences = msg.preferences)
93
- }
94
- }
95
- }
@@ -1,123 +0,0 @@
1
- package com.social.app.ui.screens
2
-
3
- import androidx.compose.foundation.layout.Box
4
- import androidx.compose.foundation.layout.fillMaxSize
5
- import androidx.compose.foundation.layout.fillMaxWidth
6
- import androidx.compose.foundation.layout.padding
7
- import androidx.compose.foundation.lazy.LazyColumn
8
- import androidx.compose.foundation.lazy.items
9
- import androidx.compose.material.icons.Icons
10
- import androidx.compose.material.icons.automirrored.filled.ArrowBack
11
- import androidx.compose.material3.ExperimentalMaterial3Api
12
- import androidx.compose.material3.Icon
13
- import androidx.compose.material3.IconButton
14
- import androidx.compose.material3.MaterialTheme
15
- import androidx.compose.material3.Scaffold
16
- import androidx.compose.material3.Text
17
- import androidx.compose.material3.TopAppBar
18
- import androidx.compose.material3.TopAppBarDefaults
19
- import androidx.compose.runtime.Composable
20
- import androidx.compose.runtime.getValue
21
- import androidx.compose.runtime.mutableStateOf
22
- import androidx.compose.runtime.remember
23
- import androidx.compose.runtime.setValue
24
- import androidx.compose.ui.Alignment
25
- import androidx.compose.ui.Modifier
26
- import androidx.compose.ui.res.stringResource
27
- import com.social.app.R
28
- import com.social.app.data.MockData
29
- import com.social.app.ui.components.ActionTriggerVariant
30
- import com.social.app.ui.components.ContractListCard
31
- import com.social.app.ui.components.ContractSectionHeader
32
- import com.social.app.ui.components.PostItem
33
- import com.social.app.ui.components.ProfileHeroCard
34
- import com.social.app.ui.theme.Spacing
35
-
36
- @OptIn(ExperimentalMaterial3Api::class)
37
- @Composable
38
- fun UserProfileScreen(
39
- userId: String,
40
- onBackClick: () -> Unit,
41
- onPostClick: (String) -> Unit
42
- ) {
43
- val user = MockData.users.find { it.id == userId } ?: MockData.users[1]
44
- val userPosts = MockData.posts.filter { it.authorId == user.id }
45
- var isFollowing by remember(user.id) { mutableStateOf(user.isFollowed) }
46
-
47
- Scaffold(
48
- modifier = Modifier.fillMaxSize(),
49
- topBar = {
50
- TopAppBar(
51
- title = { Text(user.displayName) },
52
- navigationIcon = {
53
- IconButton(onClick = onBackClick) {
54
- Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null)
55
- }
56
- },
57
- colors = TopAppBarDefaults.topAppBarColors(containerColor = MaterialTheme.colorScheme.surface)
58
- )
59
- }
60
- ) { padding ->
61
- LazyColumn(
62
- modifier = Modifier
63
- .fillMaxSize()
64
- .padding(padding)
65
- ) {
66
- item {
67
- ProfileHeroCard(
68
- title = user.displayName,
69
- subtitle = "@${user.handle}",
70
- body = user.bio,
71
- avatarUrl = user.avatarUrl,
72
- modifier = Modifier
73
- .fillMaxWidth()
74
- .padding(Spacing.MD),
75
- actionLabel =
76
- if (isFollowing) {
77
- stringResource(R.string.profile_following)
78
- } else {
79
- stringResource(R.string.profile_follow_button)
80
- },
81
- actionVariant = if (isFollowing) ActionTriggerVariant.Secondary else ActionTriggerVariant.Primary,
82
- onActionClick = { isFollowing = !isFollowing },
83
- )
84
- }
85
-
86
- item {
87
- ContractSectionHeader(stringResource(R.string.profile_posts_header))
88
- }
89
-
90
- if (userPosts.isEmpty()) {
91
- item {
92
- Box(
93
- modifier =
94
- Modifier
95
- .fillMaxWidth()
96
- .padding(horizontal = Spacing.MD, vertical = Spacing.SM),
97
- contentAlignment = Alignment.Center,
98
- ) {
99
- ContractListCard(
100
- title = stringResource(R.string.profile_no_posts_user),
101
- )
102
- }
103
- }
104
- } else {
105
- items(userPosts) { post ->
106
- PostItem(
107
- authorName = post.authorName,
108
- authorHandle = post.authorHandle,
109
- authorAvatar = post.authorAvatar,
110
- body = post.body,
111
- likeCount = post.likeCount,
112
- commentCount = post.commentCount,
113
- timestamp = post.timestamp,
114
- mediaUrl = post.mediaUrl,
115
- onLikeClick = {},
116
- onAuthorClick = {},
117
- onCommentClick = { onPostClick(post.id) },
118
- )
119
- }
120
- }
121
- }
122
- }
123
- }
@@ -1,33 +0,0 @@
1
- package com.social.app.ui.theme
2
-
3
- import androidx.compose.ui.graphics.Color
4
-
5
- val BrandPrimary = Color(0xFF1C1B1A)
6
- val OnBrandPrimary = Color(0xFFFFFFFF)
7
- val BrandAccent = Color(0xFF5B52A3)
8
- val OnBrandAccent = Color(0xFFFFFFFF)
9
-
10
- val SurfacePrimary = Color(0xFFFAF8F5)
11
- val SurfaceSecondary = Color(0xFFF3F0EB)
12
- val SurfaceTertiary = Color(0xFFEBE7E0)
13
-
14
- val TextPrimary = Color(0xFF1C1B1A)
15
- val TextSecondary = Color(0xFF6B6966)
16
- val TextTertiary = Color(0xFF9E9A95)
17
-
18
- val SemanticSuccess = Color(0xFF2D9D5E)
19
- val SemanticWarning = Color(0xFFD4920E)
20
- val SemanticDanger = Color(0xFFD43B3B)
21
- val SemanticInfo = Color(0xFF3B82D4)
22
-
23
- val BorderDefault = Color(0xFFE0DCD6)
24
- val BorderStrong = Color(0xFFC5C0B8)
25
-
26
- val DarkSurfacePrimary = Color(0xFF1A1A1A)
27
- val DarkSurfaceSecondary = Color(0xFF262626)
28
- val DarkSurfaceTertiary = Color(0xFF363636)
29
- val DarkTextPrimary = Color(0xFFFAFAFA)
30
- val DarkTextSecondary = Color(0xFFA6A6A6)
31
- val DarkTextTertiary = Color(0xFF6B6B6B)
32
- val DarkBorderDefault = Color(0xFF4A4A4A)
33
- val DarkBorderStrong = Color(0xFF666666)
@@ -1,41 +0,0 @@
1
- package com.social.app.ui.theme
2
-
3
- import androidx.compose.foundation.shape.RoundedCornerShape
4
- import androidx.compose.ui.unit.dp
5
-
6
- object Shapes {
7
- val RoundedCapPrimary = RoundedCornerShape(
8
- topStart = 2.dp,
9
- topEnd = 24.dp,
10
- bottomEnd = 2.dp,
11
- bottomStart = 24.dp
12
- )
13
-
14
- val RoundedCapSecondary = RoundedCornerShape(
15
- topStart = 24.dp,
16
- topEnd = 2.dp,
17
- bottomEnd = 24.dp,
18
- bottomStart = 2.dp
19
- )
20
-
21
- val CardShape = RoundedCornerShape(
22
- topStart = 3.dp,
23
- topEnd = 20.dp,
24
- bottomEnd = 3.dp,
25
- bottomStart = 20.dp
26
- )
27
-
28
- val HeroShape = RoundedCornerShape(
29
- topStart = 3.dp,
30
- topEnd = 24.dp,
31
- bottomEnd = 3.dp,
32
- bottomStart = 24.dp
33
- )
34
-
35
- val SheetShape = RoundedCornerShape(
36
- topStart = 24.dp,
37
- topEnd = 24.dp,
38
- bottomStart = 0.dp,
39
- bottomEnd = 0.dp
40
- )
41
- }
@@ -1,20 +0,0 @@
1
- package com.social.app.ui.theme
2
-
3
- import androidx.compose.ui.unit.dp
4
-
5
- object Spacing {
6
- val None = 0.dp
7
- val XXS = 2.dp
8
- val XS = 4.dp
9
- val SM = 8.dp
10
- val MD = 16.dp
11
- val LG = 24.dp
12
- val XL = 32.dp
13
- val XXL = 48.dp
14
-
15
- val PageMarginHorizontal = MD
16
- val PageMarginVertical = MD
17
- val CardPadding = MD
18
- val SectionGap = LG
19
- val ListItemGap = SM
20
- }
@@ -1,82 +0,0 @@
1
- package com.social.app.ui.theme
2
-
3
- import android.app.Activity
4
- import android.os.Build
5
- import androidx.compose.foundation.isSystemInDarkTheme
6
- import androidx.compose.material3.MaterialTheme
7
- import androidx.compose.material3.darkColorScheme
8
- import androidx.compose.material3.dynamicDarkColorScheme
9
- import androidx.compose.material3.dynamicLightColorScheme
10
- import androidx.compose.material3.lightColorScheme
11
- import androidx.compose.runtime.Composable
12
- import androidx.compose.runtime.SideEffect
13
- import androidx.compose.ui.graphics.toArgb
14
- import androidx.compose.ui.platform.LocalContext
15
- import androidx.compose.ui.platform.LocalView
16
- import androidx.core.view.WindowCompat
17
- import com.social.app.data.preferences.ThemeMode
18
-
19
- private val DarkColorScheme = darkColorScheme(
20
- primary = BrandPrimary,
21
- onPrimary = OnBrandPrimary,
22
- secondary = BrandAccent,
23
- onSecondary = OnBrandAccent,
24
- background = DarkSurfacePrimary,
25
- surface = DarkSurfacePrimary,
26
- onSurface = DarkTextPrimary,
27
- onBackground = DarkTextPrimary,
28
- surfaceVariant = DarkSurfaceSecondary,
29
- onSurfaceVariant = DarkTextSecondary,
30
- outline = DarkBorderDefault,
31
- )
32
-
33
- private val LightColorScheme = lightColorScheme(
34
- primary = BrandPrimary,
35
- onPrimary = OnBrandPrimary,
36
- secondary = BrandAccent,
37
- onSecondary = OnBrandAccent,
38
- background = SurfacePrimary,
39
- surface = SurfacePrimary,
40
- onSurface = TextPrimary,
41
- onBackground = TextPrimary,
42
- surfaceVariant = SurfaceSecondary,
43
- onSurfaceVariant = TextSecondary,
44
- outline = BorderDefault,
45
- )
46
-
47
- @Composable
48
- fun SocialAppTheme(
49
- themeMode: ThemeMode = ThemeMode.System,
50
- // Dynamic color is available on Android 12+
51
- dynamicColor: Boolean = false,
52
- content: @Composable () -> Unit
53
- ) {
54
- val systemDarkTheme = isSystemInDarkTheme()
55
- val darkTheme =
56
- when (themeMode) {
57
- ThemeMode.System -> systemDarkTheme
58
- ThemeMode.Light -> false
59
- ThemeMode.Dark -> true
60
- }
61
- val colorScheme = when {
62
- dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
63
- val context = LocalContext.current
64
- if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
65
- }
66
- darkTheme -> DarkColorScheme
67
- else -> LightColorScheme
68
- }
69
- val view = LocalView.current
70
- if (!view.isInEditMode) {
71
- SideEffect {
72
- val window = (view.context as Activity).window
73
- WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
74
- }
75
- }
76
-
77
- MaterialTheme(
78
- colorScheme = colorScheme,
79
- typography = Typography,
80
- content = content
81
- )
82
- }
@@ -1,60 +0,0 @@
1
- package com.social.app.ui.theme
2
-
3
- import androidx.compose.material3.Typography
4
- import androidx.compose.ui.text.TextStyle
5
- import androidx.compose.ui.text.font.FontFamily
6
- import androidx.compose.ui.text.font.FontWeight
7
- import androidx.compose.ui.unit.sp
8
-
9
- private val AppFontFamily = FontFamily.SansSerif
10
-
11
- val Typography = Typography(
12
- displayLarge = TextStyle(
13
- fontFamily = AppFontFamily,
14
- fontWeight = FontWeight.Bold,
15
- fontSize = 32.sp,
16
- lineHeight = 38.4.sp
17
- ),
18
- headlineLarge = TextStyle(
19
- fontFamily = AppFontFamily,
20
- fontWeight = FontWeight.SemiBold,
21
- fontSize = 24.sp,
22
- lineHeight = 31.2.sp
23
- ),
24
- headlineMedium = TextStyle(
25
- fontFamily = AppFontFamily,
26
- fontWeight = FontWeight.SemiBold,
27
- fontSize = 20.sp,
28
- lineHeight = 26.sp
29
- ),
30
- headlineSmall = TextStyle(
31
- fontFamily = AppFontFamily,
32
- fontWeight = FontWeight.SemiBold,
33
- fontSize = 16.sp,
34
- lineHeight = 22.4.sp
35
- ),
36
- bodyLarge = TextStyle(
37
- fontFamily = AppFontFamily,
38
- fontWeight = FontWeight.Normal,
39
- fontSize = 16.sp,
40
- lineHeight = 24.sp
41
- ),
42
- bodyMedium = TextStyle(
43
- fontFamily = AppFontFamily,
44
- fontWeight = FontWeight.Normal,
45
- fontSize = 14.sp,
46
- lineHeight = 21.sp
47
- ),
48
- labelSmall = TextStyle(
49
- fontFamily = AppFontFamily,
50
- fontWeight = FontWeight.Normal,
51
- fontSize = 12.sp,
52
- lineHeight = 16.8.sp
53
- ),
54
- labelLarge = TextStyle(
55
- fontFamily = AppFontFamily,
56
- fontWeight = FontWeight.SemiBold,
57
- fontSize = 16.sp,
58
- lineHeight = 16.sp
59
- )
60
- )
@@ -1,9 +0,0 @@
1
- <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
- android:width="108dp"
3
- android:height="108dp"
4
- android:viewportWidth="108"
5
- android:viewportHeight="108">
6
- <path
7
- android:fillColor="#FFFFFF"
8
- android:pathData="M31,31h46v46h-46z" />
9
- </vector>
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
- <background android:drawable="@color/brand_primary"/>
4
- <foreground android:drawable="@drawable/ic_launcher_foreground"/>
5
- </adaptive-icon>
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
- <background android:drawable="@color/brand_primary"/>
4
- <foreground android:drawable="@drawable/ic_launcher_foreground"/>
5
- </adaptive-icon>