├── .codesandbox └── ci.json ├── .gitignore ├── README.md ├── package.json ├── packages ├── client │ ├── angular-template │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── README.md │ │ ├── angular.json │ │ ├── e2e │ │ │ ├── protractor.conf.js │ │ │ ├── src │ │ │ │ ├── app.e2e-spec.ts │ │ │ │ └── app.po.ts │ │ │ └── tsconfig.e2e.json │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.component.html │ │ │ │ ├── app.component.spec.ts │ │ │ │ ├── app.component.ts │ │ │ │ └── app.module.ts │ │ │ ├── browserslist │ │ │ ├── environments │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── karma.conf.js │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ ├── styles.css │ │ │ ├── test.ts │ │ │ ├── tsconfig.app.json │ │ │ ├── tsconfig.spec.json │ │ │ └── tslint.json │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── cxjs-template │ │ ├── .editorconfig │ │ ├── app │ │ │ ├── components │ │ │ │ ├── Hamburger.scss │ │ │ │ └── index.scss │ │ │ ├── index.html │ │ │ ├── index.js │ │ │ ├── index.scss │ │ │ ├── layout │ │ │ │ ├── Controller.js │ │ │ │ ├── index.js │ │ │ │ └── index.scss │ │ │ ├── polyfill.js │ │ │ └── routes │ │ │ │ ├── about │ │ │ │ ├── index.js │ │ │ │ └── index.scss │ │ │ │ ├── dashboard │ │ │ │ ├── Controller.js │ │ │ │ ├── index.js │ │ │ │ └── index.scss │ │ │ │ ├── default │ │ │ │ ├── index.js │ │ │ │ └── index.scss │ │ │ │ ├── index.js │ │ │ │ ├── index.scss │ │ │ │ └── users │ │ │ │ ├── Editor.js │ │ │ │ ├── EditorController.js │ │ │ │ ├── List.js │ │ │ │ ├── ListController.js │ │ │ │ ├── api.js │ │ │ │ ├── index.js │ │ │ │ └── index.scss │ │ ├── assets │ │ │ └── img │ │ │ │ └── welcome.png │ │ ├── config │ │ │ ├── babel.config.js │ │ │ ├── webpack.config.js │ │ │ ├── webpack.dev.js │ │ │ └── webpack.prod.js │ │ ├── package-lock.json │ │ ├── package.json │ │ └── sandbox.config.json │ ├── dojo-template │ │ ├── .dojorc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── App.m.css │ │ │ ├── App.m.css.d.ts │ │ │ ├── App.ts │ │ │ ├── index.html │ │ │ ├── main.css │ │ │ ├── main.ts │ │ │ ├── routes.ts │ │ │ └── widgets │ │ │ │ ├── About.ts │ │ │ │ ├── Home.ts │ │ │ │ ├── Menu.ts │ │ │ │ ├── Profile.ts │ │ │ │ └── styles │ │ │ │ ├── About.m.css │ │ │ │ ├── About.m.css.d.ts │ │ │ │ ├── Home.m.css │ │ │ │ ├── Home.m.css.d.ts │ │ │ │ ├── Menu.m.css │ │ │ │ ├── Menu.m.css.d.ts │ │ │ │ ├── Profile.m.css │ │ │ │ └── Profile.m.css.d.ts │ │ ├── tests │ │ │ ├── functional │ │ │ │ ├── all.ts │ │ │ │ └── main.ts │ │ │ └── unit │ │ │ │ ├── App.ts │ │ │ │ ├── all.ts │ │ │ │ ├── main.ts │ │ │ │ └── widgets │ │ │ │ ├── About.ts │ │ │ │ ├── Home.ts │ │ │ │ ├── Menu.ts │ │ │ │ ├── Profile.ts │ │ │ │ └── all.ts │ │ └── tsconfig.json │ ├── inferno-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── fixtures │ │ │ └── kitchensink │ │ │ │ ├── .env.development │ │ │ │ ├── .env.production │ │ │ │ └── src │ │ │ │ ├── features │ │ │ │ ├── env │ │ │ │ │ └── PublicUrl.test.js │ │ │ │ └── webpack │ │ │ │ │ ├── LinkedModules.js │ │ │ │ │ └── LinkedModules.test.js │ │ │ │ └── index.js │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.js │ │ │ └── serviceWorker.js │ │ └── yarn.lock │ ├── preact-template │ │ ├── .babelrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── assets │ │ │ │ ├── favicon.ico │ │ │ │ └── icons │ │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ │ ├── apple-touch-icon.png │ │ │ │ │ ├── favicon-16x16.png │ │ │ │ │ ├── favicon-32x32.png │ │ │ │ │ └── mstile-150x150.png │ │ │ ├── components │ │ │ │ ├── app.js │ │ │ │ └── header │ │ │ │ │ ├── index.js │ │ │ │ │ └── style.css │ │ │ ├── index.js │ │ │ ├── manifest.json │ │ │ ├── routes │ │ │ │ ├── home │ │ │ │ │ ├── index.js │ │ │ │ │ └── style.css │ │ │ │ └── profile │ │ │ │ │ ├── index.js │ │ │ │ │ └── style.css │ │ │ └── style │ │ │ │ └── index.css │ │ ├── template.html │ │ └── tests │ │ │ ├── __mocks__ │ │ │ ├── browserMocks.js │ │ │ └── fileMocks.js │ │ │ └── header.test.js │ ├── preact-typescript-template │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── preact.config.js │ │ ├── src │ │ │ ├── .babelrc │ │ │ ├── assets │ │ │ │ ├── favicon.ico │ │ │ │ └── icons │ │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ │ ├── apple-touch-icon.png │ │ │ │ │ ├── favicon-16x16.png │ │ │ │ │ ├── favicon-32x32.png │ │ │ │ │ └── mstile-150x150.png │ │ │ ├── components │ │ │ │ ├── app.tsx │ │ │ │ └── header │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── style.css │ │ │ │ │ └── style.css.d.ts │ │ │ ├── index.js │ │ │ ├── manifest.json │ │ │ ├── routes │ │ │ │ ├── home │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── style.css │ │ │ │ │ └── style.css.d.ts │ │ │ │ └── profile │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── style.css │ │ │ │ │ └── style.css.d.ts │ │ │ ├── style │ │ │ │ ├── index.css │ │ │ │ └── index.css.d.ts │ │ │ └── tests │ │ │ │ ├── __mocks__ │ │ │ │ ├── browserMocks.js │ │ │ │ └── fileMocks.js │ │ │ │ └── header.test.tsx │ │ ├── template.html │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── react-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── index.css │ │ │ ├── index.js │ │ │ ├── logo.svg │ │ │ └── serviceWorker.js │ │ └── yarn.lock │ ├── react-typescript-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.test.tsx │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ └── serviceWorker.ts │ │ ├── tsconfig.json │ │ └── yarn.lock │ ├── reason-template │ │ ├── .gitignore │ │ ├── .vscode │ │ │ └── tasks.json │ │ ├── README.md │ │ ├── bsconfig.json │ │ ├── package.json │ │ ├── sandbox.config.json │ │ └── src │ │ │ └── Demo.re │ ├── svelte-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.png │ │ │ ├── global.css │ │ │ └── index.html │ │ ├── rollup.config.js │ │ ├── sandbox.config.json │ │ └── src │ │ │ ├── App.svelte │ │ │ └── main.js │ ├── vue-template │ │ ├── .browserslistrc │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── cypress.json │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── index.html │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── App.vue │ │ │ ├── assets │ │ │ │ └── logo.png │ │ │ ├── components │ │ │ │ └── HelloWorld.vue │ │ │ ├── main.js │ │ │ ├── router.js │ │ │ └── views │ │ │ │ ├── About.vue │ │ │ │ └── Home.vue │ │ ├── tests │ │ │ ├── e2e │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── plugins │ │ │ │ │ └── index.js │ │ │ │ ├── specs │ │ │ │ │ └── test.js │ │ │ │ └── support │ │ │ │ │ ├── commands.js │ │ │ │ │ └── index.js │ │ │ └── unit │ │ │ │ ├── .eslintrc.js │ │ │ │ └── example.spec.js │ │ └── yarn.lock │ └── vue-typescript-template │ │ ├── .browserslistrc │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── cypress.json │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ └── logo.png │ │ ├── components │ │ │ └── HelloWorld.vue │ │ ├── main.ts │ │ ├── router.ts │ │ ├── shims-tsx.d.ts │ │ ├── shims-vue.d.ts │ │ └── views │ │ │ ├── About.vue │ │ │ └── Home.vue │ │ ├── tests │ │ ├── e2e │ │ │ ├── .eslintrc.js │ │ │ ├── plugins │ │ │ │ └── index.js │ │ │ ├── specs │ │ │ │ └── test.js │ │ │ └── support │ │ │ │ ├── commands.js │ │ │ │ └── index.js │ │ └── unit │ │ │ ├── .eslintrc.js │ │ │ └── example.spec.ts │ │ ├── tsconfig.json │ │ ├── vue.config.js │ │ └── yarn.lock ├── container │ ├── adonis-template │ │ ├── .adonisrc.json │ │ ├── .editorconfig │ │ ├── .env │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── ace │ │ ├── ace-manifest.json │ │ ├── app │ │ │ └── Exceptions │ │ │ │ └── Handler.ts │ │ ├── commands │ │ │ └── index.ts │ │ ├── config │ │ │ ├── app.ts │ │ │ ├── bodyparser.ts │ │ │ ├── cors.ts │ │ │ ├── hash.ts │ │ │ ├── session.ts │ │ │ ├── shield.ts │ │ │ └── static.ts │ │ ├── contracts │ │ │ ├── env.ts │ │ │ ├── events.ts │ │ │ └── hash.ts │ │ ├── env.ts │ │ ├── package.json │ │ ├── providers │ │ │ └── AppProvider.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── resources │ │ │ └── views │ │ │ │ ├── errors │ │ │ │ ├── not-found.edge │ │ │ │ ├── server-error.edge │ │ │ │ └── unauthorized.edge │ │ │ │ └── welcome.edge │ │ ├── sandbox.config.json │ │ ├── server.ts │ │ ├── start │ │ │ ├── kernel.ts │ │ │ └── routes.ts │ │ └── tsconfig.json │ ├── aurelia-template │ │ ├── .babelrc.js │ │ ├── .editorconfig │ │ ├── .eslintrc.json │ │ ├── .vscode │ │ │ ├── extensions.json │ │ │ ├── launch.json │ │ │ └── launch.json_if_cli-bundler │ │ ├── README.md │ │ ├── aurelia_project │ │ │ ├── aurelia.json │ │ │ ├── environments │ │ │ │ ├── dev.js │ │ │ │ ├── prod.js │ │ │ │ └── stage.js │ │ │ ├── generators │ │ │ │ ├── attribute.js │ │ │ │ ├── attribute.json │ │ │ │ ├── binding-behavior.js │ │ │ │ ├── binding-behavior.json │ │ │ │ ├── component.js │ │ │ │ ├── component.json │ │ │ │ ├── element.js │ │ │ │ ├── element.json │ │ │ │ ├── generator.js │ │ │ │ ├── generator.json │ │ │ │ ├── task.js │ │ │ │ ├── task.json │ │ │ │ ├── value-converter.js │ │ │ │ └── value-converter.json │ │ │ └── tasks │ │ │ │ ├── build.js │ │ │ │ ├── build.json │ │ │ │ ├── environment.js │ │ │ │ ├── jest.js │ │ │ │ ├── jest.json │ │ │ │ ├── run.js │ │ │ │ ├── run.json │ │ │ │ ├── test.js │ │ │ │ └── test.json │ │ ├── favicon.ico │ │ ├── index.ejs │ │ ├── jsconfig.json │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── app.html │ │ │ ├── app.js │ │ │ ├── environment.js │ │ │ ├── main.js │ │ │ └── resources │ │ │ │ └── index.js │ │ ├── static │ │ │ └── favicon.ico │ │ ├── test │ │ │ ├── jest-pretest.js │ │ │ └── unit │ │ │ │ ├── .eslintrc │ │ │ │ └── app.spec.js │ │ ├── webpack.config.js │ │ └── yarn.lock │ ├── aurelia-typescript-template │ │ ├── .editorconfig │ │ ├── .vscode │ │ │ ├── extensions.json │ │ │ ├── launch.json │ │ │ ├── launch.json_if_cli-bundler │ │ │ └── settings.json │ │ ├── README.md │ │ ├── aurelia_project │ │ │ ├── aurelia.json │ │ │ ├── environments │ │ │ │ ├── dev.ts │ │ │ │ ├── prod.ts │ │ │ │ └── stage.ts │ │ │ ├── generators │ │ │ │ ├── attribute.json │ │ │ │ ├── attribute.ts │ │ │ │ ├── binding-behavior.json │ │ │ │ ├── binding-behavior.ts │ │ │ │ ├── component.json │ │ │ │ ├── component.ts │ │ │ │ ├── element.json │ │ │ │ ├── element.ts │ │ │ │ ├── generator.json │ │ │ │ ├── generator.ts │ │ │ │ ├── task.json │ │ │ │ ├── task.ts │ │ │ │ ├── value-converter.json │ │ │ │ └── value-converter.ts │ │ │ └── tasks │ │ │ │ ├── build.json │ │ │ │ ├── build.ts │ │ │ │ ├── environment.ts │ │ │ │ ├── jest.json │ │ │ │ ├── jest.ts │ │ │ │ ├── run.json │ │ │ │ ├── run.ts │ │ │ │ ├── test.json │ │ │ │ └── test.ts │ │ ├── favicon.ico │ │ ├── index.ejs │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── app.html │ │ │ ├── app.ts │ │ │ ├── environment.ts │ │ │ ├── main.ts │ │ │ └── resources │ │ │ │ └── index.ts │ │ ├── static │ │ │ └── favicon.ico │ │ ├── test │ │ │ ├── jest-pretest.ts │ │ │ └── unit │ │ │ │ └── app.spec.ts │ │ ├── tsconfig.json │ │ ├── tslint.json │ │ ├── types │ │ │ ├── fetch.d.ts │ │ │ └── system.d.ts │ │ ├── webpack.config.js │ │ └── yarn.lock │ ├── docusaurus-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── blog │ │ │ ├── 2019-05-28-hola.md │ │ │ ├── 2019-05-29-hello-world.md │ │ │ └── 2019-05-30-welcome.md │ │ ├── docs │ │ │ ├── doc1.md │ │ │ ├── doc2.md │ │ │ ├── doc3.md │ │ │ └── mdx.md │ │ ├── docusaurus.config.js │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── sidebars.js │ │ ├── src │ │ │ ├── css │ │ │ │ └── custom.css │ │ │ └── pages │ │ │ │ ├── index.js │ │ │ │ └── styles.module.css │ │ ├── static │ │ │ └── img │ │ │ │ ├── favicon.ico │ │ │ │ ├── logo.svg │ │ │ │ ├── undraw_docusaurus_mountain.svg │ │ │ │ ├── undraw_docusaurus_react.svg │ │ │ │ └── undraw_docusaurus_tree.svg │ │ └── yarn.lock │ ├── ember-template │ │ ├── .editorconfig │ │ ├── .ember-cli │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .template-lintrc.js │ │ ├── .travis.yml │ │ ├── .watchmanconfig │ │ ├── README.md │ │ ├── app │ │ │ ├── app.js │ │ │ ├── index.html │ │ │ ├── resolver.js │ │ │ ├── router.js │ │ │ └── templates │ │ │ │ └── application.hbs │ │ ├── config │ │ │ ├── environment.js │ │ │ ├── optional-features.json │ │ │ └── targets.js │ │ ├── ember-cli-build.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── robots.txt │ │ ├── sandbox.config.json │ │ ├── testem.js │ │ └── tests │ │ │ ├── index.html │ │ │ └── test-helper.js │ ├── expo-template │ │ ├── .gitignore │ │ ├── .watchmanconfig │ │ ├── App.js │ │ ├── __tests__ │ │ │ └── App-test.js │ │ ├── app.json │ │ ├── assets │ │ │ ├── fonts │ │ │ │ └── SpaceMono-Regular.ttf │ │ │ └── images │ │ │ │ ├── icon.png │ │ │ │ ├── robot-dev.png │ │ │ │ ├── robot-prod.png │ │ │ │ └── splash.png │ │ ├── babel.config.js │ │ ├── components │ │ │ ├── StyledText.js │ │ │ ├── TabBarIcon.js │ │ │ └── __tests__ │ │ │ │ └── StyledText-test.js │ │ ├── constants │ │ │ ├── Colors.js │ │ │ └── Layout.js │ │ ├── navigation │ │ │ ├── AppNavigator.js │ │ │ └── MainTabNavigator.js │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── screens │ │ │ ├── HomeScreen.js │ │ │ ├── LinksScreen.js │ │ │ └── SettingsScreen.js │ │ └── yarn.lock │ ├── gatsby-template │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── LICENSE │ │ ├── README.md │ │ ├── gatsby-browser.js │ │ ├── gatsby-config.js │ │ ├── gatsby-node.js │ │ ├── gatsby-ssr.js │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── components │ │ │ │ ├── header.js │ │ │ │ ├── image.js │ │ │ │ ├── layout.css │ │ │ │ ├── layout.js │ │ │ │ └── seo.js │ │ │ ├── images │ │ │ │ ├── gatsby-astronaut.png │ │ │ │ └── gatsby-icon.png │ │ │ └── pages │ │ │ │ ├── 404.js │ │ │ │ ├── index.js │ │ │ │ └── page-2.js │ │ └── yarn.lock │ ├── glimmer-template │ │ ├── .editorconfig │ │ ├── .ember-cli │ │ ├── .gitignore │ │ ├── .watchmanconfig │ │ ├── README.md │ │ ├── config │ │ │ ├── environment.js │ │ │ ├── module-map.d.ts │ │ │ ├── resolver-configuration.d.ts │ │ │ └── targets.js │ │ ├── ember-cli-build.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ └── robots.txt │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── main.ts │ │ │ ├── ui │ │ │ │ ├── components │ │ │ │ │ └── @codesandbox │ │ │ │ │ │ └── glimmerTemplate │ │ │ │ │ │ ├── component-test.ts │ │ │ │ │ │ ├── component.ts │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── index.html │ │ │ │ └── styles │ │ │ │ │ └── app.css │ │ │ └── utils │ │ │ │ └── test-helpers │ │ │ │ └── test-helper.ts │ │ ├── testem.json │ │ ├── tests │ │ │ └── index.html │ │ ├── tsconfig.json │ │ └── tslint.json │ ├── gridsome-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── gridsome.config.js │ │ ├── gridsome.server.js │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── components │ │ │ │ └── README.md │ │ │ ├── favicon.png │ │ │ ├── layouts │ │ │ │ ├── Default.vue │ │ │ │ └── README.md │ │ │ ├── main.js │ │ │ ├── pages │ │ │ │ ├── About.vue │ │ │ │ ├── Index.vue │ │ │ │ └── README.md │ │ │ └── templates │ │ │ │ └── README.md │ │ ├── static │ │ │ └── README.md │ │ └── yarn.lock │ ├── marko-template │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── README.md │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── project.js │ │ ├── sandbox.config.json │ │ ├── server.js │ │ └── src │ │ │ ├── components │ │ │ ├── click-count │ │ │ │ └── index.marko │ │ │ └── site-layout │ │ │ │ ├── index.marko │ │ │ │ ├── logo.png │ │ │ │ └── style.css │ │ │ ├── index.marko │ │ │ └── routes │ │ │ ├── hello │ │ │ ├── components │ │ │ │ └── stop-watch │ │ │ │ │ └── index.marko │ │ │ ├── index.marko │ │ │ └── route.js │ │ │ └── layouts │ │ │ └── index.marko │ ├── navi-template │ │ ├── .gitignore │ │ ├── navi.config.js │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── components │ │ │ │ ├── ArticleMeta.js │ │ │ │ ├── ArticleMeta.module.css │ │ │ │ ├── ArticleSummary.js │ │ │ │ ├── ArticleSummary.module.css │ │ │ │ ├── Bio.js │ │ │ │ ├── Bio.module.css │ │ │ │ ├── BlogIndexPage.js │ │ │ │ ├── BlogIndexPage.module.css │ │ │ │ ├── BlogLayout.js │ │ │ │ ├── BlogLayout.module.css │ │ │ │ ├── BlogPostLayout.js │ │ │ │ ├── BlogPostLayout.module.css │ │ │ │ ├── LoadingIndicator.js │ │ │ │ ├── LoadingIndicator.module.css │ │ │ │ ├── NotFoundPage.js │ │ │ │ ├── Pagination.js │ │ │ │ ├── Pagination.module.css │ │ │ │ ├── TagIndexPage.js │ │ │ │ ├── TagIndexPage.module.css │ │ │ │ ├── TagPage.js │ │ │ │ └── TagPage.module.css │ │ │ ├── index.js │ │ │ ├── index.module.css │ │ │ ├── index.test.js │ │ │ ├── renderPageToString.js │ │ │ ├── renderRSSFeedToString.js │ │ │ ├── routes │ │ │ │ ├── about │ │ │ │ │ ├── document.mdx │ │ │ │ │ ├── document.module.css │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ ├── posts │ │ │ │ │ ├── 2019-01-05-welcome │ │ │ │ │ │ ├── document.mdx │ │ │ │ │ │ ├── document.module.css │ │ │ │ │ │ ├── navi-logo.svg │ │ │ │ │ │ ├── post.js │ │ │ │ │ │ └── react-logo.svg │ │ │ │ │ └── index.js │ │ │ │ └── tags.js │ │ │ ├── serviceWorker.js │ │ │ ├── siteMetadata.js │ │ │ └── utils │ │ │ │ ├── formats.js │ │ │ │ └── getGravatarURL.js │ │ └── yarn.lock │ ├── nest-template │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── nest-cli.json │ │ ├── nodemon-debug.json │ │ ├── nodemon.json │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── app.controller.spec.ts │ │ │ ├── app.controller.ts │ │ │ ├── app.module.ts │ │ │ ├── app.service.ts │ │ │ └── main.ts │ │ ├── test │ │ │ ├── app.e2e-spec.ts │ │ │ └── jest-e2e.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ ├── tslint.json │ │ └── yarn.lock │ ├── nuxt-template │ │ ├── .babelrc │ │ ├── .editorconfig │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── assets │ │ │ └── README.md │ │ ├── components │ │ │ ├── Logo.vue │ │ │ └── README.md │ │ ├── jest.config.js │ │ ├── layouts │ │ │ ├── README.md │ │ │ └── default.vue │ │ ├── middleware │ │ │ └── README.md │ │ ├── nuxt.config.js │ │ ├── package.json │ │ ├── pages │ │ │ ├── README.md │ │ │ └── index.vue │ │ ├── plugins │ │ │ └── README.md │ │ ├── sandbox.config.json │ │ ├── server │ │ │ └── index.js │ │ ├── static │ │ │ ├── README.md │ │ │ └── favicon.ico │ │ ├── store │ │ │ └── README.md │ │ ├── test │ │ │ └── Logo.spec.js │ │ └── yarn.lock │ ├── quasar-template │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .postcssrc.js │ │ ├── .stylintrc │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── package.json │ │ ├── quasar.conf.js │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── App.vue │ │ │ ├── assets │ │ │ │ ├── quasar-logo-full.svg │ │ │ │ └── sad.svg │ │ │ ├── boot │ │ │ │ ├── .gitkeep │ │ │ │ ├── axios.js │ │ │ │ └── i18n.js │ │ │ ├── components │ │ │ │ └── .gitkeep │ │ │ ├── css │ │ │ │ ├── app.styl │ │ │ │ └── quasar.variables.styl │ │ │ ├── i18n │ │ │ │ ├── en-us │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── index.template.html │ │ │ ├── layouts │ │ │ │ └── MyLayout.vue │ │ │ ├── pages │ │ │ │ ├── Error404.vue │ │ │ │ └── Index.vue │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ └── routes.js │ │ │ ├── statics │ │ │ │ ├── app-logo-128x128.png │ │ │ │ └── icons │ │ │ │ │ ├── apple-icon-120x120.png │ │ │ │ │ ├── apple-icon-152x152.png │ │ │ │ │ ├── apple-icon-167x167.png │ │ │ │ │ ├── apple-icon-180x180.png │ │ │ │ │ ├── favicon-16x16.png │ │ │ │ │ ├── favicon-32x32.png │ │ │ │ │ ├── favicon-96x96.png │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── icon-128x128.png │ │ │ │ │ ├── icon-192x192.png │ │ │ │ │ ├── icon-256x256.png │ │ │ │ │ ├── icon-384x384.png │ │ │ │ │ ├── icon-512x512.png │ │ │ │ │ ├── ms-icon-144x144.png │ │ │ │ │ └── safari-pinned-tab.svg │ │ │ └── store │ │ │ │ ├── index.js │ │ │ │ └── module-example │ │ │ │ ├── actions.js │ │ │ │ ├── getters.js │ │ │ │ ├── index.js │ │ │ │ ├── mutations.js │ │ │ │ └── state.js │ │ └── yarn.lock │ ├── razzle-template │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── robots.txt │ │ ├── sandbox.config.json │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── App.test.js │ │ │ ├── Home.css │ │ │ ├── Home.js │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ ├── react.svg │ │ │ └── server.js │ │ └── yarn.lock │ └── sapper-template │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── README.md │ │ ├── _template │ │ ├── build-pkg.js │ │ ├── build.sh │ │ └── create-branches.sh │ │ ├── appveyor.yml │ │ ├── cypress.json │ │ ├── cypress │ │ ├── fixtures │ │ │ └── example.json │ │ ├── integration │ │ │ └── spec.js │ │ ├── plugins │ │ │ └── index.js │ │ └── support │ │ │ ├── commands.js │ │ │ └── index.js │ │ ├── package.json │ │ ├── sandbox.config.json │ │ ├── src │ │ ├── client.js │ │ ├── components │ │ │ └── Nav.svelte │ │ ├── routes │ │ │ ├── _error.svelte │ │ │ ├── _layout.svelte │ │ │ ├── about.svelte │ │ │ ├── blog │ │ │ │ ├── [slug].json.js │ │ │ │ ├── [slug].svelte │ │ │ │ ├── _posts.js │ │ │ │ ├── index.json.js │ │ │ │ └── index.svelte │ │ │ └── index.svelte │ │ ├── server.js │ │ ├── service-worker.js │ │ └── template.html │ │ ├── static │ │ ├── favicon.png │ │ ├── global.css │ │ ├── great-success.png │ │ ├── logo-192.png │ │ ├── logo-512.png │ │ └── manifest.json │ │ ├── webpack.config.js │ │ └── yarn.lock └── template-icons │ ├── .babelrc.js │ ├── .browserslistrc │ ├── .eslintrc.js │ ├── .gitignore │ ├── .huskyrc │ ├── .lintstagedrc │ ├── .npmrc │ ├── .prettierrc │ ├── example │ ├── .babelrc │ ├── index.html │ ├── index.js │ ├── package.json │ ├── style.css │ └── yarn.lock │ ├── jest.config.js │ ├── package.json │ ├── sandbox.config.json │ ├── src │ ├── AdonisIcon.tsx │ ├── AngularIcon.tsx │ ├── ApolloIcon.tsx │ ├── AureliaIcon.tsx │ ├── CordovaIcon.tsx │ ├── CxJSIcon.tsx │ ├── CycleJSIcon.tsx │ ├── D3Icon.tsx │ ├── DocusaurusIcon.tsx │ ├── DoczIcon.tsx │ ├── DojoIcon.tsx │ ├── ElmIcon.tsx │ ├── EmberIcon.tsx │ ├── ExpoIcon.tsx │ ├── ExpressIcon.tsx │ ├── FeathersIcon.tsx │ ├── GatsbyIcon.tsx │ ├── GitHubIcon.tsx │ ├── GlimmerIcon.tsx │ ├── GridsomeIcon.tsx │ ├── HTML5Icon.tsx │ ├── HapiIcon.tsx │ ├── HyperappIcon.tsx │ ├── InfernoIcon.tsx │ ├── JavaScriptIcon.tsx │ ├── MDXDeckIcon.tsx │ ├── MarionetteIcon.tsx │ ├── MarkoIcon.tsx │ ├── MeteorIcon.tsx │ ├── NaviIcon.tsx │ ├── NestIcon.tsx │ ├── NextIcon.tsx │ ├── NodeIcon.tsx │ ├── NuxtIcon.tsx │ ├── ParcelIcon.tsx │ ├── PolymerIcon.tsx │ ├── PreactIcon.tsx │ ├── PrismaIcon.tsx │ ├── QuasarIcon.tsx │ ├── RazzleIcon.tsx │ ├── ReactIcon.tsx │ ├── ReasonIcon.tsx │ ├── RollupIcon.tsx │ ├── SVGIcon.tsx │ ├── SapperIcon.tsx │ ├── ServerlessIcon.tsx │ ├── StackbitIcon.tsx │ ├── StorybookIcon.tsx │ ├── StyleguidistIcon.tsx │ ├── SvelteIcon.tsx │ ├── TailwindIcon.tsx │ ├── TypeScriptIcon.tsx │ ├── UnibitIcon.tsx │ ├── VueIcon.tsx │ ├── VuePressIcon.tsx │ ├── WebAssemblyIcon.tsx │ ├── __TEST__ │ │ └── icon.spec.js │ ├── index.ts │ └── useUniqueId.tsx │ ├── tsconfig.json │ └── yarn.lock └── yarn.lock /.codesandbox/ci.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": ["./packages/template-icons"], 3 | "sandboxes": ["/packages/template-icons/example"], 4 | "installCommand": "custom-install" 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Package Directories 2 | node_modules 3 | 4 | # Ignored Directories 5 | .serverless 6 | .webpack 7 | .netlify 8 | .coverage 9 | /pkg 10 | /dist 11 | /build 12 | /typings 13 | /.awcache 14 | /.ssh 15 | 16 | # Ignored Files 17 | .env 18 | serverless.env.yml 19 | .DS_STORE 20 | npm-debug.log* 21 | yarn-error.log* 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | codesandbox-templates 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codesandbox-templates", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "custom-install": "cd packages/template-icons && yarn", 7 | "build": "cd packages/template-icons && yarn build" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/codesandbox/codesandbox-templates" 12 | }, 13 | "installConfig": { 14 | "pnp": true 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/client/angular-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /packages/client/angular-template/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get(browser.baseUrl) as Promise; 6 | } 7 | 8 | getTitleText() { 9 | return element(by.css('app-root h1')).getText() as Promise; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/client/angular-template/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /packages/client/angular-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "angular" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-root', 5 | templateUrl: './app.component.html', 6 | styleUrls: ['./app.component.css'] 7 | }) 8 | export class AppComponent { 9 | title = 'angular-template'; 10 | } 11 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { NgModule } from '@angular/core'; 3 | 4 | import { AppComponent } from './app.component'; 5 | 6 | @NgModule({ 7 | declarations: [ 8 | AppComponent 9 | ], 10 | imports: [ 11 | BrowserModule 12 | ], 13 | providers: [], 14 | bootstrap: [AppComponent] 15 | }) 16 | export class AppModule { } 17 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/browserslist: -------------------------------------------------------------------------------- 1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | # 5 | # For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed 6 | 7 | > 0.5% 8 | last 2 versions 9 | Firefox ESR 10 | not dead 11 | not IE 9-11 -------------------------------------------------------------------------------- /packages/client/angular-template/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/angular-template/src/favicon.ico -------------------------------------------------------------------------------- /packages/client/angular-template/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AngularTemplate 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | if (environment.production) { 8 | enableProdMode(); 9 | } 10 | 11 | platformBrowserDynamic().bootstrapModule(AppModule) 12 | .catch(err => console.error(err)); 13 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "types": [] 6 | }, 7 | "exclude": [ 8 | "test.ts", 9 | "**/*.spec.ts" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "test.ts", 12 | "polyfills.ts" 13 | ], 14 | "include": [ 15 | "**/*.spec.ts", 16 | "**/*.d.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/client/angular-template/src/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/client/angular-template/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "module": "es2015", 9 | "moduleResolution": "node", 10 | "emitDecoratorMetadata": true, 11 | "experimentalDecorators": true, 12 | "importHelpers": true, 13 | "target": "es5", 14 | "typeRoots": [ 15 | "node_modules/@types" 16 | ], 17 | "lib": [ 18 | "es2018", 19 | "dom" 20 | ] 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.js] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | 8 | [*.ts] 9 | indent_style = space 10 | indent_size = 4 11 | end_of_line = lf 12 | 13 | [*.scss] 14 | indent_style = space 15 | indent_size = 4 16 | end_of_line = lf 17 | 18 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/components/index.scss: -------------------------------------------------------------------------------- 1 | @import "Hamburger"; 2 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Cx App 8 | 9 | 10 | 11 |
12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/index.js: -------------------------------------------------------------------------------- 1 | import {Store} from "cx/data"; 2 | import {Url, History, Widget, startHotAppLoop} from "cx/ui"; 3 | import {Timing, Debug} from "cx/util"; 4 | 5 | //css 6 | import "./index.scss"; 7 | 8 | //store 9 | const store = new Store(); 10 | 11 | //routing 12 | Url.setBaseFromScript("app*.js"); 13 | History.connect(store, "url"); 14 | 15 | //debug 16 | Widget.resetCounter(); 17 | Timing.enable("app-loop"); 18 | Debug.enable("app-data"); 19 | 20 | //app loop 21 | import Routes from "./routes"; 22 | 23 | startHotAppLoop(module, document.getElementById("app"), store, Routes); 24 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/index.scss: -------------------------------------------------------------------------------- 1 | $cx-include-global-rules: true; 2 | 3 | @import "~cx/src/variables"; 4 | @import "~cx/src/index"; 5 | 6 | @import "components/index"; 7 | @import "layout/index"; 8 | @import "routes/index"; 9 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/layout/Controller.js: -------------------------------------------------------------------------------- 1 | import { Controller } from "cx/ui"; 2 | 3 | export default class extends Controller { 4 | onInit() { 5 | this.store.init("layout.aside.open", window.innerWidth >= 800); 6 | 7 | this.addTrigger("navigation", ["url"], () => { 8 | if (window.innerWidth < 800) 9 | this.store.set("layout.aside.open", false); 10 | }); 11 | } 12 | 13 | onMainClick(e, { store }) { 14 | if (window.innerWidth < 800) store.set("layout.aside.open", false); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/polyfill.js: -------------------------------------------------------------------------------- 1 | import 'whatwg-fetch'; 2 | import "babel-polyfill"; 3 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/routes/about/index.scss: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/routes/default/index.scss: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/routes/index.scss: -------------------------------------------------------------------------------- 1 | @import 'about/index'; 2 | @import 'default/index'; 3 | @import 'dashboard/index'; 4 | @import 'users/index'; 5 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/routes/users/index.js: -------------------------------------------------------------------------------- 1 | import { Route } from "cx/widgets"; 2 | 3 | import List from "./List"; 4 | import Editor from "./Editor"; 5 | 6 | export default ( 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ); 16 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/app/routes/users/index.scss: -------------------------------------------------------------------------------- 1 | .user-card { 2 | color: inherit; 3 | width: 250px; 4 | 5 | &:hover { 6 | text-decoration: none; 7 | border-color: $header-color; 8 | } 9 | } 10 | 11 | .user-card-body { 12 | box-sizing: border-box; 13 | //border: 1px solid lightgray; 14 | padding-left: 60px; 15 | position: relative; 16 | height: 70px; 17 | 18 | img { 19 | position: absolute; 20 | top: 10px; 21 | left: 10px; 22 | } 23 | 24 | &:hover { 25 | border: 1px solid $header-color; 26 | margin: -1px; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/client/cxjs-template/assets/img/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/cxjs-template/assets/img/welcome.png -------------------------------------------------------------------------------- /packages/client/cxjs-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "@dojo/cli-create-app" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/dojo-template/.dojorc: -------------------------------------------------------------------------------- 1 | { 2 | "build-app": {}, 3 | "test-intern": {}, 4 | "create-app": {} 5 | } -------------------------------------------------------------------------------- /packages/client/dojo-template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | _build/ 3 | output/ 4 | .cert/ 5 | -------------------------------------------------------------------------------- /packages/client/dojo-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "sapper" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/App.m.css: -------------------------------------------------------------------------------- 1 | .root { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/App.m.css.d.ts: -------------------------------------------------------------------------------- 1 | export const root: string; 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @codesandbox/dojo-template 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/main.css: -------------------------------------------------------------------------------- 1 | /* Put your styles and imports here */ 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/routes.ts: -------------------------------------------------------------------------------- 1 | export default [ 2 | { 3 | path: 'home', 4 | outlet: 'home', 5 | defaultRoute: true 6 | }, 7 | { 8 | path: 'about', 9 | outlet: 'about' 10 | }, 11 | { 12 | path: 'profile', 13 | outlet: 'profile' 14 | } 15 | ]; 16 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/About.ts: -------------------------------------------------------------------------------- 1 | import WidgetBase from '@dojo/framework/widget-core/WidgetBase'; 2 | import { v } from '@dojo/framework/widget-core/d'; 3 | 4 | import * as css from './styles/About.m.css'; 5 | 6 | export default class About extends WidgetBase { 7 | protected render() { 8 | return v('h1', { classes: [css.root] }, ['About Page']); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/Home.ts: -------------------------------------------------------------------------------- 1 | import WidgetBase from '@dojo/framework/widget-core/WidgetBase'; 2 | import { v } from '@dojo/framework/widget-core/d'; 3 | 4 | import * as css from './styles/Home.m.css'; 5 | 6 | export default class Home extends WidgetBase { 7 | protected render() { 8 | return v('h1', { classes: [css.root] }, ['Home Page']); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/Profile.ts: -------------------------------------------------------------------------------- 1 | import WidgetBase from '@dojo/framework/widget-core/WidgetBase'; 2 | import { v } from '@dojo/framework/widget-core/d'; 3 | 4 | import * as css from './styles/Profile.m.css'; 5 | 6 | export interface ProfileProperties { 7 | username: string; 8 | } 9 | 10 | export default class Profile extends WidgetBase { 11 | protected render() { 12 | const { username } = this.properties; 13 | return v('h1', { classes: [css.root] }, [`Welcome ${username}!`]); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/About.m.css: -------------------------------------------------------------------------------- 1 | .root { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/About.m.css.d.ts: -------------------------------------------------------------------------------- 1 | export const root: string; 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/Home.m.css: -------------------------------------------------------------------------------- 1 | .root { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/Home.m.css.d.ts: -------------------------------------------------------------------------------- 1 | export const root: string; 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/Menu.m.css: -------------------------------------------------------------------------------- 1 | .root { 2 | flex: 1; 3 | overflow: hidden; 4 | } 5 | 6 | .link:hover { 7 | color: #4db3ff; 8 | background-color:#ccddee; 9 | } 10 | 11 | .link { 12 | min-width: 140px; 13 | text-align: center; 14 | text-transform: uppercase; 15 | text-decoration: none; 16 | padding: 18px; 17 | color: black; 18 | box-sizing: border-box; 19 | } 20 | 21 | .selected { 22 | color: darkorange; 23 | } 24 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/Menu.m.css.d.ts: -------------------------------------------------------------------------------- 1 | export const root: string; 2 | export const link: string; 3 | export const selected: string; 4 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/Profile.m.css: -------------------------------------------------------------------------------- 1 | .root { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/dojo-template/src/widgets/styles/Profile.m.css.d.ts: -------------------------------------------------------------------------------- 1 | export const root: string; 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/functional/all.ts: -------------------------------------------------------------------------------- 1 | import './main'; 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/functional/main.ts: -------------------------------------------------------------------------------- 1 | /* Write your app tests here */ 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/unit/all.ts: -------------------------------------------------------------------------------- 1 | import './App'; 2 | import './widgets/all'; 3 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/unit/main.ts: -------------------------------------------------------------------------------- 1 | /* Write your app tests here */ 2 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/unit/widgets/About.ts: -------------------------------------------------------------------------------- 1 | const { describe, it } = intern.getInterface('bdd'); 2 | import harness from '@dojo/framework/testing/harness'; 3 | import { w, v } from '@dojo/framework/widget-core/d'; 4 | 5 | import About from '../../../src/widgets/About'; 6 | import * as css from '../../../src/widgets/styles/About.m.css'; 7 | 8 | describe('About', () => { 9 | it('default renders correctly', () => { 10 | const h = harness(() => w(About, {})); 11 | h.expect(() => v('h1', { classes: [css.root] }, ['About Page'])); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/unit/widgets/Home.ts: -------------------------------------------------------------------------------- 1 | const { describe, it } = intern.getInterface('bdd'); 2 | import harness from '@dojo/framework/testing/harness'; 3 | import { w, v } from '@dojo/framework/widget-core/d'; 4 | 5 | import Home from '../../../src/widgets/Home'; 6 | import * as css from '../../../src/widgets/styles/Home.m.css'; 7 | 8 | describe('Home', () => { 9 | it('default renders correctly', () => { 10 | const h = harness(() => w(Home, {})); 11 | h.expect(() => v('h1', { classes: [css.root] }, ['Home Page'])); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/unit/widgets/Profile.ts: -------------------------------------------------------------------------------- 1 | const { describe, it } = intern.getInterface('bdd'); 2 | import harness from '@dojo/framework/testing/harness'; 3 | import { w, v } from '@dojo/framework/widget-core/d'; 4 | 5 | import Profile from '../../../src/widgets/Profile'; 6 | import * as css from '../../../src/widgets/styles/Profile.m.css'; 7 | 8 | describe('Profile', () => { 9 | it('default renders correctly', () => { 10 | const h = harness(() => w(Profile, { username: 'Dojo User' })); 11 | h.expect(() => v('h1', { classes: [css.root] }, ['Welcome Dojo User!'])); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /packages/client/dojo-template/tests/unit/widgets/all.ts: -------------------------------------------------------------------------------- 1 | import './About'; 2 | import './Home'; 3 | import './Profile'; 4 | import './Menu'; 5 | -------------------------------------------------------------------------------- /packages/client/inferno-template/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | 23 | *.orig 24 | package-lock.json -------------------------------------------------------------------------------- /packages/client/inferno-template/fixtures/kitchensink/.env.development: -------------------------------------------------------------------------------- 1 | INFERNO_APP_X = x-from-development-env 2 | INFERNO_APP_DEVELOPMENT = development 3 | -------------------------------------------------------------------------------- /packages/client/inferno-template/fixtures/kitchensink/.env.production: -------------------------------------------------------------------------------- 1 | INFERNO_APP_X = x-from-production-env 2 | INFERNO_APP_PRODUCTION = production 3 | -------------------------------------------------------------------------------- /packages/client/inferno-template/fixtures/kitchensink/src/features/env/PublicUrl.test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import { render } from 'inferno'; 9 | import PublicUrl from './PublicUrl'; 10 | 11 | describe('PUBLIC_URL', () => { 12 | it('renders without crashing', () => { 13 | const div = document.createElement('div'); 14 | render(, div); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/client/inferno-template/fixtures/kitchensink/src/features/webpack/LinkedModules.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import Inferno from 'inferno'; 9 | import './assets/style.css'; 10 | import { test, version } from 'test-integrity'; 11 | 12 | export default () => { 13 | const v = version(); 14 | if (!test() || v !== '2.0.0') { 15 | throw new Error('Functionality test did not pass.'); 16 | } 17 | return

{v}

; 18 | }; 19 | -------------------------------------------------------------------------------- /packages/client/inferno-template/fixtures/kitchensink/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | import { render } from 'inferno'; 9 | import App from './App'; 10 | 11 | render(, document.getElementById('root')); 12 | -------------------------------------------------------------------------------- /packages/client/inferno-template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inferno-template", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "inferno": "^7.1.12", 7 | "inferno-scripts": "7.0.4" 8 | }, 9 | "scripts": { 10 | "start": "inferno-scripts start", 11 | "build": "inferno-scripts build", 12 | "test": "inferno-scripts test", 13 | "eject": "inferno-scripts eject" 14 | }, 15 | "eslintConfig": { 16 | "extends": "inferno-app" 17 | }, 18 | "browserslist": [ 19 | ">0.2%", 20 | "not dead", 21 | "not ie <= 11", 22 | "not op_mini all" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /packages/client/inferno-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/inferno-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/client/inferno-template/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Inferno App", 3 | "name": "Create Inferno App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /packages/client/inferno-template/src/App.js: -------------------------------------------------------------------------------- 1 | import { version, Component } from 'inferno'; 2 | import Logo from './logo'; 3 | import './App.css'; 4 | 5 | class App extends Component { 6 | render() { 7 | return ( 8 |
9 |
10 | 11 |

{`Welcome to Inferno ${version}`}

12 |

13 | Edit src/App.js and save to reload. 14 |

15 |
16 |
17 | ); 18 | } 19 | } 20 | 21 | export default App; 22 | -------------------------------------------------------------------------------- /packages/client/inferno-template/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render } from 'inferno'; 2 | import App from './App'; 3 | 4 | it('renders without crashing', () => { 5 | const div = document.createElement('div'); 6 | render(, div); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/client/inferno-template/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 5 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 6 | sans-serif; 7 | -webkit-font-smoothing: antialiased; 8 | -moz-osx-font-smoothing: grayscale; 9 | } 10 | 11 | code { 12 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 13 | monospace; 14 | } 15 | -------------------------------------------------------------------------------- /packages/client/inferno-template/src/index.js: -------------------------------------------------------------------------------- 1 | import { render } from 'inferno'; 2 | import './index.css'; 3 | import App from './App'; 4 | import * as serviceWorker from './serviceWorker'; 5 | 6 | render(, document.getElementById('root')); 7 | 8 | // If you want your app to work offline and load faster, you can change 9 | // unregister() to register() below. Note this comes with some pitfalls. 10 | // Learn more about service workers: http://bit.ly/CRA-PWA 11 | serviceWorker.unregister(); 12 | -------------------------------------------------------------------------------- /packages/client/preact-template/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "test": { 4 | "presets": [ 5 | ["preact-cli/babel", { "modules": "commonjs" }] 6 | ] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/client/preact-template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /build 3 | /*.log 4 | *.lock 5 | 6 | package-lock.json -------------------------------------------------------------------------------- /packages/client/preact-template/README.md: -------------------------------------------------------------------------------- 1 | # @codesandbox/preact-template 2 | 3 | ## CLI Commands 4 | 5 | ``` bash 6 | # install dependencies 7 | npm install 8 | 9 | # serve with hot reload at localhost:8080 10 | npm run dev 11 | 12 | # build for production with minification 13 | npm run build 14 | 15 | # test the production build locally 16 | npm run serve 17 | 18 | # run tests with jest and preact-render-spy 19 | npm run test 20 | ``` 21 | 22 | For detailed explanation on how things work, checkout the [CLI Readme](https://github.com/developit/preact-cli/blob/master/README.md). 23 | -------------------------------------------------------------------------------- /packages/client/preact-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "preact" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/favicon.ico -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/icons/favicon-16x16.png -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/icons/favicon-32x32.png -------------------------------------------------------------------------------- /packages/client/preact-template/src/assets/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-template/src/assets/icons/mstile-150x150.png -------------------------------------------------------------------------------- /packages/client/preact-template/src/components/header/index.js: -------------------------------------------------------------------------------- 1 | import { h } from 'preact'; 2 | import { Link } from 'preact-router/match'; 3 | import style from './style'; 4 | 5 | const Header = () => ( 6 |
7 |

Preact App

8 | 13 |
14 | ); 15 | 16 | export default Header; 17 | -------------------------------------------------------------------------------- /packages/client/preact-template/src/index.js: -------------------------------------------------------------------------------- 1 | import './style'; 2 | import App from './components/app'; 3 | 4 | export default App; 5 | -------------------------------------------------------------------------------- /packages/client/preact-template/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@codesandbox/preact-template", 3 | "short_name": "@codesandbox/preact-template", 4 | "start_url": "/", 5 | "display": "standalone", 6 | "orientation": "portrait", 7 | "background_color": "#fff", 8 | "theme_color": "#673ab8", 9 | "icons": [ 10 | { 11 | "src": "/assets/icons/android-chrome-192x192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "/assets/icons/android-chrome-512x512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /packages/client/preact-template/src/routes/home/index.js: -------------------------------------------------------------------------------- 1 | import { h } from 'preact'; 2 | import style from './style'; 3 | 4 | const Home = () => ( 5 |
6 |

Home

7 |

This is the Home component.

8 |
9 | ); 10 | 11 | export default Home; 12 | -------------------------------------------------------------------------------- /packages/client/preact-template/src/routes/home/style.css: -------------------------------------------------------------------------------- 1 | .home { 2 | padding: 56px 20px; 3 | min-height: 100%; 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /packages/client/preact-template/src/routes/profile/style.css: -------------------------------------------------------------------------------- 1 | .profile { 2 | padding: 56px 20px; 3 | min-height: 100%; 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /packages/client/preact-template/src/style/index.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | height: 100%; 3 | width: 100%; 4 | padding: 0; 5 | margin: 0; 6 | background: #FAFAFA; 7 | font-family: 'Helvetica Neue', arial, sans-serif; 8 | font-weight: 400; 9 | color: #444; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | * { 15 | box-sizing: border-box; 16 | } 17 | 18 | #app { 19 | height: 100%; 20 | } 21 | -------------------------------------------------------------------------------- /packages/client/preact-template/tests/__mocks__/browserMocks.js: -------------------------------------------------------------------------------- 1 | // Mock Browser API's which are not supported by JSDOM, e.g. ServiceWorker, LocalStorage 2 | /** 3 | * An example how to mock localStorage is given below 👇 4 | */ 5 | 6 | /* 7 | // Mocks localStorage 8 | const localStorageMock = (function() { 9 | let store = {}; 10 | 11 | return { 12 | getItem: (key) => store[key] || null, 13 | setItem: (key, value) => store[key] = value.toString(), 14 | clear: () => store = {} 15 | }; 16 | 17 | })(); 18 | 19 | Object.defineProperty(window, 'localStorage', { 20 | value: localStorageMock 21 | }); */ 22 | -------------------------------------------------------------------------------- /packages/client/preact-template/tests/__mocks__/fileMocks.js: -------------------------------------------------------------------------------- 1 | // This fixed an error related to the CSS and loading gif breaking my Jest test 2 | // See https://facebook.github.io/jest/docs/en/webpack.html#handling-static-assets 3 | module.exports = 'test-file-stub'; -------------------------------------------------------------------------------- /packages/client/preact-template/tests/header.test.js: -------------------------------------------------------------------------------- 1 | import Header from '../src/components/header'; 2 | import { Link } from 'preact-router/match'; 3 | // See: https://github.com/mzgoddard/preact-render-spy 4 | import { shallow } from 'preact-render-spy'; 5 | 6 | describe('Initial Test of the Header', () => { 7 | test('Header renders 3 nav items', () => { 8 | const context = shallow(
); 9 | expect(context.find('h1').text()).toBe('Preact App'); 10 | expect(context.find().length).toBe(3); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /build 3 | /*.log 4 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/.prettierignore: -------------------------------------------------------------------------------- 1 | package.json 2 | package-lock.json 3 | yarn.lock 4 | build -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/.prettierrc: -------------------------------------------------------------------------------- 1 | tabWidth: 4 -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["preact-cli/babel", { "modules": "commonjs" }] 4 | ] 5 | } -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/favicon.ico -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/icons/favicon-16x16.png -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/icons/favicon-32x32.png -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/assets/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/preact-typescript-template/src/assets/icons/mstile-150x150.png -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/components/header/style.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated from your CSS. Any edits will be overwritten. 2 | export const header: string; 3 | export const active: string; 4 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/index.js: -------------------------------------------------------------------------------- 1 | import "./style/index.css"; 2 | import App from "./components/app.tsx"; 3 | 4 | export default App; 5 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@codesandbox/preact-typescript-template", 3 | "short_name": "@codesandbox/preact-typescript-template", 4 | "start_url": "/", 5 | "display": "standalone", 6 | "orientation": "portrait", 7 | "background_color": "#fff", 8 | "theme_color": "#673ab8", 9 | "icons": [ 10 | { 11 | "src": "/assets/icons/android-chrome-192x192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "/assets/icons/android-chrome-512x512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/routes/home/index.tsx: -------------------------------------------------------------------------------- 1 | import { Component, h } from "preact"; 2 | import * as style from "./style.css"; 3 | 4 | interface Props {} 5 | export default class Home extends Component { 6 | public render() { 7 | return ( 8 |
9 |

Home

10 |

This is the Home component.

11 |
12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/routes/home/style.css: -------------------------------------------------------------------------------- 1 | .home { 2 | padding: 56px 20px; 3 | min-height: 100%; 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/routes/home/style.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated from your CSS. Any edits will be overwritten. 2 | export const home: string; 3 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/routes/profile/style.css: -------------------------------------------------------------------------------- 1 | .profile { 2 | padding: 56px 20px; 3 | min-height: 100%; 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/routes/profile/style.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated from your CSS. Any edits will be overwritten. 2 | export const profile: string; 3 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/style/index.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | height: 100%; 3 | width: 100%; 4 | padding: 0; 5 | margin: 0; 6 | background: #FAFAFA; 7 | font-family: 'Helvetica Neue', arial, sans-serif; 8 | font-weight: 400; 9 | color: #444; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | * { 15 | box-sizing: border-box; 16 | } 17 | 18 | #app { 19 | height: 100%; 20 | } 21 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/style/index.css.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated from your CSS. Any edits will be overwritten. 2 | export const app: string; 3 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/tests/__mocks__/browserMocks.js: -------------------------------------------------------------------------------- 1 | // Mock Browser API's which are not supported by JSDOM, e.g. ServiceWorker, LocalStorage 2 | /** 3 | * An example how to mock localStorage is given below 👇 4 | */ 5 | 6 | /* 7 | // Mocks localStorage 8 | const localStorageMock = (function() { 9 | let store = {}; 10 | 11 | return { 12 | getItem: (key) => store[key] || null, 13 | setItem: (key, value) => store[key] = value.toString(), 14 | clear: () => store = {} 15 | }; 16 | 17 | })(); 18 | 19 | Object.defineProperty(window, 'localStorage', { 20 | value: localStorageMock 21 | }); */ 22 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/tests/__mocks__/fileMocks.js: -------------------------------------------------------------------------------- 1 | // This fixed an error related to the CSS and loading gif breaking my Jest test 2 | // See https://facebook.github.io/jest/docs/en/webpack.html#handling-static-assets 3 | export default "test-file-stub"; 4 | -------------------------------------------------------------------------------- /packages/client/preact-typescript-template/src/tests/header.test.tsx: -------------------------------------------------------------------------------- 1 | import { Component, h } from "preact"; 2 | // See: https://github.com/mzgoddard/preact-render-spy 3 | import { deep, shallow } from "preact-render-spy"; 4 | import { Link } from "preact-router/match"; 5 | import Header from "../components/header"; 6 | 7 | describe("Initial Test of the Header", () => { 8 | test("Header renders 3 nav items", () => { 9 | const context = shallow(
); 10 | expect(context.find("h1").text()).toBe("Preact App"); 11 | expect(context.find("Link").length).toBe(3); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /packages/client/react-template/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /packages/client/react-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/react-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/client/react-template/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /packages/client/react-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "react" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/react-template/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | animation: App-logo-spin infinite 20s linear; 7 | height: 40vmin; 8 | pointer-events: none; 9 | } 10 | 11 | .App-header { 12 | background-color: #282c34; 13 | min-height: 100vh; 14 | display: flex; 15 | flex-direction: column; 16 | align-items: center; 17 | justify-content: center; 18 | font-size: calc(10px + 2vmin); 19 | color: white; 20 | } 21 | 22 | .App-link { 23 | color: #61dafb; 24 | } 25 | 26 | @keyframes App-logo-spin { 27 | from { 28 | transform: rotate(0deg); 29 | } 30 | to { 31 | transform: rotate(360deg); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /packages/client/react-template/src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import logo from './logo.svg'; 3 | import './App.css'; 4 | 5 | function App() { 6 | return ( 7 |
8 |
9 | logo 10 |

11 | Edit src/App.js and save to reload. 12 |

13 | 19 | Learn React 20 | 21 |
22 |
23 | ); 24 | } 25 | 26 | export default App; 27 | -------------------------------------------------------------------------------- /packages/client/react-template/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /packages/client/react-template/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /packages/client/react-template/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/react-typescript-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/client/react-typescript-template/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | animation: App-logo-spin infinite 20s linear; 7 | height: 40vmin; 8 | pointer-events: none; 9 | } 10 | 11 | .App-header { 12 | background-color: #282c34; 13 | min-height: 100vh; 14 | display: flex; 15 | flex-direction: column; 16 | align-items: center; 17 | justify-content: center; 18 | font-size: calc(10px + 2vmin); 19 | color: white; 20 | } 21 | 22 | .App-link { 23 | color: #61dafb; 24 | } 25 | 26 | @keyframes App-logo-spin { 27 | from { 28 | transform: rotate(0deg); 29 | } 30 | to { 31 | transform: rotate(360deg); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/client/react-typescript-template/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "noEmit": true, 20 | "jsx": "preserve" 21 | }, 22 | "include": [ 23 | "src" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /packages/client/reason-template/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .merlin 3 | .bsb.lock 4 | npm-debug.log 5 | /lib/bs/ 6 | /node_modules/ 7 | -------------------------------------------------------------------------------- /packages/client/reason-template/README.md: -------------------------------------------------------------------------------- 1 | # Basic Reason Template 2 | 3 | Hello! This project allows you to quickly get started with Reason and BuckleScript. If you wanted a more sophisticated version, try the `react` template (`bsb -theme react -init .`). 4 | 5 | # Build 6 | ``` 7 | npm run build 8 | ``` 9 | 10 | # Build + Watch 11 | 12 | ``` 13 | npm run start 14 | ``` 15 | 16 | 17 | # Editor 18 | If you use `vscode`, Press `Windows + Shift + B` it will build automatically 19 | -------------------------------------------------------------------------------- /packages/client/reason-template/bsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reason-template", 3 | "version": "0.1.0", 4 | "sources": { 5 | "dir" : "src", 6 | "subdirs" : true 7 | }, 8 | "package-specs": { 9 | "module": "commonjs", 10 | "in-source": true 11 | }, 12 | "suffix": ".bs.js", 13 | "bs-dependencies": [ 14 | 15 | ], 16 | "warnings": { 17 | "error" : "+101" 18 | }, 19 | "namespace": true, 20 | "refmt": 3 21 | } 22 | -------------------------------------------------------------------------------- /packages/client/reason-template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reason-template", 3 | "version": "0.1.0", 4 | "scripts": { 5 | "build": "bsb -make-world", 6 | "start": "bsb -make-world -w", 7 | "clean": "bsb -clean-world" 8 | }, 9 | "keywords": [ 10 | "BuckleScript" 11 | ], 12 | "author": "", 13 | "license": "MIT", 14 | "devDependencies": { 15 | "bs-platform": "^5.0.4" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/client/reason-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "reason" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/reason-template/src/Demo.re: -------------------------------------------------------------------------------- 1 | Js.log("Hello, BuckleScript and Reason!"); 2 | -------------------------------------------------------------------------------- /packages/client/svelte-template/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | public/bundle.* 4 | -------------------------------------------------------------------------------- /packages/client/svelte-template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-app", 3 | "version": "1.0.0", 4 | "devDependencies": { 5 | "npm-run-all": "^4.1.5", 6 | "rollup": "^1.10.1", 7 | "rollup-plugin-commonjs": "^9.3.4", 8 | "rollup-plugin-livereload": "^1.0.0", 9 | "rollup-plugin-node-resolve": "^4.2.3", 10 | "rollup-plugin-svelte": "^5.0.3", 11 | "rollup-plugin-terser": "^4.0.4", 12 | "sirv-cli": "^0.4.0", 13 | "svelte": "^3.0.0" 14 | }, 15 | "scripts": { 16 | "build": "rollup -c", 17 | "autobuild": "rollup -c -w", 18 | "dev": "run-p start:dev autobuild", 19 | "start": "sirv public", 20 | "start:dev": "sirv public --dev" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/client/svelte-template/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/svelte-template/public/favicon.png -------------------------------------------------------------------------------- /packages/client/svelte-template/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Svelte app 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /packages/client/svelte-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "svelte" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/svelte-template/src/App.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 |

Hello {name}!

12 | -------------------------------------------------------------------------------- /packages/client/svelte-template/src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte'; 2 | 3 | const app = new App({ 4 | target: document.body, 5 | props: { 6 | name: 'world' 7 | } 8 | }); 9 | 10 | export default app; -------------------------------------------------------------------------------- /packages/client/vue-template/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /packages/client/vue-template/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "@vue/prettier"], 7 | rules: { 8 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 9 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 10 | }, 11 | parserOptions: { 12 | parser: "babel-eslint" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /packages/client/vue-template/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | /tests/e2e/videos/ 6 | /tests/e2e/screenshots/ 7 | 8 | # local env files 9 | .env.local 10 | .env.*.local 11 | 12 | # Log files 13 | npm-debug.log* 14 | yarn-debug.log* 15 | yarn-error.log* 16 | 17 | # Editor directories and files 18 | .idea 19 | .vscode 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/client/vue-template/README.md: -------------------------------------------------------------------------------- 1 | # @codesandbox/vue-template 2 | 3 | ## Project setup 4 | ``` 5 | yarn install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | yarn run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | yarn run build 16 | ``` 17 | 18 | ### Run your tests 19 | ``` 20 | yarn run test 21 | ``` 22 | 23 | ### Lints and fixes files 24 | ``` 25 | yarn run lint 26 | ``` 27 | 28 | ### Run your end-to-end tests 29 | ``` 30 | yarn run test:e2e 31 | ``` 32 | 33 | ### Run your unit tests 34 | ``` 35 | yarn run test:unit 36 | ``` 37 | 38 | ### Customize configuration 39 | See [Configuration Reference](https://cli.vuejs.org/config/). 40 | -------------------------------------------------------------------------------- /packages/client/vue-template/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/app"] 3 | }; 4 | -------------------------------------------------------------------------------- /packages/client/vue-template/cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "pluginsFile": "tests/e2e/plugins/index.js" 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/vue-template/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /packages/client/vue-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/vue-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/client/vue-template/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | @codesandbox/vue-template 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /packages/client/vue-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "vue-cli" 6 | } 7 | -------------------------------------------------------------------------------- /packages/client/vue-template/src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 30 | -------------------------------------------------------------------------------- /packages/client/vue-template/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/vue-template/src/assets/logo.png -------------------------------------------------------------------------------- /packages/client/vue-template/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | import router from "./router"; 4 | 5 | Vue.config.productionTip = false; 6 | 7 | new Vue({ 8 | router, 9 | render: h => h(App) 10 | }).$mount("#app"); 11 | -------------------------------------------------------------------------------- /packages/client/vue-template/src/views/About.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/client/vue-template/src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | -------------------------------------------------------------------------------- /packages/client/vue-template/tests/e2e/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: ["cypress"], 3 | env: { 4 | mocha: true, 5 | "cypress/globals": true 6 | }, 7 | rules: { 8 | strict: "off" 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/client/vue-template/tests/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // https://docs.cypress.io/api/introduction/api.html 2 | 3 | describe("My First Test", () => { 4 | it("Visits the app root url", () => { 5 | cy.visit("/"); 6 | cy.contains("h1", "Welcome to Your Vue.js App"); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/client/vue-template/tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /packages/client/vue-template/tests/unit/example.spec.js: -------------------------------------------------------------------------------- 1 | import { shallowMount } from "@vue/test-utils"; 2 | import HelloWorld from "@/components/HelloWorld.vue"; 3 | 4 | describe("HelloWorld.vue", () => { 5 | it("renders props.msg when passed", () => { 6 | const msg = "new message"; 7 | const wrapper = shallowMount(HelloWorld, { 8 | propsData: { msg } 9 | }); 10 | expect(wrapper.text()).toMatch(msg); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ["plugin:vue/essential", "@vue/prettier", "@vue/typescript"], 7 | rules: { 8 | "no-console": process.env.NODE_ENV === "production" ? "error" : "off", 9 | "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" 10 | }, 11 | parserOptions: { 12 | parser: "@typescript-eslint/parser" 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | /tests/e2e/videos/ 6 | /tests/e2e/screenshots/ 7 | 8 | # local env files 9 | .env.local 10 | .env.*.local 11 | 12 | # Log files 13 | npm-debug.log* 14 | yarn-debug.log* 15 | yarn-error.log* 16 | 17 | # Editor directories and files 18 | .idea 19 | .vscode 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/README.md: -------------------------------------------------------------------------------- 1 | # @codesandbox/vue-typescript-template 2 | 3 | ## Project setup 4 | ``` 5 | yarn install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | yarn run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | yarn run build 16 | ``` 17 | 18 | ### Run your tests 19 | ``` 20 | yarn run test 21 | ``` 22 | 23 | ### Lints and fixes files 24 | ``` 25 | yarn run lint 26 | ``` 27 | 28 | ### Run your end-to-end tests 29 | ``` 30 | yarn run test:e2e 31 | ``` 32 | 33 | ### Run your unit tests 34 | ``` 35 | yarn run test:unit 36 | ``` 37 | 38 | ### Customize configuration 39 | See [Configuration Reference](https://cli.vuejs.org/config/). 40 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/app"] 3 | }; 4 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "pluginsFile": "tests/e2e/plugins/index.js" 3 | } 4 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/vue-typescript-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 30 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/client/vue-typescript-template/src/assets/logo.png -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import App from "./App.vue"; 3 | import router from "./router"; 4 | 5 | Vue.config.productionTip = false; 6 | 7 | new Vue({ 8 | router, 9 | render: h => h(App) 10 | }).$mount("#app"); 11 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/shims-tsx.d.ts: -------------------------------------------------------------------------------- 1 | import Vue, { VNode } from "vue"; 2 | 3 | declare global { 4 | namespace JSX { 5 | // tslint:disable no-empty-interface 6 | interface Element extends VNode {} 7 | // tslint:disable no-empty-interface 8 | interface ElementClass extends Vue {} 9 | interface IntrinsicElements { 10 | [elem: string]: any; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import Vue from "vue"; 3 | export default Vue; 4 | } 5 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/views/About.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/tests/e2e/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: ["cypress"], 3 | env: { 4 | mocha: true, 5 | "cypress/globals": true 6 | }, 7 | rules: { 8 | strict: "off" 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/tests/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // https://docs.cypress.io/api/introduction/api.html 2 | 3 | describe("My First Test", () => { 4 | it("Visits the app root url", () => { 5 | cy.visit("/"); 6 | cy.contains("h1", "Welcome to Your Vue.js + TypeScript App"); 7 | }); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/tests/unit/example.spec.ts: -------------------------------------------------------------------------------- 1 | import { shallowMount } from "@vue/test-utils"; 2 | import HelloWorld from "@/components/HelloWorld.vue"; 3 | 4 | describe("HelloWorld.vue", () => { 5 | it("renders props.msg when passed", () => { 6 | const msg = "new message"; 7 | const wrapper = shallowMount(HelloWorld, { 8 | propsData: { msg } 9 | }); 10 | expect(wrapper.text()).toMatch(msg); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /packages/client/vue-typescript-template/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | lintOnSave: false 3 | }; 4 | -------------------------------------------------------------------------------- /packages/container/adonis-template/.editorconfig: -------------------------------------------------------------------------------- 1 | 2 | [*] 3 | indent_style = space 4 | indent_size = 2 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.json] 11 | insert_final_newline = ignore 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /packages/container/adonis-template/.env: -------------------------------------------------------------------------------- 1 | PORT=3333 2 | HOST=0.0.0.0 3 | NODE_ENV=development 4 | APP_KEY=h5DQFVIBRUlLANlOTIXY17KYwAY4G8BG 5 | SESSION_DRIVER=cookie 6 | CACHE_VIEWS=false 7 | -------------------------------------------------------------------------------- /packages/container/adonis-template/.env.example: -------------------------------------------------------------------------------- 1 | PORT=3333 2 | HOST=0.0.0.0 3 | NODE_ENV=development 4 | APP_KEY=h5DQFVIBRUlLANlOTIXY17KYwAY4G8BG 5 | SESSION_DRIVER=cookie 6 | CACHE_VIEWS=false 7 | -------------------------------------------------------------------------------- /packages/container/adonis-template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | coverage 4 | .vscode 5 | .DS_STORE 6 | .env 7 | tmp 8 | -------------------------------------------------------------------------------- /packages/container/adonis-template/ace: -------------------------------------------------------------------------------- 1 | /* 2 | |-------------------------------------------------------------------------- 3 | | Ace Commands 4 | |-------------------------------------------------------------------------- 5 | | 6 | | This file is the entry point for running ace commands. 7 | | 8 | */ 9 | 10 | require('reflect-metadata') 11 | require('source-map-support').install({ handleUncaughtExceptions: false }) 12 | 13 | const { Ignitor } = require('@adonisjs/core/build/standalone') 14 | new Ignitor(__dirname) 15 | .ace() 16 | .handle(process.argv.slice(2)) 17 | -------------------------------------------------------------------------------- /packages/container/adonis-template/contracts/hash.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Contract source: https://git.io/Jfefs 3 | * 4 | * Feel free to let us know via PR, if you find something broken in this contract 5 | * file. 6 | */ 7 | 8 | declare module '@ioc:Adonis/Core/Hash' { 9 | interface HashersList { 10 | bcrypt: { 11 | config: BcryptConfig, 12 | implementation: BcryptContract, 13 | }, 14 | argon: { 15 | config: ArgonConfig, 16 | implementation: ArgonContract, 17 | }, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/container/adonis-template/providers/AppProvider.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationContract } from '@ioc:Adonis/Core/Application' 2 | 3 | export default class AppProvider { 4 | constructor (protected app: ApplicationContract) { 5 | } 6 | 7 | public register () { 8 | // Register your own bindings 9 | } 10 | 11 | public async boot () { 12 | // IoC container is ready 13 | } 14 | 15 | public async ready () { 16 | // App is ready 17 | } 18 | 19 | public async shutdown () { 20 | // Cleanup, since app is going down 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/container/adonis-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/adonis-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/container/adonis-template/resources/views/errors/not-found.edge: -------------------------------------------------------------------------------- 1 |

It's a 404

2 | -------------------------------------------------------------------------------- /packages/container/adonis-template/resources/views/errors/server-error.edge: -------------------------------------------------------------------------------- 1 |

It's a 500

2 | -------------------------------------------------------------------------------- /packages/container/adonis-template/resources/views/errors/unauthorized.edge: -------------------------------------------------------------------------------- 1 |

It's a 403

2 | -------------------------------------------------------------------------------- /packages/container/adonis-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "adonis", 6 | "container": { 7 | "port": 3333 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | end_of_line = lf 9 | insert_final_newline = true 10 | # 2 space indentation 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/aurelia-tools/.eslintrc.json", 3 | "parserOptions": { 4 | "ecmaFeatures": { 5 | "legacyDecorators": true 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "AureliaEffect.aurelia", 4 | "msjsdiag.debugger-for-chrome", 5 | "steoates.autoimport", 6 | "EditorConfig.EditorConfig", 7 | "christian-kohler.path-intellisense", 8 | "behzad88.Aurelia" 9 | ] 10 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Chrome", 6 | "type": "chrome", 7 | "request": "launch", 8 | "url": "http://localhost:8080", 9 | "webRoot": "${workspaceRoot}/src", 10 | "userDataDir": "${workspaceRoot}/.chrome", 11 | "sourceMapPathOverrides": { 12 | "webpack:///./src/*": "${webRoot}/*" 13 | } 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/environments/dev.js: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: true, 3 | testing: true 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/environments/prod.js: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: false, 3 | testing: false 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/environments/stage.js: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: true, 3 | testing: false 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/attribute.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "attribute", 3 | "description": "Creates a custom attribute class and places it in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/binding-behavior.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "binding-behavior", 3 | "description": "Creates a binding behavior class and places it in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "component", 3 | "description": "Creates a custom component class and template (view model and view), placing them in the project source folder (or optionally in sub folders)." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/element.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "element", 3 | "description": "Creates a custom element class and template, placing them in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/generator.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "generator", 3 | "description": "Creates a generator class and places it in the project generators folder." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/task.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "task", 3 | "description": "Creates a task and places it in the project tasks folder." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/generators/value-converter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "value-converter", 3 | "description": "Creates a value converter class and places it in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/tasks/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "build", 3 | "description": "Builds and processes all application assets.", 4 | "flags": [ 5 | { 6 | "name": "analyze", 7 | "description": "Enable Webpack Bundle Analyzer. Typically paired with --env prod", 8 | "type": "boolean" 9 | }, 10 | { 11 | "name": "env", 12 | "description": "Sets the build environment.", 13 | "type": "string" 14 | }, 15 | { 16 | "name": "watch", 17 | "description": "Watches source files for changes and refreshes the bundles automatically.", 18 | "type": "boolean" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/tasks/jest.js: -------------------------------------------------------------------------------- 1 | export {default} from './test'; 2 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/tasks/jest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jest", 3 | "description": "Runs Jest and reports the results.", 4 | "flags": [ 5 | { 6 | "name": "watch", 7 | "description": "Watches test files for changes and re-runs the tests automatically.", 8 | "type": "boolean" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/tasks/test.js: -------------------------------------------------------------------------------- 1 | import jest from 'jest-cli'; 2 | import path from 'path'; 3 | import packageJson from '../../package.json'; 4 | 5 | import { CLIOptions } from 'aurelia-cli'; 6 | 7 | export default (cb) => { 8 | let options = packageJson.jest; 9 | 10 | if (CLIOptions.hasFlag('watch')) { 11 | Object.assign(options, { watchAll: true}); 12 | } 13 | 14 | process.env.BABEL_TARGET = 'node'; 15 | 16 | jest.runCLI(options, [path.resolve(__dirname, '../../')]).then(({ results }) => { 17 | if (results.numFailedTests || results.numFailedTestSuites) { 18 | cb('Tests Failed'); 19 | } else { 20 | cb(); 21 | } 22 | }); 23 | }; 24 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/aurelia_project/tasks/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "description": "Runs Jest and reports the results.", 4 | "flags": [ 5 | { 6 | "name": "watch", 7 | "description": "Watches test files for changes and re-runs the tests automatically.", 8 | "type": "boolean" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/aurelia-template/favicon.ico -------------------------------------------------------------------------------- /packages/container/aurelia-template/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%- htmlWebpackPlugin.options.metadata.title %> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "lib": [ 5 | "es2017", 6 | "dom" 7 | ], 8 | "experimentalDecorators": true 9 | }, 10 | "exclude": [ 11 | "node_modules", 12 | "dist" 13 | ] 14 | } -------------------------------------------------------------------------------- /packages/container/aurelia-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/src/app.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/src/app.js: -------------------------------------------------------------------------------- 1 | export class App { 2 | message = 'Hello World!'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/src/environment.js: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: true, 3 | testing: true 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/src/main.js: -------------------------------------------------------------------------------- 1 | import 'core-js/stable'; 2 | import 'regenerator-runtime/runtime'; 3 | import environment from './environment'; 4 | import {PLATFORM} from 'aurelia-pal'; 5 | 6 | export function configure(aurelia) { 7 | aurelia.use 8 | .standardConfiguration() 9 | .feature(PLATFORM.moduleName('resources/index')); 10 | 11 | aurelia.use.developmentLogging(environment.debug ? 'debug' : 'warn'); 12 | 13 | if (environment.testing) { 14 | aurelia.use.plugin(PLATFORM.moduleName('aurelia-testing')); 15 | } 16 | 17 | aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app'))); 18 | } 19 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/src/resources/index.js: -------------------------------------------------------------------------------- 1 | export function configure(config) { 2 | //config.globalResources([]); 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/aurelia-template/static/favicon.ico -------------------------------------------------------------------------------- /packages/container/aurelia-template/test/jest-pretest.js: -------------------------------------------------------------------------------- 1 | import 'aurelia-polyfills'; 2 | import {Options} from 'aurelia-loader-nodejs'; 3 | import {globalize} from 'aurelia-pal-nodejs'; 4 | import path from 'path'; 5 | Options.relativeToDir = path.join(__dirname, 'unit'); 6 | globalize(); 7 | -------------------------------------------------------------------------------- /packages/container/aurelia-template/test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-var": 0 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | end_of_line = lf 9 | insert_final_newline = true 10 | # 2 space indentation 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "AureliaEffect.aurelia", 4 | "msjsdiag.debugger-for-chrome", 5 | "steoates.autoimport", 6 | "EditorConfig.EditorConfig", 7 | "christian-kohler.path-intellisense", 8 | "behzad88.Aurelia" 9 | ] 10 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Chrome", 6 | "type": "chrome", 7 | "request": "launch", 8 | "url": "http://localhost:8080", 9 | "webRoot": "${workspaceRoot}/src", 10 | "userDataDir": "${workspaceRoot}/.chrome", 11 | "sourceMapPathOverrides": { 12 | "webpack:///./src/*": "${webRoot}/*" 13 | } 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib", 3 | "html.suggest.angular1": false, 4 | "html.suggest.ionic": false 5 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/environments/dev.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: true, 3 | testing: true 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/environments/prod.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: false, 3 | testing: false 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/environments/stage.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: true, 3 | testing: false 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/attribute.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "attribute", 3 | "description": "Creates a custom attribute class and places it in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/binding-behavior.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "binding-behavior", 3 | "description": "Creates a binding behavior class and places it in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "component", 3 | "description": "Creates a custom component class and template (view model and view), placing them in the project source folder (or optionally in sub folders)." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/element.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "element", 3 | "description": "Creates a custom element class and template, placing them in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/generator.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "generator", 3 | "description": "Creates a generator class and places it in the project generators folder." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/task.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "task", 3 | "description": "Creates a task and places it in the project tasks folder." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/generators/value-converter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "value-converter", 3 | "description": "Creates a value converter class and places it in the project resources." 4 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/tasks/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "build", 3 | "description": "Builds and processes all application assets.", 4 | "flags": [ 5 | { 6 | "name": "analyze", 7 | "description": "Enable Webpack Bundle Analyzer. Typically paired with --env prod", 8 | "type": "boolean" 9 | }, 10 | { 11 | "name": "env", 12 | "description": "Sets the build environment.", 13 | "type": "string" 14 | }, 15 | { 16 | "name": "watch", 17 | "description": "Watches source files for changes and refreshes the bundles automatically.", 18 | "type": "boolean" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/tasks/jest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jest", 3 | "description": "Runs Jest and reports the results.", 4 | "flags": [ 5 | { 6 | "name": "watch", 7 | "description": "Watches test files for changes and re-runs the tests automatically.", 8 | "type": "boolean" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/tasks/jest.ts: -------------------------------------------------------------------------------- 1 | export {default} from './test'; 2 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/tasks/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "description": "Runs Jest and reports the results.", 4 | "flags": [ 5 | { 6 | "name": "watch", 7 | "description": "Watches test files for changes and re-runs the tests automatically.", 8 | "type": "boolean" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/aurelia_project/tasks/test.ts: -------------------------------------------------------------------------------- 1 | import * as jest from 'jest-cli'; 2 | import * as path from 'path'; 3 | import * as packageJson from '../../package.json'; 4 | 5 | import { CLIOptions } from 'aurelia-cli'; 6 | 7 | export default (cb) => { 8 | let options = packageJson.jest; 9 | 10 | if (CLIOptions.hasFlag('watch')) { 11 | Object.assign(options, { watchAll: true}); 12 | } 13 | 14 | 15 | jest.runCLI(options, [path.resolve(__dirname, '../../')]).then(({ results }) => { 16 | if (results.numFailedTests || results.numFailedTestSuites) { 17 | cb('Tests Failed'); 18 | } else { 19 | cb(); 20 | } 21 | }); 22 | }; 23 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/aurelia-typescript-template/favicon.ico -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%- htmlWebpackPlugin.options.metadata.title %> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/src/app.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/src/app.ts: -------------------------------------------------------------------------------- 1 | export class App { 2 | public message: string = 'Hello World!'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/src/environment.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | debug: true, 3 | testing: true 4 | }; 5 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/src/main.ts: -------------------------------------------------------------------------------- 1 | import 'core-js/stable'; 2 | import {Aurelia} from 'aurelia-framework' 3 | import environment from './environment'; 4 | import {PLATFORM} from 'aurelia-pal'; 5 | 6 | export function configure(aurelia: Aurelia) { 7 | aurelia.use 8 | .standardConfiguration() 9 | .feature(PLATFORM.moduleName('resources/index')); 10 | 11 | aurelia.use.developmentLogging(environment.debug ? 'debug' : 'warn'); 12 | 13 | if (environment.testing) { 14 | aurelia.use.plugin(PLATFORM.moduleName('aurelia-testing')); 15 | } 16 | 17 | aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app'))); 18 | } 19 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/src/resources/index.ts: -------------------------------------------------------------------------------- 1 | import {FrameworkConfiguration} from 'aurelia-framework'; 2 | 3 | export function configure(config: FrameworkConfiguration) { 4 | //config.globalResources([]); 5 | } 6 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/aurelia-typescript-template/static/favicon.ico -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/test/jest-pretest.ts: -------------------------------------------------------------------------------- 1 | import 'aurelia-polyfills'; 2 | import {Options} from 'aurelia-loader-nodejs'; 3 | import {globalize} from 'aurelia-pal-nodejs'; 4 | import * as path from 'path'; 5 | Options.relativeToDir = path.join(__dirname, 'unit'); 6 | globalize(); 7 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "module": "esnext", 5 | "skipLibCheck": true, 6 | "removeComments": true, 7 | "emitDecoratorMetadata": true, 8 | "experimentalDecorators": true, 9 | "sourceMap": true, 10 | "target": "es5", 11 | "lib": [ 12 | "es2015", 13 | "dom" 14 | ], 15 | "moduleResolution": "node", 16 | "allowJs": true, 17 | "baseUrl": "src" 18 | }, 19 | "include": [ 20 | "./src/**/*.ts", 21 | "./test/**/*.ts", 22 | "./types/**/*.d.ts" 23 | ], 24 | "atom": { 25 | "rewriteTsconfig": false 26 | } 27 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-empty": true 4 | } 5 | } -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/types/fetch.d.ts: -------------------------------------------------------------------------------- 1 | declare module "isomorphic-fetch" { 2 | export = fetch; 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/aurelia-typescript-template/types/system.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'system' { 2 | import fetch = require('isomorphic-fetch'); 3 | import * as Aurelia from 'aurelia-framework'; 4 | 5 | /* 6 | * List your dynamically imported modules to get typing support 7 | */ 8 | interface System { 9 | import(name: string): Promise; 10 | import(name: 'aurelia-framework'): Promise; 11 | import(name: 'isomorphic-fetch'): Promise; 12 | } 13 | 14 | global { 15 | var System: System; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # production 5 | /build 6 | 7 | # generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* -------------------------------------------------------------------------------- /packages/container/docusaurus-template/blog/2019-05-28-hola.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: hola 3 | title: Hola 4 | author: Gao Wei 5 | authorTitle: Docusaurus Core Team 6 | authorURL: https://github.com/wgao19 7 | authorImageURL: https://avatars1.githubusercontent.com/u/2055384?v=4 8 | authorTwitter: wgao19 9 | tags: [hola, docusaurus] 10 | --- 11 | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet 13 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/blog/2019-05-29-hello-world.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: hello-world 3 | title: Hello 4 | author: Endilie Yacop Sucipto 5 | authorTitle: Maintainer of Docusaurus 6 | authorURL: https://github.com/endiliey 7 | authorImageURL: https://avatars1.githubusercontent.com/u/17883920?s=460&v=4 8 | authorTwitter: endiliey 9 | tags: [hello, docusaurus] 10 | --- 11 | 12 | Welcome to this blog. This blog is created with [**Docusaurus 2 alpha**](https://v2.docusaurus.io/). 13 | 14 | 15 | 16 | This is a test post. 17 | 18 | A whole bunch of other information. 19 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/blog/2019-05-30-welcome.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: welcome 3 | title: Welcome 4 | author: Yangshun Tay 5 | authorTitle: Front End Engineer @ Facebook 6 | authorURL: https://github.com/yangshun 7 | authorImageURL: https://avatars0.githubusercontent.com/u/1315101?s=400&v=4 8 | authorTwitter: yangshunz 9 | tags: [facebook, hello, docusaurus] 10 | --- 11 | 12 | Blog features are powered by the blog plugin. Simple add files to the `blog` directory. It supports tags as well! 13 | 14 | Delete the whole directory if you don't want the blog features. As simple as that! 15 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/docs/doc2.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: doc2 3 | title: Document Number 2 4 | --- 5 | 6 | This is a link to [another document.](doc3.md) 7 | This is a link to an [external page.](http://www.example.com) 8 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/docs/mdx.md: -------------------------------------------------------------------------------- 1 | --- 2 | id: mdx 3 | title: Powered by MDX 4 | --- 5 | 6 | You can write JSX and use React components within your Markdown thanks to [MDX](https://mdxjs.com/). 7 | 8 | export const Highlight = ({children, color}) => ( 9 | 16 | {children} 17 | 18 | ); 19 | 20 | Docusaurus green and Facebook blue are my favorite colors. 21 | 22 | I can write **Markdown** alongside my _JSX_! 23 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/sidebars.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2017-present, Facebook, Inc. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | module.exports = { 9 | docs: { 10 | Docusaurus: ["doc1", "doc2", "doc3"], 11 | Features: ["mdx"] 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /packages/container/docusaurus-template/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/docusaurus-template/static/img/favicon.ico -------------------------------------------------------------------------------- /packages/container/ember-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [*.hbs] 17 | insert_final_newline = false 18 | 19 | [*.{diff,md}] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /packages/container/ember-template/.ember-cli: -------------------------------------------------------------------------------- 1 | { 2 | /** 3 | Ember CLI sends analytics information by default. The data is completely 4 | anonymous, but there are times when you might want to disable this behavior. 5 | 6 | Setting `disableAnalytics` to true will prevent any data from being sent. 7 | */ 8 | "disableAnalytics": false 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/ember-template/.eslintignore: -------------------------------------------------------------------------------- 1 | # unconventional js 2 | /blueprints/*/files/ 3 | /vendor/ 4 | 5 | # compiled output 6 | /dist/ 7 | /tmp/ 8 | 9 | # dependencies 10 | /bower_components/ 11 | /node_modules/ 12 | 13 | # misc 14 | /coverage/ 15 | !.* 16 | 17 | # ember-try 18 | /.node_modules.ember-try/ 19 | /bower.json.ember-try 20 | /package.json.ember-try 21 | -------------------------------------------------------------------------------- /packages/container/ember-template/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist/ 5 | /tmp/ 6 | 7 | # dependencies 8 | /bower_components/ 9 | /node_modules/ 10 | 11 | # misc 12 | /.env* 13 | /.pnp* 14 | /.sass-cache 15 | /connect.lock 16 | /coverage/ 17 | /libpeerconnection.log 18 | /npm-debug.log* 19 | /testem.log 20 | /yarn-error.log 21 | 22 | # ember-try 23 | /.node_modules.ember-try/ 24 | /bower.json.ember-try 25 | /package.json.ember-try 26 | -------------------------------------------------------------------------------- /packages/container/ember-template/.template-lintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | extends: 'recommended' 5 | }; 6 | -------------------------------------------------------------------------------- /packages/container/ember-template/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: node_js 3 | node_js: 4 | - "6" 5 | 6 | sudo: false 7 | dist: trusty 8 | 9 | addons: 10 | chrome: stable 11 | 12 | cache: 13 | directories: 14 | - $HOME/.npm 15 | 16 | env: 17 | global: 18 | # See https://git.io/vdao3 for details. 19 | - JOBS=1 20 | 21 | before_install: 22 | - npm config set spin false 23 | 24 | script: 25 | - npm run lint:hbs 26 | - npm run lint:js 27 | - npm test 28 | -------------------------------------------------------------------------------- /packages/container/ember-template/.watchmanconfig: -------------------------------------------------------------------------------- 1 | { 2 | "ignore_dirs": ["tmp", "dist"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/ember-template/app/app.js: -------------------------------------------------------------------------------- 1 | import Application from '@ember/application'; 2 | import Resolver from './resolver'; 3 | import loadInitializers from 'ember-load-initializers'; 4 | import config from './config/environment'; 5 | 6 | const App = Application.extend({ 7 | modulePrefix: config.modulePrefix, 8 | podModulePrefix: config.podModulePrefix, 9 | Resolver 10 | }); 11 | 12 | loadInitializers(App, config.modulePrefix); 13 | 14 | export default App; 15 | -------------------------------------------------------------------------------- /packages/container/ember-template/app/resolver.js: -------------------------------------------------------------------------------- 1 | import Resolver from 'ember-resolver'; 2 | 3 | export default Resolver; 4 | -------------------------------------------------------------------------------- /packages/container/ember-template/app/router.js: -------------------------------------------------------------------------------- 1 | import EmberRouter from '@ember/routing/router'; 2 | import config from './config/environment'; 3 | 4 | const Router = EmberRouter.extend({ 5 | location: config.locationType, 6 | rootURL: config.rootURL 7 | }); 8 | 9 | Router.map(function() { 10 | }); 11 | 12 | export default Router; 13 | -------------------------------------------------------------------------------- /packages/container/ember-template/app/templates/application.hbs: -------------------------------------------------------------------------------- 1 | {{!-- The following component displays Ember's default welcome message. --}} 2 | 3 | {{!-- Feel free to remove this! --}} 4 | 5 | {{outlet}} -------------------------------------------------------------------------------- /packages/container/ember-template/config/optional-features.json: -------------------------------------------------------------------------------- 1 | { 2 | "jquery-integration": true 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/ember-template/config/targets.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const browsers = [ 4 | 'last 1 Chrome versions', 5 | 'last 1 Firefox versions', 6 | 'last 1 Safari versions' 7 | ]; 8 | 9 | const isCI = !!process.env.CI; 10 | const isProduction = process.env.EMBER_ENV === 'production'; 11 | 12 | if (isCI || isProduction) { 13 | browsers.push('ie 11'); 14 | } 15 | 16 | module.exports = { 17 | browsers 18 | }; 19 | -------------------------------------------------------------------------------- /packages/container/ember-template/public/robots.txt: -------------------------------------------------------------------------------- 1 | # http://www.robotstxt.org 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /packages/container/ember-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "ember" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/ember-template/tests/test-helper.js: -------------------------------------------------------------------------------- 1 | import Application from '../app'; 2 | import config from '../config/environment'; 3 | import { setApplication } from '@ember/test-helpers'; 4 | import { start } from 'ember-qunit'; 5 | 6 | setApplication(Application.create(config.APP)); 7 | 8 | start(); 9 | -------------------------------------------------------------------------------- /packages/container/expo-template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/**/* 2 | .expo/* 3 | npm-debug.* 4 | *.jks 5 | *.p12 6 | *.key 7 | *.mobileprovision 8 | -------------------------------------------------------------------------------- /packages/container/expo-template/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/container/expo-template/assets/fonts/SpaceMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/expo-template/assets/fonts/SpaceMono-Regular.ttf -------------------------------------------------------------------------------- /packages/container/expo-template/assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/expo-template/assets/images/icon.png -------------------------------------------------------------------------------- /packages/container/expo-template/assets/images/robot-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/expo-template/assets/images/robot-dev.png -------------------------------------------------------------------------------- /packages/container/expo-template/assets/images/robot-prod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/expo-template/assets/images/robot-prod.png -------------------------------------------------------------------------------- /packages/container/expo-template/assets/images/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/expo-template/assets/images/splash.png -------------------------------------------------------------------------------- /packages/container/expo-template/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /packages/container/expo-template/components/StyledText.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text } from 'react-native'; 3 | 4 | export class MonoText extends React.Component { 5 | render() { 6 | return ; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/container/expo-template/components/TabBarIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Icon } from 'expo'; 3 | 4 | import Colors from '../constants/Colors'; 5 | 6 | export default class TabBarIcon extends React.Component { 7 | render() { 8 | return ( 9 | 15 | ); 16 | } 17 | } -------------------------------------------------------------------------------- /packages/container/expo-template/components/__tests__/StyledText-test.js: -------------------------------------------------------------------------------- 1 | import 'react-native'; 2 | import React from 'react'; 3 | import { MonoText } from '../StyledText'; 4 | import renderer from 'react-test-renderer'; 5 | 6 | it('renders correctly', () => { 7 | const tree = renderer.create(Snapshot test!).toJSON(); 8 | 9 | expect(tree).toMatchSnapshot(); 10 | }); 11 | -------------------------------------------------------------------------------- /packages/container/expo-template/constants/Colors.js: -------------------------------------------------------------------------------- 1 | const tintColor = '#2f95dc'; 2 | 3 | export default { 4 | tintColor, 5 | tabIconDefault: '#ccc', 6 | tabIconSelected: tintColor, 7 | tabBar: '#fefefe', 8 | errorBackground: 'red', 9 | errorText: '#fff', 10 | warningBackground: '#EAEB5E', 11 | warningText: '#666804', 12 | noticeBackground: tintColor, 13 | noticeText: '#fff', 14 | }; 15 | -------------------------------------------------------------------------------- /packages/container/expo-template/constants/Layout.js: -------------------------------------------------------------------------------- 1 | import { Dimensions } from 'react-native'; 2 | 3 | const width = Dimensions.get('window').width; 4 | const height = Dimensions.get('window').height; 5 | 6 | export default { 7 | window: { 8 | width, 9 | height, 10 | }, 11 | isSmallDevice: width < 375, 12 | }; 13 | -------------------------------------------------------------------------------- /packages/container/expo-template/navigation/AppNavigator.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { createAppContainer, createSwitchNavigator } from 'react-navigation'; 3 | 4 | import MainTabNavigator from './MainTabNavigator'; 5 | 6 | export default createAppContainer(createSwitchNavigator({ 7 | // You could add another route here for authentication. 8 | // Read more at https://reactnavigation.org/docs/en/auth-flow.html 9 | Main: MainTabNavigator, 10 | })); -------------------------------------------------------------------------------- /packages/container/expo-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/expo-template/screens/SettingsScreen.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { ExpoConfigView } from '@expo/samples'; 3 | 4 | export default class SettingsScreen extends React.Component { 5 | static navigationOptions = { 6 | title: 'app.json', 7 | }; 8 | 9 | render() { 10 | /* Go ahead and delete ExpoConfigView and replace it with your 11 | * content, we just wanted to give you a quick view of your config */ 12 | return ; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "lf", 3 | "semi": false, 4 | "singleQuote": false, 5 | "tabWidth": 2, 6 | "trailingComma": "es5" 7 | } 8 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/gatsby-browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's Browser APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/browser-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/gatsby-node.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's Node APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/node-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/gatsby-ssr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/ssr-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "gatsby" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/src/images/gatsby-astronaut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/gatsby-template/src/images/gatsby-astronaut.png -------------------------------------------------------------------------------- /packages/container/gatsby-template/src/images/gatsby-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/gatsby-template/src/images/gatsby-icon.png -------------------------------------------------------------------------------- /packages/container/gatsby-template/src/pages/404.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | 3 | import Layout from "../components/layout" 4 | import SEO from "../components/seo" 5 | 6 | const NotFoundPage = () => ( 7 | 8 | 9 |

NOT FOUND

10 |

You just hit a route that doesn't exist... the sadness.

11 |
12 | ) 13 | 14 | export default NotFoundPage 15 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/src/pages/index.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { Link } from "gatsby" 3 | 4 | import Layout from "../components/layout" 5 | import Image from "../components/image" 6 | import SEO from "../components/seo" 7 | 8 | const IndexPage = () => ( 9 | 10 | 11 |

Hi people

12 |

Welcome to your new Gatsby site.

13 |

Now go build something great.

14 |
15 | 16 |
17 | Go to page 2 18 |
19 | ) 20 | 21 | export default IndexPage 22 | -------------------------------------------------------------------------------- /packages/container/gatsby-template/src/pages/page-2.js: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { Link } from "gatsby" 3 | 4 | import Layout from "../components/layout" 5 | import SEO from "../components/seo" 6 | 7 | const SecondPage = () => ( 8 | 9 | 10 |

Hi from the second page

11 |

Welcome to page 2

12 | Go back to the homepage 13 |
14 | ) 15 | 16 | export default SecondPage 17 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [*.hbs] 17 | insert_final_newline = false 18 | 19 | [*.{diff,md}] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/.ember-cli: -------------------------------------------------------------------------------- 1 | { 2 | "blueprint": "@glimmer/blueprint" 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | tmp/* 3 | dist 4 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/.watchmanconfig: -------------------------------------------------------------------------------- 1 | { 2 | "ignore_dirs": ["tmp", "dist"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/config/environment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function(environment) { 4 | let ENV = { 5 | modulePrefix: '@codesandbox/glimmer-template', 6 | environment 7 | }; 8 | 9 | return ENV; 10 | }; 11 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/config/module-map.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is just a placeholder file to keep TypeScript aware editors happy. At build time, 3 | * it will be replaced with a complete map of resolvable module paths => rolled up contents. 4 | */ 5 | 6 | export interface Dict { 7 | [index: string]: T; 8 | } 9 | 10 | declare let map: Dict; 11 | export default map; 12 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/config/resolver-configuration.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is just a placeholder file to keep TypeScript aware editors happy. At build time, 3 | * it will be replaced with a resolver configuration composed from your application's 4 | * `config/environment.js` (and supplemented with default settings as possible). 5 | */ 6 | 7 | import { ResolverConfiguration } from '@glimmer/resolver'; 8 | declare var _default: ResolverConfiguration; 9 | export default _default; 10 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/config/targets.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let browsers = [ 4 | '> 5%', 5 | 'last 2 Edge versions', 6 | 'last 2 Chrome versions', 7 | 'last 2 Firefox versions', 8 | 'last 2 Safari versions', 9 | ]; 10 | 11 | if (process.env.EMBER_ENV === 'test') { 12 | browsers = [ 13 | 'last 1 Chrome versions', 14 | 'last 1 Firefox versions' 15 | ]; 16 | } 17 | 18 | module.exports = { browsers }; 19 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/ember-cli-build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const GlimmerApp = require('@glimmer/application-pipeline').GlimmerApp; 4 | 5 | module.exports = function(defaults) { 6 | let app = new GlimmerApp(defaults, { 7 | // Add options here 8 | }); 9 | 10 | return app.toTree(); 11 | }; 12 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/public/robots.txt: -------------------------------------------------------------------------------- 1 | # http://www.robotstxt.org 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "ember" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/index.ts: -------------------------------------------------------------------------------- 1 | import { ComponentManager, setPropertyDidChange } from '@glimmer/component'; 2 | import App from './main'; 3 | 4 | const app = new App(); 5 | const containerElement = document.getElementById('app'); 6 | 7 | setPropertyDidChange(() => { 8 | app.scheduleRerender(); 9 | }); 10 | 11 | app.registerInitializer({ 12 | initialize(registry) { 13 | registry.register(`component-manager:/${app.rootName}/component-managers/main`, ComponentManager); 14 | } 15 | }); 16 | 17 | app.renderComponent('@codesandbox/glimmerTemplate', containerElement, null); 18 | 19 | app.boot(); 20 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/ui/components/@codesandbox/glimmerTemplate/component-test.ts: -------------------------------------------------------------------------------- 1 | import hbs from '@glimmer/inline-precompile'; 2 | import { setupRenderingTest } from '@glimmer/test-helpers'; 3 | 4 | const { module, test } = QUnit; 5 | 6 | module('Component: @codesandbox/glimmerTemplate', function(hooks) { 7 | setupRenderingTest(hooks); 8 | 9 | test('it renders', async function(assert) { 10 | await this.render(hbs`<@codesandbox/glimmerTemplate />`); 11 | assert.equal(this.containerElement.textContent, 'Welcome to Glimmer!\n'); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/ui/components/@codesandbox/glimmerTemplate/component.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class @codesandbox/glimmerTemplate extends Component { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/ui/components/@codesandbox/glimmerTemplate/template.hbs: -------------------------------------------------------------------------------- 1 |

Welcome to Glimmer!

2 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/ui/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Hello Glimmer 7 | 8 | 9 | 10 | {{content-for "head"}} 11 | 12 | 13 | 14 | {{content-for "head-footer"}} 15 | 16 | 17 | {{content-for "body"}} 18 | 19 |
20 | 21 | 22 | {{content-for "body-footer"}} 23 | 24 | 25 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/ui/styles/app.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: #444; 3 | } 4 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/src/utils/test-helpers/test-helper.ts: -------------------------------------------------------------------------------- 1 | import { setApp, start } from '@glimmer/test-helpers'; 2 | import App from '../../main'; 3 | 4 | QUnit.config.autostart = false; 5 | setApp(App); 6 | import '../../../tests'; 7 | start(); 8 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/testem.json: -------------------------------------------------------------------------------- 1 | { 2 | "test_page": "tests/index.html", 3 | "disable_watching": true, 4 | "launch_in_ci": ["Firefox", "Chrome"] 5 | } 6 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "es2015", 5 | "inlineSourceMap": true, 6 | "inlineSources": true, 7 | "moduleResolution": "node", 8 | "experimentalDecorators": true, 9 | "types": [ 10 | "qunit" 11 | ] 12 | }, 13 | "exclude": [ 14 | "node_modules", 15 | "tmp", 16 | "dist" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/container/glimmer-template/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "jsRules": {}, 7 | "rules": { 8 | "quotemark": [true, "single"], 9 | "trailing-comma": false, 10 | "only-arrow-functions": false, 11 | "prefer-const": false 12 | }, 13 | "rulesDirectory": [] 14 | } 15 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .cache 3 | .DS_Store 4 | src/.temp 5 | node_modules 6 | dist 7 | .env 8 | .env.* 9 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/README.md: -------------------------------------------------------------------------------- 1 | # Default starter for Gridsome 2 | 3 | This is the project you get when you run `gridsome create new-project`. 4 | 5 | ### 1. Install Gridsome CLI tool if you don't have 6 | 7 | `npm install --global @gridsome/cli` 8 | 9 | ### 2. Create a Gridsome project 10 | 11 | 1. `gridsome create my-gridsome-site` to install default starter 12 | 2. `cd my-gridsome-site` to open the folder 13 | 3. `gridsome develop` to start a local dev server at `http://localhost:8080` 14 | 4. Happy coding 🎉🙌 15 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/gridsome.config.js: -------------------------------------------------------------------------------- 1 | // This is where project configuration and plugin options are located. 2 | // Learn more: https://gridsome.org/docs/config 3 | 4 | // Changes here require a server restart. 5 | // To restart press CTRL + C in terminal and run `gridsome develop` 6 | 7 | module.exports = { 8 | siteName: 'Gridsome', 9 | plugins: [] 10 | } 11 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/gridsome.server.js: -------------------------------------------------------------------------------- 1 | // Server API makes it possible to hook into various parts of Gridsome 2 | // on server-side and add custom data to the GraphQL data layer. 3 | // Learn more: https://gridsome.org/docs/server-api 4 | 5 | // Changes here require a server restart. 6 | // To restart press CTRL + C in terminal and run `gridsome develop` 7 | 8 | module.exports = function (api) { 9 | api.loadSource(({ addContentType }) => { 10 | // Use the Data Store API here: https://gridsome.org/docs/data-store-api 11 | }) 12 | 13 | api.createPages(({ createPage }) => { 14 | // Use the Pages API here: https://gridsome.org/docs/pages-api 15 | }) 16 | } 17 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gridsome-template", 3 | "private": true, 4 | "scripts": { 5 | "build": "gridsome build", 6 | "develop": "gridsome develop", 7 | "explore": "gridsome explore" 8 | }, 9 | "dependencies": { 10 | "gridsome": "^0.6.0" 11 | } 12 | } -------------------------------------------------------------------------------- /packages/container/gridsome-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "gridsome", 6 | "container": { 7 | "port": 8080 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/components/README.md: -------------------------------------------------------------------------------- 1 | Add components that will be imported to Pages and Layouts to this folder. 2 | Learn more about components here: https://gridsome.org/docs/components 3 | 4 | You can delete this file. -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/gridsome-template/src/favicon.png -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/layouts/README.md: -------------------------------------------------------------------------------- 1 | Layout components are used to wrap pages and templates. Layouts should contain components like headers, footers or sidebars that will be used across the site. 2 | 3 | Learn more about Layouts: https://gridsome.org/docs/layouts 4 | 5 | You can delete this file. -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/main.js: -------------------------------------------------------------------------------- 1 | // This is the main.js file. Import global CSS and scripts here. 2 | // The Client API can be used here. Learn more: gridsome.org/docs/client-api 3 | 4 | import DefaultLayout from '~/layouts/Default.vue' 5 | 6 | export default function (Vue, { router, head, isClient }) { 7 | // Set default layout as a global component 8 | Vue.component('Layout', DefaultLayout) 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/pages/About.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 15 | -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/pages/README.md: -------------------------------------------------------------------------------- 1 | Pages are usually used for normal pages or for listing items from a GraphQL collection. 2 | Add .vue files here to create pages. For example **About.vue** will be **site.com/about**. 3 | Learn more about pages: https://gridsome.org/docs/pages 4 | 5 | You can delete this file. -------------------------------------------------------------------------------- /packages/container/gridsome-template/src/templates/README.md: -------------------------------------------------------------------------------- 1 | Templates for **GraphQL collections** should be added here. 2 | To create a template for a collection called `WordPressPost` 3 | create a file named `WordPressPost.vue` in this folder. 4 | 5 | Learn more: https://gridsome.org/docs/templates 6 | 7 | You can delete this file. -------------------------------------------------------------------------------- /packages/container/gridsome-template/static/README.md: -------------------------------------------------------------------------------- 1 | Add static files here. Files in this directory will be copied directly to `dist` folder during build. For example, /static/robots.txt will be located at https://yoursite.com/robots.txt. 2 | 3 | This file should be deleted. -------------------------------------------------------------------------------- /packages/container/marko-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | # Unix-style newlines with a newline ending every file 5 | [*] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | indent_size = 2 9 | 10 | # Matches multiple files with brace expansion notation 11 | # Set default charset 12 | [*.{js,json,yml}] 13 | charset = utf-8 14 | indent_style = space 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /packages/container/marko-template/.eslintignore: -------------------------------------------------------------------------------- 1 | # Generated Files 2 | *.marko.js 3 | -------------------------------------------------------------------------------- /packages/container/marko-template/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["eslint:recommended", "prettier"], 3 | "env": { 4 | "browser": true, 5 | "node": true, 6 | "es6": true 7 | }, 8 | "rules": { 9 | "no-console": "off" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/container/marko-template/.gitignore: -------------------------------------------------------------------------------- 1 | # OS 2 | *.swp 3 | .DS_Store 4 | 5 | # Editor Configs 6 | .idea 7 | .vscode 8 | *.sublime* 9 | 10 | # Generated Files 11 | dist 12 | .cache 13 | coverage 14 | .nyc-output 15 | *.marko.js 16 | .marko-cli 17 | .marko-devtools 18 | 19 | # NPM 20 | node_modules 21 | -------------------------------------------------------------------------------- /packages/container/marko-template/.prettierignore: -------------------------------------------------------------------------------- 1 | # Generated Files 2 | *.marko.js 3 | -------------------------------------------------------------------------------- /packages/container/marko-template/project.js: -------------------------------------------------------------------------------- 1 | module.exports = require("marko-starter").projectConfig({ 2 | name: "marko-starter-demo" // Optional, but added here for demo purposes 3 | }); 4 | -------------------------------------------------------------------------------- /packages/container/marko-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/marko-template/server.js: -------------------------------------------------------------------------------- 1 | require("./project").server({ 2 | httpPort: process.env.PORT || 8080 // Optional, but added here for demo purposes 3 | }); 4 | -------------------------------------------------------------------------------- /packages/container/marko-template/src/components/click-count/index.marko: -------------------------------------------------------------------------------- 1 | class { 2 | onCreate() { 3 | this.state = { count: 0 }; 4 | } 5 | increment() { 6 | this.state.count++; 7 | } 8 | } 9 | 10 | style { 11 | .count { 12 | color: #70b; 13 | font-size: 3em; 14 | } 15 | .example-button { 16 | font-size: 1em; 17 | padding: 0.5em; 18 | } 19 | } 20 | 21 | ${state.count} 22 | Click me! 23 | -------------------------------------------------------------------------------- /packages/container/marko-template/src/components/site-layout/index.marko: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | <${input.title}/> 8 | 9 | 10 | 11 |
12 | 13 |

14 | <${input.title}/> 15 |

16 | 17 | home 18 | routes 19 | layouts 20 | 21 |
22 | 23 | <${input.content}/> 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /packages/container/marko-template/src/components/site-layout/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/marko-template/src/components/site-layout/logo.png -------------------------------------------------------------------------------- /packages/container/navi-template/.gitignore: -------------------------------------------------------------------------------- 1 | .esm-cache 2 | .vscode 3 | node_modules 4 | build 5 | *.log -------------------------------------------------------------------------------- /packages/container/navi-template/navi.config.js: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | 3 | export const renderPageToString = require.resolve("./src/renderPageToString"); 4 | 5 | /** 6 | * Get the file to write each URL to during the build 7 | */ 8 | export function getPagePathname({ url }) { 9 | if (url.pathname === "/rss") { 10 | return "rss.xml"; 11 | } 12 | if (url.pathname === "/") { 13 | return "index.html"; 14 | } 15 | return path.join(url.pathname.slice(1), "index.html"); 16 | } 17 | -------------------------------------------------------------------------------- /packages/container/navi-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/navi-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/container/navi-template/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /packages/container/navi-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node", 6 | "container": { 7 | "port": 3000 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/ArticleMeta.module.css: -------------------------------------------------------------------------------- 1 | .tags, 2 | .tags li { 3 | display: inline; 4 | list-style: none; 5 | padding: 0; 6 | margin: 0; 7 | } 8 | 9 | .tags li:not(:first-child)::before { 10 | content: ", "; 11 | } 12 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/ArticleSummary.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Link } from "react-navi"; 3 | import ArticleMeta from "./ArticleMeta"; 4 | import styles from "./ArticleSummary.module.css"; 5 | 6 | function ArticleSummary({ blogRoot, route }) { 7 | return ( 8 |
9 |

10 | {route.title} 11 |

12 | 13 |

{route.data.spoiler}

14 |
15 | ); 16 | } 17 | 18 | export default ArticleSummary; 19 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/ArticleSummary.module.css: -------------------------------------------------------------------------------- 1 | .ArticleSummary h2 { 2 | font-weight: 900; 3 | margin-bottom: 0; 4 | margin-top: 0; 5 | } 6 | 7 | .ArticleSummary a { 8 | text-decoration: none; 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/Bio.module.css: -------------------------------------------------------------------------------- 1 | .Bio { 2 | display: flex; 3 | margin-bottom: 4.375rem; 4 | } 5 | 6 | .Bio img { 7 | border-radius: 50%; 8 | flex-shrink: 0; 9 | height: 3.5rem; 10 | margin-bottom: 0; 11 | margin-right: 0.875rem; 12 | width: 3.5rem; 13 | } 14 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/BlogIndexPage.module.css: -------------------------------------------------------------------------------- 1 | .title { 2 | font-family: Montserrat, sans-serif; 3 | font-size: 2.5rem; 4 | font-weight: 900; 5 | line-height: 3.5rem; 6 | margin-top: 0; 7 | margin-bottom: 2.625rem; 8 | text-rendering: optimizeLegibility; 9 | } 10 | .title a { 11 | color: black; 12 | text-decoration: none; 13 | } 14 | 15 | .articlesList, 16 | .articlesList > li { 17 | list-style: none; 18 | padding: 0; 19 | margin: 0 0 2.625rem; 20 | } 21 | 22 | .footer { 23 | margin-top: 7rem; 24 | margin-bottom: 0.5rem; 25 | } 26 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/BlogLayout.module.css: -------------------------------------------------------------------------------- 1 | .container { 2 | margin: 0 auto; 3 | max-width: 42rem; 4 | padding: 2.625rem 1.3125rem; 5 | } 6 | 7 | .title { 8 | font-family: Montserrat, sans-serif; 9 | font-size: 1.44rem; 10 | font-weight: 900; 11 | line-height: 1.1; 12 | margin-top: 0; 13 | margin-bottom: 0; 14 | text-rendering: optimizeLegibility; 15 | } 16 | .title > a { 17 | color: var(--primary-color-light); 18 | text-decoration: none; 19 | } 20 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/LoadingIndicator.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styles from "./LoadingIndicator.module.css"; 3 | 4 | function LoadingIndicator({ active, className, style }) { 5 | return ( 6 |
14 | ); 15 | } 16 | 17 | export default LoadingIndicator; 18 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/Pagination.module.css: -------------------------------------------------------------------------------- 1 | .Pagination { 2 | display: block; 3 | margin: 4.375rem 0 7rem; 4 | } 5 | 6 | .Pagination .previous { 7 | margin-right: 0.5rem; 8 | } 9 | .Pagination .next { 10 | margin-left: 0.5rem; 11 | } 12 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/TagIndexPage.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Link } from "react-navi"; 3 | import styles from "./TagIndexPage.module.css"; 4 | 5 | function TagIndexPage(props) { 6 | return ( 7 |
8 |

Tags

9 |
    10 | {props.tags.map(tag => ( 11 |
  • 12 | 13 | {tag.name} ({tag.count}) 14 | 15 |
  • 16 | ))} 17 |
18 |
19 | ); 20 | } 21 | 22 | export default TagIndexPage; 23 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/TagIndexPage.module.css: -------------------------------------------------------------------------------- 1 | .TagIndexPage > h1 { 2 | font-family: Montserrat, sans-serif; 3 | font-size: 2.5rem; 4 | font-weight: 900; 5 | line-height: 1.1; 6 | margin-top: 1.7rem; 7 | margin-bottom: 2.4rem; 8 | text-rendering: optimizeLegibility; 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/TagPage.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ArticleSummary from "./ArticleSummary"; 3 | import styles from "./TagPage.module.css"; 4 | 5 | function TagPage({ blogRoot, name, routes }) { 6 | return ( 7 |
8 |

{name} posts

9 |
    10 | {routes.map(route => ( 11 |
  • 12 | 13 |
  • 14 | ))} 15 |
16 |
17 | ); 18 | } 19 | 20 | export default TagPage; 21 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/components/TagPage.module.css: -------------------------------------------------------------------------------- 1 | .TagPage > h1 { 2 | font-family: Montserrat, sans-serif; 3 | font-size: 2.5rem; 4 | font-weight: 900; 5 | line-height: 1.1; 6 | margin-top: 1.7rem; 7 | margin-bottom: 2.4rem; 8 | text-rendering: optimizeLegibility; 9 | } 10 | 11 | .TagPage > ul { 12 | list-style: none; 13 | margin: 0; 14 | padding: 0; 15 | } 16 | 17 | .TagPage > ul > li { 18 | margin: 0; 19 | padding: 0; 20 | } 21 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/index.test.js: -------------------------------------------------------------------------------- 1 | import * as Navi from "navi"; 2 | import React from "react"; 3 | import ReactDOM from "react-dom"; 4 | import { NaviProvider, View } from "react-navi"; 5 | import pages from "./pages"; 6 | 7 | it("renders without crashing", () => { 8 | const div = document.createElement("div"); 9 | const navigation = Navi.createBrowserNavigation({ pages }); 10 | 11 | ReactDOM.render( 12 | 13 | 14 | , 15 | div 16 | ); 17 | ReactDOM.unmountComponentAtNode(div); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/renderPageToString.js: -------------------------------------------------------------------------------- 1 | import renderReactPageToString from "react-navi/create-react-app"; 2 | import renderRSSFeedToString from "./renderRSSFeedToString"; 3 | 4 | /** 5 | * navi-scripts will call this function for each of your site's pages 6 | * to produce its statically rendered HTML. 7 | */ 8 | async function renderPageToString(props) { 9 | if (props.url.pathname === "/rss") { 10 | return await renderRSSFeedToString(props); 11 | } 12 | 13 | return renderReactPageToString(props); 14 | } 15 | 16 | export default renderPageToString; 17 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/routes/about/document.mdx: -------------------------------------------------------------------------------- 1 | import styles from "./document.module.css"; 2 | 3 |
4 | 5 | # About Me 6 | 7 | I made a blog! 8 | 9 |
10 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/routes/about/document.module.css: -------------------------------------------------------------------------------- 1 | .Document h1 { 2 | font-family: Montserrat, sans-serif; 3 | font-size: 2.5rem; 4 | font-weight: 900; 5 | line-height: 1.1; 6 | margin-top: 1.7rem; 7 | margin-bottom: 2.4rem; 8 | text-rendering: optimizeLegibility; 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/routes/about/index.js: -------------------------------------------------------------------------------- 1 | import * as Navi from "navi"; 2 | 3 | export default Navi.route({ 4 | title: "About", 5 | getView: () => import("./document.mdx") 6 | }); 7 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/routes/posts/2019-01-05-welcome/post.js: -------------------------------------------------------------------------------- 1 | export default { 2 | title: `Congratulations on Your New Blog!`, 3 | tags: ["react", "navi"], 4 | spoiler: "Learn how to add new posts and tweak the theme to your liking.", 5 | getContent: () => import("./document.mdx") 6 | }; 7 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/siteMetadata.js: -------------------------------------------------------------------------------- 1 | export default { 2 | // The blog's title as it appears in the layout header, and in the document 3 | // tag. 4 | title: "create-react-blog", 5 | 6 | author: "James K Nelson", 7 | description: 8 | "A clone of Dan Abramov's overreacted.io using create-react-app-mdx and Navi", 9 | 10 | // The number of posts to a page on the site index. 11 | indexPageSize: 10 12 | }; 13 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/utils/formats.js: -------------------------------------------------------------------------------- 1 | export let months = [ 2 | "January", 3 | "February", 4 | "March", 5 | "April", 6 | "May", 7 | "June", 8 | "July", 9 | "August", 10 | "September", 11 | "October", 12 | "November", 13 | "December" 14 | ]; 15 | 16 | export function formatDate(dateString) { 17 | let date = new Date(dateString); 18 | let monthName = months[date.getMonth()]; 19 | let dayOfMonth = date.getDate(); 20 | let fourDigitYear = date.getFullYear(); 21 | 22 | return `${monthName} ${dayOfMonth}, ${fourDigitYear}`; 23 | } 24 | -------------------------------------------------------------------------------- /packages/container/navi-template/src/utils/getGravatarURL.js: -------------------------------------------------------------------------------- 1 | import md5 from "blueimp-md5"; 2 | 3 | export function getGravatarURL({ email, size, defaultURL = "identicon" }) { 4 | let hash = md5(email.toLowerCase().trim()); 5 | return `https://www.gravatar.com/avatar/${hash}.jpg?s=${size}&d=${encodeURIComponent( 6 | defaultURL 7 | )}`; 8 | } 9 | -------------------------------------------------------------------------------- /packages/container/nest-template/.gitignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | /dist 3 | /node_modules 4 | 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # OS 14 | .DS_Store 15 | 16 | # Tests 17 | /coverage 18 | /.nyc_output 19 | 20 | # IDEs and editors 21 | /.idea 22 | .project 23 | .classpath 24 | .c9/ 25 | *.launch 26 | .settings/ 27 | *.sublime-workspace 28 | 29 | # IDE - VSCode 30 | .vscode/* 31 | !.vscode/settings.json 32 | !.vscode/tasks.json 33 | !.vscode/launch.json 34 | !.vscode/extensions.json -------------------------------------------------------------------------------- /packages/container/nest-template/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all" 4 | } -------------------------------------------------------------------------------- /packages/container/nest-template/nest-cli.json: -------------------------------------------------------------------------------- 1 | { 2 | "language": "ts", 3 | "collection": "@nestjs/schematics", 4 | "sourceRoot": "src" 5 | } 6 | -------------------------------------------------------------------------------- /packages/container/nest-template/nodemon-debug.json: -------------------------------------------------------------------------------- 1 | { 2 | "watch": ["src"], 3 | "ext": "ts", 4 | "ignore": ["src/**/*.spec.ts"], 5 | "exec": "node --inspect-brk -r ts-node/register -r tsconfig-paths/register src/main.ts" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/nest-template/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "watch": ["dist"], 3 | "ext": "js", 4 | "exec": "node dist/main" 5 | } 6 | -------------------------------------------------------------------------------- /packages/container/nest-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "nest" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/nest-template/src/app.controller.ts: -------------------------------------------------------------------------------- 1 | import { Controller, Get } from '@nestjs/common'; 2 | import { AppService } from './app.service'; 3 | 4 | @Controller() 5 | export class AppController { 6 | constructor(private readonly appService: AppService) {} 7 | 8 | @Get() 9 | getHello(): string { 10 | return this.appService.getHello(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/container/nest-template/src/app.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { AppController } from './app.controller'; 3 | import { AppService } from './app.service'; 4 | 5 | @Module({ 6 | imports: [], 7 | controllers: [AppController], 8 | providers: [AppService], 9 | }) 10 | export class AppModule {} 11 | -------------------------------------------------------------------------------- /packages/container/nest-template/src/app.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@nestjs/common'; 2 | 3 | @Injectable() 4 | export class AppService { 5 | getHello(): string { 6 | return 'Hello World!'; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/container/nest-template/src/main.ts: -------------------------------------------------------------------------------- 1 | import { NestFactory } from '@nestjs/core'; 2 | import { AppModule } from './app.module'; 3 | 4 | async function bootstrap() { 5 | const app = await NestFactory.create(AppModule); 6 | await app.listen(3000); 7 | } 8 | bootstrap(); 9 | -------------------------------------------------------------------------------- /packages/container/nest-template/test/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { Test, TestingModule } from '@nestjs/testing'; 2 | import * as request from 'supertest'; 3 | import { AppModule } from './../src/app.module'; 4 | 5 | describe('AppController (e2e)', () => { 6 | let app; 7 | 8 | beforeEach(async () => { 9 | const moduleFixture: TestingModule = await Test.createTestingModule({ 10 | imports: [AppModule], 11 | }).compile(); 12 | 13 | app = moduleFixture.createNestApplication(); 14 | await app.init(); 15 | }); 16 | 17 | it('/ (GET)', () => { 18 | return request(app.getHttpServer()) 19 | .get('/') 20 | .expect(200) 21 | .expect('Hello World!'); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /packages/container/nest-template/test/jest-e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "moduleFileExtensions": ["js", "json", "ts"], 3 | "rootDir": ".", 4 | "testEnvironment": "node", 5 | "testRegex": ".e2e-spec.ts$", 6 | "transform": { 7 | "^.+\\.(t|j)s$": "ts-jest" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/nest-template/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] 4 | } 5 | -------------------------------------------------------------------------------- /packages/container/nest-template/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "declaration": true, 5 | "removeComments": true, 6 | "emitDecoratorMetadata": true, 7 | "experimentalDecorators": true, 8 | "target": "es6", 9 | "sourceMap": true, 10 | "outDir": "./dist", 11 | "baseUrl": "./", 12 | "incremental": true 13 | }, 14 | "exclude": ["node_modules"] 15 | } 16 | -------------------------------------------------------------------------------- /packages/container/nest-template/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": ["tslint:recommended"], 4 | "jsRules": { 5 | "no-unused-expression": true 6 | }, 7 | "rules": { 8 | "quotemark": [true, "single"], 9 | "member-access": [false], 10 | "ordered-imports": [false], 11 | "max-line-length": [true, 150], 12 | "member-ordering": [false], 13 | "interface-name": [false], 14 | "arrow-parens": false, 15 | "object-literal-sort-keys": false 16 | }, 17 | "rulesDirectory": [] 18 | } 19 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "test": { 4 | "presets": [ 5 | [ 6 | "@babel/preset-env", 7 | { 8 | "targets": { 9 | "node": "current" 10 | } 11 | } 12 | ] 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true 6 | }, 7 | parserOptions: { 8 | parser: 'babel-eslint' 9 | }, 10 | extends: [ 11 | '@nuxtjs', 12 | 'plugin:nuxt/recommended', 13 | 'plugin:prettier/recommended', 14 | 'prettier', 15 | 'prettier/vue' 16 | ], 17 | plugins: [ 18 | 'prettier' 19 | ], 20 | // add your custom rules here 21 | rules: { 22 | 'nuxt/no-cjs-in-config': 'off' 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/README.md: -------------------------------------------------------------------------------- 1 | # nuxt-template 2 | 3 | > My superior Nuxt.js project 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | $ yarn install 10 | 11 | # serve with hot reload at localhost:3000 12 | $ yarn run dev 13 | 14 | # build for production and launch server 15 | $ yarn run build 16 | $ yarn start 17 | 18 | # generate static project 19 | $ yarn run generate 20 | ``` 21 | 22 | For detailed explanation on how things work, checkout [Nuxt.js docs](https://nuxtjs.org). 23 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/assets/README.md: -------------------------------------------------------------------------------- 1 | # ASSETS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked). 8 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/components/README.md: -------------------------------------------------------------------------------- 1 | # COMPONENTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | The components directory contains your Vue.js Components. 6 | 7 | _Nuxt.js doesn't supercharge these components._ 8 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleNameMapper: { 3 | '^@/(.*)$': '<rootDir>/$1', 4 | '^~/(.*)$': '<rootDir>/$1', 5 | '^vue$': 'vue/dist/vue.common.js' 6 | }, 7 | moduleFileExtensions: ['js', 'vue', 'json'], 8 | transform: { 9 | '^.+\\.js$': 'babel-jest', 10 | '.*\\.(vue)$': 'vue-jest' 11 | }, 12 | collectCoverage: true, 13 | collectCoverageFrom: [ 14 | '<rootDir>/components/**/*.vue', 15 | '<rootDir>/pages/**/*.vue' 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/layouts/README.md: -------------------------------------------------------------------------------- 1 | # LAYOUTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your Application Layouts. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts). 8 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/middleware/README.md: -------------------------------------------------------------------------------- 1 | # MIDDLEWARE 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your application middleware. 6 | Middleware let you define custom functions that can be run before rendering either a page or a group of pages. 7 | 8 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware). 9 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/pages/README.md: -------------------------------------------------------------------------------- 1 | # PAGES 2 | 3 | This directory contains your Application Views and Routes. 4 | The framework reads all the `*.vue` files inside this directory and creates the router of your application. 5 | 6 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing). 7 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/plugins/README.md: -------------------------------------------------------------------------------- 1 | # PLUGINS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains Javascript plugins that you want to run before mounting the root Vue.js application. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/plugins). 8 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "nuxt" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/static/README.md: -------------------------------------------------------------------------------- 1 | # STATIC 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your static files. 6 | Each file inside this directory is mapped to `/`. 7 | Thus you'd want to delete this README.md before deploying to production. 8 | 9 | Example: `/static/robots.txt` is mapped as `/robots.txt`. 10 | 11 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static). 12 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/nuxt-template/static/favicon.ico -------------------------------------------------------------------------------- /packages/container/nuxt-template/store/README.md: -------------------------------------------------------------------------------- 1 | # STORE 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your Vuex Store files. 6 | Vuex Store option is implemented in the Nuxt.js framework. 7 | 8 | Creating a file in this directory automatically activates the option in the framework. 9 | 10 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/vuex-store). 11 | -------------------------------------------------------------------------------- /packages/container/nuxt-template/test/Logo.spec.js: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import Logo from '@/components/Logo.vue' 3 | 4 | describe('Logo', () => { 5 | test('is a Vue instance', () => { 6 | const wrapper = mount(Logo) 7 | expect(wrapper.isVueInstance()).toBeTruthy() 8 | }) 9 | }) 10 | -------------------------------------------------------------------------------- /packages/container/quasar-template/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /packages/container/quasar-template/.eslintignore: -------------------------------------------------------------------------------- 1 | /dist 2 | -------------------------------------------------------------------------------- /packages/container/quasar-template/.gitignore: -------------------------------------------------------------------------------- 1 | .quasar 2 | .DS_Store 3 | .thumbs.db 4 | node_modules 5 | /dist 6 | /src-cordova/node_modules 7 | /src-cordova/platforms 8 | /src-cordova/plugins 9 | /src-cordova/www 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | -------------------------------------------------------------------------------- /packages/container/quasar-template/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: [ 5 | // to edit target browsers: use "browserslist" field in package.json 6 | require("autoprefixer") 7 | ] 8 | }; 9 | -------------------------------------------------------------------------------- /packages/container/quasar-template/README.md: -------------------------------------------------------------------------------- 1 | # Quasar App 2 | 3 | > WIP 4 | -------------------------------------------------------------------------------- /packages/container/quasar-template/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@quasar/babel-preset-app"] 3 | }; 4 | -------------------------------------------------------------------------------- /packages/container/quasar-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node", 6 | "container": { 7 | "port": 8080 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/App.vue: -------------------------------------------------------------------------------- 1 | <template> 2 | <div id="q-app"> 3 | <router-view /> 4 | </div> 5 | </template> 6 | 7 | <script> 8 | export default { 9 | name: "App" 10 | }; 11 | </script> 12 | 13 | <style></style> 14 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/boot/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/boot/.gitkeep -------------------------------------------------------------------------------- /packages/container/quasar-template/src/boot/axios.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | 3 | export default async ({ Vue }) => { 4 | Vue.prototype.$axios = axios; 5 | }; 6 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/boot/i18n.js: -------------------------------------------------------------------------------- 1 | import VueI18n from "vue-i18n"; 2 | import messages from "src/i18n"; 3 | 4 | export default async ({ app, Vue }) => { 5 | Vue.use(VueI18n); 6 | 7 | // Set i18n instance on app 8 | app.i18n = new VueI18n({ 9 | locale: "en-us", 10 | fallbackLocale: "en-us", 11 | messages 12 | }); 13 | }; 14 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/components/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/components/.gitkeep -------------------------------------------------------------------------------- /packages/container/quasar-template/src/css/app.styl: -------------------------------------------------------------------------------- 1 | // app global css 2 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/css/quasar.variables.styl: -------------------------------------------------------------------------------- 1 | // Quasar Stylus Variables 2 | // -------------------------------------------------- 3 | // To customize the look and feel of this app, you can override 4 | // the Stylus variables found in Quasar's source Stylus files. 5 | 6 | // Check documentation for full list of Quasar variables 7 | 8 | // It's highly recommended to change the default colors 9 | // to match your app's branding. 10 | // Tip: Use the "Theme Builder" on Quasar's documentation website. 11 | 12 | $primary = #027BE3 13 | $secondary = #26A69A 14 | $accent = #9C27B0 15 | 16 | $positive = #21BA45 17 | $negative = #C10015 18 | $info = #31CCEC 19 | $warning = #F2C037 20 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/i18n/en-us/index.js: -------------------------------------------------------------------------------- 1 | // This is just an example, 2 | // so you can safely delete all default props below 3 | 4 | export default { 5 | failed: "Action failed", 6 | success: "Action was successful" 7 | }; 8 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import enUS from "./en-us"; 2 | 3 | export default { 4 | "en-us": enUS 5 | }; 6 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/pages/Error404.vue: -------------------------------------------------------------------------------- 1 | <template> 2 | <div class="fixed-center text-center"> 3 | <p> 4 | <img src="~assets/sad.svg" style="width:30vw;max-width:150px;" /> 5 | </p> 6 | <p class="text-faded">Sorry, nothing here...<strong>(404)</strong></p> 7 | <q-btn color="secondary" style="width:200px;" @click="$router.push('/')" 8 | >Go back</q-btn 9 | > 10 | </div> 11 | </template> 12 | 13 | <script> 14 | export default { 15 | name: "Error404" 16 | }; 17 | </script> 18 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/pages/Index.vue: -------------------------------------------------------------------------------- 1 | <template> 2 | <q-page class="flex flex-center"> 3 | <img alt="Quasar logo" src="~assets/quasar-logo-full.svg" /> 4 | </q-page> 5 | </template> 6 | 7 | <style></style> 8 | 9 | <script> 10 | export default { 11 | name: "PageIndex" 12 | }; 13 | </script> 14 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/router/routes.js: -------------------------------------------------------------------------------- 1 | const routes = [ 2 | { 3 | path: "/", 4 | component: () => import("layouts/MyLayout.vue"), 5 | children: [{ path: "", component: () => import("pages/Index.vue") }] 6 | } 7 | ]; 8 | 9 | // Always leave this as last one 10 | if (process.env.MODE !== "ssr") { 11 | routes.push({ 12 | path: "*", 13 | component: () => import("pages/Error404.vue") 14 | }); 15 | } 16 | 17 | export default routes; 18 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/app-logo-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/app-logo-128x128.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/apple-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/apple-icon-167x167.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/favicon-16x16.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/favicon-32x32.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/favicon-96x96.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/favicon.ico -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/icon-128x128.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/icon-192x192.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/icon-256x256.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/icon-384x384.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/icon-512x512.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/statics/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/quasar-template/src/statics/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /packages/container/quasar-template/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import Vuex from "vuex"; 3 | 4 | // import example from './module-example' 5 | 6 | Vue.use(Vuex); 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Store instantiation 11 | */ 12 | 13 | export default function(/* { ssrContext } */) { 14 | const Store = new Vuex.Store({ 15 | modules: { 16 | // example 17 | }, 18 | 19 | // enable strict mode (adds overhead!) 20 | // for dev mode only 21 | strict: process.env.DEV 22 | }); 23 | 24 | return Store; 25 | } 26 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/store/module-example/actions.js: -------------------------------------------------------------------------------- 1 | export function someAction(/* context */) {} 2 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/store/module-example/getters.js: -------------------------------------------------------------------------------- 1 | export function someGetter(/* state */) {} 2 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/store/module-example/index.js: -------------------------------------------------------------------------------- 1 | import state from "./state"; 2 | import * as getters from "./getters"; 3 | import * as mutations from "./mutations"; 4 | import * as actions from "./actions"; 5 | 6 | export default { 7 | namespaced: true, 8 | getters, 9 | mutations, 10 | actions, 11 | state 12 | }; 13 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/store/module-example/mutations.js: -------------------------------------------------------------------------------- 1 | export function someMutation(/* state */) {} 2 | -------------------------------------------------------------------------------- /packages/container/quasar-template/src/store/module-example/state.js: -------------------------------------------------------------------------------- 1 | export default { 2 | // 3 | }; 4 | -------------------------------------------------------------------------------- /packages/container/razzle-template/.gitignore: -------------------------------------------------------------------------------- 1 | logs 2 | *.log 3 | npm-debug.log* 4 | .DS_Store 5 | 6 | coverage 7 | node_modules 8 | build 9 | .env.local 10 | .env.development.local 11 | .env.test.local 12 | .env.production.local -------------------------------------------------------------------------------- /packages/container/razzle-template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-razzle-app", 3 | "version": "0.1.0", 4 | "license": "MIT", 5 | "scripts": { 6 | "start": "razzle start", 7 | "build": "razzle build", 8 | "test": "razzle test --env=jsdom", 9 | "start:prod": "NODE_ENV=production node build/server.js" 10 | }, 11 | "dependencies": { 12 | "express": "^4.16.4", 13 | "razzle": "^3.0.0", 14 | "react": "^16.8.6", 15 | "react-dom": "^16.8.6", 16 | "react-router-dom": "^5.0.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/container/razzle-template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codesandbox/codesandbox-templates/6f92cd9b85e128418d8a8f466fccf035022bb38b/packages/container/razzle-template/public/favicon.ico -------------------------------------------------------------------------------- /packages/container/razzle-template/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | 3 | -------------------------------------------------------------------------------- /packages/container/razzle-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "node", 6 | "container": { 7 | "port": 3000 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/container/razzle-template/src/App.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: sans-serif; 5 | } -------------------------------------------------------------------------------- /packages/container/razzle-template/src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Route from 'react-router-dom/Route'; 3 | import Switch from 'react-router-dom/Switch'; 4 | import Home from './Home'; 5 | import './App.css'; 6 | 7 | const App = () => ( 8 | <Switch> 9 | <Route exact path="/" component={Home} /> 10 | </Switch> 11 | ); 12 | 13 | export default App; 14 | -------------------------------------------------------------------------------- /packages/container/razzle-template/src/App.test.js: -------------------------------------------------------------------------------- 1 | import App from './App'; 2 | import React from 'react'; 3 | import ReactDOM from 'react-dom'; 4 | import MemoryRouter from 'react-router-dom/MemoryRouter'; 5 | 6 | describe('<App />', () => { 7 | test('renders without exploding', () => { 8 | const div = document.createElement('div'); 9 | ReactDOM.render( 10 | <MemoryRouter> 11 | <App /> 12 | </MemoryRouter>, 13 | div 14 | ); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /packages/container/razzle-template/src/Home.css: -------------------------------------------------------------------------------- 1 | .Home { 2 | text-align: center; 3 | } 4 | 5 | .Home-logo { 6 | animation: Home-logo-spin infinite 20s linear; 7 | height: 80px; 8 | } 9 | 10 | .Home-header { 11 | background-color: #222; 12 | height: 150px; 13 | padding: 20px; 14 | color: white; 15 | } 16 | 17 | .Home-intro { 18 | font-size: large; 19 | } 20 | 21 | .Home-resources { 22 | list-style: none; 23 | } 24 | 25 | .Home-resources > li { 26 | display: inline-block; 27 | padding: 1rem; 28 | } 29 | 30 | @keyframes Home-logo-spin { 31 | from { 32 | transform: rotate(0deg); 33 | } 34 | to { 35 | transform: rotate(360deg); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /packages/container/razzle-template/src/client.js: -------------------------------------------------------------------------------- 1 | import App from './App'; 2 | import BrowserRouter from 'react-router-dom/BrowserRouter'; 3 | import React from 'react'; 4 | import { hydrate } from 'react-dom'; 5 | 6 | hydrate( 7 | <BrowserRouter> 8 | <App /> 9 | </BrowserRouter>, 10 | document.getElementById('root') 11 | ); 12 | 13 | if (module.hot) { 14 | module.hot.accept(); 15 | } 16 | -------------------------------------------------------------------------------- /packages/container/sapper-template/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | yarn-error.log 4 | /cypress/screenshots/ 5 | /__sapper__/ 6 | -------------------------------------------------------------------------------- /packages/container/sapper-template/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - "stable" 5 | env: 6 | global: 7 | - BUILD_TIMEOUT=10000 8 | branches: 9 | only: 10 | - master 11 | script: _template/build.sh 12 | -------------------------------------------------------------------------------- /packages/container/sapper-template/_template/build-pkg.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | const type = process.argv[2]; 4 | 5 | const pkg = require('../package_template.json'); 6 | for (const key in pkg['merge-configs'][type]) { 7 | Object.assign(pkg[key], pkg['merge-configs'][type][key]); 8 | } 9 | delete pkg['merge-configs']; 10 | fs.writeFileSync( 11 | __dirname + '/../package.json', 12 | JSON.stringify(pkg, null, ' ') + '\n' 13 | ); 14 | -------------------------------------------------------------------------------- /packages/container/sapper-template/_template/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd "$(dirname $0)" 3 | 4 | if [ "$CI" ]; then 5 | # write out SSH key 6 | [ "$SSH_KEY" ] || exit 1 7 | echo "$SSH_KEY" > ~/.ssh/id_rsa 8 | chmod 600 ~/.ssh/id_rsa 9 | fi 10 | 11 | # branch names 12 | DEFAULT=master 13 | ROLLUP=rollup 14 | WEBPACK=webpack 15 | 16 | ./create-branches.sh $DEFAULT $ROLLUP $WEBPACK 17 | 18 | # force push rollup and webpack branches 19 | git push git@github.com:sveltejs/sapper-template.git $ROLLUP $WEBPACK -f 20 | -------------------------------------------------------------------------------- /packages/container/sapper-template/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: "{build}" 2 | 3 | shallow_clone: true 4 | 5 | init: 6 | - git config --global core.autocrlf false 7 | 8 | build: off 9 | 10 | environment: 11 | matrix: 12 | # node.js 13 | - nodejs_version: stable 14 | 15 | install: 16 | - ps: Install-Product node $env:nodejs_version 17 | - npm install cypress 18 | - npm install 19 | -------------------------------------------------------------------------------- /packages/container/sapper-template/cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseUrl": "http://localhost:3000", 3 | "video": false 4 | } -------------------------------------------------------------------------------- /packages/container/sapper-template/cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } -------------------------------------------------------------------------------- /packages/container/sapper-template/cypress/integration/spec.js: -------------------------------------------------------------------------------- 1 | describe('Sapper template app', () => { 2 | beforeEach(() => { 3 | cy.visit('/') 4 | }); 5 | 6 | it('has the correct <h1>', () => { 7 | cy.contains('h1', 'Great success!') 8 | }); 9 | 10 | it('navigates to /about', () => { 11 | cy.get('nav a').contains('about').click(); 12 | cy.url().should('include', '/about'); 13 | }); 14 | 15 | it('navigates to /blog', () => { 16 | cy.get('nav a').contains('blog').click(); 17 | cy.url().should('include', '/blog'); 18 | }); 19 | }); -------------------------------------------------------------------------------- /packages/container/sapper-template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "infiniteLoopProtection": true, 3 | "hardReloadOnChange": false, 4 | "view": "browser", 5 | "template": "sapper" 6 | } 7 | -------------------------------------------------------------------------------- /packages/container/sapper-template/src/client.js: -------------------------------------------------------------------------------- 1 | import * as sapper from '@sapper/app'; 2 | 3 | sapper.start({ 4 | target: document.querySelector('#sapper') 5 | }); -------------------------------------------------------------------------------- /packages/container/sapper-template/src/routes/_error.svelte: -------------------------------------------------------------------------------- 1 | <script> 2 | export let status; 3 | export let error; 4 | 5 | const dev = process.env.NODE_ENV === 'development'; 6 | </script> 7 | 8 | <style> 9 | h1, p { 10 | margin: 0 auto; 11 | } 12 | 13 | h1 { 14 | font-size: 2.8em; 15 | font-weight: 700; 16 | margin: 0 0 0.5em 0; 17 | } 18 | 19 | p { 20 | margin: 1em auto; 21 | } 22 | 23 | @media (min-width: 480px) { 24 | h1 { 25 | font-size: 4em; 26 | } 27 | } 28 | </style> 29 | 30 | <svelte:head> 31 | <title>{status} 32 | 33 | 34 |

{status}

35 | 36 |

{error.message}

37 | 38 | {#if dev && error.stack} 39 |
{error.stack}
40 | {/if} 41 | -------------------------------------------------------------------------------- /packages/container/sapper-template/src/routes/_layout.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | 18 |