423 lines
8.9 KiB
SCSS
423 lines
8.9 KiB
SCSS
// Rôle : gère le shell des modules toolbox, titres, icônes, onglets et boutons de module.
|
|
@use "../design-system/controls";
|
|
@use "../mixins";
|
|
|
|
.module .module-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--space-3);
|
|
padding: var(--space-2);
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
.module .module-header-main,
|
|
.module .module-header-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.module .module-header-main {
|
|
min-width: 0;
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.module .module-header-actions {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.module .module-header h2 {
|
|
margin: 0;
|
|
font-size: 17px;
|
|
}
|
|
|
|
.module-space-select {
|
|
width: 100%;
|
|
}
|
|
|
|
.module-content {
|
|
min-width: 0;
|
|
}
|
|
|
|
.module-component-host {
|
|
display: contents;
|
|
}
|
|
|
|
.module-component-host[hidden] {
|
|
display: none;
|
|
}
|
|
|
|
.module.is-collapsed header {
|
|
border-bottom-color: transparent;
|
|
}
|
|
|
|
.module-loading-fallback {
|
|
padding: var(--space-4);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-md);
|
|
background: rgba(7, 10, 24, 0.32);
|
|
color: var(--color-text-secondary);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.module-content.is-scrollable {
|
|
max-height: 450px;
|
|
overflow-y: auto;
|
|
overscroll-behavior: contain;
|
|
}
|
|
|
|
.layout-switch {
|
|
grid-template-columns: repeat(2, 38px);
|
|
}
|
|
|
|
.layout-switch button {
|
|
padding: 0;
|
|
}
|
|
|
|
.module-drag-handle,
|
|
.module-drag-handle.nds-icon-button {
|
|
flex: 0 0 40px;
|
|
cursor: grab;
|
|
opacity: 0.62;
|
|
touch-action: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.module:hover .module-drag-handle,
|
|
.module:focus-within .module-drag-handle {
|
|
opacity: 1;
|
|
}
|
|
|
|
.module-drag-handle:active,
|
|
.module-drag-handle.nds-icon-button:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.module-title {
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
padding: 4px 6px;
|
|
border-radius: var(--radius-sm);
|
|
cursor: text;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.module-title:focus {
|
|
background: rgba(7, 10, 24, 0.72);
|
|
outline: 1px solid rgba(246, 196, 83, 0.72);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.module-edit-button,
|
|
.module-configuration-button,
|
|
.module-delete-button,
|
|
.module-collapse-button {
|
|
flex: 0 0 40px;
|
|
}
|
|
|
|
.module-edit-button,
|
|
.module-configuration-button,
|
|
.module-collapse-button {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.module-scroll-button {
|
|
@include controls.switch-control(lg);
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.module-scroll-button .ui-icon {
|
|
@include controls.switch-icon;
|
|
}
|
|
|
|
.module-scroll-button i {
|
|
@include controls.switch-track;
|
|
}
|
|
|
|
.module-scroll-button i::before {
|
|
@include controls.switch-thumb;
|
|
}
|
|
|
|
.module-edit-button.active,
|
|
.module-configuration-button.active {
|
|
@include mixins.temporary-toggle-active;
|
|
}
|
|
|
|
.module-configuration-panel {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
column-gap: var(--space-4);
|
|
row-gap: var(--space-2);
|
|
margin: var(--space-1) var(--space-2) var(--space-2);
|
|
padding: 10px 12px 12px;
|
|
border: 1px solid rgba(165, 180, 252, 0.1);
|
|
border-radius: var(--radius-md);
|
|
background:
|
|
linear-gradient(135deg, rgba(139, 92, 246, 0.035), transparent 56%),
|
|
rgba(7, 10, 24, 0.2);
|
|
}
|
|
|
|
.module-configuration-target {
|
|
display: contents;
|
|
}
|
|
|
|
.module-configuration-section {
|
|
display: grid;
|
|
min-width: 0;
|
|
align-content: start;
|
|
gap: var(--space-2);
|
|
padding: 4px 6px;
|
|
}
|
|
|
|
.module-configuration-organization {
|
|
grid-column: 1;
|
|
grid-row: 1;
|
|
padding-right: var(--space-4);
|
|
border-right: 1px solid rgba(165, 180, 252, 0.1);
|
|
}
|
|
|
|
.module-configuration-data {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.module-configuration-panel:not(:has(.module-configuration-organization)) .module-configuration-data {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.module-configuration-specific {
|
|
grid-column: 1 / -1;
|
|
padding-top: var(--space-3);
|
|
border-top: 1px solid rgba(165, 180, 252, 0.1);
|
|
}
|
|
|
|
.module-configuration-section > h3 {
|
|
margin: 0;
|
|
color: var(--color-text-secondary);
|
|
font-size: 0.6875rem;
|
|
font-weight: 900;
|
|
letter-spacing: 0.07em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.module-configuration-section .module-text-exchange-panel,
|
|
.module-configuration-section .guide-checklist-controls {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: 0;
|
|
}
|
|
|
|
.module-configuration-panel .text-import-actions {
|
|
gap: 6px;
|
|
}
|
|
|
|
.module-configuration-panel .text-import-actions button {
|
|
min-height: 34px;
|
|
gap: 6px;
|
|
}
|
|
|
|
.module-configuration-panel .text-import-actions .ui-icon {
|
|
width: 15px;
|
|
height: 15px;
|
|
}
|
|
|
|
.module-icon {
|
|
display: grid;
|
|
width: 34px;
|
|
height: 34px;
|
|
place-items: center;
|
|
border-radius: var(--radius-md);
|
|
background: var(--gradient-brand);
|
|
box-shadow: var(--shadow-primary);
|
|
color: white;
|
|
}
|
|
|
|
.module-icon-svg {
|
|
display: block;
|
|
width: 19px;
|
|
height: 19px;
|
|
background: white;
|
|
mask-position: center;
|
|
mask-repeat: no-repeat;
|
|
mask-size: contain;
|
|
-webkit-mask-position: center;
|
|
-webkit-mask-repeat: no-repeat;
|
|
-webkit-mask-size: contain;
|
|
}
|
|
|
|
.toolbox-module-empty {
|
|
margin: var(--space-4);
|
|
padding: var(--space-4);
|
|
border: 1px dashed rgba(165, 180, 252, 0.18);
|
|
border-radius: var(--radius-md);
|
|
color: var(--color-text-muted);
|
|
text-align: center;
|
|
}
|
|
|
|
.module-icon-notepad {
|
|
mask-image: url("/static/icons/notepad.svg");
|
|
-webkit-mask-image: url("/static/icons/notepad.svg");
|
|
}
|
|
|
|
.module-icon-memos {
|
|
mask-image: url("/static/icons/memos.svg");
|
|
-webkit-mask-image: url("/static/icons/memos.svg");
|
|
}
|
|
|
|
.module-icon-checklist {
|
|
mask-image: url("/static/icons/checklist.svg");
|
|
-webkit-mask-image: url("/static/icons/checklist.svg");
|
|
}
|
|
|
|
.module-icon-tasklist {
|
|
mask-image: url("/static/icons/tasklist.svg");
|
|
-webkit-mask-image: url("/static/icons/tasklist.svg");
|
|
}
|
|
|
|
.module-icon-picture {
|
|
mask-image: url("/static/icons/picture.svg");
|
|
-webkit-mask-image: url("/static/icons/picture.svg");
|
|
}
|
|
|
|
.module-icon-link {
|
|
mask-image: url("/static/icons/link.svg");
|
|
-webkit-mask-image: url("/static/icons/link.svg");
|
|
}
|
|
|
|
.module-icon-toolbox {
|
|
mask-image: url("/static/icons/toolbox.svg");
|
|
-webkit-mask-image: url("/static/icons/toolbox.svg");
|
|
}
|
|
|
|
.module-icon-export {
|
|
mask-image: url("/static/icons/export.svg");
|
|
-webkit-mask-image: url("/static/icons/export.svg");
|
|
}
|
|
|
|
.module-icon-abacus {
|
|
mask-image: url("/static/icons/abacus.svg");
|
|
-webkit-mask-image: url("/static/icons/abacus.svg");
|
|
}
|
|
|
|
.module-icon-calculator {
|
|
mask-image: url("/static/icons/calculator.svg");
|
|
-webkit-mask-image: url("/static/icons/calculator.svg");
|
|
}
|
|
|
|
.module-icon-clock {
|
|
mask-image: url("/static/icons/clock.svg");
|
|
-webkit-mask-image: url("/static/icons/clock.svg");
|
|
}
|
|
|
|
.module-icon-calendar {
|
|
mask-image: url("/static/icons/calendar.svg");
|
|
-webkit-mask-image: url("/static/icons/calendar.svg");
|
|
}
|
|
|
|
.module-icon-stopwatch {
|
|
mask-image: url("/static/icons/stopwatch.svg");
|
|
-webkit-mask-image: url("/static/icons/stopwatch.svg");
|
|
}
|
|
|
|
.module-icon-hourglass {
|
|
mask-image: url("/static/icons/hourglass.svg");
|
|
-webkit-mask-image: url("/static/icons/hourglass.svg");
|
|
}
|
|
|
|
.module-icon-map {
|
|
mask-image: url("/static/icons/map.svg");
|
|
-webkit-mask-image: url("/static/icons/map.svg");
|
|
}
|
|
|
|
.module-icon-shield {
|
|
mask-image: url("/static/icons/shield.svg");
|
|
-webkit-mask-image: url("/static/icons/shield.svg");
|
|
}
|
|
|
|
.module-icon-chest-armor {
|
|
mask-image: url("/static/icons/chest-armor.svg");
|
|
-webkit-mask-image: url("/static/icons/chest-armor.svg");
|
|
}
|
|
|
|
.module-icon-columns {
|
|
mask-image: url("/static/icons/columns.svg");
|
|
-webkit-mask-image: url("/static/icons/columns.svg");
|
|
}
|
|
|
|
.module-icon-table {
|
|
mask-image: url("/static/icons/table.svg");
|
|
-webkit-mask-image: url("/static/icons/table.svg");
|
|
}
|
|
|
|
.module-icon-diagram {
|
|
mask-image: url("/static/icons/diagram.svg");
|
|
-webkit-mask-image: url("/static/icons/diagram.svg");
|
|
}
|
|
|
|
.module-icon-cube {
|
|
mask-image: url("/static/icons/cube.svg");
|
|
-webkit-mask-image: url("/static/icons/cube.svg");
|
|
}
|
|
|
|
.module-icon-dice {
|
|
mask-image: url("/static/icons/dice.svg");
|
|
-webkit-mask-image: url("/static/icons/dice.svg");
|
|
}
|
|
|
|
.module-icon-clover {
|
|
mask-image: url("/static/icons/clover.svg");
|
|
-webkit-mask-image: url("/static/icons/clover.svg");
|
|
}
|
|
|
|
.module-icon-wheel {
|
|
mask-image: url("/static/icons/wheel.svg");
|
|
-webkit-mask-image: url("/static/icons/wheel.svg");
|
|
}
|
|
|
|
.module-icon-parent {
|
|
mask-image: url("/static/icons/parent.svg");
|
|
-webkit-mask-image: url("/static/icons/parent.svg");
|
|
}
|
|
|
|
.module-icon-rotate {
|
|
mask-image: url("/static/icons/rotate.svg");
|
|
-webkit-mask-image: url("/static/icons/rotate.svg");
|
|
}
|
|
|
|
.module-icon-settings {
|
|
mask-image: url("/static/icons/settings.svg");
|
|
-webkit-mask-image: url("/static/icons/settings.svg");
|
|
}
|
|
|
|
.module-icon-controller {
|
|
mask-image: url("/static/icons/controller.svg");
|
|
-webkit-mask-image: url("/static/icons/controller.svg");
|
|
}
|
|
|
|
.tabs {
|
|
@include controls.radio-button-group-surface;
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
|
|
gap: 6px;
|
|
}
|
|
|
|
.tabs button {
|
|
@include controls.radio-button-group-option;
|
|
}
|
|
|
|
.tabs button:hover {
|
|
@include controls.radio-button-group-option-hover;
|
|
}
|
|
|
|
.tabs button.active {
|
|
@include controls.radio-button-group-option-active;
|
|
}
|
|
|
|
.tabs .module-icon-svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
background: currentColor;
|
|
}
|