(message, type = "info")
| 101 | }; |
| 102 | |
| 103 | function notify(message, type = "info") { |
| 104 | const el = document.createElement("div"); |
| 105 | el.textContent = message; |
| 106 | el.style.cssText = ` |
| 107 | position: fixed; bottom: 20px; right: 20px; max-width: 280px; |
| 108 | padding: 0.6rem 1rem; background: ${NOTIF_COLORS[type] || NOTIF_COLORS.info}; |
| 109 | color: #110518; border: 2px solid #110518; border-right-width: 4px; |
| 110 | border-bottom-width: 4px; font-size: 0.85rem; font-weight: 500; |
| 111 | box-shadow: 4px 4px 0 rgba(17,5,24,0.12); z-index: 1000; |
| 112 | animation: slideIn 0.3s ease-out; |
| 113 | `; |
| 114 | document.body.appendChild(el); |
| 115 | setTimeout(() => { |
| 116 | el.style.animation = "slideOut 0.3s ease-in"; |
| 117 | setTimeout(() => el.remove(), 300); |
| 118 | }, 3000); |
| 119 | } |
| 120 | |
| 121 | // ── URL State ──────────────────────────────────────────────────────────────── |
| 122 |
no test coverage detected