diff --git a/.circleci/config.yml b/.circleci/config.yml index c02a33b2a..2388fb4f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -97,7 +97,7 @@ jobs: - run: *run_yarn_install - save_cache: *save_yarn_cache - build_app: - template: 'Autocomplete.js' + template: 'Autocomplete.js 0' app: 'autocomplete.js' - build_app: template: 'InstantSearch.js' @@ -127,8 +127,11 @@ jobs: template: 'Angular InstantSearch' app: 'angular-instantsearch' - build_app: - template: 'Autocomplete.js' + template: 'Autocomplete.js 0' app: 'autocomplete.js' + - build_app: + template: 'Autocomplete' + app: 'autocomplete' - build_app: template: 'InstantSearch.js' app: 'instantsearch.js' diff --git a/.nvmrc b/.nvmrc index 5c088ddb9..c10742477 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12.14.1 +14.15.0 diff --git a/src/templates/Autocomplete.js/favicon.png b/e2e/__image_snapshots__/autocomplete.js-0.x/favicon.png-snap.png similarity index 100% rename from src/templates/Autocomplete.js/favicon.png rename to e2e/__image_snapshots__/autocomplete.js-0.x/favicon.png-snap.png diff --git a/e2e/__image_snapshots__/autocomplete/favicon.png-snap.png b/e2e/__image_snapshots__/autocomplete/favicon.png-snap.png new file mode 100644 index 000000000..084fdfdfc Binary files /dev/null and b/e2e/__image_snapshots__/autocomplete/favicon.png-snap.png differ diff --git a/e2e/__snapshots__/templates.test.js.snap b/e2e/__snapshots__/templates.test.js.snap index fe763656d..6ce5600c9 100644 --- a/e2e/__snapshots__/templates.test.js.snap +++ b/e2e/__snapshots__/templates.test.js.snap @@ -672,7 +672,7 @@ Array [ ] `; -exports[`Templates Autocomplete.js File content: .editorconfig 1`] = ` +exports[`Templates Autocomplete File content: .editorconfig 1`] = ` "root = true [*] @@ -684,19 +684,274 @@ insert_final_newline = true trim_trailing_whitespace = true" `; -exports[`Templates Autocomplete.js File content: .eslintignore 1`] = ` +exports[`Templates Autocomplete File content: .eslintignore 1`] = ` "/node_modules /dist /.cache" `; -exports[`Templates Autocomplete.js File content: .eslintrc.js 1`] = ` +exports[`Templates Autocomplete File content: .eslintrc.js 1`] = ` +"/* eslint-disable import/no-commonjs */ + +module.exports = { + extends: ['algolia', 'algolia/react'], + settings: { + react: { + pragma: 'React', + version: 'preact', + }, + }, + rules: { + 'jsdoc/check-tag-names': [ + 'error', + { + jsxTags: true, + }, + ], + 'react/jsx-filename-extension': 'off', + }, +};" +`; + +exports[`Templates Autocomplete File content: .gitignore 1`] = ` +"# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +/node_modules + +# testing +/coverage + +# production +/dist +/.cache + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log*" +`; + +exports[`Templates Autocomplete File content: .prettierrc 1`] = ` +"{ + \\"singleQuote\\": true, + \\"proseWrap\\": \\"never\\", + \\"trailingComma\\": \\"es5\\" +}" +`; + +exports[`Templates Autocomplete File content: README.md 1`] = ` +"# autocomplete-app + +_This project was generated with [create-instantsearch-app](https://github.com/algolia/create-instantsearch-app) by [Algolia](https://algolia.com)._ + +## Get started + +To run this project locally, install the dependencies and run the local server: + +\`\`\`sh +npm install +npm start +\`\`\` + +Alternatively, you may use [Yarn](https://http://yarnpkg.com/): + +\`\`\`sh +yarn +yarn start +\`\`\` + +Open http://localhost:3000 to see your app." +`; + +exports[`Templates Autocomplete File content: app.js 1`] = ` +"/** @jsx h */ +import { autocomplete, getAlgoliaResults } from '@algolia/autocomplete-js'; +import algoliasearch from 'algoliasearch'; +import { h } from 'preact'; + +import '@algolia/autocomplete-theme-classic'; + +const searchClient = algoliasearch('appId', 'apiKey'); + +autocomplete({ + container: '#autocomplete', + placeholder: '', + debug: true, + getSources({ query }) { + return [ + { + sourceId: 'items', + getItems() { + return getAlgoliaResults({ + searchClient, + queries: [ + { + indexName: 'indexName', + query, + }, + ], + }); + }, + templates: { + item({ item, components }) { + return ( +
+
+
+
+ +
+
+
+
+ ); + }, + noResults() { + return 'No matching items.'; + }, + }, + }, + ]; + }, +});" +`; + +exports[`Templates Autocomplete File content: index.html 1`] = ` +" + + + + + + + + autocomplete-app + + + +
+
+
+ + + +" +`; + +exports[`Templates Autocomplete File content: manifest.webmanifest 1`] = ` +"{ + \\"short_name\\": \\"autocomplete-app\\", + \\"name\\": \\"autocomplete-app Sample\\", + \\"icons\\": [ + { + \\"src\\": \\"favicon.png\\", + \\"sizes\\": \\"64x64 32x32 24x24 16x16\\", + \\"type\\": \\"image/x-icon\\" + } + ], + \\"start_url\\": \\"./index.html\\", + \\"display\\": \\"standalone\\", + \\"theme_color\\": \\"#000000\\", + \\"background_color\\": \\"#ffffff\\" +}" +`; + +exports[`Templates Autocomplete File content: package.json 1`] = ` +"{ + \\"name\\": \\"autocomplete-app\\", + \\"version\\": \\"1.0.0\\", + \\"private\\": true, + \\"scripts\\": { + \\"build\\": \\"parcel build index.html\\", + \\"start\\": \\"parcel index.html --port 3000\\", + \\"lint\\": \\"eslint .\\" + }, + \\"keywords\\": [ + \\"algolia\\", + \\"autocomplete\\", + \\"javascript\\" + ], + \\"partialDependencies\\": { + \\"@algolia/autocomplete-js\\": \\"1.0.0\\" + } +}" +`; + +exports[`Templates Autocomplete File content: style.css 1`] = ` +"* { + box-sizing: border-box; +} + +body { + background-color: rgb(244, 244, 249); + color: rgb(65, 65, 65); + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + padding: 1rem; +} + +.container { + margin: 0 auto; + max-width: 640px; + width: 100%; +}" +`; + +exports[`Templates Autocomplete Folder structure: contains the right files 1`] = ` +Array [ + ".editorconfig", + ".eslintignore", + ".eslintrc.js", + ".gitignore", + ".prettierrc", + "README.md", + "app.js", + "favicon.png", + "index.html", + "manifest.webmanifest", + "package.json", + "style.css", +] +`; + +exports[`Templates Autocomplete.js 0 File content: .editorconfig 1`] = ` +"root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true" +`; + +exports[`Templates Autocomplete.js 0 File content: .eslintignore 1`] = ` +"/node_modules +/dist +/.cache" +`; + +exports[`Templates Autocomplete.js 0 File content: .eslintrc.js 1`] = ` "module.exports = { extends: 'algolia', };" `; -exports[`Templates Autocomplete.js File content: .gitignore 1`] = ` +exports[`Templates Autocomplete.js 0 File content: .gitignore 1`] = ` "# See https://help.github.com/ignore-files/ for more about ignoring files. # dependencies @@ -721,7 +976,7 @@ yarn-debug.log* yarn-error.log*" `; -exports[`Templates Autocomplete.js File content: .prettierrc 1`] = ` +exports[`Templates Autocomplete.js 0 File content: .prettierrc 1`] = ` "{ \\"singleQuote\\": true, \\"proseWrap\\": \\"never\\", @@ -729,7 +984,7 @@ exports[`Templates Autocomplete.js File content: .prettierrc 1`] = ` }" `; -exports[`Templates Autocomplete.js File content: README.md 1`] = ` +exports[`Templates Autocomplete.js 0 File content: README.md 1`] = ` "# autocomplete.js-app _This project was generated with [create-instantsearch-app](https://github.com/algolia/create-instantsearch-app) by [Algolia](https://algolia.com)._ @@ -753,7 +1008,7 @@ yarn start Open http://localhost:3000 to see your app." `; -exports[`Templates Autocomplete.js File content: index.html 1`] = ` +exports[`Templates Autocomplete.js 0 File content: index.html 1`] = ` " @@ -802,7 +1057,7 @@ exports[`Templates Autocomplete.js File content: index.html 1`] = ` " `; -exports[`Templates Autocomplete.js File content: manifest.webmanifest 1`] = ` +exports[`Templates Autocomplete.js 0 File content: manifest.webmanifest 1`] = ` "{ \\"short_name\\": \\"autocomplete.js-app\\", \\"name\\": \\"autocomplete.js-app Sample\\", @@ -820,7 +1075,7 @@ exports[`Templates Autocomplete.js File content: manifest.webmanifest 1`] = ` }" `; -exports[`Templates Autocomplete.js File content: package.json 1`] = ` +exports[`Templates Autocomplete.js 0 File content: package.json 1`] = ` "{ \\"name\\": \\"autocomplete.js-app\\", \\"version\\": \\"1.0.0\\", @@ -837,7 +1092,7 @@ exports[`Templates Autocomplete.js File content: package.json 1`] = ` }" `; -exports[`Templates Autocomplete.js File content: src/app.css 1`] = ` +exports[`Templates Autocomplete.js 0 File content: src/app.css 1`] = ` ".header { align-items: center; background-image: linear-gradient(73deg, #3369e7, #1cc7d0); @@ -925,7 +1180,7 @@ exports[`Templates Autocomplete.js File content: src/app.css 1`] = ` }" `; -exports[`Templates Autocomplete.js File content: src/app.js 1`] = ` +exports[`Templates Autocomplete.js 0 File content: src/app.js 1`] = ` "import algoliasearch from 'algoliasearch'; import autocomplete from 'autocomplete.js'; @@ -955,7 +1210,7 @@ autocomplete( });" `; -exports[`Templates Autocomplete.js File content: src/index.css 1`] = ` +exports[`Templates Autocomplete.js 0 File content: src/index.css 1`] = ` "body { background-color: #fcfcfd; color: #333; @@ -965,7 +1220,7 @@ exports[`Templates Autocomplete.js File content: src/index.css 1`] = ` }" `; -exports[`Templates Autocomplete.js Folder structure: contains the right files 1`] = ` +exports[`Templates Autocomplete.js 0 Folder structure: contains the right files 1`] = ` Array [ ".editorconfig", ".eslintignore", diff --git a/src/api/__tests__/__snapshots__/index.test.js.snap b/src/api/__tests__/__snapshots__/index.test.js.snap index f45710d93..3b2ef7104 100644 --- a/src/api/__tests__/__snapshots__/index.test.js.snap +++ b/src/api/__tests__/__snapshots__/index.test.js.snap @@ -6,10 +6,10 @@ exports[`Options with invalid name throws 1`] = ` - name can only contain URL-friendly characters" `; -exports[`Options with unknown template throws 1`] = `"The template directory must contain a configuration file \`.template.js\` or must be one of those: Angular InstantSearch, Autocomplete.js, InstantSearch Android, InstantSearch iOS, InstantSearch.js, InstantSearch.js 2, InstantSearch.js widget, JavaScript Client, JavaScript Helper, JavaScript Helper 2, React InstantSearch, React InstantSearch Native, React InstantSearch widget, Vue InstantSearch, Vue InstantSearch 1, Vue InstantSearch 2"`; +exports[`Options with unknown template throws 1`] = `"The template directory must contain a configuration file \`.template.js\` or must be one of those: Angular InstantSearch, Autocomplete, Autocomplete.js 0, InstantSearch Android, InstantSearch iOS, InstantSearch.js, InstantSearch.js 2, InstantSearch.js widget, JavaScript Client, JavaScript Helper, JavaScript Helper 2, React InstantSearch, React InstantSearch Native, React InstantSearch widget, Vue InstantSearch, Vue InstantSearch 1, Vue InstantSearch 2"`; -exports[`Options with wrong template path throws 1`] = `"The template directory must contain a configuration file \`.template.js\` or must be one of those: Angular InstantSearch, Autocomplete.js, InstantSearch Android, InstantSearch iOS, InstantSearch.js, InstantSearch.js 2, InstantSearch.js widget, JavaScript Client, JavaScript Helper, JavaScript Helper 2, React InstantSearch, React InstantSearch Native, React InstantSearch widget, Vue InstantSearch, Vue InstantSearch 1, Vue InstantSearch 2"`; +exports[`Options with wrong template path throws 1`] = `"The template directory must contain a configuration file \`.template.js\` or must be one of those: Angular InstantSearch, Autocomplete, Autocomplete.js 0, InstantSearch Android, InstantSearch iOS, InstantSearch.js, InstantSearch.js 2, InstantSearch.js widget, JavaScript Client, JavaScript Helper, JavaScript Helper 2, React InstantSearch, React InstantSearch Native, React InstantSearch widget, Vue InstantSearch, Vue InstantSearch 1, Vue InstantSearch 2"`; exports[`Options without path throws 1`] = `"The option \`path\` is required."`; -exports[`Options without template throws 1`] = `"The template directory must contain a configuration file \`.template.js\` or must be one of those: Angular InstantSearch, Autocomplete.js, InstantSearch Android, InstantSearch iOS, InstantSearch.js, InstantSearch.js 2, InstantSearch.js widget, JavaScript Client, JavaScript Helper, JavaScript Helper 2, React InstantSearch, React InstantSearch Native, React InstantSearch widget, Vue InstantSearch, Vue InstantSearch 1, Vue InstantSearch 2"`; +exports[`Options without template throws 1`] = `"The template directory must contain a configuration file \`.template.js\` or must be one of those: Angular InstantSearch, Autocomplete, Autocomplete.js 0, InstantSearch Android, InstantSearch iOS, InstantSearch.js, InstantSearch.js 2, InstantSearch.js widget, JavaScript Client, JavaScript Helper, JavaScript Helper 2, React InstantSearch, React InstantSearch Native, React InstantSearch widget, Vue InstantSearch, Vue InstantSearch 1, Vue InstantSearch 2"`; diff --git a/src/templates/Autocomplete.js/.editorconfig b/src/templates/Autocomplete.js 0/.editorconfig similarity index 100% rename from src/templates/Autocomplete.js/.editorconfig rename to src/templates/Autocomplete.js 0/.editorconfig diff --git a/src/templates/Autocomplete.js/.eslintignore b/src/templates/Autocomplete.js 0/.eslintignore similarity index 100% rename from src/templates/Autocomplete.js/.eslintignore rename to src/templates/Autocomplete.js 0/.eslintignore diff --git a/src/templates/Autocomplete.js/.eslintrc.js b/src/templates/Autocomplete.js 0/.eslintrc.js similarity index 100% rename from src/templates/Autocomplete.js/.eslintrc.js rename to src/templates/Autocomplete.js 0/.eslintrc.js diff --git a/src/templates/Autocomplete.js/.gitignore.template b/src/templates/Autocomplete.js 0/.gitignore.template similarity index 100% rename from src/templates/Autocomplete.js/.gitignore.template rename to src/templates/Autocomplete.js 0/.gitignore.template diff --git a/src/templates/Autocomplete.js/.prettierrc b/src/templates/Autocomplete.js 0/.prettierrc similarity index 100% rename from src/templates/Autocomplete.js/.prettierrc rename to src/templates/Autocomplete.js 0/.prettierrc diff --git a/src/templates/Autocomplete.js/.template.js b/src/templates/Autocomplete.js 0/.template.js similarity index 88% rename from src/templates/Autocomplete.js/.template.js rename to src/templates/Autocomplete.js 0/.template.js index 807224b54..19be956c6 100644 --- a/src/templates/Autocomplete.js/.template.js +++ b/src/templates/Autocomplete.js 0/.template.js @@ -3,7 +3,7 @@ const teardown = require('../../tasks/node/teardown'); module.exports = { libraryName: 'autocomplete.js', - templateName: 'autocomplete.js', + templateName: 'autocomplete.js-0.x', appName: 'autocomplete.js-app', keywords: ['algolia', 'Autocomplete', 'autocomplete.js'], tasks: { diff --git a/src/templates/Autocomplete.js/README.md b/src/templates/Autocomplete.js 0/README.md similarity index 100% rename from src/templates/Autocomplete.js/README.md rename to src/templates/Autocomplete.js 0/README.md diff --git a/src/templates/Autocomplete.js 0/favicon.png b/src/templates/Autocomplete.js 0/favicon.png new file mode 100644 index 000000000..e67e0becc Binary files /dev/null and b/src/templates/Autocomplete.js 0/favicon.png differ diff --git a/src/templates/Autocomplete.js/index.html.hbs b/src/templates/Autocomplete.js 0/index.html.hbs similarity index 100% rename from src/templates/Autocomplete.js/index.html.hbs rename to src/templates/Autocomplete.js 0/index.html.hbs diff --git a/src/templates/Autocomplete.js/manifest.webmanifest b/src/templates/Autocomplete.js 0/manifest.webmanifest similarity index 100% rename from src/templates/Autocomplete.js/manifest.webmanifest rename to src/templates/Autocomplete.js 0/manifest.webmanifest diff --git a/src/templates/Autocomplete.js/package.json b/src/templates/Autocomplete.js 0/package.json similarity index 100% rename from src/templates/Autocomplete.js/package.json rename to src/templates/Autocomplete.js 0/package.json diff --git a/src/templates/Autocomplete.js/src/app.css b/src/templates/Autocomplete.js 0/src/app.css similarity index 100% rename from src/templates/Autocomplete.js/src/app.css rename to src/templates/Autocomplete.js 0/src/app.css diff --git a/src/templates/Autocomplete.js/src/app.js.hbs b/src/templates/Autocomplete.js 0/src/app.js.hbs similarity index 100% rename from src/templates/Autocomplete.js/src/app.js.hbs rename to src/templates/Autocomplete.js 0/src/app.js.hbs diff --git a/src/templates/Autocomplete.js/src/index.css b/src/templates/Autocomplete.js 0/src/index.css similarity index 100% rename from src/templates/Autocomplete.js/src/index.css rename to src/templates/Autocomplete.js 0/src/index.css diff --git a/src/templates/Autocomplete/.editorconfig b/src/templates/Autocomplete/.editorconfig new file mode 100644 index 000000000..9d08a1a82 --- /dev/null +++ b/src/templates/Autocomplete/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/src/templates/Autocomplete/.eslintignore b/src/templates/Autocomplete/.eslintignore new file mode 100644 index 000000000..9178ddcd8 --- /dev/null +++ b/src/templates/Autocomplete/.eslintignore @@ -0,0 +1,3 @@ +/node_modules +/dist +/.cache diff --git a/src/templates/Autocomplete/.eslintrc.js b/src/templates/Autocomplete/.eslintrc.js new file mode 100644 index 000000000..a429d51c2 --- /dev/null +++ b/src/templates/Autocomplete/.eslintrc.js @@ -0,0 +1,20 @@ +/* eslint-disable import/no-commonjs */ + +module.exports = { + extends: ['algolia', 'algolia/react'], + settings: { + react: { + pragma: 'React', + version: 'preact', + }, + }, + rules: { + 'jsdoc/check-tag-names': [ + 'error', + { + jsxTags: true, + }, + ], + 'react/jsx-filename-extension': 'off', + }, +}; diff --git a/src/templates/Autocomplete/.gitignore.template b/src/templates/Autocomplete/.gitignore.template new file mode 100644 index 000000000..f0fb0457d --- /dev/null +++ b/src/templates/Autocomplete/.gitignore.template @@ -0,0 +1,22 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +/node_modules + +# testing +/coverage + +# production +/dist +/.cache + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/src/templates/Autocomplete/.prettierrc b/src/templates/Autocomplete/.prettierrc new file mode 100644 index 000000000..833f03b62 --- /dev/null +++ b/src/templates/Autocomplete/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "proseWrap": "never", + "trailingComma": "es5" +} diff --git a/src/templates/Autocomplete/.template.js b/src/templates/Autocomplete/.template.js new file mode 100644 index 000000000..749b874da --- /dev/null +++ b/src/templates/Autocomplete/.template.js @@ -0,0 +1,14 @@ +const install = require('../../tasks/node/install'); +const teardown = require('../../tasks/node/teardown'); + +module.exports = { + category: 'Web', + libraryName: '@algolia/autocomplete-js', + templateName: 'autocomplete', + appName: 'autocomplete-app', + keywords: ['algolia', 'autocomplete'], + tasks: { + install, + teardown, + }, +}; diff --git a/src/templates/Autocomplete/README.md b/src/templates/Autocomplete/README.md new file mode 100644 index 000000000..f330c8c3e --- /dev/null +++ b/src/templates/Autocomplete/README.md @@ -0,0 +1,21 @@ +# {{name}} + +_This project was generated with [create-instantsearch-app](https://github.com/algolia/create-instantsearch-app) by [Algolia](https://algolia.com)._ + +## Get started + +To run this project locally, install the dependencies and run the local server: + +```sh +npm install +npm start +``` + +Alternatively, you may use [Yarn](https://http://yarnpkg.com/): + +```sh +yarn +yarn start +``` + +Open http://localhost:3000 to see your app. diff --git a/src/templates/Autocomplete/app.js.hbs b/src/templates/Autocomplete/app.js.hbs new file mode 100644 index 000000000..240bdfb8a --- /dev/null +++ b/src/templates/Autocomplete/app.js.hbs @@ -0,0 +1,53 @@ +/** @jsx h */ +import { autocomplete, getAlgoliaResults } from '@algolia/autocomplete-js'; +import algoliasearch from 'algoliasearch'; +import { h } from 'preact'; + +import '@algolia/autocomplete-theme-classic'; + +const searchClient = algoliasearch('{{appId}}', '{{apiKey}}'); + +autocomplete({ + container: '#autocomplete', + placeholder: '{{placeholder}}', + debug: true, + getSources({ query }) { + return [ + { + sourceId: 'items', + getItems() { + return getAlgoliaResults({ + searchClient, + queries: [ + { + indexName: '{{indexName}}', + query, + }, + ], + }); + }, + templates: { + item({ item, components }) { + return ( +
+
+
+
+ +
+
+
+
+ ); + }, + noResults() { + return 'No matching items.'; + }, + }, + }, + ]; + }, +}); diff --git a/src/templates/Autocomplete/favicon.png b/src/templates/Autocomplete/favicon.png new file mode 100644 index 000000000..084fdfdfc Binary files /dev/null and b/src/templates/Autocomplete/favicon.png differ diff --git a/src/templates/Autocomplete/index.html.hbs b/src/templates/Autocomplete/index.html.hbs new file mode 100644 index 000000000..aa7de3b05 --- /dev/null +++ b/src/templates/Autocomplete/index.html.hbs @@ -0,0 +1,19 @@ + + + + + + + + + {{name}} + + + +
+
+
+ + + + diff --git a/src/templates/Autocomplete/manifest.webmanifest b/src/templates/Autocomplete/manifest.webmanifest new file mode 100644 index 000000000..20ac76f5c --- /dev/null +++ b/src/templates/Autocomplete/manifest.webmanifest @@ -0,0 +1,15 @@ +{ + "short_name": "{{name}}", + "name": "{{name}} Sample", + "icons": [ + { + "src": "favicon.png", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/src/templates/Autocomplete/package.json b/src/templates/Autocomplete/package.json new file mode 100644 index 000000000..4fff04a5b --- /dev/null +++ b/src/templates/Autocomplete/package.json @@ -0,0 +1,36 @@ +{ + "name": "{{name}}", + "version": "1.0.0", + "private": true, + "scripts": { + "build": "parcel build index.html", + "start": "parcel index.html --port 3000", + "lint": "eslint ." + }, + "dependencies": { + "@algolia/autocomplete-js": "{{libraryVersion}}", + "@algolia/autocomplete-theme-classic": "{{libraryVersion}}", + "algoliasearch": "4.10.5", + "preact": "10.5.14" + }, + "devDependencies": { + "babel-eslint": "10.1.0", + "eslint": "7.32.0", + "eslint-config-algolia": "19.0.2", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-eslint-comments": "3.2.0", + "eslint-plugin-import": "2.24.2", + "eslint-plugin-jsdoc": "36.1.0", + "eslint-plugin-jsx-a11y": "6.4.1", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-react": "7.26.0", + "eslint-plugin-react-hooks": "4.2.0", + "parcel": "2.0.0-beta.2", + "prettier": "1.19.1" + }, + "keywords": [ + "algolia", + "autocomplete", + "javascript" + ] +} diff --git a/src/templates/Autocomplete/style.css b/src/templates/Autocomplete/style.css new file mode 100644 index 000000000..a4d3906cf --- /dev/null +++ b/src/templates/Autocomplete/style.css @@ -0,0 +1,20 @@ +* { + box-sizing: border-box; +} + +body { + background-color: rgb(244, 244, 249); + color: rgb(65, 65, 65); + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + padding: 1rem; +} + +.container { + margin: 0 auto; + max-width: 640px; + width: 100%; +}