import Gtk from "gi://Gtk"; import { ButtonType } from "../../../enums/custom"; import type { GjsContext } from "../../../reconciler/gjs-renderer"; import type { HostContext } from "../../../reconciler/host-context"; import { BaseElement, type GjsElement } from "../../gjs-element"; import { ElementLifecycleController } from "../../utils/element-extenders/element-lifecycle-controller"; import type { SyntheticEvent } from "../../utils/element-extenders/event-handlers"; import { EventHandlers } from "../../utils/element-extenders/event-handlers"; import type { DiffedProps } from "../../utils/element-extenders/map-properties"; import { PropertyMapper } from "../../utils/element-extenders/map-properties"; import { TextChildController } from "../../utils/element-extenders/text-child-controller"; import type { PointerData } from "../../utils/gdk-events/pointer-event"; import { type ColorString } from "../../utils/parse-color"; import type { AccelProps } from "../../utils/property-maps-factories/create-accel-prop-mapper"; import type { AlignmentProps } from "../../utils/property-maps-factories/create-alignment-prop-mapper"; import type { ChildPropertiesProps } from "../../utils/property-maps-factories/create-child-props-mapper"; import type { ExpandProps } from "../../utils/property-maps-factories/create-expand-prop-mapper"; import type { MarginProps } from "../../utils/property-maps-factories/create-margin-prop-mapper"; import type { SizeRequestProps } from "../../utils/property-maps-factories/create-size-request-prop-mapper"; import type { StyleProps } from "../../utils/property-maps-factories/create-style-prop-mapper"; import type { TooltipProps } from "../../utils/property-maps-factories/create-tooltip-prop-mapper"; import type { TextNode } from "../text-node"; type ColorButtonPropsMixin = ChildPropertiesProps & SizeRequestProps & AlignmentProps & MarginProps & ExpandProps & StyleProps & TooltipProps & AccelProps; export type ColorButtonEvent
= {}> = SyntheticEvent
;
export interface ColorButtonProps extends ColorButtonPropsMixin {
type?: ButtonType;
label?: string;
useUnderline?: boolean;
focusOnClick?: boolean;
color?: ColorString;
showEditor?: boolean;
title?: string;
useAlpha?: boolean;
onChange?: (event: ColorButtonEvent<{
color: string;
}>) => void;
onClick?: (event: ColorButtonEvent) => void;
onActivate?: (event: ColorButtonEvent) => void;
onPressed?: (event: ColorButtonEvent) => void;
onReleased?: (event: ColorButtonEvent) => void;
onMouseEnter?: (event: ColorButtonEvent