generator-reackt 0.6.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.prettierrc +5 -5
  2. package/.stylelintrc +5 -188
  3. package/LICENSE +21 -7
  4. package/README.md +20 -18
  5. package/generators/app/index.js +1 -392
  6. package/generators/component/index.js +1 -51
  7. package/generators/module/index.js +1 -127
  8. package/generators/util/fs.js +1 -34
  9. package/package.json +83 -63
  10. package/templates/app/.browserslistrc +3 -3
  11. package/templates/app/.editorconfig +11 -11
  12. package/templates/app/.esdoc.json +23 -23
  13. package/templates/app/.lintstagedrc +4 -4
  14. package/templates/app/.prettierrc +5 -5
  15. package/templates/app/.storybook/main.ts +19 -0
  16. package/templates/app/.storybook/preview.ts +36 -0
  17. package/templates/app/.stylelintrc +5 -188
  18. package/templates/app/.yarnrc.yml +3 -0
  19. package/templates/app/_eslint.config.mjs +51 -0
  20. package/templates/app/{package.json → _package.json} +18 -18
  21. package/templates/app/_stories/SuspenseFallback.stories.tsx +17 -0
  22. package/templates/app/gitignore +3 -2
  23. package/templates/app/jest.config.js +15 -15
  24. package/templates/app/src/components/ErrorBoundary.tsx +45 -0
  25. package/templates/app/src/components/Layout.tsx +142 -0
  26. package/templates/app/src/components/SuspenseFallback.tsx +96 -0
  27. package/templates/app/src/index.html +10 -10
  28. package/templates/app/src/{index.scss → index.nscss} +17 -16
  29. package/templates/app/src/index.tsx +60 -0
  30. package/templates/app/src/pages/index.tsx +3 -0
  31. package/templates/app/src/reducers/application.ts +36 -0
  32. package/templates/app/src/reducers/{index.js → index.ts} +8 -7
  33. package/templates/app/src/sagas/application.ts +9 -0
  34. package/templates/app/src/sagas/{index.js → index.ts} +8 -7
  35. package/templates/app/src/selectors/application.test.ts +18 -0
  36. package/templates/app/src/selectors/application.ts +6 -0
  37. package/templates/app/src/types/globals.d.ts +1 -0
  38. package/templates/app/src/types/index.ts +11 -0
  39. package/templates/app/src/utils/{index.js → index.ts} +36 -36
  40. package/templates/app/tsconfig.json +18 -0
  41. package/templates/app/webpack.config.nts +121 -0
  42. package/templates/component/index.stories.tsx +14 -0
  43. package/templates/component/{index.test.js → index.test.tsx} +14 -14
  44. package/templates/{app/src/components/App.js → component/index.tsx} +16 -14
  45. package/templates/module/reducer/{index.js → index.ts} +20 -20
  46. package/templates/module/saga/{index.js → index.ts} +9 -9
  47. package/templates/app/.babelrc +0 -4
  48. package/templates/app/.eslintrc.js +0 -46
  49. package/templates/app/.storybook/addons.js +0 -1
  50. package/templates/app/.storybook/config.js +0 -14
  51. package/templates/app/.storybook/webpack.config.babel.js +0 -7
  52. package/templates/app/jsconfig.json +0 -7
  53. package/templates/app/src/index.js +0 -47
  54. package/templates/app/src/reducers/application.js +0 -21
  55. package/templates/app/src/sagas/application.js +0 -9
  56. package/templates/app/src/selectors/application.js +0 -1
  57. package/templates/app/src/selectors/application.test.js +0 -13
  58. package/templates/app/webpack.config.babel.js +0 -103
  59. package/templates/component/index.js +0 -19
  60. /package/templates/module/reducer/{index.test.js → index.test.ts} +0 -0
  61. /package/templates/module/saga/{index.test.js → index.test.ts} +0 -0
  62. /package/templates/module/selector/{index.js → index.test.ts} +0 -0
  63. /package/templates/module/selector/{index.test.js → index.ts} +0 -0
