react-native-elearn-ui 0.1.23 → 0.1.28

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 (39) hide show
  1. package/lib/module/components/BottomSheet.js +134 -0
  2. package/lib/module/components/BottomSheet.js.map +1 -0
  3. package/lib/module/components/Icon.js +30 -0
  4. package/lib/module/components/Icon.js.map +1 -1
  5. package/lib/module/components/index.js +1 -0
  6. package/lib/module/components/index.js.map +1 -1
  7. package/lib/module/index.js +1 -1
  8. package/lib/module/index.js.map +1 -1
  9. package/lib/module/screens/index.js +1 -0
  10. package/lib/module/screens/index.js.map +1 -1
  11. package/lib/module/screens/qbank/QBankQuestionScreen.js +415 -0
  12. package/lib/module/screens/qbank/QBankQuestionScreen.js.map +1 -0
  13. package/lib/module/screens/qbank/QBankSubTopicScreen.js +55 -75
  14. package/lib/module/screens/qbank/QBankSubTopicScreen.js.map +1 -1
  15. package/lib/typescript/src/components/BottomSheet.d.ts +9 -0
  16. package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -0
  17. package/lib/typescript/src/components/Icon.d.ts +1 -1
  18. package/lib/typescript/src/components/Icon.d.ts.map +1 -1
  19. package/lib/typescript/src/components/index.d.ts +1 -0
  20. package/lib/typescript/src/components/index.d.ts.map +1 -1
  21. package/lib/typescript/src/index.d.ts +1 -1
  22. package/lib/typescript/src/index.d.ts.map +1 -1
  23. package/lib/typescript/src/screens/index.d.ts +1 -0
  24. package/lib/typescript/src/screens/index.d.ts.map +1 -1
  25. package/lib/typescript/src/screens/qbank/QBankQuestionScreen.d.ts +16 -0
  26. package/lib/typescript/src/screens/qbank/QBankQuestionScreen.d.ts.map +1 -0
  27. package/lib/typescript/src/screens/qbank/QBankSubTopicScreen.d.ts +1 -0
  28. package/lib/typescript/src/screens/qbank/QBankSubTopicScreen.d.ts.map +1 -1
  29. package/lib/typescript/src/types/index.d.ts +15 -0
  30. package/lib/typescript/src/types/index.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/components/BottomSheet.tsx +144 -0
  33. package/src/components/Icon.tsx +12 -2
  34. package/src/components/index.ts +1 -0
  35. package/src/index.tsx +1 -0
  36. package/src/screens/index.ts +1 -0
  37. package/src/screens/qbank/QBankQuestionScreen.tsx +393 -0
  38. package/src/screens/qbank/QBankSubTopicScreen.tsx +42 -61
  39. package/src/types/index.ts +17 -0
