feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
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:
2026-08-21 19:29:00 -06:00
commit 1f72193a64
3266 changed files with 531480 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
/*
* Inspector validator base class.
*/
+function ($) { "use strict";
// NAMESPACES
// ============================
if ($.wn.inspector.validators === undefined)
$.wn.inspector.validators = {}
// CLASS DEFINITION
// ============================
var Base = $.wn.foundation.base,
BaseProto = Base.prototype
var BaseValidator = function(options) {
this.options = options
this.defaultMessage = 'Invalid property value.'
Base.call(this)
}
BaseValidator.prototype = Object.create(BaseProto)
BaseValidator.prototype.constructor = Base
BaseValidator.prototype.dispose = function() {
this.defaultMessage = null
BaseProto.dispose.call(this)
}
BaseValidator.prototype.getMessage = function(defaultMessage) {
if (this.options.message !== undefined) {
return this.options.message
}
if (defaultMessage !== undefined) {
return defaultMessage
}
return this.defaultMessage
}
BaseValidator.prototype.isScalar = function(value) {
if (value === undefined || value === null) {
return true
}
return !!(typeof value === 'string' || typeof value == 'number' || typeof value == 'boolean');
}
BaseValidator.prototype.isValid = function(value) {
return null
}
$.wn.inspector.validators.base = BaseValidator
}(window.jQuery);