UNPKG

426 kBSource Map (JSON)View Raw
1{"version":3,"file":"bin.js","sources":["clean.js","add-to-map-set.js","morph/fonts.js","morph/react-dom/morph-font.js","morph/react-native/morph-fonts.js","relativise.js","fonts.js","is-view-custom.js","match-files.js","get-files.js","ensure-data.js","get-view-relative-to-view.js","ensure-flow.js","ensure-is-before.js","ensure-is-media.js","ensure-tools.js","make-get-system-import.js","morph/react/block-add-test-id-prop.js","morph/react/wrap.js","morph/react/safe.js","morph/get-unit.js","morph/utils.js","morph/react-dom/block-capture.js","morph/react/property-rest.js","morph/react/block-column.js","morph/react/block-explicit-children.js","morph/react-dom/block-go-to.js","morph/react/block-group.js","morph/react/block-in-list.js","morph/react/block-list.js","morph/react/block-maybe-skip.js","morph/react/block-name.js","morph/react/block-name-handle-table.js","morph/react-dom/get-block-name.js","morph/react-dom/block-name.js","morph/react/block-off-when.js","morph/react-dom/properties-class-name.js","morph/react-dom/properties-image.js","morph/react/properties-route.js","morph/react/properties-style.js","morph/react-dom/properties-style.js","morph/react/property-format.js","morph/react-dom/property-onclick-user-select.js","morph/react/property-ref.js","morph/react/property-style.js","morph/react/property-text.js","morph/react-dom/is-valid-property-for-block.js","morph/react-dom/block-properties.js","morph/react/block-proxy.js","morph/react/block-route.js","morph/react/block-set-test-id.js","morph/react/block-table.js","morph/react/block-teleport.js","morph/react-dom/block.js","morph/react-dom/get-style-for-property.js","morph/react-dom/get-styles.js","morph/react-dom/get-value-for-property.js","morph/react/make-get-import.js","morph/react-dom/maybe-uses-router.js","morph/react/restricted-names.js","morph/react/get-body.js","morph/react/get-default-props.js","morph/react/svg.js","morph/react/get-dependencies.js","morph/react/get-flatlist.js","morph/react/get-formatters.js","morph/react/get-locals.js","morph/react/to-component.js","morph/walk.js","morph/react-dom.js","morph/react-native/block-background-image.js","morph/react-native/block-capture.js","morph/react-native/get-block-name.js","morph/react-native/block-name.js","morph/react-native/properties-style.js","morph/react-native/is-valid-property-for-block.js","morph/react-native/block-properties.js","morph/react-native/block-svg.js","morph/react-native/block-wrap.js","morph/react-native/block.js","morph/react-native/get-style-for-property.js","morph/react-native/get-styles.js","morph/react-native/get-value-for-property.js","morph/react-native/maybe-uses-router.js","morph/react-native/maybe-uses-style-sheet.js","morph/react-native.js","morph/react-pdf.js","morphers.js","maybe-morph.js","morph-all-views.js","maybe-print-warnings.js","parse/prop-is-style.js","parse/did-you-mean.js","parse/prop-is-number.js","parse/helpers.js","parse/get-loc.js","parse/get-tags.js","parse/index.js","sort-sets-in-map.js","parse-views.js","process-view-custom-files.js","get-view-id-from-file.js","process-view-files.js","make-morpher.js","get-points-of-use.js","runCraWebpackDevServerUtils.js","runCraPaths.js","runCra.js","watch-files.js","watch.js","cli.js"],"sourcesContent":["import { promises as fs } from 'fs'\nimport deleteEmpty from 'delete-empty'\nimport glob from 'fast-glob'\nimport path from 'path'\n\nexport default async function clean(src, verbose) {\n let morphed = await glob(\n [\n '**/*.view.js',\n `Fonts/*.js`,\n 'useFlow.js',\n 'useIsMedia.js',\n 'useIsBefore.js',\n 'useTools.js',\n ],\n {\n bashNative: ['linux'],\n cwd: src,\n ignore: ['*node_modules*'],\n }\n )\n\n await Promise.all(\n morphed.map(f => {\n verbose && console.log(`x ${f}`)\n return fs.unlink(path.join(src, f))\n })\n )\n\n let deleted = await deleteEmpty(src)\n if (verbose) {\n deleted.forEach(d => console.log(`x ${d}`))\n }\n}\n","export default function addToMapSet(map, key, value) {\n if (!map.has(key)) {\n map.set(key, new Set())\n }\n map.get(key).add(value)\n}\n","import list from 'google-fonts-complete/api-response.json'\n\nlet getWeights = variants =>\n variants\n .filter(v => !v.includes('italic'))\n .map(v => (v === 'regular' ? 400 : v))\n\nlet all = list.map(font => ({\n category: font.category,\n value: font.family,\n weights: getWeights(font.variants),\n}))\n\nlet byName = {}\nall.forEach(f => (byName[f.value] = f))\n\nexport let fontFamily = all.map(f => f.value)\n\nexport let isGoogleFont = family => !!byName[family]\n\nexport let maybeAddFallbackFont = f => {\n let font = byName[f]\n\n return font && font.category ? `${f}, ${font.category}` : f\n}\n","import { isGoogleFont } from '../fonts.js'\n\nexport default (font, sources) => {\n let body\n\n if (isGoogleFont(font.family)) {\n body = `injectGlobal(\"@import url('https://fonts.googleapis.com/css?family=${font.family.replace(\n /\\s/g,\n '+'\n )}:${font.weight}${font.style === 'italic' ? 'i' : ''}');body{}\")`\n } else {\n body = `${sources\n .map(src => `import ${src.type} from '${src.file}'`)\n .join('\\n')}\n\ninjectGlobal(\\`@font-face {\n font-family: '${font.family}';\n font-style: ${font.style};\n font-weight: ${font.weight};\n src: ${sources\n .map(src => `url(\\${${src.type}}) format('${src.type}')`)\n .join(', ')};\n}\\`)`\n }\n\n return `import { injectGlobal } from 'emotion'\\n${body}`\n}\n","export default (font, sources) => {\n // TODO implement\n return `export default \"${font.id}\"`\n\n // let body = `export default {\\n`\n // fonts.forEach(font => {\n // body += `${sources\n // .map(src => `'${font.id}': require('./${src.file}'),\\n`)\n // .join(',')}`\n // })\n // return `${body}}`\n}\n","import path from 'path'\n\nexport default function relativise(from, to) {\n let r = path.relative(from, to).replace(/\\\\/g, '/')\n return r.substr(r.startsWith('../..') ? 3 : 1)\n}\n","import { promises as fs } from 'fs'\nimport addToMapSet from './add-to-map-set.js'\nimport morphFontAsReactDom from './morph/react-dom/morph-font.js'\nimport morphFontAsReactNative from './morph/react-native/morph-fonts.js'\nimport path from 'path'\nimport sort from 'bubblesort'\nimport relativise from './relativise.js'\n\nlet morphFont = {\n 'react-dom': morphFontAsReactDom,\n 'react-native': morphFontAsReactNative,\n 'react-pdf': morphFontAsReactNative,\n}\n\nexport async function ensureFontsDirectory(src) {\n let fontsDirectory = path.join(src, 'Fonts')\n\n try {\n await fs.mkdir(fontsDirectory)\n } catch (error) {}\n}\n\nexport let getFontId = file => path.basename(file, path.extname(file))\n\nlet fontsOrder = ['eot', 'woff2', 'woff', 'ttf', 'svg', 'otf']\n\nlet sortFonts = fonts => {\n return new Set(\n sort(\n [...fonts],\n (a, b) => fontsOrder.indexOf(b.type) - fontsOrder.indexOf(a.type)\n )\n )\n}\n\nexport function processCustomFonts({ customFonts, filesFontCustom }) {\n for (let file of filesFontCustom) {\n addToMapSet(customFonts, getFontId(file), file)\n }\n for (let [id, fonts] of customFonts) {\n customFonts.set(id, sortFonts(fonts))\n }\n}\n\nexport function morphAllFonts({\n as,\n customFonts,\n filesView,\n src,\n viewsToFiles,\n}) {\n let fontsDirectory = path.join(src, 'Fonts')\n let fontsInUse = new Set()\n\n let mapCustomFont = file => ({\n type: FONT_TYPES[path.extname(file)],\n file: file.replace(fontsDirectory, '.'),\n })\n\n for (let file of filesView) {\n let view = viewsToFiles.get(file)\n\n if (view.custom) continue\n\n view.parsed.fonts.forEach(font => {\n fontsInUse.add(font.id)\n })\n }\n\n return [...fontsInUse].map(font => {\n let [family, weight, style = 'normal'] = font.split('-')\n\n let customFontSources = []\n if (customFonts.has(font)) {\n customFontSources = [...customFonts.get(font)].map(mapCustomFont)\n }\n\n return {\n file: path.join(src, 'Fonts', `${font}.js`),\n content: morphFont[as](\n {\n id: font,\n family,\n style,\n weight,\n },\n customFontSources\n ),\n }\n })\n}\n\n// let removeFont = file => {\n// let id = getFontId(file)\n// instance.customFonts = instance.customFonts.filter(font => font.id !== id)\n// }\n\nlet FONT_TYPES = {\n '.otf': 'opentype',\n '.eot': 'eot',\n '.svg': 'svg',\n '.ttf': 'truetype',\n '.woff': 'woff',\n '.woff2': 'woff2',\n}\n\nexport let makeGetFontImport = src => (font, view) =>\n `import \"${relativise(view.file, path.join(src, 'Fonts', `${font}.js`))}\"`\n\n// let isFont = f => Object.keys(FONT_TYPES).includes(path.extname(f))\n","export default source => /^\\/\\/ @view/.test(source)\n","import getFirstLine from 'firstline'\nimport isViewCustom from './is-view-custom.js'\nimport mm from 'micromatch'\n\nexport let PATTERNS = {\n filesView: {\n match: ['**/*.view'],\n },\n filesViewLogic: {\n match: ['**/*.view.logic.js'],\n },\n filesViewCustom: {\n match: ['**/*.js'],\n ignore: ['**/*.view.logic.js'],\n filter: async files => {\n let filesFirstLine = await Promise.all(\n files.map(async file => [file, await getFirstLine(file)])\n )\n\n return filesFirstLine\n .filter(([, firstLine]) => isViewCustom(firstLine))\n .map(([file]) => file)\n },\n },\n filesFontCustom: {\n match: [\n '**/Fonts/*.eot',\n '**/Fonts/*.otf',\n '**/Fonts/*.ttf',\n '**/Fonts/*.svg',\n '**/Fonts/*.woff',\n '**/Fonts/*.woff2',\n ],\n },\n}\n\n// @ts-ignore\nexport let isViewFile = async file => mm.isMatch(file, PATTERNS.filesView.match)\nexport let isViewLogicFile = async file =>\n // @ts-ignore\n mm.isMatch(file, PATTERNS.filesViewLogic.match)\nexport let isViewCustomFile = async file =>\n // @ts-ignore\n mm.isMatch(file, PATTERNS.filesViewCustom.match) &&\n (await PATTERNS.filesViewCustom.filter([file])).length > 0\nexport let isFontCustomFile = async file =>\n // @ts-ignore\n mm.isMatch(file, PATTERNS.filesFontCustom.match)\n\nexport let MATCH = Object.values(PATTERNS)\n .map(item => item.match)\n .flat()\n\nexport async function getMatchesPerPattern(files) {\n // @ts-ignore\n return Object.fromEntries(\n await Promise.all(\n Object.entries(PATTERNS).map(async ([key, { filter, match, ignore }]) => {\n let matches = mm(files, match, { ignore })\n if (typeof filter === 'function') {\n matches = await filter(matches)\n }\n return [key, new Set(matches)]\n })\n )\n )\n}\n","import { getMatchesPerPattern, MATCH } from './match-files.js'\nimport glob from 'fast-glob'\n\nexport default async function getFiles(src) {\n let files = await glob(MATCH, {\n absolute: true,\n cwd: src,\n ignore: ['**/node_modules/**', '**/*.view.js'],\n })\n\n return await getMatchesPerPattern(files)\n}\n","import path from 'path'\n\nlet USE_DATA = `// This file is automatically generated by Views and will be overwritten\n// when the morpher runs. If you want to contribute to how it's generated, eg,\n// improving the algorithms inside, etc, see this:\n// https://github.com/viewstools/morph/blob/master/ensure-data.js\nimport * as fromValidate from './Data/validators.js';\nimport get from 'lodash/get';\nimport produce from 'immer';\nimport set from 'lodash/set';\nimport React, { useContext, useEffect, useMemo, useReducer, useRef } from 'react';\nimport parseDate from 'date-fns/parse';\nimport parseISO from 'date-fns/parseISO';\nimport formatDate from 'date-fns/format';\nimport isValidDate from 'date-fns/isValid';\n\nlet identity = { in: i => i, out: i => i };\n\n// show\nlet ItemContext = React.createContext({});\nexport let ItemProvider = ItemContext.Provider;\nexport let useItem = ({ path = null, format = identity } = {}) => {\n let item = useContext(ItemContext);\n\n return useMemo(() => (path ? { value: format.in(get(item, path)) } : item), [\n item,\n path,\n format,\n ]); // eslint-ignore-line\n // ignore get\n};\n\n// capture\nlet captureItemReducer = produce((draft, action) => {\n switch (action.type) {\n case CAPTURE_SET_FIELD: {\n set(draft, action.key, action.value);\n break;\n }\n\n case CAPTURE_RESET: {\n return action.state;\n }\n\n case CAPTURE_FORCE_REQUIRED: {\n draft._forceRequired = true;\n break;\n }\n\n default: {\n throw new Error(\n \\`Unknown action type \"\\${action.type}\" in update item reducer.\\`\n );\n }\n }\n});\nlet CAPTURE_SET_FIELD = 'capture/SET_FIELD';\nexport let setField = (key, value) => ({\n type: CAPTURE_SET_FIELD,\n key,\n value,\n});\nlet CAPTURE_RESET = 'capture/RESET';\nexport let reset = state => ({ type: CAPTURE_RESET, state });\n\nlet CAPTURE_FORCE_REQUIRED = 'capture/FORCE_REQUIRED';\n\nlet CaptureItemContext = React.createContext([]);\nexport let CaptureItemProvider = CaptureItemContext.Provider;\nexport let useCaptureItem = ({\n path = null, format = identity, validate = null, required = false\n} = {}) => {\n let captureItem = useContext(CaptureItemContext);\n let touched = useRef(false);\n\n if (process.env.NODE_ENV === 'development') {\n if (validate && !(validate in fromValidate)) {\n throw new Error(\n \\`\"\\${validate}\" function doesn't exist or is not exported in Data/validators.js\\`\n );\n }\n }\n\n return useMemo(() => {\n if (!path) return captureItem;\n\n let [item, dispatch, onSubmit] = captureItem;\n\n if (!item) {\n if (process.env.NODE_ENV === 'development') {\n console.error(\n 'Check that you have <CaptureItemProvider value={captureData}> in the component that defines the data for this story.'\n );\n console.log({\n path,\n format,\n validate,\n required,\n captureItem,\n });\n }\n return {};\n }\n\n let rawValue = get(item, path);\n let value = format.in(rawValue);\n\n let isValid =\n validate && (touched.current || (required && item._forceRequired))\n ? fromValidate[validate](rawValue, value)\n : true;\n let onChange = value => {\n touched.current = true;\n dispatch(setField(path, format.out(value)));\n }\n\n return {\n onChange,\n onSubmit,\n value,\n isValid,\n isInvalid: !isValid\n };\n }, [captureItem, path, format, required, validate]);\n};\nexport let useCaptureItemProvider = (item, onSubmit) => {\n let [state, dispatch] = useReducer(captureItemReducer, item);\n let isSubmitting = useRef(false);\n\n useEffect(() => {\n dispatch(reset(item));\n }, [item]);\n\n return useMemo(() => {\n async function _onSubmit(options) {\n if (isSubmitting.current) return;\n isSubmitting.current = true;\n\n try {\n let res = await onSubmit(options)\n isSubmitting.current = false;\n\n if (!res) return;\n } catch(error) {\n isSubmitting.current = false;\n }\n\n dispatch({ type: CAPTURE_FORCE_REQUIRED });\n }\n return [state, dispatch, _onSubmit];\n }, [\n state,\n dispatch,\n onSubmit,\n ]);\n};\n\nfunction formatDateInOut(rvalue, formatIn, formatOut, whenInvalid = '') {\n let value =\n formatIn === 'iso'\n ? parseISO(rvalue)\n : parseDate(rvalue, formatIn, new Date());\n return isValidDate(value) ? formatDate(value, formatOut) : whenInvalid;\n}\n\nexport let useMakeFormatDate = (formatIn, formatOut, whenInvalid) =>\n useMemo(\n () => ({\n in: value => formatDateInOut(value, formatIn, formatOut, whenInvalid),\n out: value => formatDateInOut(value, formatOut, formatIn, whenInvalid),\n }),\n [] // eslint-disable-line\n ); // ignore formatIn, formatouOut, whenInvalid\n`\n\nexport default function ensureIsBefore({ src }) {\n return { file: path.join(src, 'useData.js'), content: USE_DATA }\n}\n","import path from 'path'\n\nexport default function getViewRelativeToView({\n id,\n view,\n viewsById,\n viewsToFiles,\n}) {\n let importCandidates = viewsById.get(id)\n if (!importCandidates) {\n // TODO add better error message\n console.log('No import candidates for ', id, 'from', view.file)\n importCandidates = new Set()\n }\n let importViewFile = [...importCandidates][0]\n if (importCandidates.size > 1) {\n let pathToView = view.file.replace(/\\.view$/, '')\n\n let maybeFileViewInside = path\n .join(pathToView, `${id}.view`)\n .replace(/\\\\/g, '/')\n let maybeFileViewCustomInside = path\n .join(pathToView, `${id}.js`)\n .replace(/\\\\/g, '/')\n if (importCandidates.has(maybeFileViewInside)) {\n importViewFile = maybeFileViewInside\n } else if (importCandidates.has(maybeFileViewCustomInside)) {\n importViewFile = maybeFileViewCustomInside\n }\n }\n\n return viewsToFiles.get(importViewFile)\n}\n","import getViewRelativeToView from './get-view-relative-to-view.js'\nimport prettier from 'prettier'\nimport path from 'path'\n\nfunction ensureFirstStoryIsOn(flow, key, stories) {\n if (!stories.has(key)) return\n\n let story = flow.get(key)\n if (story && story.stories.size > 0) {\n let index = 0\n for (let id of story.stories) {\n if (index === 0 || !story.isSeparate) {\n stories.add(id)\n }\n index++\n ensureFirstStoryIsOn(flow, id, stories)\n }\n }\n}\n\nfunction getTopStory(flow) {\n for (let [key, value] of flow) {\n if (value.parent === '') return key\n }\n}\n\nlet makeFlow = ({ tools, viewsById, viewsToFiles }) => {\n let flowMap = new Map()\n let flowMapStr = []\n\n for (let view of viewsToFiles.values()) {\n if (!view || view.custom || !view.parsed.view.isStory) continue\n\n let states = []\n for (let id of view.parsed.view.views) {\n let viewInView = getViewRelativeToView({\n id,\n view,\n viewsById,\n viewsToFiles,\n })\n\n if (viewInView && !viewInView.custom && viewInView.parsed.view.isStory) {\n states.push(viewInView.parsed.view.pathToStory) // `${pathToViewId}/${id}`)\n }\n }\n\n let isSeparate = view.parsed.view.flow === 'separate'\n let parent = view.parsed.view.pathToStory.replace(\n new RegExp(`/${view.id}$`),\n ''\n )\n\n flowMapStr.push(\n `[\"${view.parsed.view.pathToStory}\", {\n parent: \"${parent}\",\n isSeparate: ${isSeparate},\n stories: new Set(${states.length > 0 ? JSON.stringify(states) : ''})\n }]`\n )\n flowMap.set(view.parsed.view.pathToStory, {\n parent,\n isSeparate,\n stories: new Set(states),\n })\n }\n\n let topStory = getTopStory(flowMap)\n let initialState = new Set([topStory])\n ensureFirstStoryIsOn(flowMap, topStory, initialState)\n\n return `// This file is automatically generated by Views and will be overwritten\n// when the morpher runs. If you want to contribute to how it's generated, eg,\n// improving the algorithms inside, etc, see this:\n// https://github.com/viewstools/morph/blob/master/ensure-flow.js\n\nimport React, { useCallback, useContext, useEffect, useState } from 'react'\n${tools ? \"import useTools from './useTools.js'\" : ''}\n\nlet GetFlow = React.createContext(new Set())\nlet SetFlow = React.createContext(() => {})\n\nexport let useFlow = () => useContext(GetFlow)\nexport let useSetFlow = () => useContext(SetFlow)\n\nexport let flow = new Map([${flowMapStr.join(', ')}])\n\nlet TOP_STORY = \"${topStory}\"\n\nfunction ensureFirstStoryIsOn(key, stories) {\n if (!stories.has(key)) return\n\n let story = flow.get(key)\n if (story.stories.size > 0) {\n let index = 0\n let canAdd = intersection(stories, story.stories).size === 0\n for (let id of story.stories) {\n if ((canAdd && index === 0) || !story.isSeparate) {\n stories.add(id)\n }\n index++\n ensureFirstStoryIsOn(id, stories)\n }\n }\n}\n\nfunction ensureParents(key, stories) {\n let story = flow.get(key)\n if (!story.parent) return\n\n stories.add(story.parent)\n ensureParents(story.parent, stories)\n}\n\nfunction getAllChildrenOf(key, children) {\n if (!flow.has(key)) return\n\n let story = flow.get(key)\n for (let id of story.stories) {\n children.add(id)\n getAllChildrenOf(id, children)\n }\n}\n\n\nlet intersection = (a, b) => new Set([...a].filter(ai => b.has(ai)))\nlet difference = (a, b) => new Set([...a].filter(ai => !b.has(ai)))\n\nfunction getNextFlow(key, state) {\n if (state.has(key)) return state\n\n let next = new Set([key])\n\n ensureFirstStoryIsOn(key, next)\n ensureParents(key, next)\n\n let diffIn = difference(next, state)\n let diffOut = new Set()\n\n difference(state, next).forEach(id => {\n let story = flow.get(id)\n if (state.has(story.parent)) {\n let parent = flow.get(story.parent)\n if (intersection(parent.stories, diffIn).size > 0) {\n diffOut.add(id)\n let children = new Set()\n getAllChildrenOf(id, children)\n children.forEach(cid => diffOut.add(cid))\n }\n }\n })\n\n let nextState = new Set([...difference(state, diffOut), ...diffIn])\n ensureFirstStoryIsOn(TOP_STORY, nextState)\n return new Set([...nextState].sort())\n}\n\nexport function Flow(props) {\n let [state, setState] = useState(${\n tools ? 'new Set()' : 'props.initialState'\n })\n ${\n tools\n ? `let [maybeInitialState, sendToTools] = useTools(setState)\nuseEffect(() => setState(maybeInitialState || props.initialState), []) // eslint-disable-line`\n : ''\n }\n\n let setFlow = useCallback(\n id => {\n if (process.env.NODE_ENV === 'development') {\n console.debug('setFlow', id)\n\n if (!flow.has(id)) {\n console.log('Stories', flow)\n throw new Error(\n \\`Story \"$\\{id}\" doesn't exist. See the valid stories logged above this error.\\`\n )\n }\n }\n\n setState(state => getNextFlow(id, state))\n },\n []\n )\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'development') {\n if (state.size > 0) {\n console.debug('flow', state)\n ${tools ? \"sendToTools({ type: 'client:flow', flow: [...state] })\" : ''}\n }\n }\n }, [state${tools ? ', sendToTools' : ''}])\n\n return (\n <SetFlow.Provider value={setFlow}>\n <GetFlow.Provider value={state}>{props.children}</GetFlow.Provider>\n </SetFlow.Provider>\n )\n}\n\nFlow.defaultProps = {\n initialState: new Set(${JSON.stringify([...initialState], null, ' ')})\n}`\n}\n\nexport default function ensureFlow({ src, tools, viewsById, viewsToFiles }) {\n return {\n file: path.join(src, 'useFlow.js'),\n content: prettier.format(makeFlow({ tools, viewsById, viewsToFiles }), {\n parser: 'babel',\n singleQuote: true,\n trailingComma: 'es5',\n }),\n }\n}\n","import path from 'path'\n\nlet USE_IS_BEFORE = `// This file is automatically generated by Views and will be overwritten\n// when the morpher runs. If you want to contribute to how it's generated, eg,\n// improving the algorithms inside, etc, see this:\n// https://github.com/viewstools/morph/blob/master/ensure-is-before.js\nimport { useEffect, useState } from 'react'\n\nexport default function useIsBefore() {\n let [isBefore, setIsBefore] = useState(true)\n\n useEffect(function() {\n let cancel = false\n requestAnimationFrame(function() {\n if (cancel) return\n setIsBefore(false)\n })\n return () => cancel = true\n }, [])\n\n return isBefore\n}`\n\nexport default function ensureIsBefore({ src }) {\n return {\n file: path.join(src, 'useIsBefore.js'),\n content: USE_IS_BEFORE,\n }\n}\n","import { promises as fs } from 'fs'\nimport path from 'path'\nimport prettier from 'prettier'\n\nlet makeUseIsMedia = media => `// This file is automatically generated by Views and will be overwritten\n// when the morpher runs. If you want to contribute to how it's generated, eg,\n// improving the algorithms inside, etc, see this:\n// https://github.com/viewstools/morph/blob/master/ensure-is-media.js\n\nimport { useMedia } from 'use-media';\n\nlet useIsMedia = () => ({\n ${media\n .map(({ name, minWidth, maxWidth }) => {\n let ret = [`\"${name}\": useMedia({ minWidth: ${minWidth}`]\n if (maxWidth) {\n ret.push(`, maxWidth: ${maxWidth}`)\n }\n ret.push('})')\n return ret.join('')\n })\n .join(',')}\n})\nexport default useIsMedia`\n\nasync function getMediaConfig(src) {\n let media = {\n mobile: {\n width: 414,\n },\n tablet: {\n width: 1024,\n },\n laptop: {\n width: 1280,\n },\n }\n try {\n media = JSON.parse(\n await fs.readFile(\n path.resolve(path.join(src, '..', 'app.viewstools')),\n 'utf8'\n )\n ).media\n delete media.base\n } catch (error) {}\n\n return Object.entries(media)\n .sort((a, b) => a[1].width - b[1].width)\n .map(([name, item], index, list) => ({\n name,\n minWidth: index === 0 ? 0 : list[index - 1][1].width + 1,\n maxWidth:\n index === 0\n ? item.width\n : index === list.length - 1\n ? null\n : item.width,\n }))\n}\n\nexport default async function ensureIsMedia({ src }) {\n return {\n file: path.join(src, 'useIsMedia.js'),\n content: prettier.format(makeUseIsMedia(await getMediaConfig(src)), {\n parser: 'babel',\n singleQuote: true,\n trailingComma: 'es5',\n }),\n }\n}\n","import fsExtra from 'fs-extra'\nimport path from 'path'\n\nlet TOOLS_FILE = `let warnedAboutMissingOut = false\n\nexport default function useTools() {\n if (!warnedAboutMissingOut) {\n warnedAboutMissingOut = true\n\n console.log(\\`\n\n\n\n 😱😱😱😱😱😱😱😱😱😱😱\n\n\n\n 🚨 You're missing out!!!\n\n 🚀 Views Tools can help you find product market fit before you run out of money.\n\n ✨ Find out how 👉 https://views.tools\n\n\n\n\n\n \\`)\n }\n\n return [null, () => {}]\n}`\n\nexport default async function ensureTools({ src }) {\n let file = path.join(src, 'useTools.js')\n\n if ((await fsExtra.exists(file)) && process.env.REACT_APP_VIEWS_TOOLS)\n return null\n\n return { file, content: TOOLS_FILE }\n}\n","import relativise from './relativise.js'\nimport path from 'path'\n\nlet FILE_USE_IS_BEFORE = 'useIsBefore.js'\nlet FILE_USE_IS_MEDIA = 'useIsMedia.js'\nlet FILE_USE_DATA = 'useData.js'\nlet FILE_USE_FLOW = 'useFlow.js'\nlet FILE_LOCAL_CONTAINER = 'LocalContainer.js'\nlet FILE_TRACK_CONTEXT = 'TrackContext.js'\n\nexport default function makeGetSystemImport(src) {\n return function getSystemImport(id, file) {\n switch (id) {\n case 'Column':\n // Column is imported from react-virtualized\n break\n\n case 'ViewsUseIsMedia':\n return `import useIsMedia from '${relativise(\n file,\n path.join(src, FILE_USE_IS_MEDIA)\n )}'`\n\n case 'ViewsUseIsBefore':\n return `import useIsBefore from '${relativise(\n file,\n path.join(src, FILE_USE_IS_BEFORE)\n )}'`\n\n case 'ViewsUseData':\n return `import * as fromData from '${relativise(\n file,\n path.join(src, FILE_USE_DATA)\n )}'`\n\n case 'ViewsUseFlow':\n return `import * as fromFlow from '${relativise(\n file,\n path.join(src, FILE_USE_FLOW)\n )}'`\n\n case 'LocalContainer':\n return `import LocalContainer from '${relativise(\n file,\n path.join(src, FILE_LOCAL_CONTAINER)\n )}'`\n\n case 'TrackContext':\n return `import { TrackContext } from '${relativise(\n file,\n path.join(src, FILE_TRACK_CONTEXT)\n )}'`\n\n default:\n return false\n }\n }\n}\n","export let enter = (node, parent, state) => {\n if (node.isFragment) return\n\n let value\n if (parent) {\n value = `\"${state.name}.${node.testId}\"`\n } else {\n value = `{\\`\\${props['${state.testIdKey}'] || '${node.testId}'}\\`}`\n }\n\n state.render.push(` ${state.testIdKey}=${value}`)\n}\n","export default s => `{${s}}`\n","import { isSlot } from '../utils.js'\nimport wrap from './wrap.js'\n\nexport default value =>\n typeof value === 'string' && !isSlot(value)\n ? JSON.stringify(value)\n : wrap(value)\n","let IS_INT = /^([0-9]+)(.*)$/\nlet IS_FLOAT = /^([0-9]+\\.[0-9]+)(.*)$/\n\nlet MULTIPLE_BY_FONT_SIZE = 'x font size'\nlet PIXEL = 'px'\nlet PERCENTAGE = '%'\nlet EM = 'em'\nlet REM = 'rem'\nlet VW = 'vw'\nlet VH = 'vh'\n\nlet DEGREES = 'deg'\nlet GRADIANS = 'grad'\nlet RADIANS = 'rad'\nlet TURN = 'turn'\n\nlet getUnit = node => {\n let units = getUnits(node.name)\n\n if (typeof node.value === 'number') return units[0] || ''\n\n let match = node.value.match(IS_INT.test(node.value) ? IS_INT : IS_FLOAT)\n return (match && units.find(u => u === match[2])) || units[0] || ''\n}\nexport default getUnit\n\nlet LENGTH = [PIXEL, PERCENTAGE, EM, REM, VW, VH]\nlet PERCENTAGE_FIRST_LENGTH = [PERCENTAGE, PIXEL, EM, REM, VW, VH]\nlet MULTIPLE_BY_FONT_SIZE_LENGTH = [\n MULTIPLE_BY_FONT_SIZE,\n PIXEL,\n PERCENTAGE,\n EM,\n REM,\n VW,\n VH,\n]\nlet ANGLE = [DEGREES, GRADIANS, RADIANS, TURN]\nlet UNITLESS = []\n\nlet UNITS = {\n blurRadius: LENGTH,\n borderBottomLeftRadius: LENGTH,\n borderBottomRightRadius: LENGTH,\n borderBottomWidth: LENGTH,\n borderLeftWidth: LENGTH,\n borderRadius: LENGTH,\n borderRightWidth: LENGTH,\n borderTopLeftRadius: LENGTH,\n borderTopRightRadius: LENGTH,\n borderTopWidth: LENGTH,\n borderWidth: LENGTH,\n bottom: LENGTH,\n flexBasis: PERCENTAGE_FIRST_LENGTH,\n flexGrow: UNITLESS,\n flexShrink: UNITLESS,\n fontSize: LENGTH,\n height: LENGTH,\n left: LENGTH,\n letterSpacing: UNITLESS,\n lineHeight: MULTIPLE_BY_FONT_SIZE_LENGTH,\n margin: LENGTH,\n marginBottom: LENGTH,\n marginLeft: LENGTH,\n marginRight: LENGTH,\n marginTop: LENGTH,\n maxHeight: LENGTH,\n maxWidth: LENGTH,\n minHeight: LENGTH,\n minWidth: LENGTH,\n offsetX: LENGTH,\n offsetY: LENGTH,\n opacity: UNITLESS,\n outline: LENGTH,\n padding: LENGTH,\n paddingBottom: LENGTH,\n paddingLeft: LENGTH,\n paddingRight: LENGTH,\n paddingTop: LENGTH,\n right: LENGTH,\n rotate: ANGLE,\n rotateX: ANGLE,\n rotateY: ANGLE,\n scale: UNITLESS,\n scaleX: UNITLESS,\n scaleY: UNITLESS,\n shadowOffsetY: LENGTH,\n shadowOffsetX: LENGTH,\n shadowBlur: LENGTH,\n shadowSpread: LENGTH,\n skew: ANGLE,\n spreadRadius: LENGTH,\n top: LENGTH,\n translateX: LENGTH,\n translateY: LENGTH,\n width: LENGTH,\n wordSpacing: LENGTH,\n zIndex: UNITLESS,\n}\nlet UNITS_KEYS = Object.keys(UNITS)\n\nlet getUnits = key => {\n let found = UNITS_KEYS.find(ukey => key.startsWith(ukey))\n return UNITS[found] || UNITLESS\n}\n","import flatten from 'flatten'\nimport safe from './react/safe.js'\nimport toCamelCase from 'to-camel-case'\nimport toSlugCase from 'to-slug-case'\nimport wrap from './react/wrap.js'\nimport getUnit from './get-unit.js'\n\nlet safeScope = value =>\n typeof value === 'string' && !isSlot(value) ? JSON.stringify(value) : value\n\nexport let checkParentStem = (node, styleKey) => {\n if (\n styleKey !== 'isHovered' ||\n styleKey !== 'isDisabled' ||\n styleKey !== 'isSelected' ||\n !node.parent\n )\n return false\n\n let matchingParentStem = node.parent.scopes.some(\n scope => scope.value === styleKey\n )\n\n return matchingParentStem && (node.parent.is || node.parent.name)\n}\n\nlet INTERPOLATION = /\\${(.+)}/\nexport let isInterpolation = str => INTERPOLATION.test(str)\nexport let deinterpolate = str => {\n let match = str.match(INTERPOLATION)\n return match ? match[1] : str\n}\n\nexport let getObjectAsString = obj =>\n Array.isArray(obj)\n ? `[${obj.map(getObjectAsString)}]`\n : wrap(\n Object.keys(obj)\n .map(k => {\n let v =\n typeof obj[k] === 'object' && hasKeys(obj[k])\n ? getObjectAsString(obj[k])\n : obj[k]\n return `${JSON.stringify(k)}: ${v}`\n })\n .join(',')\n )\n\nexport let getPropertiesAsObject = list => {\n let obj = {}\n\n list.forEach(prop => {\n obj[prop.name] = safeScope(prop.value)\n })\n\n return getObjectAsString(obj)\n}\n\nexport let getProp = (node, key) => {\n let finder =\n typeof key === 'string' ? p => p.name === key : p => key.test(p.name)\n\n return node.properties && node.properties.find(finder)\n}\n\nexport let getPropValueOrDefault = (node, key, defaultValue) => {\n return hasProp(node, key) ? getProp(node, key).value : defaultValue\n}\n\nexport let getScope = node => node.value.split('when ')[1]\n\nlet getScopedProps = (propNode, blockNode) => {\n let scopes = blockNode.scopes\n .filter(scope => !scope.isSystem && !scope.isLocal)\n .map(scope => {\n let prop = scope.properties.find(prop => prop.name === propNode.name)\n return prop && { prop, when: scope.value }\n })\n .filter(Boolean)\n .reverse()\n\n if (isEmpty(scopes)) return false\n\n return scopes\n}\n\nlet getScopedConditionPropValue = node => {\n let value = null\n\n if (node.tags.slot) {\n value = node.value\n } else if (typeof node.value === 'string') {\n value = safe(node.value)\n } else {\n let unit = getUnit(node)\n value = unit ? `\"${node.value}${unit}\"` : node.value\n }\n\n return value\n}\n\nexport let getScopedCondition = (propNode, blockNode) => {\n let scopedProps = getScopedProps(propNode, blockNode)\n\n if (!scopedProps) return false\n\n let conditional = getScopedConditionPropValue(propNode)\n scopedProps.forEach(scope => {\n conditional = `${scope.when} ? ${getScopedConditionPropValue(\n scope.prop\n )} : ${conditional}`\n })\n\n let lastScope = scopedProps[scopedProps.length - 1]\n\n if (\n !lastScope.prop.animation ||\n lastScope.prop.animation.curve !== 'spring'\n ) {\n lastScope.prop.conditional = conditional\n }\n\n return conditional\n}\n\nexport let getScopedImageCondition = (scopes, scopedNames, defaultName) => {\n let conditional = defaultName\n\n scopes.forEach((scope, index) => {\n conditional = `${scope.when} ? ${scopedNames[index]} : ` + conditional\n })\n\n return conditional\n}\n\nlet styleStems = [\n 'isHovered',\n 'isFocused',\n 'isPlaceholder',\n 'isDisabled',\n 'isSelected',\n]\nexport let getStyleType = node =>\n styleStems.find(tag => isTag(node, tag)) || 'base'\nexport let hasKeys = obj => Object.keys(obj).length > 0\nexport let hasKeysInChildren = obj =>\n Object.keys(obj).some(k => hasKeys(obj[k]))\n\nexport let hasProp = (node, key, match) => {\n let prop = getProp(node, key)\n if (!prop) return false\n return typeof match === 'function' ? match(prop.value) : true\n}\n\nexport let hasDefaultProp = (node, parent) =>\n parent.properties.some(prop => prop.nameRaw === node.nameRaw)\n\nexport let isSlot = node =>\n typeof node === 'string'\n ? /(props|isBefore|isMedia\\.)/.test(node)\n : isTag(node, 'slot')\nexport let isStyle = node => isTag(node, 'style')\nexport let isRowStyle = node => isTag(node, 'rowStyle')\nexport let isTag = (node, tag) => node && node.tags[tag]\n\nexport let getActionableParent = node => {\n if (!node.parent) return false\n if (node.parent.action) return node.parent\n return getActionableParent(node.parent)\n}\n\nexport let getAllowedStyleKeys = node => {\n if (node.isCapture) {\n return ['base', 'isFocused', 'isHovered', 'isDisabled', 'isPlaceholder']\n } else if (node.action || isTable(node) || getActionableParent(node)) {\n return ['base', 'isFocused', 'isHovered', 'isDisabled', 'isSelected']\n }\n return ['base', 'isFocused']\n}\n\nexport let isList = node =>\n node && node.type === 'Block' && node.name === 'List'\n\nexport let isCell = node => node.properties.some(prop => prop.name === 'isCell')\n\nexport let isHeader = node =>\n node.properties.some(prop => prop.name === 'isHeader')\n\nexport let isColumn = node =>\n node && node.type === 'Block' && node.name === 'Column'\n\nexport let isTable = node =>\n node && node.type === 'Block' && node.name === 'Table'\n\nexport let isEmpty = list => list.length === 0\n\nexport let isValidImgSrc = (node, parent) =>\n node.name === 'source' && parent.name === 'Image' && parent.isBasic\n\nexport let pushImageToState = (state, scopedNames, paths) =>\n scopedNames.forEach(name => {\n let path = paths[scopedNames.findIndex(item => item === name)]\n if (!state.images.includes(path)) {\n state.images.push({\n name,\n file: path,\n })\n }\n })\n\nexport let getScopes = (node, parent) => {\n let scopedProps = getScopedProps(node, parent)\n if (!scopedProps) return false\n let paths = scopedProps.map(scope => scope.prop.value)\n let scopedNames = paths.map(path => toCamelCase(path))\n\n return { scopedProps, paths, scopedNames }\n}\n\nexport let isSvg = node => /^Svg/.test(node.name) && node.isBasic\n\nexport let hasCustomScopes = (propNode, blockNode) =>\n blockNode.scopes.some(\n scope =>\n !scope.isLocal &&\n !scope.isSystem &&\n scope.properties.some(prop => prop.name === propNode.name)\n )\n\nexport let hasLocals = (propNode, blockNode) =>\n blockNode.scopes.some(scope => scope.isLocal)\n\nexport let getLocals = (propNode, blockNode, state) => {\n let locals = {}\n\n blockNode.scopes\n .filter(scope => scope.isLocal)\n .forEach(scope => {\n let prop = scope.properties.find(prop => prop.name === propNode.name)\n if (prop) {\n locals[scope.value] = prop.value\n }\n })\n\n return locals\n}\n\nexport let getLocalsString = (propNode, blockNode, state) => {\n let baseLocalName = `${blockNode.is || blockNode.name}Local`\n let localName = baseLocalName\n let index = 1\n while (localName in state.locals) {\n localName = `${baseLocalName}${index++}`\n }\n\n state.locals[localName] = getLocals(propNode, blockNode, state)\n return wrap(`${localName}[local.state.lang] || ${safe(propNode.value)}`)\n}\n\nexport let makeOnClickTracker = (node, parent, state) => {\n if (!state.track) return node.value\n\n let block = parent.testId\n ? `\"${state.name}.${parent.testId}\"`\n : `props[\"${state.testIdKey}\"] || \"${state.name}\"`\n\n state.isTracking = true\n\n return `event => {\n typeof ${node.value} === 'function' && ${node.value}(event);\n\n track({ block: ${block}, action: \"click\", event, props });\n }`\n}\n\n// let isRotate = name =>\n// name === 'rotate' || name === 'rotateX' || name === 'rotateY'\n\nlet getStandardAnimatedString = (node, prop, isNative) => {\n let value = `animated${node.id}${\n prop.animationIndexOnBlock > 0 ? prop.animationIndexOnBlock : ''\n }.${prop.name}`\n\n // let unit = getUnit(prop)\n // if (unit) {\n // value = `\\`\\${${value}}${unit}\\``\n // }\n\n return `${isNative ? prop.name : `\"--${prop.name}\"`}: ${value}`\n}\n\nlet getTransformString = (node, transform, isNative) => {\n let transformStr = `transform: [`\n\n transform.props.forEach((prop, i) => {\n transformStr += `{${getAnimatedString(node, prop, isNative)}},`\n })\n\n return `${transformStr}]`\n}\n\nexport let getScopeIndex = (node, currentScope) =>\n node.scopes.findIndex(scope => {\n return scope.slotName === currentScope\n })\n\nexport let isNewScope = (state, currentAnimation, index) =>\n index ===\n state.animations.findIndex(\n animation => animation.scope === currentAnimation.scope\n )\n\nexport let getAnimatedStyles = (node, isNative) => {\n let props = isNative ? getAllAnimatedProps(node, true) : getSpringProps(node)\n\n return props.map(prop => getAnimatedString(node, prop, isNative)).join(', ')\n}\n\nlet getPropValue = (prop, interpolateValue = true) => {\n let unit = getUnit(prop)\n if (unit) {\n let value = interpolateValue\n ? `\\`\\${${prop.value}}${unit}\\``\n : `\"${prop.value}${unit}\"`\n return `typeof ${prop.value} === 'number' ? ${value} : ${prop.value}`\n } else {\n return prop.value\n }\n}\n\nexport let getDynamicStyles = node => {\n return flatten([\n node.properties\n .filter(\n prop => prop.tags.style && prop.tags.slot && !getScopedProps(prop, node)\n )\n .map(prop => `'--${prop.name}': ${getPropValue(prop)}`),\n node.scopes.map(scope =>\n scope.properties\n .filter(prop => prop.tags.style)\n .map(prop => {\n let value = null\n\n if (prop.conditional) {\n value = prop.conditional\n } else if (prop.tags.slot && prop.scope === 'isHovered') {\n value = getPropValue(prop)\n }\n\n return value && `'--${prop.name}': ${value}`\n })\n ),\n ]).filter(Boolean)\n}\n\nlet getAnimatedString = (node, prop, isNative) =>\n prop.name === 'transform'\n ? getTransformString(node, prop, isNative)\n : getStandardAnimatedString(node, prop, isNative)\n\nexport let getNonAnimatedDynamicStyles = node => {\n let animatedProps = getAllAnimatedProps(node, true).map(prop => prop.name)\n let animatedTransforms = animatedProps.includes('transform')\n ? getAllAnimatedProps(node, true)\n .find(prop => prop.name === 'transform')\n .props.map(prop => prop.name)\n : []\n\n return Object.keys(node.style.dynamic.base)\n .filter(\n key => !animatedProps.includes(key) && !animatedTransforms.includes(key)\n )\n .reduce((obj, key) => {\n obj[key] = node.style.dynamic.base[key]\n return obj\n }, {})\n}\n\nexport let getAllAnimatedProps = (node, isNative) => {\n let props = flatten(\n node.scopes.map(scope => scope.properties.filter(prop => prop.animation))\n )\n return checkForTransforms(props) && isNative\n ? combineTransforms(props)\n : props\n}\n\nlet combineTransforms = props => {\n // TODO: handle transforms on different scopes\n let transform = { name: 'transform', props: [] }\n props.forEach((prop, i) => {\n if (TRANSFORM_WHITELIST[prop.name]) {\n prop.isTransform = true\n transform.props.push(prop)\n }\n })\n props.push(transform)\n return props.filter(prop => !prop.isTransform)\n}\n\nlet checkForTransforms = props =>\n props.some(prop => TRANSFORM_WHITELIST[prop.name])\n\nexport let getTimingProps = node =>\n flatten(\n node.scopes.map(scope =>\n scope.properties.filter(\n prop => prop.animation && prop.animation.curve !== 'spring'\n )\n )\n )\n\nlet getSpringProps = node =>\n flatten(\n node.scopes.map(scope =>\n scope.properties.filter(\n prop => prop.animation && prop.animation.curve === 'spring'\n )\n )\n )\n\n// https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Animated/src/NativeAnimatedHelper.js\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric property that doesn't need\n * to be updated through the shadow view hierarchy (all non-layout properties).\n */\nlet STYLES_WHITELIST = {\n opacity: true,\n transform: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n}\n\nlet TRANSFORM_WHITELIST = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n perspective: true,\n}\n\nexport let canUseNativeDriver = name =>\n STYLES_WHITELIST[name] || TRANSFORM_WHITELIST[name] || false\n\nexport let createId = (node, state, addClassName = true) => {\n let id = node.is || node.name\n // count repeatead ones\n if (state.usedBlockNames[id]) {\n id = `${id}${state.usedBlockNames[id]++}`\n } else {\n state.usedBlockNames[id] = 1\n }\n\n node.styleName = id\n if (addClassName && node.className) {\n node.className.push(`\\${styles.${id}}`)\n }\n\n return id\n}\n\nlet CONTENT_CONTAINER_STYLE_PROPS = [\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'flexDirection',\n 'justifyContent',\n 'alignItems',\n]\n\nlet isContentContainerStyleProp = prop =>\n CONTENT_CONTAINER_STYLE_PROPS.includes(prop)\n\nexport let hasContentContainerStyleProp = styleProps =>\n Object.keys(styleProps).some(isContentContainerStyleProp)\n\nexport let getContentContainerStyleProps = styleProps =>\n Object.keys(styleProps)\n .filter(isContentContainerStyleProp)\n .reduce((obj, key) => {\n obj[key] = styleProps[key]\n return obj\n }, {})\n\nexport let removeContentContainerStyleProps = styleProps =>\n Object.keys(styleProps)\n .filter(key => !isContentContainerStyleProp(key))\n .reduce((obj, key) => {\n obj[key] = styleProps[key]\n return obj\n }, {})\n\nexport let hasRowStyles = node =>\n node.properties.some(\n prop => prop.name.match(/^row/) && prop.name !== 'rowHeight'\n )\n\nlet MAYBE_HYPHENATED_STYLE_PROPS = [\n 'alignContent',\n 'alignItems',\n 'alignSelf',\n 'backgroundBlendMode',\n 'backgroundClip',\n 'backgroudOrigin',\n 'backgroundRepeat',\n 'boxSizing',\n 'clear',\n 'cursor',\n 'flexBasis',\n 'flexDirection',\n 'flexFlow',\n 'flexWrap',\n 'float',\n 'fontFamily',\n 'fontStretch',\n 'justifyContent',\n 'objectFit',\n 'overflowWrap',\n 'textAlign',\n 'textDecorationLine',\n 'textTransform',\n 'whiteSpace',\n 'wordBreak',\n]\n\nexport let maybeMakeHyphenated = ({ name, value }) =>\n MAYBE_HYPHENATED_STYLE_PROPS.includes(name) && /^[a-zA-Z]+$/.test(value)\n ? toSlugCase(value)\n : value\n\nexport let isStory = (node, state) =>\n !node.isBasic && state.isStory(node.name) && state.flow === 'separate'\n","import { getProp, isSlot } from '../utils.js'\nimport safe from '../react/safe.js'\n\nlet typesMap = {\n email: 'email',\n text: 'text',\n number: 'number',\n phone: 'tel',\n secure: 'password',\n file: 'file',\n}\n\nexport let enter = (node, parent, state) => {\n if (!node.isCapture || node.name === 'CaptureTextArea') return\n\n let type = getProp(node, 'type')\n\n if (isSlot(type)) {\n state.render.push(` type=${safe(type.value)}`)\n\n // fix for iOS Safari to show the numpad on\n // http://danielfriesen.name/blog/2013/09/19/input-type-number-and-ios-numeric-keypad/\n let maybeNumber = (name, valueWhenTrue) =>\n `${name}={${type.value} === 'number' || ${\n type.value\n } === 'phone'? \"${valueWhenTrue}\" : undefined}`\n state.render.push(maybeNumber('inputMode', 'numeric'))\n state.render.push(maybeNumber('pattern', '[0-9]*'))\n } else {\n state.render.push(` type=${safe(typesMap[type.value])}`)\n\n // fix for iOS Safari to show the numpad on\n // http://danielfriesen.name/blog/2013/09/19/input-type-number-and-ios-numeric-keypad/\n if (type.value === 'number' || type.value === 'phone') {\n state.render.push(` inputMode=\"numeric\" pattern=\"[0-9]*\"`)\n }\n }\n}\n","import { getLocalsString, hasLocals } from '../utils.js'\n\nexport function enter(node, parent, state) {\n let value = state.getValueForProperty(node, parent, state)\n\n if (value) {\n Object.keys(value).forEach(k => {\n if ((k === 'text' || k === 'placeholder') && hasLocals(node, parent)) {\n return state.render.push(\n ` ${k}=${getLocalsString(node, parent, state)}`\n )\n }\n return state.render.push(` ${k}=${value[k]}`)\n })\n }\n}\n","import * as PropertyRest from './property-rest.js'\nimport { getProp, isColumn, isHeader, isCell } from '../utils.js'\n\nexport function enter(node, parent, state) {\n if (!isColumn(node)) return\n\n let dataKey = getProp(node, 'key')\n let width = getWidth(node, parent)\n\n state.render.push(` dataKey=\"${dataKey.value}\" width={${width}}`)\n\n // let label = getLabel(node)\n // if (label) {\n // state.render.push(`label=\"${label}\"`)\n // }\n\n let header = node.children.find(isHeader)\n if (header && !header.isBasic) {\n state.render.push(\n ` headerRenderer={headerProps => <${header.name} {...headerProps} `\n )\n header.properties.forEach(propNode => {\n if (propNode.name === 'isHeader') return\n PropertyRest.enter(propNode, header, state)\n })\n state.render.push(` />}`)\n }\n\n let cell = node.children.find(isCell)\n if (cell && !cell.isBasic) {\n state.render.push(\n ` cellRenderer={cellProps => <${cell.name} {...cellProps} `\n )\n cell.properties.forEach(propNode => {\n if (propNode.name === 'isCell') return\n PropertyRest.enter(propNode, cell, state)\n })\n state.render.push(` />}`)\n }\n}\n\nlet getWidth = (node, parent) => {\n let width = getProp(node, 'width')\n if (width && width.value !== 'auto') {\n return width.value\n }\n\n let columns = parent.children.filter(child => child.name === 'Column')\n let columnsWithFixedWidth = columns\n .map(node => {\n let width = getProp(node, 'width')\n return width && typeof width.value === 'number' && width.value\n })\n .filter(Boolean)\n\n let columnsWidthSum = columnsWithFixedWidth.reduce(\n (res, value) => res + value,\n 0\n )\n\n return columnsWidthSum\n ? `(width - ${columnsWidthSum}) / ${columns.length -\n columnsWithFixedWidth.length}`\n : `width / ${columns.length}`\n}\n\n// let getLabel = node => {\n// let header = node.children.find(node => getProp(node, 'isHeader'))\n// if (!header) return\n\n// if (header.name === 'Text') {\n// // removing the text node, because the column handles the label\n// node.children.splice(node.children.indexOf(header), 1)\n// } else {\n// node.externalHeader = header\n// }\n\n// return getProp(header, 'text').value\n// }\n","export function leave(node, parent, state) {\n if (node.explicitChildren) {\n state.render.push('>')\n state.render.push(node.explicitChildren)\n }\n}\n","import { getProp } from '../utils.js'\nimport safe from '../react/safe.js'\n\nexport let enter = (node, parent, state) => {\n if (node.goTo) {\n let goTo = getProp(node, 'goTo')\n state.render.push(\n ` href=${safe(goTo.value)} rel='noopener noreferrer' target='_blank'`\n )\n }\n}\n","export function enter(node, parent, state) {\n if (\n node.isGroup &&\n node.children.length > 0 &&\n !node.nameFinal.includes('FlatList')\n ) {\n state.render.push('>')\n }\n}\n","import { getProp, isList } from '../utils.js'\n\nexport function enter(node, parent, state) {\n if (isList(parent)) {\n state.render.push(` index={index}`)\n\n let pass = getProp(parent, 'pass')\n if (pass) {\n state.render.push(` ${pass.value}={${pass.value}}`)\n } else {\n state.render.push(' {...item}')\n }\n\n if (!parent.nameFinal.includes('FlatList')) {\n let key = getProp(node, 'key')\n key = key ? key.value : 'index'\n\n state.render.push(` key={${key}}`)\n }\n }\n}\n","import { getProp, isList } from '../utils.js'\n\nexport function enter(node, parent, state) {\n if (isList(node)) {\n let from = getProp(node, 'from')\n if (!from) return\n\n let pass = getProp(node, 'pass')\n let itemName = pass ? pass.value : 'item'\n\n if (node.nameFinal.includes('FlatList')) {\n let key = getProp(node.children[0], 'key')\n key = key ? key.value : 'index'\n\n state.render.push(\n `data={${\n from.value\n }} keyExtractor={(item, index) => ${key}} renderItem={({ ${itemName}, index }) =>`\n )\n } else {\n state.render.push(\n `{Array.isArray(${from.value}) && ${\n from.value\n }.map((${itemName}, index) => `\n )\n }\n }\n}\n\nexport function leave(node, parent, state) {\n if (isList(node)) {\n state.render.push(node.nameFinal.includes('FlatList') ? '}' : ')}')\n }\n}\n","export let enter = node => node.skip\n","export function leave(node, parent, state) {\n if (\n ((!parent && node.isGroup) ||\n node.explicitChildren ||\n (node.isGroup && node.children.length > 0)) &&\n !node.nameFinal.includes('FlatList')\n ) {\n if (!parent && node.isGroup) {\n if (node.children.length === 0) {\n state.render.push('>')\n }\n\n state.render.push(`{props.children}`)\n }\n state.render.push(`</${node.nameFinal}>`)\n } else {\n state.render.push('/>')\n }\n}\n","import { getProp, isCell, isHeader, isTable } from '../utils.js'\n\nexport default (node, parent, state) => {\n if (isTable(node)) {\n let from = getProp(node, 'from')\n // skip the table if we don't have a from prop\n if (!from) return true\n\n state.isTable = true\n\n state.render.push(`<AutoSizer>{({ width, height }) => (`)\n }\n\n return isCell(node) || isHeader(node)\n}\n","import { getProp, hasProp } from '../utils.js'\nimport toCamelCase from 'to-camel-case'\n\nexport default (node, parent, state) => {\n let name = node.name\n\n switch (node.name) {\n case 'Capture':\n name = 'input'\n break\n\n case 'CaptureTextArea':\n name = 'textarea'\n break\n\n case 'Horizontal':\n case 'Vertical':\n name = getGroupBlockName(node, parent, state)\n break\n\n case 'Image':\n name = 'img'\n break\n\n case 'Text':\n return 'span'\n\n case 'List':\n name = 'div'\n break\n\n case 'Svg':\n name = 'svg'\n break\n\n case 'SvgGroup':\n name = 'g'\n break\n\n case 'SvgCircle':\n case 'SvgEllipse':\n case 'SvgLinearGradient':\n case 'SvgRadialGradient':\n case 'SvgLine':\n case 'SvgText':\n case 'SvgPath':\n case 'SvgPolygon':\n case 'SvgPolyline':\n case 'SvgRect':\n case 'SvgSymbol':\n case 'SvgUse':\n case 'SvgDefs':\n case 'SvgStop':\n name = toCamelCase(node.name.replace('Svg', ''))\n break\n\n // TODO don't output a fragment if there's only one child\n case 'View':\n name = 'React.Fragment'\n break\n\n default:\n break\n }\n\n if (node.hasSpringAnimation) {\n return `animated.${name}`\n }\n\n return name\n}\n\nlet getGroupBlockName = (node, parent, state) => {\n let name = 'div'\n\n if (node.isFragment) {\n name = 'React.Fragment'\n } else if (hasProp(node, 'isModal')) {\n name = 'ModalOverlay'\n } else if (parent && hasProp(parent, 'isModal')) {\n name = 'ModalContent'\n } else if (hasProp(node, 'teleportTo')) {\n name = 'Link'\n node.teleport = true\n } else if (hasProp(node, 'goTo')) {\n name = 'a'\n node.goTo = true\n } else if (hasProp(node, 'onClick')) {\n let propNode = getProp(node, 'onClick')\n let prevParent = parent\n let canBeButton = true\n\n while (prevParent && canBeButton) {\n if (prevParent.type === 'Block') {\n canBeButton = !hasProp(prevParent, 'onClick')\n }\n prevParent = prevParent.parent\n }\n\n if (canBeButton) {\n if (!hasProp(node, 'onClickUseDiv')) {\n name = 'button'\n }\n node.action = propNode.value\n }\n } else if (hasProp(node, 'overflowY', v => v === 'auto' || v === 'scroll')) {\n name = 'div'\n } else if (hasProp(node, 'onSubmit')) {\n name = 'form'\n }\n\n return name\n}\n","import { getPropValueOrDefault, isStory } from '../utils.js'\nimport { leave } from '../react/block-name.js'\nimport handleTable from '../react/block-name-handle-table.js'\nimport getBlockName from './get-block-name.js'\n\nexport function enter(node, parent, state) {\n if (\n (parent && !parent.isBasic && !node.isBasic) ||\n (node.isFragment && node.children.length === 0)\n )\n return true\n\n if (node.isFragment && node.name === 'View') {\n state.flow = getPropValueOrDefault(node, 'flow', false)\n state.flowDefaultState = null\n }\n\n if (isStory(node, state)) {\n state.use('ViewsUseFlow')\n\n // if (state.flowDefaultState === null) {\n // state.flowDefaultState = `${state.pathToStory}/${node.name}`\n // }\n }\n\n let name = getBlockName(node, parent, state)\n if (name === null) return true\n\n state.use(name, node.isLazy)\n\n if (node.isProxy) {\n name = `props.proxy${name}`\n }\n\n // TODO remove the use of those because they're just the name and keep one\n node.nameFinal = name\n node.nameTag = name\n\n if (handleTable(node, parent, state)) return true\n\n state.render.push(`<${node.nameFinal}`)\n}\n\nexport { leave }\n","import { getProp, isList, isStory } from '../utils.js'\n\nlet IS_MEDIA = /(!?props\\.isMedia)(.+)/\n\nexport function enter(node, parent, state) {\n if (node.isFragment && node.children.length === 0) return\n\n // onWhen lets you show/hide blocks depending on props\n let onWhen = getProp(node, 'onWhen')\n\n if (onWhen) {\n node.onWhen = true\n\n if (parent && !isList(parent)) state.render.push('{')\n\n let value = onWhen.value\n if (state.data) {\n switch (value) {\n case 'props.isInvalid': {\n value = 'data.isInvalid'\n break\n }\n\n case 'props.isValid': {\n value = 'data.isValid'\n break\n }\n\n case 'props.value': {\n value = 'data.value'\n break\n }\n case '!props.value': {\n value = '!data.value'\n break\n }\n\n default:\n break\n }\n } else if (IS_MEDIA.test(value)) {\n let [, variable, media] = value.match(IS_MEDIA)\n value = `${variable.replace('props.', '')}.${media.toLowerCase()}`\n }\n state.render.push(`${value} ? `)\n } else if (isStory(node, state)) {\n node.onWhen = true\n state.render.push(`{flow.has(\"${state.pathToStory}/${node.name}\") ? `)\n }\n}\n\nexport function leave(node, parent, state) {\n if (node.onWhen) {\n state.render.push(` : null`)\n if (parent && !isList(parent)) state.render.push('}')\n }\n}\n","import { deinterpolate, getProp, isSlot, isInterpolation } from '../utils.js'\nimport wrap from '../react/wrap.js'\n\nexport let enter = (node, parent, state) => {\n node.className = node.isBasic\n ? [\n node.name === 'Text'\n ? 'views-text'\n : node.isCapture\n ? 'views-capture'\n : 'views-block',\n ]\n : []\n\n let className = getProp(node, 'className')\n if (className) {\n node.className.push(\n className.tags.slot ? `\\${${className.value}}` : className.value\n )\n }\n}\n\nexport let leave = (node, parent, state) => {\n if (node.isFragment) return\n\n if (node.className.length === 1) {\n let className = node.className[0]\n let shouldWrap = true\n\n if (isInterpolation(className)) {\n className = deinterpolate(className)\n } else if (!isSlot(className)) {\n className = `\"${className}\"`\n shouldWrap = false\n }\n\n state.render.push(` className=${shouldWrap ? wrap(className) : className}`)\n } else if (node.className.length > 1) {\n let className = `\\`${node.className.join(' ')}\\``\n state.render.push(` className=${wrap(className)}`)\n }\n}\n","export let enter = (node, parent, state) => {\n // TODO caption\n if (node.name === 'Image') {\n state.render.push(' alt={\"\"}')\n }\n}\n","export function leave(node, parent, state) {\n if (node.isRoute) {\n state.render.push(' {...routeProps}')\n }\n}\n","import { checkParentStem, isSlot } from '../utils.js'\nimport safe from './safe.js'\n\nexport function enter(node, parent, state) {\n node.style = {\n dynamic: {\n base: {},\n isHovered: {},\n isFocused: {},\n isDisabled: {},\n isPlaceholder: {},\n isSelected: {},\n },\n static: {\n base: {},\n isHovered: {},\n isFocused: {},\n isDisabled: {},\n isPlaceholder: {},\n isSelected: {},\n },\n }\n\n if (node.isFragment) return\n\n // TODO use this directly in styles without having to go through this\n node.scopes\n .filter(scope => scope.isSystem)\n .forEach(scope => {\n scope.properties.forEach(propNode => {\n if (propNode.name === 'when') return\n\n let { _isProp, ...styleForProperty } = state.getStyleForProperty(\n propNode,\n node,\n isSlot(propNode)\n )\n\n if (_isProp) {\n Object.keys(styleForProperty).forEach(k =>\n state.render.push(` ${k}=${safe(styleForProperty[k], node)}`)\n )\n } else {\n let hasMatchingParent =\n parent && node.isDynamic\n ? checkParentStem(node, scope.value)\n : false\n let target =\n isSlot(propNode) || hasMatchingParent\n ? node.style.dynamic\n : node.style.static\n\n Object.assign(target[scope.value], styleForProperty)\n }\n })\n })\n\n // ensure flex-direction in Horizontals\n if (node.isGroup && node.name === 'Horizontal') {\n node.style.static.base.flexDirection = 'row'\n }\n}\n","import { enter } from '../react/properties-style.js'\nimport {\n createId,\n getActionableParent,\n getAllAnimatedProps,\n getAllowedStyleKeys,\n getAnimatedStyles,\n getDynamicStyles,\n getTimingProps,\n hasKeys,\n hasKeysInChildren,\n hasRowStyles,\n isTable,\n} from '../utils.js'\nimport toSlugCase from 'to-slug-case'\nimport uniq from 'array-uniq'\n\nexport { enter }\n\nexport function leave(node, parent, state) {\n if (node.isFragment) return\n\n let allowedStyleKeys = getAllowedStyleKeys(node)\n\n let scopedUnderParent =\n !node.isCapture && !node.action && getActionableParent(node)\n\n if (scopedUnderParent) {\n scopedUnderParent = scopedUnderParent.styleName\n }\n\n if (node.hasSpringAnimation) {\n state.isAnimated = true\n state.hasSpringAnimation = true\n state.animations[node.id] = node.animations\n state.scopes = node.scopes\n }\n\n let id = null\n\n if (isTable(node) && hasRowStyles(node)) {\n id = createId(node, state, false)\n getTableRowCss({ node, state, id, scopedUnderParent })\n }\n\n let css = [\n getStaticCss({ node, scopedUnderParent, state, allowedStyleKeys }),\n node.isAnimated && getAnimatedCss(node),\n getDynamicCss({ node, scopedUnderParent, state, allowedStyleKeys }),\n ].filter(Boolean)\n\n if (css.length > 0) {\n if (id === null) {\n id = createId(node, state)\n } else if (isTable(node)) {\n if (node.className) {\n node.className.push(`\\${styles.${id}}`)\n }\n }\n\n state.styles[id] = `css({label: '${id}', ${css.join(', ')}})`\n state.stylesOrder.push(id)\n }\n}\n\nlet composeStyles = (node, styles, scopedUnderParent) => {\n let allowedStyleKeys = getAllowedStyleKeys(node)\n\n if (hasKeysInChildren(styles.dynamic)) {\n let cssStatic = Object.keys(styles.static)\n .filter(\n key => allowedStyleKeys.includes(key) && hasKeys(styles.static[key])\n )\n .map(key =>\n asCss(\n asStaticCss(styles.static[key], Object.keys(styles.dynamic[key])),\n key,\n scopedUnderParent\n ).join('\\n')\n )\n\n cssStatic = cssStatic.join(',\\n')\n\n let cssDynamic = Object.keys(styles.dynamic)\n .filter(\n key => allowedStyleKeys.includes(key) && hasKeys(styles.dynamic[key])\n )\n .map(key =>\n asCss(asDynamicCss(styles.dynamic[key]), key, scopedUnderParent).join(\n '\\n'\n )\n )\n .join(',\\n')\n\n return { cssDynamic, cssStatic }\n }\n\n let cssStatic = Object.keys(styles.static)\n .filter(\n key => allowedStyleKeys.includes(key) && hasKeys(styles.static[key])\n )\n .map(key =>\n asCss(asStaticCss(styles.static[key]), key, scopedUnderParent).join('\\n')\n )\n .join(',\\n')\n\n return { cssStatic }\n}\n\nlet getStaticCss = ({ node, scopedUnderParent, state, allowedStyleKeys }) => {\n let style = node.style.static\n if (!hasKeysInChildren(style)) return false\n\n state.cssStatic = true\n\n let hasDynamicCss = hasKeysInChildren(node.style.dynamic)\n\n return Object.keys(style)\n .filter(key => allowedStyleKeys.includes(key) && hasKeys(style[key]))\n .map(key =>\n asCss(\n asStaticCss(\n style[key],\n hasDynamicCss ? Object.keys(node.style.dynamic[key]) : []\n ),\n key,\n scopedUnderParent\n ).join('\\n')\n )\n .join(',\\n')\n}\n\nlet getDynamicCss = ({ node, scopedUnderParent, state, allowedStyleKeys }) => {\n let style = node.style.dynamic\n if (!hasKeysInChildren(style)) return false\n\n state.cssDynamic = true\n node.styleName = node.nameFinal\n\n if (node.hasSpringAnimation) {\n state.render.push(\n ` style={{${getAnimatedStyles(\n node,\n state.isReactNative\n )},${getDynamicStyles(node)}}}`\n )\n } else {\n let inlineDynamicStyles = getDynamicStyles(node)\n if (inlineDynamicStyles) {\n state.render.push(` style={{${inlineDynamicStyles}}}`)\n }\n }\n\n return Object.keys(style)\n .filter(key => allowedStyleKeys.includes(key) && hasKeys(style[key]))\n .map(key =>\n asCss(asDynamicCss(style[key]), key, scopedUnderParent).join('\\n')\n )\n .join(',\\n')\n}\n\nlet getAnimatedCss = node => {\n if (node.hasTimingAnimation) {\n let transition = uniq(getTimingProps(node).map(makeTransition)).join(', ')\n\n return `\\ntransition: '${transition}',\\nwillChange: '${getUniqueNames(\n node\n )}'`\n }\n\n return `\\nwillChange: '${getUniqueNames(node)}'`\n}\n\nlet getUniqueNames = node => {\n let names = [\n ...new Set(getAllAnimatedProps(node, false).map(prop => prop.name)),\n ]\n return uniq(names.map(name => ensurePropName(name))).join(', ')\n}\n\nlet ensurePropName = name => {\n switch (name) {\n case 'rotate':\n case 'rotateX':\n case 'rotateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n case 'translateX':\n case 'translateY':\n return 'transform'\n\n case 'shadowColor':\n case 'shadowBlur':\n case 'shadowOffsetX':\n case 'shadowOffsetY':\n case 'shadowSpread':\n return 'box-shadow'\n\n default:\n return toSlugCase(name)\n }\n}\n\nlet makeTransition = ({ name, animation }) =>\n [\n ensurePropName(name),\n `${animation.duration}ms`,\n toSlugCase(animation.curve),\n animation.delay && `${animation.delay}ms`,\n ]\n .filter(Boolean)\n .join(' ')\n\nlet asDynamicCss = styles =>\n Object.keys(styles).map(prop => `${prop}: ${styles[prop]}`)\n\nlet safe = str =>\n typeof str === 'string' ? `\"${str.replace(/\"/g, \"'\")}\"` : str\n\nlet asStaticCss = (styles, dynamicStyles = []) =>\n Object.keys(styles)\n .filter(prop => !dynamicStyles.includes(prop))\n .map(prop => `${prop}: ${safe(styles[prop])}`)\n\nlet systemScopeToCssKey = {\n isDisabled: 'disabled',\n isHovered: 'hover:enabled',\n isFocused: 'focus:enabled',\n}\nlet ensureSystemScopeCssKey = key => systemScopeToCssKey[key] || key\n\nlet asCss = (styles, key, scopedUnderParent) => {\n let css = []\n\n if (key !== 'base') {\n if (scopedUnderParent) {\n let parent = `.\\${styles.${scopedUnderParent}}`\n let theKey = ensureSystemScopeCssKey(key)\n css.push(`[\\`${parent}:${theKey} &\\`]: {`)\n } else if (\n key === 'isDisabled' ||\n key === 'isHovered' ||\n key === 'isFocused' ||\n key === 'isSelected'\n ) {\n css.push(`\"&:${ensureSystemScopeCssKey(key)}\": {`)\n } else if (key === 'isPlaceholder') {\n css.push(`\"&::placeholder\": {`)\n }\n }\n\n css.push(styles.join(',\\n'))\n\n if (key !== 'base') css.push(`}`)\n\n return css\n}\n\nlet getTableRowCss = ({ node, state, id, scopedUnderParent }) => {\n let normalStyles = {}\n let alternateStyles = {}\n\n Object.entries(node.style).forEach(([type, typeScopes]) => {\n if (!(type in alternateStyles)) {\n alternateStyles[type] = {}\n }\n if (!(type in normalStyles)) {\n normalStyles[type] = {}\n }\n\n Object.entries(typeScopes).forEach(([scope, scopeStyles]) => {\n if (!(scope in alternateStyles[type])) {\n alternateStyles[type][scope] = {}\n }\n if (!(scope in normalStyles[type])) {\n normalStyles[type][scope] = {}\n }\n\n Object.entries(scopeStyles).forEach(([key, value]) => {\n switch (key) {\n case 'rowColor':\n normalStyles[type][scope]['color'] = value\n delete node.style[type][scope][key]\n break\n case 'rowBackgroundColor':\n normalStyles[type][scope]['backgroundColor'] = value\n delete node.style[type][scope][key]\n break\n case 'rowColorAlternate':\n alternateStyles[type][scope]['color'] = value\n delete node.style[type][scope][key]\n break\n case 'rowBackgroundColorAlternate':\n alternateStyles[type][scope]['backgroundColor'] = value\n delete node.style[type][scope][key]\n break\n\n default:\n break\n }\n })\n })\n })\n\n let { cssDynamic: normalDynamic, cssStatic: normalStatic } = composeStyles(\n node,\n normalStyles,\n scopedUnderParent\n )\n\n let {\n cssDynamic: alternateDynamic,\n cssStatic: alternateStatic,\n } = composeStyles(node, alternateStyles, scopedUnderParent)\n\n let normalCss = `${normalStatic ? `${normalStatic}` : ''} ${\n normalDynamic ? `, ${normalDynamic}` : ''\n }`\n\n let alternateCss = `${alternateStatic ? `${alternateStatic}` : ''} ${\n alternateDynamic ? `, ${alternateDynamic}` : ''\n }`\n\n node.hasDynamicRowStyles = !!(normalDynamic || alternateDynamic)\n state.render.push(` rowClassName={styles.${id}Row}`)\n\n state.styles[`${id}Row`] = `css({ display: 'flex'\n ${normalCss ? `, ${normalCss}` : ''}\n ${alternateCss ? `, \"&:nth-child(even)\": {${alternateCss}}` : ''}\n })`\n state.stylesOrder.push(`${id}Row`)\n}\n","export let enter = (node, parent, state) => {\n if (node.children && node.children.some(child => child.format)) {\n state.isFormatted = true\n state.formats = []\n node.children\n .filter(child => child.format)\n .forEach(child => state.formats.push(child.format))\n } else if (node.format && !parent) {\n state.isFormatted = true\n state.formats = []\n state.formats.push(node.format)\n }\n}\n","export function enter(node, parent, state) {\n if (!node.action || 'userSelect' in node.style.static.base) return\n\n node.style.static.base.userSelect = 'none'\n}\n","import wrap from '../react/wrap.js'\n\nexport function enter(node, parent, state) {\n if (node.name === 'ref') {\n if (!parent.isBasic) {\n state.hasRefs = true\n }\n\n state.render.push(\n ` ${parent.isDynamic ? 'innerRef' : 'ref'}=${wrap(node.value)}`\n )\n return true\n }\n}\n","import {\n checkParentStem,\n getProp,\n getStyleType,\n isSlot,\n isStyle,\n isSvg,\n} from '../utils.js'\nimport safe from './safe.js'\n\nlet PROPS_THAT_IMPLY_CODE_FOR_OTHERS = {\n fontFamily: 'fontWeight',\n shadowOffsetX: 'shadowOffsetY',\n shadowOffsetY: 'shadowOffsetX',\n}\n\nexport function enter(node, parent, state) {\n if (\n !isStyle(node) ||\n !parent.isBasic ||\n (isSvg(parent) && state.isReactNative) ||\n parent.name === 'SvgGroup'\n )\n return\n\n let code = isSlot(node)\n\n if (!code && state.isReactNative) {\n let otherProp = PROPS_THAT_IMPLY_CODE_FOR_OTHERS[node.name]\n if (otherProp) {\n code = isSlot(getProp(parent, otherProp))\n }\n }\n\n let { _isProp, _isScoped, ...styleForProperty } = state.getStyleForProperty(\n node,\n parent,\n code\n )\n\n if (_isProp) {\n Object.keys(styleForProperty).forEach(k =>\n state.render.push(` ${k}=${safe(styleForProperty[k], node)}`)\n )\n } else {\n let hasMatchingParent =\n parent && node.isDynamic\n ? checkParentStem(node, getStyleType(node))\n : false\n let target =\n code || _isScoped || hasMatchingParent\n ? parent.style.dynamic\n : parent.style.static\n\n Object.assign(target[getStyleType(node)], styleForProperty)\n }\n\n return true\n}\n","import {\n getLocalsString,\n getScopedCondition,\n hasCustomScopes,\n hasLocals,\n isSlot,\n} from '../utils.js'\nimport wrap from './wrap.js'\n\nlet parseFormatValue = (value, type) => {\n switch (type) {\n case 'percent':\n return value / 100\n case 'date':\n return `Date.parse('${value}')`\n case 'time':\n let timeValues = value.split(':')\n let timeStr = `Date.UTC(2018, 14, 3`\n // parseInt to remove leading zeroes, it isn't a valid number otherwise\n timeValues.forEach(val => (timeStr += `, ${parseInt(val, 10)}`))\n return `${timeStr})`\n default:\n return value\n }\n}\n\nexport function enter(node, parent, state) {\n if (node.name === 'text' && parent.name === 'Text') {\n if (state.data && node.value === 'props.value') {\n parent.explicitChildren = '{data.value}'\n } else if (hasCustomScopes(node, parent)) {\n parent.explicitChildren = wrap(getScopedCondition(node, parent))\n } else if (isSlot(node)) {\n parent.explicitChildren = wrap(node.value)\n } else if (hasLocals(node, parent)) {\n parent.explicitChildren = getLocalsString(node, parent, state)\n } else if (parent.hasOwnProperty('format')) {\n let type = Object.keys(parent.format)[0]\n parent.explicitChildren = `{${type}Formatters[local.state.lang].format(${parseFormatValue(\n node.value,\n type\n )})}`\n } else {\n parent.explicitChildren = node.value\n }\n\n return true\n }\n}\n","let blacklist = [\n 'classname',\n 'format',\n 'goto',\n 'isfragment',\n 'ismodal',\n 'onclickid',\n 'onclickselected',\n 'onclickselectedtype',\n 'onclickusediv',\n 'perspective',\n 'rotatez',\n 'scalez',\n 'teleportto',\n 'transformoriginz',\n 'translatez',\n 'type',\n]\n\nexport default (node, parent, state) =>\n !blacklist.includes(node.name.toLowerCase())\n","import * as PropertiesClassName from './properties-class-name.js'\nimport * as PropertiesImage from './properties-image.js'\nimport * as PropertiesRoute from '../react/properties-route.js'\nimport * as PropertiesStyle from './properties-style.js'\nimport * as PropertyFormat from '../react/property-format.js'\nimport * as PropertyOnClickUserSelect from './property-onclick-user-select.js'\nimport * as PropertyRef from '../react/property-ref.js'\nimport * as PropertyRest from '../react/property-rest.js'\nimport * as PropertyStyle from '../react/property-style.js'\nimport * as PropertyText from '../react/property-text.js'\nimport { isColumn } from '../utils.js'\nimport isValidPropertyForBlock from './is-valid-property-for-block.js'\n\nexport function enter(node, parent, state) {\n if (node.isFragment) return false\n\n PropertiesStyle.enter(node, parent, state)\n PropertiesClassName.enter(node, parent, state)\n PropertiesImage.enter(node, parent, state)\n PropertyFormat.enter(node, parent, state)\n\n node.properties.forEach(propNode => {\n if (\n propNode.name === 'lazy' ||\n propNode.name === 'at' ||\n propNode.name === 'when' ||\n propNode.name === 'onWhen' ||\n propNode.tags.unsupportedShorthand ||\n (!isValidPropertyForBlock(propNode, node, state) && node.isBasic) ||\n (propNode.name === 'from' &&\n (node.name === 'List' || node.name === 'Table')) ||\n (propNode.name === 'key' && parent.isList) ||\n (propNode.name === 'pass' && node.isList) ||\n (propNode.name === 'width' && isColumn(node))\n )\n return\n\n !PropertyRef.enter(propNode, node, state) &&\n !PropertyStyle.enter(propNode, node, state) &&\n !PropertyText.enter(propNode, node, state) &&\n PropertyRest.enter(propNode, node, state)\n })\n PropertyOnClickUserSelect.enter(node, parent, state)\n\n PropertiesStyle.leave(node, parent, state)\n PropertiesRoute.leave(node, parent, state)\n PropertiesClassName.leave(node, parent, state)\n}\n","export let enter = (node, parent, state) => {\n if (!node.childrenProxyMap) return\n\n Object.keys(node.childrenProxyMap).forEach(key => {\n state.use(node.childrenProxyMap[key])\n state.render.push(` proxy${key}={${node.childrenProxyMap[key]}}`)\n })\n}\n","import { getProp, isSlot } from '../utils.js'\nimport safe from './safe.js'\n\nexport function enter(node, parent, state) {\n let at = getProp(node, 'at')\n if (at) {\n let [path, isExact = false] = at.value.split(' ')\n state.use('Route')\n\n if (path === '/') state.use('Router')\n\n if (!path.startsWith('/')) {\n path = isSlot(path) ? `\\`\\${${path}}\\`` : path\n // path = `\\`\\${props.match.url}/${to}\\``\n }\n\n node.isRoute = true\n state.render.push(\n `<Route path=${safe(path)} ${\n isExact ? 'exact' : ''\n } render={routeProps => `\n )\n }\n}\n\nexport function leave(node, parent, state) {\n if (node.isRoute) {\n state.render.push('} />')\n }\n}\n","export let enter = (node, parent, state) => {\n let blockName = node.is || node.name\n\n if (typeof state.testIds[blockName] === 'number') {\n state.testIds[blockName]++\n blockName = `${blockName}:${state.testIds[blockName]}`\n } else {\n state.testIds[blockName] = 0\n }\n\n node.testId = blockName\n}\n","import { getProp, isTable } from '../utils.js'\n\nexport function enter(node, parent, state) {\n if (!isTable(node)) return\n\n state.render.push(\n ` width={width} height={height} rowCount={Array.isArray(props.from) ? props.from.length : 0} rowGetter={({ index }) => props.from[index]}`\n )\n}\n\nexport function leave(node, parent, state) {\n if (!isTable(node)) return\n\n state.render.push(`)}</AutoSizer>`)\n}\n","import { getProp } from '../utils.js'\nimport safe from '../react/safe.js'\n\nexport let enter = (node, parent, state) => {\n if (node.teleport) {\n let to = getProp(node, 'teleportTo').value\n\n state.render.push(` to=${safe(to)}`)\n }\n}\n","import * as BlockAddTestIdProp from '../react/block-add-test-id-prop.js'\nimport * as BlockCapture from './block-capture.js'\nimport * as BlockColumn from '../react/block-column.js'\nimport * as BlockExplicitChildren from '../react/block-explicit-children.js'\nimport * as BlockGoTo from './block-go-to.js'\nimport * as BlockGroup from '../react/block-group.js'\nimport * as BlockInList from '../react/block-in-list.js'\nimport * as BlockList from '../react/block-list.js'\nimport * as BlockMaybeSkip from '../react/block-maybe-skip.js'\nimport * as BlockName from './block-name.js'\nimport * as BlockOffWhen from '../react/block-off-when.js'\nimport * as BlockProperties from './block-properties.js'\nimport * as BlockProxy from '../react/block-proxy.js'\nimport * as BlockRoute from '../react/block-route.js'\nimport * as BlockSetTestId from '../react/block-set-test-id.js'\nimport * as BlockTable from '../react/block-table.js'\nimport * as BlockTeleport from '../react/block-teleport.js'\n\nexport let enter = [\n BlockMaybeSkip.enter,\n BlockSetTestId.enter,\n BlockOffWhen.enter,\n BlockRoute.enter,\n BlockName.enter,\n BlockProxy.enter,\n BlockTable.enter,\n BlockColumn.enter,\n BlockCapture.enter,\n BlockTeleport.enter,\n BlockGoTo.enter,\n BlockInList.enter,\n BlockAddTestIdProp.enter,\n BlockProperties.enter,\n BlockGroup.enter,\n BlockList.enter,\n]\n\nexport let leave = [\n BlockList.leave,\n BlockExplicitChildren.leave,\n BlockName.leave,\n BlockTable.leave,\n BlockRoute.leave,\n BlockOffWhen.leave,\n]\n","import {\n getProp,\n getScopedCondition,\n isSlot,\n maybeMakeHyphenated,\n} from '../utils.js'\nimport { maybeAddFallbackFont } from '../fonts.js'\n\nexport default (node, parent, code) => {\n let scopedVar = setScopedVar(node, parent)\n\n if (scopedVar) {\n switch (node.name) {\n case 'rotate':\n case 'rotateX':\n case 'rotateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n case 'translateX':\n case 'translateY':\n return {\n _isScoped: true,\n transform: `'${getTransform(node, parent)}'`,\n }\n\n default:\n return {\n _isScoped: true,\n [node.name]: scopedVar,\n }\n }\n }\n\n switch (node.name) {\n case 'appRegion':\n return {\n WebkitAppRegion: maybeAsVar(node, code),\n }\n\n case 'backgroundImage':\n return {\n backgroundImage: code\n ? `\\`url(\\${${asVar(node)}})\\``\n : `url(\"${node.value}\")`,\n }\n\n case 'fontFamily':\n return {\n fontFamily: code ? asVar(node) : maybeAddFallbackFont(node.value),\n }\n\n case 'shadowColor':\n case 'shadowBlur':\n case 'shadowOffsetX':\n case 'shadowOffsetY':\n case 'shadowSpread':\n return getShadow(node, parent)\n\n case 'rotate':\n case 'rotateX':\n case 'rotateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n case 'translateX':\n case 'translateY':\n return { transform: getTransform(node, parent) }\n\n case 'transformOriginX':\n case 'transformOriginY':\n return {\n transformOrigin: getTransformOrigin(node, parent),\n }\n\n case 'zIndex':\n return {\n zIndex: code ? asVar(node) : parseInt(node.value, 10),\n }\n\n default:\n return {\n [node.name]: maybeAsVar(node, code),\n }\n }\n}\n\nlet maybeAsVar = (prop, code) =>\n code ? asVar(prop) : maybeMakeHyphenated(prop)\n\nlet asVar = prop => `'var(--${prop.name})'`\n\nlet setScopedVar = (prop, block) => {\n if (\n prop.scope === 'isHovered' ||\n prop.scope === 'isFocused' ||\n prop.scope === 'isDisabled'\n )\n return false\n\n let scopedCondition = getScopedCondition(prop, block, false)\n return scopedCondition && asVar(prop)\n}\n\nlet getPropValue = (prop, block, unit = '') => {\n if (!prop) return false\n\n let scopedVar = setScopedVar(prop, block)\n\n if (scopedVar) return scopedVar\n\n if (prop.tags.slot) {\n return `var(--${prop.name})`\n }\n\n return typeof prop.value === 'number' ? `${prop.value}${unit}` : prop.value\n}\n\nlet getShadow = (node, parent) => {\n let isText = parent.name === 'Text'\n\n let shadowColor = getProp(parent, 'shadowColor')\n let shadowBlur = getProp(parent, 'shadowBlur')\n let shadowOffsetX = getProp(parent, 'shadowOffsetX')\n let shadowOffsetY = getProp(parent, 'shadowOffsetY')\n let shadowSpread = getProp(parent, 'shadowSpread')\n\n let value = [\n getPropValue(shadowOffsetX, parent, 'px'),\n getPropValue(shadowOffsetY, parent, 'px'),\n getPropValue(shadowBlur, parent, 'px'),\n !isText && getPropValue(shadowSpread, parent, 'px'),\n getPropValue(shadowColor, parent),\n ]\n .filter(Boolean)\n .join(' ')\n .replace(/'/g, '')\n\n if (\n isSlot(shadowColor) ||\n isSlot(shadowBlur) ||\n isSlot(shadowOffsetY) ||\n isSlot(shadowOffsetX) ||\n isSlot(shadowSpread)\n ) {\n value = `\\`${value}\\``\n }\n\n return {\n [isText ? 'textShadow' : 'boxShadow']: value,\n }\n}\n\nlet getTransformValue = (prop, parent, unit) => {\n if (!prop) return false\n return `${prop.name}(${getPropValue(prop, parent, unit)})`\n}\n\nlet getTransform = (node, parent) => {\n let rotate = getProp(parent, 'rotate')\n let rotateX = getProp(parent, 'rotateX')\n let rotateY = getProp(parent, 'rotateY')\n let scale = getProp(parent, 'scale')\n let scaleX = getProp(parent, 'scaleX')\n let scaleY = getProp(parent, 'scaleY')\n let translateX = getProp(parent, 'translateX')\n let translateY = getProp(parent, 'translateY')\n\n let value = [\n getTransformValue(rotate, parent, 'deg'),\n getTransformValue(rotateX, parent, 'deg'),\n getTransformValue(rotateY, parent, 'deg'),\n getTransformValue(scale, parent, ''),\n getTransformValue(scaleX, parent, ''),\n getTransformValue(scaleY, parent, ''),\n\n getTransformValue(translateX, parent, 'px'),\n getTransformValue(translateY, parent, 'px'),\n ]\n .filter(Boolean)\n .join(' ')\n\n if (\n isSlot(rotate) ||\n isSlot(rotateX) ||\n isSlot(rotateY) ||\n isSlot(scale) ||\n isSlot(scaleX) ||\n isSlot(scaleY) ||\n isSlot(translateX) ||\n isSlot(translateY)\n ) {\n value = `\\`${value}\\``\n }\n\n // TODO FIXME this is a hack to remove strings because my head is fried\n // and yeah it does what we need for now :)\n return value.replace(/'/g, '')\n}\n\nlet getTransformOrigin = (node, parent) => {\n let transformOriginX = getProp(parent, 'transformOriginX')\n let transformOriginY = getProp(parent, 'transformOriginY')\n let value = [\n getPropValue(\n transformOriginX,\n parent,\n Number.isInteger(transformOriginX.value) ? 'px' : ''\n ),\n getPropValue(\n transformOriginY,\n parent,\n Number.isInteger(transformOriginY.value) ? 'px' : ''\n ),\n ]\n .filter(Boolean)\n .join(' ')\n\n if (isSlot(transformOriginX) || isSlot(transformOriginY)) {\n value = `\\`${value}\\``\n }\n return value\n}\n","import { hasKeys } from '../utils.js'\n\nexport default ({ styles, stylesOrder }) => {\n if (!hasKeys(styles)) return ''\n\n let res = [`let styles = {}`]\n\n stylesOrder.forEach(id => {\n res.push(`styles.${id} = ${styles[id]}`)\n })\n\n return res.join('\\n')\n}\n","import {\n getProp,\n getScopedCondition,\n getScopedImageCondition,\n getScopes,\n hasProp,\n isValidImgSrc,\n makeOnClickTracker,\n pushImageToState,\n} from '../utils.js'\nimport safe from '../react/safe.js'\nimport wrap from '../react/wrap.js'\nimport toCamelCase from 'to-camel-case'\n\nlet isUrl = str => /^https?:\\/\\//.test(str)\n\nlet getImageSource = (node, state, parent) => {\n let scopes = getScopes(node, parent)\n\n if (scopes && (isUrl(node.value) || node.tags.slot)) {\n return wrap(getScopedCondition(node, parent))\n } else if (isUrl(node.value) || node.tags.slot) {\n if (node.defaultValue && !isUrl(node.defaultValue)) {\n state.slots.forEach(item => {\n if (item.defaultValue === node.defaultValue) {\n item.type = 'import'\n let name = toCamelCase(item.defaultValue)\n if (!state.images.includes(item.defaultValue)) {\n state.images.push({\n name,\n file: item.defaultValue,\n })\n }\n item.defaultValue = name\n }\n })\n }\n return safe(node.value)\n } else {\n if (scopes) {\n pushImageToState(state, scopes.scopedNames, scopes.paths)\n }\n let name = toCamelCase(node.value)\n if (!state.images.includes(node.value)) {\n state.images.push({\n name,\n file: node.value,\n })\n }\n return scopes\n ? wrap(\n getScopedImageCondition(scopes.scopedProps, scopes.scopedNames, name)\n )\n : `{${name}}`\n }\n}\n\nexport default (node, parent, state) => {\n if (\n state.data &&\n (node.value === 'props.value' ||\n node.value === 'props.onSubmit' ||\n node.value === 'props.onChange' ||\n node.value === 'props.isInvalid' ||\n node.value === 'props.isValid')\n ) {\n return {\n [node.name]: `{${node.value.replace('props.', 'data.')}}`,\n }\n } else if (isValidImgSrc(node, parent)) {\n return {\n src: getImageSource(node, state, parent),\n }\n } else if (parent.isBasic && node.name === 'isDisabled') {\n return {\n disabled: safe(node.value, node),\n }\n } else if (getScopedCondition(node, parent)) {\n return {\n [node.name]: safe(getScopedCondition(node, parent)),\n }\n } else if (node.name === 'onClick') {\n let onClick = safe(node.value, node)\n\n if (node.slotName === 'setFlow') {\n if (hasProp(parent, 'onClickId')) {\n onClick = `{() => setFlow(\"${getProp(parent, 'onClickId').value}\")}`\n state.use('ViewsUseFlow')\n state.setFlow = true\n // TODO warn if action is used but it isn't in actions (on parser)\n } else {\n // TODO warn that there's setFlow without an id (on parser)\n }\n } else if (state.track) {\n // TODO merge flow with track\n onClick = wrap(makeOnClickTracker(node, parent, state))\n }\n\n return { onClick }\n } else {\n return {\n [node.name]: safe(node.value, node),\n }\n }\n}\n","import getViewRelativeToView from '../../get-view-relative-to-view.js'\nimport relativise from '../../relativise.js'\n\nexport default function makeGetImport({\n imports,\n getSystemImport,\n view,\n viewsById,\n viewsToFiles,\n}) {\n return function getImport(id, isLazy) {\n if (imports[id]) return imports[id]\n\n let externalImport = getSystemImport(id, view.file)\n if (externalImport) return externalImport\n\n if (!viewsById.has(id)) {\n throw new Error(\n `Import \"${id}\" doesn't exist. It's being imported from ${view.id}.`\n )\n }\n\n let importView = getViewRelativeToView({\n id,\n view,\n viewsById,\n viewsToFiles,\n })\n if (!importView) {\n throw new Error(\n `Import \"${id}\" doesn't exist. It's being imported from ${view.id}.`\n )\n }\n\n let importFile = importView.file\n\n if (importView.logic) {\n importFile = importView.logic\n } else if (!importView.custom) {\n importFile = `${importFile}.js`\n }\n let importPath = relativise(view.file, importFile)\n\n return isLazy\n ? `let ${id} = React.lazy(() => import('${importPath}'))`\n : `import ${id} from '${importPath}'`\n }\n}\n","export default state => {\n if (state.uses.includes('Router')) {\n state.render = ['<Router>', ...state.render, '</Router>']\n }\n}\n","export default [\n 'Capture',\n 'CaptureTextArea',\n 'Column',\n 'Horizontal',\n 'Image',\n 'Link',\n 'List',\n 'ModalContent',\n 'ModalOverlay',\n 'Route',\n 'Router',\n 'Spring',\n 'Svg',\n 'SvgCircle',\n 'SvgDefs',\n 'SvgEllipse',\n 'SvgGroup',\n 'SvgLine',\n 'SvgLinearGradient',\n 'SvgPath',\n 'SvgPolygon',\n 'SvgPolyline',\n 'SvgRadialGradient',\n 'SvgRect',\n 'SvgStop',\n 'SvgSymbol',\n 'SvgText',\n 'SvgUse',\n 'Table',\n 'Text',\n 'Timing',\n 'Vertical',\n 'View',\n]\n","import getUnit from '../get-unit.js'\n\nexport default ({ state, name }) => {\n let render = state.render.join('')\n if (Object.keys(state.locals).length > 0 || state.isFormatted) {\n render = `<Subscribe to={[LocalContainer]}>\\n{local =>\\n${render}\\n}</Subscribe>`\n }\n\n let animated = []\n if (state.isAnimated) {\n Object.keys(state.animations).forEach(blockId => {\n Object.values(state.animations[blockId]).forEach(item => {\n let { curve, ...configValues } = item.animation.properties\n\n if (!state.isReactNative && curve !== 'spring') return\n\n let spring = ['{', '\"config\": {']\n Object.entries(configValues).forEach(([k, v]) => {\n spring.push(`${k}: ${JSON.stringify(v)},`)\n })\n\n if (curve !== 'spring' && curve !== 'linear') {\n spring.push(`\"easing\": Easing.${curve.replace('ease', 'easeCubic')},`)\n }\n spring.push('},')\n\n let toValue = []\n let fromValue = []\n Object.values(item.props).forEach(prop => {\n prop.scopes.reverse()\n\n let value = prop.scopes.reduce(\n (current, scope) =>\n `props.${scope.name}? ${JSON.stringify(\n scope.value\n )} : ${current}`,\n JSON.stringify(prop.value)\n )\n\n toValue.push(`${JSON.stringify(prop.name)}: ${value}`)\n fromValue.push(\n `${JSON.stringify(prop.name)}: ${JSON.stringify(\n prop.scopes[0].value\n )}`\n )\n })\n\n spring.push(`\"from\": {${fromValue.join(',')}},`)\n spring.push(`\"to\": {${toValue.join(',')}},`)\n spring.push('}')\n\n animated.push(\n `let animated${blockId}${\n item.index > 0 ? item.index : ''\n } = useSpring(${spring.join('\\n')})`\n )\n })\n })\n }\n\n let flow = []\n if (state.flow === 'separate' && state.uses.includes('ViewsUseFlow')) {\n flow.push(`let flow = fromFlow.useFlow()`)\n }\n if (state.setFlow) {\n flow.push(`let setFlow = fromFlow.useSetFlow()`)\n }\n let data = []\n if (state.data) {\n switch (state.data.type) {\n case 'show': {\n data.push(`let data = fromData.useItem({ path: '${state.data.path}', `)\n maybeDataFormat(state.dataFormat, data)\n data.push('})')\n break\n }\n\n case 'capture': {\n data.push(\n `let data = fromData.useCaptureItem({ path: '${state.data.path}', `\n )\n maybeDataFormat(state.dataFormat, data)\n maybeDataValidate(state.dataValidate, data)\n data.push('})')\n break\n }\n\n default: {\n break\n }\n }\n }\n\n if (state.hasRefs) {\n let trackOpen = state.track ? '<TrackContext.Consumer>{track => (' : ''\n let trackClose = state.track ? ')}</TrackContext.Consumer>' : ''\n return `class ${name} extends React.Component {\n render() {\n let { props } = this\n return (${trackOpen}${render}${trackClose})\n }\n}`\n } else {\n let ret = render ? `(${render})` : null\n\n return `let ${name} = (props) => {\n ${state.track ? `let track = React.useContext(TrackContext)` : ''}\n ${state.useIsBefore ? 'let isBefore = useIsBefore()' : ''}\n ${state.useIsMedia ? 'let isMedia = useIsMedia()' : ''}\n ${animated.join('\\n')}\n ${flow.join('\\n')}\n ${data.join('\\n')}\n\n return ${ret}\n}`\n }\n}\n\nfunction maybeDataFormat(format, data) {\n if (!format) return\n if (format.type !== 'date') return\n\n data.push(\n `format: fromData.useMakeFormatDate('${format.formatIn}', '${format.formatOut}'`\n )\n if (format.whenInvalid) {\n data.push(`, '${format.whenInvalid}'`)\n }\n data.push(`),`)\n}\nfunction maybeDataValidate(validate, data) {\n if (!validate || validate.type !== 'js') return\n data.push(`validate: '${validate.value}',`)\n if (validate.required) {\n data.push('required: true,')\n }\n}\n","let stringify = slot => {\n if (slot.type === 'array') {\n return JSON.stringify([])\n } else if (/^[0-9]+$/.test(slot.defaultValue) || slot.type === 'import') {\n return slot.defaultValue\n } else {\n return JSON.stringify(slot.defaultValue)\n }\n}\n\nexport default ({ state, name }) => {\n let slots = state.slots\n .filter(slot => slot.defaultValue !== false)\n .map(slot => `${slot.name}: ${stringify(slot)}`)\n\n return slots.length === 0\n ? ''\n : `${name}.defaultProps = {${slots.join(',\\n')}}`\n}\n","export default [\n 'Svg',\n 'SvgCircle',\n 'SvgEllipse',\n 'SvgDefs',\n 'SvgGroup',\n 'SvgLinearGradient',\n 'SvgRadialGradient',\n 'SvgLine',\n 'SvgPath',\n 'SvgPolygon',\n 'SvgPolyline',\n 'SvgRect',\n 'SvgSymbol',\n 'SvgText',\n 'SvgUse',\n 'SvgDefs',\n 'SvgStop',\n]\n","import SVG from './svg.js'\n\nlet NATIVE = [\n 'Animated',\n 'Image',\n 'KeyboardAvoidingView',\n 'FlatList',\n 'ScrollView',\n 'StyleSheet',\n 'Text',\n 'TextInput',\n 'TouchableWithoutFeedback',\n 'TouchableHighlight',\n 'View',\n]\n\nlet sortAlphabetically = (a, b) => {\n return a === b ? 0 : a < b ? -1 : 1\n}\n\nlet importsFirst = (a, b) => {\n let aIsImport = a.startsWith('import')\n let bIsImport = b.startsWith('import')\n\n if ((aIsImport && bIsImport) || (!aIsImport && !bIsImport))\n return sortAlphabetically(a, b)\n\n if (aIsImport) return -1\n if (bIsImport) return 1\n}\n\nexport default (state, getImport) => {\n let usesNative = []\n let usesSvg = []\n\n let useNative = d => {\n if (!usesNative.includes(d)) {\n usesNative.push(d)\n }\n }\n let useSvg = d => {\n if (!usesSvg.includes(d)) {\n usesSvg.push(d)\n }\n }\n\n let dependencies = [`import React from 'react'`]\n\n state.uses.sort().forEach(d => {\n if (state.isReactNative && NATIVE.includes(d)) {\n useNative(d)\n } else if (state.isReactNative && SVG.includes(d)) {\n useSvg(\n d === 'Svg'\n ? d\n : d === 'SvgGroup'\n ? `G as SvgGroup`\n : `${d.replace('Svg', '')} as ${d}`\n )\n } else if (d === 'Table') {\n } else if (/^[A-Z]/.test(d)) {\n dependencies.push(getImport(d, state.lazy[d]))\n }\n })\n\n if (state.isReactNative) {\n // TODO fonts in RN\n // state.getFont(state.fonts)\n } else {\n state.fonts.forEach(usedFont =>\n dependencies.push(state.getFontImport(usedFont.id))\n )\n }\n\n // TODO we probably want to check that the file exists and do something if it\n // doesn't, like warn the user at least?\n state.images.forEach(img =>\n dependencies.push(`import ${img.name} from \"${img.file}\"`)\n )\n\n if (state.cssDynamic || state.cssStatic) {\n dependencies.push('import { css } from \"emotion\"')\n state.dependencies.add('emotion')\n }\n\n if (state.isAnimated) {\n let animations = [\n 'animated',\n (state.hasSpringAnimation ||\n (state.hasTimingAnimation && state.isReactNative)) &&\n 'useSpring',\n ].filter(Boolean)\n\n if (animations.length > 0) {\n dependencies.push(\n `import { ${animations.join(', ')} } from \"react-spring\"`\n )\n\n state.dependencies.add('react-spring')\n\n if (state.hasTimingAnimation && state.isReactNative) {\n dependencies.push(`import * as Easing from 'd3-ease'`)\n state.dependencies.add('d3-ease')\n }\n }\n }\n\n if (state.isReactNative) {\n for (let component of state.animated) {\n dependencies.push(`let Animated${component} = animated(${component})`)\n }\n }\n\n if (state.isTable) {\n dependencies.push(\n `import { AutoSizer, Column, Table } from \"@viewstools/tables/${\n state.isReactNative ? 'native' : 'dom'\n }\"`\n )\n state.dependencies.add('@viewstools/tables')\n }\n\n if (usesSvg.length > 0) {\n let svg = usesSvg.filter(m => m !== 'Svg').join(', ')\n dependencies.push(`import Svg, { ${svg} } from 'react-native-svg'`)\n }\n\n if (usesNative.length > 0) {\n dependencies.push(\n `import { ${usesNative.join(', ')} } from '${\n state.reactNativeLibraryImport\n }'`\n )\n }\n\n if (state.track) {\n dependencies.push(getImport('TrackContext'))\n }\n\n if (state.useIsBefore) {\n dependencies.push(getImport('ViewsUseIsBefore'))\n }\n\n if (state.useIsMedia) {\n dependencies.push(getImport('ViewsUseIsMedia'))\n }\n\n if (Object.keys(state.locals).length > 0) {\n dependencies.push('import { Subscribe } from \"unstated\"')\n dependencies.push(getImport('LocalContainer'))\n state.dependencies.add('unstated')\n }\n\n return dependencies\n .filter(Boolean)\n .sort(importsFirst)\n .join('\\n')\n}\n","export default ({ uses }) => {\n return uses.includes('Animated') && uses.includes('FlatList')\n ? `let AnimatedFlatList = Animated.createAnimatedComponent(FlatList)`\n : ''\n}\n","export default state => (state.isFormatted ? createFormatters(state) : '')\n\nlet createFormatters = ({ formats, localSupported }) => {\n return formats\n .map(format => {\n return getFormat(format, localSupported)\n })\n .join('')\n}\n\nlet getFormat = (format, localSupported) => {\n let style = Object.keys(format)[0]\n let type = style === 'currency' || style === 'percent' ? 'Number' : 'DateTime'\n\n let options = getOptions(format[`${style}`], style, type)\n let string = `let ${style}Options = ${options}\\nlet ${style}Formatters = {`\n localSupported.forEach(local => {\n string += `${local}: new Intl.${type}Format('${local}', ${style}Options),\\n`\n })\n\n return `${string} }\\n`\n}\n\nlet getOptions = (format, style, type) => {\n if (style === 'currency')\n return `{ style: 'currency', currency: '${format}' }`\n\n if (style === 'percent')\n return `{ style: 'percent', maximumFractionDigits: 2 }`\n\n if (style === 'time' && format.clock) {\n format.hour12 = format.clock === '24h' ? false : true\n delete format.clock\n }\n return JSON.stringify(format)\n}\n","export default ({ locals }) =>\n `\\n${Object.keys(locals)\n .map(k => `let ${k} = ${JSON.stringify(locals[k], null, ' ')}`)\n .join('\\n')}`\n","import getBody from './get-body.js'\nimport getDefaultProps from './get-default-props.js'\nimport getDependencies from './get-dependencies.js'\nimport getFlatList from './get-flatlist.js'\nimport getFormatters from './get-formatters.js'\nimport getLocals from './get-locals.js'\n\nexport default ({ getImport, getStyles, name, state }) => {\n // TODO Emojis should be wrapped in <span>, have role=\"img\", and have an accessible description\n // with aria-label or aria-labelledby jsx-a11y/accessible-emoji\n return `// This file is auto-generated. Edit ${name}.view to change it. More info: https://github.com/viewstools/docs/blob/master/UseViews/README.md#viewjs-is-auto-generated-and-shouldnt-be-edited\n/* eslint-disable jsx-a11y/accessible-emoji, no-unused-vars, no-dupe-keys, react/jsx-no-duplicate-props */\n${getDependencies(state, getImport)}\n\n${getStyles(state, name)}\n${getFlatList(state, name)}\n${getFormatters(state, name)}\n${getLocals(state, name)}\n\n${getBody({ state, name })}\n${getDefaultProps({ state, name })}\nexport default ${name}`\n}\n","export default function walk(ast, { enter, leave }, state) {\n visit(ast, null, enter, leave, state)\n}\n\nfunction visit(node, parent, enter, leave, state) {\n if (!node) return\n\n if (enter) {\n if (enter.some(fn => fn(node, parent, state))) return\n }\n\n if (Array.isArray(node.children)) {\n node.children.forEach(child => {\n child.parent = node\n visit(child, node, enter, leave, state)\n })\n }\n\n if (leave) {\n leave.forEach(fn => fn(node, parent, state))\n }\n}\n","import * as visitor from './react-dom/block.js'\nimport getStyleForProperty from './react-dom/get-style-for-property.js'\nimport getStyles from './react-dom/get-styles.js'\nimport getValueForProperty from './react-dom/get-value-for-property.js'\nimport getViewRelativeToView from '../get-view-relative-to-view.js'\nimport makeGetImport from './react/make-get-import.js'\nimport maybeUsesRouter from './react-dom/maybe-uses-router.js'\nimport restrictedNames from './react-dom/restricted-names.js'\nimport toComponent from './react/to-component.js'\nimport walk from './walk.js'\n\nlet imports = {\n Link: \"import { Link } from 'react-router-dom'\",\n Route: \"import { Route } from 'react-router-dom'\",\n Router: \"import { BrowserRouter as Router } from 'react-router-dom'\",\n ModalOverlay:\n \"import { DialogOverlay as ModalOverlay, DialogContent as ModalContent } from '@reach/dialog'\",\n}\n\nexport default ({\n getFontImport,\n getSystemImport,\n local,\n localSupported,\n track,\n view,\n viewsById,\n viewsToFiles,\n}) => {\n let name = view.id\n let finalName = restrictedNames.includes(name) ? `${name}1` : name\n if (name !== finalName) {\n console.warn(\n `// \"${name}\" is a Views reserved name.\n We've renamed it to \"${finalName}\", so your view should work but this isn't ideal.\n To fix this, change its file name to something else.`\n )\n }\n\n let state = {\n animated: new Set(),\n animations: {},\n cssDynamic: false,\n cssStatic: false,\n data: view.parsed.view.data,\n dataFormat: view.parsed.view.dataFormat,\n dataValidate: view.parsed.view.dataValidate,\n dependencies: new Set(),\n flow: null,\n setFlow: false,\n getFontImport: font => getFontImport(font, view),\n getStyleForProperty,\n getValueForProperty,\n hasRefs: false,\n images: [],\n isDynamic: false,\n isReactNative: false,\n isStory: id => {\n let viewInView = getViewRelativeToView({\n id,\n view,\n viewsById,\n viewsToFiles,\n })\n\n return viewInView && !viewInView.custom && viewInView.parsed.view.isStory\n },\n lazy: {},\n local,\n locals: {},\n localSupported: [],\n name: finalName,\n pathToStory: view.parsed.view.pathToStory,\n render: [],\n styles: {},\n stylesOrder: [],\n usedBlockNames: { [finalName]: 1, AutoSizer: 1, Column: 1, Table: 1 },\n uses: [],\n testIdKey: 'data-testid',\n testIds: {},\n track,\n use(block, isLazy = false) {\n if (isLazy) {\n state.lazy[block] = true\n }\n\n if (\n state.uses.includes(block) ||\n /props/.test(block) ||\n /^Animated/.test(block) ||\n 'React.Fragment' === block ||\n 'ModalContent' === block ||\n block === finalName\n )\n return\n\n state.uses.push(block)\n },\n useIsBefore: view.parsed.view.useIsBefore,\n useIsMedia: view.parsed.view.useIsMedia,\n }\n\n if (state.data) {\n state.use('ViewsUseData')\n }\n\n if (name !== finalName) {\n console.warn(\n `// ${name} is a Views reserved name. To fix this, change its file name to something else.`\n )\n }\n\n state.fonts = view.parsed.fonts\n state.slots = view.parsed.slots\n state.localSupported = localSupported\n\n walk(view.parsed.view, visitor, state)\n maybeUsesRouter(state)\n\n return {\n code: toComponent({\n getImport: makeGetImport({\n imports,\n getSystemImport,\n view,\n viewsById,\n viewsToFiles,\n }),\n getStyles,\n name: finalName,\n state,\n }),\n dependencies: state.dependencies,\n flow: state.flow,\n flowDefaultState: state.flowDefaultState,\n // TODO flow supported states\n // fonts: view.parsed.fonts,\n // slots: view.parsed.slots,\n }\n}\n","import { hasProp, getObjectAsString, getProp } from '../utils.js'\nimport safe from '../react/safe.js'\nlet BORDER_RADIUS = [\n 'borderRadius',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n]\n\nexport let enter = (node, parent, state) => {\n if (node.backgroundImage) {\n let source = getObjectAsString({ uri: node.backgroundImage })\n\n let resizeMode = getProp(node, 'backgroundSize')\n resizeMode = safe(resizeMode ? resizeMode.value.value : 'cover')\n\n state.render.push(` resizeMode=${resizeMode} source={${source}}`)\n\n // hack until https://github.com/facebook/react-native/issues/8885\n // is fixed\n BORDER_RADIUS.forEach(prop => {\n if (hasProp(node, prop)) {\n let propNode = getProp(node, prop)\n state.render.push(` ${prop}={${propNode.value.value}}`)\n }\n })\n }\n}\n","import { getProp, isSlot } from '../utils.js'\n\nlet keyboardType = {\n email: 'email-address',\n number: 'numeric',\n phone: 'phone-pad',\n}\n\nexport let enter = (node, parent, state) => {\n if (!node.isCapture) return\n\n if (node.name === 'CaptureTextArea') {\n state.render.push(` multiline={true}`)\n } else {\n let type = getProp(node, 'type')\n\n // TODO warn on parser\n // TODO support file upload in RN\n if (type.value === 'file') {\n type.value = 'text'\n }\n\n if (type.value === 'secure') {\n state.render.push(` secureTextEntry`)\n } else {\n if (isSlot(type)) {\n let dynamicKeyboardType = `\n ${type.value} === 'email'?\n '${keyboardType.email}' :\n ${type.value} === 'number'?\n '${keyboardType.number}' :\n ${type.value} === 'phone'?\n '${keyboardType.phone}' : 'default'\n `\n state.render.push(` keyboardType={${dynamicKeyboardType}}`)\n } else if (keyboardType[type.value]) {\n state.render.push(` keyboardType='${keyboardType[type.value]}'`)\n }\n }\n }\n\n let autoCorrect = getProp(node, 'autoCorrect')\n if (!autoCorrect) {\n state.render.push(` autoCorrect={false}`)\n }\n\n let underlineColorAndroid = getProp(node, 'underlineColorAndroid')\n if (!underlineColorAndroid) {\n state.render.push(` underlineColorAndroid=\"transparent\"`)\n }\n\n let textAlignVertical = getProp(node, 'textAlignVertical')\n if (!textAlignVertical) {\n state.render.push(` textAlignVertical=\"top\"`)\n }\n}\n","import { getProp, hasProp, isSlot } from '../utils.js'\n\nexport default (node, parent, state) => {\n switch (node.name) {\n case 'Capture':\n case 'CaptureTextArea':\n return 'TextInput'\n\n case 'Horizontal':\n case 'Vertical':\n return getGroupBlockName(node, state)\n\n case 'List':\n return getListBlockName(node, state)\n\n case 'Text':\n if (node.isAnimated) {\n state.animated.add('Text')\n return 'AnimatedText'\n } else {\n return 'Text'\n }\n\n case 'View':\n return 'React.Fragment'\n\n default:\n return node.name\n }\n}\n\nlet getGroupBlockName = (node, state) => {\n let name = 'View'\n\n if (node.isFragment) {\n name = 'React.Fragment'\n } else if (hasProp(node, 'teleportTo')) {\n node.teleport = true\n } else if (hasProp(node, 'goTo')) {\n node.goTo = true\n } else if (hasProp(node, 'onClick')) {\n let propNode = getProp(node, 'onClick')\n node.action = propNode.value\n }\n\n if (hasProp(node, 'backgroundImage')) {\n let propNode = getProp(node, 'backgroundImage')\n node.backgroundImage = isSlot(propNode)\n ? propNode.value\n : JSON.stringify(propNode.value)\n\n name = 'Image'\n } else if (hasProp(node, 'overflowY', v => v === 'auto' || v === 'scroll')) {\n name = 'ScrollView'\n }\n\n if (node.isAnimated && name !== 'Link') {\n state.animated.add(name)\n name = `Animated${name}`\n }\n\n return name\n}\n\nlet getListBlockName = (node, state) => {\n let base = hasProp(node, /^overflow/, v => v === 'auto' || v === 'scroll')\n ? 'FlatList'\n : 'View'\n if (node.isAnimated) {\n state.animated.add(base)\n return `Animated${base}`\n } else {\n return base\n }\n}\n","import { getProp, getPropValueOrDefault, isStory } from '../utils.js'\nimport { leave } from '../react/block-name.js'\nimport handleTable from '../react/block-name-handle-table.js'\nimport getBlockName from './get-block-name.js'\n\nexport function enter(node, parent, state) {\n if (parent && !parent.isBasic && !node.isBasic) return true\n if (node.isFragment && node.children.length === 0) return true\n\n if (node.isFragment && node.name === 'View') {\n state.flow = getPropValueOrDefault(node, 'flow', false)\n state.flowDefaultState = null\n }\n\n if (isStory(node, state)) {\n state.use('ViewsUseFlow')\n\n // if (state.flowDefaultState === null) {\n // state.flowDefaultState = `${state.pathToStory}/${node.name}`\n // }\n }\n\n let name = getBlockName(node, parent, state)\n if (name === null) return true\n\n if (name === 'Animated.FlatList') {\n state.use('FlatList')\n name = 'AnimatedFlatList'\n }\n\n state.use(node.isBasic ? name.replace(/^Animated/, '') : name, node.isLazy)\n\n if (node.isProxy) {\n name = `props.proxy${name}`\n }\n node.nameFinal = name\n\n if (handleTable(node, parent, state)) return true\n\n state.render.push(`<${name}`)\n}\n\nexport { leave }\n","import { enter } from '../react/properties-style.js'\nimport {\n createId,\n getAnimatedStyles,\n getObjectAsString,\n // TODO: Think of a better name 🙈\n getNonAnimatedDynamicStyles,\n hasContentContainerStyleProp,\n getContentContainerStyleProps,\n removeContentContainerStyleProps,\n hasKeys,\n} from '../utils.js'\n\nexport { enter }\n\nexport let leave = (node, parent, state) => {\n if (node.isFragment) return\n\n let dynamicStyles = getNonAnimatedDynamicStyles(node)\n let baseStyle = null\n let animatedStyle = null\n let dynamicStyle = null\n let containerStyle = null\n\n if (\n node.ensureBackgroundColor &&\n (!('backgroundColor' in node.style.static.base) ||\n !('backgroundColor' in node.style.dynamic.base))\n ) {\n node.style.static.base.backgroundColor = 'transparent'\n }\n\n if (hasKeys(node.style.static.base)) {\n let id = createId(node, state)\n if (\n node.nameFinal.includes('FlatList') &&\n hasContentContainerStyleProp(node.style.static.base)\n ) {\n state.styles[`${id}ContentContainer`] = getContentContainerStyleProps(\n node.style.static.base\n )\n node.style.static.base = removeContentContainerStyleProps(\n node.style.static.base\n )\n containerStyle = `styles.${id}ContentContainer`\n }\n if (hasKeys(node.style.static.base)) {\n state.styles[id] = node.style.static.base\n baseStyle = `styles.${id}`\n }\n }\n\n if (node.isAnimated) {\n animatedStyle = getAnimatedStyles(node, state.isReactNative)\n\n state.isAnimated = true\n state.animations[node.id] = node.animations\n if (node.hasSpringAnimation) {\n state.hasSpringAnimation = true\n }\n\n if (node.hasTimingAnimation) {\n state.hasTimingAnimation = true\n }\n state.scopes = node.scopes\n }\n\n if (hasKeys(dynamicStyles)) {\n if (\n node.nameFinal.includes('FlatList') &&\n hasContentContainerStyleProp(dynamicStyles)\n ) {\n let dynamicContainerStyle = getObjectAsString(\n getContentContainerStyleProps(dynamicStyles)\n )\n dynamicStyles = removeContentContainerStyleProps(dynamicStyles)\n containerStyle = containerStyle\n ? `[${containerStyle},${dynamicContainerStyle}]`\n : dynamicContainerStyle\n }\n if (hasKeys(dynamicStyles)) {\n dynamicStyle = getObjectAsString(dynamicStyles)\n dynamicStyle = dynamicStyle.substr(1, dynamicStyle.length - 2)\n }\n }\n\n if (baseStyle || animatedStyle || dynamicStyle) {\n let style = baseStyle\n if (animatedStyle) {\n // TODO once https://github.com/drcmda/react-spring/issues/337 gets\n // fixed, come back to using the array notation\n style = `{...${baseStyle},${animatedStyle},${dynamicStyle || ''}}`\n } else if (dynamicStyle) {\n style = `[${baseStyle},{${dynamicStyle}}]`\n }\n\n state.render.push(` style={${style}}`)\n }\n\n if (containerStyle) {\n state.render.push(` contentContainerStyle={${containerStyle}}`)\n }\n}\n","let blacklist = [\n 'appregion',\n 'backgroundimage',\n 'backgroundsize',\n 'classname',\n 'clippath',\n 'cursor',\n 'fontweight',\n 'format',\n 'goto',\n 'isdisabled',\n 'isfragment',\n 'onclickid',\n 'onclickselected',\n 'onclickselectedtype',\n 'onclickusediv',\n 'onsubmit',\n 'overflow',\n 'overflowx',\n 'overflowy',\n 'pagebreakinside',\n 'perspective',\n 'rotatez',\n 'scalez',\n 'shadowspread',\n 'teleportto',\n 'texttransform',\n 'transformorigin',\n 'transformoriginz',\n 'transition',\n 'translatez',\n 'type',\n 'userselect',\n]\n\nexport default (node, parent, state) =>\n !blacklist.includes(node.name.toLowerCase())\n","import * as PropertiesRoute from '../react/properties-route.js'\nimport * as PropertiesStyle from './properties-style.js'\nimport * as PropertyFormat from '../react/property-format.js'\nimport * as PropertyRef from '../react/property-ref.js'\nimport * as PropertyRest from '../react/property-rest.js'\nimport * as PropertyStyle from '../react/property-style.js'\nimport * as PropertyText from '../react/property-text.js'\nimport { isColumn } from '../utils.js'\nimport isValidPropertyForBlock from './is-valid-property-for-block.js'\n\nexport function enter(node, parent, state) {\n if (node.isFragment) return false\n\n PropertiesStyle.enter(node, parent, state)\n PropertyFormat.enter(node, parent, state)\n\n node.properties.forEach(propNode => {\n if (\n propNode.name === 'lazy' ||\n propNode.name === 'at' ||\n propNode.name === 'when' ||\n propNode.name === 'onWhen' ||\n propNode.tags.unsupportedShorthand ||\n (!isValidPropertyForBlock(propNode, node, state) && node.isBasic) ||\n (propNode.name === 'from' &&\n (node.name === 'List' || node.name === 'Table')) ||\n (propNode.name === 'key' && parent.isList) ||\n (propNode.name === 'pass' && node.isList) ||\n (propNode.name === 'opacity' && state.isSvg) ||\n (propNode.name === 'width' && isColumn(node))\n )\n return\n\n !PropertyRef.enter(propNode, node, state) &&\n !PropertyStyle.enter(propNode, node, state) &&\n !PropertyText.enter(propNode, node, state) &&\n PropertyRest.enter(propNode, node, state)\n })\n\n PropertiesStyle.leave(node, parent, state)\n PropertiesRoute.leave(node, parent, state)\n}\n","import { getProp, hasProp } from '../utils.js'\n\nlet SVG_BLOCKS_WITH_OPACITY = [\n 'SvgPath',\n 'SvgCircle',\n 'SvgEllipse',\n 'SvgPolygon',\n 'SvgPolyline',\n 'SvgRect',\n 'SvgText',\n]\n\nexport function enter(node, parent, state) {\n if (node.name === 'Svg' && !parent) {\n state.isSvg = true\n state.svgOpacity = getProp(node, 'opacity')\n } else if (\n state.isSvg &&\n state.svgOpacity &&\n SVG_BLOCKS_WITH_OPACITY.includes(node.name)\n ) {\n if (hasProp(node, 'fill')) {\n node.properties.push({ ...state.svgOpacity, name: 'fillOpacity' })\n }\n\n if (hasProp(node, 'stroke')) {\n node.properties.push({ ...state.svgOpacity, name: 'strokeOpacity' })\n }\n }\n}\n","import { getProp, hasProp } from '../utils.js'\nimport getBlockName from './get-block-name.js'\nimport safe from '../react/safe.js'\nimport wrap from '../react/wrap.js'\n\nexport let enter = (node, parent, state) => {\n let name = getBlockName(node, parent, state)\n if (\n name === 'Text' &&\n parent &&\n (parent.backgroundImage || parent.ensureBackgroundColor)\n ) {\n node.ensureBackgroundColor = true\n }\n\n if (node.action) {\n let block = 'TouchableWithoutFeedback'\n let isDisabled = getProp(node, 'isDisabled')\n let onClick = getProp(node, 'onClick')\n\n let onPress = wrap(onClick.value)\n\n if (onClick.slotName === 'setFlow' && hasProp(node, 'onClickId')) {\n onPress = `{() => setFlow(\"${getProp(node, 'onClickId').value}\")}`\n state.use('ViewsUseFlow')\n state.setFlow = true\n // TODO warn if action is used but it isn't in actions (on parser)\n // TODO warn that there's setFlow without an id (on parser)\n }\n\n let key = getProp(node, 'key')\n\n state.use(block)\n\n state.render.push(\n `<${block}\n activeOpacity={0.7}\n onPress=${onPress}\n ${isDisabled ? `disabled=${wrap(isDisabled.value)}` : ''}\n underlayColor='transparent'\n ${node.isInList ? `key={${key ? key.value : 'index'}}` : ''}>`\n )\n node.wrapEnd = `</${block}>`\n } else if (node.teleport) {\n state.use('Link')\n let to = getProp(node, 'teleportTo').value\n\n state.render.push(\n `<Link\n activeOpacity={0.7}\n to=${safe(to)}\n underlayColor='transparent'>`\n )\n node.wrapEnd = '</Link>'\n } else if (node.goTo) {\n // let goTo = getProp(node, 'goTo')\n // TODO https://facebook.github.io/react-native/docs/linking.html\n }\n}\n\nexport let leave = (node, parent, state) => {\n if (node.wrapEnd) {\n state.render.push(node.wrapEnd)\n }\n}\n","import * as BlockAddTestIdProp from '../react/block-add-test-id-prop.js'\nimport * as BlockBackgroundImage from './block-background-image.js'\nimport * as BlockCapture from './block-capture.js'\nimport * as BlockColumn from '../react/block-column.js'\nimport * as BlockExplicitChildren from '../react/block-explicit-children.js'\nimport * as BlockGroup from '../react/block-group.js'\nimport * as BlockInList from '../react/block-in-list.js'\nimport * as BlockList from '../react/block-list.js'\nimport * as BlockMaybeSkip from '../react/block-maybe-skip.js'\nimport * as BlockName from './block-name.js'\nimport * as BlockOffWhen from '../react/block-off-when.js'\nimport * as BlockProperties from './block-properties.js'\nimport * as BlockProxy from '../react/block-proxy.js'\nimport * as BlockRoute from '../react/block-route.js'\nimport * as BlockSetTestId from '../react/block-set-test-id.js'\nimport * as BlockSvg from './block-svg.js'\nimport * as BlockTable from '../react/block-table.js'\nimport * as BlockTeleport from '../react/block-teleport.js'\nimport * as BlockWrap from './block-wrap.js'\n\nexport let enter = [\n BlockMaybeSkip.enter,\n BlockSetTestId.enter,\n BlockOffWhen.enter,\n BlockRoute.enter,\n BlockWrap.enter,\n BlockName.enter,\n BlockProxy.enter,\n BlockTable.enter,\n BlockColumn.enter,\n BlockSvg.enter,\n BlockCapture.enter,\n BlockBackgroundImage.enter,\n BlockTeleport.enter,\n BlockInList.enter,\n BlockAddTestIdProp.enter,\n BlockProperties.enter,\n BlockGroup.enter,\n BlockList.enter,\n]\n\nexport let leave = [\n BlockList.leave,\n BlockExplicitChildren.leave,\n BlockName.leave,\n BlockTable.leave,\n BlockWrap.leave,\n BlockRoute.leave,\n BlockOffWhen.leave,\n]\n","import {\n getProp,\n getScopedCondition,\n isTag,\n maybeMakeHyphenated,\n} from '../utils.js'\n\nexport default (node, parent, code) => {\n let scopedCondition = getScopedCondition(node, parent)\n if (scopedCondition) {\n switch (node.name) {\n case 'rotate':\n case 'rotateX':\n case 'rotateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n case 'translateX':\n case 'translateY':\n return {\n _isScoped: true,\n transform: getTransform(node, parent),\n }\n\n default:\n return {\n _isScoped: true,\n [node.name]: getScopedCondition(node, parent),\n }\n }\n }\n\n switch (node.name) {\n case 'borderTopLeftRadius':\n case 'borderTopRightRadius':\n case 'borderBottomLeftRadius':\n case 'borderBottomRightRadius':\n return {\n [parent.name === 'Image' ? 'borderRadius' : node.name]: node.value,\n }\n\n case 'borderTopStyle':\n case 'borderBottomStyle':\n case 'borderLeftStyle':\n case 'borderRightStyle':\n return {\n borderStyle: node.value,\n }\n\n case 'shadowColor':\n return decorateShadow({\n shadowColor: node.value,\n })\n\n case 'shadowBlur':\n return decorateShadow({\n shadowRadius: node.value,\n })\n\n case 'shadowOffsetX':\n case 'shadowOffsetY':\n return getShadowOffset(node, parent)\n\n case 'fontWeight':\n case 'fontFamily':\n return {\n fontFamily: getFontFamily(node, parent),\n }\n\n case 'rotate':\n case 'rotateX':\n case 'rotateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n case 'translateX':\n case 'translateY':\n return {\n transform: getTransform(node, parent),\n }\n\n case 'zIndex':\n return {\n zIndex: code ? node.value : parseInt(node.value, 10),\n }\n\n case 'color':\n // TODO handle this but differently as we don't have the placeholder tag anymore\n if (/Capture/.test(parent.name) && isTag(node, 'placeholder')) {\n return {\n _isProp: true,\n placeholderTextColor: node.value,\n }\n }\n // Just returning the node.value in cases where if statement is not true\n // Otherwise it was falling through to the next case.\n return {\n color: node.value,\n }\n\n case 'lineHeight':\n return {\n lineHeight: getLineHeight(node, parent),\n }\n\n default:\n return {\n [node.name]: maybeMakeHyphenated(node),\n }\n }\n}\n\nlet getFontFamily = (node, parent) => {\n let fontWeight = getProp(parent, 'fontWeight')\n // let key = node.key.value\n let fontFamily = node.value.replace(/\\s/g, '')\n\n if (fontWeight && (node.tags.slot || fontWeight.tags.slot)) {\n return `\\`${node.tags.slot ? '${props.fontFamily}' : fontFamily}-${\n fontWeight.tags.slot ? '${props.fontWeight}' : fontWeight.value\n }\\``\n }\n\n return fontWeight ? `${fontFamily}-${fontWeight.value}` : fontFamily\n}\n\nlet getLineHeight = (node, parent) => {\n let fontSize = getProp(parent, 'fontSize')\n // using a default font size of 16 if none specified\n let fontSizeValue = fontSize ? fontSize.value : 16\n return node.value * fontSizeValue\n}\n\nlet getShadowOffset = (node, parent) => {\n let shadowOffsetX = getProp(parent, 'shadowOffsetX')\n let shadowOffsetY = getProp(parent, 'shadowOffsetY')\n\n return decorateShadow({\n // iOS,\n shadowOffset: {\n width: shadowOffsetX ? shadowOffsetX.value : 0,\n height: shadowOffsetY ? shadowOffsetY.value : 0,\n },\n })\n}\n\nlet decorateShadow = obj => {\n obj.elevation = 1 // for Android\n obj.shadowOpacity = 1\n return obj\n}\n\nlet getPropValue = (prop, block, unit = '') => {\n if (!prop) return false\n\n let scopedCondition = getScopedCondition(prop, block)\n if (scopedCondition) {\n return unit ? `\\`\\${${scopedCondition}}${unit}\\`` : scopedCondition\n }\n\n if (prop.tags.slot) {\n return `\\${${prop.value}}${unit}`\n }\n\n return typeof prop.value === 'number' && unit\n ? `${prop.value}${unit}`\n : prop.value\n}\n\nlet getTransformValue = (prop, parent, unit) =>\n prop && {\n [prop.name]: getPropValue(prop, parent, unit),\n }\n\nlet getTransform = (node, parent) => {\n let rotate = getProp(parent, 'rotate')\n let rotateX = getProp(parent, 'rotateX')\n let rotateY = getProp(parent, 'rotateY')\n let scale = getProp(parent, 'scale')\n let scaleX = getProp(parent, 'scaleX')\n let scaleY = getProp(parent, 'scaleY')\n let translateX = getProp(parent, 'translateX')\n let translateY = getProp(parent, 'translateY')\n\n return [\n getTransformValue(rotate, parent, 'deg'),\n getTransformValue(rotateX, parent, 'deg'),\n getTransformValue(rotateY, parent, 'deg'),\n getTransformValue(scale, parent),\n getTransformValue(scaleX, parent),\n getTransformValue(scaleY, parent),\n getTransformValue(translateX, parent),\n getTransformValue(translateY, parent),\n ].filter(Boolean)\n}\n","import { hasKeys } from '../utils.js'\n\nexport default ({ styles }) =>\n hasKeys(styles)\n ? `let styles = StyleSheet.create(${JSON.stringify(styles)})`\n : ''\n","import {\n getProp,\n getScopedCondition,\n getScopedImageCondition,\n getScopes,\n hasProp,\n isValidImgSrc,\n pushImageToState,\n} from '../utils.js'\nimport safe from '../react/safe.js'\nimport wrap from '../react/wrap.js'\nimport toCamelCase from 'to-camel-case'\n\nlet isUrl = str => /^https?:\\/\\//.test(str)\n\nlet getImageSource = (node, state, parent) => {\n let scopes = getScopes(node, parent)\n\n if (scopes && (isUrl(node.value) || node.tags.slot)) {\n return `{{ uri: ${getScopedCondition(node, parent)} }}`\n } else if (isUrl(node.value) || node.tags.slot) {\n if (node.defaultValue && !isUrl(node.defaultValue)) {\n state.slots.forEach(item => {\n if (item.defaultValue === node.defaultValue) {\n item.type = 'import'\n let name = toCamelCase(item.defaultValue)\n if (!state.images.includes(item.defaultValue)) {\n state.images.push({\n name,\n file: item.defaultValue,\n })\n }\n item.defaultValue = name\n }\n })\n }\n return `{{ uri: ${node.tags.slot ? node.value : safe(node.value)} }}`\n } else {\n if (scopes) {\n pushImageToState(state, scopes.scopedNames, scopes.paths)\n }\n let name = toCamelCase(node.value)\n if (!state.images.includes(node.value)) {\n state.images.push({\n name,\n file: node.value,\n })\n }\n\n return scopes\n ? wrap(\n getScopedImageCondition(scopes.scopedProps, scopes.scopedNames, name)\n )\n : `{${name}}`\n }\n}\n\nexport default (node, parent, state) => {\n if (\n state.data &&\n (node.value === 'props.value' ||\n node.value === 'props.onSubmit' ||\n node.value === 'props.onChange' ||\n node.value === 'props.isValid' ||\n node.value === 'props.isInvalid')\n ) {\n return {\n [node.name]: `{${node.value.replace('props.', 'data.')}}`,\n }\n } else if (isValidImgSrc(node, parent)) {\n return (\n !parent.isSvg && {\n source: getImageSource(node, state, parent),\n }\n )\n } else if (getScopedCondition(node, parent)) {\n return {\n [node.name]: safe(getScopedCondition(node, parent)),\n }\n } else if (node.name === 'onClick') {\n if (parent.action) return false\n\n let onClick = safe(node.value, node)\n\n if (node.slotName === 'setFlow' && hasProp(parent, 'onClickId')) {\n onClick = `{() => setFlow(\"${getProp(parent, 'onClickId').value}\")}`\n state.use('ViewsUseFlow')\n state.setFlow = true\n // TODO warn if action is used but it isn't in actions (on parser)\n // TODO warn that there's setFlow without an id (on parser)\n }\n\n return { onClick }\n } else {\n return {\n [node.name]: safe(node.value, node),\n }\n }\n}\n","export default state => {\n if (state.uses.includes('Router')) {\n state.render = ['<Router>', ...state.render, '</Router>']\n }\n}\n","export default state => {\n if (Object.keys(state.styles).length > 0) {\n state.uses.push('StyleSheet')\n }\n}\n","import * as visitor from './react-native/block.js'\nimport getStyleForProperty from './react-native/get-style-for-property.js'\nimport getStyles from './react-native/get-styles.js'\nimport getValueForProperty from './react-native/get-value-for-property.js'\nimport getViewRelativeToView from '../get-view-relative-to-view.js'\nimport makeGetImport from './react/make-get-import.js'\nimport maybeUsesTextInput from './react-native/maybe-uses-text-input.js'\nimport maybeUsesRouter from './react-native/maybe-uses-router.js'\nimport maybeUsesStyleSheet from './react-native/maybe-uses-style-sheet.js'\nimport restrictedNames from './react-native/restricted-names.js'\nimport toComponent from './react/to-component.js'\nimport walk from './walk.js'\n\nlet imports = {\n DismissKeyboard: `import dismissKeyboard from 'dismissKeyboard'`,\n Link: \"import { Link } from 'react-router-native'\",\n Route: \"import { Route } from 'react-router-native'\",\n Router: \"import { NativeRouter as Router } from 'react-router-native'\",\n}\n\nexport default ({\n getFontImport,\n getSystemImport,\n local,\n localSupported,\n reactNativeLibraryImport = 'react-native',\n track,\n view,\n viewsById,\n viewsToFiles,\n}) => {\n let name = view.id\n let finalName = restrictedNames.includes(name) ? `${name}1` : name\n if (name !== finalName) {\n console.warn(\n `// \"${name}\" is a Views reserved name.\n We've renamed it to \"${finalName}\", so your view should work but this isn't ideal.\n To fix this, change its file name to something else.`\n )\n }\n\n let state = {\n animations: {},\n animated: new Set(),\n images: [],\n data: view.parsed.view.data,\n dataFormat: view.parsed.view.dataFormat,\n dataValidate: view.parsed.view.dataValidate,\n dependencies: new Set(),\n flow: null,\n setFlow: false,\n getFontImport: font => getFontImport(font, view),\n getStyleForProperty,\n getValueForProperty,\n hasRefs: false,\n isReactNative: true,\n isStory: id => {\n let viewInView = getViewRelativeToView({\n id,\n view,\n viewsById,\n viewsToFiles,\n })\n\n return viewInView && !viewInView.custom && viewInView.parsed.view.isStory\n },\n lazy: {},\n local,\n locals: {},\n localSupported: [],\n name: finalName,\n pathToStory: view.parsed.view.pathToStory,\n remap: {},\n render: [],\n styles: {},\n testIdKey: 'testID',\n testIds: {},\n track,\n reactNativeLibraryImport,\n usedBlockNames: { [finalName]: 1, AutoSizer: 1, Column: 1, Table: 1 },\n uses: [],\n use(block, isLazy = false) {\n if (isLazy) {\n state.lazy[block] = true\n }\n\n if (\n state.uses.includes(block) ||\n /props/.test(block) ||\n 'React.Fragment' === block ||\n block === finalName\n )\n return\n\n state.uses.push(block)\n },\n useIsBefore: view.parsed.view.useIsBefore,\n useIsMedia: view.parsed.view.useIsMedia,\n }\n\n state.fonts = view.parsed.fonts\n state.slots = view.parsed.slots\n state.localSupported = localSupported\n\n walk(view.parsed.view, visitor, state)\n\n maybeUsesTextInput(state)\n maybeUsesRouter(state)\n maybeUsesStyleSheet(state)\n\n if (state.data) {\n state.use('ViewsUseData')\n }\n\n return {\n code: toComponent({\n getImport: makeGetImport({\n imports,\n getSystemImport,\n view,\n viewsById,\n viewsToFiles,\n }),\n getStyles,\n name: finalName,\n state,\n }),\n dependencies: state.dependencies,\n flow: state.flow,\n flowDefaultState: state.flowDefaultState,\n // fonts: view.parsed.fonts,\n // slots: view.parsed.slots,\n }\n}\n","import reactNativeMorph from './react-native.js'\n\nexport default options =>\n reactNativeMorph({\n ...options,\n reactNativeLibraryImport: '@react-pdf/renderer',\n })\n","import reactDom from './morph/react-dom.js'\nimport reactNative from './morph/react-native.js'\nimport reactPdf from './morph/react-pdf.js'\n\nexport default {\n 'react-dom': reactDom,\n 'react-native': reactNative,\n 'react-pdf': reactPdf,\n}\n","import chalk from 'chalk'\nimport morphers from './morphers.js'\nimport prettier from 'prettier'\n\nexport default function maybeMorph({\n as,\n getFontImport,\n getSystemImport,\n local,\n track,\n view,\n viewsById,\n viewsToFiles,\n verbose,\n}) {\n try {\n let result = morphers[as]({\n getFontImport,\n getSystemImport,\n // isStory,\n local,\n // localSupported,\n track,\n view,\n viewsById,\n viewsToFiles,\n })\n\n view.version++\n\n verbose &&\n console.log(\n `${chalk.green('M')} ${view.id}@${view.version}:${chalk.dim(view.file)}`\n )\n\n return prettier.format(result.code, {\n parser: 'babel',\n singleQuote: true,\n trailingComma: 'es5',\n })\n } catch (error) {\n console.error(chalk.red('M'), view, error.codeFrame || error)\n return null\n }\n}\n","import maybeMorph from './maybe-morph.js'\n\nexport default function morphAllViews({\n as,\n getFontImport,\n getSystemImport,\n local,\n filesView,\n track,\n viewsById,\n viewsToFiles,\n}) {\n return [...filesView]\n .map(file => viewsToFiles.get(file))\n .filter(view => !view.custom)\n .map(view => ({\n file: `${view.file}.js`,\n content: maybeMorph({\n as,\n getFontImport,\n getSystemImport,\n local,\n track,\n verbose: false,\n view,\n viewsById,\n viewsToFiles,\n }),\n }))\n}\n","import chalk from 'chalk'\n\nexport default function maybePrintWarnings(view, verbose) {\n if (!verbose || !view.parsed || view.parsed.warnings.length === 0) return\n\n console.error(chalk.red(view.id), chalk.dim(view.file))\n\n view.parsed.warnings.forEach(warning => {\n console.error(\n ` ${chalk.yellow(warning.loc.start.line)}: ${chalk.blue(\n warning.type\n )} Line: \"${warning.line}\"`\n )\n })\n console.log('')\n}\n","export let STYLE = [\n 'alignContent',\n 'alignItems',\n 'alignSelf',\n 'appRegion',\n 'background',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundPosition',\n 'backgroundRepeat',\n 'backgroundSize',\n 'borderBottomColor',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderBottomStyle',\n 'borderBottomWidth',\n 'borderColor',\n 'borderLeftColor',\n 'borderLeftStyle',\n 'borderLeftWidth',\n 'borderRightColor',\n 'borderRightStyle',\n 'borderRightWidth',\n 'borderStyle',\n 'borderTopColor',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderTopStyle',\n 'borderTopWidth',\n 'borderWidth',\n 'bottom',\n 'clipPath',\n 'color',\n 'cursor',\n 'display',\n 'direction',\n 'fill',\n 'filter',\n 'flexGrow',\n 'flexBasis',\n 'flexDirection',\n 'flexFlow',\n 'flexShrink',\n 'flexWrap',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontWeight',\n 'height',\n 'hyphens',\n 'justifyContent',\n 'left',\n 'letterSpacing',\n 'lineHeight',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'maxHeight',\n 'maxWidth',\n 'minHeight',\n 'minWidth',\n 'opacity',\n 'outlineColor',\n 'outlineOffset',\n 'outlineStyle',\n 'outlineWidth',\n 'overflowWrap',\n 'overflowX',\n 'overflowY',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'pointerEvents',\n 'position',\n 'resize',\n 'right',\n 'shadowColor',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'shadowBlur',\n 'shadowSpread',\n 'stroke',\n 'textAlign',\n 'textDecoration',\n 'textOverflow',\n 'textJustify',\n 'textTransform',\n 'top',\n 'translateX',\n 'translateY',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'transformOriginX',\n 'transformOriginY',\n 'transition',\n 'userSelect',\n 'whiteSpace',\n 'width',\n 'wordBreak',\n 'wordSpacing',\n 'wordWrap',\n 'zIndex',\n // '@fontFace',\n // '@keyframes',\n // '@media',\n // 'background',\n // 'backgroundAttachment',\n // 'backgroundBlend-mode',\n // 'backgroundClip',\n // 'backgroundOrigin',\n // 'backgroundPosition',\n // 'backgroundRepeat',\n // 'border',\n // 'borderBottom',\n // 'borderCollapse',\n // 'borderImage',\n // 'borderImageOutset',\n // 'borderImageRepeat',\n // 'borderImageSlice',\n // 'borderImageSource',\n // 'borderImageWidth',\n // 'borderLeft',\n // 'borderRadius',\n // 'borderRight',\n // 'borderSpacing',\n // 'borderTop',\n // 'boxShadow',\n // 'boxSizing',\n // 'captionSide',\n // 'clear',\n // 'clip',\n // 'column-gap',\n // 'columnCount',\n // 'columnFill',\n // 'columnRule',\n // 'columnRuleColor',\n // 'columnRuleStyle',\n // 'columnRuleWidth',\n // 'columnSpan',\n // 'columnWidth',\n // 'columns',\n // 'content',\n // 'counterIncrement',\n // 'counterReset',\n // 'direction',\n // 'display',\n // 'emptyCells',\n // 'float',\n // 'font',\n // 'font-variant',\n // 'fontSizeAdjust',\n // 'fontStretch',\n // 'hangingPunctuation',\n // 'listStyle',\n // 'listStyleImage',\n // 'listStylePosition',\n // 'listStyleType',\n // 'margin',\n // 'nav-up',\n // 'navDown',\n // 'navIndex',\n // 'navLeft',\n // 'navRight',\n 'order',\n // 'outline',\n // 'overflow',\n // 'padding',\n // 'pageBreakAfter',\n // 'pageBreakBefore',\n // 'pageBreakInside',\n // 'perspective',\n // 'perspectiveOrigin',\n // 'quotes',\n // 'tabSize',\n // 'tableLayout',\n // 'textAlignLast',\n // 'textDecorationColor',\n // 'textDecorationLine',\n // 'textDecorationStyle',\n // 'textIndent',\n // 'textShadow',\n // 'transformStyle',\n // 'transitionDelay',\n // 'transitionDuration',\n // 'transitionProperty',\n // 'transitionTimingFunction',\n // 'unicodeBidi',\n // 'verticalAlign',\n // 'visibility',\n]\nexport let ROWSTYLE = [\n 'rowBackgroundColor',\n 'rowBackgroundColorAlternate',\n 'rowColor',\n 'rowColorAlternate',\n]\n\nexport let isStyle = name => STYLE.includes(name)\nexport let isRowStyle = name => ROWSTYLE.includes(name)\n","import Levenshtein from 'levenshtein'\nimport sortBy from 'lodash.sortby'\n\n/**\n * Creates a fuzzy matcher.\n *\n * Usage:\n *\n * ```\n * var m = new Matcher({\n * values: 'init install update upgrade',\n * threshold: 4\n * });\n *\n * m.list('udpate') // [ { value: 'update', distance: 2 }, { value: 'upgrade', distance: 4 } ]\n * m.get('udpate') // { value: 'update', distance: 2 }\n * ```\n *\n * You can also initialize with an array or with a string directly:\n *\n * ```\n * new Matcher('init install update upgrade');\n * new Matcher(['init', 'install', 'update', 'upgrade']);\n * ```\n *\n * @param options {Object} may contain:\n *\n * * `threshold` (number, default `2`) — maximum search distance, increase\n * for more relaxed search\n *\n * * `values` (array or string, default `[]`) — an array of words to match from;\n * if a string is given, values can be separated with comma or whitespace\n *\n * * `caseSensitive` (boolean, default `false`) — ignore case when matching\n */\nvar Matcher = function(options) {\n options = options || {}\n if (typeof options == 'string' || Array.isArray(options))\n options = { values: options }\n this.values = []\n this.threshold = options.threshold || 2\n\n // Try to initialize via `options.values`\n\n if (Array.isArray(options.values)) this.values = options.values\n else if (typeof options.values == 'string')\n this.values = options.values.split(/[, ]\\s*/g)\n\n this.caseSensitive = options.caseSensitive || false\n}\n\n/**\n * Adds values to the dictionary.\n *\n * Usage:\n *\n * ```\n * new Matcher().add('update', 'upgrade', 'delete').get('deete')\n * ```\n *\n * @returns {Matcher} this for chaining\n */\nMatcher.prototype.add = function() {\n ;[].push.apply(this.values, arguments)\n return this\n}\n\n/**\n * Chainable helper for settings `this.caseSensitive = false`.\n *\n * @returns {Matcher} this for chaining\n */\nMatcher.prototype.ignoreCase = function() {\n this.caseSensitive = false\n return this\n}\n\n/**\n * Chainable helper for settings `this.caseSensitive = true`.\n *\n * @returns {Matcher} this for chaining\n */\nMatcher.prototype.matchCase = function() {\n this.caseSensitive = true\n return this\n}\n\n/**\n * Chainable helper for settings `this.threshold`.\n *\n * @param num {Number} new threshold\n * @returns {Matcher} this for chaining\n */\nMatcher.prototype.setThreshold = function(num) {\n this.threshold = num\n return this\n}\n\n/**\n * Calculate distance (how much difference) between two strings\n *\n * @param word1 {String} a string input\n * @param word2 {String} the other string input\n * @returns {Number} Levenshtein distance between word1 and word2\n */\nMatcher.prototype.distance = function(word1, word2) {\n return new Levenshtein(word1, word2).distance\n}\n\n/**\n * Lists all results from dictionary which are similar to `q`.\n *\n * ```\n * new Matcher({\n * values: 'init install update upgrade',\n * threshold: 4\n * }).list('udpdate');\n * // [ { value: 'update', distance: 2 }, { value: 'upgrade', distance: 4 } ]\n * ```\n *\n * The results are sorted by their distance (similarity). The distance of `0` means\n * a strict match.\n *\n * You can increase `threshold` for more relaxed search, or decrease it to shorten the results.\n *\n * @param q {String} — search string\n * @returns {Array} — an array of objects `{ value: String, distance: Number }`\n */\nMatcher.prototype.list = function(q) {\n var m = this\n q = q.trim()\n if (!m.caseSensitive) q = q.toLowerCase()\n var matches = this.values.reduce(function(results, word) {\n var d = m.distance(q, m.caseSensitive ? word : word.toLowerCase())\n if (d > m.threshold) return results\n return results.concat({\n value: word,\n distance: d,\n })\n }, [])\n return sortBy(matches, 'distance')\n}\n\n/**\n * Returns a single closest match (or `null` if no values from the dictionary\n * are similar to `q`).\n *\n * @param q {String} — search string\n * @returns {String} — closest match or `null`\n */\nMatcher.prototype.get = function(q) {\n var closest = this.list(q)[0]\n return closest ? closest.value : null\n}\n\nexport default Matcher\n","export default {\n width: true,\n maxWidth: true,\n minWidth: true,\n height: true,\n maxHeight: true,\n minHeight: true,\n margin: true,\n marginBottom: true,\n marginLeft: true,\n marginRight: true,\n marginTop: true,\n padding: true,\n paddingBottom: true,\n paddingLeft: true,\n paddingRight: true,\n paddingTop: true,\n bottom: true,\n left: true,\n right: true,\n top: true,\n outline: true,\n opacity: true,\n zIndex: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomWidth: true,\n borderLeftWidth: true,\n borderRadius: true,\n borderRightWidth: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopWidth: true,\n borderWidth: true,\n fontSize: true,\n fontWeight: true,\n letterSpacing: true,\n lineHeight: true,\n wordSpacing: true,\n}\n","import { isRowStyle, isStyle, STYLE } from './prop-is-style.js'\nimport { fontFamily as googleFontFamilies } from '../morph/fonts.js'\nimport DidYouMeanMatcher from './did-you-mean.js'\nimport isNumber from './prop-is-number.js'\nimport locales from 'i18n-locales'\nimport toSlugCase from 'to-slug-case'\n\nlet LOCAL_SCOPES = locales.map(item => item.replace(/-/g, ''))\n\nlet dymPropMatcher = new DidYouMeanMatcher([\n ...STYLE,\n 'at',\n 'className',\n 'cx',\n 'cy',\n 'd',\n 'data',\n 'xdata',\n 'dataFormat',\n 'defaultValue',\n 'fill',\n 'flow',\n 'from',\n 'direction',\n 'id',\n 'key',\n 'maxLength',\n 'max',\n 'min',\n 'onBlur',\n 'onChange',\n 'onClick',\n 'onClickId',\n 'onClickSelected',\n 'onClickSelectedType',\n 'onClickUseDiv',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onFocus',\n 'onFocus',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseUp',\n 'order',\n 'onWheel',\n 'onWhen',\n 'r',\n 'ref',\n 'rx',\n 'ry',\n 'step',\n 'stroke',\n 'stroke',\n 'strokeLinecap',\n 'strokeLinejoin',\n 'strokeMiterlimit',\n 'strokeWidth',\n 'tabIndex',\n 'text',\n 'type',\n 'value',\n 'viewBox',\n 'when',\n 'x',\n 'x1',\n 'x2',\n 'y',\n 'y1',\n 'y2',\n])\n\nexport let makeDidYouMeanBlock = views => {\n let dymBlockMatcher = new DidYouMeanMatcher(\n 'Capture|CaptureTextArea|Horizontal|Image|List|Svg|SvgCircle|SvgEllipse|SvgDefs|SvgGroup|SvgLinearGradient|SvgRadialGradient|SvgLine|SvgPath|SvgPolygon|SvgPolyline|SvgRect|SvgSymbol|SvgText|SvgUse|SvgStop|Text|View|Vertical'\n .split('|')\n .concat(views)\n )\n return block => dymBlockMatcher.get(block)\n}\n\nexport let didYouMeanProp = prop => dymPropMatcher.get(prop)\n\nexport let makeDidYouMeanFontFamily = customFonts => {\n let dymFontFamilyMatcher = new DidYouMeanMatcher(\n googleFontFamilies.concat(customFonts)\n )\n return family => dymFontFamilyMatcher.get(family)\n}\n\nlet ANIMATION = /(.+)(?:\\s)(spring|linear|easeOut|easeInOut|easeIn|ease)(?:\\s?(.*)?)/\nlet BASIC = /^(Capture|CaptureTextArea|Column|Horizontal|Image|List|Svg|SvgCircle|SvgEllipse|SvgDefs|SvgGroup|SvgLinearGradient|SvgRadialGradient|SvgLine|SvgPath|SvgPolygon|SvgPolyline|SvgRect|SvgSymbol|SvgText|SvgUse|SvgStop|Table|Text|View|Vertical)$/i\nlet BLOCK = /^(\\s*)([A-Z][a-zA-Z0-9]*)(\\s+([A-Z][a-zA-Z0-9]*))?$/\nlet BOOL = /^(false|true)$/i\nlet CAPTURE = /^(Capture|CaptureTextArea)$/i\nexport let CAPTURE_TYPES = [\n 'email',\n 'file',\n 'number',\n 'phone',\n 'secure',\n 'text',\n]\nlet COMMENT = /^#(.+)$/\nlet FLOAT = /^-?[0-9]+\\.[0-9]+$/\nlet FONTABLE = /^(Capture|CaptureTextArea|Text)$/\nlet INT = /^-?[0-9]+$/\nlet NOT_GROUP = /^(Image|Text|SvgCircle|SvgEllipse|SvgLine|SvgPath|SvgPolygon|SvgPolyline|SvgRect|SvgText|SvgStop)$/i\nlet PROP = /^([a-z][a-zA-Z0-9]*)(\\s+(.+))?$/\nlet UNSUPPORTED_SHORTHAND = {\n border: ['borderWidth', 'borderStyle', 'borderColor'],\n borderBottom: ['borderBottomWidth', 'borderBottomStyle', 'borderBottomColor'],\n borderTop: ['borderTopWidth', 'borderTopStyle', 'borderTopColor'],\n borderRight: ['borderRightWidth', 'borderRightStyle', 'borderRightColor'],\n borderLeft: ['borderLeftWidth', 'borderLeftStyle', 'borderLeftColor'],\n borderRadius: [\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n ],\n boxShadow: [\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'shadowBlur',\n 'shadowSpread',\n 'shadowColor',\n ],\n flex: ['flexGrow', 'flexShrink', 'flexBasis'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n textShadow: ['shadowOffsetX', 'shadowOffsetY', 'shadowBlur', 'shadowColor'],\n outline: ['outlineWidth', 'outlineStyle', 'outlineColor'],\n overflow: ['overflowX', 'overflowY'],\n transform: [\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'scale',\n 'translateX',\n 'translateY',\n ],\n transformOrigin: ['transformOriginX', 'transformOriginY'],\n}\nlet TRUE = /^true$/i\nlet USER_COMMENT = /^##(.*)$/\n// TODO slot can't start with a number\nlet SLOT = /^<((!)?([a-zA-Z0-9]+))?(\\s+(.+))?$/\n\nexport let is = (thing, line) => thing.test(line)\nexport let isAnimation = line => is(ANIMATION, line)\nexport let isBasic = line => is(BASIC, line)\nexport let isBlock = line => is(BLOCK, line)\nexport let isBool = line => is(BOOL, line)\nexport let isCapture = line => is(CAPTURE, line)\nexport let isColumn = line => line === 'Column'\nexport let isComment = line => is(COMMENT, line)\nexport let isEmptyText = line => line === ''\nexport let isEnd = line => line === ''\nexport let isFloat = line => is(FLOAT, line)\nexport let isFragment = line => line === 'isFragment'\nexport let isFontable = line => is(FONTABLE, line)\nexport let isGroup = line => !is(NOT_GROUP, line) && !isCapture(line)\nexport let isList = line => line === 'List'\nexport let isInt = line => is(INT, line)\nexport let isProp = line => is(PROP, line)\nexport let isSlot = line => is(SLOT, line)\nexport let isTable = line => line === 'Table'\nexport let isUnsupportedShorthand = name => name in UNSUPPORTED_SHORTHAND\nexport { isRowStyle, isStyle }\nexport let isTrue = line => is(TRUE, line)\nexport let isUserComment = line => is(USER_COMMENT, line)\n\nlet get = (regex, line) => line.match(regex)\n\nlet addDefaults = (animationType, properties) => {\n // if (!properties.delay) {\n // properties.delay = 0\n // }\n\n if (animationType !== 'spring' && !properties.duration) {\n properties.duration = 150\n } else if (animationType === 'spring') {\n if (!properties.tension) {\n properties.tension = 170\n }\n if (!properties.friction) {\n properties.friction = 26\n }\n }\n return properties\n}\n\nexport let getAnimation = line => {\n // eslint-disable-next-line\n let [_, defaultValue, animationType, animationValues] = get(ANIMATION, line)\n let properties = {\n curve: animationType,\n }\n\n if (animationValues) {\n let values = animationValues.split(' ')\n for (let i = 0; i < values.length; i = i + 2) {\n properties[values[i]] = getValue(values[i + 1])\n }\n }\n\n addDefaults(animationType, properties)\n\n return {\n id: Object.keys(properties)\n .sort()\n .map(key => `${key}${properties[key]}`)\n .join(''),\n defaultValue: getValue(defaultValue),\n properties,\n }\n}\n\nexport let getBlock = line => {\n // eslint-disable-next-line\n let [_, indentation, is, _1, block] = get(BLOCK, line)\n return {\n block: block || is,\n is: block ? is : null,\n level: Math.floor(indentation.length / 2),\n }\n}\nexport let getComment = line => {\n try {\n return get(COMMENT, line).slice(1)\n } catch (err) {\n return ''\n }\n}\n\nexport let getData = maybeProp => {\n if (!maybeProp) return null\n\n let match = maybeProp.value.match(/^(show|capture)\\s+(.+)$/)\n if (!match) return null\n\n return { type: match[1], path: match[2] }\n}\nexport let getDataFormat = maybeProp => {\n if (!maybeProp) return null\n\n let match = maybeProp.value.match(/^(date)\\s+(.+?)\\s+(.+?)(\\s+(.+))?$/)\n if (!match) return null\n\n return {\n type: match[1],\n formatIn: match[2],\n formatOut: match[3],\n whenInvalid: match[5] || null,\n }\n}\n\nexport let getDataValidate = maybeProp => {\n if (!maybeProp || !maybeProp.value) return null\n let [value, required] = maybeProp.value.split(' ')\n return {\n type: 'js',\n value,\n required: required === 'required',\n }\n}\n\nexport let getFormat = line => {\n let properties = {}\n let values = line.split(' ')\n let formatKey = values[0]\n\n if (values.length === 2) {\n properties[formatKey] = values[1]\n } else {\n properties[formatKey] = {}\n for (let i = 1; i < values.length; i = i + 2) {\n properties[formatKey][values[i]] = getValue(values[i + 1])\n }\n }\n\n return properties\n}\nexport let getProp = line => {\n // eslint-disable-next-line\n let [_, name, _1, value = ''] = get(PROP, line)\n\n let prop = { name, isSlot: false, value }\n\n if (is(SLOT, value)) {\n let [\n // eslint-disable-next-line\n _2,\n slotIsNot = false,\n slotName = '',\n // eslint-disable-next-line\n _3,\n // eslint-disable-next-line\n defaultValue = '',\n ] = getSlot(value)\n\n prop.isSlot = true\n prop.slotIsNot = slotIsNot === '!'\n prop.slotName = slotName\n prop.value = defaultValue || value\n }\n\n return prop\n}\nexport let getSlot = line => get(SLOT, line).slice(1)\nexport let getUnsupportedShorthandExpanded = (name, value) => {\n let props = UNSUPPORTED_SHORTHAND[name]\n\n if (name === 'borderRadius') {\n let theValue = value.replace('px', '')\n\n return [\n `${props[0]} ${theValue}`,\n `${props[1]} ${theValue}`,\n `${props[2]} ${theValue}`,\n `${props[3]} ${theValue}`,\n ]\n } else if (name.startsWith('border') || name === 'outline') {\n let [width, style, ...color] = value.split(' ')\n\n return [\n `${props[0]} ${width.replace('px', '')}`,\n `${props[1]} ${style}`,\n `${props[2]} ${color.join(' ')}`,\n ]\n } else if (name === 'boxShadow') {\n let [offsetX, offsetY, blurRadius, spreadRadius, ...color] = value.split(\n ' '\n )\n\n return [\n `${props[0]} ${offsetX.replace('px', '')}`,\n `${props[1]} ${offsetY.replace('px', '')}`,\n `${props[2]} ${blurRadius.replace('px', '')}`,\n `${props[3]} ${spreadRadius.replace('px', '')}`,\n `${props[4]} ${color.join(' ')}`,\n ]\n } else if (name === 'textShadow') {\n let [offsetX, offsetY, blurRadius, ...color] = value.split(' ')\n\n return [\n `${props[0]} ${offsetX.replace('px', '')}`,\n `${props[1]} ${offsetY.replace('px', '')}`,\n `${props[2]} ${blurRadius.replace('px', '')}`,\n `${props[3]} ${color.join(' ')}`,\n ]\n } else if (name === 'overflow') {\n return [`${props[0]} ${value}`, `${props[1]} ${value}`]\n } else if (name === 'padding' || name === 'margin') {\n let [top, right, bottom, left] = value.split(' ')\n top = top.replace('px', '')\n right = right ? right.replace('px', '') : top\n bottom = bottom ? bottom.replace('px', '') : top\n left = left ? left.replace('px', '') : right || top\n\n return [\n `${props[0]} ${top}`,\n `${props[1]} ${right}`,\n `${props[2]} ${bottom}`,\n `${props[3]} ${left}`,\n ]\n } else if (name === 'flex') {\n return [`flexGrow ${value}`, 'flexShrink 1', 'flexBasis 0%']\n } else if (name === 'transform') {\n return [`expand the values like: translateX 10`]\n } else if (name === 'transformOrigin') {\n let [x, y] = value.split(' ')\n return [`${props[0]} ${x}`, `${props[1]} ${y || x}`]\n }\n\n return []\n}\nexport let getValue = (value, name) => {\n if (isFloat(value)) {\n return parseFloat(value, 10)\n } else if (isInt(value)) {\n return parseInt(value, 10)\n } else if (isEmptyText(value)) {\n return ''\n } else if (isBool(value)) {\n return isTrue(value)\n } else {\n return maybeMakeHyphenated(value, name)\n }\n}\n\nexport let isLocalScope = name => LOCAL_SCOPES.includes(name)\n\nlet SYSTEM_SCOPES = [\n 'isDisabled',\n 'isFocused',\n 'isHovered',\n 'isPlaceholder',\n // 'isSelected',\n // TODO do we want to do media queries here?\n]\nexport let isSystemScope = name => SYSTEM_SCOPES.includes(name)\n\nlet isActionable = name => name !== 'onWhen' && /^on[A-Z]/.test(name)\n\nexport let getPropType = (block, name, defaultValue) =>\n block.isList && name === 'from'\n ? 'array'\n : isActionable(name)\n ? 'function'\n : isNumber[name]\n ? 'number'\n : 'string'\n\nlet MAYBE_HYPHENATED_STYLE_PROPS = [\n 'alignContent',\n 'alignItems',\n 'alignSelf',\n 'backgroundBlendMode',\n 'backgroundClip',\n 'backgroudOrigin',\n 'backgroundRepeat',\n 'boxSizing',\n 'clear',\n 'cursor',\n 'flexBasis',\n 'flexDirection',\n 'flexFlow',\n 'flexWrap',\n 'float',\n 'fontStretch',\n 'justifyContent',\n 'objectFit',\n 'overflowWrap',\n 'textAlign',\n 'textDecorationLine',\n 'textTransform',\n 'whiteSpace',\n 'wordBreak',\n]\n\nexport let maybeMakeHyphenated = (value, name) =>\n MAYBE_HYPHENATED_STYLE_PROPS.includes(name) && /^[a-zA-Z]+$/.test(value)\n ? toSlugCase(value)\n : value\n","export default (line, scolumn, ecolumn) => ({\n start: {\n line,\n column: scolumn,\n },\n end: {\n line,\n column: ecolumn,\n },\n})\n","import {\n isAnimation,\n isRowStyle,\n isFragment,\n isStyle,\n isUnsupportedShorthand,\n} from './helpers.js'\n\nlet SLOT_PROPS = [\n 'onBlur',\n 'onChange',\n 'onClick',\n 'onClickSelected',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onFocus',\n 'onFocus',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseUp',\n 'onWheel',\n 'onWhen',\n 'when',\n]\nlet shouldBeSlot = (prop, block) =>\n SLOT_PROPS.includes(prop) || (block.isList && prop === 'from')\n\nexport default ({ name, isSlot, slotIsNot, value, block }) => {\n let tags = {}\n\n if (isAnimation(value) && name !== 'text') tags.animation = true\n if (isStyle(name)) tags.style = true\n if (isRowStyle(name)) {\n tags.style = true\n tags.rowStyle = true\n }\n if (\n isUnsupportedShorthand(name) &&\n block.isBasic &&\n !block.name.startsWith('Svg')\n ) {\n tags.unsupportedShorthand = true\n }\n\n if (shouldBeSlot(name, block)) tags.shouldBeSlot = true\n if (isSlot) tags.slot = true\n if (slotIsNot) tags.slotIsNot = true\n\n tags.validSlot = tags.slot || (tags.shouldBeSlot && tags.slot) || null\n\n if (isFragment(name)) tags.fragment = true\n\n return tags\n}\n","import {\n CAPTURE_TYPES,\n makeDidYouMeanBlock,\n didYouMeanProp,\n getAnimation,\n getBlock,\n getComment,\n getData,\n getDataFormat,\n getDataValidate,\n getFormat,\n getProp,\n getPropType,\n getUnsupportedShorthandExpanded,\n getValue,\n isBasic,\n isBlock,\n isCapture,\n isColumn,\n isComment,\n isFontable,\n isGroup,\n isList,\n isProp,\n isTable,\n isLocalScope,\n isSystemScope,\n isUserComment,\n makeDidYouMeanFontFamily,\n} from './helpers.js'\nimport { isGoogleFont } from '../morph/fonts.js'\nimport getLoc from './get-loc.js'\nimport getTags from './get-tags.js'\nimport path from 'path'\n\nexport default ({\n convertSlotToProps = true,\n customFonts,\n enableLocalScopes = true,\n enableSystemScopes = true,\n file,\n id,\n skipComments = true,\n skipInvalidProps = true,\n warnMissingDefaultValue = false,\n source,\n src,\n views,\n}) => {\n // convert crlf to lf\n let text = source.replace(/\\r\\n/g, '\\n')\n let rlines = text.split('\\n')\n let lines = rlines.map(line => line.trimRight())\n let fonts = []\n let locals = []\n let stack = []\n let slots = []\n let useIsBefore = false\n let useIsMedia = false\n let view = null\n let viewsInView = new Set()\n let warnings = []\n\n let didYouMeanBlock = makeDidYouMeanBlock([...views.keys()])\n let didYouMeanFontFamily = makeDidYouMeanFontFamily(\n [...customFonts.keys()].map(id => id.split('-')[0])\n )\n\n let blockIds = []\n function getBlockId(node) {\n let maybeId = node.is || node.name\n\n if (!blockIds.includes(maybeId)) {\n blockIds.push(maybeId)\n return maybeId\n }\n\n let index = 1\n while (blockIds.includes(`${maybeId}${index}`)) {\n index++\n }\n let id = `${maybeId}${index}`\n blockIds.push(id)\n return id\n }\n\n function getChildrenProxyMap(block) {\n let childrenProxyMap = {}\n\n block.children\n .filter(child => child.is)\n .forEach(child => {\n childrenProxyMap[child.is] = child.name\n })\n\n return Object.keys(childrenProxyMap).length === 0 ? null : childrenProxyMap\n }\n\n function lookForFonts(block) {\n if (block.properties && (isFontable(block.name) || !block.isBasic)) {\n let fontFamilyProp = block.properties.find(p => p.name === 'fontFamily')\n if (!fontFamilyProp) return\n\n let family = fontFamilyProp.value\n\n let fontWeightProp = block.properties.find(p => p.name === 'fontWeight')\n let weight = fontWeightProp ? fontWeightProp.value.toString() : '400'\n\n let fontStyleProp = block.properties.find(p => p.name === 'fontStyle')\n let style = fontStyleProp ? fontStyleProp.value.toString() : 'normal'\n\n if (\n !fonts.find(\n font =>\n font.family === family &&\n font.weight === weight &&\n font.style === style\n )\n ) {\n let font = {\n id: `${family}-${weight}${style === 'italic' ? '-italic' : ''}`,\n isGoogleFont: isGoogleFont(family),\n family,\n weight,\n style,\n }\n\n if (font.isGoogleFont || customFonts.has(font.id)) {\n fonts.push(font)\n } else {\n let meant = didYouMeanFontFamily(family)\n if (meant && meant !== family) {\n warnings.push({\n loc: fontFamilyProp.loc,\n type: `The font \"${family}\" is missing. Did you mean \"${meant}\" instead?\\nIf not, download the font files (eg, \"${font.id}.woff2\", \"${font.id}.woff\", \"${font.id}.ttf\", etc) and add the to the \"Fonts\" folder.`,\n line: lines[fontFamilyProp.loc.start.line - 1],\n })\n } else if (!font.weight.startsWith('props.')) {\n warnings.push({\n loc: fontFamilyProp.loc,\n type: `The font \"${family}\" is missing.\\nDownload the font files (eg, \"${font.id}.woff2\", \"${font.id}.woff\", \"${font.id}.ttf\", etc) and add the to the \"Fonts\" folder.`,\n line: lines[fontFamilyProp.loc.start.line - 1],\n })\n }\n }\n }\n }\n }\n\n function lookForMultiples(block) {\n let freq = {}\n block.properties.forEach(prop => {\n if (!(prop.name in freq)) {\n freq[prop.name] = 0\n }\n freq[prop.name]++\n })\n\n let multiples = Object.keys(freq).filter(name => freq[name] > 1)\n\n if (multiples.length > 0) {\n multiples.forEach(name =>\n warnings.push({\n loc: block.loc,\n type: `You have declared a value for ${name} ${freq[name]} times. Only the last value will be used. Delete the ones you don't use.`,\n line: lines[block.loc.start.line - 1],\n })\n )\n }\n }\n\n function end(block, endLine) {\n block.loc.end = {\n line: endLine + 1,\n column: Math.max(0, lines[endLine].length - 1),\n }\n\n if (block.isGroup && !block.isBasic) {\n block.childrenProxyMap = getChildrenProxyMap(block)\n }\n\n if (!block.properties) {\n block.properties = []\n }\n\n if (\n block.name === 'List' &&\n !block.properties.some(prop => prop.name === 'from')\n ) {\n warnings.push({\n loc: block.loc,\n type: `A List needs \"from <\" to work`,\n line: lines[block.loc.start.line - 1],\n })\n }\n\n if (stack.length === 0) {\n // if we're the last block on the stack, then this is the view!\n view = block\n return true\n }\n return false\n }\n\n function parseBlock(line, i) {\n let { block: name, is, level } = getBlock(line)\n let shouldPushToStack = false\n\n let block = {\n type: 'Block',\n name,\n animations: {},\n isAnimated: false,\n isBasic: isBasic(name),\n isCapture: isCapture(name),\n isColumn: isColumn(name),\n isGroup: false,\n isProxy: false,\n level,\n loc: getLoc(i + 1, 0),\n properties: [],\n scopes: [],\n }\n\n let meant = didYouMeanBlock(name)\n if (meant) {\n if (meant !== name) {\n warnings.push({\n loc: block.loc,\n type: `\"${name}\" doesn't exist and won't be morphed. Did you mean \"${meant}\" instead of \"${name}\"?`,\n line,\n })\n block.skip = true\n }\n } else {\n warnings.push({\n loc: block.loc,\n type: `\"${name}\" doesn't exist and won't be morphed.\\nCreate the view or rename the block to point to the right view.`,\n line,\n })\n block.skip = true\n }\n\n if (id === name) {\n warnings.push({\n loc: block.loc,\n type: `Is this a typo? You can't use the view within itself.\\nRename the view or use a different block instead of ${name} here. This won't be morphed to avoid loops.`,\n line,\n })\n block.skip = true\n }\n\n if (!block.isBasic) {\n viewsInView.add(block.name)\n }\n\n if (is) {\n block.is = is\n }\n block.id = getBlockId(block)\n\n let last = stack[stack.length - 1]\n while (last && last.level >= block.level) {\n end(stack.pop(), i)\n last = stack[stack.length - 1]\n }\n\n if (last) {\n shouldPushToStack = true\n\n if (last.isGroup) {\n if (last.isList) {\n if (block.isBasic) {\n warnings.push({\n loc: block.loc,\n type: `A basic block \"${block.name}\" can't be inside a List. Use a view you made instead.`,\n line,\n blocker: true,\n })\n } else if (last.children.length > 0) {\n warnings.push({\n loc: block.loc,\n type: `A List can only have one view inside. \"${block.name}\" is outside of it. Put 1 empty line before.`,\n line,\n })\n } else {\n last.children.push(block)\n }\n } else if (block.isColumn && !last.isTable) {\n warnings.push({\n loc: block.loc,\n type: `Only tables can contain columns. Put this column directly inside a table.`,\n line,\n })\n } else if (!last.isBasic) {\n if (block.isBasic) {\n warnings.push({\n loc: block.loc,\n type: `A basic block \"${block.name}\" cant' be inside a View. Use a view you made instead.`,\n line,\n blocker: true,\n })\n } else {\n if (!block.is) {\n warnings.push({\n loc: block.loc,\n type: `A view inside a view needs to be named after the view it will be proxied at.\nYour proxied view probably looks like:\n${block.name}\n SomeView\n proxy true\n\nYou should replace \"${block.name}\" with \"SomeView ${block.name}\"\n\nThat would mean that SomeView in ${block.name} will be replaced by ${block.name}.`,\n })\n }\n last.children.push(block)\n }\n } else {\n last.children.push(block)\n }\n } else {\n end(stack.pop(), i)\n\n // inside a block that isn't a group\n if (last.isBasic) {\n warnings.push({\n loc: block.loc,\n type: `${block.is || block.name} is inside a block ${last.is ||\n last.name} but ${\n last.name\n } isn't a container and can't have blocks inside of it.\\nIndent it one level less.`,\n line,\n })\n } else {\n warnings.push({\n loc: block.loc,\n type: `${block.is ||\n block.name} is inside a view. While that's allowed for now, it may break in the future. Ideally, you'd refactor it into its specific own view.`,\n line,\n })\n }\n }\n } else if (view !== null) {\n warnings.push({\n loc: block.loc,\n type: `${block.is ||\n block.name} is outside of the top block and it won't render. Views relies on indentation to nest child views within View blocks\\nTo fix it, either:\\na) Indent ${block.is ||\n block.name} within the top block and indent all nested views within ${block.is ||\n block.name}, or\\nb) remove it.`,\n line,\n })\n }\n\n if (isGroup(name)) {\n block.isGroup = true\n block.isList = isList(name)\n block.isTable = isTable(name)\n block.children = []\n }\n\n if (block.isBasic && block.name === 'View') {\n block.isFragment = true\n if (stack.length > 0) {\n warnings.push({\n type: `A view can only have one View block. Maybe you want to split this block into another view?`,\n line,\n loc: block.loc,\n })\n }\n } else if (stack.length === 0) {\n warnings.push({\n type: `A view must start with a View block. ${block.name} isn't valid.\\nWrap everything within a View block at the top.`,\n line,\n loc: block.loc,\n })\n }\n\n if (shouldPushToStack || stack.length === 0) {\n stack.push(block)\n }\n\n parseProps(i, block, last)\n lookForFonts(block)\n lookForMultiples(block)\n }\n\n function parseProps(i, block) {\n let endOfBlockIndex = i\n while (\n endOfBlockIndex < lines.length - 1 &&\n !isBlock(lines[endOfBlockIndex + 1])\n ) {\n endOfBlockIndex++\n }\n\n let properties = []\n let scopes = []\n let scope\n let inScope = false\n\n for (let j = i; j <= endOfBlockIndex; j++) {\n let line = lines[j].trim()\n\n let propNode = null\n\n if (isProp(line)) {\n let { name, isSlot, slotName, slotIsNot, value } = getProp(line)\n let loc = getLoc(j + 1, line.indexOf(name), line.length - 1)\n let tags = getTags({\n name,\n isSlot,\n slotIsNot,\n value,\n block,\n })\n\n if (block.isBasic) {\n if (tags.unsupportedShorthand) {\n warnings.push({\n loc,\n type: `The shorthand ${name} isn't supported. You need to expand it like:\\n${getUnsupportedShorthandExpanded(\n name,\n value\n ).join('\\n')}`,\n line,\n })\n } else {\n let meant = didYouMeanProp(name)\n if (meant && meant !== name) {\n warnings.push({\n loc,\n type: `Did you mean \"${meant}\" instead of \"${name}\"?`,\n line,\n })\n }\n }\n\n if (tags.fragment && block.isGroup) {\n if (isSlot) {\n warnings.push({\n loc,\n type: `The isFragment prop can't be a slot. You need to change it to isFragment true. Treating it as true for now.`,\n line,\n })\n }\n block.isFragment = true\n }\n\n if (block.type === 'Capture' && !CAPTURE_TYPES.includes(value)) {\n if (/textarea/i.test(value)) {\n warnings.push({\n loc,\n type: `Invalid type ${value} for Capture. Perhaps you want to use a CaptureTextArea block instead? Using type text as a default.`,\n line,\n })\n } else {\n warnings.push({\n loc,\n type: `Invalid type ${value} for Capture. You can use ${CAPTURE_TYPES.join(\n ', '\n )}. Using type text as a default.`,\n line,\n })\n }\n value = 'text'\n }\n } else {\n if (name === 'lazy') {\n block.isLazy = true\n }\n if (name === 'proxy') {\n block.isProxy = true\n\n slots.push({\n name: `proxy${block.name}`,\n type: 'import',\n defaultValue: block.name,\n })\n }\n }\n\n if (name === 'when') {\n let isSystem = enableSystemScopes && isSystemScope(slotName)\n let isLocal = enableLocalScopes && isLocalScope(slotName)\n\n if (isLocal) {\n if (!locals.includes(value)) {\n locals.push(slotName)\n }\n }\n\n if (value === '' || value === '<' || value === '<!') {\n warnings.push({\n loc,\n type:\n 'This when has no condition assigned to it. Add one like: \"when <isCondition\"',\n line,\n })\n if (skipInvalidProps) continue\n } else if (!tags.validSlot) {\n warnings.push({\n loc,\n type: `The slot name \"${name}\" isn't valid. Fix it like: \"when <isCondition\" `,\n line,\n })\n if (skipInvalidProps) continue\n }\n\n if (isSystem && slotIsNot) {\n warnings.push({\n loc,\n type: `\"${slotName}\" is a system slot and it can't take a \"!\" in its value. Replace the line for: \"when <${slotName}\".`,\n })\n }\n\n // TODO warning\n // if (isLocal && (name !== 'text' || name !== 'placeholder')) {\n // }\n\n tags.scope = value\n inScope = true\n scope = {\n isLocal,\n isSystem,\n value,\n name,\n slotName,\n slotIsNot: isSystem || isLocal ? false : slotIsNot,\n properties: [],\n }\n\n if (convertSlotToProps) {\n scope.value = slotName\n\n if (slotName === 'isBefore') {\n useIsBefore = true\n } else if (/!?isMedia.+/.test(slotName)) {\n scope.value = `isMedia.${slotName\n .replace('isMedia', '')\n .toLowerCase()}`\n useIsMedia = true\n } else if (!isSystem && !isLocal) {\n scope.value = `${slotIsNot ? '!' : ''}props.${slotName || name}`\n }\n }\n\n scopes.push(scope)\n } else if ((tags.slot || tags.shouldBeSlot) && !tags.validSlot) {\n if ((name === 'from' && block.name === 'List') || name !== 'from') {\n warnings.push({\n loc,\n type: `The value you used in the slot \"${name}\" is invalid`,\n line,\n })\n if (skipInvalidProps) continue\n }\n }\n\n if (name === 'onWhen' && properties.length > 0) {\n warnings.push({\n type: `Put onWhen at the top of the block. It's easier to see it that way!`,\n line,\n loc,\n })\n }\n\n if (name === 'onWhen' && /!?isMedia.+/.test(slotName)) {\n useIsMedia = true\n }\n\n if (name === 'format') {\n block.format = getFormat(value)\n }\n\n if (value === '' && name !== 'text') {\n warnings.push({\n loc,\n type: `\"${name}\" has no value. Please give it a value.`,\n line,\n })\n if (skipInvalidProps) continue\n }\n\n propNode = {\n type: 'Property',\n loc,\n name,\n tags,\n value: getValue(value, name),\n }\n\n if (tags.animation && scope) {\n block.isAnimated = true\n\n let currentAnimation = getAnimation(value)\n propNode.value = currentAnimation.defaultValue\n propNode.animation = currentAnimation.properties\n\n if (propNode.animation.curve === 'spring') {\n block.hasSpringAnimation = true\n } else {\n block.hasTimingAnimation = true\n }\n\n if (!block.animations[currentAnimation.id]) {\n block.animations[currentAnimation.id] = {\n index: Object.keys(block.animations).length,\n animation: currentAnimation,\n props: {},\n }\n }\n propNode.animationIndexOnBlock =\n block.animations[currentAnimation.id].index\n\n if (!block.animations[currentAnimation.id].props[name]) {\n let baseValue = null\n let baseProp = properties.find(prop => prop.name === name)\n if (baseProp) {\n baseValue = baseProp.value\n }\n\n block.animations[currentAnimation.id].props[name] = {\n name,\n scopes: [],\n value: baseValue,\n }\n }\n\n block.animations[currentAnimation.id].props[name].scopes.push({\n name: scope.slotName,\n value: currentAnimation.defaultValue,\n })\n }\n\n if (scope) {\n propNode.scope = scope.slotName\n }\n\n if (tags.slot) {\n let needsDefaultValue = !tags.shouldBeSlot && /</.test(propNode.value)\n\n if (typeof propNode.value === 'string') {\n propNode.value = propNode.value.replace(/^</, '')\n }\n\n propNode.slotName = slotName\n\n if (name !== 'when' || (name === 'when' && !scope.isSystem)) {\n propNode.defaultValue = propNode.value\n\n if (convertSlotToProps) {\n propNode.value = `${slotIsNot ? '!' : ''}props.${slotName ||\n name}`\n }\n\n if (needsDefaultValue) {\n if (name === 'text' && block.name === 'Text') {\n propNode.defaultValue = ''\n } else {\n propNode.defaultValue = false\n\n if (\n warnMissingDefaultValue &&\n block.isBasic &&\n (propNode.tags.style ||\n (block.name === 'Text' && propNode.name === 'text'))\n ) {\n warnings.push({\n loc,\n type: `Add a default value to \"${name}\" like: \"${name} <${slotName} default value\"`,\n line,\n })\n }\n }\n }\n\n if (\n !inScope &&\n !propNode.tags.fragment &&\n !slots.some(vp => vp.name === (slotName || name))\n ) {\n slots.push({\n name: slotName || name,\n type: getPropType(block, name, value),\n defaultValue: tags.shouldBeSlot ? false : propNode.defaultValue,\n })\n }\n }\n }\n } else if (isComment(line) && !skipComments) {\n let [value] = getComment(line)\n\n let userComment = isUserComment(line)\n if (userComment) {\n value = getComment(value)\n }\n\n propNode = {\n type: 'Property',\n loc: getLoc(j + 1, 0, line.length - 1),\n value,\n tags: { comment: true, userComment },\n }\n }\n\n if (propNode) {\n block.loc.end = propNode.loc.end\n\n if (inScope) {\n if (\n propNode.name !== 'when' &&\n !propNode.tags.comment &&\n !properties.some(baseProp => baseProp.name === propNode.name)\n ) {\n warnings.push({\n loc: propNode.loc,\n type: `You're missing a base prop for ${propNode.name}. Add it before all whens on the block.`,\n line,\n })\n }\n\n scope.properties.push(propNode)\n } else {\n properties.push(propNode)\n }\n }\n }\n\n block.properties = properties\n block.scopes = scopes\n\n if (block.name !== 'View' && block.isFragment) {\n let invalidProps = properties\n .filter(prop => prop.name !== 'isFragment' || prop.name !== 'onWhen')\n .map(prop => prop.name)\n\n if (invalidProps.length > 0) {\n warnings.push({\n type: `A fragment can only have isFragment and onWhen props.\\nEvery other prop will be dismissed.\\nEither remove ${invalidProps.join(\n ', '\n )} or remove isFragment.`,\n loc: block.loc,\n line: rlines[i],\n })\n }\n }\n }\n\n lines.forEach((line, i) => {\n if (line !== rlines[i].trimRight()) {\n warnings.push({\n type: `You have some spaces before or after this line. Clean them up.`,\n loc: {\n start: {\n line: i + 1,\n },\n },\n line: rlines[i],\n })\n }\n\n if (isBlock(line)) {\n parseBlock(line, i)\n }\n })\n\n if (stack.length > 0) {\n while (!end(stack.pop(), lines.length - 1)) {}\n }\n\n if (!view) {\n view = {\n type: 'Block',\n name: id,\n animations: {},\n isAnimated: false,\n isBasic: true,\n isCapture: false,\n isColumn: false,\n isGroup: false,\n isProxy: false,\n level: 0,\n loc: getLoc(1, 0),\n properties: [],\n scopes: [],\n }\n\n warnings.push({\n loc: view.loc,\n type: `The view file for ${id} is empty and won't render! Add some blocks to it like:\\nView\\n Text\\n text content`,\n line: '',\n })\n }\n\n let flowProp = view.properties.find(p => p.name === 'flow')\n if (flowProp) {\n view.isStory = true\n view.flow = flowProp.value\n view.pathToStory = file\n .replace(path.join(src, 'Stories').replace(/\\\\/g, '/'), '')\n .replace('.view', '')\n\n view.data = getData(view.properties.find(p => p.name === 'data'))\n view.dataFormat = getDataFormat(\n view.properties.find(p => p.name === 'dataFormat')\n )\n view.dataValidate = getDataValidate(\n view.properties.find(p => p.name === 'dataValidate')\n )\n } else {\n view.isStory = false\n }\n\n view.useIsBefore = useIsBefore\n view.useIsMedia = useIsMedia\n view.views = viewsInView\n\n return {\n fonts,\n locals,\n slots,\n view,\n warnings,\n }\n}\n","import path from 'path'\n\nlet getFileDepth = file => file.split(path.sep).length - 1\n\nlet sortByFileDepth = (a, b) => {\n let depthA = getFileDepth(a)\n let depthB = getFileDepth(b)\n let depthDelta = depthA - depthB\n\n if (depthDelta !== 0) return depthDelta\n\n return a < b ? 1 : a > b ? -1 : 0\n}\n\nexport default function sortSetsInMap(map) {\n for (let [key, value] of map) {\n if (value.size <= 1) continue\n\n map.set(key, new Set([...value].sort(sortByFileDepth)))\n }\n}\n","import maybePrintWarnings from './maybe-print-warnings.js'\nimport parse from './parse/index.js'\nimport sortSetsInMap from './sort-sets-in-map.js'\n\nexport default function parseViews({\n customFonts,\n filesView,\n src,\n verbose,\n viewsById,\n viewsToFiles,\n}) {\n for (let file of filesView) {\n let view = viewsToFiles.get(file)\n\n if (view.custom) continue\n\n view.parsed = parse({\n customFonts,\n file,\n id: view.id,\n src,\n source: view.source,\n views: viewsById,\n })\n\n maybePrintWarnings(view, verbose)\n }\n sortSetsInMap(viewsById)\n}\n","import addToMapSet from './add-to-map-set.js'\nimport path from 'path'\n\nexport default function processViewCustomFiles({\n filesViewCustom,\n viewsById,\n viewsToFiles,\n}) {\n for (let file of filesViewCustom) {\n let id = path.basename(file, '.js')\n\n addToMapSet(viewsById, id, file)\n\n viewsToFiles.set(file, {\n custom: true,\n file,\n id,\n logic: false,\n source: null,\n version: 0,\n })\n }\n}\n","import path from 'path'\n\nexport default file => {\n if (file.endsWith('.view')) {\n return path.basename(file, '.view')\n } else if (file.endsWith('.view.logic.js')) {\n return path.basename(file, '.view.logic.js')\n } else if (file.endsWith('.js')) {\n return path.basename(file, '.js')\n } else {\n throw new Error(\n `Can't recognise the extension of \"${file}\" to get a view's id.`\n )\n }\n}\n","import { promises as fs } from 'fs'\nimport addToMapSet from './add-to-map-set.js'\nimport getViewIdFromFile from './get-view-id-from-file.js'\n\nexport default async function processViewFiles({\n filesView,\n filesViewLogic,\n viewsById,\n viewsToFiles,\n}) {\n for await (let file of filesView) {\n let id = getViewIdFromFile(file)\n\n addToMapSet(viewsById, id, file)\n\n let view = viewsToFiles.has(file) ? viewsToFiles.get(file) : {}\n\n viewsToFiles.set(file, {\n ...view,\n custom: false,\n file,\n id,\n logic: filesViewLogic.has(`${file}.logic.js`) && `${file}.logic.js`,\n source: await fs.readFile(file, 'utf8'),\n version: view.version ? view.version + 1 : 0,\n })\n }\n}\n","import {\n makeGetFontImport,\n morphAllFonts,\n processCustomFonts,\n} from './fonts.js'\nimport { promises as fs } from 'fs'\nimport ensureData from './ensure-data.js'\nimport ensureFlow from './ensure-flow.js'\nimport ensureIsBefore from './ensure-is-before.js'\nimport ensureIsMedia from './ensure-is-media.js'\nimport ensureTools from './ensure-tools.js'\nimport makeGetSystemImport from './make-get-system-import.js'\nimport morphAllViews from './morph-all-views.js'\nimport parseViews from './parse-views.js'\nimport processViewCustomFiles from './process-view-custom-files.js'\nimport processViewFiles from './process-view-files.js'\n\nexport default function makeMorpher({\n as = 'react-dom',\n local = 'en',\n src,\n tools = false,\n track = false,\n verbose = true,\n}) {\n let state = {\n as,\n local,\n src,\n tools,\n track,\n verbose,\n customFonts: new Map(),\n viewsById: new Map(),\n viewsToFiles: new Map(),\n }\n\n state.processFiles = async function processFiles({\n filesFontCustom = new Set(),\n filesView = new Set(),\n filesViewCustom = new Set(),\n filesViewLogic = new Set(),\n }) {\n if (filesFontCustom.size > 0) {\n processCustomFonts({\n customFonts: state.customFonts,\n filesFontCustom,\n })\n }\n\n // detect .view files\n await processViewFiles({\n filesView,\n filesViewLogic,\n viewsById: state.viewsById,\n viewsToFiles: state.viewsToFiles,\n })\n\n // detect .js files meant to be custom views with \"// @view\" at the top\n processViewCustomFiles({\n filesViewCustom,\n viewsById: state.viewsById,\n viewsToFiles: state.viewsToFiles,\n })\n\n // TODO optimise\n // parse views\n parseViews({\n customFonts: state.customFonts,\n filesView,\n src: state.src,\n verbose: state.verbose,\n viewsById: state.viewsById,\n viewsToFiles: state.viewsToFiles,\n })\n\n let morphedFonts = morphAllFonts({\n as: state.as,\n customFonts: state.customFonts,\n filesView,\n src: state.src,\n viewsToFiles: state.viewsToFiles,\n })\n\n // TODO optimise\n // morph views\n let morphedViews = morphAllViews({\n as: state.as,\n filesView,\n getFontImport: makeGetFontImport(state.src),\n getSystemImport: makeGetSystemImport(state.src),\n local: state.local,\n track: state.track,\n viewsById: state.viewsById,\n viewsToFiles: state.viewsToFiles,\n })\n\n // TODO optimise, only if they changed, cache, etc\n let morphedData = ensureData(state)\n let morphedFlow = ensureFlow(state)\n let morphedTools = await ensureTools(state)\n let morphedIsBefore = ensureIsBefore(state)\n let morphedIsMedia = await ensureIsMedia(state)\n\n let filesToWrite = [\n ...morphedFonts,\n ...morphedViews,\n morphedData,\n morphedFlow,\n morphedTools,\n morphedIsBefore,\n morphedIsMedia,\n ].filter(Boolean)\n\n await Promise.all(\n filesToWrite.map(({ file, content }) =>\n fs.writeFile(file, content, 'utf-8')\n )\n )\n }\n\n return state\n}\n","export default function getPointsOfUse({ view, viewsToFiles }) {\n let filesView = new Set([view.file])\n let filesViewLogic = new Set()\n let viewsId = new Set()\n\n if (view.logic) {\n filesViewLogic.add(view.logic)\n }\n\n for (let viewInView of viewsToFiles.values()) {\n if (viewInView.custom) continue\n\n if (viewInView.parsed.view.views.has(view.id)) {\n filesView.add(viewInView.file)\n if (viewInView.logic) {\n filesViewLogic.add(viewInView.logic)\n }\n viewsId.add(viewInView.id)\n }\n }\n\n return { filesView, filesViewLogic, viewsId }\n}\n","/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict'\n\nimport address from 'address'\nimport fs from 'fs'\nimport path from 'path'\nimport url from 'url'\nimport chalk from 'chalk'\nimport detect from 'detect-port-alt'\nimport isRoot from 'is-root'\nimport inquirer from 'inquirer'\nimport clearConsole from 'react-dev-utils/clearConsole'\nimport formatWebpackMessages from 'react-dev-utils/formatWebpackMessages'\nimport getProcessForPort from 'react-dev-utils/getProcessForPort'\nimport typescriptFormatter from 'react-dev-utils/typescriptFormatter'\nimport forkTsCheckerWebpackPlugin from 'react-dev-utils/ForkTsCheckerWebpackPlugin'\n\nconst isInteractive = false // process.stdout.isTTY;\n\nexport function prepareUrls(protocol, host, port) {\n const formatUrl = hostname =>\n url.format({\n protocol,\n hostname,\n port,\n pathname: '/',\n })\n const prettyPrintUrl = hostname =>\n url.format({\n protocol,\n hostname,\n port: chalk.bold(port),\n pathname: '/',\n })\n\n const isUnspecifiedHost = host === '0.0.0.0' || host === '::'\n let prettyHost, lanUrlForConfig, lanUrlForTerminal\n if (isUnspecifiedHost) {\n prettyHost = 'localhost'\n try {\n // This can only return an IPv4 address\n lanUrlForConfig = address.ip()\n if (lanUrlForConfig) {\n // Check if the address is a private ip\n // https://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces\n if (\n /^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(\n lanUrlForConfig\n )\n ) {\n // Address is private, format it for later use\n lanUrlForTerminal = prettyPrintUrl(lanUrlForConfig)\n } else {\n // Address is not private, so we will discard it\n lanUrlForConfig = undefined\n }\n }\n } catch (_e) {\n // ignored\n }\n } else {\n prettyHost = host\n }\n const localUrlForTerminal = prettyPrintUrl(prettyHost)\n const localUrlForBrowser = formatUrl(prettyHost)\n return {\n lanUrlForConfig,\n lanUrlForTerminal,\n localUrlForTerminal,\n localUrlForBrowser,\n }\n}\n\nfunction printInstructions(appName, urls, useYarn) {\n console.log()\n console.log(`You can now view ${chalk.bold(appName)} in the browser.`)\n console.log()\n\n if (urls.lanUrlForTerminal) {\n console.log(\n ` ${chalk.bold('Local:')} ${urls.localUrlForTerminal}`\n )\n console.log(\n ` ${chalk.bold('On Your Network:')} ${urls.lanUrlForTerminal}`\n )\n } else {\n console.log(` ${urls.localUrlForTerminal}`)\n }\n\n console.log()\n console.log('Note that the development build is not optimized.')\n console.log(\n `To create a production build, use ` +\n `${chalk.cyan(`${useYarn ? 'yarn' : 'npm run'} build`)}.`\n )\n console.log()\n}\n\nexport function createCompiler({\n appName,\n config,\n devSocket,\n urls,\n useYarn,\n useTypeScript,\n tscCompileOnError,\n webpack,\n}) {\n // \"Compiler\" is a low-level interface to Webpack.\n // It lets us listen to some events and provide our own custom messages.\n let compiler\n try {\n compiler = webpack(config)\n } catch (err) {\n console.log(chalk.red('Failed to compile.'))\n console.log()\n console.log(err.message || err)\n console.log()\n process.exit(1)\n }\n\n // \"invalid\" event fires when you have changed a file, and Webpack is\n // recompiling a bundle. WebpackDevServer takes care to pause serving the\n // bundle, so if you refresh, it'll wait instead of serving the old one.\n // \"invalid\" is short for \"bundle invalidated\", it doesn't imply any errors.\n compiler.hooks.invalid.tap('invalid', () => {\n if (isInteractive) {\n clearConsole()\n }\n console.log('WP Compiling...')\n })\n\n let isFirstCompile = true\n let tsMessagesPromise\n let tsMessagesResolver\n\n if (useTypeScript) {\n compiler.hooks.beforeCompile.tap('beforeCompile', () => {\n tsMessagesPromise = new Promise(resolve => {\n tsMessagesResolver = msgs => resolve(msgs)\n })\n })\n\n forkTsCheckerWebpackPlugin\n .getCompilerHooks(compiler)\n .receive.tap('afterTypeScriptCheck', (diagnostics, lints) => {\n const allMsgs = [...diagnostics, ...lints]\n const format = message =>\n `${message.file}\\n${typescriptFormatter(message, true)}`\n\n tsMessagesResolver({\n errors: allMsgs.filter(msg => msg.severity === 'error').map(format),\n warnings: allMsgs\n .filter(msg => msg.severity === 'warning')\n .map(format),\n })\n })\n }\n\n // \"done\" event fires when Webpack has finished recompiling the bundle.\n // Whether or not you have warnings or errors, you will get this event.\n compiler.hooks.done.tap('done', async stats => {\n if (isInteractive) {\n clearConsole()\n }\n\n // We have switched off the default Webpack output in WebpackDevServer\n // options so we are going to \"massage\" the warnings and errors and present\n // them in a readable focused way.\n // We only construct the warnings and errors for speed:\n // https://github.com/facebook/create-react-app/issues/4492#issuecomment-421959548\n const statsData = stats.toJson({\n all: false,\n warnings: true,\n errors: true,\n })\n\n if (useTypeScript && statsData.errors.length === 0) {\n const delayedMsg = setTimeout(() => {\n console.log(\n chalk.yellow(\n 'Files successfully emitted, waiting for typecheck results...'\n )\n )\n }, 100)\n\n const messages = await tsMessagesPromise\n clearTimeout(delayedMsg)\n if (tscCompileOnError) {\n statsData.warnings.push(...messages.errors)\n } else {\n statsData.errors.push(...messages.errors)\n }\n statsData.warnings.push(...messages.warnings)\n\n // Push errors and warnings into compilation result\n // to show them after page refresh triggered by user.\n if (tscCompileOnError) {\n stats.compilation.warnings.push(...messages.errors)\n } else {\n stats.compilation.errors.push(...messages.errors)\n }\n stats.compilation.warnings.push(...messages.warnings)\n\n if (messages.errors.length > 0) {\n if (tscCompileOnError) {\n devSocket.warnings(messages.errors)\n } else {\n devSocket.errors(messages.errors)\n }\n } else if (messages.warnings.length > 0) {\n devSocket.warnings(messages.warnings)\n }\n\n if (isInteractive) {\n clearConsole()\n }\n }\n\n const messages = formatWebpackMessages(statsData)\n const isSuccessful = !messages.errors.length && !messages.warnings.length\n if (isSuccessful) {\n console.log(chalk.green('WP Compiled successfully!'))\n }\n if (isSuccessful && (isInteractive || isFirstCompile)) {\n printInstructions(appName, urls, useYarn)\n }\n isFirstCompile = false\n\n // If errors exist, only show errors.\n if (messages.errors.length) {\n // Only keep the first error. Others are often indicative\n // of the same problem, but confuse the reader with noise.\n if (messages.errors.length > 1) {\n messages.errors.length = 1\n }\n console.log(chalk.red('Failed to compile.\\n'))\n console.log(messages.errors.join('\\n\\n'))\n return\n }\n\n // Show warnings if no errors were found.\n if (messages.warnings.length) {\n console.log(chalk.yellow('Compiled with warnings.\\n'))\n console.log(messages.warnings.join('\\n\\n'))\n\n // Teach some ESLint tricks.\n console.log(\n '\\nSearch for the ' +\n chalk.underline(chalk.yellow('keywords')) +\n ' to learn more about each warning.'\n )\n console.log(\n 'To ignore, add ' +\n chalk.cyan('// eslint-disable-next-line') +\n ' to the line before.\\n'\n )\n }\n })\n\n // You can safely remove this after ejecting.\n // We only use this block for testing of Create React App itself:\n const isSmokeTest = process.argv.some(arg => arg.indexOf('--smoke-test') > -1)\n if (isSmokeTest) {\n compiler.hooks.failed.tap('smokeTest', async () => {\n await tsMessagesPromise\n process.exit(1)\n })\n compiler.hooks.done.tap('smokeTest', async stats => {\n await tsMessagesPromise\n if (stats.hasErrors() || stats.hasWarnings()) {\n process.exit(1)\n } else {\n process.exit(0)\n }\n })\n }\n\n return compiler\n}\n\nfunction resolveLoopback(proxy) {\n const o = url.parse(proxy)\n o.host = undefined\n if (o.hostname !== 'localhost') {\n return proxy\n }\n // Unfortunately, many languages (unlike node) do not yet support IPv6.\n // This means even though localhost resolves to ::1, the application\n // must fall back to IPv4 (on 127.0.0.1).\n // We can re-enable this in a few years.\n /*try {\n o.hostname = address.ipv6() ? '::1' : '127.0.0.1';\n } catch (_ignored) {\n o.hostname = '127.0.0.1';\n }*/\n\n try {\n // Check if we're on a network; if we are, chances are we can resolve\n // localhost. Otherwise, we can just be safe and assume localhost is\n // IPv4 for maximum compatibility.\n if (!address.ip()) {\n o.hostname = '127.0.0.1'\n }\n } catch (_ignored) {\n o.hostname = '127.0.0.1'\n }\n return url.format(o)\n}\n\n// We need to provide a custom onError function for httpProxyMiddleware.\n// It allows us to log custom error messages on the console.\nfunction onProxyError(proxy) {\n return (err, req, res) => {\n const host = req.headers && req.headers.host\n console.log(\n chalk.red('Proxy error:') +\n ' Could not proxy request ' +\n chalk.cyan(req.url) +\n ' from ' +\n chalk.cyan(host) +\n ' to ' +\n chalk.cyan(proxy) +\n '.'\n )\n console.log(\n 'See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (' +\n chalk.cyan(err.code) +\n ').'\n )\n console.log()\n\n // And immediately send the proper error response to the client.\n // Otherwise, the request will eventually timeout with ERR_EMPTY_RESPONSE on the client side.\n if (res.writeHead && !res.headersSent) {\n res.writeHead(500)\n }\n res.end(\n 'Proxy error: Could not proxy request ' +\n req.url +\n ' from ' +\n host +\n ' to ' +\n proxy +\n ' (' +\n err.code +\n ').'\n )\n }\n}\n\nexport function prepareProxy(proxy, appPublicFolder) {\n // `proxy` lets you specify alternate servers for specific requests.\n if (!proxy) {\n return undefined\n }\n if (typeof proxy !== 'string') {\n console.log(\n chalk.red('When specified, \"proxy\" in package.json must be a string.')\n )\n console.log(\n chalk.red('Instead, the type of \"proxy\" was \"' + typeof proxy + '\".')\n )\n console.log(\n chalk.red('Either remove \"proxy\" from package.json, or make it a string.')\n )\n process.exit(1)\n }\n\n // If proxy is specified, let it handle any request except for\n // files in the public folder and requests to the WebpackDevServer socket endpoint.\n // https://github.com/facebook/create-react-app/issues/6720\n function mayProxy(pathname) {\n const maybePublicPath = path.resolve(appPublicFolder, pathname.slice(1))\n const isPublicFileRequest = fs.existsSync(maybePublicPath)\n const isWdsEndpointRequest = pathname.startsWith('/sockjs-node') // used by webpackHotDevClient\n return !(isPublicFileRequest || isWdsEndpointRequest)\n }\n\n if (!/^http(s)?:\\/\\//.test(proxy)) {\n console.log(\n chalk.red(\n 'When \"proxy\" is specified in package.json it must start with either http:// or https://'\n )\n )\n process.exit(1)\n }\n\n let target\n if (process.platform === 'win32') {\n target = resolveLoopback(proxy)\n } else {\n target = proxy\n }\n return [\n {\n target,\n logLevel: 'silent',\n // For single page apps, we generally want to fallback to /index.html.\n // However we also want to respect `proxy` for API calls.\n // So if `proxy` is specified as a string, we need to decide which fallback to use.\n // We use a heuristic: We want to proxy all the requests that are not meant\n // for static assets and as all the requests for static assets will be using\n // `GET` method, we can proxy all non-`GET` requests.\n // For `GET` requests, if request `accept`s text/html, we pick /index.html.\n // Modern browsers include text/html into `accept` header when navigating.\n // However API calls like `fetch()` won’t generally accept text/html.\n // If this heuristic doesn’t work well for you, use `src/setupProxy.js`.\n context: function(pathname, req) {\n return (\n req.method !== 'GET' ||\n (mayProxy(pathname) &&\n req.headers.accept &&\n req.headers.accept.indexOf('text/html') === -1)\n )\n },\n onProxyReq: proxyReq => {\n // Browsers may send Origin headers even with same-origin\n // requests. To prevent CORS issues, we have to change\n // the Origin to match the target URL.\n if (proxyReq.getHeader('origin')) {\n proxyReq.setHeader('origin', target)\n }\n },\n onError: onProxyError(target),\n secure: false,\n changeOrigin: true,\n ws: true,\n xfwd: true,\n },\n ]\n}\n\nexport function choosePort(host, defaultPort) {\n return detect(defaultPort, host).then(\n port =>\n new Promise(resolve => {\n if (port === defaultPort) {\n return resolve(port)\n }\n const message =\n process.platform !== 'win32' && defaultPort < 1024 && !isRoot()\n ? `Admin permissions are required to run a server on a port below 1024.`\n : `Something is already running on port ${defaultPort}.`\n if (isInteractive) {\n clearConsole()\n const existingProcess = getProcessForPort(defaultPort)\n const question = {\n type: 'confirm',\n name: 'shouldChangePort',\n message:\n chalk.yellow(\n message +\n `${existingProcess ? ` Probably:\\n ${existingProcess}` : ''}`\n ) + '\\n\\nWould you like to run the app on another port instead?',\n default: true,\n }\n inquirer.prompt(question).then(answer => {\n if (answer.shouldChangePort) {\n resolve(port)\n } else {\n resolve(null)\n }\n })\n } else {\n console.log(chalk.red(message))\n resolve(null)\n }\n }),\n err => {\n throw new Error(\n chalk.red(`Could not find an open port at ${chalk.bold(host)}.`) +\n '\\n' +\n ('Network error message: ' + err.message || err) +\n '\\n'\n )\n }\n )\n}\n","// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n'use strict'\n\nimport path from 'path'\nimport fs from 'fs'\nimport url from 'url'\n\n// Make sure any symlinks in the project folder are resolved:\n// https://github.com/facebook/create-react-app/issues/637\nconst appDirectory = fs.realpathSync(process.cwd())\nconst resolveApp = relativePath => path.resolve(appDirectory, relativePath)\n\nconst envPublicUrl = process.env.PUBLIC_URL\n\nfunction ensureSlash(inputPath, needsSlash) {\n const hasSlash = inputPath.endsWith('/')\n if (hasSlash && !needsSlash) {\n return inputPath.substr(0, inputPath.length - 1)\n } else if (!hasSlash && needsSlash) {\n return `${inputPath}/`\n } else {\n return inputPath\n }\n}\n\nconst getPublicUrl = pathsAppPackageJson => {\n let appPackageJson = JSON.parse(fs.readFileSync(pathsAppPackageJson, 'utf8'))\n\n return envPublicUrl || appPackageJson.homepage\n}\n\n// We use `PUBLIC_URL` environment variable or \"homepage\" field to infer\n// \"public path\" at which the app is served.\n// Webpack needs to know it to put the right <script> hrefs into HTML even in\n// single-page apps that may serve index.html for nested URLs like /todos/42.\n// We can't use a relative path in HTML because we don't want to load something\n// like /todos/42/static/js/bundle.7289d.js. We have to know the root.\nfunction getServedPath(appPackageJson) {\n const publicUrl = getPublicUrl(appPackageJson)\n const servedUrl =\n envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/')\n return ensureSlash(servedUrl, true)\n}\n\nconst moduleFileExtensions = [\n 'web.mjs',\n 'mjs',\n 'web.js',\n 'js',\n 'web.ts',\n 'ts',\n 'web.tsx',\n 'tsx',\n 'json',\n 'web.jsx',\n 'jsx',\n]\n\n// Resolve file paths in the same order as webpack\nconst resolveModule = (resolveFn, filePath) => {\n const extension = moduleFileExtensions.find(extension =>\n fs.existsSync(resolveFn(`${filePath}.${extension}`))\n )\n\n if (extension) {\n return resolveFn(`${filePath}.${extension}`)\n }\n\n return resolveFn(`${filePath}.js`)\n}\n\n// config after eject: we're in ./config/\n// module.exports = {\n// dotenv: resolveApp('.env'),\n// appPath: resolveApp('.'),\n// appBuild: resolveApp('build'),\n// appPublic: resolveApp('public'),\n// appHtml: resolveApp('public/index.html'),\n// appIndexJs: resolveModule(resolveApp, 'src/index'),\n// appPackageJson: resolveApp('package.json'),\n// appSrc: resolveApp('src'),\n// appTsConfig: resolveApp('tsconfig.json'),\n// appJsConfig: resolveApp('jsconfig.json'),\n// yarnLockFile: resolveApp('yarn.lock'),\n// testsSetup: resolveModule(resolveApp, 'src/setupTests'),\n// proxySetup: resolveApp('src/setupProxy.js'),\n// appNodeModules: resolveApp('node_modules'),\n// publicUrl: getPublicUrl(resolveApp('package.json')),\n// servedPath: getServedPath(resolveApp('package.json')),\n// };\n\n// @remove-on-eject-begin\n// const resolveOwn = relativePath => path.resolve(__dirname, '..', relativePath)\n\n// config before eject: we're in ./node_modules/react-scripts/config/\nlet paths = {\n dotenv: resolveApp('.env'),\n appPath: resolveApp('.'),\n appBuild: resolveApp('build'),\n appPublic: resolveApp('public'),\n appHtml: resolveApp('public/index.html'),\n appIndexJs: resolveModule(resolveApp, 'src/index'),\n appPackageJson: resolveApp('package.json'),\n appSrc: resolveApp('src'),\n appTsConfig: resolveApp('tsconfig.json'),\n appJsConfig: resolveApp('jsconfig.json'),\n yarnLockFile: resolveApp('yarn.lock'),\n testsSetup: resolveModule(resolveApp, 'src/setupTests'),\n proxySetup: resolveApp('src/setupProxy.js'),\n appNodeModules: resolveApp('node_modules'),\n publicUrl: getPublicUrl(resolveApp('package.json')),\n servedPath: getServedPath(resolveApp('package.json')),\n // These properties only exist before ejecting:\n ownPath: resolveApp('.'),\n ownNodeModules: resolveApp('node_modules'), // This is empty on npm 3\n appTypeDeclarations: resolveApp('src/react-app-env.d.ts'),\n ownTypeDeclarations: resolveApp('lib/react-app.d.ts'),\n}\nexport default paths\n\n// const ownPackageJson = require('../package.json');\n// const reactScriptsPath = resolveApp(`node_modules/${ownPackageJson.name}`);\n// const reactScriptsLinked =\n// fs.existsSync(reactScriptsPath) &&\n// fs.lstatSync(reactScriptsPath).isSymbolicLink();\n\n// // config before publish: we're in ./packages/react-scripts/config/\n// if (\n// !reactScriptsLinked &&\n// __dirname.indexOf(path.join('packages', 'react-scripts', 'config')) !== -1\n// ) {\n// module.exports = {\n// dotenv: resolveOwn('template/.env'),\n// appPath: resolveApp('.'),\n// appBuild: resolveOwn('../../build'),\n// appPublic: resolveOwn('template/public'),\n// appHtml: resolveOwn('template/public/index.html'),\n// appIndexJs: resolveModule(resolveOwn, 'template/src/index'),\n// appPackageJson: resolveOwn('package.json'),\n// appSrc: resolveOwn('template/src'),\n// appTsConfig: resolveOwn('template/tsconfig.json'),\n// appJsConfig: resolveOwn('template/jsconfig.json'),\n// yarnLockFile: resolveOwn('template/yarn.lock'),\n// testsSetup: resolveModule(resolveOwn, 'template/src/setupTests'),\n// proxySetup: resolveOwn('template/src/setupProxy.js'),\n// appNodeModules: resolveOwn('node_modules'),\n// publicUrl: getPublicUrl(resolveOwn('package.json')),\n// servedPath: getServedPath(resolveOwn('package.json')),\n// // These properties only exist before ejecting:\n// ownPath: resolveOwn('.'),\n// ownNodeModules: resolveOwn('node_modules'),\n// appTypeDeclarations: resolveOwn('template/src/react-app-env.d.ts'),\n// ownTypeDeclarations: resolveOwn('lib/react-app.d.ts'),\n// };\n// }\n// // @remove-on-eject-end\n\n// module.exports.moduleFileExtensions = moduleFileExtensions;\n\n// export\n","// https://raw.githubusercontent.com/facebook/create-react-app/master/packages/react-scripts/scripts/start.js\n// @remove-on-eject-begin\n/**\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// @remove-on-eject-end\n'use strict'\n\n// Do this as the first thing so that any code reading it knows the right env.\nprocess.env.BABEL_ENV = 'development'\nprocess.env.NODE_ENV = 'development'\n\n// Makes the script crash on unhandled rejections instead of silently\n// ignoring them. In the future, promise rejections that are not handled will\n// terminate the Node.js process with a non-zero exit code.\nprocess.on('unhandledRejection', err => {\n throw err\n})\n\n// Ensure environment variables are read.\n//require( './runCraEnv.js')\n// @remove-on-eject-begin\n// Do the preflight check (only happens before eject).\n// import verifyPackageTree from 'react-scripts/scripts/utils/verifyPackageTree.js'\n// if (process.env.SKIP_PREFLIGHT_CHECK !== 'true') {\n// verifyPackageTree()\n// }\nimport verifyTypeScriptSetup from 'react-scripts/scripts/utils/verifyTypeScriptSetup.js'\nverifyTypeScriptSetup()\n// @remove-on-eject-end\n\nimport fs from 'fs'\nimport chalk from 'react-dev-utils/chalk.js'\nimport webpack from 'webpack'\nimport WebpackDevServer from 'webpack-dev-server'\n// import clearConsole from 'react-dev-utils/clearConsole.js'\nimport checkRequiredFiles from 'react-dev-utils/checkRequiredFiles.js'\nimport {\n choosePort,\n createCompiler,\n prepareProxy,\n prepareUrls,\n} from './runCraWebpackDevServerUtils' // 'react-dev-utils/WebpackDevServerUtils.js'\nimport openBrowser from 'react-dev-utils/openBrowser.js'\nimport paths from './runCraPaths.js'\n\nconst configFactory = require('react-scripts/config/webpack.config.js')\nconst createDevServerConfig = require('react-scripts/config/webpackDevServer.config.js')\n\nimport CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin'\n\nconst useYarn = fs.existsSync(paths.yarnLockFile)\nconst isInteractive = false // process.stdout.isTTY\n\n// Tools like Cloud9 rely on this.\nconst DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000\nconst HOST = process.env.HOST || '0.0.0.0'\n\nif (process.env.HOST) {\n console.log(\n chalk.cyan(\n `Attempting to bind to HOST environment variable: ${chalk.yellow(\n chalk.bold(process.env.HOST)\n )}`\n )\n )\n console.log(\n `If this was unintentional, check that you haven't mistakenly set it in your shell.`\n )\n console.log(\n `Learn more here: ${chalk.yellow('https://bit.ly/CRA-advanced-config')}`\n )\n console.log()\n}\n\n// We require that you explicitly set browsers and do not fall back to\n// browserslist defaults.\nimport rdub from 'react-dev-utils/browsersHelper.js'\nlet { checkBrowsers } = rdub\n\nlet wait = () => new Promise(resolve => setTimeout(resolve, 1000))\n\nexport default function run() {\n // Warn and crash if required files are missing\n if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {\n process.exit(1)\n }\n\n return new Promise(async (resolve, reject) => {\n await wait()\n try {\n await checkBrowsers(paths.appPath, isInteractive)\n // .then(() => {\n // We attempt to use the default port but if it is busy, we offer the user to\n // run on a different port. `choosePort()` Promise resolves to the next free port.\n let port = await choosePort(HOST, DEFAULT_PORT)\n // })\n // .then(port => {\n if (port == null) {\n // We have not found a port.\n return\n }\n const config = configFactory('development')\n const protocol = process.env.HTTPS === 'true' ? 'https' : 'http'\n let appPackageJson = JSON.parse(\n fs.readFileSync(paths.appPackageJson, 'utf8')\n )\n const appName = appPackageJson.name\n const useTypeScript = fs.existsSync(paths.appTsConfig)\n const urls = prepareUrls(protocol, HOST, port)\n const devSocket = {\n warnings: warnings =>\n devServer.sockWrite(devServer.sockets, 'warnings', warnings),\n errors: errors =>\n devServer.sockWrite(devServer.sockets, 'errors', errors),\n }\n // Create a webpack compiler that is configured with custom messages.\n const compiler = createCompiler({\n appName,\n config,\n devSocket,\n urls,\n useYarn,\n useTypeScript,\n webpack,\n })\n compiler.options.plugins = compiler.options.plugins.filter(c => {\n return !(c instanceof CaseSensitivePathsPlugin)\n // console.log(c)\n // return true\n })\n // Load proxy config\n const proxySetting = appPackageJson.proxy\n const proxyConfig = prepareProxy(proxySetting, paths.appPublic)\n // Serve webpack assets generated by the compiler over a web server.\n const serverConfig = createDevServerConfig(\n proxyConfig,\n urls.lanUrlForConfig\n )\n const devServer = new WebpackDevServer(compiler, {\n ...serverConfig,\n watchOptions: {\n // ignored: '**/*.view.logic.js',\n ignored: 'node_modules/*',\n aggregateTimeout: 500,\n //poll: 1000\n },\n })\n // Launch WebpackDevServer.\n devServer.listen(port, HOST, err => {\n if (err) {\n reject(err)\n return console.log(err)\n }\n // if (isInteractive) {\n // clearConsole()\n // }\n\n // We used to support resolving modules according to `NODE_PATH`.\n // This now has been deprecated in favor of jsconfig/tsconfig.json\n // This lets you use absolute paths in imports inside large monorepos:\n // if (process.env.NODE_PATH) {\n // console.log(\n // chalk.yellow(\n // 'Setting NODE_PATH to resolve modules absolutely has been deprecated in favor of setting baseUrl in jsconfig.json (or tsconfig.json if you are using TypeScript) and will be removed in a future major release of create-react-app.'\n // )\n // )\n // console.log()\n // }\n\n console.log(chalk.cyan('Starting the development server...\\n'))\n openBrowser(urls.localUrlForBrowser)\n\n resolve(compiler)\n })\n\n // ;['SIGINT', 'SIGTERM'].forEach(function(sig) {\n // process.on(sig, function() {\n // devServer.close()\n // process.exit()\n // })\n // })\n // })\n } catch (err) {\n if (err && err.message) {\n console.log(err.message)\n }\n reject(err)\n }\n })\n}\n","import {\n MATCH,\n isFontCustomFile,\n isViewCustomFile,\n isViewFile,\n isViewLogicFile,\n} from './match-files.js'\nimport { promises as fs, existsSync } from 'fs'\nimport { getFontId } from './fonts.js'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport getPointsOfUse from './get-points-of-use.js'\nimport path from 'path'\nimport runCra from './runCra.js'\n\nexport default async function watchFiles({ morpher, serve }) {\n let watcher = chokidar.watch(MATCH, {\n cwd: morpher.src,\n ignored: [\n '**/node_modules/**',\n '**/*.view.js',\n '**/Fonts/*.js',\n 'useFlow.js',\n 'useIsMedia.js',\n 'useIsBefore.js',\n 'useTools.js',\n 'useData.js',\n ],\n ignoreInitial: true,\n awaitWriteFinish: true,\n })\n\n let compiler = null\n if (serve) {\n compiler = await runCra()\n compiler.hooks.watchRun.tapPromise(\n 'ViewsMorpher',\n () => processEventsPromise || Promise.resolve()\n )\n }\n\n let skipTimeout = null\n let processEventsPromise = null\n let queue = []\n function onEvent({ file, op }, process = true) {\n // console.log('entered event, file: ', file, 'op: ', op)\n\n if (process) {\n queue.push({ file: path.join(morpher.src, file), op })\n }\n\n // if morpher busy, try again in a bit\n clearTimeout(skipTimeout)\n skipTimeout = null\n if (processEventsPromise) {\n skipTimeout = setTimeout(() => onEvent({}, false), 200)\n return\n }\n // console.log('after enter, queue is', queue)\n processEvents()\n }\n\n async function processEvents() {\n if (queue.length === 0 || processEventsPromise) {\n return\n }\n\n let queueClone = [...queue]\n queue = []\n processEventsPromise = new Promise(async resolve => {\n try {\n await processQueue({ queue: queueClone, morpher })\n } catch (error) {\n console.error(error)\n } finally {\n resolve()\n processEventsPromise = null\n }\n })\n }\n\n watcher.on('add', file => onEvent({ file, op: 'add' }))\n watcher.on('change', file => onEvent({ file, op: 'change' }))\n watcher.on('unlink', file => onEvent({ file, op: 'unlink' }))\n\n return watcher\n}\n\nasync function processQueue({ queue, morpher }) {\n let filesToProcess = {\n filesView: new Set(),\n filesViewLogic: new Set(),\n filesViewCustom: new Set(),\n filesFontCustom: new Set(),\n }\n\n await processUnlinked({\n files: queue.filter(item => item.op === 'unlink'),\n morpher,\n filesToProcess,\n })\n\n await processAddedOrChanged({\n files: queue.filter(item => item.op !== 'unlink'),\n morpher,\n filesToProcess,\n })\n\n await morpher.processFiles(filesToProcess)\n\n if (!morpher.verbose) return // && viewsId.size > 0) {\n\n // Object.entries(filesToProcess).forEach(([key, value]) => {\n // console.log(chalk.greenBright(key), [...value])\n // })\n\n // console.log(chalk.green('M'), [...viewsId].join(', '))\n // }\n}\n\nfunction processUnlinked({ files, morpher, filesToProcess }) {\n return Promise.all(\n files.map(async ({ file }) => {\n morpher.verbose && console.log(chalk.magenta('X'), file) // view.id, chalk.dim(`-> ${file}`))\n\n if (await isFontCustomFile(file)) {\n let id = getFontId(file)\n let font = morpher.customFonts.get(id)\n font.delete(file)\n\n if (font.size === 0) {\n morpher.customFonts.delete(id)\n }\n } else {\n let view = morpher.viewsToFiles.get(\n file.replace('.view.logic.js', '.view')\n )\n if (!view) return\n\n processPointsOfUse({ view, morpher, filesToProcess })\n\n filesToProcess.filesView.delete(view.file)\n morpher.viewsById.delete(view.id)\n morpher.viewsToFiles.delete(view.file)\n\n try {\n fs.unlink(`${view.file}.js`)\n } catch (error) {}\n\n if (await isViewFile(file)) {\n filesToProcess.filesView.delete(file)\n } else if (await isViewLogicFile(file)) {\n filesToProcess.filesView.add(view.file)\n filesToProcess.filesViewLogic.delete(file)\n } else if (await isViewCustomFile(file)) {\n filesToProcess.filesViewCustom.delete(file)\n }\n }\n })\n )\n}\n\nfunction processAddedOrChanged({ files, morpher, filesToProcess }) {\n return Promise.all(\n files.map(async ({ file, op }) => {\n morpher.verbose && console.log(chalk.yellow(op), file)\n\n if (await isFontCustomFile(file)) {\n filesToProcess.filesFontCustom.add(file)\n } else {\n if (await isViewFile(file)) {\n filesToProcess.filesView.add(file)\n\n let logicFile = `${file}.logic.js`\n if (existsSync(logicFile)) {\n filesToProcess.filesViewLogic.add(logicFile)\n }\n } else if (await isViewLogicFile(file)) {\n filesToProcess.filesView.add(file.replace('.logic.js', ''))\n filesToProcess.filesViewLogic.add(file)\n } else if (await isViewCustomFile(file)) {\n filesToProcess.filesViewCustom.add(file)\n }\n\n let view = morpher.viewsToFiles.get(\n file.replace('.view.logic.js', '.view')\n )\n if (!view) return\n\n processPointsOfUse({ view, morpher, filesToProcess })\n }\n\n // morpher.verbose &&\n // console.log(\n // op === 'add'\n // ? `${chalk.yellow('A')} ${chalk.green('M')}`\n // : chalk.green('M'),\n // getViewIdFromFile(file),\n // chalk.dim(`-> ${file}`)\n // )\n })\n )\n}\n\nfunction processPointsOfUse({ view, morpher, filesToProcess }) {\n let { filesView, filesViewLogic } = getPointsOfUse({\n view,\n viewsToFiles: morpher.viewsToFiles,\n })\n for (let file of filesView) {\n filesToProcess.filesView.add(file)\n }\n for (let file of filesViewLogic) {\n filesToProcess.filesViewLogic.add(file)\n }\n}\n","import { ensureFontsDirectory } from './fonts.js'\nimport getFiles from './get-files.js'\nimport chalk from 'chalk'\nimport makeMorpher from './make-morpher.js'\nimport maybePrintWarnings from './maybe-print-warnings.js'\nimport path from 'path'\nimport watchFiles from './watch-files.js'\n\nexport default async function watch(options) {\n let morpher = makeMorpher(options)\n\n await ensureFontsDirectory(morpher.src)\n\n await morpher.processFiles(await getFiles(morpher.src))\n\n if (options.verbose) {\n if (morpher.customFonts.size > 0) {\n console.log(chalk.yellow(`\\nCustom fonts detected:`))\n console.log([...morpher.customFonts.keys()].sort().join('\\n'))\n }\n\n let views = [...morpher.viewsToFiles.values()]\n console.log(\n views\n .map(view => {\n let msg = view.id\n if (view.custom) {\n msg = `${view.id} ${chalk.dim('(is custom)')}`\n } else if (view.logic) {\n msg = `${view.id} ${chalk.dim('(has logic)')}`\n }\n return `${chalk.yellow('A')} ${chalk.green('M')} ${msg} ${chalk.dim(\n path.relative(process.cwd(), view.file)\n )}`\n })\n .sort()\n .join('\\n')\n )\n\n views.forEach(maybePrintWarnings)\n }\n\n if (options.once) return\n\n let watcher = watchFiles({ morpher, serve: options.serve })\n\n process.on('beforeExit', () => {\n console.log('Stopping Views morpher file watcher...')\n watcher.close()\n })\n}\n","import { promises as fs } from 'fs'\nimport chalk from 'chalk'\nimport cleanup from './clean.js'\nimport minimist from 'minimist'\nimport path from 'path'\nimport pkg from './package.json'\nimport updateNotifier from 'update-notifier'\nimport watch from './watch.js'\n\nlet wait = time => new Promise(resolve => setTimeout(resolve, time))\n\n;(async function() {\n let {\n _,\n as,\n clean,\n help,\n local,\n serve,\n tools,\n track,\n watch: shouldWatch,\n verbose,\n version,\n } = minimist(process.argv.slice(2), {\n alias: {\n help: 'h',\n },\n booleans: ['clean', 'help', 'serve', 'track', 'tools', 'watch', 'version'],\n default: {\n as: 'react-dom',\n clean: false,\n local: 'en',\n serve: false,\n tools: true,\n track: false,\n verbose: true,\n version: false,\n watch: false,\n },\n })\n\n if (!shouldWatch && tools) {\n tools = false\n }\n\n track = track === 'true'\n\n if (help) {\n console.log(`\n views-morph [directory]\n --as target platform\n react-dom (default)\n react-native\n react-pdf\n --clean clean the autogenerated .view.js files\n --local default local language, defaults to English (en)\n --tools use with Views Tools, defauls to true when\n --watch is enabled, otherwise defaults to false\n --track enable UI tracking, defaults to false\n --verbose defaults to true\n --version print the version\n --watch watch a directory and produce .view.js files\n `)\n\n process.exit()\n }\n\n if (version) {\n console.log(`v${pkg.version}`)\n process.exit()\n }\n\n let input = Array.isArray(_) && _[0]\n\n if (!input || !(await fs.stat(input)).isDirectory()) {\n console.error(\n `You need to specify an input directory to watch. ${input} is a file.`\n )\n process.exit()\n }\n\n if (!path.isAbsolute(input)) {\n input = path.normalize(path.join(process.cwd(), input))\n }\n\n try {\n if ((await fs.stat(path.join(input, 'src'))).isDirectory()) {\n input = path.join(input, 'src')\n }\n } catch (error) {}\n\n if (clean) {\n console.log(`Cleaning up ${input}...`)\n await cleanup(input, verbose)\n process.exit()\n }\n\n updateNotifier({ pkg }).notify()\n\n if (verbose) {\n console.log(chalk.underline(`Views Tools morpher v${pkg.version}`))\n\n console.log(\n `\\nWill morph files at \"${chalk.green(input)}\" as \"${chalk.green(as)}\" ${\n tools ? 'with Views Tools' : 'without Views Tools'\n }`\n )\n\n if (shouldWatch && !tools) {\n console.log(\n chalk.bgRed(' ')\n )\n console.log()\n console.log(`🚨 You're missing out!!!`)\n console.log(\n chalk.bold(\n '🚀 Views Tools can help you find product market\\n fit before you run out of money.'\n )\n )\n console.log()\n console.log(\n '✨ Find out how 👉',\n chalk.bold(chalk.green('https://views.tools'))\n )\n console.log()\n console.log(\n chalk.bgRed(' ')\n )\n await wait(15000)\n }\n\n console.log(chalk.yellow('A'), '= Added')\n console.log(chalk.green('M'), `= Morphed`)\n console.log(chalk.blue('X'), `= Deleted`)\n console.log('\\nPress', chalk.blue('ctrl+c'), 'to stop at any time.\\n')\n }\n\n watch({\n as,\n local,\n once: !shouldWatch,\n serve,\n src: input,\n tools,\n track,\n verbose,\n })\n})()\n"],"names":["clean","src","verbose","morphed","glob","bashNative","cwd","ignore","Promise","all","map","f","console","log","fs","unlink","path","join","deleted","deleteEmpty","forEach","d","addToMapSet","key","value","has","set","Set","get","add","getWeights","variants","filter","v","includes","list","font","category","family","weights","byName","fontFamily","isGoogleFont","maybeAddFallbackFont","sources","body","replace","weight","style","type","file","id","relativise","from","to","r","relative","substr","startsWith","morphFont","morphFontAsReactDom","morphFontAsReactNative","ensureFontsDirectory","fontsDirectory","mkdir","error","getFontId","basename","extname","fontsOrder","sortFonts","fonts","sort","a","b","indexOf","processCustomFonts","customFonts","filesFontCustom","morphAllFonts","as","filesView","viewsToFiles","fontsInUse","mapCustomFont","FONT_TYPES","view","custom","parsed","split","customFontSources","content","makeGetFontImport","source","test","PATTERNS","match","filesViewLogic","filesViewCustom","files","filesFirstLine","getFirstLine","firstLine","isViewCustom","isViewFile","mm","isMatch","isViewLogicFile","isViewCustomFile","length","isFontCustomFile","MATCH","Object","values","item","flat","getMatchesPerPattern","fromEntries","entries","matches","getFiles","absolute","USE_DATA","ensureIsBefore","getViewRelativeToView","viewsById","importCandidates","importViewFile","size","pathToView","maybeFileViewInside","maybeFileViewCustomInside","ensureFirstStoryIsOn","flow","stories","story","index","isSeparate","getTopStory","parent","makeFlow","tools","flowMap","Map","flowMapStr","isStory","states","views","viewInView","push","pathToStory","RegExp","JSON","stringify","topStory","initialState","ensureFlow","prettier","format","parser","singleQuote","trailingComma","USE_IS_BEFORE","makeUseIsMedia","media","name","minWidth","maxWidth","ret","getMediaConfig","mobile","width","tablet","laptop","parse","readFile","resolve","base","ensureIsMedia","TOOLS_FILE","ensureTools","fsExtra","exists","process","env","REACT_APP_VIEWS_TOOLS","FILE_USE_IS_BEFORE","FILE_USE_IS_MEDIA","FILE_USE_DATA","FILE_USE_FLOW","FILE_LOCAL_CONTAINER","FILE_TRACK_CONTEXT","makeGetSystemImport","getSystemImport","enter","node","state","isFragment","testId","testIdKey","render","s","isSlot","wrap","IS_INT","IS_FLOAT","MULTIPLE_BY_FONT_SIZE","PIXEL","PERCENTAGE","EM","REM","VW","VH","DEGREES","GRADIANS","RADIANS","TURN","getUnit","units","getUnits","find","u","LENGTH","PERCENTAGE_FIRST_LENGTH","MULTIPLE_BY_FONT_SIZE_LENGTH","ANGLE","UNITLESS","UNITS","blurRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomWidth","borderLeftWidth","borderRadius","borderRightWidth","borderTopLeftRadius","borderTopRightRadius","borderTopWidth","borderWidth","bottom","flexBasis","flexGrow","flexShrink","fontSize","height","left","letterSpacing","lineHeight","margin","marginBottom","marginLeft","marginRight","marginTop","maxHeight","minHeight","offsetX","offsetY","opacity","outline","padding","paddingBottom","paddingLeft","paddingRight","paddingTop","right","rotate","rotateX","rotateY","scale","scaleX","scaleY","shadowOffsetY","shadowOffsetX","shadowBlur","shadowSpread","skew","spreadRadius","top","translateX","translateY","wordSpacing","zIndex","UNITS_KEYS","keys","found","ukey","checkParentStem","styleKey","matchingParentStem","scopes","some","scope","is","INTERPOLATION","isInterpolation","str","deinterpolate","getObjectAsString","obj","Array","isArray","k","hasKeys","getProp","finder","p","properties","getPropValueOrDefault","defaultValue","hasProp","getScopedProps","propNode","blockNode","isSystem","isLocal","prop","when","Boolean","reverse","isEmpty","getScopedConditionPropValue","tags","slot","safe","unit","getScopedCondition","scopedProps","conditional","lastScope","animation","curve","getScopedImageCondition","scopedNames","defaultName","styleStems","getStyleType","tag","isTag","hasKeysInChildren","isStyle","getActionableParent","action","getAllowedStyleKeys","isCapture","isTable","isList","isCell","isHeader","isColumn","isValidImgSrc","isBasic","pushImageToState","paths","findIndex","images","getScopes","toCamelCase","isSvg","hasCustomScopes","hasLocals","getLocals","locals","getLocalsString","baseLocalName","localName","makeOnClickTracker","track","block","isTracking","getStandardAnimatedString","isNative","animationIndexOnBlock","getTransformString","transform","transformStr","props","i","getAnimatedString","getAnimatedStyles","getAllAnimatedProps","getSpringProps","getPropValue","interpolateValue","getDynamicStyles","flatten","getNonAnimatedDynamicStyles","animatedProps","animatedTransforms","dynamic","reduce","checkForTransforms","combineTransforms","TRANSFORM_WHITELIST","isTransform","getTimingProps","perspective","createId","addClassName","usedBlockNames","styleName","className","CONTENT_CONTAINER_STYLE_PROPS","isContentContainerStyleProp","hasContentContainerStyleProp","styleProps","getContentContainerStyleProps","removeContentContainerStyleProps","hasRowStyles","MAYBE_HYPHENATED_STYLE_PROPS","maybeMakeHyphenated","toSlugCase","typesMap","email","text","number","phone","secure","maybeNumber","valueWhenTrue","getValueForProperty","dataKey","getWidth","header","children","PropertyRest","cell","columns","child","columnsWithFixedWidth","columnsWidthSum","res","leave","explicitChildren","goTo","isGroup","nameFinal","pass","itemName","skip","getGroupBlockName","hasSpringAnimation","teleport","prevParent","canBeButton","flowDefaultState","use","getBlockName","isLazy","isProxy","nameTag","handleTable","IS_MEDIA","onWhen","data","variable","toLowerCase","shouldWrap","isRoute","isHovered","isFocused","isDisabled","isPlaceholder","isSelected","static","_isProp","styleForProperty","getStyleForProperty","hasMatchingParent","isDynamic","target","assign","flexDirection","allowedStyleKeys","scopedUnderParent","isAnimated","animations","getTableRowCss","css","getStaticCss","getAnimatedCss","getDynamicCss","styles","stylesOrder","composeStyles","cssStatic","asCss","asStaticCss","cssDynamic","asDynamicCss","hasDynamicCss","isReactNative","inlineDynamicStyles","hasTimingAnimation","transition","uniq","makeTransition","getUniqueNames","names","ensurePropName","duration","delay","dynamicStyles","systemScopeToCssKey","ensureSystemScopeCssKey","theKey","normalStyles","alternateStyles","typeScopes","scopeStyles","normalDynamic","normalStatic","alternateDynamic","alternateStatic","normalCss","alternateCss","hasDynamicRowStyles","isFormatted","formats","userSelect","hasRefs","PROPS_THAT_IMPLY_CODE_FOR_OTHERS","code","otherProp","_isScoped","parseFormatValue","timeValues","timeStr","val","parseInt","hasOwnProperty","blacklist","PropertiesStyle","PropertiesClassName","PropertiesImage","PropertyFormat","unsupportedShorthand","isValidPropertyForBlock","PropertyRef","PropertyStyle","PropertyText","PropertyOnClickUserSelect","PropertiesRoute","childrenProxyMap","at","isExact","blockName","testIds","BlockMaybeSkip","BlockSetTestId","BlockOffWhen","BlockRoute","BlockName","BlockProxy","BlockTable","BlockColumn","BlockCapture","BlockTeleport","BlockGoTo","BlockInList","BlockAddTestIdProp","BlockProperties","BlockGroup","BlockList","BlockExplicitChildren","scopedVar","setScopedVar","getTransform","WebkitAppRegion","maybeAsVar","backgroundImage","asVar","getShadow","transformOrigin","getTransformOrigin","scopedCondition","isText","shadowColor","getTransformValue","transformOriginX","transformOriginY","Number","isInteger","isUrl","getImageSource","slots","disabled","onClick","slotName","setFlow","makeGetImport","imports","getImport","externalImport","Error","importView","importFile","logic","importPath","uses","animated","blockId","configValues","spring","toValue","fromValue","current","maybeDataFormat","dataFormat","maybeDataValidate","dataValidate","trackOpen","trackClose","useIsBefore","useIsMedia","formatIn","formatOut","whenInvalid","validate","required","NATIVE","sortAlphabetically","importsFirst","aIsImport","bIsImport","usesNative","usesSvg","useNative","useSvg","dependencies","SVG","lazy","usedFont","getFontImport","img","component","svg","m","reactNativeLibraryImport","createFormatters","localSupported","getFormat","options","getOptions","string","local","clock","hour12","getStyles","getDependencies","getFlatList","getFormatters","getBody","getDefaultProps","walk","ast","visit","fn","Link","Route","Router","ModalOverlay","finalName","restrictedNames","warn","AutoSizer","Column","Table","visitor","maybeUsesRouter","toComponent","BORDER_RADIUS","uri","resizeMode","keyboardType","dynamicKeyboardType","autoCorrect","underlineColorAndroid","textAlignVertical","getListBlockName","baseStyle","animatedStyle","dynamicStyle","containerStyle","ensureBackgroundColor","backgroundColor","dynamicContainerStyle","SVG_BLOCKS_WITH_OPACITY","svgOpacity","onPress","isInList","wrapEnd","BlockWrap","BlockSvg","BlockBackgroundImage","borderStyle","decorateShadow","shadowRadius","getShadowOffset","getFontFamily","placeholderTextColor","color","getLineHeight","fontWeight","fontSizeValue","shadowOffset","elevation","shadowOpacity","DismissKeyboard","remap","maybeUsesTextInput","maybeUsesStyleSheet","reactNativeMorph","reactDom","reactNative","reactPdf","maybeMorph","result","morphers","version","chalk","green","dim","red","codeFrame","morphAllViews","maybePrintWarnings","warnings","warning","yellow","loc","start","line","blue","STYLE","ROWSTYLE","isRowStyle","Matcher","threshold","caseSensitive","prototype","apply","arguments","ignoreCase","matchCase","setThreshold","num","distance","word1","word2","Levenshtein","q","trim","results","word","concat","sortBy","closest","LOCAL_SCOPES","locales","dymPropMatcher","DidYouMeanMatcher","makeDidYouMeanBlock","dymBlockMatcher","didYouMeanProp","makeDidYouMeanFontFamily","dymFontFamilyMatcher","googleFontFamilies","ANIMATION","BASIC","BLOCK","BOOL","CAPTURE","CAPTURE_TYPES","COMMENT","FLOAT","FONTABLE","INT","NOT_GROUP","PROP","UNSUPPORTED_SHORTHAND","border","borderBottom","borderTop","borderRight","borderLeft","boxShadow","flex","textShadow","overflow","TRUE","USER_COMMENT","SLOT","thing","isAnimation","isBlock","isBool","isComment","isEmptyText","isFloat","isFontable","isInt","isProp","isUnsupportedShorthand","isTrue","isUserComment","regex","addDefaults","animationType","tension","friction","getAnimation","_","animationValues","getValue","getBlock","indentation","_1","level","Math","floor","getComment","slice","err","getData","maybeProp","getDataFormat","getDataValidate","formatKey","_2","slotIsNot","_3","getSlot","getUnsupportedShorthandExpanded","theValue","x","y","parseFloat","isLocalScope","SYSTEM_SCOPES","isSystemScope","isActionable","getPropType","isNumber","scolumn","ecolumn","column","end","SLOT_PROPS","shouldBeSlot","rowStyle","validSlot","fragment","convertSlotToProps","enableLocalScopes","enableSystemScopes","skipComments","skipInvalidProps","warnMissingDefaultValue","rlines","lines","trimRight","stack","viewsInView","didYouMeanBlock","didYouMeanFontFamily","blockIds","getBlockId","maybeId","getChildrenProxyMap","lookForFonts","fontFamilyProp","fontWeightProp","toString","fontStyleProp","meant","lookForMultiples","freq","multiples","endLine","max","parseBlock","shouldPushToStack","getLoc","last","pop","blocker","parseProps","endOfBlockIndex","inScope","j","getTags","currentAnimation","baseValue","baseProp","needsDefaultValue","vp","userComment","comment","invalidProps","flowProp","getFileDepth","sep","sortByFileDepth","depthA","depthB","depthDelta","sortSetsInMap","parseViews","processViewCustomFiles","endsWith","processViewFiles","getViewIdFromFile","makeMorpher","processFiles","morphedFonts","morphedViews","morphedData","ensureData","morphedFlow","morphedTools","morphedIsBefore","morphedIsMedia","filesToWrite","writeFile","getPointsOfUse","viewsId","prepareUrls","protocol","host","port","formatUrl","hostname","url","pathname","prettyPrintUrl","bold","isUnspecifiedHost","prettyHost","lanUrlForConfig","lanUrlForTerminal","address","ip","undefined","_e","localUrlForTerminal","localUrlForBrowser","printInstructions","appName","urls","useYarn","cyan","createCompiler","config","devSocket","useTypeScript","tscCompileOnError","webpack","compiler","message","exit","hooks","invalid","tap","isFirstCompile","tsMessagesPromise","tsMessagesResolver","beforeCompile","msgs","forkTsCheckerWebpackPlugin","getCompilerHooks","receive","diagnostics","lints","allMsgs","typescriptFormatter","errors","msg","severity","done","stats","statsData","toJson","delayedMsg","setTimeout","messages","clearTimeout","compilation","formatWebpackMessages","isSuccessful","isInteractive","underline","isSmokeTest","argv","arg","failed","hasErrors","hasWarnings","resolveLoopback","proxy","o","_ignored","onProxyError","req","headers","writeHead","headersSent","prepareProxy","appPublicFolder","mayProxy","maybePublicPath","isPublicFileRequest","existsSync","isWdsEndpointRequest","platform","logLevel","context","method","accept","onProxyReq","proxyReq","getHeader","setHeader","onError","changeOrigin","ws","xfwd","choosePort","defaultPort","detect","then","isRoot","appDirectory","realpathSync","resolveApp","relativePath","envPublicUrl","PUBLIC_URL","ensureSlash","inputPath","needsSlash","hasSlash","getPublicUrl","pathsAppPackageJson","appPackageJson","readFileSync","homepage","getServedPath","publicUrl","servedUrl","moduleFileExtensions","resolveModule","resolveFn","filePath","extension","dotenv","appPath","appBuild","appPublic","appHtml","appIndexJs","appSrc","appTsConfig","appJsConfig","yarnLockFile","testsSetup","proxySetup","appNodeModules","servedPath","ownPath","ownNodeModules","appTypeDeclarations","ownTypeDeclarations","BABEL_ENV","NODE_ENV","on","verifyTypeScriptSetup","configFactory","require","createDevServerConfig","DEFAULT_PORT","PORT","HOST","checkBrowsers","rdub","wait","run","checkRequiredFiles","reject","HTTPS","devServer","sockWrite","sockets","plugins","c","CaseSensitivePathsPlugin","proxySetting","proxyConfig","serverConfig","WebpackDevServer","watchOptions","ignored","aggregateTimeout","listen","openBrowser","watchFiles","morpher","serve","watcher","chokidar","watch","ignoreInitial","awaitWriteFinish","runCra","watchRun","tapPromise","processEventsPromise","skipTimeout","queue","onEvent","op","processEvents","queueClone","processQueue","filesToProcess","processUnlinked","processAddedOrChanged","magenta","delete","processPointsOfUse","logicFile","once","close","time","help","shouldWatch","minimist","alias","booleans","default","pkg","input","stat","isDirectory","isAbsolute","normalize","cleanup","updateNotifier","notify","bgRed"],"mappings":"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"}
\No newline at end of file