@@ -0,0 +1,415 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect } from 'react';
4
+ import { View, ScrollView, StyleSheet, TouchableOpacity, StatusBar } from 'react-native';
5
+ import { SafeAreaView } from 'react-native-safe-area-context';
6
+ import { useTheme } from "../../context/ThemeContext.js";
7
+ import { Typography, Icon, Button } from "../../components/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const formatTime = totalSeconds => {
10
+ const minutes = Math.floor(totalSeconds / 60);
11
+ const seconds = totalSeconds % 60;
12
+ return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
13
+ };
14
+ export const QBankQuestionScreen = ({
15
+ params,
16
+ initialTimeSeconds = 60,
17
+ onTimeUp,
18
+ onBack,
19
+ onNext,
20
+ onPrev,
21
+ onPressOption,
22
+ onPressReport,
23
+ onPressUsers
24
+ }) => {
25
+ const theme = useTheme();
26
+ const [timeLeft, setTimeLeft] = useState(initialTimeSeconds);
27
+ useEffect(() => {
28
+ if (timeLeft <= 0) {
29
+ onTimeUp?.();
30
+ return;
31
+ }
32
+ const timer = setInterval(() => {
33
+ setTimeLeft(prev => prev - 1);
34
+ }, 1000);
35
+ return () => clearInterval(timer);
36
+ }, [timeLeft, onTimeUp]);
37
+ const progressPercentage = params.questionNumber / params.totalQuestions * 100;
38
+ const renderOption = (option, index) => {
39
+ const letters = ['A', 'B', 'C', 'D', 'E', 'F'];
40
+ const letter = letters[index] || '';
41
+ let borderColor = '#E5E7EB'; // Default grey
42
+ let backgroundColor = '#FFFFFF';
43
+ let iconName;
44
+ let iconColor = theme.textSecondary;
45
+ let statusText = '';
46
+ let statusColor = '';
47
+ if (option.status === 'correct') {
48
+ borderColor = theme.success;
49
+ backgroundColor = '#F0FDF4'; // light green bg
50
+ iconName = 'check-circle';
51
+ iconColor = theme.success;
52
+ statusText = 'Correct';
53
+ statusColor = theme.success;
54
+ } else if (option.status === 'incorrect') {
55
+ borderColor = '#EF4444';
56
+ backgroundColor = '#FEF2F2'; // light red bg
57
+ iconName = 'x-circle';
58
+ iconColor = '#EF4444';
59
+ statusText = 'InCorrect'; // matching user image
60
+ statusColor = '#EF4444';
61
+ }
62
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
63
+ style: [styles.optionContainer, {
64
+ borderColor,
65
+ backgroundColor
66
+ }],
67
+ onPress: () => onPressOption?.(option.id),
68
+ activeOpacity: 0.7,
69
+ children: /*#__PURE__*/_jsxs(View, {
70
+ style: styles.optionContent,
71
+ children: [iconName ? /*#__PURE__*/_jsx(Icon, {
72
+ name: iconName,
73
+ size: 20,
74
+ color: iconColor
75
+ }) : /*#__PURE__*/_jsx(View, {
76
+ style: styles.emptyCircle
77
+ }), /*#__PURE__*/_jsxs(View, {
78
+ style: styles.optionTextWrapper,
79
+ children: [/*#__PURE__*/_jsxs(Typography, {
80
+ variant: "body",
81
+ color: theme.textPrimary,
82
+ style: styles.optionText,
83
+ children: [letter, ". ", option.text]
84
+ }), (option.status === 'correct' || option.status === 'incorrect') && /*#__PURE__*/_jsxs(Typography, {
85
+ variant: "caption",
86
+ color: statusColor,
87
+ style: styles.optionStatusText,
88
+ children: [statusText, " ", /*#__PURE__*/_jsxs(Typography, {
89
+ variant: "caption",
90
+ color: theme.textSecondary,
91
+ children: ["[", option.percentage, "%]"]
92
+ })]
93
+ }), option.status === 'default' && option.percentage !== undefined && /*#__PURE__*/_jsxs(Typography, {
94
+ variant: "caption",
95
+ color: theme.textSecondary,
96
+ style: styles.optionStatusText,
97
+ children: ["[", option.percentage, "%]"]
98
+ })]
99
+ })]
100
+ })
101
+ }, option.id);
102
+ };
103
+ return /*#__PURE__*/_jsxs(SafeAreaView, {
104
+ style: [styles.container, {
105
+ backgroundColor: '#E5E7EB'
106
+ }],
107
+ edges: ['top', 'bottom'],
108
+ children: [/*#__PURE__*/_jsx(StatusBar, {
109
+ barStyle: "dark-content",
110
+ backgroundColor: "#FFFFFF"
111
+ }), /*#__PURE__*/_jsxs(View, {
112
+ style: styles.card,
113
+ children: [/*#__PURE__*/_jsxs(View, {
114
+ style: styles.header,
115
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
116
+ onPress: onBack,
117
+ style: styles.headerIconBtnLeft,
118
+ children: /*#__PURE__*/_jsx(Icon, {
119
+ name: "chevron-left",
120
+ size: 24,
121
+ color: theme.textPrimary
122
+ })
123
+ }), /*#__PURE__*/_jsx(Typography, {
124
+ variant: "h3",
125
+ color: theme.textPrimary,
126
+ style: styles.headerTitle,
127
+ children: params.headerTitle
128
+ }), /*#__PURE__*/_jsx(View, {
129
+ style: styles.headerIconBtnRight
130
+ })]
131
+ }), /*#__PURE__*/_jsx(View, {
132
+ style: styles.progressTrack,
133
+ children: /*#__PURE__*/_jsx(View, {
134
+ style: [styles.progressFill, {
135
+ width: `${progressPercentage}%`,
136
+ backgroundColor: theme.success
137
+ }]
138
+ })
139
+ }), /*#__PURE__*/_jsxs(ScrollView, {
140
+ contentContainerStyle: styles.scrollContent,
141
+ showsVerticalScrollIndicator: false,
142
+ children: [/*#__PURE__*/_jsxs(View, {
143
+ style: styles.topBar,
144
+ children: [/*#__PURE__*/_jsxs(Typography, {
145
+ variant: "caption",
146
+ bold: true,
147
+ color: theme.textSecondary,
148
+ style: styles.questionNumber,
149
+ children: ["QUESTION ", params.questionNumber, "/", params.totalQuestions]
150
+ }), /*#__PURE__*/_jsxs(View, {
151
+ style: styles.timerWrapper,
152
+ children: [/*#__PURE__*/_jsx(Icon, {
153
+ name: "clock",
154
+ size: 14,
155
+ color: theme.textSecondary
156
+ }), /*#__PURE__*/_jsx(Typography, {
157
+ variant: "caption",
158
+ color: theme.textSecondary,
159
+ style: styles.timerText,
160
+ children: formatTime(timeLeft)
161
+ })]
162
+ })]
163
+ }), /*#__PURE__*/_jsx(Typography, {
164
+ variant: "h3",
165
+ bold: true,
166
+ color: theme.textPrimary,
167
+ style: styles.questionText,
168
+ children: params.questionText
169
+ }), /*#__PURE__*/_jsx(View, {
170
+ style: styles.optionsList,
171
+ children: params.options.map((option, index) => renderOption(option, index))
172
+ }), params.explanation && /*#__PURE__*/_jsxs(View, {
173
+ style: styles.explanationContainer,
174
+ children: [/*#__PURE__*/_jsx(Typography, {
175
+ variant: "caption",
176
+ bold: true,
177
+ color: theme.textPrimary,
178
+ style: styles.explanationTitle,
179
+ children: "EXPLANATION"
180
+ }), /*#__PURE__*/_jsx(Typography, {
181
+ variant: "body",
182
+ color: theme.textSecondary,
183
+ style: styles.explanationText,
184
+ children: params.explanation
185
+ }), params.referenceId && /*#__PURE__*/_jsx(View, {
186
+ style: styles.referenceContainer,
187
+ children: /*#__PURE__*/_jsx(Typography, {
188
+ variant: "caption",
189
+ color: theme.textSecondary,
190
+ style: styles.referenceText,
191
+ children: params.referenceId
192
+ })
193
+ })]
194
+ })]
195
+ }), /*#__PURE__*/_jsxs(View, {
196
+ style: styles.bottomActions,
197
+ children: [/*#__PURE__*/_jsxs(View, {
198
+ style: styles.leftActions,
199
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
200
+ style: styles.iconAction,
201
+ onPress: onPressReport,
202
+ children: /*#__PURE__*/_jsx(Icon, {
203
+ name: "alert-circle",
204
+ size: 20,
205
+ color: theme.textSecondary
206
+ })
207
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
208
+ style: styles.iconAction,
209
+ onPress: onPressUsers,
210
+ children: /*#__PURE__*/_jsx(Icon, {
211
+ name: "users",
212
+ size: 20,
213
+ color: theme.textSecondary
214
+ })
215
+ })]
216
+ }), /*#__PURE__*/_jsxs(View, {
217
+ style: styles.rightActions,
218
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
219
+ style: styles.prevBtn,
220
+ onPress: onPrev,
221
+ children: /*#__PURE__*/_jsx(Typography, {
222
+ variant: "body",
223
+ bold: true,
224
+ color: theme.textPrimary,
225
+ children: "Prev"
226
+ })
227
+ }), /*#__PURE__*/_jsx(Button, {
228
+ title: "Next",
229
+ onPress: onNext || (() => {}),
230
+ style: styles.nextBtn,
231
+ textStyle: styles.nextBtnText
232
+ })]
233
+ })]
234
+ })]
235
+ })]
236
+ });
237
+ };
238
+ const styles = StyleSheet.create({
239
+ container: {
240
+ flex: 1,
241
+ padding: 16 // Gray margin around the card
242
+ },
243
+ card: {
244
+ flex: 1,
245
+ backgroundColor: '#FFFFFF',
246
+ borderRadius: 8,
247
+ overflow: 'hidden',
248
+ shadowColor: '#000',
249
+ shadowOffset: {
250
+ width: 0,
251
+ height: 2
252
+ },
253
+ shadowOpacity: 0.1,
254
+ shadowRadius: 4,
255
+ elevation: 4
256
+ },
257
+ header: {
258
+ flexDirection: 'row',
259
+ alignItems: 'center',
260
+ paddingHorizontal: 16,
261
+ paddingVertical: 12
262
+ },
263
+ headerIconBtnLeft: {
264
+ width: 40,
265
+ height: 40,
266
+ justifyContent: 'center',
267
+ alignItems: 'flex-start'
268
+ },
269
+ headerRightActions: {
270
+ flexDirection: 'row',
271
+ alignItems: 'center'
272
+ },
273
+ headerIconBtnRight: {
274
+ width: 40,
275
+ height: 40,
276
+ justifyContent: 'center',
277
+ alignItems: 'flex-end'
278
+ },
279
+ headerTitle: {
280
+ fontSize: 16,
281
+ fontWeight: '600',
282
+ flex: 1,
283
+ textAlign: 'center'
284
+ },
285
+ progressTrack: {
286
+ height: 4,
287
+ backgroundColor: '#E5E7EB',
288
+ width: '100%'
289
+ },
290
+ progressFill: {
291
+ height: '100%'
292
+ },
293
+ scrollContent: {
294
+ padding: 20,
295
+ paddingBottom: 40
296
+ },
297
+ topBar: {
298
+ flexDirection: 'row',
299
+ justifyContent: 'space-between',
300
+ alignItems: 'center',
301
+ marginBottom: 20
302
+ },
303
+ questionNumber: {
304
+ fontSize: 12,
305
+ letterSpacing: 0.5
306
+ },
307
+ timerWrapper: {
308
+ flexDirection: 'row',
309
+ alignItems: 'center'
310
+ },
311
+ timerText: {
312
+ fontSize: 12,
313
+ marginLeft: 6
314
+ },
315
+ questionText: {
316
+ fontSize: 16,
317
+ lineHeight: 24,
318
+ marginBottom: 24
319
+ },
320
+ optionsList: {
321
+ marginBottom: 32
322
+ },
323
+ optionContainer: {
324
+ borderWidth: 1,
325
+ borderRadius: 8,
326
+ padding: 16,
327
+ marginBottom: 12
328
+ },
329
+ optionContent: {
330
+ flexDirection: 'row',
331
+ alignItems: 'flex-start'
332
+ },
333
+ emptyCircle: {
334
+ width: 20,
335
+ height: 20,
336
+ borderRadius: 10,
337
+ borderWidth: 1,
338
+ borderColor: '#D1D5DB'
339
+ },
340
+ optionTextWrapper: {
341
+ flex: 1,
342
+ marginLeft: 12
343
+ },
344
+ optionText: {
345
+ fontSize: 14,
346
+ lineHeight: 20
347
+ },
348
+ optionStatusText: {
349
+ marginTop: 6,
350
+ fontSize: 12
351
+ },
352
+ explanationContainer: {
353
+ marginTop: 16
354
+ },
355
+ explanationTitle: {
356
+ fontSize: 12,
357
+ marginBottom: 12
358
+ },
359
+ explanationText: {
360
+ fontSize: 14,
361
+ lineHeight: 22
362
+ },
363
+ referenceContainer: {
364
+ marginTop: 24,
365
+ paddingTop: 16,
366
+ borderTopWidth: 1,
367
+ borderTopColor: '#F3F4F6',
368
+ alignItems: 'center'
369
+ },
370
+ referenceText: {
371
+ fontSize: 12
372
+ },
373
+ bottomActions: {
374
+ flexDirection: 'row',
375
+ justifyContent: 'space-between',
376
+ alignItems: 'center',
377
+ padding: 16,
378
+ borderTopWidth: 1,
379
+ borderTopColor: '#F3F4F6',
380
+ backgroundColor: '#FFFFFF'
381
+ },
382
+ leftActions: {
383
+ flexDirection: 'row',
384
+ alignItems: 'center'
385
+ },
386
+ iconAction: {
387
+ width: 36,
388
+ height: 36,
389
+ justifyContent: 'center',
390
+ alignItems: 'center',
391
+ marginRight: 8,
392
+ borderRadius: 18,
393
+ borderWidth: 1,
394
+ borderColor: '#E5E7EB'
395
+ },
396
+ rightActions: {
397
+ flexDirection: 'row',
398
+ alignItems: 'center'
399
+ },
400
+ prevBtn: {
401
+ marginRight: 20
402
+ },
403
+ nextBtn: {
404
+ backgroundColor: '#10B981',
405
+ paddingHorizontal: 24,
406
+ paddingVertical: 10,
407
+ height: 'auto',
408
+ minWidth: 80
409
+ },
410
+ nextBtnText: {
411
+ fontSize: 14,
412
+ fontWeight: '600'
413
+ }
414
+ });
415
+ //# sourceMappingURL=QBankQuestionScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","View","ScrollView","StyleSheet","TouchableOpacity","StatusBar","SafeAreaView","useTheme","Typography","Icon","Button","jsx","_jsx","jsxs","_jsxs","formatTime","totalSeconds","minutes","Math","floor","seconds","toString","padStart","QBankQuestionScreen","params","initialTimeSeconds","onTimeUp","onBack","onNext","onPrev","onPressOption","onPressReport","onPressUsers","theme","timeLeft","setTimeLeft","timer","setInterval","prev","clearInterval","progressPercentage","questionNumber","totalQuestions","renderOption","option","index","letters","letter","borderColor","backgroundColor","iconName","iconColor","textSecondary","statusText","statusColor","status","success","style","styles","optionContainer","onPress","id","activeOpacity","children","optionContent","name","size","color","emptyCircle","optionTextWrapper","variant","textPrimary","optionText","text","optionStatusText","percentage","undefined","container","edges","barStyle","card","header","headerIconBtnLeft","headerTitle","headerIconBtnRight","progressTrack","progressFill","width","contentContainerStyle","scrollContent","showsVerticalScrollIndicator","topBar","bold","timerWrapper","timerText","questionText","optionsList","options","map","explanation","explanationContainer","explanationTitle","explanationText","referenceId","referenceContainer","referenceText","bottomActions","leftActions","iconAction","rightActions","prevBtn","title","nextBtn","textStyle","nextBtnText","create","flex","padding","borderRadius","overflow","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","flexDirection","alignItems","paddingHorizontal","paddingVertical","justifyContent","headerRightActions","fontSize","fontWeight","textAlign","paddingBottom","marginBottom","letterSpacing","marginLeft","lineHeight","borderWidth","marginTop","paddingTop","borderTopWidth","borderTopColor","marginRight","minWidth"],"sourceRoot":"../../../../src","sources":["screens/qbank/QBankQuestionScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useRef } from 'react';
4
- import { View, ScrollView, StyleSheet, TouchableOpacity, StatusBar, FlatList, Modal, TouchableWithoutFeedback } from 'react-native';
4
+ import { View, ScrollView, StyleSheet, TouchableOpacity, StatusBar, FlatList } from 'react-native';
5
5
  import { SafeAreaView } from 'react-native-safe-area-context';
