feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- Base: wintercms/winter branch 1.2 (full framework) - Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS - Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication - Partials: hero (offline-first), features, modes (offline/nube toggle), screenshots, pricing (3 planes), comparison, FAQ, CTA - Plugin VivesPOS.Site with ContactForm - Dockerfile: PHP 8.2 Apache, port 80, healthcheck - Added winter/wn-pages, blog, sitemap, seo plugins - Active theme set to vivespos
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
/**
|
||||
* Css here
|
||||
*/
|
||||
@@ -0,0 +1,3 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
@@ -0,0 +1 @@
|
||||
console.log('hello world!');
|
||||
@@ -0,0 +1,8 @@
|
||||
import { createApp } from "vue";
|
||||
// import Example from "./components/Example.vue";
|
||||
//
|
||||
// const app = createApp({
|
||||
// components: {Example}
|
||||
// });
|
||||
//
|
||||
// app.mount("#example");
|
||||
@@ -0,0 +1,4 @@
|
||||
const mix = require('laravel-mix');
|
||||
mix.setPublicPath(__dirname);
|
||||
|
||||
mix.js('assets/src/js/{{packageName}}.js', 'assets/dist/js/{{packageName}}.js');
|
||||
@@ -0,0 +1,7 @@
|
||||
import React from "react";
|
||||
|
||||
const App = () => {
|
||||
return <h1>Hello from React in Winter CMS!</h1>;
|
||||
};
|
||||
|
||||
export default App;
|
||||
@@ -0,0 +1 @@
|
||||
import('./{{packageName}}.jsx');
|
||||
@@ -0,0 +1,5 @@
|
||||
import React from "react";
|
||||
import ReactDOM from "react-dom/client";
|
||||
import App from "./components/App.jsx";
|
||||
|
||||
ReactDOM.createRoot(document.getElementById("root")).render(<App />);
|
||||
@@ -0,0 +1,5 @@
|
||||
export default {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,15 @@
|
||||
import defaultTheme from 'tailwindcss/defaultTheme';
|
||||
import forms from '@tailwindcss/forms';
|
||||
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
'./assets/src/js/**/*.{js,jsx}',
|
||||
'./blocks/**/*.block',
|
||||
'./components/**/*.{htm,php}',
|
||||
'./controllers/**/*.{htm,php}',
|
||||
'./formwidgets/**/*.{htm,php}',
|
||||
'./widgets/**/*.{htm,php}',
|
||||
],
|
||||
plugins: [forms],
|
||||
};
|
||||
@@ -0,0 +1,15 @@
|
||||
import defaultTheme from 'tailwindcss/defaultTheme';
|
||||
import forms from '@tailwindcss/forms';
|
||||
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: [
|
||||
'./assets/src/js/**/*.{js,jsx}',
|
||||
'./blocks/**/*.block',
|
||||
'./layouts/**/*.htm',
|
||||
'./pages/**/*.htm',
|
||||
'./partials/**/*.htm',
|
||||
'./content/**/*.htm',
|
||||
],
|
||||
plugins: [forms],
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
import { defineConfig } from 'vite';
|
||||
import laravel from 'laravel-vite-plugin';
|
||||
|
||||
const defaultOutDir = 'assets/dist';
|
||||
|
||||
export default defineConfig({
|
||||
base: `${process.env.VITE_BASE}/${defaultOutDir}`,
|
||||
build: {
|
||||
outDir: defaultOutDir,
|
||||
assetsDir: '',
|
||||
},
|
||||
plugins: [
|
||||
laravel({
|
||||
publicDirectory: defaultOutDir,
|
||||
input: [
|
||||
'assets/src/css/{{packageName}}.css',
|
||||
'assets/src/js/{{packageName}}.js',
|
||||
],
|
||||
refresh: {
|
||||
paths: [
|
||||
'./**/*.htm',
|
||||
'./**/*.block',
|
||||
'assets/src/**/*.css',
|
||||
'assets/src/**/*.js',
|
||||
'assets/src/**/*.jsx',
|
||||
]
|
||||
},
|
||||
}),
|
||||
],
|
||||
});
|
||||
87
modules/system/console/asset/fixtures/mix.webpack.js.fixture
Normal file
87
modules/system/console/asset/fixtures/mix.webpack.js.fixture
Normal file
@@ -0,0 +1,87 @@
|
||||
const basePath = '%base%';
|
||||
const { assertSupportedNodeVersion } = require(basePath + '/node_modules/laravel-mix/src/Engine');
|
||||
|
||||
module.exports = async () => {
|
||||
assertSupportedNodeVersion();
|
||||
|
||||
const mix = require(basePath + '/node_modules/laravel-mix/src/Mix').primary;
|
||||
|
||||
mix.listen('init', function (_mix) {
|
||||
// Setup Winter path aliases
|
||||
_mix._api.alias({
|
||||
'$': '%pluginsPath%',
|
||||
'~': '%appPath%',
|
||||
});
|
||||
// disable notifications if not in watch
|
||||
%notificationInject%
|
||||
// define options
|
||||
_mix._api.options({
|
||||
processCssUrls: false,
|
||||
clearConsole: false,
|
||||
cssNano: {
|
||||
discardComments: {removeAll: true},
|
||||
}
|
||||
});
|
||||
// enable source maps for dev builds
|
||||
if (!_mix._api.inProduction()) {
|
||||
_mix._api.webpackConfig({
|
||||
devtool: 'inline-source-map'
|
||||
});
|
||||
_mix._api.sourceMaps();
|
||||
}
|
||||
|
||||
// Disable default manifest, allow for custom manifest
|
||||
if (_mix.config.manifest === 'mix-manifest.json') {
|
||||
mix.manifest.refresh = _ => void 0;
|
||||
} else {
|
||||
if (_mix.config.manifest === true) {
|
||||
_mix.config.manifest = 'mix-manifest.json';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// override default mix output
|
||||
mix.listen("loading-plugins", function (plugins) {
|
||||
plugins.forEach(function (plugin, index) {
|
||||
switch (plugin.constructor.name) {
|
||||
case "BuildOutputPlugin":
|
||||
plugins[index].apply = function (compiler) {
|
||||
compiler.hooks.done.tap('BuildOutputPlugin', stats => {
|
||||
if (stats.hasErrors()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.options.clearConsole) {
|
||||
this.clearConsole();
|
||||
}
|
||||
|
||||
let data = stats.toJson({
|
||||
assets: true,
|
||||
builtAt: true,
|
||||
hash: true,
|
||||
performance: true,
|
||||
relatedAssets: this.options.showRelated
|
||||
});
|
||||
|
||||
if (data.assets.length && !%silent%) {
|
||||
console.log(this.statsTable(data));
|
||||
}
|
||||
});
|
||||
};
|
||||
break;
|
||||
case "WebpackBarPlugin":
|
||||
if (%silent% || %noProgress%) {
|
||||
plugins[index].apply = _ => void 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
require('%mixConfigPath%');
|
||||
|
||||
await mix.installDependencies();
|
||||
await mix.init();
|
||||
|
||||
return mix.build();
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
const mix = require('laravel-mix');
|
||||
mix.setPublicPath(__dirname + '/assets');
|
||||
|
||||
// Your mix configuration below
|
||||
Reference in New Issue
Block a user