Initial commit: CloudOps infrastructure platform

This commit is contained in:
root
2026-04-09 19:58:57 +02:00
commit 1166a52f26
7762 changed files with 839452 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
# Workflow name:
name: Close Pull Requests
# Workflow triggers:
on:
pull_request_target:
types: [opened]
# Workflow jobs:
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: superbrothers/close-pull-request@v3
with:
comment: |
Thank you for submitting a pull request. :raised_hands:
We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/mautic/mautic).
We kindly request that you submit this pull request against the respective directory `/themes/eclipse` of the [main repository](https://github.com/mautic/mautic) where we'll review and provide feedback. If this is your first Mautic contribution, be sure to read the [contributing guide](https://mau.tc/create-pr) which provides guidelines and instructions for submitting contributions.
Thank you again, and we look forward to receiving your contribution! :smiley:
Best,
The Mautic team

View File

@@ -0,0 +1,10 @@
{
"name": "mautic/theme-eclipse",
"description": "Eclipse theme",
"type": "mautic-theme",
"keywords": ["mautic","theme"],
"minimum-stability": "dev",
"require": {
"mautic/core-lib": ">=7.0"
}
}

View File

@@ -0,0 +1,8 @@
{
"name": "Eclipse",
"author": "Dropsolid",
"authorUrl": "https://dropsolid.io",
"features": [
"form"
]
}

View File

@@ -0,0 +1,512 @@
<style type="text/css" scoped>
:root {
--form-primary-60: #{{ getBrandPrimaryColor() }};
--form-primary-70: color-mix(in hsl, var(--form-primary-60), black 10%);
--form-primary-80: color-mix(in hsl, var(--form-primary-60), black 20%);
--form-field: #EBEBEB;
--form-field-hover: #e5e5e5;
--form-border-interactive: var(--form-primary-60);
--form-border-subtle: #e0e0e0;
--form-border-strong: #8d8d8d;
--form-border-inverse: #161616;
--form-border-disabled: #c6c6c6;
--form-text-brand: var(--form-primary-60);
--form-text-primary: #161616;
--form-text-secondary: #525252;
--form-text-placeholder: #a8a8a8;
--form-text-on-color: #{{ getTextOnBrandColor() }};
--form-text-on-color-disabled: #8d8d8d;
--form-text-helper: #6f6f6f;
--form-text-error: #da1e28;
--form-text-inverse: #ffffff;
--form-text-disabled: #16161640;
--form-link-primary: var(--form-primary-60);
--form-link-primary-hover: var(--form-primary-70);
--form-link-secondary: var(--form-primary-70);
--form-link-inverse: var(--form-primary-40);
--form-link-visited: #8a3ffc;
--form-button-primary: var(--form-primary-60);
--form-button-primary-hover: var(--form-primary-70);
--form-button-primary-active: var(--form-primary-80);
--form-button-secondary: #393939;
--form-button-secondary-hover: #4c4c4c;
--form-button-secondary-active: #6f6f6f;
--form-button-tertiary: var(--form-primary-60);
--form-button-tertiary-hover: var(--form-primary-70);
--form-button-tertiary-active: var(--form-primary-80);
--form-button-danger-primary: #da1e28;
--form-button-danger-secondary: #da1e28;
--form-button-danger-hover: #ba1b23;
--form-button-danger-active: #750e13;
--form-button-separator: #e0e0e0;
--form-button-disabled: #c6c6c6;
--form-support-error: #da1e28;
--form-support-success: #24a148;
--form-support-warning: #f1c21b;
--form-support-info: #0043ce;
--form-support-error-inverse: #ff787f;
--form-support-success-inverse: #42be65;
--form-support-warning-inverse: #f1c21b;
--form-support-info-inverse: #6da2ff;
--form-focus: var(--form-primary-60);
--form-focus-inset: #ffffff;
--form-focus-inverse: #ffffff;
--form-interactive: var(--form-primary-60);
--form-highlight: var(--form-primary-20);
--form-duration-productive: 150ms;
--form-duration-expressive: 300ms;
--form-easing-standard-productive: cubic-bezier(0.2, 0, 0.38, 0.9);
--form-easing-standard-expressive: cubic-bezier(0.4, 0.14, 0.3, 1);
--form-transition-all-productive: all var(--form-duration-productive) var(--form-easing-standard-productive);
--form-transition-all-expressive: all var(--form-duration-expressive) var(--form-easing-standard-expressive);
}
.mauticform_wrapper {
max-width: 600px;
margin: 20px;
font-family: inherit;
font-size: 14px;
width: 100%;
}
.mauticform-innerform {}
.mauticform-post-success {}
.mauticform-name {
font-weight: bold;
font-size: 1.5em;
margin-bottom: 3px;
}
.mauticform-description {
margin-top: 2px;
margin-bottom: 10px;
}
.mauticform-error {
margin-bottom: 10px;
color: var(--form-support-error);
}
.mauticform-message {
margin-bottom: 10px;
color: var(--form-primary-60);
}
.mauticform-row {
display: block;
margin-bottom: 20px;
}
.mauticform-label {
font-size: 14px;
display: block;
font-weight: bold;
margin-bottom: 5px;
color: var(--form-text-brand);
}
.mauticform-row.mauticform-required .mauticform-label:after {
color: var(--form-support-error);
content: " *";
display: inline;
}
.mauticform-helpmessage {
display: block;
font-size: 0.9em;
margin-bottom: 3px;
}
.mauticform-errormsg {
display: block;
color: var(--form-support-error);
margin-top: 2px;
}
.mauticform-selectbox,
.mauticform-input,
.mauticform-textarea {
width: 100%;
padding: 12px 18px;
border: none;
background: var(--form-field);
box-shadow: none;
border-radius: {{ getRoundedCorners('md') }}px;
box-sizing: border-box;
outline: 2px solid transparent;
outline-offset: -2px;
transition: var(--form-transition-all-productive);
}
.mauticform-selectbox:before,
.mauticform-input:before,
.mauticform-textarea:before {
content: "";
display: block;
height: 3px;
width: 100%;
}
.mauticform-selectbox:hover,
.mauticform-input:hover,
.mauticform-textarea:hover {
background: var(--form-field-hover);
outline: 2px solid transparent;
}
.mauticform-selectbox:focus,
.mauticform-input:focus,
.mauticform-textarea:focus {
outline: 2px solid var(--form-primary-60);
}
.mauticform-checkboxgrp-row {
margin-bottom: 3px;
}
.mauticform-checkboxgrp-label {
font-weight: normal;
}
.mauticform-checkboxgrp-checkbox {
aspect-ratio: 1 / 1;
height: 16px;
vertical-align: -3px;
background-color: var(--form-field);
appearance: none;
border: 1px solid var(--form-border-strong);
border-radius: {{ getRoundedCorners('sm') }}px;
margin: 0;
align-items: center;
display: inline-flex;
justify-content: center;
-webkit-transition: var(--form-transition-all-productive);
-o-transition: var(--form-transition-all-productive);
transition: var(--form-transition-all-productive);
outline: 2px solid transparent;
outline-offset: 1px;
margin-right: 4px;
}
.mauticform-checkboxgrp-checkbox:checked {
background-color: var(--form-interactive);
border: 1px solid var(--form-interactive);
}
.mauticform-checkboxgrp-checkbox:checked:before {
content: "";
width: 14px;
height: 14px;
background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23{{ getTextOnBrandColor() }}%22%3E%3Cpath%20d%3D%22M9.9997%2015.1709L19.1921%205.97852L20.6063%207.39273L9.9997%2017.9993L3.63574%2011.6354L5.04996%2010.2212L9.9997%2015.1709Z%22/%3E%3C/svg%3E');
position: absolute;
}
.mauticform-radiogrp-row {
display: inline-flex;
flex-direction: row;
align-items: baseline;
gap: 4px;
}
.mauticform-radiogrp-label {
font-weight: normal;
}
.mauticform-radiogrp-radio {
width: 16px;
aspect-ratio: 1 / 1;
accent-color: var(--form-primary-60);
margin-left: 0;
}
.mauticform-button-wrapper .mauticform-button.btn-ghost,
.mauticform-pagebreak-wrapper .mauticform-pagebreak.btn-ghost {
color: var(--form-primary-60);
background-color: #ffffff;
border-color: #dddddd;
}
.mauticform-button-wrapper .mauticform-button,
.mauticform-pagebreak-wrapper .mauticform-pagebreak {
display: inline-block;
margin-bottom: 0;
font-weight: 600;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 10px 20px;
font-size: 13px;
line-height: 1.3856;
border-radius: {{ getRoundedCorners('lg') }}px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: var(--form-button-primary);
color: var(--form-text-on-color);
transition: var(--form-transition-all-expressive);
}
.mauticform-button-wrapper .mauticform-button:hover,
.mauticform-pagebreak-wrapper .mauticform-pagebreak:hover {
background-color: var(--form-button-primary-hover);
color: var(--form-text-on-color);
border-color: var(--form-button-primary-hover);
}
.mauticform-button-wrapper .mauticform-button.btn-ghost[disabled],
.mauticform-pagebreak-wrapper .mauticform-pagebreak.btn-ghost[disabled] {
background-color: #ffffff;
border-color: #dddddd;
opacity: 0.75;
cursor: not-allowed;
}
.mauticform-button-wrapper .mauticform-button.btn-ghost[disabled]:hover,
.mauticform-pagebreak-wrapper .mauticform-pagebreak.btn-ghost[disabled]:hover {
color: var(--form-primary-60);
}
.mauticform-pagebreak-wrapper .mauticform-button-wrapper {
display: inline;
}
/* Make fields display inline when using width classes */
.mauticform-page-wrapper {
display: flex;
flex-wrap: wrap;
width: 100%;
margin: 0 -10px;
}
/* Ensure field containers respect width classes */
.mauticform-row {
box-sizing: border-box;
padding: 0 10px;
margin-bottom: 15px;
}
/* Responsive adjustment for mobile */
@media (max-width: 767px) {
.mauticform-three-quarters-width,
.mauticform-two-thirds-width,
.mauticform-half-width,
.mauticform-one-third-width,
.mauticform-one-quarter-width {
width: 100%;
}
}
/**
* @see https://github.com/TarekRaafat/autoComplete.js/blob/master/dist/css/autoComplete.02.css.
*/
.autoComplete_wrapper {
position: relative;
}
.autoComplete_wrapper>input::placeholder {
transition: all 0.3s ease;
}
.autoComplete_wrapper>ul {
position: absolute;
max-height: 226px;
overflow-y: scroll;
top: 100%;
left: 0;
right: 0;
padding: 0;
margin: 0.5rem 0 0 0;
border-radius: 4px;
background-color: #fff;
border: 1px solid rgba(33, 33, 33, 0.1);
z-index: 1000;
outline: none;
}
.autoComplete_wrapper>ul>li {
padding: 10px 20px;
list-style: none;
text-align: left;
font-size: 16px;
color: #212121;
transition: all 0.1s ease-in-out;
border-radius: 3px;
background-color: rgba(255, 255, 255, 1);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
transition: all 0.2s ease;
}
.autoComplete_wrapper>ul>li>span {
float: right;
}
.autoComplete_wrapper>ul>li::selection {
color: rgba(#ffffff, 0);
background-color: rgba(#ffffff, 0);
}
.autoComplete_wrapper>ul>li:hover {
cursor: pointer;
background-color: rgba(123, 123, 123, 0.1);
}
.autoComplete_wrapper>ul>li mark {
background-color: transparent;
font-weight: bold;
}
.autoComplete_wrapper>ul>li mark::selection {
background-color: rgba(#ffffff, 0);
}
.autoComplete_wrapper>ul>li[aria-selected="true"] {
background-color: rgba(123, 123, 123, 0.1);
}
@media only screen and (max-width: 600px) {
.autoComplete_wrapper>input {
width: 18rem;
}
}
/*
* With message defined
*/
.mauticform-post-success .mauticform-message:not(:empty) {
font-size: 14pt;
padding-left: 60px;
position: relative;
}
.mauticform-post-success:has(.mauticform-message:not(:empty)) .mauticform-innerform {
display: none;
}
.mauticform-post-success .mauticform-message:not(:empty):before {
content: "";
position: absolute;
width: 50px;
height: 45px;
background-color: transparent;
z-index: 1;
top: 50%;
left: 0;
background-image: url("data:image/svg+xml,%3Csvg height='45' viewBox='0 0 120 115' width='50' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M107.332 72.938c-1.798 5.557 4.564 15.334 1.21 19.96-3.387 4.674-14.646 1.605-19.298 5.003-4.61 3.368-5.163 15.074-10.695 16.878-5.344 1.743-12.628-7.35-18.545-7.35-5.922 0-13.206 9.088-18.543 7.345-5.538-1.804-6.09-13.515-10.696-16.877-4.657-3.398-15.91-.334-19.297-5.002-3.356-4.627 3.006-14.404 1.208-19.962C10.93 67.576 0 63.442 0 57.5c0-5.943 10.93-10.076 12.668-15.438 1.798-5.557-4.564-15.334-1.21-19.96 3.387-4.674 14.646-1.605 19.298-5.003C35.366 13.73 35.92 2.025 41.45.22c5.344-1.743 12.628 7.35 18.545 7.35 5.922 0 13.206-9.088 18.543-7.345 5.538 1.804 6.09 13.515 10.696 16.877 4.657 3.398 15.91.334 19.297 5.002 3.356 4.627-3.006 14.404-1.208 19.962C109.07 47.424 120 51.562 120 57.5c0 5.943-10.93 10.076-12.668 15.438z' fill='%23{{ getBrandPrimaryColor() }}'/%3E%3C/svg%3E");
animation: checkbox-message 35s linear infinite;
transform-origin: top;
}
.mauticform-post-success .mauticform-message:not(:empty):after {
content: "";
position: absolute;
width: 24px;
height: 12px;
z-index: 10;
top: 50%;
left: 13px;
background-image: url("data:image/svg+xml,%3Csvg height='12' viewBox='0 0 48 36' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M47.248 3.9L43.906.667a2.428 2.428 0 0 0-3.344 0l-23.63 23.09-9.554-9.338a2.432 2.432 0 0 0-3.345 0L.692 17.654a2.236 2.236 0 0 0 .002 3.233l14.567 14.175c.926.894 2.42.894 3.342.01L47.248 7.128c.922-.89.922-2.34 0-3.23' fill='%23{{ getTextOnBrandColor() }}'/%3E%3C/svg%3E");
animation: checkmark-message 5.6s cubic-bezier(0.420, 0.000, 0.275, 1.155);
transform: scale(1) translateY(-50%);
}
@keyframes checkmark-message {
0% {
opacity: 0;
transform: scale(0) translateY(-50%);
}
10%, 50%, 90% {
opacity: 1;
transform: scale(1) translateY(-50%);
}
}
@keyframes checkbox-message {
0% {
transform: rotate(0deg) translateY(-50%);
}
100% {
transform: rotate(360deg) translateY(-50%);
}
}
/*
* When simply remaining on the form
*/
.mauticform-post-success:has(.mauticform-message:empty) {
position: relative;
}
.mauticform-post-success:has(.mauticform-message:empty) .mauticform-innerform {
visibility: hidden;
opacity: 0;
}
.mauticform-post-success .mauticform-message:empty:before {
content: "";
position: absolute;
width: 120px;
height: 115px;
background-color: transparent;
z-index: 1;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-image: url("data:image/svg+xml,%3Csvg height='115' viewBox='0 0 120 115' width='120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M107.332 72.938c-1.798 5.557 4.564 15.334 1.21 19.96-3.387 4.674-14.646 1.605-19.298 5.003-4.61 3.368-5.163 15.074-10.695 16.878-5.344 1.743-12.628-7.35-18.545-7.35-5.922 0-13.206 9.088-18.543 7.345-5.538-1.804-6.09-13.515-10.696-16.877-4.657-3.398-15.91-.334-19.297-5.002-3.356-4.627 3.006-14.404 1.208-19.962C10.93 67.576 0 63.442 0 57.5c0-5.943 10.93-10.076 12.668-15.438 1.798-5.557-4.564-15.334-1.21-19.96 3.387-4.674 14.646-1.605 19.298-5.003C35.366 13.73 35.92 2.025 41.45.22c5.344-1.743 12.628 7.35 18.545 7.35 5.922 0 13.206-9.088 18.543-7.345 5.538 1.804 6.09 13.515 10.696 16.877 4.657 3.398 15.91.334 19.297 5.002 3.356 4.627-3.006 14.404-1.208 19.962C109.07 47.424 120 51.562 120 57.5c0 5.943-10.93 10.076-12.668 15.438z' fill='%23{{ getBrandPrimaryColor() }}'/%3E%3C/svg%3E");
animation: checkbox-return 35s linear infinite;
}
.mauticform-post-success .mauticform-message:empty:after {
content: "";
position: absolute;
width: 48px;
height: 36px;
z-index: 10;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-image: url("data:image/svg+xml,%3Csvg height='36' viewBox='0 0 48 36' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M47.248 3.9L43.906.667a2.428 2.428 0 0 0-3.344 0l-23.63 23.09-9.554-9.338a2.432 2.432 0 0 0-3.345 0L.692 17.654a2.236 2.236 0 0 0 .002 3.233l14.567 14.175c.926.894 2.42.894 3.342.01L47.248 7.128c.922-.89.922-2.34 0-3.23' fill='%23{{ getTextOnBrandColor() }}'/%3E%3C/svg%3E");
animation: checkmark-return 5.6s cubic-bezier(0.420, 0.000, 0.275, 1.155);
}
@keyframes checkmark-return {
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(0);
}
10%, 50%, 90% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
}
@keyframes checkbox-return {
0% {
transform: translate(-50%, -50%) rotate(0deg);
}
100% {
transform: translate(-50%, -50%) rotate(360deg);
}
}
</style>

View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% if page is defined %}
<title>{pagetitle}</title>
<meta name="description" content="{pagemetadescription}">
{% endif %}
{% block stylesheets %}{% endblock %}
{{ outputHeadDeclarations() }}
</head>
<body>
{{ outputScripts('bodyOpen') }}
{% block content %}{% endblock %}
{{ outputScripts('bodyClose') }}
</body>
</html>