6
6
  import { useTheme } from "../../context/ThemeContext.js";
7
- import { Typography, Icon } from "../../components/index.js";
7
+ import { Typography, Icon, BottomSheet } from "../../components/index.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export const QBankSubTopicScreen = ({
10
10
  params,
@@ -12,7 +12,8 @@ export const QBankSubTopicScreen = ({
12
12
  onBack,
13
13
  onPressModule,
14
14
  onPressFilter,
15
- onPressSearch
15
+ onPressSearch,
16
+ isProUser = false
16
17
  }) => {
17
18
  const theme = useTheme();
18
19
  const [activeFilter, setActiveFilter] = useState(params.activeFilter || params.filters[0]);
@@ -203,19 +204,23 @@ export const QBankSubTopicScreen = ({
203
204
  },
204
205
  children: "FREE"
205
206
  })
206
- }), moduleItem.status === 'locked' && /*#__PURE__*/_jsx(View, {
207
- style: styles.lockedBadge,
208
- children: /*#__PURE__*/_jsx(Icon, {
209
- name: "lock",
210
- size: 12,
211
- color: "#64748B"
207
+ }), moduleItem.status === 'locked' && !isProUser && /*#__PURE__*/_jsx(View, {
208
+ style: styles.proBadge,
209
+ children: /*#__PURE__*/_jsx(Typography, {
210
+ variant: "caption",
211
+ bold: true,
212
+ color: "#FFFFFF",
213
+ style: {
214
+ fontSize: 7
215
+ },
216
+ children: "PRO"
212
217
  })
213
218
  }), moduleItem.attemptStatus === 'resume' && /*#__PURE__*/_jsx(Typography, {
214
219
  variant: "caption",
215
220
  bold: true,
216
221
  color: "#F59E0B",
217
222
  style: {
218
- fontSize: 11
223
+ fontSize: 9
219
224
  },
220
225
  children: "RESUME"
221
226
  }), moduleItem.attemptStatus === 'completed' && /*#__PURE__*/_jsxs(View, {
@@ -229,7 +234,7 @@ export const QBankSubTopicScreen = ({
229
234
  bold: true,
230
235
  color: "#FFFFFF",
231
236
  style: {
232
- fontSize: 8
237
+ fontSize: 7
233
238
  },
234
239
  children: "COMPLETED"
235
240
  })
@@ -238,7 +243,7 @@ export const QBankSubTopicScreen = ({
238
243
  bold: true,
239
244
  color: theme.success,
240
245
  style: {
241
- fontSize: 12,
246
+ fontSize: 10,
242
247
  marginTop: 4
243
248
  },
244
249
  children: [moduleItem.correctPercentage, "% Correct"]
@@ -250,52 +255,41 @@ export const QBankSubTopicScreen = ({
250
255
  })]
251
256
  }, section.id);
252
257
  })]
