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,50 @@
/*
* Drag-and-drop reordering styles for the list widget.
*/
.control-list .list-sort-handle-column,
.control-list .list-cell-sort-handle {
width: 28px;
text-align: center;
}
/* The whole handle cell is the drag target (SortableJS handle is the cell), so
the grab affordance and hit area cover the entire cell, not just the icon.
The second selector is specific enough to override rowlink's
"tr.rowlink td.nolink { cursor: auto }" rule, which would otherwise reset the
cursor on this (intentionally) non-link cell when the list rows are clickable. */
.control-list .list-cell-sort-handle,
.control-list tr.rowlink td.list-cell-sort-handle.nolink {
cursor: move;
cursor: grab;
}
.control-list .list-cell-sort-handle:active,
.control-list tr.rowlink td.list-cell-sort-handle.nolink:active {
cursor: grabbing;
}
.control-list .list-sort-handle {
display: inline-block;
color: #666;
line-height: 1;
text-decoration: none;
cursor: inherit;
}
.control-list tr:hover .list-sort-handle {
color: #333;
}
.control-list .list-sortable-ghost {
opacity: 0.5;
background: #f0f7fd;
}
.control-list .list-sortable-chosen {
background: #f7f9fa;
}
.control-list[data-sortable="true"] tbody tr {
/* Avoid text selection while dragging rows */
user-select: none;
}