ignite-parse-auth-kit 1.0.0

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 (241) hide show
  1. package/CONTRIBUTING.md +0 -0
  2. package/LICENSE +21 -0
  3. package/README.md +492 -0
  4. package/app/app.tsx +116 -0
  5. package/app/components/AlertTongle.tsx +105 -0
  6. package/app/components/AutoImage.tsx +89 -0
  7. package/app/components/Button.tsx +248 -0
  8. package/app/components/Card.tsx +314 -0
  9. package/app/components/EmptyState.tsx +248 -0
  10. package/app/components/Header.tsx +332 -0
  11. package/app/components/Icon.tsx +140 -0
  12. package/app/components/ListItem.tsx +243 -0
  13. package/app/components/ListView.tsx +42 -0
  14. package/app/components/Screen.tsx +305 -0
  15. package/app/components/Text.test.tsx +23 -0
  16. package/app/components/Text.tsx +116 -0
  17. package/app/components/TextField.tsx +292 -0
  18. package/app/components/Toggle/Checkbox.tsx +123 -0
  19. package/app/components/Toggle/Radio.tsx +106 -0
  20. package/app/components/Toggle/Switch.tsx +264 -0
  21. package/app/components/Toggle/Toggle.tsx +285 -0
  22. package/app/components/index copy.ts +15 -0
  23. package/app/components/index.ts +18 -0
  24. package/app/config/config.base.ts +26 -0
  25. package/app/config/config.dev.ts +10 -0
  26. package/app/config/config.prod.ts +10 -0
  27. package/app/config/index.ts +28 -0
  28. package/app/context/AuthContext.tsx +14 -0
  29. package/app/context/EpisodeContext.tsx +136 -0
  30. package/app/context/auth/AuthProvider.tsx +340 -0
  31. package/app/context/auth/hooks.ts +29 -0
  32. package/app/context/auth/index.ts +38 -0
  33. package/app/context/auth/reducer.ts +68 -0
  34. package/app/context/auth/services.ts +394 -0
  35. package/app/context/auth/types.ts +99 -0
  36. package/app/context/auth/validation.ts +45 -0
  37. package/app/devtools/ReactotronClient.ts +9 -0
  38. package/app/devtools/ReactotronClient.web.ts +12 -0
  39. package/app/devtools/ReactotronConfig.ts +139 -0
  40. package/app/i18n/ar.ts +126 -0
  41. package/app/i18n/demo-ar.ts +464 -0
  42. package/app/i18n/demo-en.ts +462 -0
  43. package/app/i18n/demo-es.ts +469 -0
  44. package/app/i18n/demo-fr.ts +471 -0
  45. package/app/i18n/demo-hi.ts +468 -0
  46. package/app/i18n/demo-ja.ts +464 -0
  47. package/app/i18n/demo-ko.ts +457 -0
  48. package/app/i18n/en.ts +146 -0
  49. package/app/i18n/es.ts +132 -0
  50. package/app/i18n/fr.ts +132 -0
  51. package/app/i18n/hi.ts +131 -0
  52. package/app/i18n/index.ts +86 -0
  53. package/app/i18n/ja.ts +130 -0
  54. package/app/i18n/ko.ts +129 -0
  55. package/app/i18n/translate.ts +33 -0
  56. package/app/lib/Parse/index.ts +2 -0
  57. package/app/lib/Parse/parse.ts +62 -0
  58. package/app/navigators/AppNavigator.tsx +145 -0
  59. package/app/navigators/DemoNavigator.tsx +137 -0
  60. package/app/navigators/navigationUtilities.ts +208 -0
  61. package/app/screens/ChooseAuthScreen.tsx +224 -0
  62. package/app/screens/DemoCommunityScreen.tsx +141 -0
  63. package/app/screens/DemoDebugScreen.tsx +192 -0
  64. package/app/screens/DemoPodcastListScreen.tsx +387 -0
  65. package/app/screens/DemoShowroomScreen/DemoDivider.tsx +66 -0
  66. package/app/screens/DemoShowroomScreen/DemoShowroomScreen.tsx +313 -0
  67. package/app/screens/DemoShowroomScreen/DemoUseCase.tsx +52 -0
  68. package/app/screens/DemoShowroomScreen/DrawerIconButton.tsx +120 -0
  69. package/app/screens/DemoShowroomScreen/SectionListWithKeyboardAwareScrollView.tsx +59 -0
  70. package/app/screens/DemoShowroomScreen/demos/DemoAutoImage.tsx +230 -0
  71. package/app/screens/DemoShowroomScreen/demos/DemoButton.tsx +234 -0
  72. package/app/screens/DemoShowroomScreen/demos/DemoCard.tsx +181 -0
  73. package/app/screens/DemoShowroomScreen/demos/DemoEmptyState.tsx +78 -0
  74. package/app/screens/DemoShowroomScreen/demos/DemoHeader.tsx +151 -0
  75. package/app/screens/DemoShowroomScreen/demos/DemoIcon.tsx +115 -0
  76. package/app/screens/DemoShowroomScreen/demos/DemoListItem.tsx +218 -0
  77. package/app/screens/DemoShowroomScreen/demos/DemoText.tsx +144 -0
  78. package/app/screens/DemoShowroomScreen/demos/DemoTextField.tsx +233 -0
  79. package/app/screens/DemoShowroomScreen/demos/DemoToggle.tsx +354 -0
  80. package/app/screens/DemoShowroomScreen/demos/index.ts +12 -0
  81. package/app/screens/ErrorScreen/ErrorBoundary.tsx +76 -0
  82. package/app/screens/ErrorScreen/ErrorDetails.tsx +98 -0
  83. package/app/screens/ForgetPasswordScreen.tsx +180 -0
  84. package/app/screens/LoginScreen.tsx +260 -0
  85. package/app/screens/RegisterScreen.tsx +395 -0
  86. package/app/screens/WelcomeScreen.tsx +114 -0
  87. package/app/services/api/apiProblem.test.ts +73 -0
  88. package/app/services/api/apiProblem.ts +74 -0
  89. package/app/services/api/index.ts +91 -0
  90. package/app/services/api/types.ts +50 -0
  91. package/app/theme/colors.ts +85 -0
  92. package/app/theme/colorsDark.ts +50 -0
  93. package/app/theme/context.tsx +145 -0
  94. package/app/theme/context.utils.ts +25 -0
  95. package/app/theme/spacing.ts +14 -0
  96. package/app/theme/spacingDark.ts +14 -0
  97. package/app/theme/styles.ts +24 -0
  98. package/app/theme/theme.ts +23 -0
  99. package/app/theme/timing.ts +6 -0
  100. package/app/theme/types.ts +64 -0
  101. package/app/theme/typography.ts +71 -0
  102. package/app/utils/crashReporting.ts +62 -0
  103. package/app/utils/delay.ts +6 -0
  104. package/app/utils/formatDate.ts +49 -0
  105. package/app/utils/gestureHandler.native.ts +3 -0
  106. package/app/utils/gestureHandler.ts +6 -0
  107. package/app/utils/hasValidStringProp.ts +11 -0
  108. package/app/utils/openLinkInBrowser.ts +8 -0
  109. package/app/utils/storage/index.ts +82 -0
  110. package/app/utils/storage/storage.test.ts +61 -0
  111. package/app/utils/useHeader.tsx +37 -0
  112. package/app/utils/useIsMounted.ts +18 -0
  113. package/app/utils/useSafeAreaInsetsStyle.ts +46 -0
  114. package/app.config.ts +39 -0
  115. package/app.json +67 -0
  116. package/assets/icons/back.png +0 -0
  117. package/assets/icons/back@2x.png +0 -0
  118. package/assets/icons/back@3x.png +0 -0
  119. package/assets/icons/bell.png +0 -0
  120. package/assets/icons/bell@2x.png +0 -0
  121. package/assets/icons/bell@3x.png +0 -0
  122. package/assets/icons/caretLeft.png +0 -0
  123. package/assets/icons/caretLeft@2x.png +0 -0
  124. package/assets/icons/caretLeft@3x.png +0 -0
  125. package/assets/icons/caretRight.png +0 -0
  126. package/assets/icons/caretRight@2x.png +0 -0
  127. package/assets/icons/caretRight@3x.png +0 -0
  128. package/assets/icons/check.png +0 -0
  129. package/assets/icons/check@2x.png +0 -0
  130. package/assets/icons/check@3x.png +0 -0
  131. package/assets/icons/demo/clap.png +0 -0
  132. package/assets/icons/demo/clap@2x.png +0 -0
  133. package/assets/icons/demo/clap@3x.png +0 -0
  134. package/assets/icons/demo/community.png +0 -0
  135. package/assets/icons/demo/community@2x.png +0 -0
  136. package/assets/icons/demo/community@3x.png +0 -0
  137. package/assets/icons/demo/components.png +0 -0
  138. package/assets/icons/demo/components@2x.png +0 -0
  139. package/assets/icons/demo/components@3x.png +0 -0
  140. package/assets/icons/demo/debug.png +0 -0
  141. package/assets/icons/demo/debug@2x.png +0 -0
  142. package/assets/icons/demo/debug@3x.png +0 -0
  143. package/assets/icons/demo/github.png +0 -0
  144. package/assets/icons/demo/github@2x.png +0 -0
  145. package/assets/icons/demo/github@3x.png +0 -0
  146. package/assets/icons/demo/heart.png +0 -0
  147. package/assets/icons/demo/heart@2x.png +0 -0
  148. package/assets/icons/demo/heart@3x.png +0 -0
  149. package/assets/icons/demo/pin.png +0 -0
  150. package/assets/icons/demo/pin@2x.png +0 -0
  151. package/assets/icons/demo/pin@3x.png +0 -0
  152. package/assets/icons/demo/podcast.png +0 -0
  153. package/assets/icons/demo/podcast@2x.png +0 -0
  154. package/assets/icons/demo/podcast@3x.png +0 -0
  155. package/assets/icons/demo/slack.png +0 -0
  156. package/assets/icons/demo/slack@2x.png +0 -0
  157. package/assets/icons/demo/slack@3x.png +0 -0
  158. package/assets/icons/google.png +0 -0
  159. package/assets/icons/hidden.png +0 -0
  160. package/assets/icons/hidden@2x.png +0 -0
  161. package/assets/icons/hidden@3x.png +0 -0
  162. package/assets/icons/ladybug.png +0 -0
  163. package/assets/icons/ladybug@2x.png +0 -0
  164. package/assets/icons/ladybug@3x.png +0 -0
  165. package/assets/icons/lock.png +0 -0
  166. package/assets/icons/lock@2x.png +0 -0
  167. package/assets/icons/lock@3x.png +0 -0
  168. package/assets/icons/menu.png +0 -0
  169. package/assets/icons/menu@2x.png +0 -0
  170. package/assets/icons/menu@3x.png +0 -0
  171. package/assets/icons/more.png +0 -0
  172. package/assets/icons/more@2x.png +0 -0
  173. package/assets/icons/more@3x.png +0 -0
  174. package/assets/icons/settings.png +0 -0
  175. package/assets/icons/settings@2x.png +0 -0
  176. package/assets/icons/settings@3x.png +0 -0
  177. package/assets/icons/view.png +0 -0
  178. package/assets/icons/view@2x.png +0 -0
  179. package/assets/icons/view@3x.png +0 -0
  180. package/assets/icons/x.png +0 -0
  181. package/assets/icons/x@2x.png +0 -0
  182. package/assets/icons/x@3x.png +0 -0
  183. package/assets/images/app-icon-all.png +0 -0
  184. package/assets/images/app-icon-android-adaptive-background.png +0 -0
  185. package/assets/images/app-icon-android-adaptive-foreground.png +0 -0
  186. package/assets/images/app-icon-android-legacy.png +0 -0
  187. package/assets/images/app-icon-ios.png +0 -0
  188. package/assets/images/app-icon-web-favicon.png +0 -0
  189. package/assets/images/demo/cr-logo.png +0 -0
  190. package/assets/images/demo/cr-logo@2x.png +0 -0
  191. package/assets/images/demo/cr-logo@3x.png +0 -0
  192. package/assets/images/demo/rnl-logo.png +0 -0
  193. package/assets/images/demo/rnl-logo@2x.png +0 -0
  194. package/assets/images/demo/rnl-logo@3x.png +0 -0
  195. package/assets/images/demo/rnn-logo.png +0 -0
  196. package/assets/images/demo/rnn-logo@2x.png +0 -0
  197. package/assets/images/demo/rnn-logo@3x.png +0 -0
  198. package/assets/images/demo/rnr-image-1.png +0 -0
  199. package/assets/images/demo/rnr-image-1@2x.png +0 -0
  200. package/assets/images/demo/rnr-image-1@3x.png +0 -0
  201. package/assets/images/demo/rnr-image-2.png +0 -0
  202. package/assets/images/demo/rnr-image-2@2x.png +0 -0
  203. package/assets/images/demo/rnr-image-2@3x.png +0 -0
  204. package/assets/images/demo/rnr-image-3.png +0 -0
  205. package/assets/images/demo/rnr-image-3@2x.png +0 -0
  206. package/assets/images/demo/rnr-image-3@3x.png +0 -0
  207. package/assets/images/demo/rnr-logo.png +0 -0
  208. package/assets/images/demo/rnr-logo@2x.png +0 -0
  209. package/assets/images/demo/rnr-logo@3x.png +0 -0
  210. package/assets/images/logo.png +0 -0
  211. package/assets/images/logo@2x.png +0 -0
  212. package/assets/images/logo@3x.png +0 -0
  213. package/assets/images/sad-face.png +0 -0
  214. package/assets/images/sad-face@2x.png +0 -0
  215. package/assets/images/sad-face@3x.png +0 -0
  216. package/assets/images/welcome-face.png +0 -0
  217. package/assets/images/welcome-face@2x.png +0 -0
  218. package/assets/images/welcome-face@3x.png +0 -0
  219. package/babel.config.js +7 -0
  220. package/bin/cli.js +196 -0
  221. package/ignite/templates/app-icon/android-adaptive-background.png +0 -0
  222. package/ignite/templates/app-icon/android-adaptive-foreground.png +0 -0
  223. package/ignite/templates/app-icon/android-legacy.png +0 -0
  224. package/ignite/templates/app-icon/ios-universal.png +0 -0
  225. package/ignite/templates/component/NAME.tsx.ejs +39 -0
  226. package/ignite/templates/navigator/NAMENavigator.tsx.ejs +18 -0
  227. package/ignite/templates/screen/NAMEScreen.tsx.ejs +29 -0
  228. package/ignite/templates/splash-screen/logo.png +0 -0
  229. package/index.tsx +9 -0
  230. package/jest.config.js +5 -0
  231. package/metro.config.js +31 -0
  232. package/package.json +166 -0
  233. package/plugins/withSplashScreen.ts +69 -0
  234. package/src/app/_layout.tsx +58 -0
  235. package/src/app/index.tsx +5 -0
  236. package/test/i18n.test.ts +75 -0
  237. package/test/mockFile.ts +6 -0
  238. package/test/setup.ts +58 -0
  239. package/test/test-tsconfig.json +8 -0
  240. package/tsconfig.json +52 -0
  241. package/types/lib.es5.d.ts +25 -0
