{"ast":null,"code":"var _jsxFileName = \"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/HomeScreen.tsx\";\nimport React from 'react';\nimport ScrollView from \"react-native-web/dist/exports/ScrollView\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport View from \"react-native-web/dist/exports/View\";\nimport { Card, Title, Paragraph, FAB, List, Chip } from 'react-native-paper';\nimport { useSelector } from 'react-redux';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport function HomeScreen() {\n  const projects = useSelector(state => state.projects.projects);\n  const activeProjects = useSelector(state => state.progress.activeProjects);\n  return _jsxDEV(View, {\n    style: styles.container,\n    children: [_jsxDEV(ScrollView, {\n      style: styles.scrollView,\n      children: [activeProjects.length > 0 && _jsxDEV(Card, {\n        style: styles.card,\n        children: _jsxDEV(Card.Content, {\n          children: [_jsxDEV(Title, {\n            children: \"Active Projects\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 17,\n            columnNumber: 15\n          }, this), activeProjects.map(project => _jsxDEV(List.Item, {\n            title: project.name,\n            description: `${project.currentStep} (${project.progress}%)`,\n            left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n              icon: \"progress-clock\"\n            }), void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 23,\n              columnNumber: 36\n            }, this),\n            right: () => _jsxDEV(Chip, {\n              mode: \"outlined\",\n              compact: true,\n              children: project.status\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 25,\n              columnNumber: 21\n            }, this)\n          }, project.id, false, {\n            fileName: _jsxFileName,\n            lineNumber: 19,\n            columnNumber: 17\n          }, this))]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 16,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 15,\n        columnNumber: 11\n      }, this), _jsxDEV(Card, {\n        style: styles.card,\n        children: _jsxDEV(Card.Content, {\n          children: [_jsxDEV(Title, {\n            children: \"Recent Projects\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 37,\n            columnNumber: 13\n          }, this), projects.length === 0 ? _jsxDEV(Paragraph, {\n            children: \"No projects yet. Create your first project!\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 39,\n            columnNumber: 15\n          }, this) : projects.slice(0, 5).map(project => _jsxDEV(List.Item, {\n            title: project.name,\n            description: `${project.templates.length} templates • ${project.path}`,\n            left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n              icon: \"folder\"\n            }), void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 46,\n              columnNumber: 36\n            }, this),\n            right: () => _jsxDEV(Chip, {\n              mode: \"outlined\",\n              compact: true,\n              children: project.mergeStrategy\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 48,\n              columnNumber: 21\n            }, this)\n          }, project.id, false, {\n            fileName: _jsxFileName,\n            lineNumber: 42,\n            columnNumber: 17\n          }, this))]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 36,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 35,\n        columnNumber: 9\n      }, this), _jsxDEV(Card, {\n        style: styles.card,\n        children: _jsxDEV(Card.Content, {\n          children: [_jsxDEV(Title, {\n            children: \"Quick Stats\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 60,\n            columnNumber: 13\n          }, this), _jsxDEV(View, {\n            style: styles.statsRow,\n            children: [_jsxDEV(View, {\n              style: styles.statItem,\n              children: [_jsxDEV(Title, {\n                children: projects.length\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 63,\n                columnNumber: 17\n              }, this), _jsxDEV(Paragraph, {\n                children: \"Projects\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 64,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 62,\n              columnNumber: 15\n            }, this), _jsxDEV(View, {\n              style: styles.statItem,\n              children: [_jsxDEV(Title, {\n                children: projects.reduce((sum, p) => sum + p.templates.length, 0)\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 67,\n                columnNumber: 17\n              }, this), _jsxDEV(Paragraph, {\n                children: \"Templates Used\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 68,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 66,\n              columnNumber: 15\n            }, this), _jsxDEV(View, {\n              style: styles.statItem,\n              children: [_jsxDEV(Title, {\n                children: activeProjects.length\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 71,\n                columnNumber: 17\n              }, this), _jsxDEV(Paragraph, {\n                children: \"Active\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 72,\n                columnNumber: 17\n              }, this)]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 70,\n              columnNumber: 15\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 61,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 59,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 58,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 13,\n      columnNumber: 7\n    }, this), _jsxDEV(FAB, {\n      style: styles.fab,\n      icon: \"plus\",\n      onPress: () => {}\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 79,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 12,\n    columnNumber: 5\n  }, this);\n}\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    backgroundColor: '#f5f5f5'\n  },\n  scrollView: {\n    flex: 1,\n    padding: 16\n  },\n  card: {\n    marginBottom: 16\n  },\n  fab: {\n    position: 'absolute',\n    margin: 16,\n    right: 0,\n    bottom: 0\n  },\n  statsRow: {\n    flexDirection: 'row',\n    justifyContent: 'space-around',\n    marginTop: 16\n  },\n  statItem: {\n    alignItems: 'center'\n  }\n});","map":{"version":3,"names":["React","ScrollView","StyleSheet","View","Card","Title","Paragraph","FAB","List","Chip","useSelector","jsxDEV","_jsxDEV","HomeScreen","projects","state","activeProjects","progress","style","styles","container","children","scrollView","length","card","Content","fileName","_jsxFileName","lineNumber","columnNumber","map","project","Item","title","name","description","currentStep","left","props","Icon","Object","assign","icon","right","mode","compact","status","id","slice","templates","path","mergeStrategy","statsRow","statItem","reduce","sum","p","fab","onPress","create","flex","backgroundColor","padding","marginBottom","position","margin","bottom","flexDirection","justifyContent","marginTop","alignItems"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/HomeScreen.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView, StyleSheet, View } from 'react-native';\nimport { Card, Title, Paragraph, FAB, List, Chip } from 'react-native-paper';\nimport { useSelector } from 'react-redux';\nimport { RootState } from '../store';\n\nexport function HomeScreen() {\n  const projects = useSelector((state: RootState) => state.projects.projects);\n  const activeProjects = useSelector((state: RootState) => state.progress.activeProjects);\n\n  return (\n    <View style={styles.container}>\n      <ScrollView style={styles.scrollView}>\n        {activeProjects.length > 0 && (\n          <Card style={styles.card}>\n            <Card.Content>\n              <Title>Active Projects</Title>\n              {activeProjects.map((project) => (\n                <List.Item\n                  key={project.id}\n                  title={project.name}\n                  description={`${project.currentStep} (${project.progress}%)`}\n                  left={(props) => <List.Icon {...props} icon=\"progress-clock\" />}\n                  right={() => (\n                    <Chip mode=\"outlined\" compact>\n                      {project.status}\n                    </Chip>\n                  )}\n                />\n              ))}\n            </Card.Content>\n          </Card>\n        )}\n\n        <Card style={styles.card}>\n          <Card.Content>\n            <Title>Recent Projects</Title>\n            {projects.length === 0 ? (\n              <Paragraph>No projects yet. Create your first project!</Paragraph>\n            ) : (\n              projects.slice(0, 5).map((project) => (\n                <List.Item\n                  key={project.id}\n                  title={project.name}\n                  description={`${project.templates.length} templates • ${project.path}`}\n                  left={(props) => <List.Icon {...props} icon=\"folder\" />}\n                  right={() => (\n                    <Chip mode=\"outlined\" compact>\n                      {project.mergeStrategy}\n                    </Chip>\n                  )}\n                />\n              ))\n            )}\n          </Card.Content>\n        </Card>\n\n        <Card style={styles.card}>\n          <Card.Content>\n            <Title>Quick Stats</Title>\n            <View style={styles.statsRow}>\n              <View style={styles.statItem}>\n                <Title>{projects.length}</Title>\n                <Paragraph>Projects</Paragraph>\n              </View>\n              <View style={styles.statItem}>\n                <Title>{projects.reduce((sum, p) => sum + p.templates.length, 0)}</Title>\n                <Paragraph>Templates Used</Paragraph>\n              </View>\n              <View style={styles.statItem}>\n                <Title>{activeProjects.length}</Title>\n                <Paragraph>Active</Paragraph>\n              </View>\n            </View>\n          </Card.Content>\n        </Card>\n      </ScrollView>\n\n      <FAB\n        style={styles.fab}\n        icon=\"plus\"\n        onPress={() => {\n          // Navigate to create project screen\n        }}\n      />\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    backgroundColor: '#f5f5f5',\n  },\n  scrollView: {\n    flex: 1,\n    padding: 16,\n  },\n  card: {\n    marginBottom: 16,\n  },\n  fab: {\n    position: 'absolute',\n    margin: 16,\n    right: 0,\n    bottom: 0,\n  },\n  statsRow: {\n    flexDirection: 'row',\n    justifyContent: 'space-around',\n    marginTop: 16,\n  },\n  statItem: {\n    alignItems: 'center',\n  },\n});"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}