import { Astal, Gdk, Gtk } from "ags/gtk4";
import app from "ags/gtk4/app";
import { createBinding, createState, For, With, Accessor } from "ags";
import { createPoll } from "ags/time";
import Tray from "gi://AstalTray";
import { execAsync } from "ags/process";
import Hyprland from "gi://AstalHyprland";
import { getIconName } from "./utils";
import Wp from "gi://AstalWp";
import Battery from "gi://AstalBattery";
import GLib from "gi://GLib";
const battery = Battery.get_default();
const sensorsAvailable = await execAsync(["sensors"])
    .then(() => true)
    .catch(() => false);
const wirePlumber = Wp.get_default();
function SysTray(): JSX.Element {
    const tray = Tray.get_default();
    let items = createBinding(tray, "items");
    const init = (btn: Gtk.MenuButton, item: Tray.TrayItem) => {
        btn.menuModel = item.menuModel;
        btn.insert_action_group("dbusmenu", item.actionGroup);
        item.connect("notify::action-group", () => {
            btn.insert_action_group("dbusmenu", item.actionGroup);
        });
    };
    return (
        
            
                {(item: Tray.TrayItem) => {
                    if (item.iconThemePath) app.add_icons(item.iconThemePath);
                    return (
                         init(self, item)}
                            class="systray"
                            tooltipMarkup={createBinding(item, "tooltipMarkup")}
                            menuModel={createBinding(item, "menuModel")}
                        >
                            
                        
                    );
                }}
            
        
    );
}
function Left(): JSX.Element {
    return (
        
            
        
    );
}
function Center(): JSX.Element {
    return (
        
            
        
    );
}
function Date({ format = "%Y-%m-%d" }): JSX.Element {
    const time = createPoll(
        "",
        60000,
        () => GLib.DateTime.new_now_local().format(format)!,
    );
    return (