package/app/i18n/ar.ts ADDED
@@ -0,0 +1,126 @@
1
+ import demoAr from "./demo-ar" // @demo remove-current-line
2
+ import { Translations } from "./en"
3
+
4
+ const ar: Translations = {
5
+ common: {
6
+ ok: "نعم",
7
+ cancel: "حذف",
8
+ back: "خلف",
9
+ logOut: "تسجيل خروج", // @demo remove-current-line
10
+ },
11
+ welcomeScreen: {
12
+ postscript:
13
+ "ربما لا يكون هذا هو الشكل الذي يبدو عليه تطبيقك مالم يمنحك المصمم هذه الشاشات وشحنها في هذه الحالة",
14
+ readyForLaunch: "تطبيقك تقريبا جاهز للتشغيل",
15
+ exciting: "اوه هذا مثير",
16
+ letsGo: "لنذهب", // @demo remove-current-line
17
+ },
18
+ errorScreen: {
19
+ title: "هناك خطأ ما",
20
+ friendlySubtitle:
21
+ "هذه هي الشاشة التي سيشاهدها المستخدمون في عملية الانتاج عند حدوث خطأ. سترغب في تخصيص هذه الرسالة ( الموجودة في 'ts.en/i18n/app') وربما التخطيط ايضاً ('app/screens/ErrorScreen'). إذا كنت تريد إزالة هذا بالكامل، تحقق من 'app/app.tsp' من اجل عنصر <ErrorBoundary>.",
22
+ reset: "اعادة تعيين التطبيق",
23
+ traceTitle: "خطأ من مجموعة %{name}", // @demo remove-current-line
24
+ },
25
+ emptyStateComponent: {
26
+ generic: {
27
+ heading: "فارغة جداً....حزين",
28
+ content: "لا توجد بيانات حتى الآن. حاول النقر فوق الزر لتحديث التطبيق او اعادة تحميله.",
29
+ button: "لنحاول هذا مرّة أخرى",
30
+ },
31
+ },
32
+ // @demo remove-block-start
33
+ errors: {
34
+ invalidEmail: "عنوان البريد الالكتروني غير صالح",
35
+ },
36
+ loginScreen: {
37
+ logIn: "تسجيل الدخول",
38
+ enterDetails:
39
+ ".ادخل التفاصيل الخاصة بك ادناه لفتح معلومات سرية للغاية. لن تخمن ابداً ما الذي ننتظره. او ربما ستفعل انها انها ليست علم الصواريخ",
40
+ emailFieldLabel: "البريد الالكتروني",
41
+ passwordFieldLabel: "كلمة السر",
42
+ emailFieldPlaceholder: "ادخل بريدك الالكتروني",
43
+ passwordFieldPlaceholder: "كلمة السر هنا فائقة السر",
44
+ tapToLogIn: "انقر لتسجيل الدخول!",
45
+ hint: "(: تلميح: يمكنك استخدام اي عنوان بريد الكتروني وكلمة السر المفضلة لديك",
46
+ },
47
+ demoNavigator: {
48
+ componentsTab: "عناصر",
49
+ debugTab: "تصحيح",
50
+ communityTab: "واصل اجتماعي",
51
+ podcastListTab: "البودكاست",
52
+ },
53
+ demoCommunityScreen: {
54
+ title: "تواصل مع المجتمع",
55
+ tagLine:
56
+ "قم بالتوصيل لمنتدى Infinite Red الذي يضم تفاعل المهندسين المحلّيين ورفع مستوى تطوير تطبيقك معنا",
57
+ joinUsOnSlackTitle: "انضم الينا على Slack",
58
+ joinUsOnSlack:
59
+ "هل ترغب في وجود مكان للتواصل مع مهندسي React Native حول العالم؟ الانضمام الى المحادثة في سلاك المجتمع الاحمر اللانهائي! مجتمعناالمتنامي هو مساحةآمنة لطرح الاسئلة والتعلم من الآخرين وتنمية شبكتك.",
60
+ joinSlackLink: "انضم الي مجتمع Slack",
61
+ makeIgniteEvenBetterTitle: "اجعل Ignite افضل",
62
+ makeIgniteEvenBetter:
63
+ "هل لديك فكرة لجعل Ignite افضل؟ نحن سعداء لسماع ذلك! نحن نبحث دائماً عن الآخرين الذين يرغبون في مساعدتنا في بناء افضل الادوات المحلية التفاعلية المتوفرة هناك. انضم الينا عبر GitHub للانضمام الينا في بناء مستقبل Ignite",
64
+ contributeToIgniteLink: "ساهم في Ignite",
65
+ theLatestInReactNativeTitle: "الاحدث في React Native",
66
+ theLatestInReactNative: "نخن هنا لنبقيك محدثاً على جميع React Native التي تعرضها",
67
+ reactNativeRadioLink: "راديو React Native",
68
+ reactNativeNewsletterLink: "نشرة اخبار React Native",
69
+ reactNativeLiveLink: "مباشر React Native",
70
+ chainReactConferenceLink: "مؤتمر Chain React",
71
+ hireUsTitle: "قم بتوظيف Infinite Red لمشروعك القادم",
72
+ hireUs:
73
+ "سواء كان الامر يتعلّق بتشغيل مشروع كامل او اعداد الفرق بسرعة من خلال التدريب العلمي لدينا، يمكن ان يساعد Infinite Red اللامتناهي في اي مشروع محلي يتفاعل معه.",
74
+ hireUsLink: "ارسل لنا رسالة",
75
+ },
76
+ demoShowroomScreen: {
77
+ jumpStart: "مكونات او عناصر لبدء مشروعك",
78
+ lorem2Sentences:
79
+ "عامل الناس بأخلاقك لا بأخلاقهم. عامل الناس بأخلاقك لا بأخلاقهم. عامل الناس بأخلاقك لا بأخلاقهم",
80
+ demoHeaderTxExample: "ياي",
81
+ demoViaTxProp: "عبر `tx` Prop",
82
+ demoViaSpecifiedTxProp: "Prop `{{prop}}Tx` عبر",
83
+ },
84
+ demoDebugScreen: {
85
+ howTo: "كيف",
86
+ title: "التصحيح",
87
+ tagLine: "مبروك، لديك نموذج اصلي متقدم للغاية للتفاعل هنا. الاستفادة من هذه النمذجة",
88
+ reactotron: "Reactotron ارسل إلى",
89
+ reportBugs: "الابلاغ عن اخطاء",
90
+ demoList: "قائمة تجريبية",
91
+ demoPodcastList: "قائمة البودكاست التجريبي",
92
+ androidReactotronHint:
93
+ "اذا لم ينجح ذللك، فتأكد من تشغيل تطبيق الحاسوب الخاص Reactotron، وقم بتشغيل عكس adb tcp:9090 \ntcp:9090 من جهازك الطرفي ، واعد تحميل التطبيق",
94
+ iosReactotronHint:
95
+ "اذا لم ينجح ذلك، فتأكد من تشغيل تطبيق الحاسوب الخاص ب Reactotron وأعد تحميل التطبيق",
96
+ macosReactotronHint: "اذا لم ينجح ذلك، فتأكد من تشغيل الحاسوب ب Reactotron وأعد تحميل التطبيق",
97
+ webReactotronHint: "اذا لم ينجح ذلك، فتأكد من تشغيل الحاسوب ب Reactotron وأعد تحميل التطبيق",
98
+ windowsReactotronHint:
99
+ "اذا لم ينجح ذلك، فتأكد من تشغيل الحاسوب ب Reactotron وأعد تحميل التطبيق",
100
+ },
101
+ demoPodcastListScreen: {
102
+ title: "حلقات إذاعية React Native",
103
+ onlyFavorites: "المفضلة فقط",
104
+ favoriteButton: "المفضل",
105
+ unfavoriteButton: "غير مفضل",
106
+ accessibility: {
107
+ cardHint: "انقر مرّتين للاستماع على الحلقة. انقر مرّتين وانتظر لتفعيل {{action}} هذه الحلقة.",
108
+ switch: "قم بالتبديل لاظهار المفضّلة فقط.",
109
+ favoriteAction: "تبديل المفضلة",
110
+ favoriteIcon: "الحلقة الغير مفضّلة",
111
+ unfavoriteIcon: "الحلقة المفضّلة",
112
+ publishLabel: "نشرت {{date}}",
113
+ durationLabel: "المدّة: {{hours}} ساعات {{minutes}} دقائق {{seconds}} ثواني",
114
+ },
115
+ noFavoritesEmptyState: {
116
+ heading: "هذا يبدو فارغاً بعض الشيء.",
117
+ content:
118
+ "لم تتم اضافة اي مفضلات حتى الان. اضغط على القلب في إحدى الحلقات لإضافته الى المفضلة.",
119
+ },
120
+ },
121
+ // @demo remove-block-start
122
+ ...demoAr,
123
+ // @demo remove-block-end
124
+ }
125
+
126
+ export default ar
@@ -0,0 +1,464 @@
1
+ import { DemoTranslations } from "./demo-en"
2
+
3
+ export const demoAr: DemoTranslations = {
4
+ demoIcon: {
5
+ description:
6
+ "مكون لعرض أيقونة مسجلة.يتم تغليفه في <TouchableOpacity> يتم توفير 'OnPress'، وإلا يتم توفير <View",
7
+ useCase: {
8
+ icons: {
9
+ name: "Icons",
10
+ description: "قائمة الرموز المسجلة داخل المكون.",
11
+ },
12
+ size: {
13
+ name: "Size",
14
+ description: "هناك حجم الدعامة.",
15
+ },
16
+ color: {
17
+ name: "لون",
18
+ description: "هناك لون الدعامة.",
19
+ },
20
+ styling: {
21
+ name: "التصميم",
22
+ description: "يمكن تصميم المكون بسهولة.",
23
+ },
24
+ },
25
+ },
26
+ demoTextField: {
27
+ description: "TextField يسمح المكون بإدخال النص وتحريره.",
28
+ useCase: {
29
+ statuses: {
30
+ name: "الحالات",
31
+ description:
32
+ "هناك حالة مماثلة ل 'preset' في المكونات الأخرى، ولكنها تؤثر على وظيفة المكون ايضاً.",
33
+ noStatus: {
34
+ label: "لا يوجد حالات",
35
+ helper: "هذه هي الحالة الافتراضية",
36
+ placeholder: "النص يذهب هنا",
37
+ },
38
+ error: {
39
+ label: "حالة الخطأ",
40
+ helper: "الحالة التي يجب استخدامها عند وجود خطأ",
41
+ placeholder: "النص يذهب هنا",
42
+ },
43
+ disabled: {
44
+ label: "حالة الإعاقة",
45
+ helper: "يعطل إمكانية التحرير ويكتم النص",
46
+ placeholder: "النص يذهب هنا",
47
+ },
48
+ },
49
+ passingContent: {
50
+ name: "محتوى عابر",
51
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى",
52
+ viaLabel: {
53
+ labelTx: "عبر 'label' الدعامة",
54
+ helper: "عبر 'helper' الدعامة",
55
+ placeholder: "عبر 'placeholder' الدعامة",
56
+ },
57
+ rightAccessory: {
58
+ label: "RightAccessory",
59
+ helper: "هذه الدعامة تأخذ دالة تقوم بإرجاع عنصر React",
60
+ },
61
+ leftAccessory: {
62
+ label: "LeftAccessory",
63
+ helper: "هذه الدعامة تأخذ دالة تقوم بإرجاع عنصر React",
64
+ },
65
+ supportsMultiline: {
66
+ label: "يدعم Multiline",
67
+ helper: "يتيح إدخالا اطول للنص متعدد الأسطر.",
68
+ },
69
+ },
70
+ styling: {
71
+ name: "التصميم",
72
+ description: "يمكن تصميم المكون بسهولة",
73
+ styleInput: {
74
+ label: "أسلوب الإدخال",
75
+ helper: "عبر دعامة 'Style'",
76
+ },
77
+ styleInputWrapper: {
78
+ label: "غلاف ادخال النمط",
79
+ helper: "عبر دعامة 'InputWrapperStyle'",
80
+ },
81
+ styleContainer: {
82
+ label: "حاوية النمط",
83
+ helper: "عبر دعامة 'containerstyle'",
84
+ },
85
+ styleLabel: {
86
+ label: "تسمية النمط والمساعد",
87
+ helper: "عبر أسلوب الدعامة 'LabelTextProps' & 'HelperTextProps'",
88
+ },
89
+ styleAccessories: {
90
+ label: "اكسسورات الاناقة",
91
+ helper: "عبر أسلوب الدعامة 'RightAccessory' & 'LeftAccessory'",
92
+ },
93
+ },
94
+ },
95
+ },
96
+ demoToggle: {
97
+ description:
98
+ "يقوم بعرض ادخال منطقي.هذا مكون خاضع للتحكم ويتطلب استدعاء OnValueChanger الذي يقوم بتحديث خاصية القيمة حتى يعكس المكون إجراءات المستخدم. إذا لم يتم تحديث خاصية القيمة، فسيستمر المكون في عرض خاصية القيمة المقدمة بدلا من النتيجة المتوقعة لأي إجراءات مستخدم.",
99
+ useCase: {
100
+ variants: {
101
+ name: "المتغيرات",
102
+ description:
103
+ "تدعم المكونات عددا قليلا من المتغيرات المختلفة. اذا كانت هناك حاجة إلى تخصيص كبير لمتغير معين، فيمكن إعادة صياغته بسهولة. الافتراضي هو 'checkbox'",
104
+ checkbox: {
105
+ label: "'checkbox' متغير",
106
+ helper: "يمكن استخدامه كمدخل تشغيل \\ إيقاف واحد",
107
+ },
108
+ radio: {
109
+ label: "'radio' متغير",
110
+ helper: "استخدام هذا عندما يكون لديك خيارات متعددة",
111
+ },
112
+ switch: {
113
+ label: "'switch' متغير",
114
+ helper: "مدخل تشغيل/إيقاف أكثر بروزا. يتمتع بدعم إمكانية الوصول بشكل أفضل.",
115
+ },
116
+ },
117
+ statuses: {
118
+ name: "الحالات",
119
+ description:
120
+ "هناك دعامة حالة مشابهة ل 'preset' في المكونات الأخرى، لكنها تؤثر على وظائف المكونات ايضاً",
121
+ noStatus: "لا توجد حالات- هذا هو الوضع الافتراضي",
122
+ errorStatus: "حالة الخطأ - استخدمها عندما يكون هناك خطأ",
123
+ disabledStatus: "حالة معطلة- تعطيل إمكانية التحرير وكتم صوت الإدخال",
124
+ },
125
+ passingContent: {
126
+ name: "محتوى عابر",
127
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى",
128
+ useCase: {
129
+ checkBox: {
130
+ label: "عبر دعامة 'labelTx'",
131
+ helper: "عبر دعامة 'helpertx'",
132
+ },
133
+ checkBoxMultiLine: {
134
+ helper: "يدعم خطوط متعددة-Nulla provident consectetur labore sunt ea labore ",
135
+ },
136
+ radioChangeSides: {
137
+ helper: "يمكنك تغيير الجانبين - Laborum labore adipisicing in eu ipsum deserunt.",
138
+ },
139
+ customCheckBox: {
140
+ label: "مرر أيقونة مربع الاختيار المخصص",
141
+ },
142
+ switch: {
143
+ label: "يمكن قراءة المفاتيح كنص",
144
+ helper:
145
+ "بشكل افتراضي، لا يستخدم هذا الخيار \"text' نظرا لأنه اعتمادا على الخط، قد تبدو الأحرف التي يتم تشغيلها/ايقافها غريبة. قم بالتخصيص حسب الحاجة",
146
+ },
147
+ switchAid: {
148
+ label: "او بمساعدة أيقونة",
149
+ },
150
+ },
151
+ },
152
+ styling: {
153
+ name: "التصميم",
154
+ description: "يمكن تصميم المكون بسهولة",
155
+ outerWrapper: "١- تصميم الغلاف الخارجي للإدخال",
156
+ innerWrapper: "٢- تصميم الغلاف الداخلي للإدخال",
157
+ inputDetail: "٣- تصميم تفاصيل الإدخال",
158
+ labelTx: "يمكنك ايضاً تصميم الملصق labelTx",
159
+ styleContainer: "او، قم بتصميم الحاوية بأكملها",
160
+ },
161
+ },
162
+ },
163
+ demoButton: {
164
+ description:
165
+ "مكون يسمح للمستخدمين بإتخاذ الإجراءات والاختيارات. يلف مكون النص بمكون قابل للضغط",
166
+ useCase: {
167
+ presets: {
168
+ name: "الإعدادات المسبقة",
169
+ description: "هناك عدد قليل من الإعدادات المسبقة التي تم تكوينها مسبقاً",
170
+ },
171
+ passingContent: {
172
+ name: "محتوى عابر",
173
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى",
174
+ viaTextProps: "عبر الدعامة 'text'- Billum In",
175
+ children: "أولاد- Irure Reprehenderit",
176
+ rightAccessory: "RightAccessory - Duis Quis",
177
+ leftAccessory: "LeftAccessory - Duis Proident",
178
+ nestedChildren: "الأطفال المتداخلون-\tprovident genial",
179
+ nestedChildren2: "Ullamco cupidatat officia exercitation velit non ullamco nisi..",
180
+ nestedChildren3: "Occaecat aliqua irure proident veniam.",
181
+ multiLine:
182
+ "Multiline - consequat veniam veniam reprehenderit. Fugiat id nisi quis duis sunt proident mollit dolor mollit adipisicing proident deserunt.",
183
+ },
184
+ styling: {
185
+ name: "التصميم",
186
+ description: "يمكن تصميم المكون بسهولة",
187
+ styleContainer: "حاوية الأسلوب- الإثارة",
188
+ styleText: "نص النمط- ِEa Anim",
189
+ styleAccessories: "اكسسوارات الاناقة - enim ea id fugiat anim ad.",
190
+ pressedState: "نمط الحالة المضغوطة - fugiat anim",
191
+ },
192
+ disabling: {
193
+ name: "تعطيل",
194
+ description: "يمكن تعطيل المكون، وتصميمه بناء على ذلك. سيتم تعطيل سلوك الضغط",
195
+ standard: "إبطال - معيار",
196
+ filled: "إبطال - مملوء",
197
+ reversed: "إبطال- معكوس",
198
+ accessory: "نمط الملحق المعطل",
199
+ textStyle: "نمط النص المعطل",
200
+ },
201
+ },
202
+ },
203
+ demoListItem: {
204
+ description: "مكون صف مصمم يمكن استخدامه في FlatList او SectionList او بمفرده",
205
+ useCase: {
206
+ height: {
207
+ name: "علو",
208
+ description: "يمكن ان يكون الصف بارتفاعات مختلفة",
209
+ defaultHeight: "الارتفاع الافتراضي (56px)",
210
+ customHeight: "ارتفاع مخصص عبر دعامة 'height'",
211
+ textHeight:
212
+ "الارتفاع يتم تحديده من خلال محتوى النص - Reprehenderit incididunt deserunt do do ea labore.",
213
+ longText: "تحديد النص إلى سطر واحد - Reprehenderit incididunt deserunt do do ea labore.",
214
+ },
215
+ separators: {
216
+ name: "الفواصل",
217
+ description: "الفاصل/ المقسم مهيّأ مسبقاً وهو اختياري",
218
+ topSeparator: "فقط فاصل علوي",
219
+ topAndBottomSeparator: "الفواصل العلوية والسفلية",
220
+ bottomSeparator: "فقط فاصل سفلي",
221
+ },
222
+ icons: {
223
+ name: "الأيقونات",
224
+ description: "يمكنك تخصيص الرموز على اليسار أو اليمين",
225
+ leftIcon: "أيقونة اليسار",
226
+ rightIcon: "أيقونة اليمين",
227
+ leftRightIcons: "أيقونة اليمين واليسار",
228
+ },
229
+ customLeftRight: {
230
+ name: "مكونات مخصصة لليسار /اليمين",
231
+ description: "اذا كنت بحاجة إلى مخصص لليسار/اليمين فيمكنك تمريره",
232
+ customLeft: "مكون يسار مخصص",
233
+ customRight: "مكون يمين مخصص",
234
+ },
235
+ passingContent: {
236
+ name: "محتوى عابر",
237
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى",
238
+ text: "عبر دعامة 'text' - reprehenderit sint",
239
+ children: "أولاد- mostrud mollit",
240
+ nestedChildren1: "الأولاد المتداخلون - proident veniam.",
241
+ nestedChildren2: "Ullamco cupidatat officia exercitation velit non ullamco nisi..",
242
+ },
243
+ listIntegration: {
244
+ name: "دمج مع/ FlatList & FlashList",
245
+ description: "يمكن دمج المكون بسهولة مع واجهة القائمة المفضلة لديك",
246
+ },
247
+ styling: {
248
+ name: "التصميم",
249
+ description: "يمكن تصميم المكون بسهولة.",
250
+ styledText: "نص مصمم",
251
+ styledContainer: "حاوية مصممة (فواصل)",
252
+ tintedIcons: "أيقونات ملونة",
253
+ },
254
+ },
255
+ },
256
+ demoCard: {
257
+ description:
258
+ "البطاقات مفيدة لعرض المعلومات ذات الصلة بطريقة محددة. اذا كان ListItem يعرض المحتوى أفقياً، فيمكن استخدام البطاقة لعرض المحتوى رأسياً.",
259
+ useCase: {
260
+ presets: {
261
+ name: "الإعدادات المسبقة",
262
+ description: "هناك عدد قليل من الإعدادات المسبقة التي تم تكوينها مسبقاً",
263
+ default: {
264
+ heading: "الأعداد المسبق الافتراضي ( تقصير)",
265
+ content: "Incididunt magna ut aliquip consectetur mollit dolor.",
266
+ footer: "Consectetur nulla non aliquip velit.",
267
+ },
268
+ reversed: {
269
+ heading: "الأعداد المسبق المعكوس",
270
+ content: "Reprehenderit occaecat proident amet id laboris.",
271
+ footer: "Consectetur tempor ea non labore anim .",
272
+ },
273
+ },
274
+ verticalAlignment: {
275
+ name: "انحياز عمودي",
276
+ description:
277
+ "اعتمادا على ما هو مطلوب، تأتي البطاقة مهيأة مسبقاً باستراتيجيات محاذاة مختلفة",
278
+ top: {
279
+ heading: "قمة (تقصير)",
280
+ content: "يتم محاذاة كل محتوى تلقائياً إلى الأعلى",
281
+ footer: "حتى التذييل",
282
+ },
283
+ center: {
284
+ heading: "مركز",
285
+ content: "يتم تركيز المحتوى بالنسبة لارتفاع البطاقة",
286
+ footer: "أنا ايضاً!",
287
+ },
288
+ spaceBetween: {
289
+ heading: "مسافة بين الكلمات",
290
+ content: "يتم توزيع جميع المحتويات بالتساوي",
291
+ footer: "أنا حيث أريد ان أكون",
292
+ },
293
+ reversed: {
294
+ heading: "Force Footer Bottom",
295
+ content: "يؤدي هذا إلى دفع التذييل إلى المكان الذي ينتمي اليه.",
296
+ footer: "أنا وحد جداًهنا",
297
+ },
298
+ },
299
+ passingContent: {
300
+ name: "محتوى عابر",
301
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى.",
302
+ heading: "عبر دعم 'heading'",
303
+ content: "عبر دعم 'content'",
304
+ footer: "أنا وحيد هنا.",
305
+ },
306
+ customComponent: {
307
+ name: "مكونات مخصصة",
308
+ description:
309
+ "يمكن استبدال اي من المكونات المعدة مسبقاً بمكوناتك الخاصة. يمكنك ايضاً اضافة مكونات إضافية.",
310
+ rightComponent: "RightComponent",
311
+ leftComponent: "LeftComponent",
312
+ },
313
+ style: {
314
+ name: "التصميم",
315
+ description: "يمكن تصميم المكون بسهولة.",
316
+ heading: "صمم العنوان",
317
+ content: "صمم المحتوى",
318
+ footer: "صمم التذييل",
319
+ },
320
+ },
321
+ },
322
+ demoAutoImage: {
323
+ description: "مكون صورة يحدد حجم الصورة البعيدة او صورة data-uri",
324
+ useCase: {
325
+ remoteUri: {
326
+ name: "عن بعد URI",
327
+ },
328
+ base64Uri: {
329
+ name: "Base64 URI",
330
+ },
331
+ scaledToFitDimensions: {
332
+ name: "تم قياسها لتناسب الأبعاد",
333
+ description:
334
+ " توفيرعرض 'maxWidth' و\\او 'maxHeight' ، سيتم عرض الصورة بنسبة عرض الى ارتفاع. كيف يختلف هذا عن 'resizeMode': 'contain'? اولاً،يمكنك تحديد حجم جانب واحد فقط. (ليس كلاهما). ثانياً، سيتم تغيير الصورة لتناسب الأبعاد المطلوبة بدلاً من مجرد احتوائها داخل حاوية الصورة الخاصة بها.",
335
+ heightAuto: " عرض : ٦٠ / طول: auto",
336
+ widthAuto: "عرض: auto / طول: ٣٢",
337
+ bothManual: "عرض :٦٠ / طول : ٦٠",
338
+ },
339
+ },
340
+ },
341
+ demoText: {
342
+ description:
343
+ "لتلبية احتياجاتك في عرض النصوص. هذا المكون عبارة عن HOC فوق المكون المدمج Native React.",
344
+ useCase: {
345
+ presets: {
346
+ name: "الإعدادات المسبقة",
347
+ description: "هناك عدد قليل من الإعدادات المسبقة التي تم تكوينها مسبقاً.",
348
+ default:
349
+ "الأعداد المسبق الافتراضي - Cillum eu laboris in labore. Excepteur mollit tempor reprehenderit fugiat elit et eu consequat laborum.",
350
+ bold: "bold preset - Tempor et ullamco cupidatat in officia. Nulla ea duis elit id sunt ipsum cillum duis deserunt nostrud ut nostrud id.",
351
+ subheading: "subheading preset - In Cupidatat Cillum.",
352
+ heading: "heading preset - Voluptate Adipis.",
353
+ },
354
+ sizes: {
355
+ name: "قياسات",
356
+ description: "هناك حجم الدعامة",
357
+ xs: "xs - Ea ipsum est ea ex sunt.",
358
+ sm: "sm - Lorem sunt adipisicin.",
359
+ md: "md - Consequat id do lorem.",
360
+ lg: "lg - Nostrud ipsum ea.",
361
+ xl: "xl - Eiusmod ex excepteur.",
362
+ xxl: "xxl - Cillum eu laboris.",
363
+ },
364
+ weights: {
365
+ name: "أوزان",
366
+ description: "هناك وزن الدعامة",
367
+ light:
368
+ "light - Nulla magna incididunt excepteur est occaecat duis culpa dolore cupidatat enim et.",
369
+ normal:
370
+ "normal - Magna incididunt dolor ut veniam veniam laboris aliqua velit ea incididunt.",
371
+ medium: "medium - Non duis laborum quis laboris occaecat culpa cillum.",
372
+ semibold: "semiBold - Exercitation magna nostrud pariatur laborum occaecat aliqua.",
373
+ bold: "bold - Eiusmod ullamco magna exercitation est excepteur.",
374
+ },
375
+ passingContent: {
376
+ name: "محتوى عابر",
377
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى.",
378
+ viaText:
379
+ "via `text` prop - Billum in aute fugiat proident nisi pariatur est. Cupidatat anim cillum eiusmod ad. Officia eu magna aliquip labore dolore consequat.",
380
+ viaTx: "عبر دعامة 'tx'",
381
+ children: "childrenreprehenderit eu qui amet veniam consectetur.",
382
+ nestedChildren: "الأطفال المتداخلون",
383
+ nestedChildren2: "Occaecat aliqua irure proident veniam.",
384
+ nestedChildren3: "Ullamco cupidatat officia exercitation velit non ullamco nisi..",
385
+ nestedChildren4: "Occaecat aliqua irure proident veniam.",
386
+ },
387
+ styling: {
388
+ name: "التصميم",
389
+ description: "يمكن تصميم المكون بسهولة.",
390
+ text: "Consequat ullamco veniam velit mollit proident excepteur aliquip id culpa ipsum velit sint nostrud.",
391
+ text2:
392
+ "Eiusmod occaecat laboris eu ex veniam ipsum adipisicing consectetur. Magna ullamco adipisicing tempor adipisicing.",
393
+ text3:
394
+ "Eiusmod occaecat laboris eu ex veniam ipsum adipisicing consectetur. Magna ullamco adipisicing tempor adipisicing.",
395
+ },
396
+ },
397
+ },
398
+ demoHeader: {
399
+ description: "المكون الذي يظهر على العديد من الشاشات، سيحمل ازرار التنقل وعنوان الشاشة.",
400
+ useCase: {
401
+ actionIcons: {
402
+ name: "أيقونة الإجرائات ",
403
+ description: "يمكنك بسهولة تمرير الرموزالى مكونات الاجراء اليسرى او اليمنى.",
404
+ leftIconTitle: "الرمز الأيسر",
405
+ rightIconTitle: "الرمز الأيمن ",
406
+ bothIconsTitle: "كلا الرمزين",
407
+ },
408
+ actionText: {
409
+ name: "نص العمل",
410
+ description: "يمكنك بسهولة تمرير النص الى مكونات الاجراء اليسرى او اليمنى.",
411
+ leftTxTitle: "عبر 'leftTx' ",
412
+ rightTextTitle: "عبر `rightText`",
413
+ },
414
+ customActionComponents: {
415
+ name: "مكونات الاجراء المخصص",
416
+ description:
417
+ "اذا لم تكن خيارات الرمز او النسكافية، فيمكنك تمرير مكون الاجراء المخصص الخاص بك.",
418
+ customLeftActionTitle: "عمل يسار مخصص ",
419
+ },
420
+ titleModes: {
421
+ name: "اوضاع العنوان",
422
+ description:
423
+ "يمكن اجبار العنوان على البقاء غي المنتصف ولكن قد يتم قطعه اذا كان طويلاً للغاية. يمكنك بشكل اختياري تعديله وفقاً لأزرار الإجراء.",
424
+ centeredTitle: "عنوان مركزي",
425
+ flexTitle: "عنوان مرن",
426
+ },
427
+ styling: {
428
+ name: "التصميم",
429
+ description: "يمكن تصميم المكون بسهولة",
430
+ styledTitle: "عنوان مصمم",
431
+ styledWrapperTitle: "غلاف مصمم",
432
+ tintedIconsTitle: "أيقونات ملونة",
433
+ },
434
+ },
435
+ },
436
+ demoEmptyState: {
437
+ description:
438
+ "مكون يتم استخدامه عندما لا يكون هناك بيانات لعرضها. ويمكن استخدامه لتوجيه المستخدم الى ما يجب فعله بعد ذلك.",
439
+ useCase: {
440
+ presets: {
441
+ name: "الإعدادات المسبقة",
442
+ description:
443
+ "يمكن إنشاء نص/صورة مختلفة مجموعات. واحد محدد مسبقاً يسمى 'generic'. لاحظ انه لا يوجد اي خيار افتراضي في حال رغبتك في الحصول على كامل EmptyState مخصصة.",
444
+ },
445
+ passingContent: {
446
+ name: "محتوى عابر",
447
+ description: "هناك عدة طرق مختلفة لتمرير المحتوى.",
448
+ customizeImageHeading: "تخصيص الصورة",
449
+ customizeImageContent: "يمكنك تمرير اي مصدر للصورة",
450
+ viaHeadingProp: "عبر دعامة 'heading'",
451
+ viaContentProp: "عبر دعامة 'content'",
452
+ viaButtonProp: "عبر دعامة 'button'",
453
+ },
454
+ styling: {
455
+ name: "التصميم",
456
+ description: "يمكن تصميم المكون بسهولة.",
457
+ },
458
+ },
459
+ },
460
+ }
461
+
462
+ export default demoAr
463
+
464
+ // @demo remove-file