modal: in-app dialog for confirms and import errors
ModalState carries title/message/action as RwSignals; the action is read at click time so a late confirm wins. Overlay click and Cancel close; the confirm button runs the stored action. Edition-2024 note: method calls on non-Copy captures move by value inside nested move closures, so handlers touch state.open/state.action fields directly.
This commit is contained in:
1 parent
043977cc1f
commit
0c2eda7621
4 files changed
+161
No files matched your search
@@ -0,0 +1,53 @@
|
||||
// Modal dialog: dark overlay, centered card, crimson confirm button.
|
||||
|
||||
@use 'mixins';
|
||||
|
||||
.modal-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.modal {
|
||||
max-width: 480px;
|
||||
padding: 24px 32px;
|
||||
background: #1a1a1a;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
box-shadow: 0 8px 40px rgba(0, 0, 0, 0.8);
|
||||
|
||||
h3 {
|
||||
margin: 0 0 12px;
|
||||
@include mixins.heading;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 20px;
|
||||
color: rgba(255, 255, 255, 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
.modal-actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
button.modal-cancel {
|
||||
@include mixins.button;
|
||||
background: transparent;
|
||||
border: 1px solid rgba(255, 255, 255, 0.4);
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
padding: 6px 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button.modal-confirm {
|
||||
@include mixins.button;
|
||||
padding: 6px 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
@use 'sidebar';
|
||||
@use 'nav';
|
||||
@use 'inventory';
|
||||
@use 'modal';
|
||||
@use 'vars';
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user