;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(require 'cl-lib)
(custom-declare-face 'icon '((t :underline nil)) "Face for buttons." :version "29.1" :group 'customize)
(custom-declare-face 'icon-button '((((type x w32 ns haiku pgtk) (class color)) :inherit icon :box (:line-width (3 . -1) :color "#404040" :style flat-button) :background "#808080" :foreground "black")) "Face for buttons." :version "29.1" :group 'customize)
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable icon-preference funcall function #[0 "\300\207" [(image emoji symbol text)] 1 ""] "List of icon types to use, in order of preference.\nEmacs will choose the icon of the highest preference possible\non the current display, and \"degrade\" gracefully to an icon\ntype that's available." :version "29.1" :group customize :type (repeat (choice (const :tag "Images" image) (const :tag "Colorful Emojis" emoji) (const :tag "Monochrome Symbols" symbol) (const :tag "Text Only" text)))] 10)#@725 Define an icon identified by NAME.
If non-nil, inherit the specification from PARENT.  Entries from
SPECIFICATION will override inherited specifications.

SPECIFICATION is an alist of entries where the first element is
the type, and the rest are icons of that type.  Valid types are
`image', `emoji', `symbol' and `text'.

KEYWORDS specify additional information.  Valid keywords are:

`:version': The first Emacs version to include this icon; this is
mandatory.

`:group': The customization group the icon belongs in; this is
inferred if not present.

`:help-echo': Informational text that explains what happens if
the icon is used as a button and you click it.

(fn NAME PARENT SPECIFICATION DOCUMENTATION &rest KEYWORDS)
(defalias 'define-icon '(macro . #[1156 "9\204 \300\301\"\210\302\303\"\204 \300\304!\210\305\306D\306D\306D\257\207" [error "NAME must be a symbol: %S" plist-get :version "There must be a :version keyword in `define-icon'" icons--register quote] 12 (#$ . 1041)]))
(byte-code "\300\301\302\303#\300\207" [function-put define-icon lisp-indent-function 2] 4)#@38 

(fn NAME PARENT SPEC DOC KEYWORDS)
(defalias 'icons--register #[1285 "\300\301F#\210\302\303\304\"\206 \305 \306#\207" [put icon--properties custom-add-to-group plist-get :group custom-current-group custom-icon] 12 (#$ . 2142)])#@13 

(fn SPEC)
(defalias 'icon-spec-keywords #[257 "\300\301A\"\207" [seq-drop-while #[257 "\300!?\207" [keywordp] 3 "\n\n(fn E)"]] 4 (#$ . 2391)])#@13 

(fn SPEC)
(defalias 'icon-spec-values #[257 "\300\301A\"\207" [seq-take-while #[257 "\300!?\207" [keywordp] 3 "\n\n(fn E)"]] 4 (#$ . 2543)])#@101 Return nil if OBJECT is not an icon.
If OBJECT is an icon, return the icon properties.

(fn OBJECT)
(defalias 'iconp #[257 "\211\300N\207" [icon--properties] 3 (#$ . 2694)])#@47 Return the documentation for ICON.

(fn ICON)
(defalias 'icon-documentation #[257 "\300!\211\204\f \301\302\"\210\3038\207" [iconp user-error "%s is not a valid icon" 2] 5 (#$ . 2873)])#@13 

(fn ICON)
(defalias 'icons--spec #[257 "\300!A@\207" [iconp] 3 (#$ . 3067)])#@13 

(fn SPEC)
(defalias 'icons--copy-spec #[257 "\300\301\"\207" [mapcar copy-sequence] 4 (#$ . 3152)])#@89 Return the merged spec for ICON.

(fn ICON &optional INHIBIT-THEME INHIBIT-INHERITANCE)
(defalias 'icon-complete-spec #[769 "\300!\211\242\243\211\242\243\211\242\243\211\242\243\301!\262\f\2046 \302N@A@\211\2035 \303\301!\"\262\210\204V \203V \304N\211\203N \303A@\"\262\211@\262\210\202; \207" [iconp icons--copy-spec theme-icon icons--merge-spec icon--properties] 18 (#$ . 3260)])#@86 Return a string suitable for display in the current buffer for icon NAME.

(fn NAME)
(defalias 'icon-string #[257 "\301!\211\204\f \302\303\"\210\211\242\243\211\242\243\211\242\243\211\242\243\304!\262\3052r \211\205o \211@\211\236\306!\307!\211\203f \211@\310#\211\203^ \311\305\312\313\"\211\203Y \314\315#\202Z \262\"\210\210A\266\202\2027 \266A\266\202\202( \2620\211\204| \316\317\"\210\312\320\"\211\203\213 \314\321#\262\210\314\322\323#\207" [icon-preference iconp user-error "%s is not a valid icon" icon-complete-spec found icon-spec-keywords icon-spec-values icons--create throw plist-get :face propertize face error "Couldn't find any way to display the %s icon" :help-echo help-echo rear-nonsticky t] 25 (#$ . 3675)])#@212 Return the elements of icon NAME.
The elements are represented as a plist where the keys are
`string', `face' and `image'.  The `image' element is only
present if the icon is represented by an image.

(fn NAME)
(defalias 'icon-elements #[257 "\300!\301\302\303\301#\304\302\303\305#\306\307!\257\207" [icon-string face get-text-property 0 image display string substring-no-properties] 9 (#$ . 4447)])#@27 

(fn MERGED PARENT-SPEC)
(defalias 'icons--merge-spec #[514 "\211\211\203B \211@\211@\236\211\204 B\262\210\202; \300!\300!\2039 \301@\"\2041 \302\303\"\244\210AA\262\202 \266A\266\202\202 \210\207" [icon-spec-keywords plist-get take 2] 11 (#$ . 4860)])
(byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\301\302\307\302\310%\210\300\301\302\311\302\312%\210\313\314\302\315\316\317%\207" [cl-generic-define-method icons--create nil ((_type (eql 'image)) icon keywords) #[771 "\300!\203\n \202 \301\302!\205 \302!\211;\205 \303!\211\205\243 \304 \205\243 \301\305!\205\243 \305!\205\243 \306\307\310\311\312\313\"\211\205K \313\314=\203I \315 \202J D\262\312\316\"\211\205d \316\317=\203b \320 \202c D\262\321\312\n\322\"\211\205s \322D\262\312\323\"\211\205\201 \323D\262\324\325\324\"\203\224 \312\324\"\202\225 \326D&\327\330\331\211%\262#\207" [file-name-absolute-p fboundp image-search-load-path file-readable-p display-images-p image-supported-file-p propertize " " display append plist-get :height line window-default-line-height :width font default-font-width (:scale 1) :rotation :margin :ascent plist-member center apply create-image nil] 18 "\n\n(fn TYPE ICON KEYWORDS)"] ((_type (eql 'emoji)) icon _keywords) #[771 "\300 \205\n \301\302\303\"@\211\205 \304\305H\"\205 \207" [display-multi-font-p internal-char-font nil 128992 font-has-char-p 0] 8 "\n\n(fn TYPE ICON KEYWORDS)"] ((_type (eql 'symbol)) icon _keywords) #[771 "\300\301\"\205 \207" [cl-every char-displayable-p] 6 "\n\n(fn TYPE ICON KEYWORDS)"] ((_type (eql 'text)) icon _keywords) #[771 "\207" [] 4 "\n\n(fn TYPE ICON KEYWORDS)"] icons--register button ((image :face icon-button) (emoji "🔵" :face icon) (symbol "●" :face icon-button) (text "button" :face icon-button)) "Base icon for buttons." (:version "29.1")] 6)#@46 Pop to a buffer to describe ICON.

(fn ICON)
(defalias 'describe-icon #[257 "\301\302\303D\304\305!\"\210\306\307 \310\311\"\")\207" [help-buffer-under-preparation t help-setup-xref describe-icon called-interactively-p interactive help--window-setup help-buffer make-closure #[0 "r	q\210\302\303\300!\304\261\210\305\306\307\300!!\261\210\310 \210\311\300!\311\300\312\211#\313c\210\314!\210\232?\2054 \315c\210\314!\266\202)\207" [V0 standard-output "Icon: " symbol-name "\n\n" "Documentation:\n" substitute-command-keys icon-documentation ensure-empty-lines icon-complete-spec t "Specification including inheritance and theming:\n" icons--describe-spec "\nSpecification not including inheritance and theming:\n"] 5]] 6 (#$ . 6749) (byte-code "\301\302\303\304\305$!C\207" [obarray intern completing-read "Describe icon: " iconp t] 6)])#@13 

(fn SPEC)
(defalias 'icons--describe-spec #[257 "\211\211\205S \211@\211@\300!\301!\204 \211\203J \302\303\"c\210\211\2031 \211@\302\304\"c\210A\266\202\202 \210\211\203J \302\305\211A\262\242\211A\262\242#c\210\2022 \266A\266\202\202 \207" [icon-spec-values icon-spec-keywords format "\nType: %s\n" "  %s\n" "    %s: %s\n"] 11 (#$ . 7602)])
(provide 'icons)
