pragma Singleton

import QtQuick
import Quickshell

Singleton {
  id: root

  // Simple signal-based notification system
  // actionLabel: optional label for clickable action link
  // actionCallback: optional function to call when action is clicked
  signal notify(string title, string description, string icon, string type, int duration, string actionLabel, var actionCallback)
  signal dismiss

  // Convenience methods
  function showNotice(title, description = "", icon = "", duration = 3000, actionLabel = "", actionCallback = null) {
    notify(title, description, icon, "notice", duration, actionLabel, actionCallback);
  }

  function showWarning(title, description = "", duration = 4000, actionLabel = "", actionCallback = null) {
    notify(title, description, "", "warning", duration, actionLabel, actionCallback);
  }

  function showError(title, description = "", duration = 6000, actionLabel = "", actionCallback = null) {
    notify(title, description, "", "error", duration, actionLabel, actionCallback);
  }

  function dismissToast() {
    dismiss();
  }
}
