diff --git a/.codex/config.toml b/.codex/config.toml new file mode 100644 index 0000000..3b23fc7 --- /dev/null +++ b/.codex/config.toml @@ -0,0 +1,2 @@ +approval_policy = "never" +sandbox_mode = "danger-full-access" diff --git a/dist/tradon_wbg.png b/dist/tradon_wbg.png new file mode 100644 index 0000000..d2a27e7 Binary files /dev/null and b/dist/tradon_wbg.png differ diff --git a/dist/tryton-sao.css b/dist/tryton-sao.css index 94f5a96..614d582 100644 --- a/dist/tryton-sao.css +++ b/dist/tryton-sao.css @@ -9558,6 +9558,20 @@ html.accesskey select[accesskey] ~ span[data-accesskey] { position: sticky; top: 0px; z-index: 999; + overflow: visible; +} +.tab-form:has(> nav.toolbar .dropdown.navbar-left.open), +.tab-board:has(> nav.toolbar .dropdown.navbar-left.open), +#tabcontent:has(> .tab-pane.active > .panel > nav.toolbar .dropdown.navbar-left.open), +#tabcontent > .tab-pane.active:has(> .panel > nav.toolbar .dropdown.navbar-left.open), +#tabcontent > .tab-pane.active:has(> .panel > nav.toolbar .dropdown.navbar-left.open) > .panel { + overflow: visible; +} +.tab-form nav.toolbar .dropdown.navbar-left.open, +.tab-board nav.toolbar .dropdown.navbar-left.open, +.tab-form nav.toolbar .dropdown.navbar-left.open > .dropdown-menu, +.tab-board nav.toolbar .dropdown.navbar-left.open > .dropdown-menu { + z-index: 2000; } .tab-form nav.toolbar .close, .tab-board nav.toolbar .close { @@ -9674,6 +9688,172 @@ img.icon { [dir="rtl"] img.icon { transform: scaleX(-1); } +:root { + --tradon-density-font-size: 14px; + --tradon-density-label-size: 14px; + --tradon-density-control-height: 36px; + --tradon-density-control-padding-y: 6px; + --tradon-density-control-padding-x: 12px; + --tradon-density-button-height: 36px; + --tradon-density-panel-gap: 14px; + --tradon-density-panel-padding: 15px; + --tradon-density-section-heading-padding-y: 10px; + --tradon-density-tab-padding-y: 9px; + --tradon-density-tab-padding-x: 14px; + --tradon-density-toolbar-height: 44px; + --tradon-density-ag-toolbar-height: 32px; + --tradon-density-ag-row-height: 38px; + --tradon-density-ag-header-height: 42px; + --tradon-density-ag-embedded-max-height: 300px; +} +html[data-density="compact"] { + --tradon-density-font-size: 11px; + --tradon-density-label-size: 11px; + --tradon-density-control-height: 24px; + --tradon-density-control-padding-y: 2px; + --tradon-density-control-padding-x: 6px; + --tradon-density-button-height: 25px; + --tradon-density-panel-gap: 5px; + --tradon-density-panel-padding: 6px; + --tradon-density-section-heading-padding-y: 4px; + --tradon-density-tab-padding-y: 4px; + --tradon-density-tab-padding-x: 7px; + --tradon-density-toolbar-height: 31px; + --tradon-density-ag-toolbar-height: 23px; + --tradon-density-ag-row-height: 25px; + --tradon-density-ag-header-height: 28px; + --tradon-density-ag-embedded-max-height: 198px; +} +html[data-density="compact"] body, +html[data-density="compact"] .body { + font-size: var(--tradon-density-font-size); +} +html[data-density="compact"] .navbar { + min-height: 36px; +} +html[data-density="compact"] .navbar-brand { + height: 36px; + padding-top: 7px; + padding-bottom: 7px; + font-size: 16px; +} +html[data-density="compact"] .navbar-nav > li > a { + padding-top: 8px; + padding-bottom: 8px; +} +html[data-density="compact"] .navbar-form { + margin-top: 3px; + margin-bottom: 3px; +} +html[data-density="compact"] .navbar-btn { + margin-top: 3px; + margin-bottom: 3px; +} +html[data-density="compact"] #tablist > li { + min-width: 8em; +} +html[data-density="compact"] #tablist > li > a { + padding-top: 7px; + padding-bottom: 7px; +} +html[data-density="compact"] #menu, +html[data-density="compact"] #tabs { + margin-top: 3px; +} +html[data-density="compact"] #tabcontent > .tab-pane > .panel { + margin-bottom: 3px; +} +html[data-density="compact"] #tabcontent > .tab-pane > .panel > .panel-body > div { + padding-left: 7px; + padding-right: 7px; +} +html[data-density="compact"] .panel { + margin-bottom: var(--tradon-density-panel-gap); +} +html[data-density="compact"] .panel-body { + padding: var(--tradon-density-panel-padding); +} +html[data-density="compact"] .panel-heading { + padding-top: var(--tradon-density-section-heading-padding-y); + padding-bottom: var(--tradon-density-section-heading-padding-y); +} +html[data-density="compact"] .screen-container .control-label, +html[data-density="compact"] .screen-container label { + font-size: var(--tradon-density-label-size); +} +html[data-density="compact"] .screen-container input.form-control:not([type="checkbox"]):not([type="radio"]), +html[data-density="compact"] .screen-container select.form-control, +html[data-density="compact"] .screen-container textarea.form-control, +html[data-density="compact"] .screen-container .input-group > .form-control { + min-height: var(--tradon-density-control-height); + height: var(--tradon-density-control-height); + padding: var(--tradon-density-control-padding-y) var(--tradon-density-control-padding-x); + font-size: var(--tradon-density-font-size); + line-height: 1.35; +} +html[data-density="compact"] .screen-container .input-group-btn > .btn, +html[data-density="compact"] .screen-container .btn-group > .btn, +html[data-density="compact"] .screen-container .filter-box .btn { + min-height: var(--tradon-density-button-height); + padding-top: var(--tradon-density-control-padding-y); + padding-bottom: var(--tradon-density-control-padding-y); + font-size: var(--tradon-density-font-size); +} + +html[data-density="compact"] .screen-container .btn, +html[data-density="compact"] .form .btn, +html[data-density="compact"] .btn.btn-default, +html[data-density="compact"] .btn.btn-primary { + min-height: var(--tradon-density-button-height); + padding: var(--tradon-density-control-padding-y) var(--tradon-density-control-padding-x); + border-radius: 6px; + font-size: var(--tradon-density-font-size); + line-height: 1.25; +} + +html[data-density="compact"] .screen-container .btn-lg, +html[data-density="compact"] .form .btn-lg { + min-height: 32px; + padding: 4px 10px; + font-size: 12px; +} + +html[data-density="compact"] .form-link.btn.btn-link > img.icon { + width: 30px !important; + height: 30px !important; +} + +html[data-density="compact"] .form-link.btn.btn-link svg { + width: 30px !important; + height: 30px !important; +} + +html[data-density="compact"] .form-link.btn.btn-link { + padding: 4px 8px; + font-size: 12px; + line-height: 1.2; +} +html[data-density="compact"] .screen-container .nav-tabs { + margin-bottom: 8px; +} +html[data-density="compact"] .screen-container .nav-tabs > li > a, +html[data-density="compact"] .screen-container .nav-tabs > li > a:focus { + margin-right: 6px; + padding: var(--tradon-density-tab-padding-y) var(--tradon-density-tab-padding-x); +} +html[data-density="compact"] .form .form-one2many-menu .form-one2many-string, +html[data-density="compact"] .form .form-many2many-menu .form-one2many-string, +html[data-density="compact"] .form .form-one2many-menu .form-many2many-string, +html[data-density="compact"] .form .form-many2many-menu .form-many2many-string { + margin: 3px 5px; +} +html[data-density="compact"] .form .form-one2many-content .treeview, +html[data-density="compact"] .form .form-many2many-content .treeview, +html[data-density="compact"] .form .form-one2many-content .list-form, +html[data-density="compact"] .form .form-many2many-content .list-form { + min-height: 120px; + max-height: 240px; +} .screen-container { display: flex; flex-direction: column; @@ -9691,20 +9871,20 @@ img.icon { margin: 0 0 5px; } .ag-grid-tree-toolbar > .ag-grid-screen-filter-toggle-bar { - margin: 0 10px 0 auto; + margin: 0 4px 0 auto; } .ag-grid-screen-filter-toggle { display: inline-flex; align-items: center; - gap: 7px; - min-height: 30px; - padding: 4px 10px; - border: 1px solid #d6e4df; - border-radius: 8px; - background: linear-gradient(180deg, #f6fbf9 0%, #edf5f1 100%); + gap: 5px; + min-height: 26px; + padding: 2px 7px; + border: 1px solid #d8e2df; + border-radius: 6px; + background: #ffffff; color: #355154; - box-shadow: 0 2px 7px rgba(53, 81, 84, 0.1); - font-size: 12px; + box-shadow: none; + font-size: 11.5px; font-weight: 600; line-height: 1.2; text-transform: none !important; @@ -9713,18 +9893,18 @@ img.icon { } .ag-grid-screen-filter-toggle:hover, .ag-grid-screen-filter-toggle:focus { - background: linear-gradient(180deg, #f2faf7 0%, #e7f2ed 100%); + background: #f6faf8; border-color: #bfd5cd; color: #28484b; - box-shadow: 0 3px 9px rgba(53, 81, 84, 0.13); + box-shadow: 0 1px 1px rgba(53, 81, 84, 0.05); } .ag-grid-screen-filter-toggle:active { transform: translateY(1px); - box-shadow: 0 1px 5px rgba(53, 81, 84, 0.1); + box-shadow: none; } .ag-grid-screen-filter-toggle .icon { - width: 14px; - height: 14px; + width: 13px; + height: 13px; opacity: 0.78; } @media screen and (max-width: 991px) { @@ -10021,6 +10201,23 @@ img.icon { box-shadow: none !important; background: transparent !important; /* optionnel : si tu veux aussi supprimer le fond */ } + +html[data-theme-mode="dark"] .form-htmlviewer.htmlviewer-theme-dark, +html[data-theme-mode="dark"] .htmlviewer-content.htmlviewer-react-dashboard { + background: #07100e !important; + color: var(--tradon-dark-text, #eaf7f4) !important; +} + +html[data-theme-mode="dark"] .htmlviewer-content.htmlviewer-react-dashboard { + border: 1px solid rgba(118, 173, 165, 0.18) !important; + border-radius: 6px; + padding: 0; +} + +html[data-theme-mode="dark"] .htmlviewer-content.htmlviewer-react-dashboard iframe { + background: #07100e !important; + display: block; +} .form .form-container, .form .form-hcontainer, .form .form-vcontainer { @@ -10365,12 +10562,15 @@ img.icon { top: 12px; } html[data-theme-mode="dark"] .form fieldset.form-panel { - background: #16201f; - border-color: #263937; - box-shadow: none; + background: #172724; + border-color: #3a5954; + box-shadow: + inset 0 0 0 1px rgba(87, 193, 185, 0.14), + 0 4px 12px rgba(0, 0, 0, 0.16); } html[data-theme-mode="dark"] .form fieldset.form-panel > legend { - border-bottom-color: #263937; + background: #172724; + border-bottom-color: #3a5954; color: #8dd7d2; } html[data-theme-mode="dark"] .form fieldset.form-panel .form-label { @@ -10379,6 +10579,17 @@ html[data-theme-mode="dark"] .form fieldset.form-panel .form-label { html[data-theme-mode="dark"] .form fieldset.form-panel-sidebar .form-label { color: #8dd7d2; } + +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon, +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon img, +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon svg, +html[data-theme-mode="dark"] .screen-container .icon-input img, +html[data-theme-mode="dark"] .screen-container .icon-input svg { + color: #a9e3dd !important; + fill: #a9e3dd !important; + stroke: #a9e3dd !important; + filter: brightness(0) saturate(100%) invert(88%) sepia(13%) saturate(525%) hue-rotate(125deg) brightness(97%) contrast(88%) !important; +} @media screen and (max-width: 767px) { .form fieldset.form-panel-sticky { position: static; @@ -10563,6 +10774,139 @@ input.column-boolean { .progress { margin-bottom: 0px; } +.form-rich-graph { + min-width: 280px; + color: #324b4d; +} +.form-rich-graph-header { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 12px; + margin-bottom: 8px; +} +.form-rich-graph-title { + min-width: 0; + overflow: hidden; + font-size: 14px; + font-weight: 600; + text-overflow: ellipsis; + white-space: nowrap; +} +.form-rich-graph-meta { + flex: none; + color: #728180; + font-size: 12px; +} +.form-rich-graph-ranges { + display: inline-flex; + align-items: center; + gap: 4px; + margin-left: auto; +} +.form-rich-graph-range { + min-height: 22px; + padding: 2px 7px; + border: 1px solid #dbe7e3; + border-radius: 5px; + background: #ffffff; + color: #526261; + font-size: 11px; + font-weight: 700; + line-height: 1.2; +} +.form-rich-graph-range.active { + border-color: #2b8c87; + background: #e7f4f1; + color: #145d59; +} +.form-rich-graph-stage { + position: relative; + min-height: 220px; + overflow: hidden; + border: 1px solid #dbe7e3; + border-radius: 6px; + background: #fbfdfc; +} +.form-rich-graph-svg { + display: block; + width: 100%; + height: 100%; +} +.form-rich-graph-grid-line { + stroke: #e4ece9; + stroke-width: 1; +} +.form-rich-graph-axis-label, +.form-rich-graph-x-label { + fill: #70807f; + font-size: 11px; +} +.form-rich-graph-axis-label { + text-anchor: end; +} +.form-rich-graph-x-label { + text-anchor: middle; +} +.form-rich-graph-line { + fill: none; + stroke-width: 2; + stroke-linecap: round; + stroke-linejoin: round; +} +.form-rich-graph-point { + cursor: default; + stroke: #ffffff; + stroke-width: 1.5; +} +.form-rich-graph-hit, +.form-rich-graph-legend-svg-item { + cursor: pointer; +} +.form-rich-graph-legend-svg-item text { + font-size: 12px; + font-weight: 700; + dominant-baseline: middle; +} +.form-rich-graph-tooltip { + position: absolute; + z-index: 2; + max-width: 220px; + padding: 7px 9px; + border: 1px solid rgba(53, 81, 84, 0.16); + border-radius: 6px; + background: rgba(255, 255, 255, 0.96); + box-shadow: 0 8px 20px rgba(53, 81, 84, 0.14); + color: #243b3d; + font-size: 12px; + line-height: 1.35; + pointer-events: none; +} +.form-rich-graph-legend { + display: flex; + flex-wrap: wrap; + gap: 8px 14px; + margin-top: 8px; +} +.form-rich-graph-legend-item { + display: inline-flex; + align-items: center; + gap: 5px; + min-width: 0; + margin: 0; + color: #526261; + font-size: 12px; + font-weight: 500; + cursor: pointer; +} +.form-rich-graph-legend-item input { + margin: 0; +} +.form-rich-graph-legend-swatch { + width: 18px; + height: 3px; + border-radius: 3px; +} .form-tolerance-gauge { --tolerance-gauge-value: 50%; --tolerance-gauge-center: 50%; @@ -11079,6 +11423,19 @@ body { filter: none !important; } +html[data-theme-mode="dark"] .form-link.btn.btn-link, +html[data-theme-mode="dark"] .form-link.btn.btn-link .icon, +html[data-theme-mode="dark"] .form-link.btn.btn-link svg { + color: #a9e3dd !important; + fill: #a9e3dd !important; + stroke: #a9e3dd !important; +} + +html[data-theme-mode="dark"] .form-link.btn.btn-link > img.icon, +html[data-theme-mode="dark"] .form-link.btn.btn-link img.icon { + filter: brightness(0) saturate(100%) invert(88%) sepia(13%) saturate(525%) hue-rotate(125deg) brightness(97%) contrast(88%) !important; +} + .btn-modern { background-color: #FFFFFF; /* Bleu moderne */ color: black; @@ -11288,6 +11645,839 @@ html[theme="default"] .screen-container .nav-tabs > li.active > a:hover { box-shadow: none; } +html[theme="default"] .screen-container .form fieldset.form-panel-summary { + background: #ffffff; + border-color: #d8e6e1; + box-shadow: inset 0 0 0 1px #d8e6e1, 0 3px 10px rgba(30, 55, 58, 0.055); + color: #24484d; +} + +html[theme="default"] .screen-container .form fieldset.form-panel-summary .form-label { + color: #526967; +} + +html[theme="default"] .screen-container .form fieldset.form-panel-summary .form-widget, +html[theme="default"] .screen-container .form fieldset.form-panel-summary .form-widget span, +html[theme="default"] .screen-container .form fieldset.form-panel-summary .form-widget div { + color: #173b40; +} + +html[theme="default"] .screen-container .form fieldset.form-panel-summary .progress { + background: #dce9e5; + border: 1px solid #c6d9d3; + border-radius: 4px; +} + +html[theme="default"] .screen-container .form fieldset.form-panel-summary .progress-bar { + background: #2b8c87; + color: #ffffff; +} + +html[theme="default"] .screen-container .d3-execution-summary-container { + color: #173b40; +} + +html[data-density="compact"][theme="default"] #tabs, +html[data-density="compact"][theme="default"] .main-offcanvas { + overflow-y: auto !important; + height: 100% !important; +} + +html[data-density="compact"][theme="default"] #tablist { + align-items: center; + height: 40px; + min-height: 40px; + overflow-y: hidden; +} + +html[data-density="compact"][theme="default"] .content-box:not(.ag-grid-content-box) { + overflow-y: visible; +} + +html[data-density="compact"][theme="default"] .screen-container > .filter-box, +html[data-density="compact"][theme="default"] .screen-container .content-box > .form, +html[data-density="compact"][theme="default"] .screen-container .content-box > form { + border-radius: 8px; + padding: 4px 7px; +} + +html[data-density="compact"][theme="default"] .screen-container > .filter-box { + padding-top: 3px; + padding-bottom: 3px; +} + +html[data-density="compact"][theme="default"] .screen-container > .filter-box > .form, +html[data-density="compact"][theme="default"] .screen-container > .filter-box > form { + height: auto; + width: 100%; +} + +html[data-density="compact"][theme="default"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel) { + border-radius: 8px; + padding: 4px; +} + +html[data-density="compact"][theme="default"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel) + > .form-container { + gap: 2px 14px; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel { + margin-bottom: 5px; + padding: 25px 7px 6px; + border-radius: 7px; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel-summary { + padding: 7px 10px; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel-summary > .form-container, +html[data-density="compact"][theme="default"] .form .form-panel-summary-grid { + align-content: center; + align-items: center; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel-summary .form-item, +html[data-density="compact"][theme="default"] .form fieldset.form-panel-summary .form-label, +html[data-density="compact"][theme="default"] .form fieldset.form-panel-summary .form-widget { + align-items: center; + align-self: center; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel > legend { + margin-bottom: 5px; + padding-bottom: 3px; + top: 6px; + left: 7px; + right: 7px; + height: 16px; + font-size: 11.5px; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-item { + gap: 5px; + min-height: 25px; + min-width: 0; + padding-top: 2px; + padding-bottom: 2px; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-label { + flex: 0 0 auto; + margin-right: 3px; + max-width: 18ch; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel .input-group, +html[data-density="compact"][theme="default"] .form fieldset.form-panel .selection, +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-widget { + flex: 1 1 auto; + min-width: 0; + max-width: 100%; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel input.form-control, +html[data-density="compact"][theme="default"] .form fieldset.form-panel select.form-control { + min-width: 6ch; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-many2one input, +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-one2one input, +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-reference input { + min-width: 8ch; +} + +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-integer input, +html[data-density="compact"][theme="default"] .form fieldset.form-panel .form-float input { + min-width: 5ch; +} + +html[data-density="compact"][theme="default"] .screen-container > .filter-box .form-container { + align-items: center; +} + +html[data-density="compact"][theme="default"] .screen-container > .filter-box .form-item { + align-items: center; +} + +html[data-density="compact"][theme="default"] .screen-container .form-group { + margin-bottom: 5px; +} + +html[data-density="compact"][theme="default"] .screen-container .control-label, +html[data-density="compact"][theme="default"] .screen-container label { + font-size: var(--tradon-density-label-size); + line-height: 1.25; +} + +html[data-density="compact"][theme="default"] .screen-container input.form-control:not([type="checkbox"]):not([type="radio"]), +html[data-density="compact"][theme="default"] .screen-container select.form-control, +html[data-density="compact"][theme="default"] .screen-container textarea.form-control, +html[data-density="compact"][theme="default"] .screen-container .input-group > .form-control, +html[data-density="compact"][theme="default"] .screen-container input[type="text"]:not(.ag-grid-tree-panel-checkbox), +html[data-density="compact"][theme="default"] .screen-container input[type="date"]:not(.ag-grid-tree-panel-checkbox), +html[data-density="compact"][theme="default"] .screen-container input[type="datetime-local"]:not(.ag-grid-tree-panel-checkbox), +html[data-density="compact"][theme="default"] .screen-container input[type="number"]:not(.ag-grid-tree-panel-checkbox), +html[data-density="compact"][theme="default"] .screen-container input[type="search"]:not(.ag-grid-tree-panel-checkbox) { + height: var(--tradon-density-control-height); + min-height: var(--tradon-density-control-height); + padding: var(--tradon-density-control-padding-y) var(--tradon-density-control-padding-x); + font-size: var(--tradon-density-font-size); +} + +html[data-density="compact"][theme="default"] .screen-container .input-group-btn > .btn, +html[data-density="compact"][theme="default"] .screen-container .btn-group > .btn, +html[data-density="compact"][theme="default"] .screen-container .filter-box .btn { + min-height: var(--tradon-density-button-height); + padding: var(--tradon-density-control-padding-y) var(--tradon-density-control-padding-x); + border-radius: 6px; + font-size: var(--tradon-density-font-size); +} + +html[data-density="compact"][theme="default"] .screen-container .nav-tabs { + margin-bottom: 6px; +} + +html[data-density="compact"][theme="default"] .screen-container .nav-tabs > li > a, +html[data-density="compact"][theme="default"] .screen-container .nav-tabs > li > a:focus { + margin-right: 5px; + padding: var(--tradon-density-tab-padding-y) var(--tradon-density-tab-padding-x); + border-radius: 7px 7px 0 0; +} + +html[data-density="compact"][theme="default"] .tab-form nav.toolbar, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar, +html[data-density="compact"][theme="default"] .tab-form nav.toolbar.panel-heading, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar.panel-heading { + height: 36px; + min-height: 36px; + padding-top: 0; + padding-bottom: 0; + overflow: visible; +} + +html[data-density="compact"][theme="default"] .tab-form nav.toolbar .container-fluid, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar .container-fluid { + height: 36px; + min-height: 36px; + padding-top: 0; + padding-bottom: 0; +} + +html[data-density="compact"][theme="default"] .tab-form nav.toolbar .navbar-brand, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar .navbar-brand { + height: 36px; + padding-top: 7px; + padding-bottom: 7px; + line-height: 18px; +} + +html[data-density="compact"][theme="default"] .tab-form nav.toolbar .navbar-btn, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar .navbar-btn, +html[data-density="compact"][theme="default"] .tab-form nav.toolbar .btn.btn-default, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar .btn.btn-default { + display: inline-flex; + align-items: center; + justify-content: center; + height: 29px; + min-height: 29px; + margin-top: 3px; + margin-bottom: 3px; + padding-top: 2px; + padding-bottom: 2px; +} + +html[data-density="compact"][theme="default"] .tab-form nav.toolbar .navbar-text, +html[data-density="compact"][theme="default"] .tab-board nav.toolbar .navbar-text { + margin-top: 6px; + margin-bottom: 6px; + line-height: 22px; +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu, +html[data-density="compact"][theme="default"] .form .form-many2many-menu { + display: flex; + align-items: center; + gap: 6px; + height: 31px; + min-height: 31px; + padding: 2px 7px; + overflow: visible; + box-sizing: border-box; +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-one2many-string, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-one2many-string, +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-many2many-string, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-many2many-string { + margin: 1px 0; + line-height: 25px; +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-one2many-toolbar, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-one2many-toolbar, +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-many2many-toolbar, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-many2many-toolbar { + display: inline-flex; + align-items: center; + flex: 1 1 auto; + justify-content: flex-end; + min-width: 0; + max-width: 100%; + min-height: 25px; + float: none; +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-one2many-toolbar > .input-group, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-many2many-toolbar > .input-group { + display: flex; + align-items: center; + flex: 1 1 auto; + min-width: 0; + max-width: 100%; + width: min(100%, 420px); +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-one2many-toolbar > .input-group > .form-control, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-many2many-toolbar > .input-group > .form-control { + flex: 1 1 0; + min-width: 0; + width: auto; +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-one2many-toolbar > .input-group > .input-group-btn, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-many2many-toolbar > .input-group > .input-group-btn { + display: inline-flex; + flex: 0 0 auto; + width: auto; + white-space: nowrap; +} + +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-one2many-toolbar .btn, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-one2many-toolbar .btn, +html[data-density="compact"][theme="default"] .form .form-one2many-menu .form-many2many-toolbar .btn, +html[data-density="compact"][theme="default"] .form .form-many2many-menu .form-many2many-toolbar .btn { + height: 25px; + min-height: 25px; + margin-top: 0; + margin-bottom: 0; + padding-top: 2px; + padding-bottom: 2px; +} + +html[data-density="compact"] .navbar.navbar-inverse { + min-height: 40px; +} + +html[data-density="compact"] .navbar > .container-fluid, +html[data-density="compact"] .navbar-header, +html[data-density="compact"] #main_navbar { + min-height: 40px; +} + +html[data-density="compact"] .navbar-header { + display: flex; + align-items: center; +} + +html[data-density="compact"] .navbar-brand { + display: inline-flex !important; + align-items: center; + gap: 8px; + height: 40px; + padding: 0 10px; + line-height: 40px; +} + +html[data-density="compact"] .navbar-brand .icon, +html[data-density="compact"] .navbar .icon { + display: inline-flex; + align-items: center; + justify-content: center; +} + +html[data-density="compact"] .navbar-brand .icon svg { + width: 20px; + height: 20px; +} + +html[data-density="compact"] #title-logo { + height: 22px !important; + margin-left: 0 !important; +} + +html[data-density="compact"] .theme-mode-toggle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + min-width: 32px; + height: 32px; + min-height: 32px; + margin: 4px 0 4px 8px; + padding: 0; +} + +html[data-density="compact"] .theme-mode-toggle-icon, +html[data-density="compact"] .theme-mode-toggle-icon svg { + width: 15px; + height: 15px; +} + +html[data-density="compact"] #global-search { + display: flex; + align-items: center; + height: 40px; +} + +html[data-density="compact"] #global-search .global-search-container, +html[data-density="compact"] #global-search .global-search-container > .input-group, +html[data-density="compact"] #global-search .global-search-container > .dropdown { + display: flex; + align-items: center; + height: 32px; +} + +html[data-density="compact"] #global-search .global-search-container > .input-group { + overflow: visible; + border: 1px solid #d6e4df; + border-radius: 6px; + background: #fff; + box-shadow: 0 2px 5px rgba(53, 81, 84, 0.08); +} + +html[data-density="compact"] #global-search .global-search-container > .input-group:focus-within { + border-color: #0c6472; + box-shadow: 0 0 0 1px #0c6472, 0 2px 5px rgba(53, 81, 84, 0.08); +} + +html[data-density="compact"] #global-search-entry, +html[data-density="compact"] #global-search .form-control, +html[data-density="compact"] #global-search .input-group-btn > .btn { + height: 32px; + min-height: 32px; + padding-top: 0; + padding-bottom: 0; + font-size: 12px; + line-height: 32px; +} + +html[data-density="compact"] #global-search-entry, +html[data-density="compact"] #global-search-entry:focus, +html[data-density="compact"] #global-search .input-group-btn > .btn, +html[data-density="compact"] #global-search .input-group-btn > .btn:focus { + border: 0; + box-shadow: none; +} + +html[data-density="compact"] #global-search .input-group-btn > .btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + padding-left: 7px; + padding-right: 7px; +} + +html[data-density="compact"] #user-favorites { + position: relative; +} + +html[data-density="compact"] #user-favorites > .dropdown-menu { + z-index: 1100; + margin-top: 3px; + font-size: 12px; + line-height: 1.2; +} + +html[data-density="compact"] #user-favorites > .dropdown-menu > li > a { + display: flex; + align-items: center; + min-height: 26px; + padding: 3px 10px; + font-size: 12px; + line-height: 1.2; +} + +html[data-density="compact"] #global-search .input-group-btn img.icon, +html[data-density="compact"] #global-search .input-group-btn .icon { + width: 18px; + height: 18px; +} + +html[data-density="compact"] .global-search-container > .dropdown-menu { + font-size: 12px; + line-height: 1.2; +} + +html[data-density="compact"] .global-search-container > .dropdown-menu > li > a { + display: flex; + align-items: center; + min-height: 26px; + padding: 3px 10px; + font-size: 12px; + line-height: 1.2; +} + +html[data-density="compact"] .global-search-container .global_search-icon, +html[data-density="compact"] .global-search-container .global-search-icon { + flex: 0 0 auto; + width: 18px; + height: 18px; + margin-right: 5px; +} + +html[data-density="compact"] .global-search-container .global-search-text { + display: inline-flex; + align-items: center; + min-width: 0; + line-height: 1.2; +} + +html[data-density="compact"] .navbar-nav > li > a { + display: flex; + align-items: center; + min-height: 40px; + padding-top: 0; + padding-bottom: 0; +} + +html[data-density="compact"] #tablist > li { + display: flex; + align-items: center; + height: 40px; +} + +html[data-density="compact"] #tablist > li > a { + display: inline-flex; + align-items: center; + gap: 6px; + height: 32px; + min-height: 32px; + max-height: 32px; + padding: 0 10px; + font-size: 12px; + line-height: 1.15; +} + +html[data-density="compact"] #tablist > li > a > span { + display: inline-flex; + align-items: center; + min-width: 0; + line-height: 1.15; + margin-right: 8px; +} + +html[data-density="compact"] #tablist img.icon, +html[data-density="compact"] #tablist .icon { + flex: 0 0 auto; + width: 18px; + height: 18px; +} + +html[data-density="compact"] #tablist .close { + display: inline-flex; + align-items: center; + justify-content: center; + align-self: center; + width: 18px; + height: 18px; + margin-top: 0; + font-size: 20px; + line-height: 18px; +} + +html[data-density="compact"] #menu { + font-size: 12px; +} + +html[data-density="compact"] #menu .treeview, +html[data-density="compact"] #menu .treeview td, +html[data-density="compact"] #menu .treeview a, +html[data-density="compact"] #menu .nav > li > a { + font-size: 12px; + line-height: 1.25; +} + +html[data-density="compact"] #menu .treeview td, +html[data-density="compact"] #menu .nav > li > a { + padding-top: 3px; + padding-bottom: 3px; +} + +html[data-density="compact"] .screen-container > .filter-box .form-container { + align-content: center; + align-items: center; + height: auto !important; + min-height: var(--tradon-density-control-height); + row-gap: 0; +} + +html[data-density="compact"] .screen-container > .filter-box .form-item, +html[data-density="compact"] .screen-container > .filter-box .form-label, +html[data-density="compact"] .screen-container > .filter-box .input-group, +html[data-density="compact"] .screen-container > .filter-box .form-widget { + align-items: center; + align-self: center; +} + +html[data-density="compact"] .screen-container > .filter-box .form-item { + display: flex; + min-height: var(--tradon-density-control-height); + height: var(--tradon-density-control-height); + padding-top: 0; + padding-bottom: 0; +} + +html[data-density="compact"] .screen-container > .filter-box .form-label { + display: inline-flex; + align-items: center; + height: var(--tradon-density-control-height); + line-height: 1; + margin-top: 0; + margin-bottom: 0; +} + +html[data-density="compact"] .screen-container > .filter-box .input-group, +html[data-density="compact"] .screen-container > .filter-box .form-widget, +html[data-density="compact"] .screen-container > .filter-box .form-control { + height: var(--tradon-density-control-height); + min-height: var(--tradon-density-control-height); +} + +html[data-density="compact"] .screen-container > .filter-box > .row { + display: flex; + align-items: center; + gap: 5px; + min-height: 28px; + margin-left: 0; + margin-right: 0; +} + +html[data-density="compact"] .screen-container > .filter-box > .row > .col-sm-10 { + flex: 1 1 auto; + min-width: 0; + width: auto; + padding-left: 0; + padding-right: 0; +} + +html[data-density="compact"] .screen-container > .filter-box > .row > .col-sm-2 { + flex: 0 0 auto; + width: auto; + min-width: 0; + padding-left: 0; + padding-right: 0; +} + +html[data-density="compact"] .screen-container > .filter-box > .row > .pull-right { + float: none !important; +} + +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm { + display: flex; + align-items: stretch; + width: 100%; + height: 28px; + min-height: 28px; +} + +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm > .form-control { + height: 28px; + min-height: 28px; +} + +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm > .input-group-btn, +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm > .input-group-btn > .btn, +html[data-density="compact"] .screen-container > .filter-box > .row > .col-sm-2 > .btn-group, +html[data-density="compact"] .screen-container > .filter-box > .row > .col-sm-2 > .btn-group > .btn { + height: 28px; + min-height: 28px; +} + +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm > .input-group-btn { + display: inline-flex; + flex: 0 0 auto; + align-items: stretch; + width: auto; + white-space: nowrap; +} + +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm > .input-group-btn > .btn, +html[data-density="compact"] .screen-container > .filter-box > .row > .col-sm-2 > .btn-group > .btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding-top: 0; + padding-bottom: 0; +} + +html[data-density="compact"] .screen-container > .filter-box > .row .input-group.input-group-sm > .input-group-btn:first-child > .btn { + min-width: 64px; + justify-content: flex-start; + padding-left: 8px; + padding-right: 8px; + overflow: visible; + text-overflow: clip; +} + +html[data-density="compact"] .screen-container > .filter-box .form-container:has(fieldset.form-panel) { + align-content: stretch; + align-items: stretch; + row-gap: 5px; +} + +html[data-density="compact"] .screen-container > .filter-box .form-item:has(fieldset.form-panel) { + align-items: stretch; + align-self: stretch; + height: auto; + min-height: 0; +} + +html[data-density="compact"] .screen-container > .filter-box .form-item:has(fieldset.form-panel) > .form-widget { + align-self: stretch; + height: auto; + min-height: 0; +} + +html[data-density="compact"] .screen-container > .filter-box .form-item:not(:has(fieldset.form-panel)) { + align-items: center; +} + +html[data-density="compact"] .screen-container > .filter-box .form-item:not(:has(fieldset.form-panel)) > .form-widget, +html[data-density="compact"] .screen-container > .filter-box .form-item:not(:has(fieldset.form-panel)) > .form-label { + align-self: center; +} + +html[data-density="compact"] .input-icon .icon-input, +html[data-density="compact"] .input-sm .icon-input, +html[data-density="compact"] .input-group-sm .icon-input { + display: inline-flex; + align-items: center; + justify-content: center; + width: var(--tradon-density-control-height); + height: var(--tradon-density-control-height); + line-height: var(--tradon-density-control-height); + top: 0; +} + +html[data-density="compact"] .input-icon .icon-input img, +html[data-density="compact"] .input-icon .icon-input svg { + max-width: 14px; + max-height: 14px; +} + +html[data-density="compact"][dir="ltr"] .input-icon-primary > .form-control, +html[data-density="compact"][dir="ltr"] .input-sm.input-icon-primary > .form-control, +html[data-density="compact"][dir="ltr"] .input-group-sm.input-icon-primary > .form-control { + padding-left: 25px; +} + +html[data-density="compact"][dir="ltr"] .input-icon-secondary > .form-control, +html[data-density="compact"][dir="ltr"] .input-sm.input-icon-secondary > .form-control, +html[data-density="compact"][dir="ltr"] .input-group-sm.input-icon-secondary > .form-control { + padding-right: 25px; +} + +html[data-density="compact"] .input-icon-primary > .form-control, +html[data-density="compact"] .input-sm.input-icon-primary > .form-control, +html[data-density="compact"] .input-group-sm.input-icon-primary > .form-control { + padding-left: 25px; +} + +html[data-density="compact"] .input-icon-secondary > .form-control, +html[data-density="compact"] .input-sm.input-icon-secondary > .form-control, +html[data-density="compact"] .input-group-sm.input-icon-secondary > .form-control { + padding-right: 25px; +} + +html[dir="rtl"][data-density="compact"] .input-icon-primary > .form-control, +html[dir="rtl"][data-density="compact"] .input-sm.input-icon-primary > .form-control, +html[dir="rtl"][data-density="compact"] .input-group-sm.input-icon-primary > .form-control { + padding-left: var(--tradon-density-control-padding-x); + padding-right: 25px; +} + +html[dir="rtl"][data-density="compact"] .input-icon-secondary > .form-control, +html[dir="rtl"][data-density="compact"] .input-sm.input-icon-secondary > .form-control, +html[dir="rtl"][data-density="compact"] .input-group-sm.input-icon-secondary > .form-control { + padding-left: 25px; + padding-right: var(--tradon-density-control-padding-x); +} + +html[data-density="compact"] .input-group, +html[data-density="compact"] .form-many2one > .input-group, +html[data-density="compact"] .form-one2one > .input-group, +html[data-density="compact"] .form-reference > .input-group { + display: flex; + align-items: center; +} + +html[data-density="compact"] .input-group > .form-control { + flex: 1 1 auto; +} + +html[data-density="compact"] .input-group-addon, +html[data-density="compact"] .input-group-btn > .btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: var(--tradon-density-control-height); + height: var(--tradon-density-control-height); + padding-top: 0; + padding-bottom: 0; +} + +html[data-density="compact"] .form fieldset.form-panel, +html[data-density="compact"][theme="default"] .form fieldset.form-panel { + overflow: visible !important; +} + +html[data-density="compact"] .form fieldset.form-panel > .form-container { + overflow: visible; +} + +html[data-density="compact"] .form fieldset.form-group_.form-panel { + overflow: visible !important; +} + +html[data-density="compact"] .form fieldset.form-panel fieldset.form-group_, +html[data-density="compact"][theme="default"] .form fieldset.form-panel fieldset.form-group_ { + overflow-x: visible !important; + overflow-y: visible !important; +} + +.form .sao-completion-open, +.form fieldset.form-panel.sao-completion-open, +.form fieldset.form-group_.sao-completion-open { + position: relative; + z-index: 20000; + overflow: visible !important; +} + +.form .dropdown.sao-completion-open > .dropdown-menu, +.form .input-group.dropdown.sao-completion-open > .dropdown-menu { + z-index: 20001; + min-width: 100%; + max-width: min(420px, calc(100vw - 24px)); + margin-top: 2px; + background: #ffffff; + border: 1px solid #bfd5cd; + border-radius: 6px; + box-shadow: 0 12px 28px rgba(32, 54, 56, 0.22); + font-size: 12px; + line-height: 1.25; + text-transform: none; +} + +.form .dropdown.sao-completion-open > .dropdown-menu > li > a, +.form .input-group.dropdown.sao-completion-open > .dropdown-menu > li > a { + padding: 5px 10px; + line-height: 1.25; + white-space: nowrap; +} + .ag-grid-tree-container { display: flex; flex-direction: column; @@ -11304,24 +12494,26 @@ html[theme="default"] .screen-container .nav-tabs > li.active > a:hover { display: flex; align-items: center; justify-content: flex-start; - gap: 12px; - padding: 6px 0; + gap: 5px; + min-height: 32px; + padding: 2px 0 4px; } .ag-grid-tree-columns > .btn, .ag-grid-tree-grouping > .btn, .ag-grid-tree-layouts > .btn, -.ag-grid-value-filter-mode { +.ag-grid-value-filter-mode, +.ag-grid-view-transfer-button { display: inline-flex; align-items: center; - gap: 8px; - min-height: 34px; - padding: 6px 12px; - border: 1px solid #d6e4df; - border-radius: 8px; - background: linear-gradient(180deg, #f6fbf9 0%, #edf5f1 100%); + gap: 5px; + min-height: 27px; + padding: 3px 8px; + border: 1px solid #d8e2df; + border-radius: 6px; + background: #ffffff; color: #355154; - box-shadow: 0 3px 10px rgba(53, 81, 84, 0.12); + box-shadow: none; text-transform: none !important; transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; @@ -11331,20 +12523,23 @@ html[theme="default"] .screen-container .nav-tabs > li.active > a:hover { .ag-grid-tree-grouping > .btn:hover, .ag-grid-tree-layouts > .btn:hover, .ag-grid-value-filter-mode:hover, +.ag-grid-view-transfer-button:hover, .ag-grid-tree-columns > .btn:focus, .ag-grid-tree-grouping > .btn:focus, .ag-grid-tree-layouts > .btn:focus, -.ag-grid-value-filter-mode:focus { +.ag-grid-value-filter-mode:focus, +.ag-grid-view-transfer-button:focus { background: linear-gradient(180deg, #f2faf7 0%, #e7f2ed 100%); border-color: #bfd5cd; color: #28484b; - box-shadow: 0 5px 14px rgba(53, 81, 84, 0.16); + box-shadow: 0 1px 1px rgba(53, 81, 84, 0.05); } .ag-grid-tree-columns > .btn:active, .ag-grid-tree-grouping > .btn:active, .ag-grid-tree-layouts > .btn:active, -.ag-grid-value-filter-mode:active { +.ag-grid-value-filter-mode:active, +.ag-grid-view-transfer-button:active { transform: translateY(1px); box-shadow: 0 2px 8px rgba(53, 81, 84, 0.12); } @@ -12064,6 +13259,68 @@ html[theme="default"] .ag-grid-tree-grouping-panel input[type="checkbox"]:after --ag-scrollbar-size: 18px; } +html[data-density="compact"] .ag-grid-tree-toolbar { + min-height: var(--tradon-density-ag-toolbar-height); + padding: 1px 0 2px; +} + +html[data-density="compact"] .ag-grid-tree-columns > .btn, +html[data-density="compact"] .ag-grid-tree-grouping > .btn, +html[data-density="compact"] .ag-grid-tree-layouts > .btn, +html[data-density="compact"] .ag-grid-value-filter-mode, +html[data-density="compact"] .ag-grid-view-transfer-button, +html[data-density="compact"] .ag-grid-screen-filter-toggle { + min-height: 22px; + padding: 2px 6px; + font-size: 10.5px; +} + +html[data-density="compact"] .ag-grid-tree-columns-label, +html[data-density="compact"] .ag-grid-tree-grouping-label, +html[data-density="compact"] .ag-grid-tree-layouts-label, +html[data-density="compact"] .ag-grid-value-filter-mode-label { + font-size: 10.5px; +} + +html[data-density="compact"] .ag-grid-tree-summary { + min-height: 44px; + padding-top: 0; + padding-bottom: 0; +} + +html[data-density="compact"] .ag-grid-summary-item { + min-height: 44px; + padding: 6px 14px; +} + +html[data-density="compact"] .ag-grid-summary-value { + font-size: 16px; +} + +html[data-density="compact"] .ag-grid-tree-host { + min-height: 270px; + height: 270px !important; + --ag-row-height: var(--tradon-density-ag-row-height); + --ag-header-height: var(--tradon-density-ag-header-height); + --ag-list-item-height: 28px; +} + +html[data-density="compact"] .ag-grid-tree-embedded-one2many .ag-grid-tree-host { + min-height: 162px; + height: var(--tradon-density-ag-embedded-max-height) !important; +} + +html[data-density="compact"] .ag-grid-tree-host .ag-header-cell:not([col-id="__selection__"]), +html[data-density="compact"] .ag-grid-tree-host .ag-cell:not([col-id="__selection__"]) { + padding-left: 6px; + padding-right: 8px; +} + +html[data-density="compact"] .ag-grid-tree-host .ag-cell, +html[data-density="compact"] .ag-grid-tree-host .ag-header-cell-text { + font-size: 11px; +} + .ag-grid-tree-host .ag-body-horizontal-scroll, .ag-grid-tree-host .ag-body-horizontal-scroll-viewport, .ag-grid-tree-host .ag-body-horizontal-scroll-container { @@ -12250,18 +13507,32 @@ html[theme="default"] .ag-grid-tree-grouping-panel input[type="checkbox"]:after padding-left: 0; } +.ag-grid-tree-host .ag-header-cell[col-id="__selection__"], +.ag-grid-tree-host .ag-cell[col-id="__selection__"] { + overflow: visible; + padding-left: 6px; + padding-right: 6px; +} + .ag-grid-tree-host .ag-selection-checkbox, .ag-grid-tree-host .ag-header-select-all { display: flex; justify-content: center; align-items: center; + min-width: 18px; + min-height: 18px; + overflow: visible; } html[theme="default"] .ag-grid-tree-host input[type="checkbox"] { -webkit-appearance: auto; appearance: auto; position: static; - width: auto; + width: 16px; + min-width: 16px; + height: 16px; + min-height: 16px; + margin: 0; accent-color: #2b8c87; } @@ -12933,19 +14204,24 @@ html[data-theme-mode="dark"] .tab-form, html[data-theme-mode="dark"] .tab-board, html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel, html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel > .panel-body { - background: #101817; + background: #0b1312; color: #dce7e2; } html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel { - border-color: #1f2d2c; - box-shadow: none; + background: #101a18; + border-color: #263c38; + box-shadow: inset 0 1px 0 rgba(143, 225, 216, 0.05); +} + +html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel > .panel-body { + background: #101a18; } html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel > .panel-heading, html[data-theme-mode="dark"] .form .panel-heading { - background: #16201f; - border-color: #233533; + background: #0d1716; + border-color: #2f4844; color: #e4efea; } @@ -12955,8 +14231,8 @@ html[data-theme-mode="dark"] .tab-form nav.toolbar .container-fluid, html[data-theme-mode="dark"] .tab-board nav.toolbar .container-fluid, html[data-theme-mode="dark"] .tab-form nav.toolbar.panel-heading, html[data-theme-mode="dark"] .tab-board nav.toolbar.panel-heading { - background: #16201f !important; - border-color: #233533 !important; + background: #0d1716 !important; + border-color: #2f4844 !important; box-shadow: none !important; } @@ -13009,8 +14285,13 @@ html[data-theme-mode="dark"] .navbar-inverse #title-logo { } html[data-theme-mode="dark"] #menu { - background: #121b1a; - border-right: 1px solid #233231; + background: #08110f; + border-top: 0; + border-bottom: 0; + border-left: 0; + border-right: 1px solid #10231f; + border-radius: 0; + box-shadow: none; } html[data-theme-mode="dark"] #menu a, @@ -13047,17 +14328,308 @@ html[data-theme-mode="dark"] #menu .treeview tr.selected > td a { color: #8fe1d8 !important; } +.tradon-full-menu { + display: none; + height: calc(100vh - 50px - 1px - 20px); + padding: 16px 18px; + overflow: auto; + background: #f6f8f7; +} + +#main.tradon-full-menu-active .tradon-full-menu { + display: block; +} + +#main.tradon-full-menu-active .row-offcanvas { + display: none; +} + +.tradon-full-menu-grid { + display: grid; + grid-template-columns: repeat(6, minmax(0, 1fr)); + grid-auto-rows: minmax(220px, 1fr); + align-items: stretch; + gap: 14px; + min-height: 100%; +} + +.tradon-full-menu-card { + display: flex; + min-width: 0; + min-height: 0; + flex-direction: column; + overflow: hidden; + border: 1px solid #e0e7e4; + border-radius: 8px; + background: #ffffff; + box-shadow: 0 3px 12px rgba(47, 70, 84, 0.08); +} + +.tradon-full-menu-card-title { + display: flex; + align-items: center; + gap: 8px; + width: 100%; + min-height: 36px; + padding: 8px 10px; + overflow: hidden; + border: 0; + border-bottom: 1px solid #edf2f0; + background: #fbfdfc; + color: #25484b; + font-size: 14px; + font-weight: 700; + line-height: 1.2; + text-align: left; +} + +.tradon-full-menu-card-title:hover, +.tradon-full-menu-card-title:focus { + background: #eef8f5; + color: #0b7f7b; + outline: none; +} + +.tradon-full-menu-card-title > span { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.tradon-full-menu-icon { + flex: none; + width: 16px; + height: 16px; +} + +.tradon-full-menu-card-content { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; + padding: 8px 9px 10px; +} + +.tradon-full-menu-tabs { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 5px; + margin-bottom: 7px; +} + +.tradon-full-menu-tab, +.tradon-full-menu-link { + display: block; + min-width: 0; + overflow: hidden; + border: 0; + background: transparent; + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; +} + +.tradon-full-menu-tab { + height: 24px; + padding: 3px 7px; + border-radius: 6px; + color: #607171; + font-size: 11px; + font-weight: 600; +} + +.tradon-full-menu-tab.active, +.tradon-full-menu-tab:hover, +.tradon-full-menu-tab:focus { + background: #e9f5f2; + color: #0b7f7b; + outline: none; +} + +.tradon-full-menu-links { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; + gap: 2px; + overflow: auto; +} + +.tradon-full-menu-link { + flex: 0 0 auto; + min-height: 20px; + padding: 1px 4px; + color: #33484d; + font-size: 12px; + line-height: 18px; +} + +.tradon-full-menu-link.level-2, +.tradon-full-menu-link.level-3, +.tradon-full-menu-link.level-4, +.tradon-full-menu-link.level-5 { + color: #697879; + font-size: 11px; +} + +.tradon-full-menu-link.level-2 { + padding-left: 14px; +} + +.tradon-full-menu-link.level-3, +.tradon-full-menu-link.level-4, +.tradon-full-menu-link.level-5 { + padding-left: 24px; +} + +.tradon-full-menu-link:hover, +.tradon-full-menu-link:focus { + border-radius: 5px; + background: #eef8f5; + color: #0b7f7b; + outline: none; +} + +html[data-density="compact"] .tradon-full-menu { + height: calc(100vh - 40px - 1px); + padding: 10px 12px; +} + +html[data-density="compact"] .tradon-full-menu-grid { + grid-auto-rows: minmax(180px, 1fr); + gap: 9px; +} + +html[data-density="compact"] .tradon-full-menu-card-title { + min-height: 30px; + padding: 6px 8px; + font-size: 12px; +} + +html[data-density="compact"] .tradon-full-menu-card-content { + padding: 6px 7px 7px; +} + +html[data-density="compact"] .tradon-full-menu-link { + min-height: 17px; + font-size: 10.5px; + line-height: 15px; +} + +html[data-density="compact"] .tradon-full-menu-tab { + height: 20px; + padding: 2px 6px; + font-size: 10px; +} + +@media (max-width: 1599px) { + .tradon-full-menu-grid { + grid-template-columns: repeat(5, minmax(0, 1fr)); + } +} + +@media (max-width: 1199px) { + .tradon-full-menu-grid { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } +} + +html[data-theme-mode="dark"] .tradon-full-menu { + background: #101817; +} + +html[data-theme-mode="dark"] .tradon-full-menu-card { + border-color: #223331; + background: #16201f; + box-shadow: none; +} + +html[data-theme-mode="dark"] .tradon-full-menu-card-title { + border-bottom-color: #233533; + background: #1a2726; + color: #e4efea; +} + +html[data-theme-mode="dark"] .tradon-full-menu-card-title:hover, +html[data-theme-mode="dark"] .tradon-full-menu-card-title:focus, +html[data-theme-mode="dark"] .tradon-full-menu-tab.active, +html[data-theme-mode="dark"] .tradon-full-menu-tab:hover, +html[data-theme-mode="dark"] .tradon-full-menu-tab:focus, +html[data-theme-mode="dark"] .tradon-full-menu-link:hover, +html[data-theme-mode="dark"] .tradon-full-menu-link:focus { + background: rgba(43, 140, 135, 0.16); + color: #8fe1d8; +} + +html[data-theme-mode="dark"] .tradon-full-menu-tab, +html[data-theme-mode="dark"] .tradon-full-menu-link { + color: #cbd8d2; +} + +html[data-theme-mode="dark"] .tradon-full-menu-link.level-2, +html[data-theme-mode="dark"] .tradon-full-menu-link.level-3, +html[data-theme-mode="dark"] .tradon-full-menu-link.level-4, +html[data-theme-mode="dark"] .tradon-full-menu-link.level-5 { + color: #9eafaa; +} + html[data-theme-mode="dark"] #tablist > li > a, html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a { background: #1b2827; color: #cbd8d2; - border-left: 1px solid #263736; + border: 1px solid transparent; + border-left-color: #263736; + box-shadow: inset 0 -2px 0 transparent; +} + +html[data-theme-mode="dark"] #tablist > li > a:hover, +html[data-theme-mode="dark"] #tablist > li > a:focus, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a:hover, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a:focus { + background: #223331; + border-color: #34504c; + color: #edf6f1; } html[data-theme-mode="dark"] #tablist > li.active > a, -html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a { - background: #233231; - color: #f4fbf8; +html[data-theme-mode="dark"] #tablist > li.active > a:hover, +html[data-theme-mode="dark"] #tablist > li.active > a:focus, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a:hover, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a:focus { + background: #1b2827; + border-color: transparent; + color: #8dd7d2; + box-shadow: none; +} + +html[data-theme-mode="dark"] #tablist > li.active > a .close, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a .close { + background: transparent; + border: 0; + box-shadow: none; + color: #d9fffb; + opacity: 0.86; +} + +html[data-theme-mode="dark"] #tablist > li > a .close, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a .close { + background: transparent; + border: 0; + color: #7fbdb7; + text-shadow: none; + opacity: 0.72; +} + +html[data-theme-mode="dark"] #tablist > li > a .close:hover, +html[data-theme-mode="dark"] #tablist > li > a .close:focus, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a .close:hover, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a .close:focus { + background: rgba(87, 193, 185, 0.16); + border-radius: 4px; + color: #f4fffd; + opacity: 1; } html[data-theme-mode="dark"] .theme-mode-toggle { @@ -13072,6 +14644,94 @@ html[data-theme-mode="dark"] .theme-mode-toggle { box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25); } +html[data-theme-mode="dark"] #global-search .global-search-container > .input-group { + background: #1a2726; + border-color: #35504d; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.24); +} + +html[data-theme-mode="dark"] #global-search .global-search-container > .input-group:focus-within { + border-color: #57c1b9; + box-shadow: 0 0 0 2px rgba(87, 193, 185, 0.24); +} + +html[data-theme-mode="dark"] #global-search-entry, +html[data-theme-mode="dark"] #global-search .form-control, +html[data-theme-mode="dark"] #global-search .input-group-btn > .btn { + background: transparent; + border-color: transparent; + color: #edf6f1; + box-shadow: none; +} + +html[data-theme-mode="dark"] #global-search-entry::placeholder { + color: #a8bbb6; +} + +html[data-theme-mode="dark"] #global-search .input-group-btn > .btn:hover, +html[data-theme-mode="dark"] #global-search .input-group-btn > .btn:focus { + background: rgba(87, 193, 185, 0.14); + color: #f4fffd; +} + +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu { + background: #111d20; + border: 1px solid rgba(154, 190, 183, 0.18); + border-radius: 6px; + box-shadow: 0 16px 34px rgba(0, 0, 0, 0.42); + color: #dce7e2; +} + +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu > li > a, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu > li > a { + background: transparent; + color: #dce7e2; +} + +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu > li > a:hover, +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu > li > a:focus, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu > li > a:hover, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu > li > a:focus { + background: rgba(43, 154, 160, 0.14); + color: #f3fbf8; +} + +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu > .active > a, +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu > .active > a:hover, +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu > .active > a:focus, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu > .active > a, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu > .active > a:hover, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu > .active > a:focus { + background: rgba(43, 154, 160, 0.22); + color: #ffffff; +} + +html[data-theme-mode="dark"] .global-search-container > .dropdown-menu .divider, +html[data-theme-mode="dark"] #user-favorites > .dropdown-menu .divider { + background-color: rgba(154, 190, 183, 0.14); +} + +html[data-theme-mode="dark"] .global-search-container .global_search-icon, +html[data-theme-mode="dark"] .global-search-container .global-search-icon, +html[data-theme-mode="dark"] #user-favorites .dropdown-menu img.icon { + filter: var(--tradon-menu-icon-filter) !important; + opacity: 1; +} + +html[data-theme-mode="dark"] .global-search-container .global-search-text { + color: inherit; +} + +html[data-theme-mode="dark"] .tab-form nav.toolbar .badge, +html[data-theme-mode="dark"] .tab-board nav.toolbar .badge, +html[data-theme-mode="dark"] .toolbar.panel-heading .badge { + background: #203230; + border: 1px solid #57c1b9; + color: #f4fffd; + box-shadow: inset 0 0 0 1px rgba(87, 193, 185, 0.12); +} + html[data-theme-mode="light"] .theme-mode-toggle { margin: 8px 0 8px 10px; min-height: 34px; @@ -13106,16 +14766,65 @@ html[data-theme-mode="light"] .theme-mode-toggle { html[data-theme-mode="dark"] .screen-container > .filter-box, html[data-theme-mode="dark"] .screen-container .content-box > .form, html[data-theme-mode="dark"] .screen-container .content-box > form, +html[data-theme-mode="dark"] .content-box.ag-grid-content-box, +html[data-theme-mode="dark"] .ag-grid-tree-container, +html[data-theme-mode="dark"] .ag-grid-tree-toolbar, +html[data-theme-mode="dark"] .form .form-one2many-content, +html[data-theme-mode="dark"] .form .form-many2many-content, +html[data-theme-mode="dark"] .form .form-one2many-content .treeview, +html[data-theme-mode="dark"] .form .form-many2many-content .treeview, +html[data-theme-mode="dark"] .form .form-one2many-content .list-form, +html[data-theme-mode="dark"] .form .form-many2many-content .list-form, html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel, html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel, html[data-theme-mode="dark"] .ag-grid-filter-logic-panel, html[data-theme-mode="dark"] .ag-grid-tree-columns-panel { - background: linear-gradient(180deg, #162220 0%, #141e1d 100%); + background: linear-gradient(180deg, #172724 0%, #14221f 100%); border-color: #28403d; box-shadow: 0 8px 26px rgba(0, 0, 0, 0.34); color: #dce7e2; } +html[data-theme-mode="dark"] .screen-container .content-box > .form, +html[data-theme-mode="dark"] .screen-container .content-box > form, +html[data-theme-mode="dark"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel) { + background: #07100e; + border-color: #1b2f2b; + box-shadow: none; +} + +html[data-theme-mode="dark"] .form .form-one2many.panel.panel-default, +html[data-theme-mode="dark"] .form .form-many2many.panel.panel-default, +html[data-theme-mode="dark"] .screen-container .form-one2many.panel.panel-default, +html[data-theme-mode="dark"] .screen-container .form-many2many.panel.panel-default { + background: #07100e !important; + border-color: #1b2f2b !important; + color: #dce7e2; + box-shadow: none !important; +} + +html[data-theme-mode="dark"] .form .form-one2many.panel.panel-default > .panel-body, +html[data-theme-mode="dark"] .form .form-many2many.panel.panel-default > .panel-body, +html[data-theme-mode="dark"] .screen-container .form-one2many.panel.panel-default > .panel-body, +html[data-theme-mode="dark"] .screen-container .form-many2many.panel.panel-default > .panel-body { + background: #07100e !important; + color: #dce7e2; +} + +html[data-theme-mode="dark"] .ag-grid-tree-container, +html[data-theme-mode="dark"] .content-box.ag-grid-content-box, +html[data-theme-mode="dark"] .form .form-one2many-content, +html[data-theme-mode="dark"] .form .form-many2many-content { + border-color: #2a403d; +} + +html[data-theme-mode="dark"] .form .form-one2many-menu, +html[data-theme-mode="dark"] .form .form-many2many-menu { + background: #162622; + border-color: #36534e; + color: #dce7e2; +} + html[data-theme-mode="dark"] .screen-container .control-label, html[data-theme-mode="dark"] .screen-container label, html[data-theme-mode="dark"] .ag-grid-tree-grouping-title, @@ -13136,23 +14845,162 @@ html[data-theme-mode="dark"] .screen-container select.form-control, html[data-theme-mode="dark"] .screen-container textarea.form-control, html[data-theme-mode="dark"] .screen-container .input-group > .form-control, html[data-theme-mode="dark"] .screen-container .input-group > .form-control[readonly] { - background: #1a2726; - border-color: #304643; + background: #203432; + border-color: #496b65; color: #edf6f1; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25); } +html[data-theme-mode="dark"] .screen-container .form-control, +html[data-theme-mode="dark"] .screen-container input[type="text"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="number"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="search"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="date"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="datetime-local"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container select, +html[data-theme-mode="dark"] .screen-container textarea, +html[data-theme-mode="dark"] .screen-container .selection, +html[data-theme-mode="dark"] .form .form-selection input, +html[data-theme-mode="dark"] .form .form-selection select, +html[data-theme-mode="dark"] .form .form-multiselection input, +html[data-theme-mode="dark"] .form .form-multiselection select { + background: #203432 !important; + border-color: #496b65 !important; + color: #edf6f1 !important; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25) !important; +} + +html[data-theme-mode="dark"] .screen-container .form-control[readonly], +html[data-theme-mode="dark"] .screen-container .form-control[disabled], +html[data-theme-mode="dark"] .screen-container input[readonly], +html[data-theme-mode="dark"] .screen-container input[disabled], +html[data-theme-mode="dark"] .screen-container select[disabled] { + background: #162220 !important; + color: #b9cbc6 !important; +} + +html[data-theme-mode="dark"] .screen-container input[type="checkbox"] { + background: transparent !important; + box-shadow: none !important; +} + +html[data-theme-mode="dark"] .screen-container input[type="checkbox"]:before { + background: transparent !important; + border-color: #496b65 !important; +} + +html[data-theme-mode="dark"] .screen-container input[type="checkbox"]:focus:before { + border-color: #8dd7d2 !important; +} + +html[data-theme-mode="dark"] .screen-container input[type="checkbox"]:checked:before, +html[data-theme-mode="dark"] .screen-container input[type="checkbox"]:indeterminate:before { + background: #2b8c87 !important; + border-color: #57c1b9 !important; +} + html[data-theme-mode="dark"] .screen-container input::placeholder, html[data-theme-mode="dark"] .screen-container textarea::placeholder { color: #8ea39f; } +html[data-theme-mode="dark"] .screen-container .nav-tabs { + border-bottom-color: #2d4542; +} + +html[data-theme-mode="dark"] .screen-container .nav-tabs > li > a, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li > a:focus { + background: transparent; + border-color: transparent; + color: #a8bbb6; +} + +html[data-theme-mode="dark"] .screen-container .nav-tabs > li > a:hover, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li > a:focus:hover { + background: #1b2a28; + border-color: #304a46; + color: #edf6f1; +} + +html[data-theme-mode="dark"] .screen-container .nav-tabs > li.active > a, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li.active > a:focus, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li.active > a:hover { + background: transparent; + border-color: transparent; + color: #8dd7d2; + font-weight: 700; + box-shadow: none; +} + +html[data-theme-mode="dark"] .form-rich-graph { + color: #dce7e2; +} + +html[data-theme-mode="dark"] .form-rich-graph-meta, +html[data-theme-mode="dark"] .form-rich-graph-legend-item { + color: #9db0ab; +} + +html[data-theme-mode="dark"] .form-rich-graph-range { + background: #17282c; + border-color: rgba(154, 190, 183, 0.16); + color: #9fb4af; +} + +html[data-theme-mode="dark"] .form-rich-graph-range:hover, +html[data-theme-mode="dark"] .form-rich-graph-range:focus { + background: #20383d; + border-color: rgba(101, 215, 208, 0.34); + color: #eef7f4; +} + +html[data-theme-mode="dark"] .form-rich-graph-range.active { + background: rgba(101, 215, 208, 0.16); + border-color: rgba(101, 215, 208, 0.48); + color: #65d7d0; +} + +html[data-theme-mode="dark"] .form-rich-graph-stage { + background: #111a22; + border-color: #243342; +} + +html[data-theme-mode="dark"] .form-rich-graph-grid-line { + stroke: #243342; +} + +html[data-theme-mode="dark"] .form-rich-graph-axis-label, +html[data-theme-mode="dark"] .form-rich-graph-x-label { + fill: #8796a5; +} + +html[data-theme-mode="dark"] .form-rich-graph-point { + stroke: #111a22; +} + +html[data-theme-mode="dark"] .form-rich-graph-legend-svg-item text { + paint-order: stroke; + stroke: #111a22; + stroke-width: 3px; +} + +html[data-theme-mode="dark"] .form-rich-graph-tooltip { + background: rgba(15, 23, 31, 0.96); + border-color: #304357; + color: #edf6f1; + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3); +} + html[data-theme-mode="dark"] .screen-container .input-group-btn > .btn, html[data-theme-mode="dark"] .screen-container .btn-group > .btn, html[data-theme-mode="dark"] .screen-container .filter-box .btn, +html[data-theme-mode="dark"] .screen-container .btn, +html[data-theme-mode="dark"] .form .btn, html[data-theme-mode="dark"] .ag-grid-tree-columns > .btn, html[data-theme-mode="dark"] .ag-grid-tree-grouping > .btn, html[data-theme-mode="dark"] .ag-grid-tree-layouts > .btn, +html[data-theme-mode="dark"] .ag-grid-value-filter-mode, +html[data-theme-mode="dark"] .ag-grid-screen-filter-toggle, html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel .btn, html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel .btn, html[data-theme-mode="dark"] .ag-grid-filter-logic-panel .btn, @@ -13168,9 +15016,18 @@ html[data-theme-mode="dark"] .ag-theme-alpine .ag-filter-apply-panel .ag-standar html[data-theme-mode="dark"] .screen-container .input-group-btn > .btn:hover, html[data-theme-mode="dark"] .screen-container .btn-group > .btn:hover, html[data-theme-mode="dark"] .screen-container .filter-box .btn:hover, +html[data-theme-mode="dark"] .screen-container .btn:hover, +html[data-theme-mode="dark"] .screen-container .btn:focus, +html[data-theme-mode="dark"] .form .btn:hover, +html[data-theme-mode="dark"] .form .btn:focus, html[data-theme-mode="dark"] .ag-grid-tree-columns > .btn:hover, html[data-theme-mode="dark"] .ag-grid-tree-grouping > .btn:hover, html[data-theme-mode="dark"] .ag-grid-tree-layouts > .btn:hover, +html[data-theme-mode="dark"] .ag-grid-value-filter-mode:hover, +html[data-theme-mode="dark"] .ag-grid-value-filter-mode:focus, +html[data-theme-mode="dark"] .ag-grid-value-filter-mode.active, +html[data-theme-mode="dark"] .ag-grid-screen-filter-toggle:hover, +html[data-theme-mode="dark"] .ag-grid-screen-filter-toggle:focus, html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel .btn:hover, html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel .btn:hover, html[data-theme-mode="dark"] .ag-grid-filter-logic-panel .btn:hover, @@ -13182,6 +15039,22 @@ html[data-theme-mode="dark"] .ag-theme-alpine .ag-filter-apply-panel .ag-standar color: #f0faf6; } +html[data-theme-mode="dark"] .screen-container .btn-primary, +html[data-theme-mode="dark"] .form .btn-primary { + background: linear-gradient(180deg, #28524e 0%, #1f3f3c 100%); + border-color: #69d7cf; + color: #f4fffd; +} + +html[data-theme-mode="dark"] .screen-container .btn .badge, +html[data-theme-mode="dark"] .form .btn .badge, +html[data-theme-mode="dark"] .form .form-one2many-menu .badge, +html[data-theme-mode="dark"] .form .form-many2many-menu .badge { + background: #223331; + border: 1px solid #57c1b9; + color: #f4fffd; +} + html[data-theme-mode="dark"] .ag-grid-filter-logic-help, html[data-theme-mode="dark"] .ag-grid-filter-logic-empty, html[data-theme-mode="dark"] .ag-grid-filter-logic-item-values { @@ -13235,14 +15108,14 @@ html[data-theme-mode="dark"] .form-tolerance-gauge-label-center { } html[data-theme-mode="dark"] .form-tolerance-gauge-track { - border-color: #304643; - background: linear-gradient(180deg, #213130 0%, #1a2726 100%); + border-color: #496b65; + background: linear-gradient(180deg, #2d4642 0%, #243a36 100%); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.28); } html[data-theme-mode="dark"] .form-tolerance-gauge-fill { - background: linear-gradient(90deg, #57c1b9 0%, #2b8c87 100%); - box-shadow: 0 0 0 1px rgba(143, 225, 216, 0.18); + background: linear-gradient(90deg, #75cfc7 0%, #4caea6 100%); + box-shadow: 0 0 0 1px rgba(143, 225, 216, 0.12); } html[data-theme-mode="dark"] .form-tolerance-gauge-center-tick, @@ -13284,6 +15157,57 @@ html[data-theme-mode="dark"] .ag-grid-tree-host { --ag-checkbox-indeterminate-color: #57c1b9; } +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root-wrapper-body, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-layout-normal, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-layout-auto-height, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-viewport-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-clipper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-pinned-left-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-pinned-right-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-floating-bottom, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-overlay, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-overlay-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-horizontal-scroll, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-horizontal-scroll-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-horizontal-scroll-container { + background: #101817 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host.ag-theme-alpine { + background: #101817 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-external-horizontal-scroll { + background: #101817; + border-color: #2a403d; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-horizontal-scroll, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-horizontal-scroll-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-external-horizontal-scroll, +html[data-theme-mode="dark"] .ag-grid-tree-host ::-webkit-scrollbar-track, +html[data-theme-mode="dark"] .ag-grid-tree-external-horizontal-scroll::-webkit-scrollbar-track { + background: #07100e !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host ::-webkit-scrollbar-thumb, +html[data-theme-mode="dark"] .ag-grid-tree-external-horizontal-scroll::-webkit-scrollbar-thumb { + background: #36534e !important; + border: 2px solid #07100e !important; +} + +html[data-theme-mode="dark"] .screen-container hr, +html[data-theme-mode="dark"] .form .form-separator hr, +html[data-theme-mode="dark"] .screen-container .nav-tabs { + border-color: #24413c; +} + html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell, html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell { border-right-color: #213230; @@ -13372,6 +15296,25 @@ html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-text { color: #eff8f4; } +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge { + min-height: 17px; + padding: 1px 7px; + font-size: 10px; + line-height: 1.25; +} + +html[data-density="compact"] .ag-grid-tree-host .ag-grid-badge { + min-height: 16px; + padding: 1px 6px; + font-size: 9.5px; +} + +html[data-density="compact"] .ag-grid-tree-host .ag-cell, +html[data-density="compact"] .ag-grid-tree-host .ag-header-cell-text, +html[data-density="compact"] .ag-grid-tree-host .ag-group-value { + font-size: 10.5px; +} + html[data-theme-mode="dark"] .ag-grid-group-row .ag-cell { background: #1c2b29; color: #eaf4ef; @@ -13382,3 +15325,1302 @@ html[data-theme-mode="dark"] .ag-grid-total-row .ag-cell { color: #f3fbf7; } +html[data-theme-mode="dark"] { + --tradon-dark-bg: #07100e; + --tradon-dark-surface: #101c1f; + --tradon-dark-panel: #142326; + --tradon-dark-panel-header: #192c30; + --tradon-dark-field: #1b2b2f; + --tradon-dark-field-focus: #21373b; + --tradon-dark-line: rgba(154, 190, 183, 0.16); + --tradon-dark-line-strong: rgba(154, 190, 183, 0.28); + --tradon-dark-text: #eef7f4; + --tradon-dark-muted: rgba(220, 231, 226, 0.66); + --tradon-dark-faint: rgba(220, 231, 226, 0.48); + --tradon-dark-accent: #65d7d0; + --tradon-dark-accent-soft: rgba(101, 215, 208, 0.16); +} + +html[data-theme-mode="dark"] body, +html[data-theme-mode="dark"] .body, +html[data-theme-mode="dark"] #main, +html[data-theme-mode="dark"] #tabs, +html[data-theme-mode="dark"] #tabcontent, +html[data-theme-mode="dark"] .tab-content, +html[data-theme-mode="dark"] .tab-pane, +html[data-theme-mode="dark"] .content-box, +html[data-theme-mode="dark"] .main-offcanvas, +html[data-theme-mode="dark"] .tab-form, +html[data-theme-mode="dark"] .tab-board, +html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel, +html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel > .panel-body, +html[data-theme-mode="dark"] .screen-container .content-box > .form, +html[data-theme-mode="dark"] .screen-container .content-box > form, +html[data-theme-mode="dark"] .form .tab-pane:has(> .form-container > .form-item > fieldset.form-panel) { + background: var(--tradon-dark-bg) !important; + color: var(--tradon-dark-text); +} + +html[data-theme-mode="dark"] .navbar.navbar-inverse, +html[data-theme-mode="dark"] .tab-form nav.toolbar, +html[data-theme-mode="dark"] .tab-board nav.toolbar, +html[data-theme-mode="dark"] .tab-form nav.toolbar .container-fluid, +html[data-theme-mode="dark"] .tab-board nav.toolbar .container-fluid, +html[data-theme-mode="dark"] .tab-form nav.toolbar.panel-heading, +html[data-theme-mode="dark"] .tab-board nav.toolbar.panel-heading { + background: linear-gradient(180deg, #111d20 0%, #0c1618 100%) !important; + border-color: var(--tradon-dark-line) !important; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03), 0 12px 26px rgba(0, 0, 0, 0.22) !important; +} + +html[data-theme-mode="dark"] #tabcontent > .tab-pane > .panel > .panel-heading, +html[data-theme-mode="dark"] .form .panel-heading { + background: var(--tradon-dark-panel-header) !important; + border-color: var(--tradon-dark-line) !important; +} + +html[data-theme-mode="dark"] .form fieldset.form-panel, +html[data-theme-mode="dark"] .screen-container > .filter-box, +html[data-theme-mode="dark"] .content-box.ag-grid-content-box, +html[data-theme-mode="dark"] .ag-grid-tree-container, +html[data-theme-mode="dark"] .form .form-one2many.panel.panel-default, +html[data-theme-mode="dark"] .form .form-many2many.panel.panel-default, +html[data-theme-mode="dark"] .screen-container .form-one2many.panel.panel-default, +html[data-theme-mode="dark"] .screen-container .form-many2many.panel.panel-default { + background: linear-gradient(180deg, #142326 0%, #101d20 100%) !important; + border-color: var(--tradon-dark-line) !important; + box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.03) !important; +} + +html[data-theme-mode="dark"] .form fieldset.form-panel > legend, +html[data-theme-mode="dark"] .form .form-one2many-menu, +html[data-theme-mode="dark"] .form .form-many2many-menu, +html[data-theme-mode="dark"] .ag-grid-tree-toolbar { + background: linear-gradient(180deg, var(--tradon-dark-panel-header) 0%, #142326 100%) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-accent) !important; +} + +html[data-theme-mode="dark"] .form fieldset.form-panel .form-label, +html[data-theme-mode="dark"] .form fieldset.form-panel-sidebar .form-label, +html[data-theme-mode="dark"] .screen-container .control-label, +html[data-theme-mode="dark"] .screen-container label { + color: var(--tradon-dark-muted) !important; + font-weight: 600; +} + +html[data-theme-mode="dark"] .screen-container input.form-control:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .screen-container select.form-control, +html[data-theme-mode="dark"] .screen-container textarea.form-control, +html[data-theme-mode="dark"] .screen-container .input-group > .form-control, +html[data-theme-mode="dark"] .screen-container .form-control, +html[data-theme-mode="dark"] .screen-container input[type="text"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="number"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="search"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="date"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container input[type="datetime-local"]:not(.ag-grid-tree-panel-checkbox), +html[data-theme-mode="dark"] .screen-container select, +html[data-theme-mode="dark"] .screen-container textarea, +html[data-theme-mode="dark"] .screen-container .selection { + background: var(--tradon-dark-field) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-text) !important; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.18) !important; +} + +html[data-theme-mode="dark"] .screen-container input.form-control:focus, +html[data-theme-mode="dark"] .screen-container select.form-control:focus, +html[data-theme-mode="dark"] .screen-container textarea.form-control:focus, +html[data-theme-mode="dark"] .screen-container .input-group > .form-control:focus, +html[data-theme-mode="dark"] .screen-container input[type="text"]:focus, +html[data-theme-mode="dark"] .screen-container input[type="number"]:focus, +html[data-theme-mode="dark"] .screen-container input[type="search"]:focus, +html[data-theme-mode="dark"] .screen-container input[type="date"]:focus, +html[data-theme-mode="dark"] .screen-container input[type="datetime-local"]:focus { + background: var(--tradon-dark-field-focus) !important; + border-color: rgba(101, 215, 208, 0.58) !important; + box-shadow: 0 0 0 2px rgba(101, 215, 208, 0.12), inset 0 1px 1px rgba(0, 0, 0, 0.2) !important; +} + +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon, +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon svg { + color: var(--tradon-dark-accent) !important; + fill: var(--tradon-dark-accent) !important; + stroke: var(--tradon-dark-accent) !important; +} + +html[data-theme-mode="dark"] .screen-container .icon-input img, +html[data-theme-mode="dark"] .screen-container .icon-input svg, +html[data-theme-mode="dark"] .tab-form nav.toolbar .btn img.icon, +html[data-theme-mode="dark"] .tab-board nav.toolbar .btn img.icon { + opacity: 0.72; + filter: brightness(0) saturate(100%) invert(77%) sepia(14%) saturate(336%) hue-rotate(125deg) brightness(93%) contrast(88%) !important; +} + +html[data-theme-mode="dark"] #tablist > li > a, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li > a { + background: linear-gradient(180deg, #142125 0%, #111b1e 100%); + border-color: var(--tradon-dark-line); + color: var(--tradon-dark-muted); +} + +html[data-theme-mode="dark"] #tablist > li.active > a, +html[data-theme-mode="dark"] #tablist > li.active > a:hover, +html[data-theme-mode="dark"] #tablist > li.active > a:focus, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a:hover, +html[data-theme-mode="dark"] .navbar-nav.nav-pills > li.active > a:focus { + background: linear-gradient(180deg, #0f827f 0%, #086565 100%); + border-color: rgba(101, 215, 208, 0.38); + color: #f6fffd; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 8px 18px rgba(0, 0, 0, 0.22); +} + +html[data-theme-mode="dark"] .screen-container .nav-tabs { + background: rgba(16, 28, 31, 0.62); + border-bottom-color: var(--tradon-dark-line); +} + +html[data-theme-mode="dark"] .screen-container .nav-tabs > li > a, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li > a:focus { + color: var(--tradon-dark-muted); +} + +html[data-theme-mode="dark"] .screen-container .nav-tabs > li.active > a, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li.active > a:focus, +html[data-theme-mode="dark"] .screen-container .nav-tabs > li.active > a:hover { + background: transparent; + border-color: transparent; + border-bottom: 2px solid var(--tradon-dark-accent); + color: var(--tradon-dark-accent); + box-shadow: none; +} + +html[data-theme-mode="dark"] .tab-form nav.toolbar .btn.btn-default, +html[data-theme-mode="dark"] .tab-board nav.toolbar .btn.btn-default, +html[data-theme-mode="dark"] .tab-form nav.toolbar .navbar-btn, +html[data-theme-mode="dark"] .tab-board nav.toolbar .navbar-btn, +html[data-theme-mode="dark"] .screen-container .btn, +html[data-theme-mode="dark"] .form .btn, +html[data-theme-mode="dark"] .ag-grid-tree-columns > .btn, +html[data-theme-mode="dark"] .ag-grid-tree-grouping > .btn, +html[data-theme-mode="dark"] .ag-grid-tree-layouts > .btn, +html[data-theme-mode="dark"] .ag-grid-value-filter-mode, +html[data-theme-mode="dark"] .ag-grid-screen-filter-toggle { + background: #17282c !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-text) !important; + box-shadow: none !important; +} + +html[data-theme-mode="dark"] .tab-form nav.toolbar .btn.btn-default:hover, +html[data-theme-mode="dark"] .tab-board nav.toolbar .btn.btn-default:hover, +html[data-theme-mode="dark"] .screen-container .btn:hover, +html[data-theme-mode="dark"] .screen-container .btn:focus, +html[data-theme-mode="dark"] .form .btn:hover, +html[data-theme-mode="dark"] .form .btn:focus { + background: #20383d !important; + border-color: var(--tradon-dark-line-strong) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host { + --ag-background-color: #0b1517; + --ag-header-background-color: #17282c; + --ag-foreground-color: #dce7e2; + --ag-header-foreground-color: #f2faf7; + --ag-border-color: var(--tradon-dark-line); + --ag-row-border-color: rgba(154, 190, 183, 0.1); + --ag-odd-row-background-color: #112022; + --ag-selected-row-background-color: rgba(101, 215, 208, 0.18); +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root-wrapper-body, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-layout-normal, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-layout-auto-height, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-viewport-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-clipper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-pinned-left-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-pinned-right-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-floating-bottom, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-overlay, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-overlay-wrapper { + background: #0b1517 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header { + background: #17282c !important; + border-bottom-color: var(--tradon-dark-line-strong); +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell { + border-right-color: rgba(154, 190, 183, 0.09); +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row { + background-color: #0b1517; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row:nth-child(odd) { + background-color: #112022; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row:hover { + background-color: #173034 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell a, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell .cell { + color: #68d7cf; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-label, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-group-value { + color: #dce7e2; +} + +html[data-theme-mode="dark"] .form-tolerance-gauge-track { + border-color: rgba(154, 190, 183, 0.18); + background: #18282c; +} + +html[data-theme-mode="dark"] .form-tolerance-gauge-fill { + background: linear-gradient(90deg, #65d7d0 0%, #3da9a5 100%); +} + +html[data-theme-mode="dark"] { + --tradon-menu-icon: #2b9aa0; + --tradon-menu-icon-filter: brightness(0) saturate(100%) invert(45%) sepia(57%) saturate(501%) hue-rotate(136deg) brightness(92%) contrast(88%); +} + +html[data-theme-mode="dark"] #menu .icon, +html[data-theme-mode="dark"] #menu svg, +html[data-theme-mode="dark"] #menu [class*="icon"], +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon, +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon svg, +html[data-theme-mode="dark"] .screen-container .icon-input svg, +html[data-theme-mode="dark"] .form-link.btn.btn-link, +html[data-theme-mode="dark"] .form-link.btn.btn-link .icon, +html[data-theme-mode="dark"] .form-link.btn.btn-link svg, +html[data-theme-mode="dark"] .tab-form nav.toolbar .btn, +html[data-theme-mode="dark"] .tab-board nav.toolbar .btn, +html[data-theme-mode="dark"] .ag-grid-toolbar-icon { + color: var(--tradon-menu-icon) !important; + fill: var(--tradon-menu-icon) !important; + stroke: var(--tradon-menu-icon) !important; +} + +html[data-theme-mode="dark"] #menu img.icon, +html[data-theme-mode="dark"] .form fieldset.form-panel > legend .form-panel-icon img, +html[data-theme-mode="dark"] .screen-container .icon-input img, +html[data-theme-mode="dark"] .form-link.btn.btn-link > img.icon, +html[data-theme-mode="dark"] .form-link.btn.btn-link img.icon, +html[data-theme-mode="dark"] .tab-form nav.toolbar .btn img.icon, +html[data-theme-mode="dark"] .tab-board nav.toolbar .btn img.icon { + opacity: 1; + filter: var(--tradon-menu-icon-filter) !important; +} + +html[data-theme-mode="dark"] .tab-form nav.toolbar, +html[data-theme-mode="dark"] .tab-board nav.toolbar, +html[data-theme-mode="dark"] .tab-form nav.toolbar.panel-heading, +html[data-theme-mode="dark"] .tab-board nav.toolbar.panel-heading, +html[data-theme-mode="dark"] .tab-form nav.toolbar .container-fluid, +html[data-theme-mode="dark"] .tab-board nav.toolbar .container-fluid { + background: var(--tradon-dark-bg) !important; + border-left-color: transparent !important; + box-shadow: none !important; +} + +html[data-theme-mode="dark"] .tab-form nav.toolbar .container-fluid, +html[data-theme-mode="dark"] .tab-board nav.toolbar .container-fluid { + padding-left: 0; +} + +html[data-theme-mode="dark"] .tab-form nav.toolbar .navbar-brand, +html[data-theme-mode="dark"] .tab-board nav.toolbar .navbar-brand { + background: transparent !important; +} + +html[data-theme-mode="dark"] .tab-form > nav.toolbar.panel-heading, +html[data-theme-mode="dark"] .tab-board > nav.toolbar.panel-heading, +html[data-theme-mode="dark"] .panel.tab-form > nav.toolbar.panel-heading, +html[data-theme-mode="dark"] .panel.tab-board > nav.toolbar.panel-heading { + margin-left: 0 !important; + padding-left: 0 !important; + border-left: 0 !important; + background: var(--tradon-dark-bg) !important; + background-image: none !important; +} + +html[data-theme-mode="dark"] .tab-form > nav.toolbar.panel-heading > .container-fluid, +html[data-theme-mode="dark"] .tab-board > nav.toolbar.panel-heading > .container-fluid, +html[data-theme-mode="dark"] .panel.tab-form > nav.toolbar.panel-heading > .container-fluid, +html[data-theme-mode="dark"] .panel.tab-board > nav.toolbar.panel-heading > .container-fluid { + margin-left: 0 !important; + padding-left: 0 !important; + background: transparent !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-container { + background: #0b1517 !important; + border-color: rgba(154, 190, 183, 0.16) !important; + box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-toolbar { + gap: 7px; + min-height: 34px; + padding: 5px 8px; + background: linear-gradient(180deg, #132326 0%, #0f1c1f 100%) !important; + border-color: rgba(154, 190, 183, 0.12) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-columns > .btn, +html[data-theme-mode="dark"] .ag-grid-tree-grouping > .btn, +html[data-theme-mode="dark"] .ag-grid-tree-layouts > .btn, +html[data-theme-mode="dark"] .ag-grid-value-filter-mode, +html[data-theme-mode="dark"] .ag-grid-screen-filter-toggle { + min-height: 26px; + padding: 4px 9px; + border-radius: 5px; + background: rgba(27, 43, 47, 0.82) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host { + border-color: rgba(154, 190, 183, 0.14) !important; + border-radius: 4px; + --ag-background-color: #0d181a; + --ag-header-background-color: #1b292c; + --ag-foreground-color: #dce7e2; + --ag-header-foreground-color: #f4fbf8; + --ag-border-color: rgba(154, 190, 183, 0.12); + --ag-row-border-color: rgba(154, 190, 183, 0.12); + --ag-odd-row-background-color: #131f21; + --ag-selected-row-background-color: rgba(101, 215, 208, 0.15); +} + +html[data-theme-mode="dark"][data-density="compact"] .ag-grid-tree-host { + --ag-row-height: 34px; + --ag-header-height: 40px; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-root-wrapper-body, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-layout-normal, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-layout-auto-height, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-body-viewport-wrapper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-clipper, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-viewport, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-center-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-pinned-left-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-pinned-right-cols-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-floating-bottom, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-overlay, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-overlay-wrapper { + background: #0d181a !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header { + background: #1b292c !important; + border-bottom: 1px solid rgba(154, 190, 183, 0.22) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-row { + background: #1b292c !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell { + background: transparent !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell { + border-right-color: rgba(154, 190, 183, 0.055) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row { + background-color: #141f21 !important; + border-bottom-color: rgba(154, 190, 183, 0.09) !important; + transition: background-color 120ms ease, box-shadow 120ms ease; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row:nth-child(odd) { + background-color: #101a1c !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row:hover { + background-color: #1d2d30 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row.ag-row-selected, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row.ag-row-selected:hover { + background-color: rgba(101, 215, 208, 0.15) !important; + box-shadow: inset 3px 0 0 #65d7d0; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell-focus, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell.ag-cell-focus { + border-color: rgba(101, 215, 208, 0.36) !important; + box-shadow: inset 0 0 0 1px rgba(101, 215, 208, 0.34); +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-text { + color: #f4fbf8 !important; + font-weight: 700; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-group-value { + color: #d8e4df !important; + font-weight: 500; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell a, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-cell a .cell { + color: #68d7cf !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-right-aligned-cell, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-right-aligned-cell .cell, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-aggregate-cell { + color: #eef7f4 !important; + font-variant-numeric: tabular-nums; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-menu-button, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-sort-indicator-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-custom-icon { + opacity: 0.18; + transition: opacity 120ms ease, color 120ms ease; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell:hover .ag-header-cell-menu-button, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell:hover .ag-sort-indicator-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell:hover .ag-custom-icon, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-filtered .ag-header-cell-menu-button, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-filtered .ag-custom-icon, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-sorted-asc .ag-sort-indicator-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-sorted-desc .ag-sort-indicator-container { + opacity: 0.82; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-filtered .ag-header-cell-menu-button, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-filtered .ag-custom-icon, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell-filtered .ag-custom-icon-menu path { + color: #65d7d0 !important; + stroke: #65d7d0 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host input[type="checkbox"], +html[data-theme-mode="dark"] .ag-theme-alpine input[type="checkbox"] { + width: 18px !important; + height: 18px !important; + min-width: 18px !important; + min-height: 18px !important; + border-color: rgba(184, 209, 204, 0.52) !important; + border-radius: 5px !important; + background: #101d20 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host input[type="checkbox"]:checked, +html[data-theme-mode="dark"] .ag-theme-alpine input[type="checkbox"]:checked { + border-color: #65d7d0 !important; + background: #0f8f8a !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host input[type="checkbox"]::after, +html[data-theme-mode="dark"] .ag-theme-alpine input[type="checkbox"]::after { + left: 5px !important; + top: 2px !important; + width: 5px !important; + height: 9px !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge { + min-height: 18px; + padding: 2px 8px; + border: 0 !important; + border-radius: 999px; + box-shadow: none !important; + font-size: 10.5px; + font-weight: 700; + line-height: 1.25; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="239, 68, 68"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="#ef4444"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="red"] { + background: rgba(239, 68, 68, 0.14) !important; + color: #ff8a8a !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="37, 99, 235"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="#2563eb"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="blue"] { + background: rgba(92, 154, 255, 0.14) !important; + color: #72b7ff !important; +} + +html[data-theme-mode="dark"][data-density="compact"] .ag-grid-tree-host .ag-cell, +html[data-theme-mode="dark"][data-density="compact"] .ag-grid-tree-host .ag-header-cell-text, +html[data-theme-mode="dark"][data-density="compact"] .ag-grid-tree-host .ag-group-value { + font-size: 11px; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host { + --ag-odd-row-background-color: #0e181a; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row { + background-color: #172426 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row:nth-child(odd) { + background-color: #0e181a !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-row:hover { + background-color: #213337 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-sort-indicator-container { + display: none !important; +} + +html[theme="default"] .ag-grid-tree-host .ag-sort-indicator-container, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-sort-indicator-container { + display: none !important; +} + +html[theme="default"] .ag-grid-tree-host .ag-header-cell:not([col-id="__selection__"]) .ag-header-cell-text, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell:not([col-id="__selection__"]) .ag-header-cell-text { + display: inline-flex; + align-items: center; + gap: 8px; +} + +html[theme="default"] .ag-grid-tree-host .ag-header-cell:not([col-id="__selection__"]) .ag-header-cell-text::before, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell:not([col-id="__selection__"]) .ag-header-cell-text::before { + content: "\2195"; + flex: none; + color: rgba(53, 81, 84, 0.36); + font-size: 12px; + font-weight: 700; + line-height: 1; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell:not([col-id="__selection__"]) .ag-header-cell-text::before { + color: rgba(220, 231, 226, 0.36); +} + +html[theme="default"] .ag-grid-tree-host .ag-header-cell[aria-sort="ascending"] .ag-header-cell-text::before, +html[theme="default"] .ag-grid-tree-host .ag-header-cell.ag-header-cell-sorted-asc .ag-header-cell-text::before, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell[aria-sort="ascending"] .ag-header-cell-text::before, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell.ag-header-cell-sorted-asc .ag-header-cell-text::before { + content: "\2191"; + color: currentColor; +} + +html[theme="default"] .ag-grid-tree-host .ag-header-cell[aria-sort="descending"] .ag-header-cell-text::before, +html[theme="default"] .ag-grid-tree-host .ag-header-cell.ag-header-cell-sorted-desc .ag-header-cell-text::before, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell[aria-sort="descending"] .ag-header-cell-text::before, +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-header-cell.ag-header-cell-sorted-desc .ag-header-cell-text::before { + content: "\2193"; + color: currentColor; +} + +html[data-theme-mode="dark"] .ag-popup, +html[data-theme-mode="dark"] .ag-popup-child, +html[data-theme-mode="dark"] .ag-theme-alpine .ag-popup-child, +html[data-theme-mode="dark"] .ag-theme-alpine .ag-menu, +html[data-theme-mode="dark"] .ag-theme-alpine .ag-filter-wrapper { + background: #111d20 !important; + border-color: rgba(154, 190, 183, 0.2) !important; + color: #dce7e2 !important; + box-shadow: 0 18px 38px rgba(0, 0, 0, 0.46) !important; +} + +html[data-theme-mode="dark"] .ag-popup *, +html[data-theme-mode="dark"] .ag-popup-child * { + color: inherit; +} + +html[data-theme-mode="dark"] .ag-popup .ag-filter, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter, +html[data-theme-mode="dark"] .ag-popup .ag-filter-body, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter-body, +html[data-theme-mode="dark"] .ag-popup .ag-filter-body-wrapper, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter-body-wrapper, +html[data-theme-mode="dark"] .ag-popup .ag-filter-condition, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter-condition, +html[data-theme-mode="dark"] .ag-popup .ag-filter-condition-body, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter-condition-body, +html[data-theme-mode="dark"] .ag-popup .ag-filter-apply-panel, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter-apply-panel { + background: transparent !important; + border-color: rgba(154, 190, 183, 0.14) !important; +} + +html[data-theme-mode="dark"] .ag-popup .ag-picker-field-wrapper, +html[data-theme-mode="dark"] .ag-popup-child .ag-picker-field-wrapper, +html[data-theme-mode="dark"] .ag-popup .ag-filter-select, +html[data-theme-mode="dark"] .ag-popup-child .ag-filter-select, +html[data-theme-mode="dark"] .ag-popup .ag-input-wrapper, +html[data-theme-mode="dark"] .ag-popup-child .ag-input-wrapper, +html[data-theme-mode="dark"] .ag-popup .ag-input-field-input, +html[data-theme-mode="dark"] .ag-popup-child .ag-input-field-input, +html[data-theme-mode="dark"] .ag-popup input, +html[data-theme-mode="dark"] .ag-popup-child input, +html[data-theme-mode="dark"] .ag-popup select, +html[data-theme-mode="dark"] .ag-popup-child select { + background: #1b2b2f !important; + border-color: rgba(154, 190, 183, 0.2) !important; + color: #eef7f4 !important; + box-shadow: none !important; +} + +html[data-theme-mode="dark"] .ag-popup .ag-input-field-input::placeholder, +html[data-theme-mode="dark"] .ag-popup-child .ag-input-field-input::placeholder, +html[data-theme-mode="dark"] .ag-popup input::placeholder, +html[data-theme-mode="dark"] .ag-popup-child input::placeholder { + color: #8ba19d !important; +} + +html[data-theme-mode="dark"] .ag-popup .ag-picker-field-wrapper:focus-within, +html[data-theme-mode="dark"] .ag-popup-child .ag-picker-field-wrapper:focus-within, +html[data-theme-mode="dark"] .ag-popup .ag-input-field-input:focus, +html[data-theme-mode="dark"] .ag-popup-child .ag-input-field-input:focus { + border-color: rgba(101, 215, 208, 0.58) !important; + box-shadow: 0 0 0 2px rgba(101, 215, 208, 0.12) !important; +} + +html[data-theme-mode="dark"] .ag-popup .ag-menu-option:hover, +html[data-theme-mode="dark"] .ag-popup-child .ag-menu-option:hover, +html[data-theme-mode="dark"] .ag-popup .ag-menu-option-active, +html[data-theme-mode="dark"] .ag-popup-child .ag-menu-option-active, +html[data-theme-mode="dark"] .ag-popup .ag-list-item:hover, +html[data-theme-mode="dark"] .ag-popup-child .ag-list-item:hover, +html[data-theme-mode="dark"] .ag-popup .ag-active-item, +html[data-theme-mode="dark"] .ag-popup-child .ag-active-item { + background: #213337 !important; + color: #f4fbf8 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel, +html[data-theme-mode="dark"] .ag-grid-tree-columns-panel, +html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel { + background: #111d20 !important; + border-color: rgba(154, 190, 183, 0.2) !important; + color: #dce7e2 !important; + box-shadow: 0 18px 38px rgba(0, 0, 0, 0.42) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-grouping-title { + color: #f4fbf8 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-grouping-section-label { + color: #8fa7a3 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel select, +html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel input, +html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel .form-control, +html[data-theme-mode="dark"] .ag-grid-tree-columns-panel select, +html[data-theme-mode="dark"] .ag-grid-tree-columns-panel input, +html[data-theme-mode="dark"] .ag-grid-tree-columns-panel .form-control, +html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel select, +html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel input, +html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel .form-control { + background: #1b2b2f !important; + border-color: rgba(154, 190, 183, 0.22) !important; + color: #eef7f4 !important; + box-shadow: none !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-grouping-panel option, +html[data-theme-mode="dark"] .ag-grid-tree-columns-panel option, +html[data-theme-mode="dark"] .ag-grid-tree-layouts-panel option { + background: #111d20 !important; + color: #eef7f4 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-grouping-check, +html[data-theme-mode="dark"] .ag-grid-tree-grouping-level-text, +html[data-theme-mode="dark"] .ag-grid-tree-grouping-aggregate-label { + color: #dce7e2 !important; +} + +.ag-grid-tree-columns > .btn, +.ag-grid-tree-grouping > .btn, +.ag-grid-tree-layouts > .btn, +.ag-grid-value-filter-mode, +.ag-grid-view-transfer-button { + min-height: 32px !important; + height: 32px !important; + padding: 5px 10px !important; + font-size: 12px !important; + line-height: 1.2 !important; +} + +html[data-density="compact"] .ag-grid-tree-columns > .btn, +html[data-density="compact"] .ag-grid-tree-grouping > .btn, +html[data-density="compact"] .ag-grid-tree-layouts > .btn, +html[data-density="compact"] .ag-grid-value-filter-mode, +html[data-density="compact"] .ag-grid-view-transfer-button { + min-height: 32px !important; + height: 32px !important; + padding: 5px 10px !important; + font-size: 12px !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge { + box-shadow: inset 0 0 0 1px rgba(189, 231, 255, 0.16) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="239, 68, 68"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="#ef4444"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="red"] { + background: rgba(239, 68, 68, 0.24) !important; + color: #ffb0b0 !important; + box-shadow: inset 0 0 0 1px rgba(255, 176, 176, 0.16) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="37, 99, 235"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="#2563eb"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="blue"] { + background: rgba(92, 154, 255, 0.26) !important; + color: #afd2ff !important; + box-shadow: inset 0 0 0 1px rgba(175, 210, 255, 0.16) !important; +} + +html[data-theme-mode="dark"] .ag-grid-summary-item-sum .ag-grid-summary-value { + color: #eef7f4 !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge { + box-shadow: inset 0 0 0 1px rgba(238, 247, 244, 0.13) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="239, 68, 68"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="#ef4444"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="red"] { + background: rgba(239, 68, 68, 0.34) !important; + color: #ffc1c1 !important; + box-shadow: inset 0 0 0 1px rgba(255, 193, 193, 0.18) !important; +} + +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="37, 99, 235"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="#2563eb"], +html[data-theme-mode="dark"] .ag-grid-tree-host .ag-grid-badge[style*="blue"] { + background: rgba(92, 154, 255, 0.34) !important; + color: #c3ddff !important; + box-shadow: inset 0 0 0 1px rgba(195, 221, 255, 0.18) !important; +} + +.modal-backdrop.in { + opacity: 0.5; +} + +.modal-dialog .modal-content { + background: #f8fbfa; + border: 1px solid #d9e6e1; + border-radius: 6px; + box-shadow: 0 20px 54px rgba(32, 54, 56, 0.18); + color: #24383b; + overflow: hidden; +} + +.modal-dialog .modal-header { + min-height: 44px; + padding: 10px 16px; + background: #edf3f1; + border-bottom: 1px solid #d9e6e1; + color: #172b2f; +} + +.modal-dialog .modal-title { + color: inherit; + font-size: 16px; + font-weight: 700; + line-height: 24px; +} + +.modal-dialog .modal-title small, +.modal-dialog .modal-header .close { + color: #617679; + opacity: 0.82; + text-shadow: none; +} + +.modal-dialog .modal-body { + background: #f8fbfa; + color: #24383b; + padding: 14px 16px; +} + +.modal-dialog .modal-footer { + background: #f8fbfa; + border-top: 1px solid #d9e6e1; + padding: 10px 16px; +} + +.modal-dialog .tab-content, +.modal-dialog .tab-pane, +.modal-dialog .panel, +.modal-dialog .panel-body { + background: transparent; + box-shadow: none; +} + +.modal-dialog .nav-tabs { + background: #edf3f1; + border-bottom: 1px solid #d9e6e1; + margin: 0 0 10px; + padding: 0; +} + +.modal-dialog .nav-tabs > li > a, +.modal-dialog .nav-tabs > li > a:focus { + background: transparent; + border: 0; + border-bottom: 2px solid transparent; + border-radius: 0; + color: #6a7b7a; + font-size: 12px; + font-weight: 700; + line-height: 18px; + margin: 0; + padding: 8px 12px; +} + +.modal-dialog .nav-tabs > li > a:hover, +.modal-dialog .nav-tabs > li > a:focus:hover { + background: rgba(43, 140, 135, 0.08); + color: #247d7a; +} + +.modal-dialog .nav-tabs > li.active > a, +.modal-dialog .nav-tabs > li.active > a:focus, +.modal-dialog .nav-tabs > li.active > a:hover { + background: transparent; + border: 0; + border-bottom: 2px solid #39c6c4; + color: #247d7a; +} + +.modal-dialog .modal-footer .btn { + min-height: 32px; + padding: 6px 12px; + border-radius: 5px; + font-size: 12px; + font-weight: 700; + line-height: 1.2; +} + +.modal-dialog .modal-footer .btn-primary { + background: #0f7e84; + border-color: #0f7e84; + color: #fff; +} + +.modal-dialog .modal-footer .btn-default { + background: #fff; + border-color: #cfded9; + box-shadow: 0 2px 8px rgba(53, 81, 84, 0.08); + color: #355154; +} + +.modal-dialog .modal-footer .btn-link { + color: #24383b; + font-weight: 700; +} + +.modal-dialog .modal-footer .btn-primary:hover, +.modal-dialog .modal-footer .btn-primary:focus { + background: #0d7378; + border-color: #0d7378; + color: #fff; +} + +html[data-theme-mode="dark"] .modal-backdrop.in { + opacity: 0.68; +} + +html[data-theme-mode="dark"] .modal-dialog .modal-content { + background: var(--tradon-dark-bg); + border-color: var(--tradon-dark-line); + box-shadow: 0 24px 64px rgba(0, 0, 0, 0.58); + color: var(--tradon-dark-text); +} + +html[data-theme-mode="dark"] .modal-dialog .modal-header { + background: linear-gradient(180deg, #111d20 0%, #0c1618 100%); + border-bottom-color: var(--tradon-dark-line); + color: var(--tradon-dark-text); +} + +html[data-theme-mode="dark"] .modal-dialog .modal-title small, +html[data-theme-mode="dark"] .modal-dialog .modal-header .close { + color: var(--tradon-dark-muted); + opacity: 0.86; + text-shadow: none; +} + +html[data-theme-mode="dark"] .modal-dialog .modal-body, +html[data-theme-mode="dark"] .modal-dialog .modal-footer { + background: var(--tradon-dark-bg); + border-color: var(--tradon-dark-line); + color: var(--tradon-dark-text); +} + +html[data-theme-mode="dark"] .modal-dialog .tab-content, +html[data-theme-mode="dark"] .modal-dialog .tab-pane, +html[data-theme-mode="dark"] .modal-dialog .panel, +html[data-theme-mode="dark"] .modal-dialog .panel-body, +html[data-theme-mode="dark"] .modal-dialog .form { + background: transparent !important; + color: var(--tradon-dark-text); +} + +html[data-theme-mode="dark"] .modal-dialog .nav-tabs { + background: #0d1716; + border-bottom-color: var(--tradon-dark-line); +} + +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li > a, +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li > a:focus { + background: transparent; + color: var(--tradon-dark-muted); +} + +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li > a:hover, +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li > a:focus:hover { + background: rgba(101, 215, 208, 0.08); + color: var(--tradon-dark-accent); +} + +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li.active > a, +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li.active > a:focus, +html[data-theme-mode="dark"] .modal-dialog .nav-tabs > li.active > a:hover { + background: transparent; + border-bottom-color: var(--tradon-dark-accent); + color: var(--tradon-dark-accent); +} + +html[data-theme-mode="dark"] .modal-dialog .form-label, +html[data-theme-mode="dark"] .modal-dialog .control-label, +html[data-theme-mode="dark"] .modal-dialog label { + color: var(--tradon-dark-muted) !important; +} + +html[data-theme-mode="dark"] .modal-dialog input.form-control:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .modal-dialog select.form-control, +html[data-theme-mode="dark"] .modal-dialog textarea.form-control, +html[data-theme-mode="dark"] .modal-dialog .input-group > .form-control, +html[data-theme-mode="dark"] .modal-dialog .form-control, +html[data-theme-mode="dark"] .modal-dialog input[type="text"]:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .modal-dialog input[type="number"]:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .modal-dialog input[type="search"]:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .modal-dialog input[type="date"]:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .modal-dialog input[type="datetime-local"]:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .modal-dialog select, +html[data-theme-mode="dark"] .modal-dialog textarea { + background: var(--tradon-dark-field) !important; + border-color: var(--tradon-dark-line) !important; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.18) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal-dialog input.form-control:focus, +html[data-theme-mode="dark"] .modal-dialog select.form-control:focus, +html[data-theme-mode="dark"] .modal-dialog textarea.form-control:focus, +html[data-theme-mode="dark"] .modal-dialog .input-group > .form-control:focus { + background: var(--tradon-dark-field-focus) !important; + border-color: rgba(101, 215, 208, 0.58) !important; + box-shadow: 0 0 0 2px rgba(101, 215, 208, 0.12), inset 0 1px 1px rgba(0, 0, 0, 0.2) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn.btn-default { + background: var(--tradon-dark-field) !important; + border-color: var(--tradon-dark-line) !important; + box-shadow: none !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn.btn-default:hover, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn.btn-default:focus { + background: var(--tradon-dark-field-focus) !important; + border-color: var(--tradon-dark-line-strong) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn.btn-link { + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn.btn-primary { + background: #0f7e84 !important; + border-color: #17a6aa !important; + color: #fff !important; +} + +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary), +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary) { + background: var(--tradon-dark-field) !important; + border-color: var(--tradon-dark-line) !important; + box-shadow: none !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary):hover, +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary):focus, +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary):active, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary):hover, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary):focus, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary):active { + background: var(--tradon-dark-field-focus) !important; + border-color: var(--tradon-dark-line-strong) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary)[disabled], +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary).disabled, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary)[disabled], +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary).disabled { + background: #152321 !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-faint) !important; + opacity: 1 !important; +} + +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary)[disabled]:hover, +html[data-theme-mode="dark"] .modal .modal-footer .btn:not(.btn-primary).disabled:hover, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary)[disabled]:hover, +html[data-theme-mode="dark"] .modal-dialog .modal-footer .btn:not(.btn-primary).disabled:hover { + background: #152321 !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-faint) !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table, +html[data-theme-mode="dark"] .form .form-many2many-content table, +html[data-theme-mode="dark"] .form .form-one2many-content .table, +html[data-theme-mode="dark"] .form .form-many2many-content .table, +html[data-theme-mode="dark"] .form .form-one2many-content .treeview, +html[data-theme-mode="dark"] .form .form-many2many-content .treeview, +html[data-theme-mode="dark"] .form .form-one2many-content .list-form, +html[data-theme-mode="dark"] .form .form-many2many-content .list-form { + background: var(--tradon-dark-bg) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > thead, +html[data-theme-mode="dark"] .form .form-many2many-content table > thead, +html[data-theme-mode="dark"] .form .form-one2many-content .table > thead, +html[data-theme-mode="dark"] .form .form-many2many-content .table > thead, +html[data-theme-mode="dark"] .form .form-one2many-content table > thead > tr, +html[data-theme-mode="dark"] .form .form-many2many-content table > thead > tr, +html[data-theme-mode="dark"] .form .form-one2many-content .table > thead > tr, +html[data-theme-mode="dark"] .form .form-many2many-content .table > thead > tr { + background: var(--tradon-dark-panel-header) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > thead > tr > th, +html[data-theme-mode="dark"] .form .form-many2many-content table > thead > tr > th, +html[data-theme-mode="dark"] .form .form-one2many-content table > thead > tr > td, +html[data-theme-mode="dark"] .form .form-many2many-content table > thead > tr > td, +html[data-theme-mode="dark"] .form .form-one2many-content .table > thead > tr > th, +html[data-theme-mode="dark"] .form .form-many2many-content .table > thead > tr > th, +html[data-theme-mode="dark"] .form .form-one2many-content .table > thead > tr > td, +html[data-theme-mode="dark"] .form .form-many2many-content .table > thead > tr > td { + background: var(--tradon-dark-panel-header) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-muted) !important; + font-weight: 700; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > tbody, +html[data-theme-mode="dark"] .form .form-many2many-content table > tbody, +html[data-theme-mode="dark"] .form .form-one2many-content .table > tbody, +html[data-theme-mode="dark"] .form .form-many2many-content .table > tbody { + background: var(--tradon-dark-bg) !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > tbody > tr, +html[data-theme-mode="dark"] .form .form-many2many-content table > tbody > tr, +html[data-theme-mode="dark"] .form .form-one2many-content .table > tbody > tr, +html[data-theme-mode="dark"] .form .form-many2many-content .table > tbody > tr { + background: #0b1715 !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > tbody > tr:nth-child(odd), +html[data-theme-mode="dark"] .form .form-many2many-content table > tbody > tr:nth-child(odd), +html[data-theme-mode="dark"] .form .form-one2many-content .table > tbody > tr:nth-child(odd), +html[data-theme-mode="dark"] .form .form-many2many-content .table > tbody > tr:nth-child(odd) { + background: #13211f !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > tbody > tr:hover, +html[data-theme-mode="dark"] .form .form-many2many-content table > tbody > tr:hover, +html[data-theme-mode="dark"] .form .form-one2many-content .table > tbody > tr:hover, +html[data-theme-mode="dark"] .form .form-many2many-content .table > tbody > tr:hover { + background: #1a2b28 !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table > tbody > tr > td, +html[data-theme-mode="dark"] .form .form-many2many-content table > tbody > tr > td, +html[data-theme-mode="dark"] .form .form-one2many-content table > tbody > tr > th, +html[data-theme-mode="dark"] .form .form-many2many-content table > tbody > tr > th, +html[data-theme-mode="dark"] .form .form-one2many-content .table > tbody > tr > td, +html[data-theme-mode="dark"] .form .form-many2many-content .table > tbody > tr > td, +html[data-theme-mode="dark"] .form .form-one2many-content .table > tbody > tr > th, +html[data-theme-mode="dark"] .form .form-many2many-content .table > tbody > tr > th { + background: transparent !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .form .form-one2many-content table input:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .form .form-many2many-content table input:not([type="checkbox"]):not([type="radio"]), +html[data-theme-mode="dark"] .form .form-one2many-content table select, +html[data-theme-mode="dark"] .form .form-many2many-content table select, +html[data-theme-mode="dark"] .form .form-one2many-content table textarea, +html[data-theme-mode="dark"] .form .form-many2many-content table textarea { + background: var(--tradon-dark-field) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .dropdown-menu { + background: #111d20 !important; + border-color: rgba(154, 190, 183, 0.24) !important; + box-shadow: 0 16px 34px rgba(0, 0, 0, 0.48) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .dropdown-menu > li > a, +html[data-theme-mode="dark"] .dropdown-menu > li > button, +html[data-theme-mode="dark"] .dropdown-menu .dropdown-header { + background: transparent !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .dropdown-menu > li > a:hover, +html[data-theme-mode="dark"] .dropdown-menu > li > a:focus, +html[data-theme-mode="dark"] .dropdown-menu > li > button:hover, +html[data-theme-mode="dark"] .dropdown-menu > li > button:focus, +html[data-theme-mode="dark"] .dropdown-menu > .active > a, +html[data-theme-mode="dark"] .dropdown-menu > .active > a:hover, +html[data-theme-mode="dark"] .dropdown-menu > .active > a:focus { + background: rgba(43, 154, 160, 0.20) !important; + color: #ffffff !important; +} + +html[data-theme-mode="dark"] .dropdown-menu .divider { + background-color: rgba(154, 190, 183, 0.14) !important; +} + +html[data-theme-mode="dark"] .dropdown-menu > .disabled > a, +html[data-theme-mode="dark"] .dropdown-menu > .disabled > a:hover, +html[data-theme-mode="dark"] .dropdown-menu > .disabled > a:focus { + background: transparent !important; + color: var(--tradon-dark-faint) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview, +html[data-theme-mode="dark"] .modal-dialog .treeview table, +html[data-theme-mode="dark"] .modal-dialog .table, +html[data-theme-mode="dark"] .modal-dialog table { + background: var(--tradon-dark-bg) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview thead, +html[data-theme-mode="dark"] .modal-dialog .treeview thead tr, +html[data-theme-mode="dark"] .modal-dialog .table > thead, +html[data-theme-mode="dark"] .modal-dialog .table > thead > tr, +html[data-theme-mode="dark"] .modal-dialog table > thead, +html[data-theme-mode="dark"] .modal-dialog table > thead > tr { + background: var(--tradon-dark-panel-header) !important; + color: var(--tradon-dark-muted) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview th, +html[data-theme-mode="dark"] .modal-dialog .treeview thead td, +html[data-theme-mode="dark"] .modal-dialog .table > thead > tr > th, +html[data-theme-mode="dark"] .modal-dialog .table > thead > tr > td, +html[data-theme-mode="dark"] .modal-dialog table > thead > tr > th, +html[data-theme-mode="dark"] .modal-dialog table > thead > tr > td { + background: var(--tradon-dark-panel-header) !important; + border-color: var(--tradon-dark-line) !important; + color: var(--tradon-dark-muted) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview tbody, +html[data-theme-mode="dark"] .modal-dialog .table > tbody, +html[data-theme-mode="dark"] .modal-dialog table > tbody { + background: var(--tradon-dark-bg) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr, +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr, +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr { + background: #0b1715 !important; + color: var(--tradon-dark-text) !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr:nth-child(odd), +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr:nth-child(odd), +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr:nth-child(odd) { + background: #13211f !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr:hover, +html[data-theme-mode="dark"] .modal-dialog .table-hover > tbody > tr:hover, +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr:hover, +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr:hover { + background: #1d3430 !important; + color: #f4fffd !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr.selected, +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr.active, +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr.selected, +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr.active, +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr.selected, +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr.active { + background: rgba(43, 154, 160, 0.28) !important; + color: #ffffff !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr > td, +html[data-theme-mode="dark"] .modal-dialog .treeview tbody > tr > th, +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr > td, +html[data-theme-mode="dark"] .modal-dialog .table > tbody > tr > th, +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr > td, +html[data-theme-mode="dark"] .modal-dialog table > tbody > tr > th { + background: transparent !important; + border-color: var(--tradon-dark-line) !important; + color: inherit !important; +} + +html[data-theme-mode="dark"] .modal-dialog .treeview a, +html[data-theme-mode="dark"] .modal-dialog .table a { + color: #74d7d0 !important; +} + diff --git a/dist/tryton-sao.js b/dist/tryton-sao.js index 6e345d2..3b3b126 100644 --- a/dist/tryton-sao.js +++ b/dist/tryton-sao.js @@ -474,16 +474,16 @@ var Sao = { document.title = title.filter(function(e) {return e;}).join(' - '); // Remplacer le texte par une image avec le bon style - var theme_mode = document.documentElement.getAttribute( - 'data-theme-mode') || 'light'; - var logo_src = theme_mode === 'dark' ? - 'dist/tradon-dark.png' : 'dist/tradon.png'; + var logo_src = 'dist/tradon_wbg.png'; + var app_version = 'v1.2'; if (jQuery('#title').length) { jQuery('#title').replaceWith( - '' + '' ); } else if (jQuery('#title-logo').length) { - jQuery('#title-logo').attr('src', logo_src); + jQuery('#title-logo') + .attr('src', logo_src) + .attr('title', app_version); } // Ajouter un style au conteneur parent si nécessaire @@ -896,6 +896,7 @@ var Sao = { form.screen.views[0].table.find('> colgroup').append(column.col); form.screen.views[0].table.find('> thead > tr').append(column.header); form.screen.views[0].columns.push(column); + jQuery(document).trigger('tradon:main-menu-ready'); }); }; Sao.main_menu_screen = null; @@ -1065,6 +1066,28 @@ var Sao = { } } }); + window.setTimeout(function() { + try { + if (window.localStorage.getItem('tradonTraceDensity') != '1') { + return; + } + var input = jQuery('#global-search-entry'); + var button = jQuery('#user-favorites > button'); + var container = jQuery('#global-search .global-search-container'); + var menu = container.children('.dropdown-menu'); + console.debug('[Tradon density] global search metrics', { + container: container.length && container[0].getBoundingClientRect(), + input: input.length && input[0].getBoundingClientRect(), + button: button.length && button[0].getBoundingClientRect(), + menu: menu.length && menu[0].getBoundingClientRect(), + inputFontSize: input.css('font-size'), + inputLineHeight: input.css('line-height'), + buttonFontSize: button.css('font-size') + }); + } catch (error) { + console.debug('[Tradon density] trace failed', error); + } + }, 0); }, format: function(content) { var el = jQuery('
'); @@ -6992,12 +7015,20 @@ var Sao = { el.closest('.modal-body').css('overflow', overflow); el.closest('.navbar-collapse.in').css('overflow-y', overflow); el.closest('.content-box').css('overflow-y', overflow); + el.parents('fieldset.form-panel').css('overflow', overflow); + el.parents('fieldset.form-panel').children('.form-container') + .css('overflow', overflow); + el.parents('.form-container').css('overflow', overflow); + el.parents('.form-item, .form-widget').css('overflow', overflow); el.parents('fieldset.form-group_').css('overflow', overflow); Sao.common.scrollIntoViewIfNeeded(el); }; Sao.common.InputCompletion = Sao.class_(Object, { init: function(el, source, match_selected, format) { + Sao.common.InputCompletion._next_debug_id = + (Sao.common.InputCompletion._next_debug_id || 0) + 1; + this._debug_id = Sao.common.InputCompletion._next_debug_id; if (!el.is('input')) { el.addClass('dropdown'); this.dropdown = el; @@ -7027,8 +7058,13 @@ var Sao = { this.action_activated = null; this._search_text = null; + this._last_values = []; + this._trace_completion('init'); this.input.on('input', () => { + this._trace_completion('input', { + value: this.input.val(), + }); window.setTimeout(this._input.bind(this), 300, this.input.val()); }); @@ -7056,12 +7092,94 @@ var Sao = { }); this.dropdown.on('hide.bs.dropdown', () => { this.input.focus(); + this.dropdown.removeClass('sao-completion-open'); + this.dropdown.parents('.form-item, .form-widget, .tab-pane') + .removeClass('sao-completion-open'); + this.dropdown.parents('fieldset.form-panel') + .removeClass('sao-completion-open'); + this.dropdown.parents('fieldset.form-group_') + .removeClass('sao-completion-open'); Sao.common.set_overflow(this.input, 'hide'); + this._trace_completion('hide'); }); this.dropdown.on('show.bs.dropdown', () => { + this.dropdown.addClass('sao-completion-open'); + this.dropdown.parents('.form-item, .form-widget, .tab-pane') + .addClass('sao-completion-open'); + this.dropdown.parents('fieldset.form-panel') + .addClass('sao-completion-open'); + this.dropdown.parents('fieldset.form-group_') + .addClass('sao-completion-open'); Sao.common.set_overflow(this.input, 'show'); + window.setTimeout(() => this._trace_completion('show'), 0); }); }, + _trace_completion: function(reason, extra) { + if (!window.console) { + return; + } + var input = this.input && this.input[0]; + var menu = this.menu && this.menu[0]; + var dropdown = this.dropdown && this.dropdown[0]; + var rect = function(element) { + if (!element || !element.getBoundingClientRect) { + return null; + } + var box = element.getBoundingClientRect(); + return { + left: Math.round(box.left), + top: Math.round(box.top), + width: Math.round(box.width), + height: Math.round(box.height), + bottom: Math.round(box.bottom), + }; + }; + var css_snapshot = function(element) { + if (!element || !window.getComputedStyle) { + return null; + } + var style = window.getComputedStyle(element); + return { + tag: element.tagName, + classes: element.className || '', + display: style.display, + position: style.position, + zIndex: style.zIndex, + overflow: style.overflow, + overflowX: style.overflowX, + overflowY: style.overflowY, + }; + }; + var ancestors = []; + if (input) { + var current = input.parentElement; + var count = 0; + while (current && count < 10) { + ancestors.push(css_snapshot(current)); + current = current.parentElement; + count += 1; + } + } + var payload = jQuery.extend({ + id: this._debug_id, + reason: reason, + fieldName: this.input && this.input.attr('name') || null, + value: this.input && this.input.val ? this.input.val() : null, + open: this.dropdown && this.dropdown.hasClass('open'), + completionCount: this.menu ? + this.menu.find('li.completion').length : null, + actionCount: this.menu ? + this.menu.find('li.action').length : null, + allowCreate: Boolean(this._allow_create), + inputRect: rect(input), + dropdownRect: rect(dropdown), + menuRect: rect(menu), + inputCss: css_snapshot(input), + dropdownCss: css_snapshot(dropdown), + menuCss: css_snapshot(menu), + ancestors: ancestors, + }, extra || {}); + }, set_actions: function(action_activated, search=true, create=true) { if (action_activated !== undefined) { this.action_activated = action_activated; @@ -7076,6 +7194,11 @@ var Sao = { this.menu.find('li.action').remove(); if (jQuery.isEmptyObject(actions)) { this.separator.hide(); + this._trace_completion('set_actions', { + search: search, + create: create, + actionCount: 0, + }); return; } this.separator.show(); @@ -7096,6 +7219,11 @@ var Sao = { }) .appendTo(this.menu); }, this); + this._trace_completion('set_actions', { + search: search, + create: create, + actionCount: actions.length, + }); }, _format: function(content) { if (this.format) { @@ -7111,6 +7239,10 @@ var Sao = { }, _input: function(text) { if (text != this.input.val()) { + this._trace_completion('input_stale', { + requestedText: text, + currentText: this.input.val(), + }); return; } var prm; @@ -7123,8 +7255,18 @@ var Sao = { } prm.then(values => { if (text != this.input.val()) { + this._trace_completion('result_stale', { + requestedText: text, + currentText: this.input.val(), + }); return; } + this._trace_completion('result', { + requestedText: text, + resultCount: values ? values.length : 0, + sample: (values || []).slice(0, 6).map(value => + value && (value.name || value.rec_name || value)), + }); this._set_selection(values); }); }, @@ -7132,6 +7274,7 @@ var Sao = { if (values === undefined) { values = []; } + this._last_values = values.slice ? values.slice() : values; this.menu.find('li.completion').remove(); values.reverse().forEach(function(value) { jQuery('
  • ', { @@ -7150,13 +7293,25 @@ var Sao = { if (!this.input.val() || ( !this.menu.find('li.completion').length && !this.menu.find('li.action').length)) { + this._trace_completion('close_decision', { + reasonDetail: !this.input.val() ? + 'empty_input' : 'no_completion_or_action', + valueCount: values.length, + }); if (this.dropdown.hasClass('open')) { this.menu.dropdown('toggle'); } } else { + this._trace_completion('open_decision', { + valueCount: values.length, + completionCount: this.menu.find('li.completion').length, + actionCount: this.menu.find('li.action').length, + }); if (!this.dropdown.hasClass('open')) { this.menu.dropdown('toggle'); } + window.setTimeout(() => + this._trace_completion('after_open_decision'), 0); } } }); @@ -7178,7 +7333,16 @@ var Sao = { Sao.common.update_completion = function( entry, record, field, model, domain) { var search_text = entry.val(); + var trace = function(reason, extra) { + if (!window.console) { + return; + } + }; if (!search_text || !model) { + trace('skip', { + hasText: Boolean(search_text), + hasModel: Boolean(model), + }); return jQuery.when(); } if (domain === undefined) { @@ -7188,12 +7352,18 @@ var Sao = { var order = field.get_search_order(record); var sao_model = new Sao.Model(model); + trace('request', { + domain: domain, + context: context, + order: order, + limit: Sao.config.limit, + }); return sao_model.execute( 'autocomplete', [search_text, domain, Sao.config.limit, order], context) .then( function(result) { - return result.filter((value) => { + var filtered = result.filter((value) => { return value.id || entry.completion._allow_create; }).map((value) => { if (value.id === null) { @@ -7202,8 +7372,19 @@ var Sao = { } return value; }); + trace('response', { + rawCount: result ? result.length : 0, + filteredCount: filtered.length, + allowCreate: Boolean(entry.completion._allow_create), + sample: filtered.slice(0, 6).map(value => + value && (value.name || value.rec_name || value)), + }); + return filtered; }, - function() { + function(error) { + trace('error', { + error: error && (error.message || String(error)) || null, + }); Sao.Logger.warn( "Unable to search for completion of %s", model); }); @@ -14882,8 +15063,6 @@ var Sao = { }; Sao.View.parse = function(screen, view_id, type, xml, children_field) { - console.log('typeof xml:', typeof xml); - console.log('xml:', xml); switch (type) { case 'tree': if (Sao.View.get_tree_view) { @@ -15057,6 +15236,8 @@ function eval_pyson(value){ availableWidgets: Object.keys( Sao.View.FormXMLViewParser.WIDGETS).sort(), }); + attributes.widget = 'char'; + WidgetFactory = Sao.View.FormXMLViewParser.WIDGETS.char; } var widget = new WidgetFactory(this.view, attributes); if (!this.view.widgets[name]) { @@ -17757,12 +17938,16 @@ function eval_pyson(value){ }, _sync_icon_padding: function() { var rtl = jQuery('html').attr('dir') == 'rtl'; + var compact_density = document.documentElement.getAttribute( + 'data-density') == 'compact'; + var icon_padding = compact_density ? '25px' : '33px'; + var empty_padding = compact_density ? '6px' : '12px'; var primary_visible = this.but_primary.parent().css('display') != 'none'; var secondary_visible = this.but_secondary.parent().css('display') != 'none'; - var start_padding = primary_visible ? '33px' : '12px'; - var end_padding = secondary_visible ? '33px' : '12px'; + var start_padding = primary_visible ? icon_padding : empty_padding; + var end_padding = secondary_visible ? icon_padding : empty_padding; this.entry.css({ 'padding-left': rtl ? end_padding : start_padding, 'padding-right': rtl ? start_padding : end_padding, @@ -20033,6 +20218,505 @@ function eval_pyson(value){ } }); + Sao.View.Form.RichGraph = Sao.class_(Sao.View.Form.Widget, { + class_: 'form-rich-graph', + expand: true, + init: function(view, attributes) { + Sao.View.Form.RichGraph._super.init.call(this, view, attributes); + this.series_visibility = {}; + this.active_range = attributes.default_range || 'ALL'; + this.range_options = ['5D', '1M', '3M', '6M', '1Y', '5Y', 'ALL']; + this.el = jQuery('
    ', { + 'class': this.class_ + }); + var header = jQuery('
    ', { + 'class': this.class_ + '-header' + }).appendTo(this.el); + this.title = jQuery('
    ', { + 'class': this.class_ + '-title' + }).appendTo(header); + this.meta = jQuery('
    ', { + 'class': this.class_ + '-meta' + }).appendTo(header); + this.ranges = jQuery('
    ', { + 'class': this.class_ + '-ranges' + }).appendTo(header); + for (const range of this.range_options) { + jQuery('