253
- }), /*#__PURE__*/_jsx(Modal, {
258
+ }), /*#__PURE__*/_jsxs(BottomSheet, {
254
259
  visible: showTOC,
255
- transparent: true,
256
- animationType: "slide",
257
- onRequestClose: () => setShowTOC(false),
258
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
259
- style: styles.modalOverlay,
260
- activeOpacity: 1,
261
- onPress: () => setShowTOC(false),
262
- children: /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
263
- children: /*#__PURE__*/_jsxs(View, {
264
- style: styles.bottomSheet,
265
- children: [/*#__PURE__*/_jsxs(View, {
266
- style: styles.sheetHeader,
267
- children: [/*#__PURE__*/_jsx(Typography, {
268
- variant: "h3",
269
- bold: true,
270
- color: theme.textPrimary,
271
- children: "Table of Contents"
272
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
273
- onPress: () => setShowTOC(false),
274
- children: /*#__PURE__*/_jsx(Icon, {
275
- name: "x",
276
- size: 24,
277
- color: theme.textSecondary
278
- })
279
- })]
280
- }), /*#__PURE__*/_jsx(ScrollView, {
281
- style: styles.sheetScroll,
282
- children: params.sections.map(section => /*#__PURE__*/_jsxs(TouchableOpacity, {
283
- style: styles.sheetItem,
284
- onPress: () => scrollToSection(section.id),
285
- children: [/*#__PURE__*/_jsx(Typography, {
286
- variant: "body",
287
- color: theme.textPrimary,
288
- children: section.title
289
- }), /*#__PURE__*/_jsx(Icon, {
290
- name: "chevron-right",
291
- size: 20,
292
- color: theme.textSecondary
293
- })]
294
- }, section.id))
295
- })]
260
+ onClose: () => setShowTOC(false),
261
+ height: 400,
262
+ children: [/*#__PURE__*/_jsxs(View, {
263
+ style: styles.sheetHeader,
264
+ children: [/*#__PURE__*/_jsx(Typography, {
265
+ variant: "h3",
266
+ bold: true,
267
+ color: theme.textPrimary,
268
+ children: "Table of Contents"
269
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
270
+ onPress: () => setShowTOC(false),
271
+ children: /*#__PURE__*/_jsx(Icon, {
272
+ name: "x",
273
+ size: 24,
274
+ color: theme.textSecondary
296
275
  })
297
- })
298
- })
276
+ })]
277
+ }), /*#__PURE__*/_jsx(ScrollView, {
278
+ style: styles.sheetScroll,
279
+ children: params.sections.map(section => /*#__PURE__*/_jsxs(TouchableOpacity, {
280
+ style: styles.sheetItem,
281
+ onPress: () => scrollToSection(section.id),
282
+ children: [/*#__PURE__*/_jsx(Typography, {
283
+ variant: "body",
284
+ color: theme.textPrimary,
285
+ children: section.title
286
+ }), /*#__PURE__*/_jsx(Icon, {
287
+ name: "chevron-right",
288
+ size: 20,
289
+ color: theme.textSecondary
290
+ })]
291
+ }, section.id))
292
+ })]
299
293
  })]
