{
	"ast": null,
	"code": "var _jsxFileName = \"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/CreateProjectScreen.tsx\";\nimport React, { useState } 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, TextInput, Button, Checkbox, List, Chip, IconButton, SegmentedButtons, Switch } from 'react-native-paper';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { addProject } from \"../store/projectsSlice\";\nimport { startProject } from \"../store/progressSlice\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport function CreateProjectScreen() {\n  const dispatch = useDispatch();\n  const availableTemplates = useSelector(state => state.templates.templates);\n  const [projectName, setProjectName] = useState('');\n  const [projectPath, setProjectPath] = useState('');\n  const [gitRemote, setGitRemote] = useState('');\n  const [selectedTemplates, setSelectedTemplates] = useState([]);\n  const [mergeStrategy, setMergeStrategy] = useState('merge');\n  const [initGit, setInitGit] = useState(true);\n  const [excludePatterns, setExcludePatterns] = useState(['.git/**', 'node_modules/**']);\n  const [newExcludePattern, setNewExcludePattern] = useState('');\n  const handleTemplateToggle = templateId => {\n    setSelectedTemplates(prev => prev.includes(templateId) ? prev.filter(id => id !== templateId) : [...prev, templateId]);\n  };\n  const handleAddExcludePattern = () => {\n    if (newExcludePattern.trim() && !excludePatterns.includes(newExcludePattern.trim())) {\n      setExcludePatterns([...excludePatterns, newExcludePattern.trim()]);\n      setNewExcludePattern('');\n    }\n  };\n  const handleRemoveExcludePattern = pattern => {\n    setExcludePatterns(excludePatterns.filter(p => p !== pattern));\n  };\n  const handleCreateProject = () => {\n    const selectedTemplateObjects = availableTemplates.filter(t => selectedTemplates.includes(t.id));\n    const newProject = {\n      id: Date.now().toString(),\n      name: projectName,\n      path: projectPath,\n      templates: selectedTemplateObjects,\n      gitRemote: gitRemote || undefined,\n      excludePatterns,\n      mergeStrategy,\n      createdAt: new Date(),\n      updatedAt: new Date()\n    };\n    dispatch(addProject(newProject));\n    dispatch(startProject({\n      id: newProject.id,\n      name: projectName,\n      status: 'pending',\n      progress: 0,\n      currentStep: 'Initializing project',\n      totalSteps: selectedTemplateObjects.length + (initGit ? 1 : 0),\n      errors: []\n    }));\n    setProjectName('');\n    setProjectPath('');\n    setGitRemote('');\n    setSelectedTemplates([]);\n    setExcludePatterns(['.git/**', 'node_modules/**']);\n  };\n  const isFormValid = projectName.trim() && projectPath.trim() && selectedTemplates.length > 0;\n  return _jsxDEV(ScrollView, {\n    style: styles.container,\n    children: [_jsxDEV(Card, {\n      style: styles.card,\n      children: _jsxDEV(Card.Content, {\n        children: [_jsxDEV(Title, {\n          children: \"Project Details\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 98,\n          columnNumber: 11\n        }, this), _jsxDEV(TextInput, {\n          label: \"Project Name\",\n          value: projectName,\n          onChangeText: setProjectName,\n          style: styles.input,\n          mode: \"outlined\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 100,\n          columnNumber: 11\n        }, this), _jsxDEV(TextInput, {\n          label: \"Project Path\",\n          value: projectPath,\n          onChangeText: setProjectPath,\n          style: styles.input,\n          mode: \"outlined\",\n          placeholder: \"/path/to/your/project\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 108,\n          columnNumber: 11\n        }, this), _jsxDEV(TextInput, {\n          label: \"Git Remote (optional)\",\n          value: gitRemote,\n          onChangeText: setGitRemote,\n          style: styles.input,\n          mode: \"outlined\",\n          placeholder: \"https://github.com/user/repo.git\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 117,\n          columnNumber: 11\n        }, this), _jsxDEV(View, {\n          style: styles.switchContainer,\n          children: [_jsxDEV(Title, {\n            style: styles.switchLabel,\n            children: \"Initialize Git Repository\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 127,\n            columnNumber: 13\n          }, this), _jsxDEV(Switch, {\n            value: initGit,\n            onValueChange: setInitGit\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 128,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 126,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 97,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 96,\n      columnNumber: 7\n    }, this), _jsxDEV(Card, {\n      style: styles.card,\n      children: _jsxDEV(Card.Content, {\n        children: [_jsxDEV(Title, {\n          children: \"Select Templates\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 135,\n          columnNumber: 11\n        }, this), availableTemplates.map(template => _jsxDEV(List.Item, {\n          title: template.name,\n          description: template.url,\n          left: () => _jsxDEV(Checkbox, {\n            status: selectedTemplates.includes(template.id) ? 'checked' : 'unchecked',\n            onPress: () => handleTemplateToggle(template.id)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 142,\n            columnNumber: 17\n          }, this),\n          onPress: () => handleTemplateToggle(template.id)\n        }, template.id, false, {\n          fileName: _jsxFileName,\n          lineNumber: 137,\n          columnNumber: 13\n        }, this))]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 134,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 133,\n      columnNumber: 7\n    }, this), _jsxDEV(Card, {\n      style: styles.card,\n      children: _jsxDEV(Card.Content, {\n        children: [_jsxDEV(Title, {\n          children: \"Merge Strategy\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 155,\n          columnNumber: 11\n        }, this), _jsxDEV(SegmentedButtons, {\n          value: mergeStrategy,\n          onValueChange: value => setMergeStrategy(value),\n          buttons: [{\n            value: 'merge',\n            label: 'Merge'\n          }, {\n            value: 'overwrite',\n            label: 'Overwrite'\n          }, {\n            value: 'skip',\n            label: 'Skip'\n          }],\n          style: styles.segmentedButtons\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 156,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 154,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 153,\n      columnNumber: 7\n    }, this), _jsxDEV(Card, {\n      style: styles.card,\n      children: _jsxDEV(Card.Content, {\n        children: [_jsxDEV(Title, {\n          children: \"Exclude Patterns\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 171,\n          columnNumber: 11\n        }, this), _jsxDEV(View, {\n          style: styles.addPatternContainer,\n          children: [_jsxDEV(TextInput, {\n            label: \"Add exclude pattern\",\n            value: newExcludePattern,\n            onChangeText: setNewExcludePattern,\n            style: styles.patternInput,\n            mode: \"outlined\",\n            placeholder: \"*.log, temp/**, etc.\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 174,\n            columnNumber: 13\n          }, this), _jsxDEV(IconButton, {\n            icon: \"plus\",\n            mode: \"contained\",\n            onPress: handleAddExcludePattern,\n            disabled: !newExcludePattern.trim()\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 182,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 173,\n          columnNumber: 11\n        }, this), _jsxDEV(View, {\n          style: styles.patternsContainer,\n          children: excludePatterns.map((pattern, index) => _jsxDEV(Chip, {\n            mode: \"outlined\",\n            onClose: () => handleRemoveExcludePattern(pattern),\n            style: styles.patternChip,\n            children: pattern\n          }, index, false, {\n            fileName: _jsxFileName,\n            lineNumber: 192,\n            columnNumber: 15\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 190,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 170,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 169,\n      columnNumber: 7\n    }, this), _jsxDEV(View, {\n      style: styles.buttonContainer,\n      children: _jsxDEV(Button, {\n        mode: \"contained\",\n        onPress: handleCreateProject,\n        disabled: !isFormValid,\n        style: styles.createButton,\n        contentStyle: styles.createButtonContent,\n        children: \"Create Project\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 206,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 205,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 95,\n    columnNumber: 5\n  }, this);\n}\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    backgroundColor: '#f5f5f5',\n    padding: 16\n  },\n  card: {\n    marginBottom: 16\n  },\n  input: {\n    marginBottom: 16\n  },\n  switchContainer: {\n    flexDirection: 'row',\n    justifyContent: 'space-between',\n    alignItems: 'center',\n    marginBottom: 8\n  },\n  switchLabel: {\n    fontSize: 16\n  },\n  segmentedButtons: {\n    marginTop: 8\n  },\n  addPatternContainer: {\n    flexDirection: 'row',\n    alignItems: 'flex-end',\n    marginBottom: 16\n  },\n  patternInput: {\n    flex: 1,\n    marginRight: 8\n  },\n  patternsContainer: {\n    flexDirection: 'row',\n    flexWrap: 'wrap'\n  },\n  patternChip: {\n    marginRight: 8,\n    marginBottom: 8\n  },\n  buttonContainer: {\n    marginBottom: 32\n  },\n  createButton: {\n    marginTop: 16\n  },\n  createButtonContent: {\n    paddingVertical: 8\n  }\n});",
	"map": {
		"version": 3,
		"names": [
			"React",
			"useState",
			"ScrollView",
			"StyleSheet",
			"View",
			"Card",
			"Title",
			"TextInput",
			"Button",
			"Checkbox",
			"List",
			"Chip",
			"IconButton",
			"SegmentedButtons",
			"Switch",
			"useSelector",
			"useDispatch",
			"addProject",
			"startProject",
			"jsxDEV",
			"_jsxDEV",
			"CreateProjectScreen",
			"dispatch",
			"availableTemplates",
			"state",
			"templates",
			"projectName",
			"setProjectName",
			"projectPath",
			"setProjectPath",
			"gitRemote",
			"setGitRemote",
			"selectedTemplates",
			"setSelectedTemplates",
			"mergeStrategy",
			"setMergeStrategy",
			"initGit",
			"setInitGit",
			"excludePatterns",
			"setExcludePatterns",
			"newExcludePattern",
			"setNewExcludePattern",
			"handleTemplateToggle",
			"templateId",
			"prev",
			"includes",
			"filter",
			"id",
			"handleAddExcludePattern",
			"trim",
			"handleRemoveExcludePattern",
			"pattern",
			"p",
			"handleCreateProject",
			"selectedTemplateObjects",
			"t",
			"newProject",
			"Date",
			"now",
			"toString",
			"name",
			"path",
			"undefined",
			"createdAt",
			"updatedAt",
			"status",
			"progress",
			"currentStep",
			"totalSteps",
			"length",
			"errors",
			"isFormValid",
			"style",
			"styles",
			"container",
			"children",
			"card",
			"Content",
			"fileName",
			"_jsxFileName",
			"lineNumber",
			"columnNumber",
			"label",
			"value",
			"onChangeText",
			"input",
			"mode",
			"placeholder",
			"switchContainer",
			"switchLabel",
			"onValueChange",
			"map",
			"template",
			"Item",
			"title",
			"description",
			"url",
			"left",
			"onPress",
			"buttons",
			"segmentedButtons",
			"addPatternContainer",
			"patternInput",
			"icon",
			"disabled",
			"patternsContainer",
			"index",
			"onClose",
			"patternChip",
			"buttonContainer",
			"createButton",
			"contentStyle",
			"createButtonContent",
			"create",
			"flex",
			"backgroundColor",
			"padding",
			"marginBottom",
			"flexDirection",
			"justifyContent",
			"alignItems",
			"fontSize",
			"marginTop",
			"marginRight",
			"flexWrap",
			"paddingVertical"
		],
		"sources": [
			"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/CreateProjectScreen.tsx"
		],
		"sourcesContent": [
			"import React, { useState } from 'react';\nimport { ScrollView, StyleSheet, View } from 'react-native';\nimport {\n  Card,\n  Title,\n  TextInput,\n  Button,\n  Checkbox,\n  List,\n  Chip,\n  IconButton,\n  SegmentedButtons,\n  Switch,\n  Divider,\n} from 'react-native-paper';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { RootState } from '../store';\nimport { addProject } from '../store/projectsSlice';\nimport { startProject } from '../store/progressSlice';\nimport { MobileRepositoryConfig, MobileTemplateRepository } from '../types';\n\nexport function CreateProjectScreen() {\n  const dispatch = useDispatch();\n  const availableTemplates = useSelector((state: RootState) => state.templates.templates);\n  \n  const [projectName, setProjectName] = useState('');\n  const [projectPath, setProjectPath] = useState('');\n  const [gitRemote, setGitRemote] = useState('');\n  const [selectedTemplates, setSelectedTemplates] = useState<string[]>([]);\n  const [mergeStrategy, setMergeStrategy] = useState<'overwrite' | 'merge' | 'skip'>('merge');\n  const [initGit, setInitGit] = useState(true);\n  const [excludePatterns, setExcludePatterns] = useState<string[]>(['.git/**', 'node_modules/**']);\n  const [newExcludePattern, setNewExcludePattern] = useState('');\n\n  const handleTemplateToggle = (templateId: string) => {\n    setSelectedTemplates(prev =>\n      prev.includes(templateId)\n        ? prev.filter(id => id !== templateId)\n        : [...prev, templateId]\n    );\n  };\n\n  const handleAddExcludePattern = () => {\n    if (newExcludePattern.trim() && !excludePatterns.includes(newExcludePattern.trim())) {\n      setExcludePatterns([...excludePatterns, newExcludePattern.trim()]);\n      setNewExcludePattern('');\n    }\n  };\n\n  const handleRemoveExcludePattern = (pattern: string) => {\n    setExcludePatterns(excludePatterns.filter(p => p !== pattern));\n  };\n\n  const handleCreateProject = () => {\n    const selectedTemplateObjects = availableTemplates.filter(t => \n      selectedTemplates.includes(t.id)\n    );\n\n    const newProject: MobileRepositoryConfig = {\n      id: Date.now().toString(),\n      name: projectName,\n      path: projectPath,\n      templates: selectedTemplateObjects,\n      gitRemote: gitRemote || undefined,\n      excludePatterns,\n      mergeStrategy,\n      createdAt: new Date(),\n      updatedAt: new Date(),\n    };\n\n    dispatch(addProject(newProject));\n    \n    // Start the project creation process\n    dispatch(startProject({\n      id: newProject.id,\n      name: projectName,\n      status: 'pending',\n      progress: 0,\n      currentStep: 'Initializing project',\n      totalSteps: selectedTemplateObjects.length + (initGit ? 1 : 0),\n      errors: [],\n    }));\n\n    // Reset form\n    setProjectName('');\n    setProjectPath('');\n    setGitRemote('');\n    setSelectedTemplates([]);\n    setExcludePatterns(['.git/**', 'node_modules/**']);\n  };\n\n  const isFormValid = projectName.trim() && projectPath.trim() && selectedTemplates.length > 0;\n\n  return (\n    <ScrollView style={styles.container}>\n      <Card style={styles.card}>\n        <Card.Content>\n          <Title>Project Details</Title>\n          \n          <TextInput\n            label=\"Project Name\"\n            value={projectName}\n            onChangeText={setProjectName}\n            style={styles.input}\n            mode=\"outlined\"\n          />\n          \n          <TextInput\n            label=\"Project Path\"\n            value={projectPath}\n            onChangeText={setProjectPath}\n            style={styles.input}\n            mode=\"outlined\"\n            placeholder=\"/path/to/your/project\"\n          />\n          \n          <TextInput\n            label=\"Git Remote (optional)\"\n            value={gitRemote}\n            onChangeText={setGitRemote}\n            style={styles.input}\n            mode=\"outlined\"\n            placeholder=\"https://github.com/user/repo.git\"\n          />\n          \n          <View style={styles.switchContainer}>\n            <Title style={styles.switchLabel}>Initialize Git Repository</Title>\n            <Switch value={initGit} onValueChange={setInitGit} />\n          </View>\n        </Card.Content>\n      </Card>\n\n      <Card style={styles.card}>\n        <Card.Content>\n          <Title>Select Templates</Title>\n          {availableTemplates.map((template) => (\n            <List.Item\n              key={template.id}\n              title={template.name}\n              description={template.url}\n              left={() => (\n                <Checkbox\n                  status={selectedTemplates.includes(template.id) ? 'checked' : 'unchecked'}\n                  onPress={() => handleTemplateToggle(template.id)}\n                />\n              )}\n              onPress={() => handleTemplateToggle(template.id)}\n            />\n          ))}\n        </Card.Content>\n      </Card>\n\n      <Card style={styles.card}>\n        <Card.Content>\n          <Title>Merge Strategy</Title>\n          <SegmentedButtons\n            value={mergeStrategy}\n            onValueChange={(value) => setMergeStrategy(value as typeof mergeStrategy)}\n            buttons={[\n              { value: 'merge', label: 'Merge' },\n              { value: 'overwrite', label: 'Overwrite' },\n              { value: 'skip', label: 'Skip' },\n            ]}\n            style={styles.segmentedButtons}\n          />\n        </Card.Content>\n      </Card>\n\n      <Card style={styles.card}>\n        <Card.Content>\n          <Title>Exclude Patterns</Title>\n          \n          <View style={styles.addPatternContainer}>\n            <TextInput\n              label=\"Add exclude pattern\"\n              value={newExcludePattern}\n              onChangeText={setNewExcludePattern}\n              style={styles.patternInput}\n              mode=\"outlined\"\n              placeholder=\"*.log, temp/**, etc.\"\n            />\n            <IconButton\n              icon=\"plus\"\n              mode=\"contained\"\n              onPress={handleAddExcludePattern}\n              disabled={!newExcludePattern.trim()}\n            />\n          </View>\n          \n          <View style={styles.patternsContainer}>\n            {excludePatterns.map((pattern, index) => (\n              <Chip\n                key={index}\n                mode=\"outlined\"\n                onClose={() => handleRemoveExcludePattern(pattern)}\n                style={styles.patternChip}\n              >\n                {pattern}\n              </Chip>\n            ))}\n          </View>\n        </Card.Content>\n      </Card>\n\n      <View style={styles.buttonContainer}>\n        <Button\n          mode=\"contained\"\n          onPress={handleCreateProject}\n          disabled={!isFormValid}\n          style={styles.createButton}\n          contentStyle={styles.createButtonContent}\n        >\n          Create Project\n        </Button>\n      </View>\n    </ScrollView>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    backgroundColor: '#f5f5f5',\n    padding: 16,\n  },\n  card: {\n    marginBottom: 16,\n  },\n  input: {\n    marginBottom: 16,\n  },\n  switchContainer: {\n    flexDirection: 'row',\n    justifyContent: 'space-between',\n    alignItems: 'center',\n    marginBottom: 8,\n  },\n  switchLabel: {\n    fontSize: 16,\n  },\n  segmentedButtons: {\n    marginTop: 8,\n  },\n  addPatternContainer: {\n    flexDirection: 'row',\n    alignItems: 'flex-end',\n    marginBottom: 16,\n  },\n  patternInput: {\n    flex: 1,\n    marginRight: 8,\n  },\n  patternsContainer: {\n    flexDirection: 'row',\n    flexWrap: 'wrap',\n  },\n  patternChip: {\n    marginRight: 8,\n    marginBottom: 8,\n  },\n  buttonContainer: {\n    marginBottom: 32,\n  },\n  createButton: {\n    marginTop: 16,\n  },\n  createButtonContent: {\n    paddingVertical: 8,\n  },\n});"
		],
		"mappings": "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",
		"ignoreList": []
	},
	"metadata": {
		"hasCjsExports": false
	},
	"sourceType": "module",
	"externalDependencies": []
}