@@ -1,188 +1,5 @@
1
- {
2
- "defaultSeverity": "warning",
3
- "extends": "stylelint-config-recommended",
4
- "customSyntax": "postcss-scss",
5
- "rules": {
6
- "at-rule-allowed-list": null,
7
- "at-rule-disallowed-list": null,
8
- "at-rule-empty-line-before": [
9
- "always",
10
- {
11
- "except": [
12
- "blockless-after-blockless",
13
- "first-nested"
14
- ],
15
- "ignore": [
16
- "after-comment"
17
- ],
18
- "ignoreAtRules": [
19
- "else"
20
- ]
21
- }
22
- ],
23
- "at-rule-no-unknown": [
24
- true,
25
- {
26
- "ignoreAtRules": [
27
- "each",
28
- "content",
29
- "else",
30
- "extend",
31
- "if",
32
- "include",
33
- "mixin",
34
- "for",
35
- "elseif",
36
- "return",
37
- "function"
38
- ]
39
- }
40
- ],
41
- "at-rule-no-vendor-prefix": true,
42
- "block-no-empty": true,
43
- "color-hex-length": "short",
44
- "color-named": [
45
- "never",
46
- {
47
- "severity": "error"
48
- }
49
- ],
50
- "color-no-hex": null,
51
- "color-no-invalid-hex": true,
52
- "comment-empty-line-before": [
53
- "always",
54
- {
55
- "ignore": [
56
- "after-comment",
57
- "stylelint-commands"
58
- ]
59
- }
60
- ],
61
- "comment-no-empty": true,
62
- "comment-whitespace-inside": "always",
63
- "comment-word-disallowed-list": [
64
- "/^TODO:/"
65
- ],
66
- "custom-media-pattern": null,
67
- "custom-property-empty-line-before": null,
68
- "custom-property-pattern": null,
69
- "declaration-block-no-duplicate-properties": true,
70
- "declaration-block-no-redundant-longhand-properties": true,
71
- "declaration-block-no-shorthand-property-overrides": true,
72
- "declaration-block-single-line-max-declarations": 1,
73
- "declaration-no-important": true,
74
- "declaration-property-unit-allowed-list": {
75
- "border": [
76
- "px"
77
- ],
78
- "line-height": [],
79
- "outline-offset": [
80
- "px"
81
- ]
82
- },
83
- "declaration-property-unit-disallowed-list": {},
84
- "declaration-property-value-allowed-list": {},
85
- "declaration-property-value-disallowed-list": {},
86
- "font-family-name-quotes": "always-unless-keyword",
87
- "font-family-no-duplicate-names": true,
88
- "font-family-no-missing-generic-family-keyword": true,
89
- "font-weight-notation": "numeric",
90
- "function-allowed-list": null,
91
- "function-calc-no-unspaced-operator": true,
92
- "function-disallowed-list": null,
93
- "function-linear-gradient-no-nonstandard-direction": true,
94
- "function-url-no-scheme-relative": true,
95
- "function-url-quotes": "always",
96
- "function-url-scheme-allowed-list": null,
97
- "function-url-scheme-disallowed-list": null,
98
- "keyframe-declaration-no-important": true,
99
- "length-zero-no-unit": true,
100
- "max-nesting-depth": 4,
101
- "media-feature-name-allowed-list": null,
102
- "media-feature-name-disallowed-list": null,
103
- "media-feature-name-no-unknown": true,
104
- "media-feature-name-no-vendor-prefix": true,
105
- "no-descending-specificity": true,
106
- "no-duplicate-at-import-rules": true,
107
- "no-duplicate-selectors": true,
108
- "no-empty-source": true,
109
- "no-invalid-double-slash-comments": true,
110
- "no-unknown-animations": true,
111
- "number-max-precision": [
112
- 2,
113
- {
114
- "ignoreUnits": [
115
- "em",
116
- "rem"
117
- ]
118
- }
119
- ],
120
- "property-allowed-list": null,
121
- "property-disallowed-list": null,
122
- "property-no-unknown": true,
123
- "property-no-vendor-prefix": true,
124
- "rule-empty-line-before": [
125
- "always",
126
- {
127
- "except": [
128
- "first-nested"
129
- ],
130
- "ignore": [
131
- "after-comment"
132
- ]
133
- }
134
- ],
135
- "selector-attribute-operator-allowed-list": null,
136
- "selector-attribute-operator-disallowed-list": null,
137
- "selector-attribute-quotes": "always",
138
- "selector-class-pattern": "[a-z]+",
139
- "selector-combinator-allowed-list": null,
140
- "selector-combinator-disallowed-list": null,
141
- "selector-id-pattern": null,
142
- "selector-max-attribute": 1,
143
- "selector-max-class": 3,
144
- "selector-max-combinators": 2,
145
- "selector-max-compound-selectors": 3,
146
- "selector-max-id": 1,
147
- "selector-max-pseudo-class": 2,
148
- "selector-max-specificity": [
149
- "0,5,1",
150
- {
151
- "severity": "error"
152
- }
153
- ],
154
- "selector-max-type": 2,
155
- "selector-max-universal": 1,
156
- "selector-nested-pattern": null,
157
- "selector-no-qualifying-type": true,
158
- "selector-no-vendor-prefix": true,
159
- "selector-pseudo-class-allowed-list": null,
160
- "selector-pseudo-class-disallowed-list": null,
161
- "selector-pseudo-class-no-unknown": true,
162
- "selector-pseudo-element-allowed-list": null,
163
- "selector-pseudo-element-colon-notation": "double",
164
- "selector-pseudo-element-disallowed-list": null,
165
- "selector-pseudo-element-no-unknown": true,
166
- "selector-type-no-unknown": true,
167
- "shorthand-property-no-redundant-values": true,
168
- "string-no-newline": true,
169
- "time-min-milliseconds": 100,
170
- "unit-allowed-list": [
171
- "%",
172
- "deg",
173
- "em",
174
- "ms",
175
- "px",
176
- "rem",
177
- "s",
178
- "vh",
179
- "vmax",
180
- "vmin",
181
- "vw"
182
- ],
183
- "unit-disallowed-list": null,
184
- "unit-no-unknown": true,
185
- "value-keyword-case": "lower",
186
- "value-no-vendor-prefix": true
187
- }
188
- }
1
+ {
2
+ "customSyntax": "postcss-scss",
3
+ "defaultSeverity": "warning",
4
+ "extends": "stylelint-config-recommended"
5
+ }
@@ -0,0 +1,3 @@
1
+ enableScripts: true
2
+
3
+ nodeLinker: node-modules
@@ -0,0 +1,51 @@
1
+ import globals from 'globals';
2
+ import eslint from '@eslint/js';
3
+ import { configs } from 'typescript-eslint';
4
+ import { defineConfig } from 'eslint/config';
5
+ import reactPlugin from 'eslint-plugin-react';
6
+ import reactHooksPlugin from 'eslint-plugin-react-hooks';
7
+ import { flatConfigs as importConfigs } from 'eslint-plugin-import-x';
8
+ import prettierPlugin from 'eslint-plugin-prettier/recommended';
9
+
10
+ export default defineConfig(
11
+ eslint.configs.recommended,
12
+ ...configs.recommended,
13
+ importConfigs.recommended,
14
+ importConfigs.react,
15
+ importConfigs.typescript,
16
+ reactPlugin.configs.flat['recommended'],
17
+ reactHooksPlugin.configs.flat['recommended-latest'],
18
+ {
19
+ languageOptions: {
20
+ globals: globals.browser
21
+ },
22
+ rules: {
23
+ 'react/jsx-uses-react': 0,
24
+ 'react/jsx-sort-props': 2,
25
+ 'react/react-in-jsx-scope': 0
26
+ },
27
+ settings: {
28
+ react: {
29
+ version: 'detect'
30
+ }
31
+ }
32
+ },
33
+ {
34
+ files: ['webpack.config.*', '.storybook/*.ts'],
35
+ languageOptions: {
36
+ globals: globals.node
37
+ }
38
+ },
39
+ <% if (flags.addJest) { %>
40
+ {
41
+ files: ['./src/**/*.test.js'],
42
+ languageOptions: {
43
+ globals: {
44
+ ...globals.node,
45
+ ...globals.jest
46
+ }
47
+ }
48
+ },
49
+ <% } %>
50
+ prettierPlugin
51
+ );
@@ -1,19 +1,19 @@
1
- {
2
- "name": "<%= package.name %>",
3
- "version": "<%= package.version %>",
4
- "description": "<%= package.description %>",
5
- "author": "<%= author.name %> <<%= author.email %>>",
6
- "license": "<%= package.license %>",
7
- "scripts": {
8
- <% if (flags.addStorybook) { %>
9
- "storybook": "start-storybook",
10
- <% } %>
11
- <% if (flags.addJest) { %>
12
- "test": "jest",
13
- <% } %>
14
- "build": "cross-env NODE_ENV=production webpack",
15
- "start": "cross-env NODE_ENV=development webpack serve"
16
- },
17
- "dependencies": {},
18
- "devDependencies": {}
1
+ {
2
+ "name": "<%= package.name %>",
3
+ "version": "<%= package.version %>",
4
+ "description": "<%= package.description %>",
5
+ "author": "<%= author.name %> <<%= author.email %>>",
6
+ "license": "<%= package.license %>",
7
+ "scripts": {
8
+ <% if (flags.addLintStaged) { %>
9
+ "prepare": "husky",
10
+ <% } %>
11
+ <% if (flags.addJest) { %>
12
+ "test": "jest",
13
+ <% } %>
14
+ "build": "cross-env NODE_ENV=production webpack",
15
+ "start": "cross-env NODE_ENV=development webpack serve"
16
+ },
17
+ "dependencies": {},
18
+ "devDependencies": {}
19
19
  }
@@ -0,0 +1,17 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+
3
+ import SuspenseFallback from './SuspenseFallback';
4
+
5
+ const meta = {
6
+ title: 'Components/SuspenseFallback',
7
+ component: SuspenseFallback,
8
+ parameters: {
9
+ layout: 'fullscreen'
10
+ }
11
+ } satisfies Meta<typeof SuspenseFallback>;
12
+
13
+ export default meta;
14
+
15
+ type Story = StoryObj<typeof meta>;
16
+
17
+ export const Default: Story = {};
@@ -1,2 +1,3 @@
1
- node_modules/
2
- dist/
1
+ node_modules/
2
+ dist/
3
+ .yarn/
@@ -1,15 +1,15 @@
1
- module.exports = {
2
- collectCoverage: true,
3
- collectCoverageFrom: ['src/**/*.js', '!src/*.js'],
4
- coverageDirectory: './coverage',
5
- coverageReporters: ['html', 'text-summary'],
6
- coverageThreshold: {
7
- global: {
8
- branches: 80,
9
- functions: 80,
10
- lines: 80,
11
- statements: 80
12
- }
13
- },
14
- modulePaths: ['<rootDir>/src/']
15
- };
1
+ export default {
2
+ collectCoverage: true,
3
+ collectCoverageFrom: ['src/**/*.js', '!src/*.js'],
4
+ coverageDirectory: './coverage',
5
+ coverageReporters: ['html', 'text-summary'],
6
+ coverageThreshold: {
7
+ global: {
8
+ branches: 80,
9
+ functions: 80,
10
+ lines: 80,
11
+ statements: 80
12
+ }
13
+ },
14
+ modulePaths: ['<rootDir>/src/']
15
+ };
@@ -0,0 +1,45 @@
1
+ import { Fragment } from 'react';
2
+ <% if (styleFramework === 'bootstrap') { %>
3
+ import { Container } from 'react-bootstrap';
4
+ <% } else if (styleFramework === 'foundation') { %>
5
+ import { GridContainer as Container } from 'react-foundation';
6
+ <% } else if (styleFramework === 'materialize') { %>
7
+ import { Container } from 'react-materialize';
8
+ <% } else if (styleFramework === 'uikit') { %>
9
+ import { Container } from 'uikit-react';
10
+ <% } else if (styleFramework === 'materialUi') { %>
11
+ import { Container } from '@mui/material';
12
+ <% } %>
13
+ import { isRouteErrorResponse, useRouteError } from 'react-router';
14
+
15
+ export default function ErrorBoundary() {
16
+ const error = useRouteError();
17
+
18
+ return (
19
+ <% if (styleFramework === 'bulma') { %>
20
+ <div className="container">
21
+ <% } else if (styleFramework) { %>
22
+ <Container>
23
+ <% } else { %>
24
+ <div>
25
+ <% } %>
26
+ <h1>Error</h1>
27
+ {isRouteErrorResponse(error) ? (
28
+ <h1>
29
+ {error.status} {error.statusText}
30
+ </h1>
31
+ ) : error instanceof Error ? (
32
+ <Fragment>
33
+ <h1>{error.message}</h1>
34
+ <pre>{error.stack}</pre>
35
+ </Fragment>
36
+ ) : (
37
+ <h1>{error as string}</h1>
38
+ )}
39
+ <% if (styleFramework && styleFramework !== 'bulma') { %>
40
+ </Container>
41
+ <% } else { %>
42
+ </div>
43
+ <% } %>
44
+ );
45
+ }
@@ -0,0 +1,142 @@
1
+ <% if (styleFramework === 'bootstrap') { %>
2
+ import { Fragment } from 'react';
3
+ import { Link, Outlet } from 'react-router-dom';
4
+ import { Container, Nav, Navbar } from 'react-bootstrap';
5
+
6
+ export default function Layout() {
7
+ return (
8
+ <Fragment>
9
+ <Navbar expand="lg" variant="dark">
10
+ <Container>
11
+ <Navbar.Brand>
12
+ <Nav.Link as={Link} to="/">
13
+ <%= package.name %>
14
+ </Nav.Link>
15
+ </Navbar.Brand>
16
+ <Navbar.Toggle />
17
+ <Navbar.Collapse>
18
+ <Nav></Nav>
19
+ </Navbar.Collapse>
20
+ </Container>
21
+ </Navbar>
22
+ <Container className="h-100">
23
+ <Outlet />
24
+ </Container>
25
+ </Fragment>
26
+ );
27
+ }
28
+ <% } else if (styleFramework === 'bulma') { %>
29
+ import { Link, Outlet } from 'react-router-dom';
30
+
31
+ export default function Layout() {
32
+ return (
33
+ <div className="container">
34
+ <nav aria-label="main navigation" className="navbar" role="navigation">
35
+ <div className="navbar-brand">
36
+ <Link className="navbar-item" to="/">
37
+ <%= package.name %>
38
+ </Link>
39
+ </div>
40
+ </nav>
41
+ <Outlet />
42
+ </div>
43
+ );
44
+ }
45
+ <% } else if (styleFramework === 'foundation') { %>
46
+ import { Link, Outlet } from 'react-router-dom';
47
+ import {
48
+ GridContainer,
49
+ Menu,
50
+ MenuItem,
51
+ TopBar,
52
+ TopBarLeft
53
+ } from 'react-foundation';
54
+
55
+ export default function Layout() {
56
+ return (
57
+ <GridContainer>
58
+ <TopBar>
59
+ <TopBarLeft>
60
+ <Menu>
61
+ <MenuItem>
62
+ <Link to="/"><%= package.name %></Link>
63
+ </MenuItem>
64
+ </Menu>
65
+ </TopBarLeft>
66
+ </TopBar>
67
+ <Outlet />
68
+ </GridContainer>
69
+ );
70
+ }
71
+ <% } else if (styleFramework === 'materialize') { %>
72
+ import { Link, Outlet } from 'react-router-dom';
73
+ import { Container, Icon, Navbar } from 'react-materialize';
74
+
75
+ export default function Layout() {
76
+ return (
77
+ <Container>
78
+ <Navbar
79
+ brand={<Link to="/"><%= package.name %></Link>}
80
+ menuIcon={<Icon>menu</Icon>}
81
+ />
82
+ <Outlet />
83
+ </Container>
84
+ );
85
+ }
86
+ <% } else if (styleFramework === 'uikit') { %>
87
+ import { Link, Outlet } from 'react-router-dom';
88
+ import { Container, ListItem, Navbar, NavbarContainer } from 'uikit-react';
89
+
90
+ export default function Layout() {
91
+ return (
92
+ <Container>
93
+ <NavbarContainer>
94
+ <Navbar left>
95
+ <ListItem>
96
+ <Link to="/"><%= package.name %></Link>
97
+ </ListItem>
98
+ </Navbar>
99
+ </NavbarContainer>
100
+ <Outlet />
101
+ </Container>
102
+ );
103
+ }
104
+ <% } else if (styleFramework === 'materialUi') { %>
105
+ import { Fragment } from 'react';
106
+ import { Link, Outlet } from 'react-router-dom';
107
+ import {
108
+ AppBar,
109
+ Container,
110
+ CssBaseline,
111
+ Toolbar,
112
+ Typography
113
+ } from '@mui/material';
114
+
115
+ export default function Layout() {
116
+ return (
117
+ <Fragment>
118
+ <CssBaseline />
119
+ <AppBar position="static">
120
+ <Toolbar>
121
+ <Typography component={Link} to="/" variant="h6">
122
+ <%= package.name %>
123
+ </Typography>
124
+ </Toolbar>
125
+ </AppBar>
126
+ <Container>
127
+ <Outlet />
128
+ </Container>
129
+ </Fragment>
130
+ );
131
+ }
132
+ <% } else { %>
133
+ import { Outlet } from 'react-router-dom';
134
+
135
+ export default function Layout() {
136
+ return (
137
+ <div style={{ height: '100vh', width: '100%' }}>
138
+ <Outlet />
139
+ </div>
140
+ );
141
+ }
142
+ <% } %>
@@ -0,0 +1,96 @@
1
+ <% if (styleFramework === 'bootstrap') { %>
2
+ import { Row, Col, Spinner, Container } from 'react-bootstrap';
3
+
4
+ export default function SuspenseFallback() {
5
+ return (
6
+ <Container className="h-100 w-100 d-flex flex-column justify-content-center">
7
+ <Row>
8
+ <Col className="text-center">
9
+ <h1>Loading...</h1>
10
+ </Col>
11
+ </Row>
12
+ <Row>
13
+ <Col className="text-center">
14
+ <Spinner animation="border" className="my-3" />
15
+ </Col>
16
+ </Row>
17
+ </Container>
18
+ );
19
+ }
20
+ <% } else if (styleFramework === 'foundation') { %>
21
+ import { Cell, Grid, GridContainer } from 'react-foundation';
22
+
23
+ export default function SuspenseFallback() {
24
+ return (
25
+ <GridContainer>
26
+ <Grid>
27
+ <Cell className="text-center" small={12}>
28
+ <h1>Loading...</h1>
29
+ </Cell>
30
+ </Grid>
31
+ </GridContainer>
32
+ );
33
+ }
34
+ <% } else if (styleFramework === 'materialize') { %>
35
+ import { Col, Container, Preloader, Row } from 'react-materialize';
36
+
37
+ export default function SuspenseFallback() {
38
+ return (
39
+ <Container>
40
+ <Row>
41
+ <Col className="center-align" s={12}>
42
+ <h1>Loading...</h1>
43
+ </Col>
44
+ </Row>
45
+ <Row>
46
+ <Col className="center-align" s={12}>
47
+ <Preloader active color="blue" size="big" />
48
+ </Col>
49
+ </Row>
50
+ </Container>
51
+ );
52
+ }
53
+ <% } else if (styleFramework === 'uikit') { %>
54
+ import { Container, Section } from 'uikit-react';
55
+
56
+ export default function SuspenseFallback() {
57
+ return (
58
+ <Section>
59
+ <Container className="uk-text-center">
60
+ <h1>Loading...</h1>
61
+ </Container>
62
+ </Section>
63
+ );
64
+ }
65
+ <% } else if (styleFramework === 'materialUi') { %>
66
+ import { Box, CircularProgress, Container, Typography } from '@mui/material';
67
+
68
+ export default function SuspenseFallback() {
69
+ return (
70
+ <Container>
71
+ <Box
72
+ sx={{
73
+ alignItems: 'center',
74
+ display: 'flex',
75
+ flexDirection: 'column',
76
+ height: '100vh',
77
+ justifyContent: 'center'
78
+ }}
79
+ >
80
+ <Typography variant="h4">Loading...</Typography>
81
+ <CircularProgress sx={{ my: 3 }} />
82
+ </Box>
83
+ </Container>
84
+ );
85
+ }
86
+ <% } else { %>
87
+ export default function SuspenseFallback() {
88
+ return (
89
+ <div style={{ height: '100vh', width: '100%' }}>
90
+ <div style={{ textAlign: 'center' }}>
91
+ <h1>Loading...</h1>
92
+ </div>
93
+ </div>
94
+ );
95
+ }
96
+ <% } %>
@@ -1,10 +1,10 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- </head>
7
- <body>
8
- <div id="root"></div>
9
- </body>
10
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width" />
6
+ </head>
7
+ <body>
8
+ <div id="root"></div>
9
+ </body>
10
+ </html>
@@ -1,16 +1,17 @@
1
- <% if (styleFramework === 'bulma') { %>
2
- @charset "utf-8";
3
- <% } %>
4
- <% if (styleFramework === 'bootstrap') { %>
5
- @import "~bootstrap/scss/bootstrap";
6
- <% } else if (styleFramework === 'uikit') { %>
7
- @import "~uikit/src/scss/variables-theme";
8
- @import "~uikit/src/scss/mixins-theme";
9
- @import "~uikit/src/scss/uikit-theme";
10
- <% } else if (styleFramework === 'foundation') { %>
11
- @import "~foundation-sites/scss/foundation";
12
- <% } else if (styleFramework === 'materialize') { %>
13
- @import "~materialize-css/sass/materialize";
14
- <% } else if (styleFramework === 'bulma') { %>
15
- @import "~bulma/bulma";
16
- <% } %>
1
+ <% if (styleFramework === 'bulma') { %>
2
+ @charset "utf-8";
3
+ <% } %>
4
+ <% if (styleFramework === 'bootstrap') { %>
5
+ @import "bootstrap/scss/bootstrap";
6
+ <% } else if (styleFramework === 'uikit') { %>
7
+ @import "uikit/src/scss/variables-theme";
8
+ @import "uikit/src/scss/mixins-theme";
9
+ @import "uikit/src/scss/uikit-theme";
10
+ <% } else if (styleFramework === 'foundation') { %>
11
+ @import "foundation-sites/scss/foundation";
12
+ @include foundation-everything;
13
+ <% } else if (styleFramework === 'materialize') { %>
14
+ @import "materialize-css/sass/materialize";
15
+ <% } else if (styleFramework === 'bulma') { %>
16
+ @import "bulma/bulma";
17
+ <% } %>