300
294
  });
301
295
  };
@@ -474,13 +468,11 @@ const styles = StyleSheet.create({
474
468
  borderColor: '#10B981',
475
469
  backgroundColor: '#FFFFFF'
476
470
  },
477
- lockedBadge: {
478
- width: 24,
479
- height: 24,
480
- borderRadius: 12,
481
- backgroundColor: '#F1F5F9',
482
- justifyContent: 'center',
483
- alignItems: 'center'
471
+ proBadge: {
472
+ paddingHorizontal: 6,
473
+ paddingVertical: 2,
474
+ borderRadius: 4,
475
+ backgroundColor: '#F59E0B'
484
476
  },
485
477
  completedBadge: {
486
478
  paddingHorizontal: 6,
@@ -488,18 +480,6 @@ const styles = StyleSheet.create({
488
480
  borderRadius: 4,
489
481
  backgroundColor: '#10B981'
490
482
  },
491
- modalOverlay: {
492
- flex: 1,
493
- backgroundColor: 'rgba(0,0,0,0.4)',
494
- justifyContent: 'flex-end'
495
- },
496
- bottomSheet: {
497
- backgroundColor: '#FFFFFF',
498
- borderTopLeftRadius: 20,
499
- borderTopRightRadius: 20,
500
- paddingBottom: 40,
501
- maxHeight: '70%'
502
- },
503
483
  sheetHeader: {
504
484
  flexDirection: 'row',
505
485
  justifyContent: 'space-between',