{"version":3,"file":"eagami-ui.mjs","sources":["../../../src/lib/i18n/i18n.token.ts","../../../src/lib/palette/apply-palette.ts","../../../src/lib/palette/oklch.ts","../../../src/lib/palette/palette.types.ts","../../../src/lib/palette/derive-palette.ts","../../../src/lib/palette/contrast.ts","../../../src/lib/palette/validate-palette.ts","../../../src/lib/eagami-ui.provider.ts","../../../src/lib/i18n/i18n.types.ts","../../../src/lib/i18n/_storybook-locale-override.ts","../../../src/lib/i18n/messages/ar.ts","../../../src/lib/i18n/messages/de.ts","../../../src/lib/i18n/messages/el.ts","../../../src/lib/i18n/messages/en.ts","../../../src/lib/i18n/messages/es-ES.ts","../../../src/lib/i18n/messages/fr-FR.ts","../../../src/lib/i18n/messages/he.ts","../../../src/lib/i18n/messages/hi.ts","../../../src/lib/i18n/messages/is.ts","../../../src/lib/i18n/messages/nl.ts","../../../src/lib/i18n/messages/pl.ts","../../../src/lib/i18n/messages/pt-BR.ts","../../../src/lib/i18n/messages/ru.ts","../../../src/lib/i18n/messages/uk.ts","../../../src/lib/i18n/messages/zh-CN.ts","../../../src/lib/i18n/messages/index.ts","../../../src/lib/i18n/i18n.service.ts","../../../src/lib/i18n/french-spacing.ts","../../../src/lib/accordion/accordion.component.ts","../../../src/lib/icons/icon-category.ts","../../../src/lib/icons/chevron-down.component.ts","../../../src/lib/unique-id.ts","../../../src/lib/accordion/accordion-item.component.ts","../../../src/lib/accordion/accordion-item.component.html","../../../src/lib/icons/alert-circle.component.ts","../../../src/lib/icons/check.component.ts","../../../src/lib/icons/info.component.ts","../../../src/lib/icons/x.component.ts","../../../src/lib/alert/alert.component.ts","../../../src/lib/alert/alert.component.html","../../../src/lib/field/field-label.component.ts","../../../src/lib/field/field-label.component.html","../../../src/lib/field/field-messages.component.ts","../../../src/lib/field/field-messages.component.html","../../../src/lib/pointer-press.ts","../../../src/lib/forms/control-error-state.ts","../../../src/lib/direction.ts","../../../src/lib/top-layer.ts","../../../src/lib/popover/popover-positioning.ts","../../../src/lib/popover/popover.component.ts","../../../src/lib/popover/popover.component.html","../../../src/lib/select-option-list.ts","../../../src/lib/autocomplete/autocomplete.component.ts","../../../src/lib/autocomplete/autocomplete.component.html","../../../src/lib/icons/camera.component.ts","../../../src/lib/icons/minus.component.ts","../../../src/lib/icons/plus.component.ts","../../../src/lib/icons/rotate-ccw.component.ts","../../../src/lib/icons/trash.component.ts","../../../src/lib/skeleton/skeleton.component.ts","../../../src/lib/skeleton/skeleton.component.html","../../../src/lib/aria-target.ts","../../../src/lib/truncation.ts","../../../src/lib/tooltip/tooltip.directive.ts","../../../src/lib/avatar-editor/avatar-editor.component.ts","../../../src/lib/avatar-editor/avatar-editor.component.html","../../../src/lib/icons/user.component.ts","../../../src/lib/avatar/avatar.component.ts","../../../src/lib/avatar/avatar.component.html","../../../src/lib/badge/badge.component.ts","../../../src/lib/badge/badge.component.html","../../../src/lib/icons/chevron-right.component.ts","../../../src/lib/breadcrumbs/breadcrumbs.component.ts","../../../src/lib/breadcrumbs/breadcrumbs.component.html","../../../src/lib/button/button.component.ts","../../../src/lib/button/button.component.html","../../../src/lib/divider/divider.component.ts","../../../src/lib/divider/divider.component.html","../../../src/lib/card/card.component.ts","../../../src/lib/card/card.component.html","../../../src/lib/checkbox/checkbox.component.ts","../../../src/lib/checkbox/checkbox.component.html","../../../src/lib/icons/search.component.ts","../../../src/lib/icons/eye-off.component.ts","../../../src/lib/icons/eye.component.ts","../../../src/lib/input/input.component.ts","../../../src/lib/input/input.component.html","../../../src/lib/command-palette/command-palette.component.ts","../../../src/lib/command-palette/command-palette.component.html","../../../src/lib/icons/droplet.component.ts","../../../src/lib/color-picker/color-picker.component.ts","../../../src/lib/color-picker/color-picker.component.html","../../../src/lib/icons/arrow-down.component.ts","../../../src/lib/icons/arrow-up.component.ts","../../../src/lib/icons/chevrons-up-down.component.ts","../../../src/lib/data-table/data-table.component.ts","../../../src/lib/data-table/data-table.component.html","../../../src/lib/code-input/code-input.component.ts","../../../src/lib/code-input/code-input.component.html","../../../src/lib/icons/calendar.component.ts","../../../src/lib/icons/chevron-left.component.ts","../../../src/lib/date-picker/parse-date.ts","../../../src/lib/date-picker/date-picker.component.ts","../../../src/lib/date-picker/date-picker.component.html","../../../src/lib/scroll-lock.ts","../../../src/lib/dialog/dialog.component.ts","../../../src/lib/dialog/dialog.component.html","../../../src/lib/drawer/drawer.component.ts","../../../src/lib/drawer/drawer.component.html","../../../src/lib/dropdown/dropdown.component.ts","../../../src/lib/dropdown/dropdown.component.html","../../../src/lib/icons/eagami.component.ts","../../../src/lib/eagami-wordmark/eagami-wordmark.component.ts","../../../src/lib/eagami-wordmark/eagami-wordmark.component.html","../../../src/lib/empty-state/empty-state.component.ts","../../../src/lib/empty-state/empty-state.component.html","../../../src/lib/field/form-field.component.ts","../../../src/lib/field/form-field.component.html","../../../src/lib/icons/archive.component.ts","../../../src/lib/icons/file-text.component.ts","../../../src/lib/icons/file.component.ts","../../../src/lib/icons/film.component.ts","../../../src/lib/icons/image.component.ts","../../../src/lib/icons/music.component.ts","../../../src/lib/icons/upload-cloud.component.ts","../../../src/lib/file-uploader/file-uploader.component.ts","../../../src/lib/file-uploader/file-uploader.component.html","../../../src/lib/menu/menu.component.ts","../../../src/lib/menu/menu.component.html","../../../src/lib/menu/menu-item.component.ts","../../../src/lib/menu/menu-item.component.html","../../../src/lib/menu/menu-trigger.directive.ts","../../../src/lib/tag/tag.component.ts","../../../src/lib/tag/tag.component.html","../../../src/lib/multi-select/multi-select.component.ts","../../../src/lib/multi-select/multi-select.component.html","../../../src/lib/number-input/number-input.component.ts","../../../src/lib/number-input/number-input.component.html","../../../src/lib/i18n/format-number.ts","../../../src/lib/paginator/paginator.component.ts","../../../src/lib/paginator/paginator.component.html","../../../src/lib/progress-bar/progress-bar.component.ts","../../../src/lib/progress-bar/progress-bar.component.html","../../../src/lib/radio/radio-group.component.ts","../../../src/lib/radio/radio-group.component.html","../../../src/lib/radio/radio.component.ts","../../../src/lib/radio/radio.component.html","../../../src/lib/range-slider/range-slider.component.ts","../../../src/lib/range-slider/range-slider.component.html","../../../src/lib/icons/left-half-star.component.ts","../../../src/lib/icons/star.component.ts","../../../src/lib/rating/rating.component.ts","../../../src/lib/rating/rating.component.html","../../../src/lib/segmented/segmented.component.ts","../../../src/lib/segmented/segmented.component.html","../../../src/lib/slider/slider.component.ts","../../../src/lib/slider/slider.component.html","../../../src/lib/spinner/spinner.component.ts","../../../src/lib/spinner/spinner.component.html","../../../src/lib/stepper/stepper.component.ts","../../../src/lib/stepper/stepper.component.html","../../../src/lib/stepper/step.component.ts","../../../src/lib/switch/switch.component.ts","../../../src/lib/switch/switch.component.html","../../../src/lib/tabs/tabs.component.ts","../../../src/lib/tabs/tabs.component.html","../../../src/lib/tabs/tab.component.ts","../../../src/lib/textarea/textarea.component.ts","../../../src/lib/textarea/textarea.component.html","../../../src/lib/icons/chevron-up.component.ts","../../../src/lib/icons/clock.component.ts","../../../src/lib/time-picker/time-picker.component.ts","../../../src/lib/time-picker/time-picker.component.html","../../../src/lib/timeline/timeline.component.ts","../../../src/lib/timeline/timeline.component.html","../../../src/lib/icons/alert-triangle.component.ts","../../../src/lib/icons/check-circle.component.ts","../../../src/lib/toast/toast.service.ts","../../../src/lib/toast/toast.component.ts","../../../src/lib/toast/toast.component.html","../../../src/lib/icons/chevrons-left.component.ts","../../../src/lib/icons/chevrons-right.component.ts","../../../src/lib/transfer-list/transfer-list.component.ts","../../../src/lib/transfer-list/transfer-list.component.html","../../../src/lib/tree/tree-node.component.ts","../../../src/lib/tree/tree-node.component.html","../../../src/lib/tree/tree.types.ts","../../../src/lib/tree/tree.component.ts","../../../src/lib/tree/tree.component.html","../../../src/lib/virtual-list/virtual-list.component.ts","../../../src/lib/virtual-list/virtual-list.component.html","../../../src/lib/icons/icon-display-name.ts","../../../src/lib/icons/activity.component.ts","../../../src/lib/icons/airplay.component.ts","../../../src/lib/icons/alert-octagon.component.ts","../../../src/lib/icons/align-center.component.ts","../../../src/lib/icons/align-justify.component.ts","../../../src/lib/icons/align-left.component.ts","../../../src/lib/icons/align-right.component.ts","../../../src/lib/icons/anchor.component.ts","../../../src/lib/icons/android.component.ts","../../../src/lib/icons/angular.component.ts","../../../src/lib/icons/anthropic.component.ts","../../../src/lib/icons/aperture.component.ts","../../../src/lib/icons/array.component.ts","../../../src/lib/icons/arrow-down-circle.component.ts","../../../src/lib/icons/arrow-down-left.component.ts","../../../src/lib/icons/arrow-down-right.component.ts","../../../src/lib/icons/arrow-left-circle.component.ts","../../../src/lib/icons/arrow-left.component.ts","../../../src/lib/icons/arrow-right-circle.component.ts","../../../src/lib/icons/arrow-right.component.ts","../../../src/lib/icons/arrow-up-circle.component.ts","../../../src/lib/icons/arrow-up-left.component.ts","../../../src/lib/icons/arrow-up-right.component.ts","../../../src/lib/icons/aspect-ratio.component.ts","../../../src/lib/icons/at-sign.component.ts","../../../src/lib/icons/award.component.ts","../../../src/lib/icons/badge-check.component.ts","../../../src/lib/icons/bar-chart-2.component.ts","../../../src/lib/icons/bar-chart.component.ts","../../../src/lib/icons/battery-charging.component.ts","../../../src/lib/icons/battery.component.ts","../../../src/lib/icons/bell-off.component.ts","../../../src/lib/icons/bell-ring.component.ts","../../../src/lib/icons/bell.component.ts","../../../src/lib/icons/bitcoin.component.ts","../../../src/lib/icons/bluesky.component.ts","../../../src/lib/icons/bluetooth.component.ts","../../../src/lib/icons/bold.component.ts","../../../src/lib/icons/book-open.component.ts","../../../src/lib/icons/book.component.ts","../../../src/lib/icons/bookmark-check.component.ts","../../../src/lib/icons/bookmark-plus.component.ts","../../../src/lib/icons/bookmark.component.ts","../../../src/lib/icons/bot.component.ts","../../../src/lib/icons/bottle.component.ts","../../../src/lib/icons/box.component.ts","../../../src/lib/icons/brain.component.ts","../../../src/lib/icons/briefcase.component.ts","../../../src/lib/icons/bug.component.ts","../../../src/lib/icons/building.component.ts","../../../src/lib/icons/calculator.component.ts","../../../src/lib/icons/calendar-check.component.ts","../../../src/lib/icons/calendar-days.component.ts","../../../src/lib/icons/camera-off.component.ts","../../../src/lib/icons/candle.component.ts","../../../src/lib/icons/cast.component.ts","../../../src/lib/icons/check-square.component.ts","../../../src/lib/icons/chevrons-down.component.ts","../../../src/lib/icons/chevrons-up.component.ts","../../../src/lib/icons/chrome.component.ts","../../../src/lib/icons/circle.component.ts","../../../src/lib/icons/clapperboard.component.ts","../../../src/lib/icons/clipboard-check.component.ts","../../../src/lib/icons/clipboard-list.component.ts","../../../src/lib/icons/clipboard.component.ts","../../../src/lib/icons/cloud-drizzle.component.ts","../../../src/lib/icons/cloud-lightning.component.ts","../../../src/lib/icons/cloud-off.component.ts","../../../src/lib/icons/cloud-rain.component.ts","../../../src/lib/icons/cloud-snow.component.ts","../../../src/lib/icons/cloud.component.ts","../../../src/lib/icons/cloudflare.component.ts","../../../src/lib/icons/code.component.ts","../../../src/lib/icons/codepen.component.ts","../../../src/lib/icons/codesandbox.component.ts","../../../src/lib/icons/coffee.component.ts","../../../src/lib/icons/coins.component.ts","../../../src/lib/icons/columns.component.ts","../../../src/lib/icons/command.component.ts","../../../src/lib/icons/compass.component.ts","../../../src/lib/icons/contrast.component.ts","../../../src/lib/icons/copy.component.ts","../../../src/lib/icons/corner-down-left.component.ts","../../../src/lib/icons/corner-down-right.component.ts","../../../src/lib/icons/corner-left-down.component.ts","../../../src/lib/icons/corner-left-up.component.ts","../../../src/lib/icons/corner-right-down.component.ts","../../../src/lib/icons/corner-right-up.component.ts","../../../src/lib/icons/corner-up-left.component.ts","../../../src/lib/icons/corner-up-right.component.ts","../../../src/lib/icons/cpu.component.ts","../../../src/lib/icons/credit-card.component.ts","../../../src/lib/icons/crop.component.ts","../../../src/lib/icons/crosshair.component.ts","../../../src/lib/icons/database.component.ts","../../../src/lib/icons/delete.component.ts","../../../src/lib/icons/dice-1.component.ts","../../../src/lib/icons/dice-2.component.ts","../../../src/lib/icons/dice-3.component.ts","../../../src/lib/icons/dice-4.component.ts","../../../src/lib/icons/dice-5.component.ts","../../../src/lib/icons/dice-6.component.ts","../../../src/lib/icons/disc.component.ts","../../../src/lib/icons/discord.component.ts","../../../src/lib/icons/divide-circle.component.ts","../../../src/lib/icons/divide-square.component.ts","../../../src/lib/icons/divide.component.ts","../../../src/lib/icons/docker.component.ts","../../../src/lib/icons/dollar-sign.component.ts","../../../src/lib/icons/double-exclamation-mark.component.ts","../../../src/lib/icons/double-question-mark.component.ts","../../../src/lib/icons/download-cloud.component.ts","../../../src/lib/icons/download.component.ts","../../../src/lib/icons/dribbble.component.ts","../../../src/lib/icons/dropbox.component.ts","../../../src/lib/icons/edit-2.component.ts","../../../src/lib/icons/edit-3.component.ts","../../../src/lib/icons/edit.component.ts","../../../src/lib/icons/exclamation-mark.component.ts","../../../src/lib/icons/exclamation-question-mark.component.ts","../../../src/lib/icons/external-link.component.ts","../../../src/lib/icons/facebook-2.component.ts","../../../src/lib/icons/facebook.component.ts","../../../src/lib/icons/fast-forward.component.ts","../../../src/lib/icons/feather.component.ts","../../../src/lib/icons/figma-2.component.ts","../../../src/lib/icons/figma.component.ts","../../../src/lib/icons/file-audio.component.ts","../../../src/lib/icons/file-check.component.ts","../../../src/lib/icons/file-image.component.ts","../../../src/lib/icons/file-minus.component.ts","../../../src/lib/icons/file-pdf.component.ts","../../../src/lib/icons/file-plus.component.ts","../../../src/lib/icons/file-video.component.ts","../../../src/lib/icons/filter-x.component.ts","../../../src/lib/icons/filter.component.ts","../../../src/lib/icons/fingerprint.component.ts","../../../src/lib/icons/first-place-medal.component.ts","../../../src/lib/icons/flag.component.ts","../../../src/lib/icons/flame.component.ts","../../../src/lib/icons/folder-minus.component.ts","../../../src/lib/icons/folder-open.component.ts","../../../src/lib/icons/folder-plus.component.ts","../../../src/lib/icons/folder.component.ts","../../../src/lib/icons/framer.component.ts","../../../src/lib/icons/frown.component.ts","../../../src/lib/icons/gauge.component.ts","../../../src/lib/icons/gemini.component.ts","../../../src/lib/icons/gift.component.ts","../../../src/lib/icons/git-branch.component.ts","../../../src/lib/icons/git-commit.component.ts","../../../src/lib/icons/git-compare.component.ts","../../../src/lib/icons/git-merge.component.ts","../../../src/lib/icons/git-pull-request.component.ts","../../../src/lib/icons/github-2.component.ts","../../../src/lib/icons/github.component.ts","../../../src/lib/icons/gitlab.component.ts","../../../src/lib/icons/globe.component.ts","../../../src/lib/icons/google.component.ts","../../../src/lib/icons/grid.component.ts","../../../src/lib/icons/half-circle.component.ts","../../../src/lib/icons/half-heart.component.ts","../../../src/lib/icons/hard-drive.component.ts","../../../src/lib/icons/hash.component.ts","../../../src/lib/icons/headphones.component.ts","../../../src/lib/icons/heart.component.ts","../../../src/lib/icons/help-circle.component.ts","../../../src/lib/icons/heptagon.component.ts","../../../src/lib/icons/hexagon.component.ts","../../../src/lib/icons/history.component.ts","../../../src/lib/icons/home.component.ts","../../../src/lib/icons/image-plus.component.ts","../../../src/lib/icons/image-search.component.ts","../../../src/lib/icons/images.component.ts","../../../src/lib/icons/inbox.component.ts","../../../src/lib/icons/instagram.component.ts","../../../src/lib/icons/italic.component.ts","../../../src/lib/icons/key.component.ts","../../../src/lib/icons/keyboard.component.ts","../../../src/lib/icons/keyframe.component.ts","../../../src/lib/icons/kubernetes.component.ts","../../../src/lib/icons/lamp.component.ts","../../../src/lib/icons/languages.component.ts","../../../src/lib/icons/laptop.component.ts","../../../src/lib/icons/layers.component.ts","../../../src/lib/icons/layout.component.ts","../../../src/lib/icons/leaf.component.ts","../../../src/lib/icons/life-buoy.component.ts","../../../src/lib/icons/lightbulb.component.ts","../../../src/lib/icons/link-2.component.ts","../../../src/lib/icons/link.component.ts","../../../src/lib/icons/linkedin-2.component.ts","../../../src/lib/icons/linkedin.component.ts","../../../src/lib/icons/list-checks.component.ts","../../../src/lib/icons/list.component.ts","../../../src/lib/icons/loader.component.ts","../../../src/lib/icons/lock.component.ts","../../../src/lib/icons/log-in.component.ts","../../../src/lib/icons/log-out.component.ts","../../../src/lib/icons/mail-check.component.ts","../../../src/lib/icons/mail.component.ts","../../../src/lib/icons/map-pin.component.ts","../../../src/lib/icons/map.component.ts","../../../src/lib/icons/mastercard.component.ts","../../../src/lib/icons/maximize-2.component.ts","../../../src/lib/icons/maximize.component.ts","../../../src/lib/icons/megaphone.component.ts","../../../src/lib/icons/meh.component.ts","../../../src/lib/icons/menu.component.ts","../../../src/lib/icons/message-circle.component.ts","../../../src/lib/icons/message-square.component.ts","../../../src/lib/icons/mic-off.component.ts","../../../src/lib/icons/mic.component.ts","../../../src/lib/icons/microscope.component.ts","../../../src/lib/icons/microsoft.component.ts","../../../src/lib/icons/minimize-2.component.ts","../../../src/lib/icons/minimize.component.ts","../../../src/lib/icons/minus-circle.component.ts","../../../src/lib/icons/minus-square.component.ts","../../../src/lib/icons/mongodb.component.ts","../../../src/lib/icons/monitor.component.ts","../../../src/lib/icons/moon.component.ts","../../../src/lib/icons/more-horizontal.component.ts","../../../src/lib/icons/more-vertical.component.ts","../../../src/lib/icons/mouse-pointer.component.ts","../../../src/lib/icons/move.component.ts","../../../src/lib/icons/navigation-2.component.ts","../../../src/lib/icons/navigation.component.ts","../../../src/lib/icons/netlify.component.ts","../../../src/lib/icons/newspaper.component.ts","../../../src/lib/icons/nodejs.component.ts","../../../src/lib/icons/notion.component.ts","../../../src/lib/icons/npm.component.ts","../../../src/lib/icons/octagon.component.ts","../../../src/lib/icons/package.component.ts","../../../src/lib/icons/palette.component.ts","../../../src/lib/icons/paperclip.component.ts","../../../src/lib/icons/pause-circle.component.ts","../../../src/lib/icons/pause.component.ts","../../../src/lib/icons/paypal.component.ts","../../../src/lib/icons/pen-tool.component.ts","../../../src/lib/icons/pentagon.component.ts","../../../src/lib/icons/percent.component.ts","../../../src/lib/icons/phone-call.component.ts","../../../src/lib/icons/phone-forwarded.component.ts","../../../src/lib/icons/phone-incoming.component.ts","../../../src/lib/icons/phone-missed.component.ts","../../../src/lib/icons/phone-off.component.ts","../../../src/lib/icons/phone-outgoing.component.ts","../../../src/lib/icons/phone.component.ts","../../../src/lib/icons/picture-in-picture.component.ts","../../../src/lib/icons/pie-chart.component.ts","../../../src/lib/icons/pin.component.ts","../../../src/lib/icons/pinterest.component.ts","../../../src/lib/icons/play-circle.component.ts","../../../src/lib/icons/play.component.ts","../../../src/lib/icons/playlist.component.ts","../../../src/lib/icons/plug.component.ts","../../../src/lib/icons/plus-circle.component.ts","../../../src/lib/icons/plus-square.component.ts","../../../src/lib/icons/pocket.component.ts","../../../src/lib/icons/power.component.ts","../../../src/lib/icons/printer.component.ts","../../../src/lib/icons/python.component.ts","../../../src/lib/icons/qr-code.component.ts","../../../src/lib/icons/question-exclamation-mark.component.ts","../../../src/lib/icons/question-mark.component.ts","../../../src/lib/icons/radio.component.ts","../../../src/lib/icons/react.component.ts","../../../src/lib/icons/receipt.component.ts","../../../src/lib/icons/record.component.ts","../../../src/lib/icons/rectangle-horizontal.component.ts","../../../src/lib/icons/rectangle-vertical.component.ts","../../../src/lib/icons/reddit.component.ts","../../../src/lib/icons/redo.component.ts","../../../src/lib/icons/refresh-ccw.component.ts","../../../src/lib/icons/refresh-cw.component.ts","../../../src/lib/icons/repeat.component.ts","../../../src/lib/icons/rewind.component.ts","../../../src/lib/icons/right-half-star.component.ts","../../../src/lib/icons/rocket.component.ts","../../../src/lib/icons/rotate-ccw-square.component.ts","../../../src/lib/icons/rotate-cw.component.ts","../../../src/lib/icons/rows.component.ts","../../../src/lib/icons/rss.component.ts","../../../src/lib/icons/save.component.ts","../../../src/lib/icons/scan.component.ts","../../../src/lib/icons/scissors.component.ts","../../../src/lib/icons/second-place-medal.component.ts","../../../src/lib/icons/send.component.ts","../../../src/lib/icons/server.component.ts","../../../src/lib/icons/settings.component.ts","../../../src/lib/icons/share.component.ts","../../../src/lib/icons/shield-check.component.ts","../../../src/lib/icons/shield-off.component.ts","../../../src/lib/icons/shield.component.ts","../../../src/lib/icons/shopify.component.ts","../../../src/lib/icons/shopping-bag.component.ts","../../../src/lib/icons/shopping-cart.component.ts","../../../src/lib/icons/shuffle.component.ts","../../../src/lib/icons/sidebar.component.ts","../../../src/lib/icons/skip-back.component.ts","../../../src/lib/icons/skip-forward.component.ts","../../../src/lib/icons/slack-2.component.ts","../../../src/lib/icons/slack.component.ts","../../../src/lib/icons/slash.component.ts","../../../src/lib/icons/sliders.component.ts","../../../src/lib/icons/smartphone.component.ts","../../../src/lib/icons/smile.component.ts","../../../src/lib/icons/snowflake.component.ts","../../../src/lib/icons/soccer-ball.component.ts","../../../src/lib/icons/sparkles.component.ts","../../../src/lib/icons/speaker.component.ts","../../../src/lib/icons/spotify.component.ts","../../../src/lib/icons/square.component.ts","../../../src/lib/icons/stop-circle.component.ts","../../../src/lib/icons/stripe.component.ts","../../../src/lib/icons/subtitles.component.ts","../../../src/lib/icons/sun.component.ts","../../../src/lib/icons/sunrise.component.ts","../../../src/lib/icons/sunset.component.ts","../../../src/lib/icons/svelte.component.ts","../../../src/lib/icons/table.component.ts","../../../src/lib/icons/tablet.component.ts","../../../src/lib/icons/tag.component.ts","../../../src/lib/icons/tailwind.component.ts","../../../src/lib/icons/target.component.ts","../../../src/lib/icons/telegram.component.ts","../../../src/lib/icons/terminal.component.ts","../../../src/lib/icons/thermometer.component.ts","../../../src/lib/icons/third-place-medal.component.ts","../../../src/lib/icons/threads.component.ts","../../../src/lib/icons/thumbs-down.component.ts","../../../src/lib/icons/thumbs-up.component.ts","../../../src/lib/icons/tiktok.component.ts","../../../src/lib/icons/timecode.component.ts","../../../src/lib/icons/timer.component.ts","../../../src/lib/icons/toggle-left.component.ts","../../../src/lib/icons/toggle-right.component.ts","../../../src/lib/icons/tool.component.ts","../../../src/lib/icons/transcode.component.ts","../../../src/lib/icons/trash-2.component.ts","../../../src/lib/icons/trello.component.ts","../../../src/lib/icons/trending-down.component.ts","../../../src/lib/icons/trending-up.component.ts","../../../src/lib/icons/triangle.component.ts","../../../src/lib/icons/trim.component.ts","../../../src/lib/icons/trophy.component.ts","../../../src/lib/icons/truck.component.ts","../../../src/lib/icons/tv.component.ts","../../../src/lib/icons/twitch-2.component.ts","../../../src/lib/icons/twitch.component.ts","../../../src/lib/icons/twitter.component.ts","../../../src/lib/icons/type.component.ts","../../../src/lib/icons/umbrella.component.ts","../../../src/lib/icons/underline.component.ts","../../../src/lib/icons/undo.component.ts","../../../src/lib/icons/unlock.component.ts","../../../src/lib/icons/upload.component.ts","../../../src/lib/icons/user-check.component.ts","../../../src/lib/icons/user-minus.component.ts","../../../src/lib/icons/user-plus.component.ts","../../../src/lib/icons/user-x.component.ts","../../../src/lib/icons/users.component.ts","../../../src/lib/icons/vercel.component.ts","../../../src/lib/icons/video-off.component.ts","../../../src/lib/icons/video.component.ts","../../../src/lib/icons/voicemail.component.ts","../../../src/lib/icons/volume-1.component.ts","../../../src/lib/icons/volume-2.component.ts","../../../src/lib/icons/volume-x.component.ts","../../../src/lib/icons/volume.component.ts","../../../src/lib/icons/vue.component.ts","../../../src/lib/icons/wallet.component.ts","../../../src/lib/icons/wand.component.ts","../../../src/lib/icons/watch.component.ts","../../../src/lib/icons/waveform.component.ts","../../../src/lib/icons/whatsapp.component.ts","../../../src/lib/icons/wifi-off.component.ts","../../../src/lib/icons/wifi.component.ts","../../../src/lib/icons/wind.component.ts","../../../src/lib/icons/wordpress.component.ts","../../../src/lib/icons/x-circle.component.ts","../../../src/lib/icons/x-octagon.component.ts","../../../src/lib/icons/x-square.component.ts","../../../src/lib/icons/x-twitter.component.ts","../../../src/lib/icons/youtube-2.component.ts","../../../src/lib/icons/youtube.component.ts","../../../src/lib/icons/zap-off.component.ts","../../../src/lib/icons/zap.component.ts","../../../src/lib/icons/zoom-in.component.ts","../../../src/lib/icons/zoom-out.component.ts","../../../src/lib/icons/icons-catalogue.ts","../../../src/eagami-ui.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport type { EagamiI18nConfig } from './i18n.types';\n\n/** DI token carrying the consumer-supplied i18n configuration. */\nexport const EAGAMI_I18N_CONFIG = new InjectionToken<EagamiI18nConfig>(\n  'EAGAMI_I18N_CONFIG',\n);\n","import type { ModePalette } from './palette.types';\n\nconst STYLE_TAG_ID = 'eagami-palette';\n\n/**\n * Install the derived palette as a `<style>` tag in `document.head`. Light\n * values land on `:root`; dark values land on `:root[data-theme=\"dark\"]` and\n * inside `@media (prefers-color-scheme: dark) :root:not([data-theme=\"light\"])`,\n * mirroring the library's own SCSS dark-mode selectors so a consumer-supplied\n * palette participates in the same theme toggle.\n *\n * Idempotent: subsequent calls replace the previous stylesheet rather than\n * append, so a theme switcher can re-apply without leaking style tags.\n * No-ops outside a DOM context (SSR).\n *\n * Pass `nonce` under a `style-src` policy that requires one, or the browser\n * drops the stylesheet and the app silently renders the library's own colours.\n * `provideEagamiUi()` forwards Angular's `CSP_NONCE` automatically.\n */\nexport function applyPalette(palette: ModePalette, nonce?: string | null): void {\n  if (typeof document === 'undefined') {\n    return;\n  }\n\n  const css = renderPaletteCss(palette);\n  let tag = document.getElementById(STYLE_TAG_ID) as HTMLStyleElement | null;\n  if (!tag) {\n    tag = document.createElement('style');\n    tag.id = STYLE_TAG_ID;\n    // Before insertion: the policy is checked as the tag enters the document\n    if (nonce) {\n      tag.setAttribute('nonce', nonce);\n    }\n    document.head.appendChild(tag);\n  }\n  tag.textContent = css;\n}\n\nfunction renderPaletteCss(palette: ModePalette): string {\n  const lightDecls = entries(palette.light);\n  const darkDecls = entries(palette.dark);\n\n  return [\n    `:root {\\n${lightDecls}\\n}`,\n    `@media (prefers-color-scheme: dark) {\\n  :root:not([data-theme='light']) {\\n${darkDecls}\\n  }\\n}`,\n    `:root[data-theme='dark'] {\\n${darkDecls}\\n}`,\n  ].join('\\n\\n');\n}\n\nfunction entries(palette: Record<string, string>): string {\n  return Object.entries(palette)\n    .map(([name, value]) => `  ${name}: ${value};`)\n    .join('\\n');\n}\n","/**\n * sRGB to OKLCH conversion. OKLCH is used over HSL so derived palettes keep\n * their chroma at darker shades. Follows Björn Ottosson's matrices,\n * https://bottosson.github.io/posts/oklab/.\n */\n\nexport interface Oklch {\n  /** Lightness, 0–1. */\n  l: number;\n  /** Chroma, 0 to ~0.4 in sRGB gamut. */\n  c: number;\n  /** Hue, 0–360 degrees. */\n  h: number;\n}\n\nexport interface Rgb {\n  /** 0–255. */\n  r: number;\n  g: number;\n  b: number;\n}\n\nexport function hexToRgb(hex: string): Rgb {\n  const normalized = hex.replace('#', '').trim();\n  if (normalized.length !== 6) {\n    throw new Error(`Invalid hex colour \"${hex}\", expected #RRGGBB`);\n  }\n  return {\n    r: parseInt(normalized.slice(0, 2), 16),\n    g: parseInt(normalized.slice(2, 4), 16),\n    b: parseInt(normalized.slice(4, 6), 16),\n  };\n}\n\nexport function rgbToHex({ r, g, b }: Rgb): string {\n  const channel = (n: number) => Math.max(0, Math.min(255, Math.round(n)));\n  const hex = (n: number) => channel(n).toString(16).padStart(2, '0');\n  return `#${hex(r)}${hex(g)}${hex(b)}`;\n}\n\nfunction srgbToLinear(c: number): number {\n  return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n}\n\nfunction linearToSrgb(c: number): number {\n  return c <= 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;\n}\n\ninterface Oklab {\n  l: number;\n  a: number;\n  b: number;\n}\n\nfunction linearRgbToOklab(r: number, g: number, b: number): Oklab {\n  const l1 = 0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b;\n  const m1 = 0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b;\n  const s1 = 0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b;\n\n  const l2 = Math.cbrt(l1);\n  const m2 = Math.cbrt(m1);\n  const s2 = Math.cbrt(s1);\n\n  return {\n    l: 0.2104542553 * l2 + 0.793617785 * m2 - 0.0040720468 * s2,\n    a: 1.9779984951 * l2 - 2.428592205 * m2 + 0.4505937099 * s2,\n    b: 0.0259040371 * l2 + 0.7827717662 * m2 - 0.808675766 * s2,\n  };\n}\n\nfunction oklabToLinearRgb({ l, a, b }: Oklab): Rgb {\n  const lCbrt = l + 0.3963377774 * a + 0.2158037573 * b;\n  const mCbrt = l - 0.1055613458 * a - 0.0638541728 * b;\n  const sCbrt = l - 0.0894841775 * a - 1.291485548 * b;\n\n  const lLin = lCbrt ** 3;\n  const mLin = mCbrt ** 3;\n  const sLin = sCbrt ** 3;\n\n  const r = 4.0767416621 * lLin - 3.3077115913 * mLin + 0.2309699292 * sLin;\n  const g = -1.2684380046 * lLin + 2.6097574011 * mLin - 0.3413193965 * sLin;\n  const bb = -0.0041960863 * lLin - 0.7034186147 * mLin + 1.707614701 * sLin;\n\n  return { r, g, b: bb };\n}\n\nfunction oklabToOklch({ l, a, b }: Oklab): Oklch {\n  const c = Math.hypot(a, b);\n  const h = c < 1e-6 ? 0 : (Math.atan2(b, a) * 180) / Math.PI;\n  return { l, c, h: (h + 360) % 360 };\n}\n\nfunction oklchToOklab({ l, c, h }: Oklch): Oklab {\n  const hRad = (h * Math.PI) / 180;\n  return { l, a: c * Math.cos(hRad), b: c * Math.sin(hRad) };\n}\n\nexport function hexToOklch(hex: string): Oklch {\n  const { r, g, b } = hexToRgb(hex);\n  const lab = linearRgbToOklab(\n    srgbToLinear(r / 255),\n    srgbToLinear(g / 255),\n    srgbToLinear(b / 255),\n  );\n  return oklabToOklch(lab);\n}\n\nexport function oklchToHex(oklch: Oklch): string {\n  const lab = oklchToOklab(oklch);\n  const linRgb = oklabToLinearRgb(lab);\n  return rgbToHex({\n    r: linearToSrgb(linRgb.r) * 255,\n    g: linearToSrgb(linRgb.g) * 255,\n    b: linearToSrgb(linRgb.b) * 255,\n  });\n}\n","/** Public types for the eagami palette provider API. */\n\n/** The 10 derived shade positions, matching the library's existing scale. */\nexport type PaletteShade =\n  '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';\n\n/**\n * Which shade backs each semantic role. Defaults match the library's\n * hand-tuned palette so passing only `base` produces behaviour\n * indistinguishable from the un-themed library.\n */\nexport interface PaletteRoles {\n  /** `--color-brand-default` in light mode. */\n  surfaceLight: PaletteShade;\n  /** `--color-brand-default` in dark mode. */\n  surfaceDark: PaletteShade;\n  /** `--color-brand-hover` in light mode. */\n  surfaceHoverLight: PaletteShade;\n  /** `--color-brand-hover` in dark mode. */\n  surfaceHoverDark: PaletteShade;\n  /** `--color-brand-active` in light mode. */\n  surfaceActiveLight: PaletteShade;\n  /** `--color-brand-active` in dark mode. */\n  surfaceActiveDark: PaletteShade;\n  /** `--color-brand-text` in light mode. */\n  textLight: PaletteShade;\n  /** `--color-brand-text` in dark mode. */\n  textDark: PaletteShade;\n  /** `--color-brand-subtle` in light mode. */\n  subtleLight: PaletteShade;\n  /** `--color-brand-muted` in light mode. */\n  mutedLight: PaletteShade;\n  /** The shade washed at a tenth and a fifth for `--color-brand-subtle` and `--color-brand-muted` in dark mode. */\n  tintDark: PaletteShade;\n}\n\nexport const DEFAULT_PALETTE_ROLES: PaletteRoles = {\n  // Brand surface roles flip ONE shade lighter in dark mode (600 to 500) so\n  // the button clears WCAG 1.4.11 against the near-black canvas while still\n  // carrying its white label above 4.5:1. A larger flip (600 to 400) would\n  // lose the white label; no flip would lose the canvas contrast.\n  surfaceLight: '600',\n  surfaceDark: '500',\n  surfaceHoverLight: '700',\n  surfaceHoverDark: '600',\n  surfaceActiveLight: '800',\n  surfaceActiveDark: '700',\n  textLight: '700',\n  textDark: '300',\n  subtleLight: '50',\n  mutedLight: '100',\n  tintDark: '400',\n};\n\nexport interface PaletteConfig {\n  /** Anchor hex (`#RRGGBB`). The library derives the full 50–900 scale from\n   * this point in OKLCH space, holding hue and chroma roughly constant while\n   * stepping lightness. */\n  base: string;\n\n  /** Pin individual shades to specific hex values, bypassing derivation for\n   * those slots. */\n  overrides?: Partial<Record<PaletteShade, string>>;\n\n  /** Remap semantic roles onto different shades. Most consumers leave this\n   * unset and accept the defaults. */\n  roles?: Partial<PaletteRoles>;\n}\n\n/** Top-level palette config accepted by `provideEagamiUi()`. */\nexport interface EagamiPaletteConfig {\n  primary?: PaletteConfig;\n  secondary?: PaletteConfig;\n}\n\n/** Flat CSS-custom-property name to value map for a single mode. */\nexport type DerivedPalette = Record<string, string>;\n\n/**\n * Output of `derivePalette`. Carries a separate map per mode so tokens that\n * have to track the canvas (brand-text, brand-subtle, brand-muted) can hold\n * different values in light and dark, while surface roles stay shared.\n */\nexport interface ModePalette {\n  light: DerivedPalette;\n  dark: DerivedPalette;\n}\n","import { hexToOklch, hexToRgb, oklchToHex } from './oklch';\nimport {\n  DEFAULT_PALETTE_ROLES,\n  type DerivedPalette,\n  type EagamiPaletteConfig,\n  type ModePalette,\n  type PaletteConfig,\n  type PaletteRoles,\n  type PaletteShade,\n} from './palette.types';\n\n/**\n * Target OKLCH lightness per shade. Mirrors the library's hand-tuned scale.\n * Chroma is tapered at the extremes so 50/100 don't read washed-out and\n * 800/900 don't go inky.\n */\nconst SHADE_LIGHTNESS: Record<PaletteShade, number> = {\n  '50': 0.97,\n  '100': 0.93,\n  '200': 0.85,\n  '300': 0.75,\n  '400': 0.65,\n  '500': 0.55,\n  '600': 0.45,\n  '700': 0.35,\n  '800': 0.27,\n  '900': 0.18,\n};\n\nconst SHADE_CHROMA_SCALE: Record<PaletteShade, number> = {\n  '50': 0.25,\n  '100': 0.4,\n  '200': 0.55,\n  '300': 0.75,\n  '400': 0.9,\n  '500': 1,\n  '600': 1,\n  '700': 0.9,\n  '800': 0.75,\n  '900': 0.55,\n};\n\nconst ALL_SHADES: readonly PaletteShade[] = [\n  '50',\n  '100',\n  '200',\n  '300',\n  '400',\n  '500',\n  '600',\n  '700',\n  '800',\n  '900',\n];\n\nfunction derivePaletteScale(config: PaletteConfig): Record<PaletteShade, string> {\n  const { h, c } = hexToOklch(config.base);\n  const out = {} as Record<PaletteShade, string>;\n  for (const shade of ALL_SHADES) {\n    const override = config.overrides?.[shade];\n    if (override) {\n      out[shade] = override;\n      continue;\n    }\n    out[shade] = oklchToHex({\n      l: SHADE_LIGHTNESS[shade],\n      c: c * SHADE_CHROMA_SCALE[shade],\n      h,\n    });\n  }\n  return out;\n}\n\nfunction emitFamily(\n  family: 'primary' | 'secondary',\n  scale: Record<PaletteShade, string>,\n  roles: PaletteRoles,\n  light: DerivedPalette,\n  dark: DerivedPalette,\n): void {\n  const prefix = `--color-${family}`;\n  const brandPrefix = family === 'primary' ? '--color-brand' : '--color-brand-secondary';\n\n  for (const shade of ALL_SHADES) {\n    light[`${prefix}-${shade}`] = scale[shade];\n    dark[`${prefix}-${shade}`] = scale[shade];\n  }\n\n  light[`${brandPrefix}-default`] = scale[roles.surfaceLight];\n  light[`${brandPrefix}-hover`] = scale[roles.surfaceHoverLight];\n  light[`${brandPrefix}-active`] = scale[roles.surfaceActiveLight];\n  dark[`${brandPrefix}-default`] = scale[roles.surfaceDark];\n  dark[`${brandPrefix}-hover`] = scale[roles.surfaceHoverDark];\n  dark[`${brandPrefix}-active`] = scale[roles.surfaceActiveDark];\n\n  light[`${brandPrefix}-text`] = scale[roles.textLight];\n  dark[`${brandPrefix}-text`] = scale[roles.textDark];\n  light[`${brandPrefix}-subtle`] = scale[roles.subtleLight];\n  light[`${brandPrefix}-muted`] = scale[roles.mutedLight];\n  // Translucent, like the library's own dark tints, so they read the same on the\n  // canvas and on elevated surfaces\n  dark[`${brandPrefix}-subtle`] = wash(scale[roles.tintDark], 0.1);\n  dark[`${brandPrefix}-muted`] = wash(scale[roles.tintDark], 0.2);\n}\n\nfunction wash(hex: string, alpha: number): string {\n  const { r, g, b } = hexToRgb(hex);\n  return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n\nexport function derivePalette(config: EagamiPaletteConfig): ModePalette {\n  const light: DerivedPalette = {};\n  const dark: DerivedPalette = {};\n\n  if (config.primary) {\n    const scale = derivePaletteScale(config.primary);\n    const roles: PaletteRoles = { ...DEFAULT_PALETTE_ROLES, ...config.primary.roles };\n    emitFamily('primary', scale, roles, light, dark);\n  }\n  if (config.secondary) {\n    const scale = derivePaletteScale(config.secondary);\n    const roles: PaletteRoles = { ...DEFAULT_PALETTE_ROLES, ...config.secondary.roles };\n    emitFamily('secondary', scale, roles, light, dark);\n  }\n\n  return { light, dark };\n}\n","import { hexToRgb } from './oklch';\n\n/**\n * WCAG 2.1 relative luminance and contrast ratio.\n * Spec: https://www.w3.org/TR/WCAG21/#dfn-relative-luminance\n */\n\nfunction linearChannel(c8: number): number {\n  const c = c8 / 255;\n  return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n}\n\nexport function relativeLuminance(hex: string): number {\n  const { r, g, b } = hexToRgb(hex);\n  return (\n    0.2126 * linearChannel(r) + 0.7152 * linearChannel(g) + 0.0722 * linearChannel(b)\n  );\n}\n\nexport function contrastRatio(hexA: string, hexB: string): number {\n  const l1 = relativeLuminance(hexA);\n  const l2 = relativeLuminance(hexB);\n  const lighter = Math.max(l1, l2);\n  const darker = Math.min(l1, l2);\n  return (lighter + 0.05) / (darker + 0.05);\n}\n\n/** The two inks a component paints on a caller-supplied fill. */\nexport const INK = {\n  light: '#ffffff',\n  dark: '#030712',\n} as const;\n\n/** `#abc` and `#aabbcc` alike as `#aabbcc`, or `null` for anything else. */\nexport function normalizeHex(color: string): string | null {\n  const value = color.trim().replace(/^#/, '');\n  if (/^[\\da-f]{3}$/i.test(value)) {\n    return `#${value.replace(/./g, channel => channel + channel)}`;\n  }\n  return /^[\\da-f]{6}$/i.test(value) ? `#${value}` : null;\n}\n\n/**\n * Whichever of the two inks reads better on `background`, for a fill the\n * library cannot know ahead of time (a user-chosen tag colour). Returns `null`\n * when the background is not a hex colour this can measure.\n */\nexport function readableInk(background: string): 'light' | 'dark' | null {\n  const hex = normalizeHex(background);\n  if (!hex) {\n    return null;\n  }\n  return contrastRatio(hex, INK.light) >= contrastRatio(hex, INK.dark) ? 'light' : 'dark';\n}\n\n/**\n * WCAG 2.1 AA contrast floors: 4.5:1 for body text, 3:1 for ≥ 18pt text\n * (or ≥ 14pt bold), 3:1 for UI components (icons, focus rings, meaningful\n * borders).\n */\nexport const WCAG_AA = {\n  text: 4.5,\n  largeText: 3,\n  nonText: 3,\n} as const;\n","import { WCAG_AA, contrastRatio } from './contrast';\nimport type { ModePalette } from './palette.types';\n\nexport interface ContrastViolation {\n  /** CSS custom-property name that fails the contrast bar. */\n  token: string;\n  /** Hex value of that token. */\n  value: string;\n  /** Hex value of the surface it was checked against. */\n  surface: string;\n  /** Computed contrast ratio. */\n  ratio: number;\n  /** Minimum ratio the role required. */\n  required: number;\n  /** What the role represents (for the error message). */\n  role: 'text' | 'large-text' | 'non-text';\n  /** Which mode the violation occurred in. */\n  mode: 'light' | 'dark';\n}\n\n/** One canvas + on-brand text pairing for a single colour mode. */\nexport interface ModeSurfaces {\n  /** Page background the brand sits on (`--color-bg-canvas`). */\n  canvas: string;\n  /** Foreground colour that sits on the brand surface (button label). */\n  onBrandText: string;\n}\n\nexport interface ContrastSurfaces {\n  light: ModeSurfaces;\n  dark: ModeSurfaces;\n}\n\n/** Library defaults: white in light mode, near-black in dark mode. */\nconst DEFAULT_SURFACES: ContrastSurfaces = {\n  light: { canvas: '#ffffff', onBrandText: '#ffffff' },\n  dark: { canvas: '#030712', onBrandText: '#ffffff' },\n};\n\n/**\n * Walk every meaningful pairing in a derived palette and return any\n * violations of the WCAG 2.1 AA contrast bars. Empty array means the\n * palette is safe.\n *\n * Each check runs in both light and dark mode so a palette can't pass one\n * mode while silently failing the other.\n *\n * Checks per mode:\n *   - `--color-brand-text` vs `canvas` >= 4.5:1 (link / foreground text)\n *   - `--color-brand-default` vs `onBrandText` >= 4.5:1 (button label)\n *   - `--color-brand-default` vs `canvas` >= 3:1 (WCAG 1.4.11 non-text)\n */\nexport function validatePalette(\n  palette: ModePalette,\n  surfaces: ContrastSurfaces = DEFAULT_SURFACES,\n): ContrastViolation[] {\n  const violations: ContrastViolation[] = [];\n\n  const check = (\n    mode: 'light' | 'dark',\n    token: string,\n    surface: string,\n    required: number,\n    role: ContrastViolation['role'],\n  ) => {\n    const value = palette[mode][token];\n    if (!value) {\n      return;\n    }\n    const ratio = contrastRatio(value, surface);\n    if (ratio < required) {\n      violations.push({ token, value, surface, ratio, required, role, mode });\n    }\n  };\n\n  for (const mode of ['light', 'dark'] as const) {\n    const { canvas, onBrandText } = surfaces[mode];\n    check(mode, '--color-brand-text', canvas, WCAG_AA.text, 'text');\n    check(mode, '--color-brand-default', onBrandText, WCAG_AA.text, 'text');\n    check(mode, '--color-brand-default', canvas, WCAG_AA.nonText, 'non-text');\n  }\n\n  return violations;\n}\n\n/** Format a violation list as a human-readable error message. */\nexport function formatViolations(violations: readonly ContrastViolation[]): string {\n  const lines = violations.map(v => {\n    const ratio = v.ratio.toFixed(2);\n    return `  [${v.mode}] ${v.token} (${v.value}) vs ${v.surface}: ${ratio}:1 < ${v.required}:1 [${v.role}]`;\n  });\n  return [\n    'eagami: derived palette fails WCAG AA contrast on the following pairings:',\n    ...lines,\n    'Pick a darker base hex (or adjust the role mapping) so the brand colour clears the contrast bars in both modes.',\n  ].join('\\n');\n}\n","import {\n  CSP_NONCE,\n  type EnvironmentProviders,\n  inject,\n  makeEnvironmentProviders,\n  provideEnvironmentInitializer,\n} from '@angular/core';\n\nimport { EAGAMI_I18N_CONFIG } from './i18n/i18n.token';\nimport type { EagamiI18nConfig } from './i18n/i18n.types';\nimport { applyPalette } from './palette/apply-palette';\nimport { derivePalette } from './palette/derive-palette';\nimport type { EagamiPaletteConfig } from './palette/palette.types';\nimport { formatViolations, validatePalette } from './palette/validate-palette';\n\n/**\n * Full provider configuration for `provideEagamiUi()`. Extends the i18n config\n * with an optional brand palette; omit `palette` to keep the un-themed SCSS\n * defaults.\n */\nexport interface EagamiUiConfig extends EagamiI18nConfig {\n  /**\n   * Brand palette config. The library derives a 10-shade scale via OKLCH\n   * from each base hex, then asserts WCAG AA contrast on every brand-role\n   * pairing. A contrast violation throws at bootstrap.\n   */\n  palette?: EagamiPaletteConfig;\n}\n\n/**\n * Configures Eagami UI for the application.\n *\n * ```ts\n * import { frFR, provideEagamiUi } from '@eagami/ui';\n *\n * bootstrapApplication(AppComponent, {\n *   providers: [\n *     provideEagamiUi({\n *       locale: 'fr-FR',\n *       locales: [frFR],\n *       palette: { primary: { base: '#3674a1' } },\n *     }),\n *   ],\n * });\n * ```\n *\n * Optional. Without it, the library defaults to English and ships its\n * built-in brand colours. Only English is bundled until you register more\n * languages via `locales` (pass `EAGAMI_ALL_LOCALES` for all of them), or\n * keep them out of the initial bundle entirely with `localeLoaders`:\n *\n * ```ts\n * provideEagamiUi({\n *   localeLoaders: {\n *     'fr-FR': () => import('./i18n/fr-FR').then(m => m.frFR),\n *   },\n * });\n * ```\n *\n * A `palette` installs a `<style>` tag at bootstrap, carrying Angular's\n * `CSP_NONCE` when the app provides one, so a strict `style-src` policy admits\n * it instead of dropping the theme.\n */\nexport function provideEagamiUi(config: EagamiUiConfig = {}): EnvironmentProviders {\n  const i18nConfig: EagamiI18nConfig = {\n    locale: config.locale,\n    locales: config.locales,\n    localeLoaders: config.localeLoaders,\n    messages: config.messages,\n  };\n\n  return makeEnvironmentProviders([\n    { provide: EAGAMI_I18N_CONFIG, useValue: i18nConfig },\n    provideEnvironmentInitializer(() => {\n      if (!config.palette) {\n        return;\n      }\n      const palette = derivePalette(config.palette);\n      const violations = validatePalette(palette);\n      if (violations.length > 0) {\n        throw new Error(formatViolations(violations));\n      }\n      applyPalette(palette, inject(CSP_NONCE, { optional: true }));\n    }),\n  ]);\n}\n","/**\n * BCP 47 locale tags supported out of the box. Consumers select one of these\n * via `provideEagamiUi({ locale })` or `EagamiI18nService.setLocale()`.\n */\nexport type EagamiLocale =\n  | 'en'\n  | 'de'\n  | 'es-ES'\n  | 'fr-FR'\n  | 'is'\n  | 'nl'\n  | 'pl'\n  | 'pt-BR'\n  | 'el'\n  | 'ru'\n  | 'uk'\n  | 'he'\n  | 'ar'\n  | 'hi'\n  | 'zh-CN';\n\n/**\n * Display metadata for a built-in locale: the language's name in its own\n * language and a representative flag emoji.\n */\nexport interface EagamiLocaleMeta {\n  locale: EagamiLocale;\n  label: string;\n  flag: string;\n  /** Reading direction of the locale's script, for consumers wiring `dir`. */\n  dir: 'ltr' | 'rtl';\n}\n\n/**\n * Display name, flag, and reading direction for every built-in locale, in\n * language-switcher order: English first (the default fallback), then by each\n * language's own name (Latin scripts first, then Greek, Cyrillic, Hebrew,\n * Arabic, Devanagari, and Chinese by Unicode block order). Keyed by\n * `EagamiLocale` so a locale added to the union without an entry fails to\n * compile, keeping this single source exhaustive.\n */\nconst LOCALE_DISPLAY = {\n  en: { label: 'English', flag: '🇬🇧', dir: 'ltr' },\n  de: { label: 'Deutsch', flag: '🇩🇪', dir: 'ltr' },\n  'es-ES': { label: 'Español', flag: '🇪🇸', dir: 'ltr' },\n  'fr-FR': { label: 'Français', flag: '🇫🇷', dir: 'ltr' },\n  is: { label: 'Íslenska', flag: '🇮🇸', dir: 'ltr' },\n  nl: { label: 'Nederlands', flag: '🇳🇱', dir: 'ltr' },\n  pl: { label: 'Polski', flag: '🇵🇱', dir: 'ltr' },\n  'pt-BR': { label: 'Português (Brasil)', flag: '🇧🇷', dir: 'ltr' },\n  el: { label: 'Ελληνικά', flag: '🇬🇷', dir: 'ltr' },\n  ru: { label: 'Русский', flag: '🇷🇺', dir: 'ltr' },\n  uk: { label: 'Українська', flag: '🇺🇦', dir: 'ltr' },\n  he: { label: 'עברית', flag: '🇮🇱', dir: 'rtl' },\n  ar: { label: 'العربية', flag: '🇸🇦', dir: 'rtl' },\n  hi: { label: 'हिन्दी', flag: '🇮🇳', dir: 'ltr' },\n  'zh-CN': { label: '中文', flag: '🇨🇳', dir: 'ltr' },\n} satisfies Record<EagamiLocale, Omit<EagamiLocaleMeta, 'locale'>>;\n\n/**\n * Display metadata for every built-in locale. The single source the Storybook\n * locale toolbar and any consumer-built language switcher derive from, so the\n * displayed list never drifts from the locales the library ships.\n */\nexport const EAGAMI_LOCALE_META: readonly EagamiLocaleMeta[] = (\n  Object.keys(LOCALE_DISPLAY) as EagamiLocale[]\n).map(locale => ({ locale, ...LOCALE_DISPLAY[locale] }));\n\n/**\n * Supported locales for language switchers, in display order. Derived from\n * `EAGAMI_LOCALE_META` so the two never drift.\n */\nexport const EAGAMI_LOCALES: readonly EagamiLocale[] = EAGAMI_LOCALE_META.map(\n  m => m.locale,\n);\n\n/**\n * Every user-facing string baked into the component library, grouped by\n * component. Parameterized strings are functions so each locale controls its\n * own word order and pluralization.\n */\nexport interface EagamiMessages {\n  alert: {\n    dismiss: string;\n  };\n  autocomplete: {\n    empty: string;\n  };\n  avatarEditor: {\n    upload: string;\n    dropzone: string;\n    canvas: string;\n    canvasInstructions: string;\n    change: string;\n    revert: string;\n    zoomOut: string;\n    zoom: string;\n    zoomIn: string;\n    remove: string;\n    invalidType: string;\n    tooLarge: (maxMb: number) => string;\n  };\n  breadcrumbs: {\n    label: string;\n  };\n  codeInput: {\n    groupLabel: (length: number) => string;\n    digitLabel: (index: number, length: number) => string;\n  };\n  commandPalette: {\n    dialogLabel: string;\n    searchPlaceholder: string;\n    empty: string;\n  };\n  colorPicker: {\n    dialogLabel: string;\n    placeholder: string;\n    clear: string;\n    hue: string;\n    saturationAndValue: string;\n    saturationAndValueStatus: (saturation: number, value: number) => string;\n    alpha: string;\n    eyedropper: string;\n    presets: string;\n    toggleFormat: string;\n  };\n  dataTable: {\n    noData: string;\n  };\n  /** Locale numeric formatting rules, used to group numbers even when the\n   *  runtime's `Intl` lacks this locale's data (some browsers ship a reduced\n   *  ICU that drops long-tail locales). */\n  numberFormat: {\n    /** Decimal mark, e.g. `.` (en) or `,` (de). */\n    decimal: string;\n    /** Grouping separator, e.g. `,` (en), `.` (de), or a no-break space (fr). */\n    group: string;\n    /** Digit-group sizes from the right: `[3]` for most locales, `[3, 2]` for\n     *  Indian-style lakh/crore grouping. */\n    grouping: readonly number[];\n  };\n  datePicker: {\n    placeholder: string;\n    dialogLabel: string;\n    clear: string;\n    previousYear: string;\n    previousMonth: string;\n    nextMonth: string;\n    nextYear: string;\n    today: string;\n    /** Abbreviated weekday names, Sunday first (index 0), for the calendar\n     *  header. Bundled so the calendar localizes even when the runtime's\n     *  `Intl` lacks this locale's date data. */\n    weekdaysShort: readonly string[];\n    /** Full month names, January first (index 0), for the calendar heading and\n     *  formatted values when `Intl` cannot localize this locale. */\n    months: readonly string[];\n  };\n  dialog: {\n    close: string;\n  };\n  drawer: {\n    close: string;\n  };\n  dropdown: {\n    placeholder: string;\n  };\n  fileUploader: {\n    prompt: string;\n    promptSingle: string;\n    browse: string;\n    removeFile: (name: string) => string;\n    fileListLabel: string;\n    constraintsAccept: (accept: string) => string;\n    constraintsMaxSize: (size: string) => string;\n    constraintsMaxFiles: (count: number) => string;\n    rejectionType: (name: string) => string;\n    rejectionSize: (name: string, max: string) => string;\n    rejectionCount: (max: number) => string;\n    bytesUnit: {\n      b: string;\n      kb: string;\n      mb: string;\n      gb: string;\n      tb: string;\n    };\n  };\n  input: {\n    showPassword: string;\n    hidePassword: string;\n    clear: string;\n  };\n  menu: {\n    label: string;\n  };\n  multiSelect: {\n    dialogLabel: string;\n    placeholder: string;\n    searchPlaceholder: string;\n    searchEmpty: string;\n    selectAll: string;\n    clearAll: string;\n    removeOption: (label: string) => string;\n    selectedCount: (count: number) => string;\n    create: (text: string) => string;\n  };\n  paginator: {\n    label: string;\n    rowsPerPage: string;\n    range: (start: string, end: string, total: string) => string;\n    previousPage: string;\n    nextPage: string;\n    page: (page: string) => string;\n  };\n  progressBar: {\n    label: string;\n  };\n  rangeSlider: {\n    lowThumbLabel: string;\n    highThumbLabel: string;\n  };\n  rating: {\n    label: string;\n    valueLabel: (value: number, max: number) => string;\n    clear: string;\n  };\n  spinner: {\n    label: string;\n  };\n  stepper: {\n    stepsLabel: string;\n    optional: string;\n    stepCompleted: string;\n  };\n  tag: {\n    remove: string;\n  };\n  timePicker: {\n    placeholder: string;\n    dialogLabel: string;\n    clear: string;\n    hoursLabel: string;\n    minutesLabel: string;\n    secondsLabel: string;\n    incrementHours: string;\n    decrementHours: string;\n    incrementMinutes: string;\n    decrementMinutes: string;\n    incrementSeconds: string;\n    decrementSeconds: string;\n    amLabel: string;\n    pmLabel: string;\n  };\n  toast: {\n    dismiss: string;\n  };\n  transferList: {\n    sourceLabel: string;\n    targetLabel: string;\n    controlsLabel: string;\n    moveSelectedToTarget: string;\n    moveAllToTarget: string;\n    moveSelectedToSource: string;\n    moveAllToSource: string;\n    empty: string;\n    moved: (count: string, listLabel: string) => string;\n  };\n  validation: {\n    required: string;\n    email: string;\n    min: (min: number) => string;\n    max: (max: number) => string;\n    minlength: (requiredLength: number) => string;\n    maxlength: (requiredLength: number) => string;\n    pattern: string;\n    invalid: string;\n  };\n  wordmark: {\n    overline: string;\n    tagline: string;\n  };\n}\n\n/** A partial set of message overrides, applied per component group. */\nexport type EagamiMessagesOverride = {\n  [G in keyof EagamiMessages]?: Partial<EagamiMessages[G]>;\n};\n\n/**\n * A self-identifying locale dictionary. Import the ones you need and register\n * them via `provideEagamiUi({ locales: [...] })` so only those ship in your\n * bundle; English is always available without registration.\n */\nexport interface EagamiLocaleBundle {\n  locale: EagamiLocale;\n  messages: EagamiMessages;\n}\n\n/** Lazily resolves a locale's dictionary, typically via a dynamic `import()`. */\nexport type EagamiLocaleLoader = () => Promise<EagamiLocaleBundle>;\n\n/** Configuration accepted by `provideEagamiUi()`. */\nexport interface EagamiI18nConfig {\n  /** Initial locale. Defaults to `'en'`. Falls back to English if not registered. */\n  locale?: EagamiLocale;\n  /**\n   * Locale dictionaries to make available at runtime, beyond the built-in\n   * English. Pass `EAGAMI_ALL_LOCALES` for every shipped language, or a subset\n   * to keep your bundle lean.\n   */\n  locales?: readonly EagamiLocaleBundle[];\n  /**\n   * Lazy loaders for locale dictionaries, keyed by locale. A locale with a\n   * loader stays out of the initial bundle and is fetched the first time it\n   * is activated via `setLocale()` (or preloaded via `loadLocale()`). Point\n   * each loader at a module that re-exports a single locale bundle so the\n   * bundler emits one chunk per locale.\n   */\n  localeLoaders?: Partial<Record<EagamiLocale, EagamiLocaleLoader>>;\n  /** Optional per-string overrides merged over the active locale's messages. */\n  messages?: EagamiMessagesOverride;\n}\n","import { signal } from '@angular/core';\n\nimport type { EagamiLocale } from './i18n.types';\n\n/**\n * Module-level signal that lets external tooling (notably the Storybook\n * preview decorator) imperatively override the active locale on a running\n * `EagamiI18nService` without re-bootstrapping the Angular application.\n *\n * `null` means \"no override\": the service uses its constructor-time locale.\n *\n * @internal Not part of the public API. Library consumers should call\n *           `EagamiI18nService.setLocale()` instead.\n */\nexport const _eagamiI18nLocaleOverride = signal<EagamiLocale | null>(null);\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Arabic messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'إغلاق',\n  },\n  autocomplete: {\n    empty: 'لا توجد نتائج',\n  },\n  avatarEditor: {\n    upload: 'تحميل صورة',\n    dropzone: 'أفلت الصورة أو انقر للاختيار',\n    canvas: 'معاينة الصورة، اسحب أو استخدم مفاتيح الأسهم للتحريك، وشريط التمرير للتكبير',\n    canvasInstructions:\n      'استخدم مفاتيح الأسهم لتحريك الصورة، وعلامتي الزائد والناقص للتكبير والتصغير، وEnter أو المسافة لاختيار صورة أخرى',\n    change: 'تغيير الصورة',\n    revert: 'استعادة الأصل',\n    zoomOut: 'تصغير',\n    zoom: 'تكبير/تصغير',\n    zoomIn: 'تكبير',\n    remove: 'إزالة الصورة',\n    invalidType: 'يجب أن يكون الملف صورة',\n    tooLarge: (maxMb: number) => `الملف يتجاوز حد ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'مسار التنقل',\n  },\n  codeInput: {\n    groupLabel: length => `رمز التحقق، ${length} أرقام`,\n    digitLabel: (index, length) => `الرقم ${index} من ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'لوحة الأوامر',\n    searchPlaceholder: 'اكتب أمرًا أو ابحث…',\n    empty: 'لم يتم العثور على نتائج',\n  },\n  colorPicker: {\n    dialogLabel: 'اختيار اللون',\n    placeholder: 'اختر لونًا…',\n    clear: 'مسح اللون',\n    hue: 'تدرج اللون',\n    saturationAndValue: 'التشبع والقيمة',\n    saturationAndValueStatus: (saturation, value) =>\n      `التشبع ${saturation}%، السطوع ${value}%`,\n    alpha: 'الشفافية',\n    eyedropper: 'الاختيار من الشاشة',\n    presets: 'الإعدادات المسبقة',\n    toggleFormat: 'تبديل تنسيق الإدخال',\n  },\n  dataTable: {\n    noData: 'لا توجد بيانات متاحة',\n  },\n  numberFormat: {\n    decimal: '.',\n    group: ',',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'اختر التاريخ…',\n    dialogLabel: 'اختيار التاريخ',\n    clear: 'مسح التاريخ',\n    previousYear: 'السنة السابقة',\n    previousMonth: 'الشهر السابق',\n    nextMonth: 'الشهر التالي',\n    nextYear: 'السنة التالية',\n    today: 'اليوم',\n    weekdaysShort: [\n      'الأحد',\n      'الاثنين',\n      'الثلاثاء',\n      'الأربعاء',\n      'الخميس',\n      'الجمعة',\n      'السبت',\n    ],\n    months: [\n      'يناير',\n      'فبراير',\n      'مارس',\n      'أبريل',\n      'مايو',\n      'يونيو',\n      'يوليو',\n      'أغسطس',\n      'سبتمبر',\n      'أكتوبر',\n      'نوفمبر',\n      'ديسمبر',\n    ],\n  },\n  dialog: {\n    close: 'إغلاق مربع الحوار',\n  },\n  drawer: {\n    close: 'إغلاق اللوحة',\n  },\n  dropdown: {\n    placeholder: 'اختر…',\n  },\n  fileUploader: {\n    prompt: 'انقر أو اسحب الملفات هنا للتحميل',\n    promptSingle: 'انقر أو اسحب ملفًا هنا للتحميل',\n    browse: 'تصفح الملفات',\n    removeFile: name => `إزالة ${name}`,\n    fileListLabel: 'الملفات المحددة',\n    constraintsAccept: accept => `المقبول: ${accept}`,\n    constraintsMaxSize: size => `الحد الأقصى ${size} لكل ملف`,\n    constraintsMaxFiles: count => `حتى ${count} ملفات`,\n    rejectionType: name => `${name} من نوع ملف غير مدعوم`,\n    rejectionSize: (name, max) => `${name} يتجاوز الحد ${max}`,\n    rejectionCount: max => `يمكن تحديد ${max} ملفات فقط`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'إظهار كلمة المرور',\n    hidePassword: 'إخفاء كلمة المرور',\n    clear: 'مسح',\n  },\n  menu: {\n    label: 'القائمة',\n  },\n  multiSelect: {\n    dialogLabel: 'اختيار الخيارات',\n    placeholder: 'اختر…',\n    searchPlaceholder: 'بحث…',\n    searchEmpty: 'لا توجد مطابقات',\n    selectAll: 'تحديد الكل',\n    clearAll: 'مسح التحديد',\n    removeOption: label => `إزالة ${label}`,\n    selectedCount: count => `${count} محدد`,\n    create: text => `إنشاء «${text}»`,\n  },\n  paginator: {\n    label: 'ترقيم الصفحات',\n    rowsPerPage: 'الصفوف لكل صفحة:',\n    range: (start, end, total) => `${start}–${end} من ${total}`,\n    previousPage: 'الصفحة السابقة',\n    nextPage: 'الصفحة التالية',\n    page: page => `الانتقال إلى الصفحة ${page}`,\n  },\n  progressBar: {\n    label: 'التقدم',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'القيمة الدنيا',\n    highThumbLabel: 'القيمة القصوى',\n  },\n  rating: {\n    label: 'التقييم',\n    valueLabel: (value, max) => `${value} من ${max}`,\n    clear: 'مسح التقييم',\n  },\n  spinner: {\n    label: 'جارٍ التحميل',\n  },\n  stepper: {\n    stepsLabel: 'الخطوات',\n    optional: 'اختياري',\n    stepCompleted: 'مكتملة',\n  },\n  tag: {\n    remove: 'إزالة',\n  },\n  timePicker: {\n    placeholder: 'اختر الوقت…',\n    dialogLabel: 'اختيار الوقت',\n    clear: 'مسح الوقت',\n    hoursLabel: 'الساعات',\n    minutesLabel: 'الدقائق',\n    secondsLabel: 'الثواني',\n    incrementHours: 'زيادة الساعات',\n    decrementHours: 'إنقاص الساعات',\n    incrementMinutes: 'زيادة الدقائق',\n    decrementMinutes: 'إنقاص الدقائق',\n    incrementSeconds: 'زيادة الثواني',\n    decrementSeconds: 'إنقاص الثواني',\n    amLabel: 'ص',\n    pmLabel: 'م',\n  },\n  toast: {\n    dismiss: 'إغلاق',\n  },\n  transferList: {\n    sourceLabel: 'المتاح',\n    targetLabel: 'المحدد',\n    controlsLabel: 'عناصر التحكم بالنقل',\n    moveSelectedToTarget: 'نقل المحدد إلى اليمين',\n    moveAllToTarget: 'نقل الكل إلى اليمين',\n    moveSelectedToSource: 'نقل المحدد إلى اليسار',\n    moveAllToSource: 'نقل الكل إلى اليسار',\n    empty: 'لا توجد عناصر',\n    moved: (count, listLabel) => `تم نقل ${count} إلى ${listLabel}`,\n  },\n  validation: {\n    required: 'هذا الحقل مطلوب',\n    email: 'أدخل عنوان بريد إلكتروني صالحًا',\n    min: min => `يجب أن يكون ${min} على الأقل`,\n    max: max => `يجب أن يكون ${max} على الأكثر`,\n    minlength: length => `يجب أن يحتوي على ${length} حرفًا على الأقل`,\n    maxlength: length => `يجب أن يحتوي على ${length} حرفًا على الأكثر`,\n    pattern: 'تنسيق غير صالح',\n    invalid: 'قيمة غير صالحة',\n  },\n  wordmark: {\n    overline: 'من تصميم',\n    tagline: 'تصميم ويب أنيق',\n  },\n};\n\nexport const ar: EagamiLocaleBundle = {\n  locale: 'ar',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** German messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Schließen',\n  },\n  autocomplete: {\n    empty: 'Keine Ergebnisse',\n  },\n  avatarEditor: {\n    upload: 'Bild hochladen',\n    dropzone: 'Bild ablegen oder zum Auswählen klicken',\n    canvas:\n      'Bildvorschau, ziehen oder Pfeiltasten zum Verschieben verwenden, Schieberegler zum Zoomen',\n    canvasInstructions:\n      'Pfeiltasten zum Verschieben des Bildes, Plus und Minus zum Zoomen, Eingabetaste oder Leertaste zum Auswählen eines anderen Fotos verwenden',\n    change: 'Foto ändern',\n    revert: 'Auf Original zurücksetzen',\n    zoomOut: 'Verkleinern',\n    zoom: 'Zoom',\n    zoomIn: 'Vergrößern',\n    remove: 'Bild entfernen',\n    invalidType: 'Datei muss ein Bild sein',\n    tooLarge: (maxMb: number) => `Datei überschreitet das Limit von ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Brotkrümelnavigation',\n  },\n  codeInput: {\n    groupLabel: length => `Bestätigungscode, ${length} Ziffern`,\n    digitLabel: (index, length) => `Ziffer ${index} von ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Befehlspalette',\n    searchPlaceholder: 'Befehl eingeben oder suchen…',\n    empty: 'Keine Ergebnisse gefunden',\n  },\n  colorPicker: {\n    dialogLabel: 'Farbe wählen',\n    placeholder: 'Farbe wählen…',\n    clear: 'Farbe löschen',\n    hue: 'Farbton',\n    saturationAndValue: 'Sättigung und Helligkeit',\n    saturationAndValueStatus: (saturation, value) =>\n      `Sättigung ${saturation} %, Helligkeit ${value} %`,\n    alpha: 'Transparenz',\n    eyedropper: 'Vom Bildschirm auswählen',\n    presets: 'Voreinstellungen',\n    toggleFormat: 'Eingabeformat wechseln',\n  },\n  dataTable: {\n    noData: 'Keine Daten verfügbar',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '.',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Datum auswählen…',\n    dialogLabel: 'Datum wählen',\n    clear: 'Datum löschen',\n    previousYear: 'Vorheriges Jahr',\n    previousMonth: 'Vorheriger Monat',\n    nextMonth: 'Nächster Monat',\n    nextYear: 'Nächstes Jahr',\n    today: 'Heute',\n    weekdaysShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n    months: [\n      'Januar',\n      'Februar',\n      'März',\n      'April',\n      'Mai',\n      'Juni',\n      'Juli',\n      'August',\n      'September',\n      'Oktober',\n      'November',\n      'Dezember',\n    ],\n  },\n  dialog: {\n    close: 'Dialog schließen',\n  },\n  drawer: {\n    close: 'Panel schließen',\n  },\n  dropdown: {\n    placeholder: 'Auswählen…',\n  },\n  fileUploader: {\n    prompt: 'Dateien hierher klicken oder ziehen zum Hochladen',\n    promptSingle: 'Datei hierher klicken oder ziehen zum Hochladen',\n    browse: 'Dateien durchsuchen',\n    removeFile: name => `${name} entfernen`,\n    fileListLabel: 'Ausgewählte Dateien',\n    constraintsAccept: accept => `Akzeptiert: ${accept}`,\n    constraintsMaxSize: size => `Max. ${size} pro Datei`,\n    constraintsMaxFiles: count => `Bis zu ${count} Dateien`,\n    rejectionType: name => `${name} hat einen nicht unterstützten Dateityp`,\n    rejectionSize: (name, max) => `${name} überschreitet das Limit von ${max}`,\n    rejectionCount: max => `Es können nur ${max} Dateien ausgewählt werden`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Passwort anzeigen',\n    hidePassword: 'Passwort verbergen',\n    clear: 'Löschen',\n  },\n  menu: {\n    label: 'Menü',\n  },\n  multiSelect: {\n    dialogLabel: 'Optionen wählen',\n    placeholder: 'Auswählen…',\n    searchPlaceholder: 'Suchen…',\n    searchEmpty: 'Keine Treffer',\n    selectAll: 'Alle auswählen',\n    clearAll: 'Auswahl aufheben',\n    removeOption: label => `${label} entfernen`,\n    selectedCount: count => `${count} ausgewählt`,\n    create: text => `„${text}“ erstellen`,\n  },\n  paginator: {\n    label: 'Seitennummerierung',\n    rowsPerPage: 'Zeilen pro Seite:',\n    range: (start, end, total) => `${start}–${end} von ${total}`,\n    previousPage: 'Vorherige Seite',\n    nextPage: 'Nächste Seite',\n    page: page => `Zu Seite ${page} wechseln`,\n  },\n  progressBar: {\n    label: 'Fortschritt',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Minimalwert',\n    highThumbLabel: 'Maximalwert',\n  },\n  rating: {\n    label: 'Bewertung',\n    valueLabel: (value, max) => `${value} von ${max}`,\n    clear: 'Bewertung löschen',\n  },\n  spinner: {\n    label: 'Wird geladen',\n  },\n  stepper: {\n    stepsLabel: 'Schritte',\n    optional: 'optional',\n    stepCompleted: 'abgeschlossen',\n  },\n  tag: {\n    remove: 'Entfernen',\n  },\n  timePicker: {\n    placeholder: 'Uhrzeit auswählen…',\n    dialogLabel: 'Uhrzeit wählen',\n    clear: 'Uhrzeit löschen',\n    hoursLabel: 'Stunden',\n    minutesLabel: 'Minuten',\n    secondsLabel: 'Sekunden',\n    incrementHours: 'Stunden erhöhen',\n    decrementHours: 'Stunden verringern',\n    incrementMinutes: 'Minuten erhöhen',\n    decrementMinutes: 'Minuten verringern',\n    incrementSeconds: 'Sekunden erhöhen',\n    decrementSeconds: 'Sekunden verringern',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Schließen',\n  },\n  transferList: {\n    sourceLabel: 'Verfügbar',\n    targetLabel: 'Ausgewählt',\n    controlsLabel: 'Übertragungssteuerung',\n    moveSelectedToTarget: 'Ausgewählte nach rechts verschieben',\n    moveAllToTarget: 'Alle nach rechts verschieben',\n    moveSelectedToSource: 'Ausgewählte nach links verschieben',\n    moveAllToSource: 'Alle nach links verschieben',\n    empty: 'Keine Einträge',\n    moved: (count, listLabel) => `${count} nach ${listLabel} verschoben`,\n  },\n  validation: {\n    required: 'Dieses Feld ist erforderlich',\n    email: 'Gültige E-Mail-Adresse eingeben',\n    min: min => `Muss mindestens ${min} sein`,\n    max: max => `Darf höchstens ${max} sein`,\n    minlength: length => `Muss mindestens ${length} Zeichen lang sein`,\n    maxlength: length => `Darf höchstens ${length} Zeichen lang sein`,\n    pattern: 'Ungültiges Format',\n    invalid: 'Ungültiger Wert',\n  },\n  wordmark: {\n    overline: 'gestaltet von',\n    tagline: 'elegantes Webdesign',\n  },\n};\n\nexport const de: EagamiLocaleBundle = {\n  locale: 'de',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Greek messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Απόρριψη',\n  },\n  autocomplete: {\n    empty: 'Δεν υπάρχουν αποτελέσματα',\n  },\n  avatarEditor: {\n    upload: 'Μεταφόρτωση εικόνας',\n    dropzone: 'Αποθέστε μια εικόνα ή κάντε κλικ για επιλογή',\n    canvas:\n      'Προεπισκόπηση εικόνας, σύρετε ή χρησιμοποιήστε τα βέλη για μετακίνηση, το ρυθμιστικό για ζουμ',\n    canvasInstructions:\n      'Χρησιμοποιήστε τα βέλη για να μετακινήσετε την εικόνα, το συν και το πλην για ζουμ, και Enter ή Space για να επιλέξετε διαφορετική φωτογραφία',\n    change: 'Αλλαγή φωτογραφίας',\n    revert: 'Επαναφορά στο αρχικό',\n    zoomOut: 'Σμίκρυνση',\n    zoom: 'Ζουμ',\n    zoomIn: 'Μεγέθυνση',\n    remove: 'Αφαίρεση εικόνας',\n    invalidType: 'Το αρχείο πρέπει να είναι εικόνα',\n    tooLarge: (maxMb: number) => `Το αρχείο υπερβαίνει το όριο των ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Διαδρομή πλοήγησης',\n  },\n  codeInput: {\n    groupLabel: length => `Κωδικός επαλήθευσης, ${length} ψηφία`,\n    digitLabel: (index, length) => `Ψηφίο ${index} από ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Παλέτα εντολών',\n    searchPlaceholder: 'Πληκτρολογήστε εντολή ή αναζητήστε…',\n    empty: 'Δεν βρέθηκαν αποτελέσματα',\n  },\n  colorPicker: {\n    dialogLabel: 'Επιλογή χρώματος',\n    placeholder: 'Επιλέξτε χρώμα…',\n    clear: 'Εκκαθάριση χρώματος',\n    hue: 'Απόχρωση',\n    saturationAndValue: 'Κορεσμός και τιμή',\n    saturationAndValueStatus: (saturation, value) =>\n      `Κορεσμός ${saturation}%, φωτεινότητα ${value}%`,\n    alpha: 'Άλφα',\n    eyedropper: 'Επιλογή από οθόνη',\n    presets: 'Προεπιλογές',\n    toggleFormat: 'Αλλαγή μορφής εισαγωγής',\n  },\n  dataTable: {\n    noData: 'Δεν υπάρχουν διαθέσιμα δεδομένα',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '.',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Επιλέξτε ημερομηνία…',\n    dialogLabel: 'Επιλογή ημερομηνίας',\n    clear: 'Εκκαθάριση ημερομηνίας',\n    previousYear: 'Προηγούμενο έτος',\n    previousMonth: 'Προηγούμενος μήνας',\n    nextMonth: 'Επόμενος μήνας',\n    nextYear: 'Επόμενο έτος',\n    today: 'Σήμερα',\n    weekdaysShort: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', 'Σάβ'],\n    months: [\n      'Ιανουαρίου',\n      'Φεβρουαρίου',\n      'Μαρτίου',\n      'Απριλίου',\n      'Μαΐου',\n      'Ιουνίου',\n      'Ιουλίου',\n      'Αυγούστου',\n      'Σεπτεμβρίου',\n      'Οκτωβρίου',\n      'Νοεμβρίου',\n      'Δεκεμβρίου',\n    ],\n  },\n  dialog: {\n    close: 'Κλείσιμο παραθύρου διαλόγου',\n  },\n  drawer: {\n    close: 'Κλείσιμο πίνακα',\n  },\n  dropdown: {\n    placeholder: 'Επιλέξτε…',\n  },\n  fileUploader: {\n    prompt: 'Κάντε κλικ ή σύρετε αρχεία εδώ για μεταφόρτωση',\n    promptSingle: 'Κάντε κλικ ή σύρετε ένα αρχείο εδώ για μεταφόρτωση',\n    browse: 'Περιήγηση αρχείων',\n    removeFile: name => `Αφαίρεση ${name}`,\n    fileListLabel: 'Επιλεγμένα αρχεία',\n    constraintsAccept: accept => `Αποδεκτά: ${accept}`,\n    constraintsMaxSize: size => `Μέγ. ${size} ανά αρχείο`,\n    constraintsMaxFiles: count => `Έως ${count} αρχεία`,\n    rejectionType: name => `Το ${name} έχει μη υποστηριζόμενο τύπο αρχείου`,\n    rejectionSize: (name, max) => `Το ${name} υπερβαίνει το όριο των ${max}`,\n    rejectionCount: max => `Μπορούν να επιλεγούν μόνο ${max} αρχεία`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Εμφάνιση κωδικού πρόσβασης',\n    hidePassword: 'Απόκρυψη κωδικού πρόσβασης',\n    clear: 'Καθαρισμός',\n  },\n  menu: {\n    label: 'Μενού',\n  },\n  multiSelect: {\n    dialogLabel: 'Επιλογή επιλογών',\n    placeholder: 'Επιλέξτε…',\n    searchPlaceholder: 'Αναζήτηση…',\n    searchEmpty: 'Δεν βρέθηκαν αποτελέσματα',\n    selectAll: 'Επιλογή όλων',\n    clearAll: 'Εκκαθάριση επιλογής',\n    removeOption: label => `Αφαίρεση ${label}`,\n    selectedCount: count => `${count} επιλεγμέν${count === 1 ? 'ο' : 'α'}`,\n    create: text => `Δημιουργία «${text}»`,\n  },\n  paginator: {\n    label: 'Σελιδοποίηση',\n    rowsPerPage: 'Γραμμές ανά σελίδα:',\n    range: (start, end, total) => `${start}–${end} από ${total}`,\n    previousPage: 'Προηγούμενη σελίδα',\n    nextPage: 'Επόμενη σελίδα',\n    page: page => `Μετάβαση στη σελίδα ${page}`,\n  },\n  progressBar: {\n    label: 'Πρόοδος',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Ελάχιστη τιμή',\n    highThumbLabel: 'Μέγιστη τιμή',\n  },\n  rating: {\n    label: 'Αξιολόγηση',\n    valueLabel: (value, max) => `${value} από ${max}`,\n    clear: 'Εκκαθάριση αξιολόγησης',\n  },\n  spinner: {\n    label: 'Φόρτωση',\n  },\n  stepper: {\n    stepsLabel: 'Βήματα',\n    optional: 'προαιρετικό',\n    stepCompleted: 'ολοκληρώθηκε',\n  },\n  tag: {\n    remove: 'Αφαίρεση',\n  },\n  timePicker: {\n    placeholder: 'Επιλογή ώρας…',\n    dialogLabel: 'Επιλογή ώρας',\n    clear: 'Καθαρισμός ώρας',\n    hoursLabel: 'Ώρες',\n    minutesLabel: 'Λεπτά',\n    secondsLabel: 'Δευτερόλεπτα',\n    incrementHours: 'Αύξηση ωρών',\n    decrementHours: 'Μείωση ωρών',\n    incrementMinutes: 'Αύξηση λεπτών',\n    decrementMinutes: 'Μείωση λεπτών',\n    incrementSeconds: 'Αύξηση δευτερολέπτων',\n    decrementSeconds: 'Μείωση δευτερολέπτων',\n    amLabel: 'πμ',\n    pmLabel: 'μμ',\n  },\n  toast: {\n    dismiss: 'Απόρριψη',\n  },\n  transferList: {\n    sourceLabel: 'Διαθέσιμα',\n    targetLabel: 'Επιλεγμένα',\n    controlsLabel: 'Έλεγχοι μεταφοράς',\n    moveSelectedToTarget: 'Μεταφορά επιλογής στον στόχο',\n    moveAllToTarget: 'Μεταφορά όλων στον στόχο',\n    moveSelectedToSource: 'Μεταφορά επιλογής στην πηγή',\n    moveAllToSource: 'Μεταφορά όλων στην πηγή',\n    empty: 'Καμία εγγραφή',\n    moved: (count, listLabel) => `Μεταφορά σε ${listLabel}: ${count}`,\n  },\n  validation: {\n    required: 'Αυτό το πεδίο είναι υποχρεωτικό',\n    email: 'Εισαγάγετε έγκυρη διεύθυνση email',\n    min: min => `Πρέπει να είναι τουλάχιστον ${min}`,\n    max: max => `Πρέπει να είναι το πολύ ${max}`,\n    minlength: length => `Πρέπει να έχει τουλάχιστον ${length} χαρακτήρες`,\n    maxlength: length => `Πρέπει να έχει το πολύ ${length} χαρακτήρες`,\n    pattern: 'Μη έγκυρη μορφή',\n    invalid: 'Μη έγκυρη τιμή',\n  },\n  wordmark: {\n    overline: 'σχεδιασμένο από',\n    tagline: 'κομψός σχεδιασμός ιστού',\n  },\n};\n\nexport const el: EagamiLocaleBundle = {\n  locale: 'el',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** English (default / fallback) messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Dismiss',\n  },\n  autocomplete: {\n    empty: 'No results',\n  },\n  avatarEditor: {\n    upload: 'Upload image',\n    dropzone: 'Drop image or click to browse',\n    canvas: 'Image preview, drag or use arrow keys to pan, slider to zoom',\n    canvasInstructions:\n      'Use the arrow keys to move the image, plus and minus to zoom, and Enter or Space to choose a different photo',\n    change: 'Change photo',\n    revert: 'Revert to original',\n    zoomOut: 'Zoom out',\n    zoom: 'Zoom',\n    zoomIn: 'Zoom in',\n    remove: 'Remove image',\n    invalidType: 'File must be an image',\n    tooLarge: (maxMb: number) => `File exceeds ${maxMb} MB limit`,\n  },\n  breadcrumbs: {\n    label: 'Breadcrumb',\n  },\n  codeInput: {\n    groupLabel: length => `Verification code, ${length} digits`,\n    digitLabel: (index, length) => `Digit ${index} of ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Command palette',\n    searchPlaceholder: 'Type a command or search…',\n    empty: 'No results found',\n  },\n  colorPicker: {\n    dialogLabel: 'Choose color',\n    placeholder: 'Pick a color…',\n    clear: 'Clear color',\n    hue: 'Hue',\n    saturationAndValue: 'Saturation and value',\n    saturationAndValueStatus: (saturation, value) =>\n      `Saturation ${saturation}%, brightness ${value}%`,\n    alpha: 'Alpha',\n    eyedropper: 'Pick from screen',\n    presets: 'Presets',\n    toggleFormat: 'Switch input format',\n  },\n  dataTable: {\n    noData: 'No data available',\n  },\n  numberFormat: {\n    decimal: '.',\n    group: ',',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Select date…',\n    dialogLabel: 'Choose date',\n    clear: 'Clear date',\n    previousYear: 'Previous year',\n    previousMonth: 'Previous month',\n    nextMonth: 'Next month',\n    nextYear: 'Next year',\n    today: 'Today',\n    weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    months: [\n      'January',\n      'February',\n      'March',\n      'April',\n      'May',\n      'June',\n      'July',\n      'August',\n      'September',\n      'October',\n      'November',\n      'December',\n    ],\n  },\n  dialog: {\n    close: 'Close dialog',\n  },\n  drawer: {\n    close: 'Close panel',\n  },\n  dropdown: {\n    placeholder: 'Select…',\n  },\n  fileUploader: {\n    prompt: 'Click or drag files here to upload',\n    promptSingle: 'Click or drag a file here to upload',\n    browse: 'Browse files',\n    removeFile: name => `Remove ${name}`,\n    fileListLabel: 'Selected files',\n    constraintsAccept: accept => `Accepted: ${accept}`,\n    constraintsMaxSize: size => `Max ${size} per file`,\n    constraintsMaxFiles: count => `Up to ${count} files`,\n    rejectionType: name => `${name} has an unsupported file type`,\n    rejectionSize: (name, max) => `${name} exceeds the ${max} limit`,\n    rejectionCount: max => `Only ${max} files can be selected`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Show password',\n    hidePassword: 'Hide password',\n    clear: 'Clear',\n  },\n  menu: {\n    label: 'Menu',\n  },\n  multiSelect: {\n    dialogLabel: 'Choose options',\n    placeholder: 'Select…',\n    searchPlaceholder: 'Search…',\n    searchEmpty: 'No matches',\n    selectAll: 'Select all',\n    clearAll: 'Clear selection',\n    removeOption: label => `Remove ${label}`,\n    selectedCount: count => `${count} selected`,\n    create: text => `Create “${text}”`,\n  },\n  paginator: {\n    label: 'Pagination',\n    rowsPerPage: 'Rows per page:',\n    range: (start, end, total) => `${start}–${end} of ${total}`,\n    previousPage: 'Previous page',\n    nextPage: 'Next page',\n    page: page => `Go to page ${page}`,\n  },\n  progressBar: {\n    label: 'Progress',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Minimum value',\n    highThumbLabel: 'Maximum value',\n  },\n  rating: {\n    label: 'Rating',\n    valueLabel: (value, max) => `${value} of ${max}`,\n    clear: 'Clear rating',\n  },\n  spinner: {\n    label: 'Loading',\n  },\n  stepper: {\n    stepsLabel: 'Steps',\n    optional: 'optional',\n    stepCompleted: 'completed',\n  },\n  tag: {\n    remove: 'Remove',\n  },\n  timePicker: {\n    placeholder: 'Select time…',\n    dialogLabel: 'Choose time',\n    clear: 'Clear time',\n    hoursLabel: 'Hours',\n    minutesLabel: 'Minutes',\n    secondsLabel: 'Seconds',\n    incrementHours: 'Increment hours',\n    decrementHours: 'Decrement hours',\n    incrementMinutes: 'Increment minutes',\n    decrementMinutes: 'Decrement minutes',\n    incrementSeconds: 'Increment seconds',\n    decrementSeconds: 'Decrement seconds',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Dismiss',\n  },\n  transferList: {\n    sourceLabel: 'Available',\n    targetLabel: 'Selected',\n    controlsLabel: 'Transfer controls',\n    moveSelectedToTarget: 'Move selected to target',\n    moveAllToTarget: 'Move all to target',\n    moveSelectedToSource: 'Move selected to source',\n    moveAllToSource: 'Move all to source',\n    empty: 'No items',\n    moved: (count, listLabel) => `${count} moved to ${listLabel}`,\n  },\n  validation: {\n    required: 'This field is required',\n    email: 'Enter a valid email address',\n    min: min => `Must be at least ${min}`,\n    max: max => `Must be at most ${max}`,\n    minlength: length => `Must be at least ${length} characters`,\n    maxlength: length => `Must be at most ${length} characters`,\n    pattern: 'Invalid format',\n    invalid: 'Invalid value',\n  },\n  wordmark: {\n    overline: 'designed by',\n    tagline: 'elegant web design',\n  },\n};\n\nexport const en: EagamiLocaleBundle = {\n  locale: 'en',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Spanish (Spain) messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Descartar',\n  },\n  autocomplete: {\n    empty: 'Sin resultados',\n  },\n  avatarEditor: {\n    upload: 'Subir imagen',\n    dropzone: 'Suelta una imagen o haz clic para elegir',\n    canvas:\n      'Vista previa de la imagen, arrastra o usa las flechas para desplazar, el control deslizante para ampliar',\n    canvasInstructions:\n      'Usa las flechas para mover la imagen, más y menos para ampliar, y Intro o Espacio para elegir otra foto',\n    change: 'Cambiar foto',\n    revert: 'Revertir al original',\n    zoomOut: 'Alejar',\n    zoom: 'Ampliación',\n    zoomIn: 'Acercar',\n    remove: 'Eliminar imagen',\n    invalidType: 'El archivo debe ser una imagen',\n    tooLarge: (maxMb: number) => `El archivo supera el límite de ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Ruta de navegación',\n  },\n  codeInput: {\n    groupLabel: length => `Código de verificación, ${length} dígitos`,\n    digitLabel: (index, length) => `Dígito ${index} de ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Paleta de comandos',\n    searchPlaceholder: 'Escribe un comando o busca…',\n    empty: 'Sin resultados',\n  },\n  colorPicker: {\n    dialogLabel: 'Elegir color',\n    placeholder: 'Elegir un color…',\n    clear: 'Borrar color',\n    hue: 'Matiz',\n    saturationAndValue: 'Saturación y valor',\n    saturationAndValueStatus: (saturation, value) =>\n      `Saturación ${saturation} %, brillo ${value} %`,\n    alpha: 'Alfa',\n    eyedropper: 'Elegir de la pantalla',\n    presets: 'Preajustes',\n    toggleFormat: 'Cambiar formato de entrada',\n  },\n  dataTable: {\n    noData: 'No hay datos disponibles',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '.',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Seleccionar fecha…',\n    dialogLabel: 'Elegir fecha',\n    clear: 'Borrar fecha',\n    previousYear: 'Año anterior',\n    previousMonth: 'Mes anterior',\n    nextMonth: 'Mes siguiente',\n    nextYear: 'Año siguiente',\n    today: 'Hoy',\n    weekdaysShort: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],\n    months: [\n      'enero',\n      'febrero',\n      'marzo',\n      'abril',\n      'mayo',\n      'junio',\n      'julio',\n      'agosto',\n      'septiembre',\n      'octubre',\n      'noviembre',\n      'diciembre',\n    ],\n  },\n  dialog: {\n    close: 'Cerrar diálogo',\n  },\n  drawer: {\n    close: 'Cerrar panel',\n  },\n  dropdown: {\n    placeholder: 'Seleccionar…',\n  },\n  fileUploader: {\n    prompt: 'Haz clic o arrastra archivos aquí para subirlos',\n    promptSingle: 'Haz clic o arrastra un archivo aquí para subirlo',\n    browse: 'Examinar archivos',\n    removeFile: name => `Eliminar ${name}`,\n    fileListLabel: 'Archivos seleccionados',\n    constraintsAccept: accept => `Aceptados: ${accept}`,\n    constraintsMaxSize: size => `Máx. ${size} por archivo`,\n    constraintsMaxFiles: count => `Hasta ${count} archivos`,\n    rejectionType: name => `${name} tiene un tipo de archivo no admitido`,\n    rejectionSize: (name, max) => `${name} supera el límite de ${max}`,\n    rejectionCount: max => `Solo se pueden seleccionar ${max} archivos`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Mostrar contraseña',\n    hidePassword: 'Ocultar contraseña',\n    clear: 'Borrar',\n  },\n  menu: {\n    label: 'Menú',\n  },\n  multiSelect: {\n    dialogLabel: 'Elegir opciones',\n    placeholder: 'Seleccionar…',\n    searchPlaceholder: 'Buscar…',\n    searchEmpty: 'Sin coincidencias',\n    selectAll: 'Seleccionar todo',\n    clearAll: 'Borrar selección',\n    removeOption: label => `Eliminar ${label}`,\n    selectedCount: count => `${count} seleccionado${count === 1 ? '' : 's'}`,\n    create: text => `Crear «${text}»`,\n  },\n  paginator: {\n    label: 'Paginación',\n    rowsPerPage: 'Filas por página:',\n    range: (start, end, total) => `${start}–${end} de ${total}`,\n    previousPage: 'Página anterior',\n    nextPage: 'Página siguiente',\n    page: page => `Ir a la página ${page}`,\n  },\n  progressBar: {\n    label: 'Progreso',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Valor mínimo',\n    highThumbLabel: 'Valor máximo',\n  },\n  rating: {\n    label: 'Valoración',\n    valueLabel: (value, max) => `${value} de ${max}`,\n    clear: 'Borrar valoración',\n  },\n  spinner: {\n    label: 'Cargando',\n  },\n  stepper: {\n    stepsLabel: 'Pasos',\n    optional: 'opcional',\n    stepCompleted: 'completado',\n  },\n  tag: {\n    remove: 'Eliminar',\n  },\n  timePicker: {\n    placeholder: 'Seleccionar hora…',\n    dialogLabel: 'Elegir hora',\n    clear: 'Borrar hora',\n    hoursLabel: 'Horas',\n    minutesLabel: 'Minutos',\n    secondsLabel: 'Segundos',\n    incrementHours: 'Aumentar horas',\n    decrementHours: 'Disminuir horas',\n    incrementMinutes: 'Aumentar minutos',\n    decrementMinutes: 'Disminuir minutos',\n    incrementSeconds: 'Aumentar segundos',\n    decrementSeconds: 'Disminuir segundos',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Descartar',\n  },\n  transferList: {\n    sourceLabel: 'Disponibles',\n    targetLabel: 'Seleccionados',\n    controlsLabel: 'Controles de transferencia',\n    moveSelectedToTarget: 'Mover seleccionados al destino',\n    moveAllToTarget: 'Mover todos al destino',\n    moveSelectedToSource: 'Mover seleccionados al origen',\n    moveAllToSource: 'Mover todos al origen',\n    empty: 'Sin elementos',\n    moved: (count, listLabel) => `Movidos a ${listLabel}: ${count}`,\n  },\n  validation: {\n    required: 'Este campo es obligatorio',\n    email: 'Introduce un correo electrónico válido',\n    min: min => `Debe ser como mínimo ${min}`,\n    max: max => `Debe ser como máximo ${max}`,\n    minlength: length => `Debe tener al menos ${length} caracteres`,\n    maxlength: length => `Debe tener como máximo ${length} caracteres`,\n    pattern: 'Formato no válido',\n    invalid: 'Valor no válido',\n  },\n  wordmark: {\n    overline: 'diseñado por',\n    tagline: 'diseño web elegante',\n  },\n};\n\nexport const esES: EagamiLocaleBundle = {\n  locale: 'es-ES',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** French (France) messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Fermer',\n  },\n  autocomplete: {\n    empty: 'Aucun résultat',\n  },\n  avatarEditor: {\n    upload: 'Téléverser une image',\n    dropzone: 'Déposez une image ou cliquez pour parcourir',\n    canvas:\n      \"Aperçu de l'image, faites glisser ou utilisez les flèches pour déplacer, le curseur pour zoomer\",\n    canvasInstructions:\n      \"Utilisez les flèches pour déplacer l'image, plus et moins pour zoomer, et Entrée ou Espace pour choisir une autre photo\",\n    change: 'Changer la photo',\n    revert: \"Revenir à l'original\",\n    zoomOut: 'Dézoomer',\n    zoom: 'Zoom',\n    zoomIn: 'Zoomer',\n    remove: \"Supprimer l'image\",\n    invalidType: 'Le fichier doit être une image',\n    tooLarge: (maxMb: number) => `Le fichier dépasse la limite de ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: \"Fil d'Ariane\",\n  },\n  codeInput: {\n    groupLabel: length => `Code de vérification, ${length} chiffres`,\n    digitLabel: (index, length) => `Chiffre ${index} sur ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Palette de commandes',\n    searchPlaceholder: 'Tapez une commande ou recherchez…',\n    empty: 'Aucun résultat',\n  },\n  colorPicker: {\n    dialogLabel: 'Choisir une couleur',\n    placeholder: 'Choisir une couleur…',\n    clear: 'Effacer la couleur',\n    hue: 'Teinte',\n    saturationAndValue: 'Saturation et valeur',\n    saturationAndValueStatus: (saturation, value) =>\n      `Saturation ${saturation} %, luminosité ${value} %`,\n    alpha: 'Alpha',\n    eyedropper: \"Prélever à l'écran\",\n    presets: 'Présélections',\n    toggleFormat: 'Changer le format de saisie',\n  },\n  dataTable: {\n    noData: 'Aucune donnée disponible',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '\\u202F',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Sélectionner une date…',\n    dialogLabel: 'Choisir une date',\n    clear: 'Effacer la date',\n    previousYear: 'Année précédente',\n    previousMonth: 'Mois précédent',\n    nextMonth: 'Mois suivant',\n    nextYear: 'Année suivante',\n    today: \"Aujourd'hui\",\n    weekdaysShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n    months: [\n      'janvier',\n      'février',\n      'mars',\n      'avril',\n      'mai',\n      'juin',\n      'juillet',\n      'août',\n      'septembre',\n      'octobre',\n      'novembre',\n      'décembre',\n    ],\n  },\n  dialog: {\n    close: 'Fermer la boîte de dialogue',\n  },\n  drawer: {\n    close: 'Fermer le panneau',\n  },\n  dropdown: {\n    placeholder: 'Sélectionner…',\n  },\n  fileUploader: {\n    prompt: 'Cliquez ou glissez des fichiers ici pour les téléverser',\n    promptSingle: 'Cliquez ou glissez un fichier ici pour le téléverser',\n    browse: 'Parcourir les fichiers',\n    removeFile: name => `Supprimer ${name}`,\n    fileListLabel: 'Fichiers sélectionnés',\n    constraintsAccept: accept => `Acceptés : ${accept}`,\n    constraintsMaxSize: size => `Max ${size} par fichier`,\n    constraintsMaxFiles: count => `Jusqu’à ${count} fichiers`,\n    rejectionType: name => `${name} a un type de fichier non pris en charge`,\n    rejectionSize: (name, max) => `${name} dépasse la limite de ${max}`,\n    rejectionCount: max => `Seuls ${max} fichiers peuvent être sélectionnés`,\n    bytesUnit: { b: 'o', kb: 'Ko', mb: 'Mo', gb: 'Go', tb: 'To' },\n  },\n  input: {\n    showPassword: 'Afficher le mot de passe',\n    hidePassword: 'Masquer le mot de passe',\n    clear: 'Effacer',\n  },\n  menu: {\n    label: 'Menu',\n  },\n  multiSelect: {\n    dialogLabel: 'Choisir des options',\n    placeholder: 'Sélectionner…',\n    searchPlaceholder: 'Rechercher…',\n    searchEmpty: 'Aucun résultat',\n    selectAll: 'Tout sélectionner',\n    clearAll: 'Effacer la sélection',\n    removeOption: label => `Supprimer ${label}`,\n    selectedCount: count => `${count} sélectionné${count > 1 ? 's' : ''}`,\n    create: text => `Créer « ${text} »`,\n  },\n  paginator: {\n    label: 'Pagination',\n    rowsPerPage: 'Lignes par page :',\n    range: (start, end, total) => `${start}–${end} sur ${total}`,\n    previousPage: 'Page précédente',\n    nextPage: 'Page suivante',\n    page: page => `Aller à la page ${page}`,\n  },\n  progressBar: {\n    label: 'Progression',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Valeur minimale',\n    highThumbLabel: 'Valeur maximale',\n  },\n  rating: {\n    label: 'Note',\n    valueLabel: (value, max) => `${value} sur ${max}`,\n    clear: 'Effacer la note',\n  },\n  spinner: {\n    label: 'Chargement',\n  },\n  stepper: {\n    stepsLabel: 'Étapes',\n    optional: 'facultatif',\n    stepCompleted: 'terminée',\n  },\n  tag: {\n    remove: 'Supprimer',\n  },\n  timePicker: {\n    placeholder: 'Sélectionner une heure…',\n    dialogLabel: 'Choisir une heure',\n    clear: \"Effacer l'heure\",\n    hoursLabel: 'Heures',\n    minutesLabel: 'Minutes',\n    secondsLabel: 'Secondes',\n    incrementHours: 'Augmenter les heures',\n    decrementHours: 'Diminuer les heures',\n    incrementMinutes: 'Augmenter les minutes',\n    decrementMinutes: 'Diminuer les minutes',\n    incrementSeconds: 'Augmenter les secondes',\n    decrementSeconds: 'Diminuer les secondes',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Fermer',\n  },\n  transferList: {\n    sourceLabel: 'Disponibles',\n    targetLabel: 'Sélectionnés',\n    controlsLabel: 'Contrôles de transfert',\n    moveSelectedToTarget: 'Déplacer la sélection vers la cible',\n    moveAllToTarget: 'Tout déplacer vers la cible',\n    moveSelectedToSource: 'Déplacer la sélection vers la source',\n    moveAllToSource: 'Tout déplacer vers la source',\n    empty: 'Aucun élément',\n    moved: (count, listLabel) => `${count} déplacés vers ${listLabel}`,\n  },\n  validation: {\n    required: 'Ce champ est obligatoire',\n    email: 'Saisissez une adresse e-mail valide',\n    min: min => `Doit être au moins ${min}`,\n    max: max => `Doit être au plus ${max}`,\n    minlength: length => `Doit comporter au moins ${length} caractères`,\n    maxlength: length => `Doit comporter au plus ${length} caractères`,\n    pattern: 'Format invalide',\n    invalid: 'Valeur invalide',\n  },\n  wordmark: {\n    overline: 'conçu par',\n    tagline: 'design web élégant',\n  },\n};\n\nexport const frFR: EagamiLocaleBundle = {\n  locale: 'fr-FR',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Hebrew messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'סגור',\n  },\n  autocomplete: {\n    empty: 'אין תוצאות',\n  },\n  avatarEditor: {\n    upload: 'העלאת תמונה',\n    dropzone: 'גרור תמונה או לחץ לבחירה',\n    canvas: 'תצוגה מקדימה של התמונה, גרור או השתמש במקשי החצים להזזה ובמחוון לזום',\n    canvasInstructions:\n      'השתמש במקשי החצים להזזת התמונה, בפלוס ומינוס לזום, וב-Enter או ברווח לבחירת תמונה אחרת',\n    change: 'החלפת תמונה',\n    revert: 'שחזור למקור',\n    zoomOut: 'התרחקות',\n    zoom: 'זום',\n    zoomIn: 'התקרבות',\n    remove: 'הסרת תמונה',\n    invalidType: 'הקובץ חייב להיות תמונה',\n    tooLarge: (maxMb: number) => `הקובץ חורג ממגבלת ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'נתיב ניווט',\n  },\n  codeInput: {\n    groupLabel: length => `קוד אימות, ${length} ספרות`,\n    digitLabel: (index, length) => `ספרה ${index} מתוך ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'לוח פקודות',\n    searchPlaceholder: 'הקלד פקודה או חפש…',\n    empty: 'לא נמצאו תוצאות',\n  },\n  colorPicker: {\n    dialogLabel: 'בחירת צבע',\n    placeholder: 'בחר צבע…',\n    clear: 'ניקוי צבע',\n    hue: 'גוון',\n    saturationAndValue: 'רוויה ובהירות',\n    saturationAndValueStatus: (saturation, value) =>\n      `רוויה ${saturation}%, בהירות ${value}%`,\n    alpha: 'שקיפות',\n    eyedropper: 'בחירה מהמסך',\n    presets: 'הגדרות מוכנות',\n    toggleFormat: 'החלפת פורמט קלט',\n  },\n  dataTable: {\n    noData: 'אין נתונים זמינים',\n  },\n  numberFormat: {\n    decimal: '.',\n    group: ',',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'בחר תאריך…',\n    dialogLabel: 'בחירת תאריך',\n    clear: 'ניקוי תאריך',\n    previousYear: 'שנה קודמת',\n    previousMonth: 'חודש קודם',\n    nextMonth: 'חודש הבא',\n    nextYear: 'שנה הבאה',\n    today: 'היום',\n    weekdaysShort: ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'],\n    months: [\n      'ינואר',\n      'פברואר',\n      'מרץ',\n      'אפריל',\n      'מאי',\n      'יוני',\n      'יולי',\n      'אוגוסט',\n      'ספטמבר',\n      'אוקטובר',\n      'נובמבר',\n      'דצמבר',\n    ],\n  },\n  dialog: {\n    close: 'סגירת חלון',\n  },\n  drawer: {\n    close: 'סגירת לוח',\n  },\n  dropdown: {\n    placeholder: 'בחר…',\n  },\n  fileUploader: {\n    prompt: 'לחץ או גרור קבצים לכאן להעלאה',\n    promptSingle: 'לחץ או גרור קובץ לכאן להעלאה',\n    browse: 'עיון בקבצים',\n    removeFile: name => `הסרת ${name}`,\n    fileListLabel: 'קבצים שנבחרו',\n    constraintsAccept: accept => `מותר: ${accept}`,\n    constraintsMaxSize: size => `מקסימום ${size} לכל קובץ`,\n    constraintsMaxFiles: count => `עד ${count} קבצים`,\n    rejectionType: name => `${name} הוא סוג קובץ שאינו נתמך`,\n    rejectionSize: (name, max) => `${name} חורג מהמגבלה של ${max}`,\n    rejectionCount: max => `ניתן לבחור ${max} קבצים בלבד`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'הצגת סיסמה',\n    hidePassword: 'הסתרת סיסמה',\n    clear: 'ניקוי',\n  },\n  menu: {\n    label: 'תפריט',\n  },\n  multiSelect: {\n    dialogLabel: 'בחירת אפשרויות',\n    placeholder: 'בחר…',\n    searchPlaceholder: 'חיפוש…',\n    searchEmpty: 'אין התאמות',\n    selectAll: 'בחירת הכול',\n    clearAll: 'ניקוי הבחירה',\n    removeOption: label => `הסרת ${label}`,\n    selectedCount: count => `${count} נבחרו`,\n    create: text => `צור \"${text}\"`,\n  },\n  paginator: {\n    label: 'עימוד',\n    rowsPerPage: 'שורות בעמוד:',\n    range: (start, end, total) => `${start}–${end} מתוך ${total}`,\n    previousPage: 'עמוד קודם',\n    nextPage: 'עמוד הבא',\n    page: page => `מעבר לעמוד ${page}`,\n  },\n  progressBar: {\n    label: 'התקדמות',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'ערך מינימלי',\n    highThumbLabel: 'ערך מקסימלי',\n  },\n  rating: {\n    label: 'דירוג',\n    valueLabel: (value, max) => `${value} מתוך ${max}`,\n    clear: 'ניקוי דירוג',\n  },\n  spinner: {\n    label: 'טוען',\n  },\n  stepper: {\n    stepsLabel: 'שלבים',\n    optional: 'אופציונלי',\n    stepCompleted: 'הושלם',\n  },\n  tag: {\n    remove: 'הסרה',\n  },\n  timePicker: {\n    placeholder: 'בחר שעה…',\n    dialogLabel: 'בחירת שעה',\n    clear: 'ניקוי שעה',\n    hoursLabel: 'שעות',\n    minutesLabel: 'דקות',\n    secondsLabel: 'שניות',\n    incrementHours: 'הגדלת שעות',\n    decrementHours: 'הקטנת שעות',\n    incrementMinutes: 'הגדלת דקות',\n    decrementMinutes: 'הקטנת דקות',\n    incrementSeconds: 'הגדלת שניות',\n    decrementSeconds: 'הקטנת שניות',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'סגור',\n  },\n  transferList: {\n    sourceLabel: 'זמין',\n    targetLabel: 'נבחר',\n    controlsLabel: 'בקרות העברה',\n    moveSelectedToTarget: 'העברת הנבחרים ליעד',\n    moveAllToTarget: 'העברת הכול ליעד',\n    moveSelectedToSource: 'העברת הנבחרים למקור',\n    moveAllToSource: 'העברת הכול למקור',\n    empty: 'אין פריטים',\n    moved: (count, listLabel) => `העברה אל ${listLabel}: ${count}`,\n  },\n  validation: {\n    required: 'שדה זה הוא חובה',\n    email: 'הזן כתובת אימייל תקינה',\n    min: min => `חייב להיות לפחות ${min}`,\n    max: max => `חייב להיות לכל היותר ${max}`,\n    minlength: length => `חייב להכיל לפחות ${length} תווים`,\n    maxlength: length => `חייב להכיל לכל היותר ${length} תווים`,\n    pattern: 'פורמט לא תקין',\n    invalid: 'ערך לא תקין',\n  },\n  wordmark: {\n    overline: 'בעיצוב',\n    tagline: 'עיצוב אתרים אלגנטי',\n  },\n};\n\nexport const he: EagamiLocaleBundle = {\n  locale: 'he',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Hindi messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'खारिज करें',\n  },\n  autocomplete: {\n    empty: 'कोई परिणाम नहीं',\n  },\n  avatarEditor: {\n    upload: 'छवि अपलोड करें',\n    dropzone: 'छवि छोड़ें या चुनने के लिए क्लिक करें',\n    canvas:\n      'छवि पूर्वावलोकन, पैन करने के लिए खींचें या तीर कुंजियों का उपयोग करें, ज़ूम के लिए स्लाइडर',\n    canvasInstructions:\n      'छवि को हिलाने के लिए तीर कुंजियों का उपयोग करें, ज़ूम के लिए प्लस और माइनस, और दूसरी फ़ोटो चुनने के लिए Enter या Space दबाएं',\n    change: 'फ़ोटो बदलें',\n    revert: 'मूल पर वापस लौटें',\n    zoomOut: 'ज़ूम आउट',\n    zoom: 'ज़ूम',\n    zoomIn: 'ज़ूम इन',\n    remove: 'छवि हटाएं',\n    invalidType: 'फ़ाइल एक छवि होनी चाहिए',\n    tooLarge: (maxMb: number) => `फ़ाइल ${maxMb} MB की सीमा से अधिक है`,\n  },\n  breadcrumbs: {\n    label: 'ब्रेडक्रंब',\n  },\n  codeInput: {\n    groupLabel: length => `सत्यापन कोड, ${length} अंक`,\n    digitLabel: (index, length) => `${length} में से अंक ${index}`,\n  },\n  commandPalette: {\n    dialogLabel: 'कमांड पैलेट',\n    searchPlaceholder: 'कमांड टाइप करें या खोजें…',\n    empty: 'कोई परिणाम नहीं मिला',\n  },\n  colorPicker: {\n    dialogLabel: 'रंग चुनें',\n    placeholder: 'रंग चुनें…',\n    clear: 'रंग साफ़ करें',\n    hue: 'रंगत',\n    saturationAndValue: 'संतृप्ति और मान',\n    saturationAndValueStatus: (saturation, value) =>\n      `संतृप्ति ${saturation}%, चमक ${value}%`,\n    alpha: 'अल्फ़ा',\n    eyedropper: 'स्क्रीन से चुनें',\n    presets: 'प्रीसेट',\n    toggleFormat: 'इनपुट प्रारूप बदलें',\n  },\n  dataTable: {\n    noData: 'कोई डेटा उपलब्ध नहीं',\n  },\n  numberFormat: {\n    decimal: '.',\n    group: ',',\n    grouping: [3, 2],\n  },\n  datePicker: {\n    placeholder: 'तारीख चुनें…',\n    dialogLabel: 'तारीख चुनें',\n    clear: 'तारीख साफ़ करें',\n    previousYear: 'पिछला वर्ष',\n    previousMonth: 'पिछला महीना',\n    nextMonth: 'अगला महीना',\n    nextYear: 'अगला वर्ष',\n    today: 'आज',\n    weekdaysShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],\n    months: [\n      'जनवरी',\n      'फ़रवरी',\n      'मार्च',\n      'अप्रैल',\n      'मई',\n      'जून',\n      'जुलाई',\n      'अगस्त',\n      'सितंबर',\n      'अक्टूबर',\n      'नवंबर',\n      'दिसंबर',\n    ],\n  },\n  dialog: {\n    close: 'संवाद बंद करें',\n  },\n  drawer: {\n    close: 'पैनल बंद करें',\n  },\n  dropdown: {\n    placeholder: 'चुनें…',\n  },\n  fileUploader: {\n    prompt: 'अपलोड करने के लिए फ़ाइलें यहाँ क्लिक करें या खींचें',\n    promptSingle: 'अपलोड करने के लिए फ़ाइल यहाँ क्लिक करें या खींचें',\n    browse: 'फ़ाइलें ब्राउज़ करें',\n    removeFile: name => `${name} हटाएं`,\n    fileListLabel: 'चयनित फ़ाइलें',\n    constraintsAccept: accept => `स्वीकृत: ${accept}`,\n    constraintsMaxSize: size => `प्रति फ़ाइल अधिकतम ${size}`,\n    constraintsMaxFiles: count => `${count} फ़ाइलों तक`,\n    rejectionType: name => `${name} एक असमर्थित फ़ाइल प्रकार है`,\n    rejectionSize: (name, max) => `${name} ${max} की सीमा से अधिक है`,\n    rejectionCount: max => `केवल ${max} फ़ाइलें चुनी जा सकती हैं`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'पासवर्ड दिखाएं',\n    hidePassword: 'पासवर्ड छिपाएं',\n    clear: 'साफ़ करें',\n  },\n  menu: {\n    label: 'मेनू',\n  },\n  multiSelect: {\n    dialogLabel: 'विकल्प चुनें',\n    placeholder: 'चुनें…',\n    searchPlaceholder: 'खोजें…',\n    searchEmpty: 'कोई मिलान नहीं',\n    selectAll: 'सभी चुनें',\n    clearAll: 'चयन साफ़ करें',\n    removeOption: label => `${label} हटाएं`,\n    selectedCount: count => `${count} चयनित`,\n    create: text => `\"${text}\" बनाएँ`,\n  },\n  paginator: {\n    label: 'पृष्ठ क्रमांकन',\n    rowsPerPage: 'प्रति पृष्ठ पंक्तियाँ:',\n    range: (start, end, total) => `${total} में से ${start}–${end}`,\n    previousPage: 'पिछला पृष्ठ',\n    nextPage: 'अगला पृष्ठ',\n    page: page => `पृष्ठ ${page} पर जाएँ`,\n  },\n  progressBar: {\n    label: 'प्रगति',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'न्यूनतम मान',\n    highThumbLabel: 'अधिकतम मान',\n  },\n  rating: {\n    label: 'रेटिंग',\n    valueLabel: (value, max) => `${max} में से ${value}`,\n    clear: 'रेटिंग साफ़ करें',\n  },\n  spinner: {\n    label: 'लोड हो रहा है',\n  },\n  stepper: {\n    stepsLabel: 'चरण',\n    optional: 'वैकल्पिक',\n    stepCompleted: 'पूर्ण',\n  },\n  tag: {\n    remove: 'हटाएं',\n  },\n  timePicker: {\n    placeholder: 'समय चुनें…',\n    dialogLabel: 'समय चुनें',\n    clear: 'समय साफ़ करें',\n    hoursLabel: 'घंटे',\n    minutesLabel: 'मिनट',\n    secondsLabel: 'सेकंड',\n    incrementHours: 'घंटे बढ़ाएं',\n    decrementHours: 'घंटे घटाएं',\n    incrementMinutes: 'मिनट बढ़ाएं',\n    decrementMinutes: 'मिनट घटाएं',\n    incrementSeconds: 'सेकंड बढ़ाएं',\n    decrementSeconds: 'सेकंड घटाएं',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'खारिज करें',\n  },\n  transferList: {\n    sourceLabel: 'उपलब्ध',\n    targetLabel: 'चयनित',\n    controlsLabel: 'स्थानांतरण नियंत्रण',\n    moveSelectedToTarget: 'चयनित को लक्ष्य में ले जाएं',\n    moveAllToTarget: 'सभी को लक्ष्य में ले जाएं',\n    moveSelectedToSource: 'चयनित को स्रोत में ले जाएं',\n    moveAllToSource: 'सभी को स्रोत में ले जाएं',\n    empty: 'कोई आइटम नहीं',\n    moved: (count, listLabel) => `${count} को ${listLabel} में ले जाया गया`,\n  },\n  validation: {\n    required: 'यह फ़ील्ड आवश्यक है',\n    email: 'एक मान्य ईमेल पता दर्ज करें',\n    min: min => `कम से कम ${min} होना चाहिए`,\n    max: max => `अधिकतम ${max} होना चाहिए`,\n    minlength: length => `कम से कम ${length} अक्षर होने चाहिए`,\n    maxlength: length => `अधिकतम ${length} अक्षर होने चाहिए`,\n    pattern: 'अमान्य प्रारूप',\n    invalid: 'अमान्य मान',\n  },\n  wordmark: {\n    overline: 'डिज़ाइन द्वारा',\n    tagline: 'सुरुचिपूर्ण वेब डिज़ाइन',\n  },\n};\n\nexport const hi: EagamiLocaleBundle = {\n  locale: 'hi',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Icelandic messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Loka',\n  },\n  autocomplete: {\n    empty: 'Engar niðurstöður',\n  },\n  avatarEditor: {\n    upload: 'Hlaða upp mynd',\n    dropzone: 'Slepptu mynd eða smelltu til að velja',\n    canvas:\n      'Forskoðun myndar, dragðu eða notaðu örvatakka til að hreyfa, sleða til að aðdrátta',\n    canvasInstructions:\n      'Notaðu örvatakkana til að hreyfa myndina, plús og mínus til að breyta aðdrætti og Enter eða bilslá til að velja aðra mynd',\n    change: 'Skipta um mynd',\n    revert: 'Endurheimta upprunalega',\n    zoomOut: 'Minnka aðdrátt',\n    zoom: 'Aðdráttur',\n    zoomIn: 'Auka aðdrátt',\n    remove: 'Fjarlægja mynd',\n    invalidType: 'Skráin verður að vera mynd',\n    tooLarge: (maxMb: number) => `Skráin fer yfir ${maxMb} MB mörkin`,\n  },\n  breadcrumbs: {\n    label: 'Brauðmolaslóð',\n  },\n  codeInput: {\n    groupLabel: length => `Staðfestingarkóði, ${length} tölustafir`,\n    digitLabel: (index, length) => `Tölustafur ${index} af ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Skipanaspjald',\n    searchPlaceholder: 'Sláðu inn skipun eða leitaðu…',\n    empty: 'Engar niðurstöður fundust',\n  },\n  colorPicker: {\n    dialogLabel: 'Velja lit',\n    placeholder: 'Veldu lit…',\n    clear: 'Hreinsa lit',\n    hue: 'Litblær',\n    saturationAndValue: 'Mettun og birta',\n    saturationAndValueStatus: (saturation, value) =>\n      `Mettun ${saturation}%, birta ${value}%`,\n    alpha: 'Gegnsæi',\n    eyedropper: 'Velja af skjánum',\n    presets: 'Forstillingar',\n    toggleFormat: 'Skipta um innsláttarsnið',\n  },\n  dataTable: {\n    noData: 'Engin gögn til staðar',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '.',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Veldu dagsetningu…',\n    dialogLabel: 'Velja dagsetningu',\n    clear: 'Hreinsa dagsetningu',\n    previousYear: 'Fyrra ár',\n    previousMonth: 'Fyrri mánuður',\n    nextMonth: 'Næsti mánuður',\n    nextYear: 'Næsta ár',\n    today: 'Í dag',\n    weekdaysShort: ['sun.', 'mán.', 'þri.', 'mið.', 'fim.', 'fös.', 'lau.'],\n    months: [\n      'janúar',\n      'febrúar',\n      'mars',\n      'apríl',\n      'maí',\n      'júní',\n      'júlí',\n      'ágúst',\n      'september',\n      'október',\n      'nóvember',\n      'desember',\n    ],\n  },\n  dialog: {\n    close: 'Loka glugga',\n  },\n  drawer: {\n    close: 'Loka spjaldi',\n  },\n  dropdown: {\n    placeholder: 'Veldu…',\n  },\n  fileUploader: {\n    prompt: 'Smelltu eða dragðu skrár hingað til að hlaða upp',\n    promptSingle: 'Smelltu eða dragðu skrá hingað til að hlaða upp',\n    browse: 'Velja skrár',\n    removeFile: name => `Fjarlægja ${name}`,\n    fileListLabel: 'Valdar skrár',\n    constraintsAccept: accept => `Samþykkt: ${accept}`,\n    constraintsMaxSize: size => `Hámark ${size} á hverja skrá`,\n    constraintsMaxFiles: count => `Allt að ${count} skrár`,\n    rejectionType: name => `${name} er með óstudda skráargerð`,\n    rejectionSize: (name, max) => `${name} fer yfir mörkin ${max}`,\n    rejectionCount: max => `Aðeins er hægt að velja ${max} skrár`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Sýna lykilorð',\n    hidePassword: 'Fela lykilorð',\n    clear: 'Hreinsa',\n  },\n  menu: {\n    label: 'Valmynd',\n  },\n  multiSelect: {\n    dialogLabel: 'Velja valkosti',\n    placeholder: 'Veldu…',\n    searchPlaceholder: 'Leita…',\n    searchEmpty: 'Engin samsvörun',\n    selectAll: 'Velja allt',\n    clearAll: 'Hreinsa val',\n    removeOption: label => `Fjarlægja ${label}`,\n    selectedCount: count => `${count} valdar`,\n    create: text => `Búa til „${text}“`,\n  },\n  paginator: {\n    label: 'Síðuskipting',\n    rowsPerPage: 'Raðir á síðu:',\n    range: (start, end, total) => `${start}–${end} af ${total}`,\n    previousPage: 'Fyrri síða',\n    nextPage: 'Næsta síða',\n    page: page => `Fara á síðu ${page}`,\n  },\n  progressBar: {\n    label: 'Framvinda',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Lágmarksgildi',\n    highThumbLabel: 'Hámarksgildi',\n  },\n  rating: {\n    label: 'Einkunn',\n    valueLabel: (value, max) => `${value} af ${max}`,\n    clear: 'Hreinsa einkunn',\n  },\n  spinner: {\n    label: 'Hleð',\n  },\n  stepper: {\n    stepsLabel: 'Skref',\n    optional: 'valfrjálst',\n    stepCompleted: 'lokið',\n  },\n  tag: {\n    remove: 'Fjarlægja',\n  },\n  timePicker: {\n    placeholder: 'Veldu tíma…',\n    dialogLabel: 'Velja tíma',\n    clear: 'Hreinsa tíma',\n    hoursLabel: 'Klukkustundir',\n    minutesLabel: 'Mínútur',\n    secondsLabel: 'Sekúndur',\n    incrementHours: 'Hækka klukkustundir',\n    decrementHours: 'Lækka klukkustundir',\n    incrementMinutes: 'Hækka mínútur',\n    decrementMinutes: 'Lækka mínútur',\n    incrementSeconds: 'Hækka sekúndur',\n    decrementSeconds: 'Lækka sekúndur',\n    amLabel: 'f.h.',\n    pmLabel: 'e.h.',\n  },\n  toast: {\n    dismiss: 'Loka',\n  },\n  transferList: {\n    sourceLabel: 'Í boði',\n    targetLabel: 'Valið',\n    controlsLabel: 'Flutningsstýringar',\n    moveSelectedToTarget: 'Færa valið yfir',\n    moveAllToTarget: 'Færa allt yfir',\n    moveSelectedToSource: 'Færa valið til baka',\n    moveAllToSource: 'Færa allt til baka',\n    empty: 'Engin atriði',\n    moved: (count, listLabel) => `Flutt í ${listLabel}: ${count}`,\n  },\n  validation: {\n    required: 'Þennan reit þarf að fylla út',\n    email: 'Sláðu inn gilt netfang',\n    min: min => `Verður að vera að minnsta kosti ${min}`,\n    max: max => `Má mest vera ${max}`,\n    minlength: length => `Verður að innihalda að minnsta kosti ${length} stafi`,\n    maxlength: length => `Má mest innihalda ${length} stafi`,\n    pattern: 'Ógilt snið',\n    invalid: 'Ógilt gildi',\n  },\n  wordmark: {\n    overline: 'hannað af',\n    tagline: 'glæsileg vefhönnun',\n  },\n};\n\nexport const is: EagamiLocaleBundle = {\n  locale: 'is',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Dutch messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Sluiten',\n  },\n  autocomplete: {\n    empty: 'Geen resultaten',\n  },\n  avatarEditor: {\n    upload: 'Afbeelding uploaden',\n    dropzone: 'Sleep een afbeelding hierheen of klik om te bladeren',\n    canvas:\n      'Voorbeeld van afbeelding, sleep of gebruik de pijltjestoetsen om te verplaatsen, schuifregelaar om te zoomen',\n    canvasInstructions:\n      'Gebruik de pijltjestoetsen om de afbeelding te verplaatsen, plus en min om te zoomen, en Enter of de spatiebalk om een andere foto te kiezen',\n    change: 'Foto wijzigen',\n    revert: 'Terug naar origineel',\n    zoomOut: 'Uitzoomen',\n    zoom: 'Zoom',\n    zoomIn: 'Inzoomen',\n    remove: 'Afbeelding verwijderen',\n    invalidType: 'Bestand moet een afbeelding zijn',\n    tooLarge: (maxMb: number) => `Bestand overschrijdt de limiet van ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Broodkruimelnavigatie',\n  },\n  codeInput: {\n    groupLabel: length => `Verificatiecode, ${length} cijfers`,\n    digitLabel: (index, length) => `Cijfer ${index} van ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Opdrachtenpalet',\n    searchPlaceholder: 'Typ een opdracht of zoek…',\n    empty: 'Geen resultaten gevonden',\n  },\n  colorPicker: {\n    dialogLabel: 'Kleur kiezen',\n    placeholder: 'Kies een kleur…',\n    clear: 'Kleur wissen',\n    hue: 'Tint',\n    saturationAndValue: 'Verzadiging en helderheid',\n    saturationAndValueStatus: (saturation, value) =>\n      `Verzadiging ${saturation}%, helderheid ${value}%`,\n    alpha: 'Transparantie',\n    eyedropper: 'Kies van het scherm',\n    presets: 'Voorinstellingen',\n    toggleFormat: 'Invoerformaat wisselen',\n  },\n  dataTable: {\n    noData: 'Geen gegevens beschikbaar',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '.',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Selecteer datum…',\n    dialogLabel: 'Datum kiezen',\n    clear: 'Datum wissen',\n    previousYear: 'Vorig jaar',\n    previousMonth: 'Vorige maand',\n    nextMonth: 'Volgende maand',\n    nextYear: 'Volgend jaar',\n    today: 'Vandaag',\n    weekdaysShort: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n    months: [\n      'januari',\n      'februari',\n      'maart',\n      'april',\n      'mei',\n      'juni',\n      'juli',\n      'augustus',\n      'september',\n      'oktober',\n      'november',\n      'december',\n    ],\n  },\n  dialog: {\n    close: 'Dialoogvenster sluiten',\n  },\n  drawer: {\n    close: 'Paneel sluiten',\n  },\n  dropdown: {\n    placeholder: 'Selecteer…',\n  },\n  fileUploader: {\n    prompt: 'Klik of sleep bestanden hierheen om te uploaden',\n    promptSingle: 'Klik of sleep een bestand hierheen om te uploaden',\n    browse: 'Bestanden doorbladeren',\n    removeFile: name => `${name} verwijderen`,\n    fileListLabel: 'Geselecteerde bestanden',\n    constraintsAccept: accept => `Geaccepteerd: ${accept}`,\n    constraintsMaxSize: size => `Max. ${size} per bestand`,\n    constraintsMaxFiles: count => `Tot ${count} bestanden`,\n    rejectionType: name => `${name} heeft een niet-ondersteund bestandstype`,\n    rejectionSize: (name, max) => `${name} overschrijdt de limiet van ${max}`,\n    rejectionCount: max => `Er kunnen slechts ${max} bestanden worden geselecteerd`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Wachtwoord tonen',\n    hidePassword: 'Wachtwoord verbergen',\n    clear: 'Wissen',\n  },\n  menu: {\n    label: 'Menu',\n  },\n  multiSelect: {\n    dialogLabel: 'Opties kiezen',\n    placeholder: 'Selecteer…',\n    searchPlaceholder: 'Zoeken…',\n    searchEmpty: 'Geen overeenkomsten',\n    selectAll: 'Alles selecteren',\n    clearAll: 'Selectie wissen',\n    removeOption: label => `${label} verwijderen`,\n    selectedCount: count => `${count} geselecteerd`,\n    create: text => `“${text}” aanmaken`,\n  },\n  paginator: {\n    label: 'Paginering',\n    rowsPerPage: 'Rijen per pagina:',\n    range: (start, end, total) => `${start}–${end} van ${total}`,\n    previousPage: 'Vorige pagina',\n    nextPage: 'Volgende pagina',\n    page: page => `Ga naar pagina ${page}`,\n  },\n  progressBar: {\n    label: 'Voortgang',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Minimumwaarde',\n    highThumbLabel: 'Maximumwaarde',\n  },\n  rating: {\n    label: 'Beoordeling',\n    valueLabel: (value, max) => `${value} van ${max}`,\n    clear: 'Beoordeling wissen',\n  },\n  spinner: {\n    label: 'Laden',\n  },\n  stepper: {\n    stepsLabel: 'Stappen',\n    optional: 'optioneel',\n    stepCompleted: 'voltooid',\n  },\n  tag: {\n    remove: 'Verwijderen',\n  },\n  timePicker: {\n    placeholder: 'Selecteer tijd…',\n    dialogLabel: 'Tijd kiezen',\n    clear: 'Tijd wissen',\n    hoursLabel: 'Uren',\n    minutesLabel: 'Minuten',\n    secondsLabel: 'Seconden',\n    incrementHours: 'Uren verhogen',\n    decrementHours: 'Uren verlagen',\n    incrementMinutes: 'Minuten verhogen',\n    decrementMinutes: 'Minuten verlagen',\n    incrementSeconds: 'Seconden verhogen',\n    decrementSeconds: 'Seconden verlagen',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Sluiten',\n  },\n  transferList: {\n    sourceLabel: 'Beschikbaar',\n    targetLabel: 'Geselecteerd',\n    controlsLabel: 'Overdrachtsbediening',\n    moveSelectedToTarget: 'Selectie naar rechts verplaatsen',\n    moveAllToTarget: 'Alles naar rechts verplaatsen',\n    moveSelectedToSource: 'Selectie naar links verplaatsen',\n    moveAllToSource: 'Alles naar links verplaatsen',\n    empty: 'Geen items',\n    moved: (count, listLabel) => `${count} verplaatst naar ${listLabel}`,\n  },\n  validation: {\n    required: 'Dit veld is verplicht',\n    email: 'Voer een geldig e-mailadres in',\n    min: min => `Moet minimaal ${min} zijn`,\n    max: max => `Mag maximaal ${max} zijn`,\n    minlength: length => `Moet minimaal ${length} tekens bevatten`,\n    maxlength: length => `Mag maximaal ${length} tekens bevatten`,\n    pattern: 'Ongeldige indeling',\n    invalid: 'Ongeldige waarde',\n  },\n  wordmark: {\n    overline: 'ontworpen door',\n    tagline: 'elegant webontwerp',\n  },\n};\n\nexport const nl: EagamiLocaleBundle = {\n  locale: 'nl',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Polish messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Zamknij',\n  },\n  autocomplete: {\n    empty: 'Brak wyników',\n  },\n  avatarEditor: {\n    upload: 'Prześlij obraz',\n    dropzone: 'Upuść obraz lub kliknij, aby wybrać',\n    canvas:\n      'Podgląd obrazu, przeciągnij lub użyj strzałek, aby przesunąć, suwaka, aby przybliżyć',\n    canvasInstructions:\n      'Użyj strzałek, aby przesunąć obraz, plusa i minusa, aby zmienić powiększenie, oraz Enter lub spacji, aby wybrać inne zdjęcie',\n    change: 'Zmień zdjęcie',\n    revert: 'Przywróć oryginał',\n    zoomOut: 'Pomniejsz',\n    zoom: 'Powiększenie',\n    zoomIn: 'Powiększ',\n    remove: 'Usuń obraz',\n    invalidType: 'Plik musi być obrazem',\n    tooLarge: (maxMb: number) => `Plik przekracza limit ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Ścieżka nawigacji',\n  },\n  codeInput: {\n    groupLabel: length => `Kod weryfikacyjny, ${length} cyfr`,\n    digitLabel: (index, length) => `Cyfra ${index} z ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Paleta poleceń',\n    searchPlaceholder: 'Wpisz polecenie lub szukaj…',\n    empty: 'Brak wyników',\n  },\n  colorPicker: {\n    dialogLabel: 'Wybierz kolor',\n    placeholder: 'Wybierz kolor…',\n    clear: 'Wyczyść kolor',\n    hue: 'Barwa',\n    saturationAndValue: 'Nasycenie i wartość',\n    saturationAndValueStatus: (saturation, value) =>\n      `Nasycenie ${saturation}%, jasność ${value}%`,\n    alpha: 'Alfa',\n    eyedropper: 'Pobierz z ekranu',\n    presets: 'Predefiniowane',\n    toggleFormat: 'Zmień format wprowadzania',\n  },\n  dataTable: {\n    noData: 'Brak dostępnych danych',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '\\u00A0',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Wybierz datę…',\n    dialogLabel: 'Wybierz datę',\n    clear: 'Wyczyść datę',\n    previousYear: 'Poprzedni rok',\n    previousMonth: 'Poprzedni miesiąc',\n    nextMonth: 'Następny miesiąc',\n    nextYear: 'Następny rok',\n    today: 'Dzisiaj',\n    weekdaysShort: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'],\n    months: [\n      'styczeń',\n      'luty',\n      'marzec',\n      'kwiecień',\n      'maj',\n      'czerwiec',\n      'lipiec',\n      'sierpień',\n      'wrzesień',\n      'październik',\n      'listopad',\n      'grudzień',\n    ],\n  },\n  dialog: {\n    close: 'Zamknij okno dialogowe',\n  },\n  drawer: {\n    close: 'Zamknij panel',\n  },\n  dropdown: {\n    placeholder: 'Wybierz…',\n  },\n  fileUploader: {\n    prompt: 'Kliknij lub przeciągnij pliki tutaj, aby je przesłać',\n    promptSingle: 'Kliknij lub przeciągnij plik tutaj, aby go przesłać',\n    browse: 'Przeglądaj pliki',\n    removeFile: name => `Usuń ${name}`,\n    fileListLabel: 'Wybrane pliki',\n    constraintsAccept: accept => `Akceptowane: ${accept}`,\n    constraintsMaxSize: size => `Maks. ${size} na plik`,\n    constraintsMaxFiles: count => `Do ${count} plików`,\n    rejectionType: name => `${name} ma nieobsługiwany typ pliku`,\n    rejectionSize: (name, max) => `${name} przekracza limit ${max}`,\n    rejectionCount: max => `Można wybrać tylko ${max} plików`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Pokaż hasło',\n    hidePassword: 'Ukryj hasło',\n    clear: 'Wyczyść',\n  },\n  menu: {\n    label: 'Menu',\n  },\n  multiSelect: {\n    dialogLabel: 'Wybierz opcje',\n    placeholder: 'Wybierz…',\n    searchPlaceholder: 'Szukaj…',\n    searchEmpty: 'Brak wyników',\n    selectAll: 'Zaznacz wszystko',\n    clearAll: 'Wyczyść wybór',\n    removeOption: label => `Usuń ${label}`,\n    selectedCount: count => `Wybrano: ${count}`,\n    create: text => `Utwórz „${text}”`,\n  },\n  paginator: {\n    label: 'Paginacja',\n    rowsPerPage: 'Wierszy na stronę:',\n    range: (start, end, total) => `${start}–${end} z ${total}`,\n    previousPage: 'Poprzednia strona',\n    nextPage: 'Następna strona',\n    page: page => `Przejdź do strony ${page}`,\n  },\n  progressBar: {\n    label: 'Postęp',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Wartość minimalna',\n    highThumbLabel: 'Wartość maksymalna',\n  },\n  rating: {\n    label: 'Ocena',\n    valueLabel: (value, max) => `${value} z ${max}`,\n    clear: 'Wyczyść ocenę',\n  },\n  spinner: {\n    label: 'Ładowanie',\n  },\n  stepper: {\n    stepsLabel: 'Kroki',\n    optional: 'opcjonalny',\n    stepCompleted: 'ukończony',\n  },\n  tag: {\n    remove: 'Usuń',\n  },\n  timePicker: {\n    placeholder: 'Wybierz godzinę…',\n    dialogLabel: 'Wybierz godzinę',\n    clear: 'Wyczyść godzinę',\n    hoursLabel: 'Godziny',\n    minutesLabel: 'Minuty',\n    secondsLabel: 'Sekundy',\n    incrementHours: 'Zwiększ godziny',\n    decrementHours: 'Zmniejsz godziny',\n    incrementMinutes: 'Zwiększ minuty',\n    decrementMinutes: 'Zmniejsz minuty',\n    incrementSeconds: 'Zwiększ sekundy',\n    decrementSeconds: 'Zmniejsz sekundy',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Zamknij',\n  },\n  transferList: {\n    sourceLabel: 'Dostępne',\n    targetLabel: 'Wybrane',\n    controlsLabel: 'Sterowanie przenoszeniem',\n    moveSelectedToTarget: 'Przenieś zaznaczone do celu',\n    moveAllToTarget: 'Przenieś wszystko do celu',\n    moveSelectedToSource: 'Przenieś zaznaczone do źródła',\n    moveAllToSource: 'Przenieś wszystko do źródła',\n    empty: 'Brak elementów',\n    moved: (count, listLabel) => `Przeniesiono ${count} do listy „${listLabel}”`,\n  },\n  validation: {\n    required: 'To pole jest wymagane',\n    email: 'Podaj prawidłowy adres e-mail',\n    min: min => `Musi wynosić co najmniej ${min}`,\n    max: max => `Może wynosić najwyżej ${max}`,\n    minlength: length => `Musi mieć co najmniej ${length} znaków`,\n    maxlength: length => `Może mieć najwyżej ${length} znaków`,\n    pattern: 'Nieprawidłowy format',\n    invalid: 'Nieprawidłowa wartość',\n  },\n  wordmark: {\n    overline: 'zaprojektowane przez',\n    tagline: 'elegancki projekt stron',\n  },\n};\n\nexport const pl: EagamiLocaleBundle = {\n  locale: 'pl',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Brazilian Portuguese messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Dispensar',\n  },\n  autocomplete: {\n    empty: 'Nenhum resultado',\n  },\n  avatarEditor: {\n    upload: 'Enviar imagem',\n    dropzone: 'Solte a imagem ou clique para escolher',\n    canvas:\n      'Pré-visualização da imagem, arraste ou use as setas para deslocar, o controle deslizante para ampliar',\n    canvasInstructions:\n      'Use as setas para mover a imagem, mais e menos para ajustar o zoom, e Enter ou Espaço para escolher outra foto',\n    change: 'Trocar foto',\n    revert: 'Reverter ao original',\n    zoomOut: 'Diminuir zoom',\n    zoom: 'Zoom',\n    zoomIn: 'Aumentar zoom',\n    remove: 'Remover imagem',\n    invalidType: 'O arquivo deve ser uma imagem',\n    tooLarge: (maxMb: number) => `O arquivo excede o limite de ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Trilha de navegação',\n  },\n  codeInput: {\n    groupLabel: length => `Código de verificação, ${length} dígitos`,\n    digitLabel: (index, length) => `Dígito ${index} de ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Paleta de comandos',\n    searchPlaceholder: 'Digite um comando ou pesquise…',\n    empty: 'Nenhum resultado encontrado',\n  },\n  colorPicker: {\n    dialogLabel: 'Escolher cor',\n    placeholder: 'Escolha uma cor…',\n    clear: 'Limpar cor',\n    hue: 'Matiz',\n    saturationAndValue: 'Saturação e valor',\n    saturationAndValueStatus: (saturation, value) =>\n      `Saturação ${saturation}%, brilho ${value}%`,\n    alpha: 'Alfa',\n    eyedropper: 'Capturar da tela',\n    presets: 'Predefinições',\n    toggleFormat: 'Alternar formato de entrada',\n  },\n  dataTable: {\n    noData: 'Nenhum dado disponível',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '.',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Selecione a data…',\n    dialogLabel: 'Escolher data',\n    clear: 'Limpar data',\n    previousYear: 'Ano anterior',\n    previousMonth: 'Mês anterior',\n    nextMonth: 'Próximo mês',\n    nextYear: 'Próximo ano',\n    today: 'Hoje',\n    weekdaysShort: ['dom.', 'seg.', 'ter.', 'qua.', 'qui.', 'sex.', 'sáb.'],\n    months: [\n      'janeiro',\n      'fevereiro',\n      'março',\n      'abril',\n      'maio',\n      'junho',\n      'julho',\n      'agosto',\n      'setembro',\n      'outubro',\n      'novembro',\n      'dezembro',\n    ],\n  },\n  dialog: {\n    close: 'Fechar diálogo',\n  },\n  drawer: {\n    close: 'Fechar painel',\n  },\n  dropdown: {\n    placeholder: 'Selecione…',\n  },\n  fileUploader: {\n    prompt: 'Clique ou arraste arquivos aqui para enviar',\n    promptSingle: 'Clique ou arraste um arquivo aqui para enviar',\n    browse: 'Procurar arquivos',\n    removeFile: name => `Remover ${name}`,\n    fileListLabel: 'Arquivos selecionados',\n    constraintsAccept: accept => `Aceitos: ${accept}`,\n    constraintsMaxSize: size => `Máximo ${size} por arquivo`,\n    constraintsMaxFiles: count => `Até ${count} arquivos`,\n    rejectionType: name => `${name} tem um tipo de arquivo não suportado`,\n    rejectionSize: (name, max) => `${name} excede o limite de ${max}`,\n    rejectionCount: max => `Somente ${max} arquivos podem ser selecionados`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Mostrar senha',\n    hidePassword: 'Ocultar senha',\n    clear: 'Limpar',\n  },\n  menu: {\n    label: 'Menu',\n  },\n  multiSelect: {\n    dialogLabel: 'Escolher opções',\n    placeholder: 'Selecione…',\n    searchPlaceholder: 'Pesquisar…',\n    searchEmpty: 'Nenhuma correspondência',\n    selectAll: 'Selecionar tudo',\n    clearAll: 'Limpar seleção',\n    removeOption: label => `Remover ${label}`,\n    selectedCount: count => `${count} selecionado(s)`,\n    create: text => `Criar “${text}”`,\n  },\n  paginator: {\n    label: 'Paginação',\n    rowsPerPage: 'Linhas por página:',\n    range: (start, end, total) => `${start}–${end} de ${total}`,\n    previousPage: 'Página anterior',\n    nextPage: 'Próxima página',\n    page: page => `Ir para a página ${page}`,\n  },\n  progressBar: {\n    label: 'Progresso',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Valor mínimo',\n    highThumbLabel: 'Valor máximo',\n  },\n  rating: {\n    label: 'Avaliação',\n    valueLabel: (value, max) => `${value} de ${max}`,\n    clear: 'Limpar avaliação',\n  },\n  spinner: {\n    label: 'Carregando',\n  },\n  stepper: {\n    stepsLabel: 'Etapas',\n    optional: 'opcional',\n    stepCompleted: 'concluída',\n  },\n  tag: {\n    remove: 'Remover',\n  },\n  timePicker: {\n    placeholder: 'Selecione o horário…',\n    dialogLabel: 'Escolher horário',\n    clear: 'Limpar horário',\n    hoursLabel: 'Horas',\n    minutesLabel: 'Minutos',\n    secondsLabel: 'Segundos',\n    incrementHours: 'Aumentar horas',\n    decrementHours: 'Diminuir horas',\n    incrementMinutes: 'Aumentar minutos',\n    decrementMinutes: 'Diminuir minutos',\n    incrementSeconds: 'Aumentar segundos',\n    decrementSeconds: 'Diminuir segundos',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Dispensar',\n  },\n  transferList: {\n    sourceLabel: 'Disponíveis',\n    targetLabel: 'Selecionados',\n    controlsLabel: 'Controles de transferência',\n    moveSelectedToTarget: 'Mover selecionados para o destino',\n    moveAllToTarget: 'Mover todos para o destino',\n    moveSelectedToSource: 'Mover selecionados para a origem',\n    moveAllToSource: 'Mover todos para a origem',\n    empty: 'Nenhum item',\n    moved: (count, listLabel) => `Movidos para ${listLabel}: ${count}`,\n  },\n  validation: {\n    required: 'Este campo é obrigatório',\n    email: 'Insira um e-mail válido',\n    min: min => `Deve ser no mínimo ${min}`,\n    max: max => `Deve ser no máximo ${max}`,\n    minlength: length => `Deve ter pelo menos ${length} caracteres`,\n    maxlength: length => `Deve ter no máximo ${length} caracteres`,\n    pattern: 'Formato inválido',\n    invalid: 'Valor inválido',\n  },\n  wordmark: {\n    overline: 'projetado por',\n    tagline: 'web design elegante',\n  },\n};\n\nexport const ptBR: EagamiLocaleBundle = {\n  locale: 'pt-BR',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Russian messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Закрыть',\n  },\n  autocomplete: {\n    empty: 'Нет результатов',\n  },\n  avatarEditor: {\n    upload: 'Загрузить изображение',\n    dropzone: 'Перетащите изображение или нажмите, чтобы выбрать',\n    canvas:\n      'Предпросмотр изображения, перетаскивайте или используйте стрелки для перемещения, ползунок для масштабирования',\n    canvasInstructions:\n      'Используйте стрелки, чтобы перемещать изображение, плюс и минус для масштабирования, а Enter или пробел, чтобы выбрать другую фотографию',\n    change: 'Изменить фото',\n    revert: 'Вернуть к исходному',\n    zoomOut: 'Уменьшить',\n    zoom: 'Масштаб',\n    zoomIn: 'Увеличить',\n    remove: 'Удалить изображение',\n    invalidType: 'Файл должен быть изображением',\n    tooLarge: (maxMb: number) => `Файл превышает лимит ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Навигационная цепочка',\n  },\n  codeInput: {\n    groupLabel: length => `Код подтверждения, ${length} цифр`,\n    digitLabel: (index, length) => `Цифра ${index} из ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Палитра команд',\n    searchPlaceholder: 'Введите команду или выполните поиск…',\n    empty: 'Ничего не найдено',\n  },\n  colorPicker: {\n    dialogLabel: 'Выбор цвета',\n    placeholder: 'Выберите цвет…',\n    clear: 'Очистить цвет',\n    hue: 'Оттенок',\n    saturationAndValue: 'Насыщенность и яркость',\n    saturationAndValueStatus: (saturation, value) =>\n      `Насыщенность ${saturation}%, яркость ${value}%`,\n    alpha: 'Прозрачность',\n    eyedropper: 'Выбрать с экрана',\n    presets: 'Предустановки',\n    toggleFormat: 'Сменить формат ввода',\n  },\n  dataTable: {\n    noData: 'Нет доступных данных',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '\\u00A0',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Выберите дату…',\n    dialogLabel: 'Выбор даты',\n    clear: 'Очистить дату',\n    previousYear: 'Предыдущий год',\n    previousMonth: 'Предыдущий месяц',\n    nextMonth: 'Следующий месяц',\n    nextYear: 'Следующий год',\n    today: 'Сегодня',\n    weekdaysShort: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n    months: [\n      'январь',\n      'февраль',\n      'март',\n      'апрель',\n      'май',\n      'июнь',\n      'июль',\n      'август',\n      'сентябрь',\n      'октябрь',\n      'ноябрь',\n      'декабрь',\n    ],\n  },\n  dialog: {\n    close: 'Закрыть диалог',\n  },\n  drawer: {\n    close: 'Закрыть панель',\n  },\n  dropdown: {\n    placeholder: 'Выберите…',\n  },\n  fileUploader: {\n    prompt: 'Нажмите или перетащите файлы сюда для загрузки',\n    promptSingle: 'Нажмите или перетащите файл сюда для загрузки',\n    browse: 'Обзор файлов',\n    removeFile: name => `Удалить ${name}`,\n    fileListLabel: 'Выбранные файлы',\n    constraintsAccept: accept => `Допустимо: ${accept}`,\n    constraintsMaxSize: size => `Максимум ${size} на файл`,\n    constraintsMaxFiles: count => `До ${count} файлов`,\n    rejectionType: name => `${name} имеет неподдерживаемый тип файла`,\n    rejectionSize: (name, max) => `${name} превышает лимит ${max}`,\n    rejectionCount: max => `Можно выбрать только ${max} файлов`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Показать пароль',\n    hidePassword: 'Скрыть пароль',\n    clear: 'Очистить',\n  },\n  menu: {\n    label: 'Меню',\n  },\n  multiSelect: {\n    dialogLabel: 'Выбор вариантов',\n    placeholder: 'Выберите…',\n    searchPlaceholder: 'Поиск…',\n    searchEmpty: 'Нет совпадений',\n    selectAll: 'Выбрать все',\n    clearAll: 'Очистить выбор',\n    removeOption: label => `Удалить ${label}`,\n    selectedCount: count => `Выбрано: ${count}`,\n    create: text => `Создать «${text}»`,\n  },\n  paginator: {\n    label: 'Постраничная навигация',\n    rowsPerPage: 'Строк на странице:',\n    range: (start, end, total) => `${start}–${end} из ${total}`,\n    previousPage: 'Предыдущая страница',\n    nextPage: 'Следующая страница',\n    page: page => `Перейти на страницу ${page}`,\n  },\n  progressBar: {\n    label: 'Прогресс',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Минимальное значение',\n    highThumbLabel: 'Максимальное значение',\n  },\n  rating: {\n    label: 'Оценка',\n    valueLabel: (value, max) => `${value} из ${max}`,\n    clear: 'Очистить оценку',\n  },\n  spinner: {\n    label: 'Загрузка',\n  },\n  stepper: {\n    stepsLabel: 'Шаги',\n    optional: 'необязательно',\n    stepCompleted: 'завершено',\n  },\n  tag: {\n    remove: 'Удалить',\n  },\n  timePicker: {\n    placeholder: 'Выберите время…',\n    dialogLabel: 'Выбор времени',\n    clear: 'Очистить время',\n    hoursLabel: 'Часы',\n    minutesLabel: 'Минуты',\n    secondsLabel: 'Секунды',\n    incrementHours: 'Увеличить часы',\n    decrementHours: 'Уменьшить часы',\n    incrementMinutes: 'Увеличить минуты',\n    decrementMinutes: 'Уменьшить минуты',\n    incrementSeconds: 'Увеличить секунды',\n    decrementSeconds: 'Уменьшить секунды',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Закрыть',\n  },\n  transferList: {\n    sourceLabel: 'Доступно',\n    targetLabel: 'Выбрано',\n    controlsLabel: 'Элементы управления переносом',\n    moveSelectedToTarget: 'Переместить выбранное вправо',\n    moveAllToTarget: 'Переместить все вправо',\n    moveSelectedToSource: 'Переместить выбранное влево',\n    moveAllToSource: 'Переместить все влево',\n    empty: 'Нет элементов',\n    moved: (count, listLabel) => `Перемещено ${count} в список «${listLabel}»`,\n  },\n  validation: {\n    required: 'Это поле обязательно для заполнения',\n    email: 'Введите действительный адрес электронной почты',\n    min: min => `Должно быть не менее ${min}`,\n    max: max => `Должно быть не более ${max}`,\n    minlength: length => `Должно содержать не менее ${length} символов`,\n    maxlength: length => `Должно содержать не более ${length} символов`,\n    pattern: 'Неверный формат',\n    invalid: 'Недопустимое значение',\n  },\n  wordmark: {\n    overline: 'дизайн от',\n    tagline: 'элегантный веб-дизайн',\n  },\n};\n\nexport const ru: EagamiLocaleBundle = {\n  locale: 'ru',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Ukrainian messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: 'Закрити',\n  },\n  autocomplete: {\n    empty: 'Немає результатів',\n  },\n  avatarEditor: {\n    upload: 'Завантажити зображення',\n    dropzone: 'Перетягніть зображення або натисніть, щоб вибрати',\n    canvas:\n      'Попередній перегляд зображення, перетягуйте або використовуйте стрілки для переміщення, повзунок для масштабування',\n    canvasInstructions:\n      'Використовуйте стрілки, щоб переміщувати зображення, плюс і мінус, щоб змінювати масштаб, а Enter або пробіл, щоб вибрати інше фото',\n    change: 'Змінити фото',\n    revert: 'Повернути до оригіналу',\n    zoomOut: 'Зменшити',\n    zoom: 'Масштаб',\n    zoomIn: 'Збільшити',\n    remove: 'Видалити зображення',\n    invalidType: 'Файл має бути зображенням',\n    tooLarge: (maxMb: number) => `Файл перевищує ліміт ${maxMb} MB`,\n  },\n  breadcrumbs: {\n    label: 'Навігаційний ланцюжок',\n  },\n  codeInput: {\n    groupLabel: length => `Код підтвердження, ${length} цифр`,\n    digitLabel: (index, length) => `Цифра ${index} з ${length}`,\n  },\n  commandPalette: {\n    dialogLabel: 'Палітра команд',\n    searchPlaceholder: 'Введіть команду або шукайте…',\n    empty: 'Нічого не знайдено',\n  },\n  colorPicker: {\n    dialogLabel: 'Виберіть колір',\n    placeholder: 'Виберіть колір…',\n    clear: 'Очистити колір',\n    hue: 'Відтінок',\n    saturationAndValue: 'Насиченість і яскравість',\n    saturationAndValueStatus: (saturation, value) =>\n      `Насиченість ${saturation}%, яскравість ${value}%`,\n    alpha: 'Прозорість',\n    eyedropper: 'Вибрати з екрана',\n    presets: 'Шаблони',\n    toggleFormat: 'Змінити формат вводу',\n  },\n  dataTable: {\n    noData: 'Дані відсутні',\n  },\n  numberFormat: {\n    decimal: ',',\n    group: '\\u00A0',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: 'Виберіть дату…',\n    dialogLabel: 'Виберіть дату',\n    clear: 'Очистити дату',\n    previousYear: 'Попередній рік',\n    previousMonth: 'Попередній місяць',\n    nextMonth: 'Наступний місяць',\n    nextYear: 'Наступний рік',\n    today: 'Сьогодні',\n    weekdaysShort: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n    months: [\n      'січень',\n      'лютий',\n      'березень',\n      'квітень',\n      'травень',\n      'червень',\n      'липень',\n      'серпень',\n      'вересень',\n      'жовтень',\n      'листопад',\n      'грудень',\n    ],\n  },\n  dialog: {\n    close: 'Закрити діалог',\n  },\n  drawer: {\n    close: 'Закрити панель',\n  },\n  dropdown: {\n    placeholder: 'Виберіть…',\n  },\n  fileUploader: {\n    prompt: 'Натисніть або перетягніть файли сюди для завантаження',\n    promptSingle: 'Натисніть або перетягніть файл сюди для завантаження',\n    browse: 'Огляд файлів',\n    removeFile: name => `Видалити ${name}`,\n    fileListLabel: 'Вибрані файли',\n    constraintsAccept: accept => `Дозволено: ${accept}`,\n    constraintsMaxSize: size => `Не більше ${size} на файл`,\n    constraintsMaxFiles: count => `До ${count} файлів`,\n    rejectionType: name => `${name} має непідтримуваний тип файлу`,\n    rejectionSize: (name, max) => `${name} перевищує ліміт ${max}`,\n    rejectionCount: max => `Можна вибрати лише ${max} файлів`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: 'Показати пароль',\n    hidePassword: 'Приховати пароль',\n    clear: 'Очистити',\n  },\n  menu: {\n    label: 'Меню',\n  },\n  multiSelect: {\n    dialogLabel: 'Виберіть варіанти',\n    placeholder: 'Виберіть…',\n    searchPlaceholder: 'Пошук…',\n    searchEmpty: 'Немає збігів',\n    selectAll: 'Вибрати все',\n    clearAll: 'Очистити вибір',\n    removeOption: label => `Видалити ${label}`,\n    selectedCount: count => `Вибрано: ${count}`,\n    create: text => `Створити «${text}»`,\n  },\n  paginator: {\n    label: 'Нумерація сторінок',\n    rowsPerPage: 'Рядків на сторінці:',\n    range: (start, end, total) => `${start}–${end} з ${total}`,\n    previousPage: 'Попередня сторінка',\n    nextPage: 'Наступна сторінка',\n    page: page => `Перейти на сторінку ${page}`,\n  },\n  progressBar: {\n    label: 'Прогрес',\n  },\n  rangeSlider: {\n    lowThumbLabel: 'Мінімальне значення',\n    highThumbLabel: 'Максимальне значення',\n  },\n  rating: {\n    label: 'Оцінка',\n    valueLabel: (value, max) => `${value} з ${max}`,\n    clear: 'Очистити оцінку',\n  },\n  spinner: {\n    label: 'Завантаження',\n  },\n  stepper: {\n    stepsLabel: 'Кроки',\n    optional: 'необов’язково',\n    stepCompleted: 'завершено',\n  },\n  tag: {\n    remove: 'Видалити',\n  },\n  timePicker: {\n    placeholder: 'Виберіть час…',\n    dialogLabel: 'Виберіть час',\n    clear: 'Очистити час',\n    hoursLabel: 'Години',\n    minutesLabel: 'Хвилини',\n    secondsLabel: 'Секунди',\n    incrementHours: 'Збільшити години',\n    decrementHours: 'Зменшити години',\n    incrementMinutes: 'Збільшити хвилини',\n    decrementMinutes: 'Зменшити хвилини',\n    incrementSeconds: 'Збільшити секунди',\n    decrementSeconds: 'Зменшити секунди',\n    amLabel: 'AM',\n    pmLabel: 'PM',\n  },\n  toast: {\n    dismiss: 'Закрити',\n  },\n  transferList: {\n    sourceLabel: 'Доступні',\n    targetLabel: 'Вибрані',\n    controlsLabel: 'Елементи керування перенесенням',\n    moveSelectedToTarget: 'Перенести вибрані вправо',\n    moveAllToTarget: 'Перенести все вправо',\n    moveSelectedToSource: 'Перенести вибрані вліво',\n    moveAllToSource: 'Перенести все вліво',\n    empty: 'Немає елементів',\n    moved: (count, listLabel) => `Переміщено ${count} до списку «${listLabel}»`,\n  },\n  validation: {\n    required: 'Це поле обов’язкове',\n    email: 'Введіть дійсну електронну адресу',\n    min: min => `Має бути не менше ${min}`,\n    max: max => `Має бути не більше ${max}`,\n    minlength: length => `Має містити щонайменше ${length} символів`,\n    maxlength: length => `Має містити щонайбільше ${length} символів`,\n    pattern: 'Неправильний формат',\n    invalid: 'Неправильне значення',\n  },\n  wordmark: {\n    overline: 'дизайн від',\n    tagline: 'елегантний веб-дизайн',\n  },\n};\n\nexport const uk: EagamiLocaleBundle = {\n  locale: 'uk',\n  messages,\n};\n","import type { EagamiLocaleBundle, EagamiMessages } from '../i18n.types';\n\n/** Simplified Chinese messages. */\nconst messages: EagamiMessages = {\n  alert: {\n    dismiss: '关闭',\n  },\n  autocomplete: {\n    empty: '无结果',\n  },\n  avatarEditor: {\n    upload: '上传图片',\n    dropzone: '拖放图片或点击选择',\n    canvas: '图片预览，拖动或使用方向键平移，使用滑块缩放',\n    canvasInstructions:\n      '使用方向键移动图片，加号和减号缩放，按 Enter 或空格键选择其他照片',\n    change: '更换照片',\n    revert: '恢复原图',\n    zoomOut: '缩小',\n    zoom: '缩放',\n    zoomIn: '放大',\n    remove: '移除图片',\n    invalidType: '文件必须是图片',\n    tooLarge: (maxMb: number) => `文件超过 ${maxMb} MB 限制`,\n  },\n  breadcrumbs: {\n    label: '面包屑导航',\n  },\n  codeInput: {\n    groupLabel: length => `验证码，共 ${length} 位`,\n    digitLabel: (index, length) => `第 ${index} 位，共 ${length} 位`,\n  },\n  commandPalette: {\n    dialogLabel: '命令面板',\n    searchPlaceholder: '输入命令或搜索…',\n    empty: '未找到结果',\n  },\n  colorPicker: {\n    dialogLabel: '选择颜色',\n    placeholder: '选择颜色…',\n    clear: '清除颜色',\n    hue: '色相',\n    saturationAndValue: '饱和度和明度',\n    saturationAndValueStatus: (saturation, value) =>\n      `饱和度 ${saturation}%，明度 ${value}%`,\n    alpha: '透明度',\n    eyedropper: '从屏幕取色',\n    presets: '预设',\n    toggleFormat: '切换输入格式',\n  },\n  dataTable: {\n    noData: '暂无数据',\n  },\n  numberFormat: {\n    decimal: '.',\n    group: ',',\n    grouping: [3],\n  },\n  datePicker: {\n    placeholder: '选择日期…',\n    dialogLabel: '选择日期',\n    clear: '清除日期',\n    previousYear: '上一年',\n    previousMonth: '上个月',\n    nextMonth: '下个月',\n    nextYear: '下一年',\n    today: '今天',\n    weekdaysShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n    months: [\n      '一月',\n      '二月',\n      '三月',\n      '四月',\n      '五月',\n      '六月',\n      '七月',\n      '八月',\n      '九月',\n      '十月',\n      '十一月',\n      '十二月',\n    ],\n  },\n  dialog: {\n    close: '关闭对话框',\n  },\n  drawer: {\n    close: '关闭面板',\n  },\n  dropdown: {\n    placeholder: '请选择…',\n  },\n  fileUploader: {\n    prompt: '点击或拖动文件到此处上传',\n    promptSingle: '点击或拖动文件到此处上传',\n    browse: '浏览文件',\n    removeFile: name => `移除 ${name}`,\n    fileListLabel: '已选文件',\n    constraintsAccept: accept => `支持格式：${accept}`,\n    constraintsMaxSize: size => `每个文件最大 ${size}`,\n    constraintsMaxFiles: count => `最多 ${count} 个文件`,\n    rejectionType: name => `${name} 的文件类型不受支持`,\n    rejectionSize: (name, max) => `${name} 超过了 ${max} 的限制`,\n    rejectionCount: max => `最多只能选择 ${max} 个文件`,\n    bytesUnit: { b: 'B', kb: 'KB', mb: 'MB', gb: 'GB', tb: 'TB' },\n  },\n  input: {\n    showPassword: '显示密码',\n    hidePassword: '隐藏密码',\n    clear: '清除',\n  },\n  menu: {\n    label: '菜单',\n  },\n  multiSelect: {\n    dialogLabel: '选择选项',\n    placeholder: '请选择…',\n    searchPlaceholder: '搜索…',\n    searchEmpty: '无匹配项',\n    selectAll: '全选',\n    clearAll: '清除选择',\n    removeOption: label => `移除 ${label}`,\n    selectedCount: count => `已选择 ${count} 项`,\n    create: text => `创建“${text}”`,\n  },\n  paginator: {\n    label: '分页',\n    rowsPerPage: '每页行数：',\n    range: (start, end, total) => `共 ${total} 项中的 ${start}–${end}`,\n    previousPage: '上一页',\n    nextPage: '下一页',\n    page: page => `转到第 ${page} 页`,\n  },\n  progressBar: {\n    label: '进度',\n  },\n  rangeSlider: {\n    lowThumbLabel: '最小值',\n    highThumbLabel: '最大值',\n  },\n  rating: {\n    label: '评分',\n    valueLabel: (value, max) => `${value} / ${max}`,\n    clear: '清除评分',\n  },\n  spinner: {\n    label: '加载中',\n  },\n  stepper: {\n    stepsLabel: '步骤',\n    optional: '可选',\n    stepCompleted: '已完成',\n  },\n  tag: {\n    remove: '移除',\n  },\n  timePicker: {\n    placeholder: '选择时间…',\n    dialogLabel: '选择时间',\n    clear: '清除时间',\n    hoursLabel: '时',\n    minutesLabel: '分',\n    secondsLabel: '秒',\n    incrementHours: '增加小时',\n    decrementHours: '减少小时',\n    incrementMinutes: '增加分钟',\n    decrementMinutes: '减少分钟',\n    incrementSeconds: '增加秒数',\n    decrementSeconds: '减少秒数',\n    amLabel: '上午',\n    pmLabel: '下午',\n  },\n  toast: {\n    dismiss: '关闭',\n  },\n  transferList: {\n    sourceLabel: '可选',\n    targetLabel: '已选',\n    controlsLabel: '穿梭控件',\n    moveSelectedToTarget: '将所选项移至右侧',\n    moveAllToTarget: '将全部移至右侧',\n    moveSelectedToSource: '将所选项移至左侧',\n    moveAllToSource: '将全部移至左侧',\n    empty: '无项目',\n    moved: (count, listLabel) => `已将 ${count} 项移至 ${listLabel}`,\n  },\n  validation: {\n    required: '此字段为必填项',\n    email: '请输入有效的电子邮件地址',\n    min: min => `不能小于 ${min}`,\n    max: max => `不能大于 ${max}`,\n    minlength: length => `至少需要 ${length} 个字符`,\n    maxlength: length => `最多 ${length} 个字符`,\n    pattern: '格式无效',\n    invalid: '值无效',\n  },\n  wordmark: {\n    overline: '设计出品',\n    tagline: '优雅的网页设计',\n  },\n};\n\nexport const zhCN: EagamiLocaleBundle = {\n  locale: 'zh-CN',\n  messages,\n};\n","import type { EagamiLocaleBundle } from '../i18n.types';\nimport { ar } from './ar';\nimport { de } from './de';\nimport { el } from './el';\nimport { en } from './en';\nimport { esES } from './es-ES';\nimport { frFR } from './fr-FR';\nimport { he } from './he';\nimport { hi } from './hi';\nimport { is } from './is';\nimport { nl } from './nl';\nimport { pl } from './pl';\nimport { ptBR } from './pt-BR';\nimport { ru } from './ru';\nimport { uk } from './uk';\nimport { zhCN } from './zh-CN';\n\nexport { ar, de, el, en, esES, frFR, he, hi, is, nl, pl, ptBR, ru, uk, zhCN };\n\n/**\n * Every built-in locale bundle. Registering this pulls all shipped languages\n * into the bundle; import individual locales instead to keep it lean.\n */\nexport const EAGAMI_ALL_LOCALES: readonly EagamiLocaleBundle[] = [\n  en,\n  frFR,\n  el,\n  pl,\n  esES,\n  de,\n  ptBR,\n  zhCN,\n  is,\n  nl,\n  uk,\n  ru,\n  he,\n  ar,\n  hi,\n];\n","import { Injectable, type Signal, computed, effect, inject, signal } from '@angular/core';\n\nimport { _eagamiI18nLocaleOverride } from './_storybook-locale-override';\nimport { EAGAMI_I18N_CONFIG } from './i18n.token';\nimport type { EagamiLocale, EagamiMessages, EagamiMessagesOverride } from './i18n.types';\nimport { en } from './messages';\n\n/** Shallow-merges per-component override groups over a complete base dictionary. */\nfunction applyOverrides(\n  base: EagamiMessages,\n  overrides: EagamiMessagesOverride,\n): EagamiMessages {\n  const merged = {} as EagamiMessages;\n  for (const key of Object.keys(base) as (keyof EagamiMessages)[]) {\n    merged[key] = { ...base[key], ...overrides[key] } as EagamiMessages[never];\n  }\n  return merged;\n}\n\n/**\n * Holds the active locale and resolves the matching message dictionary for\n * every Eagami UI component. English is always available; other languages are\n * either registered eagerly via `provideEagamiUi({ locales })` or fetched on\n * demand via `provideEagamiUi({ localeLoaders })`. The `locale` signal is\n * reactive, so changing it at runtime re-renders all components. Unknown or\n * unregistered locales fall back to English.\n */\n@Injectable({ providedIn: 'root' })\nexport class EagamiI18nService {\n  private readonly config = inject(EAGAMI_I18N_CONFIG, { optional: true });\n\n  // English is baked in; consumer-registered locales extend it. A locale that\n  // was never registered resolves to English rather than to missing strings.\n  private readonly registered = new Map<EagamiLocale, EagamiMessages>(\n    [en, ...(this.config?.locales ?? [])].map(\n      (bundle): [EagamiLocale, EagamiMessages] => [bundle.locale, bundle.messages],\n    ),\n  );\n\n  private readonly loading = new Map<EagamiLocale, Promise<void>>();\n  private pendingSwitch: EagamiLocale | null = null;\n\n  private readonly _locale = signal<EagamiLocale>(this.resolveInitialLocale());\n\n  /** The currently active locale. Read it reactively or call `setLocale()`. */\n  readonly locale: Signal<EagamiLocale> = this._locale.asReadonly();\n\n  constructor() {\n    // A configured initial locale that is only available through a loader\n    // starts on the English fallback and switches as soon as it arrives\n    const want = _eagamiI18nLocaleOverride() ?? this.config?.locale;\n    if (want && !this.registered.has(want) && this.hasLoader(want)) {\n      void this.setLocale(want);\n    }\n\n    // Pick up tooling-driven locale changes (Storybook globals dropdown); the\n    // override signal is null in production, so this effect is a no-op there.\n    effect(() => {\n      const override = _eagamiI18nLocaleOverride();\n      if (\n        override !== null &&\n        (this.registered.has(override) || this.hasLoader(override))\n      ) {\n        void this.setLocale(override);\n      }\n    });\n  }\n\n  /** The resolved message dictionary for the active locale. */\n  readonly messages: Signal<EagamiMessages> = computed(() => {\n    const base = this.registered.get(this._locale()) ?? en.messages;\n    const overrides = this.config?.messages;\n    return overrides ? applyOverrides(base, overrides) : base;\n  });\n\n  /**\n   * Switches the active locale. A registered locale applies synchronously; a\n   * locale with a lazy loader is fetched first, then applied, with the newest\n   * request superseding any in-flight one. Falls back to English when the\n   * locale is neither registered nor loadable, or when its loader fails.\n   * Resolves once the switch has been applied (or superseded).\n   */\n  async setLocale(locale: EagamiLocale): Promise<void> {\n    if (this.registered.has(locale)) {\n      this.pendingSwitch = null;\n      this._locale.set(locale);\n      return;\n    }\n    if (!this.hasLoader(locale)) {\n      this.pendingSwitch = null;\n      this._locale.set('en');\n      return;\n    }\n    this.pendingSwitch = locale;\n    try {\n      await this.loadLocale(locale);\n    } catch {\n      if (this.pendingSwitch === locale) {\n        this.pendingSwitch = null;\n        this._locale.set('en');\n      }\n      return;\n    }\n    if (this.pendingSwitch === locale) {\n      this.pendingSwitch = null;\n      this._locale.set(locale);\n    }\n  }\n\n  /**\n   * Fetches and registers a locale's dictionary through its configured loader\n   * without switching to it, so a later `setLocale()` applies instantly.\n   * Resolves immediately when the locale is already registered or has no\n   * loader. Rejects when the loader fails; the failure is not cached, so a\n   * retry fetches again.\n   */\n  loadLocale(locale: EagamiLocale): Promise<void> {\n    if (this.registered.has(locale)) {\n      return Promise.resolve();\n    }\n    const loader = this.config?.localeLoaders?.[locale];\n    if (!loader) {\n      return Promise.resolve();\n    }\n    let pending = this.loading.get(locale);\n    if (!pending) {\n      pending = loader().then(\n        bundle => {\n          this.loading.delete(locale);\n          this.registered.set(locale, bundle.messages);\n        },\n        (error: unknown) => {\n          this.loading.delete(locale);\n          throw error;\n        },\n      );\n      this.loading.set(locale, pending);\n    }\n    return pending;\n  }\n\n  private hasLoader(locale: EagamiLocale): boolean {\n    return this.config?.localeLoaders?.[locale] !== undefined;\n  }\n\n  private resolveInitialLocale(): EagamiLocale {\n    const want = _eagamiI18nLocaleOverride() ?? this.config?.locale ?? 'en';\n    return this.registered.has(want) ? want : 'en';\n  }\n}\n","// Excludes U+202F and U+00A0 so the substitution is idempotent\nconst SPACE_BEFORE_HIGH_PUNCT = / ([!?:;»])/g;\n\nconst SPACE_AFTER_OPEN_GUILLEMET = /(«) /g;\n\n/**\n * Replaces regular spaces with U+202F (narrow non-breaking space) in the\n * positions where standard French typography requires \"espace fine insécable\":\n * before `!` `?` `:` `;` `»`, and after `«`. This is what publishers like the\n * Imprimerie nationale and most French press follow, and it prevents the\n * punctuation from wrapping onto its own line.\n *\n * Opt-in: the library does not auto-apply this to anything. Components render\n * whatever string they receive. Apply this to consumer-supplied content (user\n * input, content from your CMS, etc.) that you want to format correctly for a\n * French audience. The function is idempotent: already-converted text passes\n * through unchanged.\n *\n * Do not apply it to URLs, CSS, JSON, code snippets, or other technical\n * strings where `:` or `?` have non-prose meaning.\n *\n * @example\n * frenchSpacing('Lignes par page :');\n * // returns 'Lignes par page\\u202F:'\n *\n * frenchSpacing(\"Qu'est-ce que c'est ?\");\n * // returns \"Qu'est-ce que c'est\\u202F?\"\n *\n * frenchSpacing('Il a dit « bonjour ».');\n * // returns 'Il a dit «\\u202Fbonjour\\u202F».'\n */\nexport function frenchSpacing(text: string): string {\n  return text\n    .replace(SPACE_BEFORE_HIGH_PUNCT, ' $1')\n    .replace(SPACE_AFTER_OPEN_GUILLEMET, '$1 ');\n}\n","import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\n\nimport { type EaSize } from '../sizes';\n\n/** Heading level exposed by each item's header for assistive technology. */\nexport type AccordionHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\n/** Visual size of the accordion, shared by all of its items. */\nexport type AccordionSize = EaSize;\n\n/**\n * Container for expandable content sections. By default only one item can be\n * open at a time; set `multi` to allow several to stay expanded together.\n * Provides a built-in chevron animation and supports per-item disabling.\n */\n@Component({\n  selector: 'ea-accordion',\n  template: ` <div class=\"ea-accordion\"><ng-content /></div> `,\n  styleUrl: './accordion.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionComponent {\n  readonly multi = input<boolean>(false);\n  /** Visual size of the accordion; every item inherits it. */\n  readonly size = input<AccordionSize>('md');\n  /** Heading level (1-6) applied to every item's header wrapper. */\n  readonly headingLevel = input<AccordionHeadingLevel>(3);\n\n  readonly expandedItems = signal<Set<string>>(new Set());\n\n  toggle(value: string): void {\n    const current = this.expandedItems();\n    const next = new Set(current);\n\n    if (next.has(value)) {\n      next.delete(value);\n    } else {\n      if (!this.multi()) {\n        next.clear();\n      }\n      next.add(value);\n    }\n\n    this.expandedItems.set(next);\n  }\n\n  isExpanded(value: string): boolean {\n    return this.expandedItems().has(value);\n  }\n}\n","import { Directive, HostBinding, type Type, input } from '@angular/core';\n\n/**\n * Primary classification for an icon component. Every icon ships with a single\n * `category` (read off the component's `static readonly category` field) plus\n * a separate `static readonly isBrand` flag for whether it also depicts a\n * recognisable brand mark.\n *\n * `feather`: derived from the upstream Feather Icons set (MIT). Uses Feather's\n *            canonical slug and design.\n * `eagami`:  Eagami UI additions beyond the Feather set: the brand mark, the\n *            basic shape set and household icons, brand-filled variants of\n *            Feather outlines, the coloured brand marks (`isBrand`), and line\n *            icons adapted from Lucide (ISC).\n */\nexport type IconCategory = 'feather' | 'eagami';\n\n/**\n * Shape of the static metadata that every `ea-icon-*` component carries\n * alongside its template. Read these fields directly off the component class\n * (e.g. `GithubIconComponent.tags`) to build catalogues, search indices, or\n * documentation tables without pulling in any other icon as a transitive\n * dependency.\n */\nexport interface IconMeta {\n  readonly slug: string;\n  readonly category: IconCategory;\n  /** True when the icon depicts a recognisable third-party or Eagami brand mark. */\n  readonly isBrand?: boolean;\n  readonly tags: ReadonlyArray<string>;\n}\n\n/** An icon component class augmented with its static metadata. */\nexport type IconComponentType = Type<unknown> & IconMeta;\n\n/**\n * Abstract base class for every `ea-icon-*` component. Provides the shared\n * host bindings that make icons render as inline-flex 1em squares, so\n * individual icon components don't need to repeat the `host: { style: '...' }`\n * config in their `@Component` decorator. Brand icons with their own host\n * bindings (e.g. a colour binding tied to a `brand` input) layer those onto\n * this base via additional `@HostBinding` getters.\n *\n * Feather-derived icons read the `strokeWidth` input via `[attr.stroke-width]`\n * in their SVG template, so consumers can thin or thicken any icon at the\n * call site (e.g. `<ea-icon-star [strokeWidth]=\"1.5\" />`). Subclasses can\n * change the default by setting `static override readonly defaultStrokeWidth`,\n * used by icons whose dense paths read better at a different default\n * (e.g. camera, upload at 1.5).\n */\n@Directive()\nexport abstract class IconComponentBase {\n  @HostBinding('style.display') readonly display = 'inline-flex';\n  @HostBinding('style.width') readonly width = '1em';\n  @HostBinding('style.height') readonly height = '1em';\n\n  static readonly defaultStrokeWidth: number = 2;\n\n  readonly strokeWidth = input<number>(\n    (this.constructor as typeof IconComponentBase).defaultStrokeWidth,\n  );\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevron-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"6 9 12 15 18 9\" />\n    </svg>\n  `,\n})\nexport class ChevronDownIconComponent extends IconComponentBase {\n  static readonly slug = 'chevron-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevron-down',\n    'chevron',\n    'down',\n    'arrow',\n    'expand',\n    'dropdown',\n    'bas',\n    'abajo',\n    'κάτω',\n    'dół',\n  ];\n}\n","const counters = new Map<string, number>();\n\n/**\n * Stable, collision-free element id for label/aria wiring when the consumer\n * doesn't supply one. Counts per prefix (`ea-input-0`, `ea-input-1`) rather than\n * randomising, so the same render order yields the same ids on the server and\n * the client and hydration doesn't mismatch.\n */\nexport function uniqueId(prefix: string): string {\n  const next = counters.get(prefix) ?? 0;\n  counters.set(prefix, next + 1);\n  return `${prefix}-${next}`;\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { ChevronDownIconComponent } from '../icons/chevron-down.component';\nimport { uniqueId } from '../unique-id';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * Single expandable section within an `ea-accordion`. Each item exposes a\n * header button with the supplied `label` and reveals its projected content\n * when expanded. Inherits its size from the parent accordion. Must be\n * rendered inside an `ea-accordion`.\n */\n@Component({\n  selector: 'ea-accordion-item',\n  imports: [ChevronDownIconComponent],\n  templateUrl: './accordion-item.component.html',\n  styleUrl: './accordion-item.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionItemComponent {\n  private readonly accordion = inject(AccordionComponent);\n\n  readonly value = input.required<string>();\n  readonly label = input.required<string>();\n  readonly disabled = input<boolean>(false);\n  readonly id = input<string>(uniqueId('ea-accordion-item'));\n\n  readonly isExpanded = computed(() => this.accordion.isExpanded(this.value()));\n  readonly headingLevel = computed(() => this.accordion.headingLevel());\n  readonly size = computed(() => this.accordion.size());\n\n  toggle(): void {\n    if (this.disabled()) {\n      return;\n    }\n    this.accordion.toggle(this.value());\n  }\n}\n","<div\n  class=\"ea-accordion-item ea-accordion-item--{{ size() }}\"\n  [class.ea-accordion-item--expanded]=\"isExpanded()\"\n  [class.ea-accordion-item--disabled]=\"disabled()\">\n  <div\n    class=\"ea-accordion-item__header\"\n    role=\"heading\"\n    [attr.aria-level]=\"headingLevel()\">\n    <button\n      class=\"ea-accordion-item__trigger\"\n      type=\"button\"\n      [id]=\"id() + '-trigger'\"\n      [attr.aria-expanded]=\"isExpanded()\"\n      [attr.aria-controls]=\"id() + '-content'\"\n      [disabled]=\"disabled()\"\n      (click)=\"toggle()\">\n      <span class=\"ea-accordion-item__label\">{{ label() }}</span>\n      <ea-icon-chevron-down\n        class=\"ea-accordion-item__chevron\"\n        aria-hidden=\"true\" />\n    </button>\n  </div>\n  @if (isExpanded()) {\n    <div\n      class=\"ea-accordion-item__content\"\n      role=\"region\"\n      [id]=\"id() + '-content'\"\n      [attr.aria-labelledby]=\"id() + '-trigger'\">\n      <ng-content />\n    </div>\n  }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-alert-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 16 16\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm-.75 4a.75.75 0 0 1 1.5 0v3.5a.75.75 0 0 1-1.5 0V5zm.75 6.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z\" />\n    </svg>\n  `,\n})\nexport class AlertCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'alert-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'alert-circle',\n    'alert',\n    'circle',\n    'warning',\n    'caution',\n    'notification',\n    'alerte',\n    'avertissement',\n    'alerta',\n    'aviso',\n    'ειδοποίηση',\n    'προσοχή',\n    'alarm',\n    'ostrzeżenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"20 6 9 17 4 12\" />\n    </svg>\n  `,\n})\nexport class CheckIconComponent extends IconComponentBase {\n  static readonly slug = 'check';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'check',\n    'tick',\n    'confirm',\n    'done',\n    'ok',\n    'yes',\n    'coche',\n    'valider',\n    'marca',\n    'confirmar',\n    'τσεκ',\n    'επιβεβαίωση',\n    'zaznacz',\n    'potwierdź',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-info',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"12\"\n        y1=\"16\"\n        x2=\"12\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12.01\"\n        y2=\"8\" />\n    </svg>\n  `,\n})\nexport class InfoIconComponent extends IconComponentBase {\n  static readonly slug = 'info';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'info',\n    'information',\n    'help',\n    'about',\n    'details',\n    'information',\n    'información',\n    'πληροφορίες',\n    'informacje',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-x',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"18\"\n        y1=\"6\"\n        x2=\"6\"\n        y2=\"18\" />\n      <line\n        x1=\"6\"\n        y1=\"6\"\n        x2=\"18\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class XIconComponent extends IconComponentBase {\n  static readonly slug = 'x';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'x',\n    'close',\n    'cancel',\n    'cross',\n    'remove',\n    'exit',\n    'fermer',\n    'cerrar',\n    'κλείσιμο',\n    'άκυρο',\n    'zamknij',\n    'anuluj',\n  ];\n}\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type Type,\n  computed,\n  inject,\n  input,\n  model,\n  output,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { AlertCircleIconComponent } from '../icons/alert-circle.component';\nimport { CheckIconComponent } from '../icons/check.component';\nimport { InfoIconComponent } from '../icons/info.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { type EaSize } from '../sizes';\n\n/** Semantic colour scheme of an alert. Drives icon and palette. */\nexport type AlertVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n\n/** Scales the alert's text, icon, and gap together. */\nexport type AlertSize = EaSize;\n\n/**\n * Inline banner for surfacing semantic messages such as success confirmations,\n * warnings, or errors. Optionally dismissible, with a two-way `visible`\n * binding and an automatically chosen ARIA role based on severity.\n */\n@Component({\n  selector: 'ea-alert',\n  templateUrl: './alert.component.html',\n  styleUrl: './alert.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    AlertCircleIconComponent,\n    CheckIconComponent,\n    InfoIconComponent,\n    XIconComponent,\n    NgClass,\n    NgComponentOutlet,\n  ],\n})\nexport class AlertComponent {\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly variant = input<AlertVariant>('default');\n  readonly size = input<AlertSize>('md');\n  readonly dismissible = input<boolean>(false);\n  readonly visible = model<boolean>(true);\n\n  /** Overrides the variant's default status icon with any icon component. */\n  readonly icon = input<Type<unknown> | undefined>(undefined);\n\n  /** Fires when the user dismisses the alert via its close button. */\n  readonly dismissed = output<void>();\n\n  readonly alertClasses = computed(() => ({\n    [`ea-alert--${this.variant()}`]: true,\n    [`ea-alert--${this.size()}`]: true,\n  }));\n\n  readonly role = computed(() => {\n    const v = this.variant();\n    return v === 'error' || v === 'warning' ? 'alert' : 'status';\n  });\n\n  /** Hides the alert and emits `dismissed`. */\n  dismiss(): void {\n    this.visible.set(false);\n    this.dismissed.emit();\n  }\n}\n","<div\n  class=\"ea-alert-container\"\n  [attr.role]=\"role()\">\n  @if (visible()) {\n    <div\n      class=\"ea-alert\"\n      [ngClass]=\"alertClasses()\">\n      <span\n        class=\"ea-alert__icon\"\n        aria-hidden=\"true\">\n        @if (icon(); as customIcon) {\n          <ng-container *ngComponentOutlet=\"customIcon\" />\n        } @else {\n          @switch (variant()) {\n            @case ('success') {\n              <ea-icon-check />\n            }\n            @case ('warning') {\n              <ea-icon-alert-circle />\n            }\n            @case ('error') {\n              <ea-icon-alert-circle />\n            }\n            @case ('info') {\n              <ea-icon-info />\n            }\n            @default {\n              <ea-icon-info />\n            }\n          }\n        }\n      </span>\n      <div class=\"ea-alert__content\">\n        <ng-content />\n      </div>\n      @if (dismissible()) {\n        <button\n          class=\"ea-alert__close\"\n          type=\"button\"\n          [attr.aria-label]=\"i18n.messages().alert.dismiss\"\n          (click)=\"dismiss()\">\n          <ea-icon-x />\n        </button>\n      }\n    </div>\n  }\n</div>\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, type Type, input } from '@angular/core';\n\n// Shared field label for form-like components. Renders a `<label for>` when\n// `forId` points at a single control, otherwise a `<span>` (grouped controls\n// labelled via `aria-labelledby`). `display: contents` keeps the host out of\n// the field's flex flow.\n@Component({\n  selector: 'ea-field-label',\n  templateUrl: './field-label.component.html',\n  styleUrl: './field-label.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgComponentOutlet, NgTemplateOutlet],\n})\nexport class FieldLabelComponent {\n  readonly text = input.required<string>();\n  /** Optional icon component rendered before the label text. */\n  readonly icon = input<Type<unknown> | undefined>(undefined);\n  readonly forId = input<string | undefined>(undefined);\n  readonly required = input<boolean>(false);\n  readonly labelId = input<string | undefined>(undefined);\n}\n","@if (forId(); as control) {\n  <label\n    class=\"ea-field-label\"\n    [for]=\"control\"\n    [attr.id]=\"labelId() ?? null\"\n    [class.ea-field-label--required]=\"required()\">\n    <ng-container [ngTemplateOutlet]=\"content\" />\n  </label>\n} @else {\n  <span\n    class=\"ea-field-label\"\n    [attr.id]=\"labelId() ?? null\"\n    [class.ea-field-label--required]=\"required()\">\n    <ng-container [ngTemplateOutlet]=\"content\" />\n  </span>\n}\n\n<ng-template #content>\n  @if (icon(); as iconComponent) {\n    <span\n      class=\"ea-field-label__icon\"\n      aria-hidden=\"true\">\n      <ng-container *ngComponentOutlet=\"iconComponent\" />\n    </span>\n  }\n  {{ text() }}\n</ng-template>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { AlertCircleIconComponent } from '../icons/alert-circle.component';\n\n// Shared hint/error block for form-like components. Renders the error (with\n// alert icon and role=\"alert\") when `error` is set, otherwise the hint. The\n// `id` seeds `{id}-error` / `{id}-hint` so a control's `aria-describedby` can\n// point at whichever is showing. `display: contents` keeps the host out of the\n// field's flex flow.\n@Component({\n  selector: 'ea-field-messages',\n  imports: [AlertCircleIconComponent],\n  templateUrl: './field-messages.component.html',\n  styleUrl: './field-messages.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldMessagesComponent {\n  readonly id = input.required<string>();\n  readonly error = input<string | null | undefined>(undefined);\n  readonly hint = input<string | null | undefined>(undefined);\n}\n","@if (error()) {\n  <p\n    class=\"ea-field-messages__message ea-field-messages__message--error\"\n    [id]=\"id() + '-error'\"\n    role=\"alert\">\n    <ea-icon-alert-circle class=\"ea-field-messages__icon\" />\n    {{ error() }}\n  </p>\n} @else if (hint()) {\n  <p\n    class=\"ea-field-messages__message ea-field-messages__message--hint\"\n    [id]=\"id() + '-hint'\">\n    {{ hint() }}\n  </p>\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\n\n/**\n * Tracks where the press behind the current `click` started and ended.\n *\n * A `click` is dispatched on the nearest common ancestor of the press and the\n * release, so a drag that begins on a panel and ends on the backdrop arrives as\n * a click on the backdrop. Dismissal handlers that only read `event.target`\n * therefore treat \"select text in a dialog, release outside it\" as an outside\n * click, and shut the dialog under the user. Consulting both ends of the press\n * keeps a dismissal to presses that stayed outside from start to finish.\n *\n * Both ends read `null` for a click with no pointer behind it (keyboard\n * activation, `element.click()`), which every check below treats as a plain\n * click on its target.\n *\n * It also knows whether a press is still in progress, so work that would move\n * content under the pointer can wait until the press has landed its click.\n */\n@Injectable({ providedIn: 'root' })\nexport class PointerPressTracker {\n  private downTarget: Node | null = null;\n  private upTarget: Node | null = null;\n  private pressing = false;\n  private readonly pressEndCallbacks = new Set<() => void>();\n\n  private readonly onDown = (event: Event): void => {\n    this.downTarget = event.target as Node | null;\n    this.upTarget = null;\n    this.pressing = true;\n  };\n  private readonly onUp = (event: Event): void => {\n    this.upTarget = event.target as Node | null;\n  };\n  // A click is already bound to its target by the time capture listeners run,\n  // so work released from here can no longer redirect it\n  private readonly onPressEnd = (): void => {\n    this.pressing = false;\n    const callbacks = [...this.pressEndCallbacks];\n    this.pressEndCallbacks.clear();\n    callbacks.forEach(callback => callback());\n  };\n  // A keyboard-driven click carries no pointer events of its own, and would\n  // otherwise be read against whichever press came before it\n  private readonly onKeydown = (): void => {\n    this.downTarget = null;\n    this.upTarget = null;\n    this.onPressEnd();\n  };\n\n  constructor() {\n    if (typeof document === 'undefined') {\n      return;\n    }\n    // Capture phase, so a handler that stops propagation cannot hide the press\n    document.addEventListener('pointerdown', this.onDown, true);\n    document.addEventListener('pointerup', this.onUp, true);\n    document.addEventListener('click', this.onPressEnd, true);\n    document.addEventListener('pointercancel', this.onPressEnd, true);\n    document.addEventListener('keydown', this.onKeydown, true);\n    inject(DestroyRef).onDestroy(() => {\n      document.removeEventListener('pointerdown', this.onDown, true);\n      document.removeEventListener('pointerup', this.onUp, true);\n      document.removeEventListener('click', this.onPressEnd, true);\n      document.removeEventListener('pointercancel', this.onPressEnd, true);\n      document.removeEventListener('keydown', this.onKeydown, true);\n    });\n  }\n\n  /** True when either end of the press landed on `el` or inside it. */\n  touchedInside(el: Element | null | undefined): boolean {\n    if (!el) {\n      return false;\n    }\n    return (\n      (this.downTarget !== null && el.contains(this.downTarget)) ||\n      (this.upTarget !== null && el.contains(this.upTarget))\n    );\n  }\n\n  /** True when neither end of the press landed anywhere but `el` itself. */\n  stayedOn(el: Element | null | undefined): boolean {\n    if (!el) {\n      return false;\n    }\n    return (\n      (this.downTarget === null || this.downTarget === el) &&\n      (this.upTarget === null || this.upTarget === el)\n    );\n  }\n\n  /**\n   * Runs `callback` once the press in progress has landed its click or been\n   * cancelled, or straight away when no press is in progress. Returns a\n   * function that drops the pending call.\n   */\n  whenPressEnds(callback: () => void): () => void {\n    if (!this.pressing) {\n      callback();\n      return () => undefined;\n    }\n    this.pressEndCallbacks.add(callback);\n    return () => this.pressEndCallbacks.delete(callback);\n  }\n}\n","import {\n  Injector,\n  type Signal,\n  afterNextRender,\n  computed,\n  effect,\n  inject,\n  signal,\n} from '@angular/core';\nimport {\n  type AbstractControl,\n  NgControl,\n  TouchedChangeEvent,\n  type ValidationErrors,\n} from '@angular/forms';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport type { EagamiMessages } from '../i18n/i18n.types';\nimport { PointerPressTracker } from '../pointer-press';\n\n/** Validator error keys the library ships built-in localized messages for. */\nexport type EaValidationErrorKey =\n  'required' | 'email' | 'min' | 'max' | 'minlength' | 'maxlength' | 'pattern';\n\n/**\n * Per-error-key message overrides for a form control. Keys are validator error\n * names (`required`, `email`, or any custom validator key); values are the text\n * shown when that error is the active one. Keys left unset fall back to the\n * library's localized default message.\n */\nexport type EaErrorMessages = Partial<Record<string, string>>;\n\nexport interface ControlErrorStateConfig {\n  /** Explicit error text; shown unconditionally and overrides any auto-derived message. */\n  errorMsg: Signal<string | null | undefined>;\n  /** Per-error-key overrides for auto-derived validation messages. */\n  errorMessages: Signal<EaErrorMessages | undefined>;\n}\n\nexport interface ControlErrorState {\n  /** Error text to display, or `null` when the field is valid or untouched. */\n  readonly error: Signal<string | null>;\n  /** Whether the field should render its error state. */\n  readonly hasError: Signal<boolean>;\n}\n\n/**\n * Derives a form control's display error from, in priority order: an explicit\n * `errorMsg`, a consumer `errorMessages` override, then the library's localized\n * default for the active `ValidationErrors` key. Auto-derived messages surface\n * only once the bound control is `invalid && touched`, matching the moment a\n * user expects validation feedback. A message revealed by a pointer press\n * moving focus away waits until that press has landed its click. The control\n * arrives as a signal so callers decide how it is resolved: from the host's own\n * `NgControl` (CVA components) or from projected content (`<ea-form-field>`).\n */\nexport function controlErrorStateFrom(\n  control: Signal<AbstractControl | null>,\n  config: ControlErrorStateConfig,\n): ControlErrorState {\n  const i18n = inject(EagamiI18nService);\n  const press = inject(PointerPressTracker);\n\n  // Bumped on every status/touched change so the computed re-reads the control\n  const revision = signal(0);\n\n  // The message a blur reveals grows the field and shifts the layout under the\n  // pointer, so while the press behind that blur is down the click would land\n  // on whatever moved into its place\n  const revealPending = signal(false);\n\n  effect(onCleanup => {\n    const ctrl = control();\n    if (!ctrl) {\n      return;\n    }\n    let dropPendingReveal: (() => void) | null = null;\n    const sub = ctrl.events.subscribe(event => {\n      if (event instanceof TouchedChangeEvent && event.touched) {\n        dropPendingReveal?.();\n        revealPending.set(true);\n        dropPendingReveal = press.whenPressEnds(() => revealPending.set(false));\n      }\n      revision.update(r => r + 1);\n    });\n    onCleanup(() => {\n      sub.unsubscribe();\n      dropPendingReveal?.();\n      revealPending.set(false);\n    });\n  });\n\n  const autoError = computed<string | null>(() => {\n    revision();\n    const ctrl = control();\n    if (revealPending() || !ctrl || !ctrl.invalid || !ctrl.touched || !ctrl.errors) {\n      return null;\n    }\n    return resolveValidationMessage(ctrl.errors, config.errorMessages(), i18n.messages());\n  });\n\n  const error = computed<string | null>(() => config.errorMsg() || autoError());\n  const hasError = computed(() => error() !== null);\n\n  return { error, hasError };\n}\n\n/**\n * `controlErrorStateFrom` for a component hosting its own form directive.\n *\n * The bound `NgControl` is resolved lazily from the injector rather than via\n * constructor injection: a control that provides `NG_VALUE_ACCESSOR` cannot\n * also inject its own `NgControl` directly without a circular dependency.\n * `afterNextRender` defers resolution to the browser, after the host directive\n * (`formControl` / `ngModel`) exists, so the server render simply shows no\n * error (an untouched control never does).\n *\n * The lookup is `self`-scoped to the host element. Without it the search walks\n * up the element injectors, so a field rendered inside another bound field\n * (the checkboxes in a multi-select's option list, say) would adopt the outer\n * control and repeat its error message on every row.\n */\nexport function injectControlErrorState(\n  config: ControlErrorStateConfig,\n): ControlErrorState {\n  const injector = inject(Injector);\n\n  const control = signal<AbstractControl | null>(null);\n\n  afterNextRender(\n    () => {\n      const ngControl = injector.get(NgControl, null, { self: true, optional: true });\n      control.set(ngControl?.control ?? null);\n    },\n    { injector },\n  );\n\n  return controlErrorStateFrom(control, config);\n}\n\n/**\n * Picks the first active error key and resolves its message: a consumer\n * override wins, otherwise the localized built-in default (interpolating the\n * validator's own params), falling back to a generic message for unknown keys.\n */\nfunction resolveValidationMessage(\n  errors: ValidationErrors,\n  overrides: EaErrorMessages | undefined,\n  messages: EagamiMessages,\n): string | null {\n  const key = Object.keys(errors)[0];\n  if (!key) {\n    return null;\n  }\n\n  const override = overrides?.[key];\n  if (override) {\n    return override;\n  }\n\n  const v = messages.validation;\n  const detail = errors[key];\n  switch (key) {\n    case 'required':\n      return v.required;\n    case 'email':\n      return v.email;\n    case 'minlength':\n      return v.minlength(detail?.requiredLength ?? 0);\n    case 'maxlength':\n      return v.maxlength(detail?.requiredLength ?? 0);\n    case 'min':\n      return v.min(detail?.min ?? 0);\n    case 'max':\n      return v.max(detail?.max ?? 0);\n    case 'pattern':\n      return v.pattern;\n    default:\n      return v.invalid;\n  }\n}\n","// Reads the element's resolved writing direction so pointer math and arrow-key\n// handling can mirror under `dir=\"rtl\"`. Browser-only (callers are interaction\n// handlers), so getComputedStyle is always available.\nexport function isRtl(element: Element): boolean {\n  return getComputedStyle(element).direction === 'rtl';\n}\n","/*\n * A modal `<dialog>` (`showModal()`) renders in the browser's top layer, which\n * paints above every z-index in the normal layer. An overlay portaled to\n * `<body>` therefore disappears behind the modal it was opened from, no matter\n * how high `--z-index-popover` climbs. The popover API is the only way to join\n * that layer; `manual` opts out of the UA's light-dismiss and Escape handling\n * so the owning component keeps full control of dismissal. Top-layer elements\n * stack in promotion order, so an overlay shown while a modal is open always\n * lands above it.\n *\n * Promotion is deliberately conditional: outside a top-layer container the\n * existing z-index scale already orders overlays against each other (toasts\n * above popovers, tooltips above both), and promoting unconditionally would\n * flatten that scale into \"whatever opened last wins\".\n */\n\nconst TOP_LAYER_CONTAINER = 'dialog:modal, :popover-open';\n\n// `selector()` takes one complex selector, so probing a comma-separated list\n// parses as invalid and answers false everywhere; test each selector alone\nlet selectorSupport: boolean | null = null;\n\nfunction popoverSupported(): boolean {\n  if (\n    typeof HTMLElement === 'undefined' ||\n    typeof HTMLElement.prototype.showPopover !== 'function' ||\n    typeof CSS === 'undefined'\n  ) {\n    return false;\n  }\n  selectorSupport ??=\n    CSS.supports?.('selector(dialog:modal)') === true &&\n    CSS.supports?.('selector(:popover-open)') === true;\n  return selectorSupport;\n}\n\nfunction isPromoted(el: HTMLElement): boolean {\n  return el.hasAttribute('popover') && el.matches(':popover-open');\n}\n\n/**\n * Raises `surface` into the top layer when `anchor` sits inside something\n * that is already there. Callers must do this before measuring the surface: a\n * `popover` element is `display: none` until shown, so any rect read while it\n * is still hidden comes back zeroed.\n */\nexport function enterTopLayer(surface: HTMLElement, anchor: Element): void {\n  if (!popoverSupported() || !surface.isConnected || isPromoted(surface)) {\n    return;\n  }\n  if (!anchor.closest(TOP_LAYER_CONTAINER)) {\n    return;\n  }\n  surface.setAttribute('popover', 'manual');\n  try {\n    surface.showPopover();\n  } catch {\n    // Refused promotion would leave the surface stuck at the UA's\n    // `display: none`, so drop back to plain z-index stacking\n    surface.removeAttribute('popover');\n  }\n}\n\n/**\n * Where a portaled surface has to live to stay usable: inside the top-layer\n * container its anchor belongs to, or `<body>` when there is none.\n *\n * A modal `<dialog>` makes the rest of the document inert, and raising a\n * surface into the top layer does not lift that. An element portaled to\n * `<body>` while a modal is open paints above it and is still unfocusable and\n * untouchable: clicks land on the dialog behind it, so a field inside it takes\n * neither the caret nor a selection. Inertness follows the DOM, so the surface\n * has to sit inside the dialog; promotion then keeps it clear of any ancestor\n * that would clip it and above the dialog's own content.\n */\nexport function topLayerHost(anchor: Element | null | undefined): HTMLElement {\n  const container = anchor?.closest(TOP_LAYER_CONTAINER);\n  return container instanceof HTMLElement ? container : document.body;\n}\n\n/** Returns `surface` to the normal layer, undoing {@link enterTopLayer}. */\nexport function leaveTopLayer(surface: HTMLElement): void {\n  if (!surface.hasAttribute('popover')) {\n    return;\n  }\n  if (surface.isConnected && isPromoted(surface)) {\n    surface.hidePopover();\n  }\n  surface.removeAttribute('popover');\n}\n","/**\n * Placement of the popover relative to its anchor. Each placement names the\n * side of the anchor the popover attaches to, optionally followed by a corner\n * suffix (`-start` or `-end`) that decides the alignment along the perpendicular\n * axis. The plain side names (`top`, `bottom`, `left`, `right`) centre the\n * popover on that axis.\n */\nexport type PopoverPlacement =\n  | 'top'\n  | 'top-start'\n  | 'top-end'\n  | 'bottom'\n  | 'bottom-start'\n  | 'bottom-end'\n  | 'left'\n  | 'right';\n\nexport interface PopoverPositionResult {\n  /** Top coordinate in viewport (px); pairs with `position: fixed`. */\n  readonly top: number;\n  /** Left coordinate in viewport (px). */\n  readonly left: number;\n  /** Width hint when the popover should match the anchor's width. */\n  readonly width?: number;\n  /** The anchor's measured width, for a caller capping the popover against it. */\n  readonly anchorWidth: number;\n  /** Effective placement after any flip logic ran. */\n  readonly placement: PopoverPlacement;\n}\n\nexport interface PopoverPositionOptions {\n  readonly placement: PopoverPlacement;\n  /** Gap in px between the anchor and the popover. Default 4. */\n  readonly offset?: number;\n  /** Flip to the opposite side when the requested side overflows the viewport. Default true. */\n  readonly flip?: boolean;\n  /** Clamp inside the viewport when the popover still overflows after any flip. Default true. */\n  readonly clamp?: boolean;\n  /** Margin from the viewport edge in px when clamping. Default 8. */\n  readonly margin?: number;\n  /** Set the popover's width to match the anchor's. Useful for dropdown-style menus. */\n  readonly matchAnchorWidth?: boolean;\n  /** Right-to-left context. Swaps `-start`/`-end` alignment so they track the reading direction. */\n  readonly rtl?: boolean;\n}\n\ninterface Rect {\n  readonly width: number;\n  readonly height: number;\n}\n\ninterface AnchorRect extends Rect {\n  readonly top: number;\n  readonly bottom: number;\n  readonly left: number;\n  readonly right: number;\n}\n\ninterface Viewport {\n  readonly width: number;\n  readonly height: number;\n}\n\n/** True for cardinal placements that centre the popover on the perpendicular axis. */\nfunction isCardinal(\n  placement: PopoverPlacement,\n): placement is 'top' | 'bottom' | 'left' | 'right' {\n  return (\n    placement === 'top' ||\n    placement === 'bottom' ||\n    placement === 'left' ||\n    placement === 'right'\n  );\n}\n\n/** The dominant side of a placement (`top-start` and `top` both give `top`, etc.). */\nfunction side(placement: PopoverPlacement): 'top' | 'bottom' | 'left' | 'right' {\n  if (placement.startsWith('top')) {\n    return 'top';\n  }\n  if (placement.startsWith('bottom')) {\n    return 'bottom';\n  }\n  if (placement === 'left') {\n    return 'left';\n  }\n  return 'right';\n}\n\n/** Maps `top` to `bottom`, `bottom-start` to `top-start`, etc. for flip logic. */\nfunction flipPlacement(placement: PopoverPlacement): PopoverPlacement {\n  if (placement === 'top') {\n    return 'bottom';\n  }\n  if (placement === 'bottom') {\n    return 'top';\n  }\n  if (placement === 'left') {\n    return 'right';\n  }\n  if (placement === 'right') {\n    return 'left';\n  }\n  if (placement === 'top-start') {\n    return 'bottom-start';\n  }\n  if (placement === 'top-end') {\n    return 'bottom-end';\n  }\n  if (placement === 'bottom-start') {\n    return 'top-start';\n  }\n  return 'top-end';\n}\n\n/** Computes the top/left for a given placement without any flip or clamp logic. */\nfunction placeRaw(\n  anchor: AnchorRect,\n  popover: Rect,\n  placement: PopoverPlacement,\n  offset: number,\n  rtl: boolean,\n): { top: number; left: number } {\n  const s = side(placement);\n  let top = 0;\n  let left = 0;\n\n  if (s === 'top') {\n    top = anchor.top - popover.height - offset;\n  } else if (s === 'bottom') {\n    top = anchor.bottom + offset;\n  } else if (s === 'left') {\n    left = anchor.left - popover.width - offset;\n  } else {\n    left = anchor.right + offset;\n  }\n\n  if (s === 'top' || s === 'bottom') {\n    if (isCardinal(placement)) {\n      left = anchor.left + (anchor.width - popover.width) / 2;\n    } else {\n      // `-start` aligns to the anchor's leading edge: left in LTR, right in RTL.\n      const isStart = placement === 'top-start' || placement === 'bottom-start';\n      left = isStart !== rtl ? anchor.left : anchor.right - popover.width;\n    }\n  } else {\n    top = anchor.top + (anchor.height - popover.height) / 2;\n  }\n\n  return { top, left };\n}\n\n/**\n * Computes the viewport-space top/left for a popover anchored to `anchorRect`,\n * applying optional flip-on-overflow and edge-clamp logic. Pure function, no\n * DOM access. Both `<ea-popover>` and `[eaTooltip]` consume this.\n *\n * @param anchorRect  The anchor element's `getBoundingClientRect()`.\n * @param popoverRect Width and height of the popover (post-render measurement).\n * @param viewport    Viewport dimensions (`window.innerWidth/Height`).\n * @param options     Placement and behavior flags.\n */\nexport function computePopoverPosition(\n  anchorRect: AnchorRect,\n  popoverRect: Rect,\n  viewport: Viewport,\n  options: PopoverPositionOptions,\n): PopoverPositionResult {\n  const offset = options.offset ?? 4;\n  const margin = options.margin ?? 8;\n  const flip = options.flip ?? true;\n  const clamp = options.clamp ?? true;\n  const rtl = options.rtl ?? false;\n\n  let placement = options.placement;\n  let pos = placeRaw(anchorRect, popoverRect, placement, offset, rtl);\n\n  if (flip) {\n    const overflowsTop = pos.top < margin;\n    const overflowsBottom = pos.top + popoverRect.height > viewport.height - margin;\n    const overflowsLeft = pos.left < margin;\n    const overflowsRight = pos.left + popoverRect.width > viewport.width - margin;\n    const s = side(placement);\n\n    const shouldFlip =\n      (s === 'top' && overflowsTop) ||\n      (s === 'bottom' && overflowsBottom) ||\n      (s === 'left' && overflowsLeft) ||\n      (s === 'right' && overflowsRight);\n\n    if (shouldFlip) {\n      const flipped = flipPlacement(placement);\n      const flippedPos = placeRaw(anchorRect, popoverRect, flipped, offset, rtl);\n      const flippedFitsBetter =\n        (s === 'top' &&\n          flippedPos.top + popoverRect.height <= viewport.height - margin) ||\n        (s === 'bottom' && flippedPos.top >= margin) ||\n        (s === 'left' &&\n          flippedPos.left + popoverRect.width <= viewport.width - margin) ||\n        (s === 'right' && flippedPos.left >= margin);\n\n      if (flippedFitsBetter) {\n        placement = flipped;\n        pos = flippedPos;\n      }\n    }\n  }\n\n  if (clamp) {\n    // Only clamp the cross-axis (perpendicular to the placement). For\n    // bottom-side placements we clamp `left` so the popover doesn't slip off\n    // the left/right of the viewport, but we leave `top` alone; clamping it\n    // when the popover is taller than the available space below the anchor\n    // would yank it up over the anchor itself (the common Storybook-docs-\n    // iframe failure mode where viewports are short). Better to let it\n    // overflow and scroll than to overlap its own trigger.\n    const s = side(placement);\n    const isVertical = s === 'top' || s === 'bottom';\n    if (isVertical) {\n      const maxLeft = viewport.width - popoverRect.width - margin;\n      pos = {\n        top: pos.top,\n        left: Math.max(margin, Math.min(pos.left, Math.max(margin, maxLeft))),\n      };\n    } else {\n      const maxTop = viewport.height - popoverRect.height - margin;\n      pos = {\n        top: Math.max(margin, Math.min(pos.top, Math.max(margin, maxTop))),\n        left: pos.left,\n      };\n    }\n  }\n\n  return {\n    top: pos.top,\n    left: pos.left,\n    placement,\n    anchorWidth: anchorRect.width,\n    ...(options.matchAnchorWidth ? { width: anchorRect.width } : {}),\n  };\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  ElementRef,\n  HostListener,\n  computed,\n  effect,\n  inject,\n  input,\n  output,\n  signal,\n  untracked,\n  viewChild,\n} from '@angular/core';\n\nimport { isRtl } from '../direction';\nimport { PointerPressTracker } from '../pointer-press';\nimport { enterTopLayer, leaveTopLayer, topLayerHost } from '../top-layer';\nimport { uniqueId } from '../unique-id';\nimport {\n  type PopoverPlacement,\n  type PopoverPositionResult,\n  computePopoverPosition,\n} from './popover-positioning';\n\nexport type { PopoverPlacement } from './popover-positioning';\n\n/** ARIA role to apply to the popover surface. */\nexport type PopoverRole = 'menu' | 'listbox' | 'dialog' | 'tooltip' | 'grid';\n\n/**\n * How the popover should respond to scroll / resize events while open.\n *\n * - `reposition` (default): re-measure the anchor and update the popover's\n *   coordinates so it stays attached. Suitable for menus and tooltips.\n * - `close`: request close. Suitable for dropdown lists and the colour-picker\n *   popover, where re-tracking a tall popover during a scroll feels intrusive.\n * - `ignore`: do nothing. The popover stays at its initial coordinates and\n *   may visually detach from a scrolling anchor; useful when the anchor is\n *   guaranteed not to move (e.g. inside a non-scrolling region).\n */\nexport type PopoverScrollBehavior = 'reposition' | 'close' | 'ignore';\n\n/** Width cap for a popover surface: px, or the anchor's own width. */\nexport type PopoverMaxWidth = number | 'anchor';\n\n/**\n * Floating-element primitive. Renders projected content as `position: fixed`\n * anchored to an external element, with flip-on-overflow, viewport clamping,\n * outside-click and Escape dismissal, and SSR-safe scroll / resize handling.\n *\n * The primitive is intentionally low-level: a parent component drives the\n * `[open]` state and listens for `(closeRequested)` to mirror it back. Internal\n * library components (`<ea-menu>`, `<ea-dropdown>`, `<ea-color-picker>`,\n * `<ea-date-picker>`, `[eaTooltip]`) compose on top of it; downstream apps can\n * use it directly to build their own popover-based UI.\n *\n * @example\n * ```html\n * <button #trigger (click)=\"open.set(!open())\">Open</button>\n * <ea-popover [anchor]=\"trigger\" [open]=\"open()\" (closeRequested)=\"open.set(false)\">\n *   <div>Popover content</div>\n * </ea-popover>\n * ```\n */\n@Component({\n  selector: 'ea-popover',\n  templateUrl: './popover.component.html',\n  styleUrl: './popover.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // Strip ARIA attributes from the host element. Angular's template parser\n  // mirrors any static `role=\"...\"` / `aria-label=\"...\"` on `<ea-popover>` to\n  // both the matching input AND the host's DOM attributes; without these\n  // clears, axe sees an empty `<ea-popover role=\"dialog\">` (even when closed,\n  // since the host is always in the document) and flags it for missing names\n  // / nested roles. The role and label belong on the inner `__surface` div,\n  // which already applies them conditionally on `open()`.\n  host: {\n    '[attr.role]': 'null',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n  },\n})\nexport class PopoverComponent {\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly press = inject(PointerPressTracker);\n\n  private readonly surfaceEl = viewChild<ElementRef<HTMLElement>>('surfaceEl');\n\n  /** Anchor element the popover positions itself against. */\n  readonly anchor = input.required<HTMLElement | ElementRef<HTMLElement> | undefined>();\n\n  /** Whether the popover is currently open. */\n  readonly open = input<boolean>(false);\n\n  /** Where the popover attaches relative to the anchor. */\n  readonly placement = input<PopoverPlacement>('bottom-start');\n\n  /** ARIA role applied to the popover surface. */\n  readonly role = input<PopoverRole>('dialog');\n\n  /** Accessible label. Falls back to nothing; consumers should provide one when no visible heading is in the popover. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n  /** Id of the element that labels the popover surface, forwarded as `aria-labelledby`. */\n  readonly ariaLabelledby = input<string | undefined>(undefined, {\n    alias: 'aria-labelledby',\n  });\n\n  /** Keep Tab and Shift+Tab cycling within the surface while open (dialog pattern). */\n  readonly trapFocus = input<boolean>(false);\n\n  /** DOM id for the surface so trigger elements can reference it via aria-controls. */\n  readonly surfaceId = input<string>(uniqueId('ea-popover'));\n\n  /**\n   * Gap in px between the anchor and the popover. Defaults to 2 so an open panel\n   * clears the anchor's active focus ring instead of sitting flush over it.\n   */\n  readonly offset = input<number>(2);\n\n  /** Flip to the opposite side when the requested side overflows the viewport. */\n  readonly flip = input<boolean>(true);\n\n  /** Clamp the popover inside the viewport when it would otherwise overflow. */\n  readonly clamp = input<boolean>(true);\n\n  /** Set the popover's `min-width` to match the anchor's width (dropdown pattern). */\n  readonly matchAnchorWidth = input<boolean>(false);\n\n  /**\n   * Widest the surface may grow: a px value, or `anchor` to cap it at the\n   * anchor's own width so long content truncates instead of widening the panel.\n   */\n  readonly maxWidth = input<PopoverMaxWidth | undefined>(undefined);\n\n  /** Close on click outside the popover and the anchor. */\n  readonly closeOnOutsideClick = input<boolean>(true);\n\n  /** Close on Escape. */\n  readonly closeOnEscape = input<boolean>(true);\n\n  /** What to do on scroll / resize while open. */\n  readonly scrollBehavior = input<PopoverScrollBehavior>('reposition');\n\n  /** Requested close. The parent should mirror this into `[open]`. */\n  readonly closeRequested = output<void>();\n\n  private readonly position = signal<PopoverPositionResult | null>(null);\n\n  /* The side an open panel settled on, fed back in as the requested placement\n     on every later reposition. Content shrinking (a filtered option list losing\n     rows) frees up room on the original side again, and recomputing from the\n     input placement would jump the panel back across the anchor mid-interaction;\n     going through the flip logic keeps the move available for when the settled\n     side genuinely stops fitting. Keyed by the requested placement so a changed\n     input still wins. */\n  private latched: {\n    requested: PopoverPlacement;\n    resolved: PopoverPlacement;\n  } | null = null;\n\n  /** True placement after flip, for class-based styling (e.g. arrow direction). */\n  readonly effectivePlacement = computed(\n    () => this.position()?.placement ?? this.placement(),\n  );\n\n  /** Latches true once the post-rAF reposition has run, so the surface is\n   * only revealed after its dimensions are guaranteed stable. Reset on close. */\n  private readonly stable = signal(false);\n\n  /** True once the first `reposition()` has resolved a placement on a\n   * laid-out surface. Drives the `--positioned` class. */\n  readonly isPositioned = computed(\n    () => this.open() && this.position() !== null && this.stable(),\n  );\n\n  /** Class list for the surface. Computed in TS so the placement key (with\n   * its interpolated suffix) and the positioned modifier compose cleanly. */\n  readonly surfaceClass = computed(\n    () =>\n      `ea-popover__surface ea-popover__surface--${this.effectivePlacement()}${\n        this.isPositioned() ? ' ea-popover__surface--positioned' : ''\n      }`,\n  );\n\n  /** Inline style applied to the surface element. */\n  readonly surfaceStyle = computed<Record<string, string>>(() => {\n    if (!this.open()) {\n      return { display: 'none' };\n    }\n    const p = this.position();\n    if (!p) {\n      return {};\n    }\n    const style: Record<string, string> = {\n      top: `${p.top}px`,\n      left: `${p.left}px`,\n    };\n    if (p.width !== undefined) {\n      style['min-width'] = `${p.width}px`;\n    }\n    const cap = this.maxWidth();\n    if (cap !== undefined) {\n      style['max-width'] = `${cap === 'anchor' ? p.anchorWidth : cap}px`;\n    }\n    return style;\n  });\n\n  constructor() {\n    // Re-measure and reposition whenever the anchor, placement, surface, or\n    // open state changes. Reading `surfaceEl()` here makes it a tracked signal\n    // dependency, so the effect re-runs once Angular has rendered the `@if`\n    // block and the viewChild signal has updated; at that point both the\n    // anchor and the surface have a `getBoundingClientRect`, and the position\n    // can be computed. This is more reliable than `afterNextRender` because it\n    // doesn't depend on a single render cycle landing in the expected order\n    // (some host environments, Storybook docs mode for example, defer that\n    // callback in a way that leaves the surface stuck at `visibility: hidden`).\n    // Naturally SSR-safe: the surface never renders on the server, so the\n    // effect always early-returns during prerender.\n    // Teleport the surface to `document.body` as soon as it exists so\n    // `position: fixed` is always relative to the actual viewport (escaping\n    // any transformed/contained ancestor that would otherwise create a new\n    // containing block). Doing the move on init, not on open, also means\n    // the first `getBoundingClientRect` call inside `reposition()` reads a\n    // surface that's already in its final DOM home, so the browser's layout\n    // is settled and dimensions are accurate. Skipped in SSR (no `document`).\n    effect(() => {\n      const surface = this.surfaceEl()?.nativeElement;\n      const anchor = this.resolveAnchor();\n      const isOpen = this.open();\n      if (!surface || typeof document === 'undefined') {\n        return;\n      }\n      const host = topLayerHost(anchor);\n      if (surface.parentNode === host) {\n        return;\n      }\n      // Moving a raised surface drops it out of the top layer, so it goes back\n      // up once it has reached its new home\n      leaveTopLayer(surface);\n      host.appendChild(surface);\n      if (isOpen && anchor) {\n        enterTopLayer(surface, anchor);\n      }\n    });\n\n    effect(() => {\n      const surface = this.surfaceEl()?.nativeElement;\n      const anchor = this.resolveAnchor();\n      const isOpen = this.open();\n      if (!surface || !anchor || !isOpen) {\n        if (surface) {\n          leaveTopLayer(surface);\n        }\n        this.position.set(null);\n        this.stable.set(false);\n        this.latched = null;\n        return;\n      }\n      // Join the top layer before the first measurement below, so a popover\n      // opened from inside a modal is not painted behind it. Promoting first\n      // also gives the surface layout: a `popover` element is `display: none`\n      // until shown, and would measure as a zero-sized box.\n      enterTopLayer(surface, anchor);\n      // Re-read inputs so signal subscriptions stay current after a re-open\n      this.placement();\n      this.offset();\n      this.flip();\n      this.clamp();\n      this.matchAnchorWidth();\n      // First reposition runs synchronously off the open effect (fast), but\n      // the surface is still transitioning out of `display: none` and the\n      // first `getBoundingClientRect` can report the surface's natural width\n      // even when that overflows the viewport. We deliberately keep the\n      // surface hidden (`visibility: hidden` from CSS) until the next rAF\n      // when the browser has finished laying it out at its real dimensions;\n      // the second reposition then uses accurate measurements and the\n      // `stable` latch flips, revealing the surface at the final position\n      // with no visible jump. SSR / non-browser hosts fall back to flipping\n      // `stable` synchronously.\n      this.reposition();\n      if (typeof requestAnimationFrame !== 'undefined') {\n        requestAnimationFrame(() => {\n          if (!this.open()) {\n            return;\n          }\n          this.reposition();\n          this.stable.set(true);\n        });\n      } else {\n        this.stable.set(true);\n      }\n    });\n\n    // Watch the surface's own size and reposition whenever it changes. The\n    // first `reposition()` after open fires synchronously inside the open\n    // effect, while the surface is still transitioning out of `display: none`;\n    // in some browsers the layout pass hasn't completed, so the\n    // `getBoundingClientRect` width can read as the surface's natural width\n    // even when that overflows the viewport, so the clamp can't kick in. The\n    // ResizeObserver fires once the surface has been laid out with its real\n    // dimensions, giving us a second, accurate measurement to clamp against.\n    // Also catches projected-content size changes while the popover is open\n    // (e.g. virtualised lists adding rows).\n    if (typeof ResizeObserver !== 'undefined') {\n      const surfaceResizeObserver = new ResizeObserver(() => {\n        if (this.open()) {\n          this.reposition();\n        }\n      });\n      effect(() => {\n        const surface = this.surfaceEl()?.nativeElement;\n        surfaceResizeObserver.disconnect();\n        if (surface) {\n          surfaceResizeObserver.observe(surface);\n        }\n      });\n      this.destroyRef.onDestroy(() => surfaceResizeObserver.disconnect());\n    }\n\n    // Listen for scroll / resize while open. The `scrollBehavior` input picks\n    // the response. SSR guard is required because the website prerenders pages\n    // that mount popovers.\n    if (typeof window !== 'undefined') {\n      const onViewportChange = (event?: Event): void => {\n        if (!this.open()) {\n          return;\n        }\n        // Scrolling within the popover's own surface (e.g. a long dropdown list)\n        // must not dismiss or re-track it; only outside/viewport scroll should.\n        // A scroll event dispatched straight at `window` has a non-Node target,\n        // which `contains` rejects outright\n        const rawTarget = event?.target;\n        const target = rawTarget instanceof Node ? rawTarget : null;\n        if (\n          event?.type === 'scroll' &&\n          target &&\n          this.surfaceEl()?.nativeElement.contains(target)\n        ) {\n          return;\n        }\n        const behavior = this.scrollBehavior();\n        if (behavior === 'close') {\n          this.closeRequested.emit();\n        } else if (behavior === 'reposition') {\n          this.reposition();\n        }\n      };\n      window.addEventListener('scroll', onViewportChange, {\n        capture: true,\n        passive: true,\n      });\n      window.addEventListener('resize', onViewportChange);\n      this.destroyRef.onDestroy(() => {\n        window.removeEventListener('scroll', onViewportChange, { capture: true });\n        window.removeEventListener('resize', onViewportChange);\n      });\n    }\n\n    // Explicitly remove the portaled surface on destroy. Angular's view\n    // destruction normally removes nodes the renderer created, but moving the\n    // surface via raw `appendChild` (out of its original anchor slot) is\n    // enough to break that tracking in some host environments: Storybook's\n    // SPA navigation between docs pages, for one, leaves the surface stranded\n    // in `document.body` after the parent component is gone. Removing it here\n    // guarantees cleanup regardless of how Angular's view destruction handles\n    // the relocated node.\n    this.destroyRef.onDestroy(() => {\n      const surface = this.surfaceEl()?.nativeElement;\n      surface?.parentNode?.removeChild(surface);\n    });\n  }\n\n  private resolveAnchor(): HTMLElement | null {\n    const a = this.anchor();\n    if (!a) {\n      return null;\n    }\n    return a instanceof ElementRef ? a.nativeElement : a;\n  }\n\n  private reposition(): void {\n    if (typeof window === 'undefined') {\n      return;\n    }\n    const anchor = this.resolveAnchor();\n    const surface = this.surfaceEl()?.nativeElement;\n    if (!anchor || !surface) {\n      return;\n    }\n    // The surface is portaled to <body>, escaping the anchor's dir context, so\n    // mirror the anchor's resolved direction onto it explicitly.\n    surface.dir = isRtl(anchor) ? 'rtl' : 'ltr';\n    // For the same reason, mirror the anchor's resolved font-family custom\n    // properties so panel content honours a consumer's font override set on the\n    // trigger's ancestor instead of falling back to the root font.\n    const anchorStyle = window.getComputedStyle(anchor);\n    for (const name of [\n      '--font-family-sans',\n      '--font-family-mono',\n      '--font-family-serif',\n      '--font-family-brand',\n    ]) {\n      const value = anchorStyle.getPropertyValue(name).trim();\n      if (value) {\n        surface.style.setProperty(name, value);\n      }\n    }\n    const anchorRect = anchor.getBoundingClientRect();\n    const surfaceRect = surface.getBoundingClientRect();\n    const requested = this.placement();\n    // The opening measurements can read the surface at its natural size, so the\n    // side they resolve is only worth holding on to once `stable` has latched\n    const placement =\n      untracked(this.stable) && this.latched?.requested === requested\n        ? this.latched.resolved\n        : requested;\n    const result = computePopoverPosition(\n      anchorRect,\n      { width: surfaceRect.width, height: surfaceRect.height },\n      { width: window.innerWidth, height: window.innerHeight },\n      {\n        placement,\n        offset: this.offset(),\n        flip: this.flip(),\n        clamp: this.clamp(),\n        matchAnchorWidth: this.matchAnchorWidth(),\n        rtl: isRtl(anchor),\n      },\n    );\n    this.latched = { requested, resolved: result.placement };\n    this.position.set(result);\n  }\n\n  @HostListener('document:click', ['$event'])\n  onDocumentClick(event: MouseEvent): void {\n    if (!this.open() || !this.closeOnOutsideClick()) {\n      return;\n    }\n    const target = event.target as Node | null;\n    if (!target) {\n      return;\n    }\n    const anchor = this.resolveAnchor();\n    const surface = this.surfaceEl()?.nativeElement;\n    if (anchor?.contains(target) || surface?.contains(target)) {\n      return;\n    }\n    // A drag that started or ended on the panel (selecting text, dragging a\n    // slider) lands its click on an ancestor of both, which is not a dismissal\n    if (this.press.touchedInside(anchor) || this.press.touchedInside(surface)) {\n      return;\n    }\n    this.closeRequested.emit();\n  }\n\n  onSurfaceKeydown(event: KeyboardEvent): void {\n    if (event.key !== 'Tab' || !this.open() || !this.trapFocus()) {\n      return;\n    }\n    const surface = this.surfaceEl()?.nativeElement;\n    if (!surface) {\n      return;\n    }\n    const focusable = Array.from(\n      surface.querySelectorAll<HTMLElement>(\n        'a[href], button, input, select, textarea, [tabindex]',\n      ),\n    ).filter(\n      el =>\n        el.tabIndex >= 0 &&\n        !el.hasAttribute('disabled') &&\n        el.getClientRects().length > 0,\n    );\n    if (focusable.length === 0) {\n      event.preventDefault();\n      return;\n    }\n    const first = focusable[0];\n    const last = focusable[focusable.length - 1];\n    const active = document.activeElement;\n    if (event.shiftKey) {\n      if (active === first || !surface.contains(active)) {\n        event.preventDefault();\n        last.focus();\n      }\n    } else if (active === last || !surface.contains(active)) {\n      event.preventDefault();\n      first.focus();\n    }\n  }\n\n  @HostListener('document:keydown.escape', ['$event'])\n  onEscape(event: Event): void {\n    if (!this.open() || !this.closeOnEscape()) {\n      return;\n    }\n    // Consume the key, or a native modal hosting this popover reads the same\n    // Escape as its own close request and both shut at once\n    event.preventDefault();\n    this.closeRequested.emit();\n  }\n}\n","<!--\n  The surface is rendered unconditionally so the `<ng-content/>` slot always\n  exists. If we gated it on `@if (open())`, Angular would re-project the\n  consumer's content at the popover host's position whenever the surface was\n  absent, leaking menu items / picker controls into the document flow (made\n  worse by `display: contents` on the host). Hiding via `display: none` keeps\n  the projected DOM owned by the surface and out of the flow when closed.\n-->\n<div\n  #surfaceEl\n  [class]=\"surfaceClass()\"\n  [id]=\"surfaceId()\"\n  [attr.role]=\"open() ? role() : null\"\n  [attr.aria-label]=\"open() ? ariaLabel() : null\"\n  [attr.aria-labelledby]=\"open() ? ariaLabelledby() : null\"\n  [attr.aria-hidden]=\"open() ? null : true\"\n  [style]=\"surfaceStyle()\"\n  (keydown)=\"onSurfaceKeydown($event)\">\n  <ng-content />\n</div>\n","import type { SelectOption, SelectOptionGroup, SelectOptions } from './select-option';\n\n/** An option paired with its position in the flattened option list. */\nexport interface IndexedOption {\n  option: SelectOption;\n  index: number;\n}\n\n/** A group ready to render, with headings and rules kept out of the index maths. */\nexport interface RenderedGroup {\n  label: string | undefined;\n  /** Whether a rule renders above this group, in place of a heading. */\n  rule: boolean;\n  options: IndexedOption[];\n}\n\n/**\n * Letters a plain keyboard cannot reach that decompose to no base letter, so\n * stripping marks alone would leave them unmatched.\n */\nconst SPELLINGS: Record<string, string> = {\n  ø: 'o',\n  æ: 'ae',\n  œ: 'oe',\n  ß: 'ss',\n  ł: 'l',\n  đ: 'd',\n  ð: 'd',\n  þ: 'th',\n  ħ: 'h',\n  ı: 'i',\n  ŋ: 'n',\n  ŧ: 't',\n  ĳ: 'ij',\n  ſ: 's',\n};\n\nconst SPELLED = new RegExp(`[${Object.keys(SPELLINGS).join('')}]`, 'g');\n\n/**\n * Lowercased with diacritics folded away, so a search typed on a plain\n * keyboard still finds the accented spelling: \"jablko\" finds \"Jabłko\".\n */\nexport function foldForSearch(value: string): string {\n  return value\n    .toLowerCase()\n    .normalize('NFD')\n    .replace(/\\p{M}/gu, '')\n    .replace(SPELLED, letter => SPELLINGS[letter]);\n}\n\n/** Whether the consumer supplied groups rather than a flat option list. */\nexport function isGrouped(\n  options: SelectOptions,\n): options is readonly SelectOptionGroup[] {\n  const first = options[0];\n  return first !== undefined && 'options' in first;\n}\n\n/** Normalizes either accepted shape to groups; a flat list becomes one unlabelled group. */\nexport function toGroups(options: SelectOptions): readonly SelectOptionGroup[] {\n  if (isGrouped(options)) {\n    return options;\n  }\n  return options.length > 0 ? [{ options: [...options] }] : [];\n}\n\n/** Drops every option failing `keep`, then every group left empty. */\nexport function filterGroups(\n  groups: readonly SelectOptionGroup[],\n  keep: (option: SelectOption) => boolean,\n): SelectOptionGroup[] {\n  const kept: SelectOptionGroup[] = [];\n  for (const group of groups) {\n    const options = group.options.filter(keep);\n    if (options.length > 0) {\n      kept.push({ label: group.label, options });\n    }\n  }\n  return kept;\n}\n\n/** Trims the groups down to at most `max` options in total, dropping any that no longer fit. */\nexport function limitGroups(\n  groups: readonly SelectOptionGroup[],\n  max: number,\n): SelectOptionGroup[] {\n  const limited: SelectOptionGroup[] = [];\n  let remaining = max;\n  for (const group of groups) {\n    if (remaining <= 0) {\n      break;\n    }\n    const options = group.options.slice(0, remaining);\n    remaining -= options.length;\n    limited.push({ label: group.label, options });\n  }\n  return limited;\n}\n\n/** Flattens groups back into a single option list, in the order they were given. */\nexport function flattenGroups(groups: readonly SelectOptionGroup[]): SelectOption[] {\n  return groups.flatMap(group => group.options);\n}\n\n/**\n * Pairs every option with its index into the flattened list, so keyboard\n * navigation and selection count options alone while the template still renders\n * the headings and rules that sit between them. Groups holding no options are\n * left out, so neither a heading nor a rule can render over nothing.\n */\nexport function toRenderedGroups(groups: readonly SelectOptionGroup[]): RenderedGroup[] {\n  let index = 0;\n  return groups\n    .filter(group => group.options.length > 0)\n    .map((group, position) => ({\n      label: group.label || undefined,\n      rule: position > 0 && !group.label,\n      options: group.options.map(option => ({ option, index: index++ })),\n    }));\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { PopoverComponent } from '../popover/popover.component';\nimport type { SelectOption, SelectOptions } from '../select-option';\nimport {\n  filterGroups,\n  flattenGroups,\n  foldForSearch,\n  isGrouped,\n  limitGroups,\n  toGroups,\n  toRenderedGroups,\n} from '../select-option-list';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the autocomplete input. */\nexport type AutocompleteSize = EaSize;\n\n/**\n * Text input paired with a filtered suggestion list. Filters options by\n * case-insensitive substring match, supports arrow-key navigation, and\n * implements `ControlValueAccessor` for use with reactive and template-driven\n * forms.\n */\n@Component({\n  selector: 'ea-autocomplete',\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass, PopoverComponent],\n  templateUrl: './autocomplete.component.html',\n  styleUrl: './autocomplete.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AutocompleteComponent),\n      multi: true,\n    },\n  ],\n})\nexport class AutocompleteComponent implements ControlValueAccessor {\n  private readonly inputEl = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Accessible name for the input and suggestion list when no visible label is provided. */\n  readonly ariaLabel = input<string | undefined>(undefined);\n  readonly placeholder = input<string>('');\n  /** Selectable options, either flat or split into groups. */\n  readonly options = input<SelectOptions>([]);\n  readonly size = input<AutocompleteSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly minLength = input<number>(0);\n  readonly maxResults = input<number>(10);\n  readonly emptyMessage = input<string | undefined>(undefined);\n  readonly id = input<string>(uniqueId('ea-autocomplete'));\n\n  readonly value = model<string>('');\n\n  /** Fires when the user picks an option from the suggestion list. */\n  readonly selected = output<SelectOption>();\n  /** Fires whenever the input text changes, including on free-text edits. */\n  readonly changed = output<string>();\n  /** Fires when the input receives focus. */\n  readonly focused = output<FocusEvent>();\n  /** Fires when the input loses focus. */\n  readonly blurred = output<FocusEvent>();\n\n  readonly isOpen = signal(false);\n  readonly isFocused = signal(false);\n  readonly focusedIndex = signal(-1);\n  private readonly _formDisabled = signal(false);\n  private justSelected = false;\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  private readonly optionGroups = computed(() => toGroups(this.options()));\n\n  /** Whether the consumer supplied groups, which the list exposes as ARIA groups. */\n  protected readonly grouped = computed(() => isGrouped(this.options()));\n\n  private readonly filteredGroups = computed(() => {\n    const query = foldForSearch(this.value().trim());\n    const groups = this.optionGroups();\n\n    if (query.length < this.minLength()) {\n      return [];\n    }\n\n    const matched = query\n      ? filterGroups(groups, o => foldForSearch(o.label).includes(query))\n      : groups;\n\n    return limitGroups(matched, this.maxResults());\n  });\n\n  readonly filteredOptions = computed<SelectOption[]>(() =>\n    flattenGroups(this.filteredGroups()),\n  );\n\n  /** Groups to render, each option carrying its index into `filteredOptions`. */\n  protected readonly renderedGroups = computed(() =>\n    toRenderedGroups(this.filteredGroups()),\n  );\n\n  // An option repeated across groups renders twice, but a single-select listbox\n  // may only mark one option selected\n  protected readonly selectedIndex = computed(() =>\n    this.filteredOptions().findIndex(o => o.label === this.value()),\n  );\n\n  readonly showList = computed(\n    () => this.isOpen() && this.value().length >= this.minLength(),\n  );\n\n  readonly showEmpty = computed(\n    () => this.showList() && this.filteredOptions().length === 0,\n  );\n\n  /** Empty-list message, falling back to the active locale's translation. */\n  readonly resolvedEmptyMessage = computed(\n    () => this.emptyMessage() ?? this.i18n.messages().autocomplete.empty,\n  );\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-autocomplete__wrapper--${this.size()}`]: true,\n    'ea-autocomplete__wrapper--error': this.hasError(),\n    'ea-autocomplete__wrapper--focused': this.isFocused() && !this.readonly(),\n    'ea-autocomplete__wrapper--readonly': this.readonly(),\n    'ea-autocomplete__wrapper--disabled': this.isDisabled(),\n  }));\n\n  readonly listboxClasses = computed(() => ({\n    [`ea-autocomplete__listbox--${this.size()}`]: true,\n  }));\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleInput(event: Event): void {\n    const next = (event.target as HTMLInputElement).value;\n    this.value.set(next);\n    this.onChange(next);\n    this.changed.emit(next);\n    this.isOpen.set(true);\n    this.focusedIndex.set(-1);\n  }\n\n  handleFocus(event: FocusEvent): void {\n    this.isFocused.set(true);\n    this.focused.emit(event);\n    if (this.justSelected) {\n      this.justSelected = false;\n      return;\n    }\n    if (this.value().length >= this.minLength()) {\n      this.isOpen.set(true);\n    }\n  }\n\n  handleBlur(event: FocusEvent): void {\n    this.isFocused.set(false);\n    this.onTouched();\n    this.blurred.emit(event);\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n\n    switch (event.key) {\n      case 'ArrowDown':\n        event.preventDefault();\n        if (!this.isOpen()) {\n          this.isOpen.set(true);\n        } else {\n          this.moveFocus(1);\n        }\n        break;\n      case 'ArrowUp':\n        event.preventDefault();\n        if (this.isOpen()) {\n          this.moveFocus(-1);\n        }\n        break;\n      case 'Enter': {\n        const opts = this.filteredOptions();\n        const idx = this.focusedIndex();\n        if (this.isOpen() && idx >= 0 && idx < opts.length && !opts[idx].disabled) {\n          event.preventDefault();\n          this.selectOption(opts[idx]);\n        }\n        break;\n      }\n      case 'Escape':\n        if (this.isOpen()) {\n          event.preventDefault();\n          this.close();\n        }\n        break;\n    }\n  }\n\n  /** Programmatically selects the given option, updating the value and closing the list. */\n  selectOption(option: SelectOption): void {\n    if (option.disabled || this.isDisabled()) {\n      return;\n    }\n    this.value.set(option.label);\n    this.onChange(option.label);\n    this.changed.emit(option.label);\n    this.selected.emit(option);\n    this.justSelected = true;\n    this.close();\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  /** Closes the suggestion list without changing the current value. */\n  close(): void {\n    this.isOpen.set(false);\n    this.focusedIndex.set(-1);\n  }\n\n  /** Moves keyboard focus to the underlying text input. */\n  focus(): void {\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  private moveFocus(delta: number): void {\n    const opts = this.filteredOptions();\n    if (opts.length === 0) {\n      return;\n    }\n    let idx = this.focusedIndex() + delta;\n    while (idx >= 0 && idx < opts.length && opts[idx].disabled) {\n      idx += delta;\n    }\n    if (idx < 0 || idx >= opts.length) {\n      return;\n    }\n    this.focusedIndex.set(idx);\n    document\n      .getElementById(`${this.id()}-option-${idx}`)\n      ?.scrollIntoView({ block: 'nearest' });\n  }\n}\n","<div class=\"ea-autocomplete ea-autocomplete--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    #anchorEl\n    class=\"ea-autocomplete__wrapper\"\n    [ngClass]=\"wrapperClasses()\">\n    <span class=\"ea-autocomplete__prefix\">\n      <ng-content select=\"[slot=prefix]\" />\n    </span>\n\n    <input\n      #inputEl\n      class=\"ea-autocomplete__input\"\n      type=\"text\"\n      dir=\"auto\"\n      autocomplete=\"off\"\n      role=\"combobox\"\n      [id]=\"id()\"\n      [placeholder]=\"placeholder()\"\n      [disabled]=\"isDisabled()\"\n      [readOnly]=\"readonly()\"\n      [required]=\"required()\"\n      [value]=\"value()\"\n      [attr.aria-label]=\"label() ? null : ariaLabel()\"\n      [attr.aria-expanded]=\"showList()\"\n      [attr.aria-haspopup]=\"'listbox'\"\n      [attr.aria-autocomplete]=\"'list'\"\n      [attr.aria-controls]=\"id() + '-listbox'\"\n      [attr.aria-activedescendant]=\"\n        focusedIndex() >= 0 ? id() + '-option-' + focusedIndex() : null\n      \"\n      [attr.aria-required]=\"required() || null\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (input)=\"handleInput($event)\"\n      (focus)=\"handleFocus($event)\"\n      (blur)=\"handleBlur($event)\"\n      (keydown)=\"handleKeydown($event)\" />\n\n    <span class=\"ea-autocomplete__suffix\">\n      <ng-content select=\"[slot=suffix]\" />\n    </span>\n  </div>\n\n  <ea-popover\n    [anchor]=\"anchorEl\"\n    [open]=\"showList()\"\n    placement=\"bottom-start\"\n    role=\"listbox\"\n    [aria-label]=\"label() ?? ariaLabel()\"\n    [surfaceId]=\"id() + '-listbox'\"\n    [matchAnchorWidth]=\"true\"\n    [closeOnEscape]=\"false\"\n    scrollBehavior=\"close\"\n    (closeRequested)=\"close()\">\n    <div\n      class=\"ea-autocomplete__listbox\"\n      [ngClass]=\"listboxClasses()\">\n      @for (group of renderedGroups(); track $index) {\n        <div\n          class=\"ea-autocomplete__group\"\n          [class.ea-autocomplete__group--ruled]=\"group.rule\"\n          [attr.role]=\"grouped() ? 'group' : 'presentation'\"\n          [attr.aria-label]=\"group.label ?? null\">\n          @if (group.label; as groupLabel) {\n            <div\n              class=\"ea-autocomplete__group-label\"\n              aria-hidden=\"true\">\n              {{ groupLabel }}\n            </div>\n          }\n          @for (entry of group.options; track entry.option.value) {\n            <div\n              class=\"ea-autocomplete__option\"\n              role=\"option\"\n              [id]=\"id() + '-option-' + entry.index\"\n              [class.ea-autocomplete__option--focused]=\"entry.index === focusedIndex()\"\n              [class.ea-autocomplete__option--disabled]=\"entry.option.disabled\"\n              [attr.aria-selected]=\"entry.index === selectedIndex()\"\n              [attr.aria-disabled]=\"entry.option.disabled || null\"\n              (mousedown)=\"selectOption(entry.option)\"\n              (mouseenter)=\"focusedIndex.set(entry.index)\">\n              {{ entry.option.label }}\n            </div>\n          }\n        </div>\n      }\n      @if (showEmpty()) {\n        <div\n          class=\"ea-autocomplete__empty\"\n          role=\"status\">\n          {{ resolvedEmptyMessage() }}\n        </div>\n      }\n    </div>\n  </ea-popover>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-camera',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\" />\n      <circle\n        cx=\"12\"\n        cy=\"13\"\n        r=\"4\" />\n    </svg>\n  `,\n})\nexport class CameraIconComponent extends IconComponentBase {\n  static readonly slug = 'camera';\n  static readonly category: IconCategory = 'feather';\n  static override readonly defaultStrokeWidth = 1.5;\n  static readonly tags: ReadonlyArray<string> = [\n    'camera',\n    'photo',\n    'photography',\n    'picture',\n    'snapshot',\n    'appareil photo',\n    'cámara',\n    'foto',\n    'κάμερα',\n    'φωτογραφία',\n    'aparat',\n    'zdjęcie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-minus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"5\"\n        y1=\"12\"\n        x2=\"19\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class MinusIconComponent extends IconComponentBase {\n  static readonly slug = 'minus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'minus',\n    'subtract',\n    'remove',\n    'less',\n    'negative',\n    'moins',\n    'menos',\n    'restar',\n    'μείον',\n    'αφαίρεση',\n    'minus',\n    'odejmij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-plus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"12\"\n        y1=\"5\"\n        x2=\"12\"\n        y2=\"19\" />\n      <line\n        x1=\"5\"\n        y1=\"12\"\n        x2=\"19\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class PlusIconComponent extends IconComponentBase {\n  static readonly slug = 'plus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'plus',\n    'add',\n    'new',\n    'create',\n    'positive',\n    'ajouter',\n    'añadir',\n    'agregar',\n    'συν',\n    'προσθήκη',\n    'dodaj',\n    'plus',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rotate-ccw',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"1 4 1 10 7 10\" />\n      <path d=\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\" />\n    </svg>\n  `,\n})\nexport class RotateCcwIconComponent extends IconComponentBase {\n  static readonly slug = 'rotate-ccw';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'rotate-ccw',\n    'rotate',\n    'ccw',\n    'counterclockwise',\n    'undo',\n    'turn',\n    'tourner',\n    'girar',\n    'περιστροφή',\n    'obróć',\n    'cofnij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trash',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"3 6 5 6 21 6\" />\n      <path\n        d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n    </svg>\n  `,\n})\nexport class TrashIconComponent extends IconComponentBase {\n  static readonly slug = 'trash';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'trash',\n    'delete',\n    'remove',\n    'bin',\n    'garbage',\n    'waste',\n    'poubelle',\n    'supprimer',\n    'basura',\n    'eliminar',\n    'κάδος',\n    'διαγραφή',\n    'kosz',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n/** Shape preset of a skeleton placeholder. */\nexport type SkeletonVariant = 'text' | 'circle' | 'rect';\n\n/**\n * Loading placeholder rendered as a pulsing block in one of three shapes.\n * Honours `prefers-reduced-motion` by suppressing the pulse animation when\n * the user has expressed that preference.\n */\n@Component({\n  selector: 'ea-skeleton',\n  templateUrl: './skeleton.component.html',\n  styleUrl: './skeleton.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonComponent {\n  readonly variant = input<SkeletonVariant>('text');\n  readonly width = input<string | undefined>(undefined);\n  readonly height = input<string | undefined>(undefined);\n  readonly animated = input<boolean>(true);\n\n  readonly hostStyles = computed(() => {\n    const styles: Record<string, string> = {};\n    if (this.width()) {\n      styles['width'] = this.width()!;\n    }\n    if (this.height()) {\n      styles['height'] = this.height()!;\n    }\n    return styles;\n  });\n\n  readonly hostClasses = computed(() => ({\n    [`ea-skeleton--${this.variant()}`]: true,\n    'ea-skeleton--animated': this.animated(),\n  }));\n}\n","<div\n  class=\"ea-skeleton\"\n  [class.ea-skeleton--text]=\"variant() === 'text'\"\n  [class.ea-skeleton--circle]=\"variant() === 'circle'\"\n  [class.ea-skeleton--rect]=\"variant() === 'rect'\"\n  [class.ea-skeleton--animated]=\"animated()\"\n  [style]=\"hostStyles()\"\n  aria-hidden=\"true\">\n</div>\n","// Elements that carry their own interactive semantics, so ARIA state applies\n// to them directly rather than to a wrapper around them.\nconst INTERACTIVE_SELECTOR =\n  'button, a[href], input, select, textarea, summary, [role]:not([role=\"none\"]):not([role=\"presentation\"])';\n\n/**\n * Resolves the element that should carry ARIA state a directive applies to its\n * host. A component wrapper such as `<ea-button>` is a roleless custom element,\n * so attributes left on it are never announced; they belong on the interactive\n * element the component renders inside. Falls back to the host when it exposes\n * no inner control.\n */\nexport function resolveAriaTarget(host: HTMLElement): HTMLElement {\n  if (host.matches(INTERACTIVE_SELECTOR)) {\n    return host;\n  }\n  return host.querySelector<HTMLElement>(INTERACTIVE_SELECTOR) ?? host;\n}\n","/**\n * Whether an element's text is clipped by its own box, i.e. whether an\n * `text-overflow: ellipsis` on it is actually showing. The one-pixel slack\n * absorbs the sub-pixel rounding a fractional layout leaves behind, which\n * would otherwise read as a permanent overflow on text that fits exactly.\n */\nexport function isTruncated(el: HTMLElement): boolean {\n  return el.scrollWidth > el.clientWidth + 1;\n}\n\n/**\n * Whether `el` or anything rendered inside it is cutting content off with no\n * way to reach it, on either axis (an ellipsis, or a line clamp). The box that\n * does the cutting is often further in than the one a caller holds, so the\n * whole subtree counts. A box the content can be scrolled through does not:\n * nothing is out of reach there.\n */\nexport function isContentClipped(el: HTMLElement): boolean {\n  const clipped = (node: HTMLElement): boolean => {\n    const style = getComputedStyle(node);\n    const cut = (overflow: string): boolean =>\n      overflow === 'hidden' || overflow === 'clip';\n    return (\n      (cut(style.overflowX) && node.scrollWidth > node.clientWidth + 1) ||\n      (cut(style.overflowY) && node.scrollHeight > node.clientHeight + 1)\n    );\n  };\n  return clipped(el) || [...el.querySelectorAll<HTMLElement>('*')].some(clipped);\n}\n","import {\n  Directive,\n  ElementRef,\n  type EmbeddedViewRef,\n  type OnDestroy,\n  Renderer2,\n  RendererStyleFlags2,\n  TemplateRef,\n  ViewContainerRef,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { resolveAriaTarget } from '../aria-target';\nimport { isRtl } from '../direction';\nimport { computePopoverPosition } from '../popover/popover-positioning';\nimport { enterTopLayer, leaveTopLayer } from '../top-layer';\nimport { isContentClipped } from '../truncation';\n\n/** Placement of the tooltip relative to its host element. */\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/** Gap between the trigger and the bubble. */\nconst TRIGGER_GAP = 8;\n/** Matches the `--ea-tooltip-viewport-margin` fallback in `_tooltip.scss`. */\nconst DEFAULT_VIEWPORT_MARGIN = 8;\n\n/** Keeps one axis inside the viewport, leaving `margin` at each edge. */\nfunction clampToViewport(\n  value: number,\n  size: number,\n  viewport: number,\n  margin: number,\n): number {\n  return Math.min(Math.max(value, margin), Math.max(margin, viewport - size - margin));\n}\n\n/**\n * Attaches a positioned tooltip to its host element. Shows on hover and\n * focus, hides on leave/blur or Escape (a blur while the pointer is still on\n * the trigger keeps the bubble open), and wires up `aria-describedby` so\n * the tooltip text is announced to assistive technology. Accepts either a\n * plain string or a `TemplateRef` for styled multi-part content. Binding an\n * empty string suppresses the bubble, which is how a host shows one only in\n * some states (a label that is currently truncated, say).\n *\n * The directive listens on `focusin`, not `focus`, so it fires for a focusable\n * descendant of the host as well as the host itself. A host listener paired\n * with `eaTooltip` has to use `focusin` for the same reason: `focus` does not\n * bubble, so it never fires when the focus lands on a child.\n *\n * Bubbles never grow past the viewport: they clamp to it, minus\n * `--ea-tooltip-viewport-margin` on each side, and scroll whatever the clamp\n * cuts off. A clamped bubble takes pointer events so that scrollbar is\n * reachable, which also means it waits `dismissDelay` before hiding rather than\n * going the moment the pointer leaves the trigger. Bubbles that fit stay\n * display-only.\n */\n@Directive({\n  selector: '[eaTooltip]',\n})\nexport class TooltipDirective implements OnDestroy {\n  private readonly el = inject(ElementRef);\n  private readonly renderer = inject(Renderer2);\n  private readonly viewContainer = inject(ViewContainerRef);\n\n  readonly eaTooltip = input.required<string | TemplateRef<unknown>>();\n  readonly tooltipPosition = input<TooltipPosition>('top');\n  /**\n   * Whether a bubble with no room on the requested side moves to the opposite\n   * one. The side is resolved when the bubble opens and held while it still\n   * fits, so a bubble does not hop across its trigger mid-hover.\n   */\n  readonly flip = input<boolean>(true);\n  /**\n   * Show only while the trigger is cutting its own content off, which is how a\n   * label that ellipsizes reveals its full text without a bubble on every\n   * label that fits. The whole subtree is measured, since the box doing the\n   * cutting is usually an inner one.\n   */\n  readonly whenClipped = input<boolean>(false);\n  /**\n   * Max width in px; the text wraps at this width. Clamped to a 50px floor, and\n   * to the viewport, which no value can push the bubble past.\n   */\n  readonly maxWidth = input<number | undefined>(200);\n  /**\n   * Grace period in ms before a bubble the viewport clamp made scrollable hides\n   * after the pointer leaves, long enough to cross the gap onto the bubble and\n   * reach its scrollbar. Bubbles that fit hide immediately.\n   */\n  readonly dismissDelay = input<number>(150);\n\n  private tooltipEl: HTMLElement | null = null;\n  /** Side the open bubble settled on, held across repositions while it fits. */\n  private placedPosition: TooltipPosition = 'top';\n  private templateView: EmbeddedViewRef<unknown> | null = null;\n  private scrollable = false;\n  private hideTimer: ReturnType<typeof setTimeout> | null = null;\n  /* True while the pointer is over the trigger, so a blur alone (a button\n     disabling itself once its action reaches a limit) does not hide a bubble\n     the hover is still holding open. */\n  private pointerInside = false;\n  private readonly tooltipId = `ea-tooltip-${Math.random().toString(36).slice(2, 9)}`;\n\n  // Touch devices fire `mouseenter` on tap but never fire `mouseleave` until\n  // the user taps elsewhere, leaving hover-driven tooltips latched open. Track\n  // hover capability reactively via the MediaQueryList so pointer listeners\n  // are attached/detached when the device gains or loses hover (DevTools mobile\n  // mode toggling, Bluetooth peripherals connecting, etc.) without a refresh.\n  private readonly hoverMql =\n    typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n      ? window.matchMedia('(hover: hover)')\n      : null;\n\n  private readonly showHandler = () => {\n    this.pointerInside = true;\n    this.show();\n  };\n  private readonly pointerLeaveHandler = () => {\n    this.pointerInside = false;\n    this.requestHide();\n  };\n  private readonly hideHandler = () => this.requestHide();\n  private readonly focusoutHandler = () => {\n    if (!this.pointerInside) {\n      this.requestHide();\n    }\n  };\n  private readonly bubbleEnterHandler = () => this.cancelPendingHide();\n  /* `:focus-visible` is supported in every targeted browser (Chrome, Firefox,\n     Safari, Edge). Feature-detect so non-browser test environments (jsdom)\n     fall back to always-on-focus behaviour rather than never showing. */\n  private readonly supportsFocusVisible =\n    typeof CSS !== 'undefined' && CSS.supports?.('selector(:focus-visible)') === true;\n  /* Show on focus only when the focus is keyboard-driven. Clicking the\n     trigger (e.g. a button that opens a menu) returns focus to the trigger\n     after the menu closes; without this filter, the tooltip would latch\n     open even though the user has moved their cursor away. `:focus-visible`\n     is the browser's signal for \"keyboard activation\", which is exactly\n     when a tooltip on focus is welcome. */\n  private readonly focusHandler = (event: FocusEvent) => {\n    // focusin bubbles, so the focused element may be a child of the host (e.g. the\n    // inner <button> of <ea-button>); test it, not the host, for keyboard focus.\n    const target = event.target as HTMLElement;\n    if (!this.supportsFocusVisible || target.matches(':focus-visible')) {\n      this.show();\n    }\n  };\n  /* Registered on `document` while the tooltip is visible so Escape dismisses\n     hover-triggered tooltips too, wherever focus happens to be (WCAG 1.4.13). */\n  private readonly keydownHandler = (event: KeyboardEvent) => {\n    if (event.key === 'Escape' && this.tooltipEl) {\n      this.hide();\n    }\n  };\n  private readonly hoverChangeHandler = (event: MediaQueryListEvent) =>\n    this.syncPointerListeners(event.matches);\n  /* Re-runs the clamp so the tooltip stays inside the viewport when the page\n     reflows under it (window resize, ancestor scroll, async content pushing\n     the trigger around). Coalesced with rAF to keep scroll handling cheap. */\n  private rafId: number | null = null;\n  private readonly repositionHandler = () => {\n    if (!this.tooltipEl || this.rafId !== null) {\n      return;\n    }\n    this.rafId = requestAnimationFrame(() => {\n      this.rafId = null;\n      if (this.tooltipEl) {\n        this.positionTooltip();\n      }\n    });\n  };\n  /* A resize, and a page zoom with it, re-lays out the text at a new\n     device-pixel grid, so the width is re-derived before the bubble is placed\n     again. Scrolling moves the bubble without touching its text. */\n  private readonly relayoutHandler = () => {\n    this.shrinkToContent();\n    this.repositionHandler();\n  };\n  /* Capture-phase scroll listener catches scrolls on any ancestor, not just\n     window. Without `capture: true`, only window-level scrolls fire here. */\n  private readonly scrollListenerOptions: AddEventListenerOptions = {\n    passive: true,\n    capture: true,\n  };\n  /* Watches the trigger for size or position changes that don't fire any\n     event (CSS transitions, image loads, sibling layout shifts). */\n  private resizeObserver: ResizeObserver | null = null;\n\n  constructor() {\n    const native = this.el.nativeElement;\n    // focusin/focusout (not focus/blur) so the tooltip still shows when the host\n    // wraps the focusable element (focus does not bubble; focusin does).\n    native.addEventListener('focusin', this.focusHandler);\n    native.addEventListener('focusout', this.focusoutHandler);\n\n    this.syncPointerListeners(this.hoverMql?.matches ?? true);\n    this.hoverMql?.addEventListener('change', this.hoverChangeHandler);\n  }\n\n  ngOnDestroy(): void {\n    const native = this.el.nativeElement;\n    native.removeEventListener('mouseenter', this.showHandler);\n    native.removeEventListener('mouseleave', this.pointerLeaveHandler);\n    native.removeEventListener('focusin', this.focusHandler);\n    native.removeEventListener('focusout', this.focusoutHandler);\n    this.hoverMql?.removeEventListener('change', this.hoverChangeHandler);\n    this.hide();\n  }\n\n  private syncPointerListeners(canHover: boolean): void {\n    const native = this.el.nativeElement;\n    // Remove first to keep this idempotent; addEventListener with the same\n    // handler is a no-op anyway, but pairing keeps the bookkeeping obvious.\n    native.removeEventListener('mouseenter', this.showHandler);\n    native.removeEventListener('mouseleave', this.pointerLeaveHandler);\n    if (canHover) {\n      native.addEventListener('mouseenter', this.showHandler);\n      native.addEventListener('mouseleave', this.pointerLeaveHandler);\n    } else {\n      this.pointerInside = false;\n      this.hide();\n    }\n  }\n\n  private show(): void {\n    if (this.tooltipEl) {\n      // The pointer came back to the trigger before a scheduled hide fired\n      this.cancelPendingHide();\n      return;\n    }\n    if (!this.eaTooltip()) {\n      return;\n    }\n    if (this.whenClipped() && !isContentClipped(this.el.nativeElement)) {\n      return;\n    }\n\n    this.tooltipEl = this.renderer.createElement('div');\n    this.renderer.addClass(this.tooltipEl, 'ea-tooltip');\n    this.placedPosition = this.tooltipPosition();\n    this.renderer.addClass(this.tooltipEl, `ea-tooltip--${this.placedPosition}`);\n    this.renderer.setAttribute(this.tooltipEl, 'role', 'tooltip');\n    this.renderer.setAttribute(this.tooltipEl, 'id', this.tooltipId);\n    const content = this.eaTooltip();\n    if (content instanceof TemplateRef) {\n      this.templateView = this.viewContainer.createEmbeddedView(content);\n      this.templateView.detectChanges();\n      for (const node of this.templateView.rootNodes) {\n        this.renderer.appendChild(this.tooltipEl, node);\n      }\n    } else {\n      this.tooltipEl!.textContent = content;\n    }\n\n    const maxWidth = this.maxWidth();\n    if (maxWidth != null) {\n      this.renderer.setStyle(\n        this.tooltipEl,\n        '--ea-tooltip-max-width',\n        `${Math.max(50, maxWidth)}px`,\n        RendererStyleFlags2.DashCase,\n      );\n      this.renderer.addClass(this.tooltipEl, 'ea-tooltip--wrapping');\n    }\n\n    this.renderer.appendChild(document.body, this.tooltipEl);\n    // Inert until the bubble turns out to be scrollable and takes the pointer\n    this.tooltipEl!.addEventListener('mouseenter', this.bubbleEnterHandler);\n    this.tooltipEl!.addEventListener('mouseleave', this.hideHandler);\n    // Before any measuring below: a trigger inside a modal needs its bubble in\n    // the top layer to be visible at all, and a promoted bubble only has layout\n    // once shown.\n    enterTopLayer(this.tooltipEl!, this.el.nativeElement);\n    document.addEventListener('keydown', this.keydownHandler);\n    this.appendDescribedBy();\n    this.shrinkToContent();\n    this.positionTooltip();\n    this.attachRepositionListeners();\n  }\n\n  /* A wrapping `max-width` box keeps its full max-width, leaving dead space to\n     the right of every line that ends short. Pin the width to the longest\n     rendered line so the bubble hugs its text. A Range over the contents spans\n     all line boxes, so its bounding width is the longest line; it returns 0 in\n     jsdom, where we leave the width alone. */\n  private shrinkToContent(): void {\n    if (this.maxWidth() == null || !this.tooltipEl) {\n      return;\n    }\n    // A width pinned earlier is the wrap point the text would be measured\n    // against, so the bubble could only ever get narrower from here\n    this.renderer.removeStyle(this.tooltipEl, 'width');\n    const range = document.createRange();\n    range.selectNodeContents(this.tooltipEl);\n    const textWidth = range.getBoundingClientRect().width;\n    if (textWidth <= 0) {\n      return;\n    }\n    const style = getComputedStyle(this.tooltipEl);\n    /* Whatever the border box holds beyond its content box: padding, borders,\n       and a scrollbar if the height clamp put one there. Summed from the\n       fractional longhands, since WebKit resolves computed `width` to the\n       border box under `box-sizing: border-box`. Only the scrollbar goes\n       through the whole-pixel `offsetWidth - clientWidth`. */\n    const paddings = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n    const borders =\n      parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n    const scrollbar = Math.max(\n      0,\n      this.tooltipEl.offsetWidth - this.tooltipEl.clientWidth - borders,\n    );\n    const horizontalChrome =\n      style.boxSizing === 'border-box' ? paddings + borders + scrollbar : scrollbar;\n    if (!Number.isFinite(horizontalChrome)) {\n      return;\n    }\n    this.renderer.setStyle(\n      this.tooltipEl,\n      'width',\n      `${Math.ceil(textWidth + horizontalChrome)}px`,\n    );\n  }\n\n  /* A scrollable bubble has to be reachable, so leaving the trigger only\n     schedules the hide and moving onto the bubble in time cancels it. A bubble\n     that fits shows nothing the pointer needs, so it goes straight away. */\n  private requestHide(): void {\n    if (!this.scrollable) {\n      this.hide();\n      return;\n    }\n    this.cancelPendingHide();\n    this.hideTimer = setTimeout(\n      () => {\n        this.hideTimer = null;\n        this.hide();\n      },\n      Math.max(0, this.dismissDelay()),\n    );\n  }\n\n  private cancelPendingHide(): void {\n    if (this.hideTimer !== null) {\n      clearTimeout(this.hideTimer);\n      this.hideTimer = null;\n    }\n  }\n\n  private hide(): void {\n    this.cancelPendingHide();\n    this.detachRepositionListeners();\n    if (this.rafId !== null) {\n      cancelAnimationFrame(this.rafId);\n      this.rafId = null;\n    }\n    if (this.tooltipEl) {\n      document.removeEventListener('keydown', this.keydownHandler);\n      leaveTopLayer(this.tooltipEl);\n      this.tooltipEl.remove();\n      this.tooltipEl = null;\n      this.scrollable = false;\n      this.templateView?.destroy();\n      this.templateView = null;\n      this.removeDescribedBy();\n    }\n  }\n\n  private attachRepositionListeners(): void {\n    /* Guard against server-side rendering: ngOnDestroy can fire during SSR\n       teardown and reach here even though the tooltip never actually shows. */\n    if (typeof window === 'undefined') {\n      return;\n    }\n    window.addEventListener('resize', this.relayoutHandler);\n    /* `capture: true` so we catch scrolls on any ancestor (modal body, sidebar,\n       overflow:auto wrappers), not just the window. */\n    window.addEventListener('scroll', this.repositionHandler, this.scrollListenerOptions);\n    if (typeof ResizeObserver !== 'undefined') {\n      this.resizeObserver = new ResizeObserver(this.relayoutHandler);\n      this.resizeObserver.observe(this.el.nativeElement);\n      /* Body observer catches layout shifts that don't move the trigger\n         (sibling content loads pushing the viewport's bottom around). */\n      this.resizeObserver.observe(document.body);\n    }\n  }\n\n  private detachRepositionListeners(): void {\n    if (typeof window === 'undefined') {\n      return;\n    }\n    window.removeEventListener('resize', this.relayoutHandler);\n    window.removeEventListener(\n      'scroll',\n      this.repositionHandler,\n      this.scrollListenerOptions,\n    );\n    this.resizeObserver?.disconnect();\n    this.resizeObserver = null;\n  }\n\n  private appendDescribedBy(): void {\n    const native = resolveAriaTarget(this.el.nativeElement);\n    const existing = (native.getAttribute('aria-describedby') ?? '').trim();\n    const tokens = existing ? existing.split(/\\s+/) : [];\n    if (!tokens.includes(this.tooltipId)) {\n      tokens.push(this.tooltipId);\n    }\n    this.renderer.setAttribute(native, 'aria-describedby', tokens.join(' '));\n  }\n\n  private removeDescribedBy(): void {\n    const native = resolveAriaTarget(this.el.nativeElement);\n    const existing = (native.getAttribute('aria-describedby') ?? '').trim();\n    const tokens = existing.split(/\\s+/).filter((t: string) => t && t !== this.tooltipId);\n    if (tokens.length) {\n      this.renderer.setAttribute(native, 'aria-describedby', tokens.join(' '));\n    } else {\n      this.renderer.removeAttribute(native, 'aria-describedby');\n    }\n  }\n\n  private positionTooltip(): void {\n    if (!this.tooltipEl) {\n      return;\n    }\n\n    const hostRect = this.el.nativeElement.getBoundingClientRect();\n\n    /* Hide if the trigger itself has scrolled behind a sticky/fixed ancestor\n       (typical app-header pattern) to keep the tooltip from tracking the\n       trigger's coordinates into the header chrome. A display-only bubble is\n       invisible to `elementFromPoint` (`pointer-events: none`), so the hit-test\n       reflects what the user actually sees at the trigger's centre; a scrollable\n       one is not, and finding it there means the trigger is still on screen with\n       its own bubble over it, not chrome. Also covers fully off-screen triggers\n       without a separate viewport check. Feature-detected so jsdom (no\n       `elementFromPoint`) and SSR skip the check rather than erroring. */\n    const canHitTest = typeof document?.elementFromPoint === 'function';\n    if (canHitTest) {\n      const cx = hostRect.left + hostRect.width / 2;\n      const cy = hostRect.top + hostRect.height / 2;\n      const topmost = document.elementFromPoint(cx, cy);\n      const visible =\n        topmost &&\n        (this.el.nativeElement.contains(topmost) || this.tooltipEl.contains(topmost));\n      if (!visible) {\n        this.hide();\n        return;\n      }\n    }\n\n    // The bubble lives on <body>, escaping the host's dir context, so mirror\n    // the host's resolved direction onto it.\n    this.renderer.setAttribute(\n      this.tooltipEl,\n      'dir',\n      isRtl(this.el.nativeElement) ? 'rtl' : 'ltr',\n    );\n    // Read after the stylesheet's clamp has applied, so a bubble the viewport cut\n    // down is placed at the size it actually renders at\n    const tooltipRect = this.tooltipEl.getBoundingClientRect();\n    const viewport = {\n      width: document.documentElement.clientWidth,\n      height: document.documentElement.clientHeight,\n    };\n    const margin = this.viewportMargin();\n    /* Defer placement math to the shared popover positioning helper. The side\n       already resolved is the one fed back in, so a bubble moves off it only\n       once it stops fitting rather than hopping across the trigger mid-hover;\n       with `flip` off it is nudged inward at the edges instead. */\n    const placed = computePopoverPosition(\n      hostRect,\n      { width: tooltipRect.width, height: tooltipRect.height },\n      viewport,\n      {\n        placement: this.placedPosition,\n        offset: TRIGGER_GAP,\n        flip: this.flip(),\n        margin,\n      },\n    );\n    this.applyPlacedPosition(placed.placement as TooltipPosition);\n    /* The helper leaves the placement axis alone so a panel too tall for the\n       space beside its anchor can overflow and scroll with the page. A bubble\n       cannot: it is clamped to the viewport and fixed there, so anything pushed\n       past an edge is simply unreachable. Pin both axes and accept that a bubble\n       as tall as the viewport ends up over its own trigger. */\n    const left = clampToViewport(placed.left, tooltipRect.width, viewport.width, margin);\n    const top = clampToViewport(placed.top, tooltipRect.height, viewport.height, margin);\n\n    /* Hide if the calculated bubble would render on top of a sticky/fixed\n       overlay (typically the app header). Catches the case where the trigger\n       is visible just below the header but a `position: top` tooltip would\n       protrude into the header chrome; a trigger-only hit-test can't see this\n       because the trigger itself is still on top. Walks the ancestor chain of\n       whatever the user would see at the bubble's centre, looking for the\n       first positioned (sticky / fixed) ancestor. */\n    if (canHitTest) {\n      const tcx = left + tooltipRect.width / 2;\n      const tcy = top + tooltipRect.height / 2;\n      const underBubble = document.elementFromPoint(tcx, tcy);\n      if (\n        underBubble &&\n        !this.el.nativeElement.contains(underBubble) &&\n        !this.tooltipEl.contains(underBubble)\n      ) {\n        let cursor: Element | null = underBubble;\n        while (cursor && cursor !== document.body) {\n          /* A fixed / sticky container that also holds the trigger (a modal\n             dialog, a popover surface) is the surface the bubble sits on, not\n             chrome covering it, so stop before mistaking it for an overlay. */\n          if (cursor.contains(this.el.nativeElement)) {\n            break;\n          }\n          const pos = getComputedStyle(cursor).position;\n          if (pos === 'fixed' || pos === 'sticky') {\n            this.hide();\n            return;\n          }\n          cursor = cursor.parentElement;\n        }\n      }\n    }\n\n    this.renderer.setStyle(this.tooltipEl, 'top', `${top}px`);\n    this.renderer.setStyle(this.tooltipEl, 'left', `${left}px`);\n    this.syncScrollable();\n  }\n\n  private applyPlacedPosition(position: TooltipPosition): void {\n    if (!this.tooltipEl || position === this.placedPosition) {\n      return;\n    }\n    this.renderer.removeClass(this.tooltipEl, `ea-tooltip--${this.placedPosition}`);\n    this.renderer.addClass(this.tooltipEl, `ea-tooltip--${position}`);\n    this.placedPosition = position;\n  }\n\n  /* The stylesheet's viewport cap and the margin the bubble is placed against\n     have to agree, so both read the same token. */\n  private viewportMargin(): number {\n    if (!this.tooltipEl) {\n      return DEFAULT_VIEWPORT_MARGIN;\n    }\n    const declared = parseFloat(\n      getComputedStyle(this.tooltipEl).getPropertyValue('--ea-tooltip-viewport-margin'),\n    );\n    return Number.isFinite(declared) ? declared : DEFAULT_VIEWPORT_MARGIN;\n  }\n\n  /* Content the clamp cut off is only reachable once the bubble takes the\n     pointer. Re-checked on every reposition, since a resize can bring the cap\n     into play or take it back out under a bubble that is already open. */\n  private syncScrollable(): void {\n    if (!this.tooltipEl) {\n      return;\n    }\n    // A pixel of slack: sub-pixel content rounds `scrollHeight` up on a box that fits\n    const scrollable =\n      this.tooltipEl.scrollHeight > this.tooltipEl.clientHeight + 1 ||\n      this.tooltipEl.scrollWidth > this.tooltipEl.clientWidth + 1;\n    if (scrollable === this.scrollable) {\n      return;\n    }\n    this.scrollable = scrollable;\n    if (scrollable) {\n      this.renderer.addClass(this.tooltipEl, 'ea-tooltip--scrollable');\n    } else {\n      this.renderer.removeClass(this.tooltipEl, 'ea-tooltip--scrollable');\n    }\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  Injector,\n  type OnDestroy,\n  ViewEncapsulation,\n  afterNextRender,\n  computed,\n  effect,\n  inject,\n  input,\n  output,\n  signal,\n  untracked,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { CameraIconComponent } from '../icons/camera.component';\nimport { MinusIconComponent } from '../icons/minus.component';\nimport { PlusIconComponent } from '../icons/plus.component';\nimport { RotateCcwIconComponent } from '../icons/rotate-ccw.component';\nimport { TrashIconComponent } from '../icons/trash.component';\nimport { SkeletonComponent } from '../skeleton/skeleton.component';\nimport { TooltipDirective } from '../tooltip/tooltip.directive';\nimport { uniqueId } from '../unique-id';\n\n/** Crop mask shape applied to the exported image. */\nexport type AvatarEditorShape = 'circle' | 'square';\n\n/** Result of a successful crop, providing both a `Blob` and a data URL. */\nexport interface AvatarEditorCropEvent {\n  blob: Blob;\n  dataUrl: string;\n}\n\n/** Persisted pan/zoom state, suitable for restoring an in-progress edit. */\nexport interface AvatarEditorCropState {\n  zoom: number;\n  offsetX: number;\n  offsetY: number;\n}\n\nconst ZOOM_TOLERANCE = 1e-3;\nconst OFFSET_TOLERANCE = 0.5;\n\n/**\n * Canvas-based image editor for cropping avatars. Supports drag-and-drop\n * upload, mouse/touch panning, zoom via slider or scroll wheel, and exports\n * the cropped image as either a `Blob` or a data URL.\n */\n@Component({\n  selector: 'ea-avatar-editor',\n  imports: [\n    CameraIconComponent,\n    MinusIconComponent,\n    NgClass,\n    PlusIconComponent,\n    RotateCcwIconComponent,\n    SkeletonComponent,\n    TooltipDirective,\n    TrashIconComponent,\n  ],\n  templateUrl: './avatar-editor.component.html',\n  styleUrl: './avatar-editor.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarEditorComponent implements OnDestroy {\n  readonly canvasEl = viewChild<ElementRef<HTMLCanvasElement>>('canvasEl');\n  readonly fileInputEl = viewChild<ElementRef<HTMLInputElement>>('fileInputEl');\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly shape = input<AvatarEditorShape>('circle');\n  readonly canvasSize = input<number>(200);\n  readonly currentSrc = input<string | undefined>(undefined);\n  readonly loading = input<boolean>(false);\n  readonly accept = input<string>('image/*');\n  readonly maxFileSize = input<number>(5 * 1024 * 1024); // 5 MB\n  readonly minZoom = input<number>(1);\n  readonly maxZoom = input<number>(3);\n  readonly exportQuality = input<number>(0.92);\n  readonly exportType = input<string>('image/png');\n\n  readonly cropState = input<AvatarEditorCropState | null | undefined>();\n\n  /** Fires when the user finalises a crop via {@link exportCrop}; payload contains both `Blob` and data URL. */\n  readonly cropped = output<AvatarEditorCropEvent>();\n  /** Fires when a file is chosen from disk or dropped onto the editor. */\n  readonly fileSelected = output<File>();\n  /** Fires when the current image is cleared via the remove control. */\n  readonly removed = output<void>();\n  /** Fires with a human-readable message when validation fails (wrong type, oversized file, etc.). */\n  readonly errored = output<string>();\n  /** Fires whenever the user pans or zooms the image; useful for persisting in-progress crops. */\n  readonly cropStateChanged = output<AvatarEditorCropState>();\n\n  readonly instructionsId = uniqueId('ea-avatar-editor-instructions');\n\n  readonly hasImage = signal(false);\n  readonly lastError = signal<string | null>(null);\n  readonly isDragOver = signal(false);\n  readonly isAtOriginal = signal(false);\n  readonly isLoading = computed(() => this.isFetching() || this.loading());\n  readonly zoom = signal(1);\n  readonly canRevert = computed(() => !this.isAtOriginal() && this.originalCaptured());\n  /** True when the visible crop is darker than mid-grey; drives the `--on-light` class on the overlay so the \"Change photo\" affordance stays readable. */\n  readonly isImageDark = signal(true);\n\n  private image: HTMLImageElement | null = null;\n  private offsetX = 0;\n  private offsetY = 0;\n  private dragStartX = 0;\n  private dragStartY = 0;\n  private isDragging = false;\n  private hasDragged = false;\n  private initialOffsetX = 0;\n  private initialOffsetY = 0;\n  private _suppressCropStateEmit = false;\n  private readonly isFetching = signal(false);\n  private readonly originalCaptured = signal(false);\n  private originalImage: HTMLImageElement | null = null;\n  private originalCropState: { zoom: number; offsetX: number; offsetY: number } | null =\n    null;\n\n  readonly hostClasses = computed(() => ({\n    [`ea-avatar-editor--${this.shape()}`]: true,\n    'ea-avatar-editor--has-image': this.hasImage(),\n    'ea-avatar-editor--drag-over': this.isDragOver(),\n  }));\n\n  private readonly injector = inject(Injector);\n  private readonly boundWheel = (e: WheelEvent) => this.onWheel(e);\n\n  constructor() {\n    effect(() => {\n      const src = this.currentSrc();\n      if (!src) {\n        this.isFetching.set(false);\n        if (!this.originalCaptured()) {\n          this.originalCaptured.set(true);\n          this.originalImage = null;\n          this.originalCropState = null;\n          this.isAtOriginal.set(true);\n        }\n        return;\n      }\n      this.originalCaptured.set(false);\n      this.originalImage = null;\n      this.originalCropState = null;\n      this.loadFromUrl(src, untracked(() => this.cropState()) ?? null, true);\n    });\n\n    effect(() => {\n      this.canvasSize();\n      if (this.image) {\n        // Offsets were computed against the previous frame, so a shrink would\n        // otherwise leave the image drawn outside it with a gap showing\n        this.clampOffset();\n        untracked(() => this.syncAtOriginal());\n        this.draw();\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    const canvas = this.canvasEl()?.nativeElement;\n    canvas?.removeEventListener('wheel', this.boundWheel);\n    // A drag in flight owns document-level listeners; destroying mid-drag\n    // (route change, dialog close) would otherwise leave them bound forever\n    document.removeEventListener('mousemove', this.onMouseMoveBound);\n    document.removeEventListener('mouseup', this.onMouseUpBound);\n    document.removeEventListener('touchmove', this.onTouchMoveBound);\n    document.removeEventListener('touchend', this.onTouchEndBound);\n  }\n\n  // Handled alongside dragover so browsers that settle the drop target on\n  // dragenter take one, and so a wrapping element listening for the pair is not\n  // left with its own drag state stuck on\n  onDragEnter(event: DragEvent): void {\n    this.acceptDrag(event);\n  }\n\n  onDragOver(event: DragEvent): void {\n    this.acceptDrag(event);\n  }\n\n  private acceptDrag(event: DragEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    if (event.dataTransfer) {\n      event.dataTransfer.dropEffect = 'copy';\n    }\n    this.isDragOver.set(true);\n  }\n\n  onDragLeave(event: DragEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    // dragleave also fires when the pointer crosses onto a child of the drop\n    // target (the canvas, the hover overlay), where the drop is still on offer\n    const target = event.currentTarget as HTMLElement | null;\n    const next = event.relatedTarget as Node | null;\n    if (target && next && target.contains(next)) {\n      return;\n    }\n    this.isDragOver.set(false);\n  }\n\n  onDrop(event: DragEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.isDragOver.set(false);\n\n    const file = event.dataTransfer?.files[0];\n    if (file) {\n      this.loadFile(file);\n    }\n  }\n\n  onFileSelected(event: Event): void {\n    const input = event.target as HTMLInputElement;\n    const file = input.files?.[0];\n    if (file) {\n      this.loadFile(file);\n    }\n    input.value = '';\n  }\n\n  /** Opens the native file picker dialog. */\n  openFilePicker(): void {\n    this.fileInputEl()?.nativeElement.click();\n  }\n\n  onMouseDown(event: MouseEvent): void {\n    if (!this.hasImage()) {\n      return;\n    }\n    event.preventDefault();\n    this.isDragging = true;\n    this.hasDragged = false;\n    this.dragStartX = event.clientX;\n    this.dragStartY = event.clientY;\n    this.initialOffsetX = this.offsetX;\n    this.initialOffsetY = this.offsetY;\n\n    document.addEventListener('mousemove', this.onMouseMoveBound);\n    document.addEventListener('mouseup', this.onMouseUpBound);\n  }\n\n  onTouchStart(event: TouchEvent): void {\n    if (!this.hasImage() || event.touches.length !== 1) {\n      return;\n    }\n    const touch = event.touches[0];\n    this.isDragging = true;\n    this.hasDragged = false;\n    this.dragStartX = touch.clientX;\n    this.dragStartY = touch.clientY;\n    this.initialOffsetX = this.offsetX;\n    this.initialOffsetY = this.offsetY;\n\n    document.addEventListener('touchmove', this.onTouchMoveBound, { passive: false });\n    document.addEventListener('touchend', this.onTouchEndBound);\n  }\n\n  private readonly onMouseMoveBound = (e: MouseEvent) => this.onMouseMove(e);\n  private readonly onMouseUpBound = () => this.onMouseUp();\n  private readonly onTouchMoveBound = (e: TouchEvent) => this.onTouchMove(e);\n  private readonly onTouchEndBound = () => this.onTouchEnd();\n\n  private onMouseMove(event: MouseEvent): void {\n    if (!this.isDragging) {\n      return;\n    }\n    const dx = event.clientX - this.dragStartX;\n    const dy = event.clientY - this.dragStartY;\n    if (Math.abs(dx) > 3 || Math.abs(dy) > 3) {\n      this.hasDragged = true;\n    }\n    this.offsetX = this.initialOffsetX + dx;\n    this.offsetY = this.initialOffsetY + dy;\n    this.clampOffset();\n    this.syncAtOriginal();\n    this.draw();\n    this.emitCropStateChange();\n  }\n\n  private onMouseUp(): void {\n    if (!this.hasDragged) {\n      this.openFilePicker();\n    }\n    this.isDragging = false;\n    document.removeEventListener('mousemove', this.onMouseMoveBound);\n    document.removeEventListener('mouseup', this.onMouseUpBound);\n  }\n\n  private onTouchMove(event: TouchEvent): void {\n    if (!this.isDragging || event.touches.length !== 1) {\n      return;\n    }\n    event.preventDefault();\n    const touch = event.touches[0];\n    const dx = touch.clientX - this.dragStartX;\n    const dy = touch.clientY - this.dragStartY;\n    if (Math.abs(dx) > 3 || Math.abs(dy) > 3) {\n      this.hasDragged = true;\n    }\n    this.offsetX = this.initialOffsetX + dx;\n    this.offsetY = this.initialOffsetY + dy;\n    this.clampOffset();\n    this.syncAtOriginal();\n    this.draw();\n    this.emitCropStateChange();\n  }\n\n  private onTouchEnd(): void {\n    if (!this.hasDragged) {\n      this.openFilePicker();\n    }\n    this.isDragging = false;\n    document.removeEventListener('touchmove', this.onTouchMoveBound);\n    document.removeEventListener('touchend', this.onTouchEndBound);\n  }\n\n  private onWheel(event: WheelEvent): void {\n    if (!this.hasImage()) {\n      return;\n    }\n    event.preventDefault();\n    const delta = event.deltaY > 0 ? -0.1 : 0.1;\n    this.setZoom(this.zoom() + delta);\n  }\n\n  onCanvasKeydown(event: KeyboardEvent): void {\n    if (!this.hasImage() || this.isLoading()) {\n      return;\n    }\n    const step = event.shiftKey ? 20 : 5;\n    let handled = false;\n\n    switch (event.key) {\n      case 'Enter':\n      case ' ':\n        this.openFilePicker();\n        event.preventDefault();\n        return;\n      case 'ArrowLeft':\n        this.offsetX += step;\n        handled = true;\n        break;\n      case 'ArrowRight':\n        this.offsetX -= step;\n        handled = true;\n        break;\n      case 'ArrowUp':\n        this.offsetY += step;\n        handled = true;\n        break;\n      case 'ArrowDown':\n        this.offsetY -= step;\n        handled = true;\n        break;\n      case '+':\n      case '=':\n        this.setZoom(this.zoom() + 0.1);\n        event.preventDefault();\n        return;\n      case '-':\n      case '_':\n        this.setZoom(this.zoom() - 0.1);\n        event.preventDefault();\n        return;\n    }\n\n    if (handled) {\n      event.preventDefault();\n      this.clampOffset();\n      this.syncAtOriginal();\n      this.draw();\n      this.emitCropStateChange();\n    }\n  }\n\n  /** Sets the zoom level, clamped to the configured `minZoom`/`maxZoom` range. */\n  setZoom(value: number): void {\n    this.applyZoom(value);\n    this.clampOffset();\n    this.syncAtOriginal();\n    this.draw();\n    this.emitCropStateChange();\n  }\n\n  onZoomInput(event: Event): void {\n    const value = parseFloat((event.target as HTMLInputElement).value);\n    this.setZoom(value);\n  }\n\n  /** Clears the loaded image and resets pan/zoom to defaults. */\n  removeImage(): void {\n    this.image = null;\n    this.hasImage.set(false);\n    this.isFetching.set(false);\n    this.zoom.set(1);\n    this.offsetX = 0;\n    this.offsetY = 0;\n    this.clearCanvas();\n    this.syncAtOriginal();\n    this.removed.emit();\n  }\n\n  // Pan and zoom write to plain properties rather than signals, so the revert\n  // control cannot derive its own state. Every handler that moves the crop calls\n  // this instead, so returning to the committed values re-disables the control.\n  // Offsets are recalculated on zoom and both values are floats, so the\n  // comparison is a tolerance rather than equality\n  private syncAtOriginal(): void {\n    if (!this.originalCaptured() || this.image !== this.originalImage) {\n      this.isAtOriginal.set(false);\n      return;\n    }\n    const crop = this.originalCropState;\n    if (!crop) {\n      this.isAtOriginal.set(!this.image);\n      return;\n    }\n    this.isAtOriginal.set(\n      Math.abs(this.zoom() - crop.zoom) < ZOOM_TOLERANCE &&\n        Math.abs(this.offsetX - crop.offsetX) < OFFSET_TOLERANCE &&\n        Math.abs(this.offsetY - crop.offsetY) < OFFSET_TOLERANCE,\n    );\n  }\n\n  /** Marks the current image and crop state as the baseline for {@link revertImage}. */\n  captureOriginal(): void {\n    this.originalCaptured.set(true);\n    this.originalImage = this.image;\n    this.originalCropState = this.image\n      ? { zoom: this.zoom(), offsetX: this.offsetX, offsetY: this.offsetY }\n      : null;\n    this.isAtOriginal.set(true);\n  }\n\n  /** Restores the image and crop state captured by the most recent {@link captureOriginal}. */\n  revertImage(): void {\n    if (!this.originalCaptured()) {\n      return;\n    }\n\n    if (this.originalImage) {\n      this.image = this.originalImage;\n      this.hasImage.set(true);\n\n      const crop = this.originalCropState;\n      if (crop) {\n        this.applyZoom(crop.zoom);\n        this.offsetX = crop.offsetX;\n        this.offsetY = crop.offsetY;\n        this.clampOffset();\n      } else {\n        this.zoom.set(1);\n        this.centerImage();\n      }\n\n      this.isAtOriginal.set(true);\n      this.scheduleDrawAfterRender();\n    } else {\n      this.image = null;\n      this.hasImage.set(false);\n      this.zoom.set(1);\n      this.offsetX = 0;\n      this.offsetY = 0;\n      this.clearCanvas();\n      this.isAtOriginal.set(true);\n    }\n  }\n\n  /** Renders the current crop to an offscreen canvas, emits `cropped`, and resolves with the resulting `Blob`. */\n  exportCrop(): Promise<Blob> {\n    return new Promise((resolve, reject) => {\n      if (!this.image) {\n        reject(new Error('No image loaded'));\n        return;\n      }\n\n      const size = this.canvasSize();\n      const offscreen = document.createElement('canvas');\n      offscreen.width = size;\n      offscreen.height = size;\n      const ctx = offscreen.getContext('2d')!;\n\n      if (this.shape() === 'circle') {\n        ctx.beginPath();\n        ctx.arc(size / 2, size / 2, size / 2, 0, Math.PI * 2);\n        ctx.closePath();\n        ctx.clip();\n      }\n\n      const { drawX, drawY, drawW, drawH } = this.getDrawParams();\n      ctx.drawImage(this.image, drawX, drawY, drawW, drawH);\n\n      offscreen.toBlob(\n        blob => {\n          if (blob) {\n            const reader = new FileReader();\n            reader.onloadend = () => {\n              this.cropped.emit({ blob, dataUrl: reader.result as string });\n              resolve(blob);\n            };\n            reader.readAsDataURL(blob);\n          } else {\n            reject(new Error('Canvas export failed'));\n          }\n        },\n        this.exportType(),\n        this.exportQuality(),\n      );\n    });\n  }\n\n  private loadFromUrl(\n    url: string,\n    cropState: AvatarEditorCropState | null = null,\n    suppressEmit = false,\n  ): void {\n    this.isFetching.set(true);\n    this._suppressCropStateEmit = suppressEmit;\n    const img = new Image();\n    img.crossOrigin = 'anonymous';\n    img.onerror = () => {\n      this.isFetching.set(false);\n      this._suppressCropStateEmit = false;\n    };\n    img.onload = () => {\n      this.image = img;\n      this.hasImage.set(true);\n      if (cropState) {\n        this.applyZoom(cropState.zoom);\n        this.offsetX = cropState.offsetX;\n        this.offsetY = cropState.offsetY;\n        this.clampOffset();\n      } else {\n        this.zoom.set(1);\n        this.centerImage();\n      }\n      if (suppressEmit) {\n        this.originalCaptured.set(true);\n        this.originalImage = img;\n        this.originalCropState = {\n          zoom: this.zoom(),\n          offsetX: this.offsetX,\n          offsetY: this.offsetY,\n        };\n        this.isAtOriginal.set(true);\n      }\n      this.scheduleDrawAfterRender();\n    };\n    img.src = url;\n  }\n\n  private loadFile(file: File): void {\n    if (!file.type.startsWith('image/')) {\n      const message = this.i18n.messages().avatarEditor.invalidType;\n      this.lastError.set(message);\n      this.errored.emit(message);\n      return;\n    }\n    if (file.size > this.maxFileSize()) {\n      const maxMb = Math.round(this.maxFileSize() / (1024 * 1024));\n      const message = this.i18n.messages().avatarEditor.tooLarge(maxMb);\n      this.lastError.set(message);\n      this.errored.emit(message);\n      return;\n    }\n\n    this.lastError.set(null);\n    this.isAtOriginal.set(false);\n    this.fileSelected.emit(file);\n\n    const reader = new FileReader();\n    reader.onload = e => {\n      const img = new Image();\n      img.onload = () => {\n        this.image = img;\n        this.hasImage.set(true);\n        this.zoom.set(1);\n        this.centerImage();\n        this.scheduleDrawAfterRender();\n      };\n      img.src = e.target?.result as string;\n    };\n    reader.readAsDataURL(file);\n  }\n\n  // Replacing an image the editor already holds changes no signal the template\n  // reads, so there is no render to defer to; a canvas that is already mounted\n  // is drawn straight away\n  private scheduleDrawAfterRender(): void {\n    if (this.canvasEl()) {\n      this.drawLoadedImage();\n      return;\n    }\n    afterNextRender(() => this.drawLoadedImage(), { injector: this.injector });\n  }\n\n  private drawLoadedImage(): void {\n    this.draw();\n    this.isFetching.set(false);\n    this._suppressCropStateEmit = false;\n    const canvas = this.canvasEl()?.nativeElement;\n    canvas?.removeEventListener('wheel', this.boundWheel);\n    canvas?.addEventListener('wheel', this.boundWheel, { passive: false });\n  }\n\n  private centerImage(): void {\n    if (!this.image) {\n      return;\n    }\n    const size = this.canvasSize();\n    const scale = this.getScale();\n    const drawW = this.image.width * scale;\n    const drawH = this.image.height * scale;\n    this.offsetX = (size - drawW) / 2;\n    this.offsetY = (size - drawH) / 2;\n  }\n\n  private getScale(): number {\n    if (!this.image) {\n      return 1;\n    }\n    const size = this.canvasSize();\n    const baseScale = Math.max(size / this.image.width, size / this.image.height);\n    return baseScale * this.zoom();\n  }\n\n  private getDrawParams(): {\n    drawX: number;\n    drawY: number;\n    drawW: number;\n    drawH: number;\n  } {\n    if (!this.image) {\n      return { drawX: 0, drawY: 0, drawW: 0, drawH: 0 };\n    }\n    const scale = this.getScale();\n    return {\n      drawX: this.offsetX,\n      drawY: this.offsetY,\n      drawW: this.image.width * scale,\n      drawH: this.image.height * scale,\n    };\n  }\n\n  private applyZoom(value: number): void {\n    const clamped = Math.min(this.maxZoom(), Math.max(this.minZoom(), value));\n    this.zoom.set(Math.round(clamped * 100) / 100);\n  }\n\n  private clampOffset(): void {\n    if (!this.image) {\n      return;\n    }\n    const size = this.canvasSize();\n    const { drawW, drawH } = this.getDrawParams();\n\n    this.offsetX = Math.min(0, Math.max(size - drawW, this.offsetX));\n    this.offsetY = Math.min(0, Math.max(size - drawH, this.offsetY));\n  }\n\n  private draw(): void {\n    const canvas = this.canvasEl()?.nativeElement;\n    if (!canvas || !this.image) {\n      return;\n    }\n\n    const ctx = canvas.getContext('2d')!;\n    const size = this.canvasSize();\n    canvas.width = size;\n    canvas.height = size;\n\n    ctx.clearRect(0, 0, size, size);\n\n    const { drawX, drawY, drawW, drawH } = this.getDrawParams();\n    ctx.drawImage(this.image, drawX, drawY, drawW, drawH);\n\n    this.updateImageDarkness(ctx, size);\n\n    ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';\n    ctx.fillRect(0, 0, size, size);\n\n    ctx.globalCompositeOperation = 'destination-out';\n    if (this.shape() === 'circle') {\n      ctx.beginPath();\n      ctx.arc(size / 2, size / 2, size / 2, 0, Math.PI * 2);\n      ctx.fill();\n    } else {\n      ctx.fillRect(0, 0, size, size);\n    }\n\n    ctx.globalCompositeOperation = 'destination-over';\n    ctx.drawImage(this.image, drawX, drawY, drawW, drawH);\n    ctx.globalCompositeOperation = 'source-over';\n  }\n\n  /**\n   * Samples the visible crop region and stores whether it's darker than\n   * mid-grey, so the hover overlay can flip its label and icon between\n   * white (on dark photos) and black (on light photos).\n   *\n   * Restricts sampling to the inscribed circle for circle crops to ignore\n   * the soon-to-be-masked corners. Uses Rec. 601 perceptual luminance\n   * weights; transparent pixels and CORS-tainted canvases default to a\n   * \"dark\" assumption (white ink).\n   */\n  private updateImageDarkness(ctx: CanvasRenderingContext2D, size: number): void {\n    let data: Uint8ClampedArray;\n    try {\n      data = ctx.getImageData(0, 0, size, size).data;\n    } catch {\n      this.isImageDark.set(true);\n      return;\n    }\n\n    const isCircle = this.shape() === 'circle';\n    const cx = size / 2;\n    const cy = size / 2;\n    const radiusSq = cx * cx;\n\n    let sum = 0;\n    let count = 0;\n    for (let y = 0; y < size; y++) {\n      for (let x = 0; x < size; x++) {\n        if (isCircle) {\n          const dx = x - cx;\n          const dy = y - cy;\n          if (dx * dx + dy * dy > radiusSq) {\n            continue;\n          }\n        }\n        const i = (y * size + x) * 4;\n        if (data[i + 3] === 0) {\n          continue;\n        }\n        sum += 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n        count++;\n      }\n    }\n\n    // Threshold biased above mid-grey (128) so images on the border between\n    // light and dark still get the cleaner white ink; only clearly-bright\n    // photos flip to black.\n    if (count > 0) {\n      this.isImageDark.set(sum / count < 170);\n    }\n  }\n\n  private emitCropStateChange(): void {\n    if (this._suppressCropStateEmit) {\n      return;\n    }\n    this.cropStateChanged.emit({\n      zoom: this.zoom(),\n      offsetX: this.offsetX,\n      offsetY: this.offsetY,\n    });\n  }\n\n  private clearCanvas(): void {\n    const canvas = this.canvasEl()?.nativeElement;\n    if (!canvas) {\n      return;\n    }\n    const ctx = canvas.getContext('2d')!;\n    ctx.clearRect(0, 0, canvas.width, canvas.height);\n  }\n}\n","<div\n  class=\"ea-avatar-editor\"\n  [ngClass]=\"hostClasses()\"\n  [style.--ea-avatar-editor-canvas.px]=\"canvasSize()\">\n  <input\n    #fileInputEl\n    type=\"file\"\n    class=\"ea-avatar-editor__file-input\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    [accept]=\"accept()\"\n    (change)=\"onFileSelected($event)\" />\n\n  <span\n    class=\"ea-avatar-editor__visually-hidden\"\n    [id]=\"instructionsId\">\n    {{ i18n.messages().avatarEditor.canvasInstructions }}\n  </span>\n\n  <span\n    class=\"ea-avatar-editor__visually-hidden\"\n    role=\"alert\">\n    {{ lastError() }}\n  </span>\n\n  @if (!hasImage() && !isLoading()) {\n    <button\n      type=\"button\"\n      class=\"ea-avatar-editor__dropzone\"\n      [style.width.px]=\"canvasSize()\"\n      [style.height.px]=\"canvasSize()\"\n      (click)=\"openFilePicker()\"\n      (dragenter)=\"onDragEnter($event)\"\n      (dragover)=\"onDragOver($event)\"\n      (dragleave)=\"onDragLeave($event)\"\n      (drop)=\"onDrop($event)\">\n      <ea-icon-camera class=\"ea-avatar-editor__upload-icon\" />\n      <span class=\"ea-avatar-editor__dropzone-text\">\n        {{ i18n.messages().avatarEditor.dropzone }}\n      </span>\n    </button>\n  }\n\n  @if (hasImage() || isLoading()) {\n    <div\n      class=\"ea-avatar-editor__canvas-wrapper\"\n      [style.width.px]=\"canvasSize()\"\n      [style.height.px]=\"canvasSize()\"\n      [attr.aria-busy]=\"isLoading() || null\"\n      (dragenter)=\"onDragEnter($event)\"\n      (dragover)=\"onDragOver($event)\"\n      (dragleave)=\"onDragLeave($event)\"\n      (drop)=\"onDrop($event)\">\n      @if (isLoading()) {\n        <ea-skeleton\n          [variant]=\"shape() === 'circle' ? 'circle' : 'rect'\"\n          [width]=\"canvasSize() + 'px'\"\n          [height]=\"canvasSize() + 'px'\" />\n      }\n\n      @if (hasImage()) {\n        <canvas\n          #canvasEl\n          class=\"ea-avatar-editor__canvas\"\n          role=\"application\"\n          tabindex=\"0\"\n          [attr.aria-label]=\"i18n.messages().avatarEditor.canvas\"\n          [attr.aria-describedby]=\"instructionsId\"\n          [style.display]=\"isLoading() ? 'none' : 'block'\"\n          [width]=\"canvasSize()\"\n          [height]=\"canvasSize()\"\n          (mousedown)=\"onMouseDown($event)\"\n          (touchstart)=\"onTouchStart($event)\"\n          (keydown)=\"onCanvasKeydown($event)\"></canvas>\n\n        @if (!isLoading()) {\n          <div\n            class=\"ea-avatar-editor__canvas-overlay\"\n            [class.ea-avatar-editor__canvas-overlay--on-light]=\"!isImageDark()\">\n            <ea-icon-camera class=\"ea-avatar-editor__overlay-icon\" />\n            <span>\n              {{\n                isDragOver()\n                  ? i18n.messages().avatarEditor.dropzone\n                  : i18n.messages().avatarEditor.change\n              }}\n            </span>\n          </div>\n        }\n      }\n    </div>\n  }\n\n  <div class=\"ea-avatar-editor__controls\">\n    <button\n      type=\"button\"\n      class=\"ea-avatar-editor__icon-btn\"\n      [eaTooltip]=\"i18n.messages().avatarEditor.revert\"\n      [attr.aria-label]=\"i18n.messages().avatarEditor.revert\"\n      [disabled]=\"!canRevert() || isLoading()\"\n      (click)=\"revertImage()\">\n      <ea-icon-rotate-ccw />\n    </button>\n\n    <button\n      type=\"button\"\n      class=\"ea-avatar-editor__icon-btn\"\n      [eaTooltip]=\"i18n.messages().avatarEditor.zoomOut\"\n      [attr.aria-label]=\"i18n.messages().avatarEditor.zoomOut\"\n      [disabled]=\"!hasImage() || isLoading() || zoom() <= minZoom()\"\n      (click)=\"setZoom(zoom() - 0.1)\">\n      <ea-icon-minus />\n    </button>\n\n    <input\n      type=\"range\"\n      class=\"ea-avatar-editor__zoom-slider\"\n      [min]=\"minZoom()\"\n      [max]=\"maxZoom()\"\n      step=\"0.01\"\n      [value]=\"zoom()\"\n      [disabled]=\"!hasImage() || isLoading()\"\n      [attr.aria-label]=\"i18n.messages().avatarEditor.zoom\"\n      (input)=\"onZoomInput($event)\" />\n\n    <button\n      type=\"button\"\n      class=\"ea-avatar-editor__icon-btn\"\n      [eaTooltip]=\"i18n.messages().avatarEditor.zoomIn\"\n      [attr.aria-label]=\"i18n.messages().avatarEditor.zoomIn\"\n      [disabled]=\"!hasImage() || isLoading() || zoom() >= maxZoom()\"\n      (click)=\"setZoom(zoom() + 0.1)\">\n      <ea-icon-plus />\n    </button>\n\n    <button\n      type=\"button\"\n      class=\"ea-avatar-editor__icon-btn ea-avatar-editor__icon-btn--danger\"\n      [eaTooltip]=\"i18n.messages().avatarEditor.remove\"\n      [attr.aria-label]=\"i18n.messages().avatarEditor.remove\"\n      [disabled]=\"!hasImage() || isLoading()\"\n      (click)=\"removeImage()\">\n      <ea-icon-trash />\n    </button>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-user',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\" />\n      <circle\n        cx=\"12\"\n        cy=\"7\"\n        r=\"4\" />\n    </svg>\n  `,\n})\nexport class UserIconComponent extends IconComponentBase {\n  static readonly slug = 'user';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'user',\n    'person',\n    'profile',\n    'account',\n    'avatar',\n    'utilisateur',\n    'personne',\n    'usuario',\n    'persona',\n    'χρήστης',\n    'άτομο',\n    'użytkownik',\n    'osoba',\n  ];\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  input,\n} from '@angular/core';\n\nimport { UserIconComponent } from '../icons/user.component';\nimport { type EaSize } from '../sizes';\n\n/** Diameter (or side length) preset for an avatar. */\nexport type AvatarSize = EaSize;\n/** Outline of the avatar: round or rounded-square. */\nexport type AvatarShape = 'circle' | 'square';\n\n/**\n * Compact image used to represent a user or entity. Falls back to initials\n * when no `src` is provided, then to a generic user icon when neither image\n * nor initials are available.\n */\n@Component({\n  selector: 'ea-avatar',\n  imports: [NgClass, UserIconComponent],\n  templateUrl: './avatar.component.html',\n  styleUrl: './avatar.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: { style: 'display: inline-block; line-height: 0;' },\n})\nexport class AvatarComponent {\n  readonly src = input<string | undefined>(undefined);\n  readonly alt = input<string>('');\n  readonly initials = input<string | undefined>(undefined);\n  readonly size = input<AvatarSize>('md');\n  readonly shape = input<AvatarShape>('circle');\n\n  readonly hostClasses = computed(() => ({\n    [`ea-avatar--${this.size()}`]: true,\n    [`ea-avatar--${this.shape()}`]: true,\n  }));\n\n  readonly accessibleName = computed(() => this.alt() || this.initials() || null);\n\n  readonly showImage = computed(() => !!this.src());\n  readonly showInitials = computed(() => !this.src() && !!this.initials());\n  readonly showFallback = computed(() => !this.src() && !this.initials());\n\n  handleImageError(event: Event): void {\n    (event.target as HTMLImageElement).style.display = 'none';\n  }\n}\n","<div\n  class=\"ea-avatar\"\n  [ngClass]=\"hostClasses()\"\n  [attr.role]=\"accessibleName() ? 'img' : null\"\n  [attr.aria-label]=\"accessibleName()\"\n  [attr.aria-hidden]=\"accessibleName() ? null : true\">\n  @if (showImage()) {\n    <img\n      class=\"ea-avatar__image\"\n      [src]=\"src()\"\n      [alt]=\"alt()\"\n      (error)=\"handleImageError($event)\" />\n  }\n  @if (showInitials()) {\n    <span class=\"ea-avatar__initials\">{{ initials() }}</span>\n  }\n  @if (showFallback()) {\n    <ea-icon-user class=\"ea-avatar__fallback\" />\n  }\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  input,\n} from '@angular/core';\n\nimport { type EaSize } from '../sizes';\n\n/** Semantic colour scheme of a badge. */\nexport type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n/** Visual size of a badge. */\n/**\n * The badge ladder sits one step below the shared scale (its `xs` is already\n * `--font-size-2xs`), so it bottoms out where the others gain a `2xs`.\n */\nexport type BadgeSize = Exclude<EaSize, '2xs'>;\n/**\n * Outer shape of a badge.\n * - `pill` (default): content-shaped pill, ideal for inline status labels\n * - `pin`: fixed-min square that renders as a perfect circle for single\n *   characters (counts) and expands into a pill for longer content\n */\nexport type BadgeShape = 'pill' | 'pin';\n\n/**\n * Compact indicator used to communicate status, counts, or labels inline with\n * surrounding content.\n */\n@Component({\n  selector: 'ea-badge',\n  imports: [NgClass],\n  templateUrl: './badge.component.html',\n  styleUrl: './badge.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class BadgeComponent {\n  readonly variant = input<BadgeVariant>('default');\n  readonly size = input<BadgeSize>('md');\n  readonly shape = input<BadgeShape>('pill');\n  readonly uppercase = input<boolean>(false);\n\n  readonly hostClasses = computed(() => ({\n    [`ea-badge--${this.variant()}`]: true,\n    [`ea-badge--${this.size()}`]: true,\n    [`ea-badge--${this.shape()}`]: true,\n    'ea-badge--uppercase': this.uppercase(),\n  }));\n}\n","<span\n  class=\"ea-badge\"\n  [ngClass]=\"hostClasses()\">\n  <ng-content />\n</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevron-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"9 18 15 12 9 6\" />\n    </svg>\n  `,\n})\nexport class ChevronRightIconComponent extends IconComponentBase {\n  static readonly slug = 'chevron-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevron-right',\n    'chevron',\n    'right',\n    'arrow',\n    'forward',\n    'next',\n    'droite',\n    'derecha',\n    'δεξιά',\n    'prawo',\n  ];\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  inject,\n  input,\n  output,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ChevronRightIconComponent } from '../icons/chevron-right.component';\nimport { type EaSize } from '../sizes';\n\n/** Visual style of the separator rendered between breadcrumb items. */\nexport type BreadcrumbsSeparator = 'chevron' | 'slash';\n\n/** Visual size of the breadcrumb trail. */\nexport type BreadcrumbsSize = EaSize;\n\n/** Single entry in a breadcrumb trail. */\nexport interface BreadcrumbItem {\n  label: string;\n  href?: string;\n  disabled?: boolean;\n}\n\n/** Payload emitted when a breadcrumb is activated. */\nexport interface BreadcrumbClickEvent {\n  item: BreadcrumbItem;\n  index: number;\n  event: MouseEvent;\n}\n\n/**\n * Navigation trail that shows the user's location within a hierarchy. Items\n * with an `href` render as links, others render as buttons; the final item is\n * always treated as the current page and is non-interactive.\n */\n@Component({\n  selector: 'ea-breadcrumbs',\n  imports: [ChevronRightIconComponent],\n  templateUrl: './breadcrumbs.component.html',\n  styleUrl: './breadcrumbs.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class BreadcrumbsComponent {\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly items = input<BreadcrumbItem[]>([]);\n  readonly separator = input<BreadcrumbsSeparator>('chevron');\n  /** Visual size of the breadcrumb trail. */\n  readonly size = input<BreadcrumbsSize>('md');\n  readonly ariaLabel = input<string | undefined>(undefined, {\n    alias: 'aria-label',\n  });\n\n  /** Fires when a non-disabled, non-final breadcrumb is activated. */\n  readonly clicked = output<BreadcrumbClickEvent>();\n\n  /** Accessible label for the breadcrumb nav, falling back to the active locale. */\n  readonly resolvedAriaLabel = computed(\n    () => this.ariaLabel() ?? this.i18n.messages().breadcrumbs.label,\n  );\n\n  isLast(index: number): boolean {\n    return index === this.items().length - 1;\n  }\n\n  handleClick(item: BreadcrumbItem, index: number, event: MouseEvent): void {\n    if (item.disabled || this.isLast(index)) {\n      event.preventDefault();\n      return;\n    }\n    this.clicked.emit({ item, index, event });\n  }\n}\n","<nav\n  class=\"ea-breadcrumbs ea-breadcrumbs--{{ size() }}\"\n  [attr.aria-label]=\"resolvedAriaLabel()\">\n  <ol class=\"ea-breadcrumbs__list\">\n    @for (item of items(); track $index; let i = $index; let last = $last) {\n      <li class=\"ea-breadcrumbs__item\">\n        @if (last) {\n          <span\n            class=\"ea-breadcrumbs__current\"\n            aria-current=\"page\">\n            {{ item.label }}\n          </span>\n        } @else if (item.disabled) {\n          <span class=\"ea-breadcrumbs__link ea-breadcrumbs__link--disabled\">\n            {{ item.label }}\n          </span>\n        } @else if (item.href) {\n          <a\n            class=\"ea-breadcrumbs__link\"\n            [href]=\"item.href\"\n            (click)=\"handleClick(item, i, $event)\">\n            {{ item.label }}\n          </a>\n        } @else {\n          <button\n            type=\"button\"\n            class=\"ea-breadcrumbs__link ea-breadcrumbs__link--button\"\n            (click)=\"handleClick(item, i, $event)\">\n            {{ item.label }}\n          </button>\n        }\n\n        @if (!last) {\n          @if (separator() === 'chevron') {\n            <ea-icon-chevron-right\n              class=\"ea-breadcrumbs__separator ea-rtl-flip\"\n              aria-hidden=\"true\" />\n          } @else {\n            <span\n              class=\"ea-breadcrumbs__separator ea-breadcrumbs__separator--slash\"\n              aria-hidden=\"true\">\n              /\n            </span>\n          }\n        }\n      </li>\n    }\n  </ol>\n</nav>\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type Type,\n  computed,\n  input,\n  output,\n} from '@angular/core';\n\nimport { type EaSize } from '../sizes';\n\n/** Visual style of a button; drives colour and emphasis. */\nexport type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';\n/** Visual size of a button. */\nexport type ButtonSize = EaSize;\n/** HTML `type` attribute applied to the underlying `<button>` element. */\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\n/**\n * Standard action button supporting primary, secondary, ghost, and danger\n * variants. Includes a loading state that swaps the label for a spinner while\n * preserving the rendered width. Chrome is tunable per instance via\n * `--ea-button-padding`, `--ea-button-min-height` and `--ea-button-radius`,\n * which is how an icon-only button comes down to little more than its glyph\n * and how a call-to-action becomes a pill.\n */\n@Component({\n  selector: 'ea-button',\n  templateUrl: './button.component.html',\n  styleUrl: './button.component.scss',\n  imports: [NgClass, NgComponentOutlet],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class.ea-button--full-width]': 'fullWidth()',\n  },\n})\nexport class ButtonComponent {\n  readonly variant = input<ButtonVariant>('primary');\n  readonly size = input<ButtonSize>('md');\n  readonly type = input<ButtonType>('button');\n  readonly disabled = input<boolean>(false);\n  readonly loading = input<boolean>(false);\n  readonly fullWidth = input<boolean>(false);\n  readonly uppercase = input<boolean>(false);\n  /** Optional icon component rendered to the left of the label. */\n  readonly icon = input<Type<unknown> | undefined>(undefined);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly ariaCurrent = input<string | undefined>(undefined, { alias: 'aria-current' });\n\n  /** Fires when the button is activated; suppressed while disabled or loading. */\n  readonly clicked = output<MouseEvent>();\n\n  readonly isDisabled = computed(() => this.disabled() || this.loading());\n\n  readonly hostClasses = computed(() => ({\n    [`ea-button--${this.variant()}`]: true,\n    [`ea-button--${this.size()}`]: true,\n    'ea-button--full-width': this.fullWidth(),\n    'ea-button--uppercase': this.uppercase(),\n    'ea-button--loading': this.loading(),\n    'ea-button--disabled': this.isDisabled(),\n  }));\n\n  handleClick(event: MouseEvent): void {\n    if (this.isDisabled()) {\n      event.preventDefault();\n      return;\n    }\n    this.clicked.emit(event);\n  }\n}\n","<button\n  class=\"ea-button\"\n  [ngClass]=\"hostClasses()\"\n  [type]=\"type()\"\n  [disabled]=\"isDisabled()\"\n  [attr.aria-label]=\"ariaLabel()\"\n  [attr.aria-current]=\"ariaCurrent() || null\"\n  [attr.aria-busy]=\"loading() || null\"\n  (click)=\"handleClick($event)\">\n  @if (loading()) {\n    <span\n      class=\"ea-button__spinner\"\n      aria-hidden=\"true\">\n      <svg\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\">\n        <circle\n          cx=\"12\"\n          cy=\"12\"\n          r=\"10\"\n          stroke=\"currentColor\"\n          stroke-width=\"3\"\n          stroke-linecap=\"round\"\n          stroke-dasharray=\"31.4\"\n          stroke-dashoffset=\"10\" />\n      </svg>\n    </span>\n  }\n\n  <span\n    class=\"ea-button__content\"\n    [class.ea-button__content--hidden]=\"loading()\">\n    <ng-content select=\"[slot=prefix]\" />\n    @if (icon(); as iconComponent) {\n      <span\n        class=\"ea-button__icon\"\n        aria-hidden=\"true\">\n        <ng-container *ngComponentOutlet=\"iconComponent\" />\n      </span>\n    }\n    <span class=\"ea-button__label\">\n      <ng-content />\n    </span>\n    <ng-content select=\"[slot=suffix]\" />\n  </span>\n</button>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  input,\n} from '@angular/core';\n\n/** Orientation of the divider rule. */\nexport type DividerOrientation = 'horizontal' | 'vertical';\n\n/**\n * Thin separator used to visually divide content. Renders horizontally by\n * default and may include an optional centred label (e.g. \"or\").\n */\n@Component({\n  selector: 'ea-divider',\n  imports: [NgClass],\n  templateUrl: './divider.component.html',\n  styleUrl: './divider.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class DividerComponent {\n  readonly orientation = input<DividerOrientation>('horizontal');\n  readonly label = input<string | undefined>(undefined);\n  /** Renders a heavier rule. */\n  readonly thick = input<boolean>(false);\n\n  readonly hostClasses = computed(() => ({\n    [`ea-divider--${this.orientation()}`]: true,\n    'ea-divider--with-label': !!this.label(),\n    'ea-divider--thick': this.thick(),\n  }));\n}\n","<div\n  class=\"ea-divider\"\n  [ngClass]=\"hostClasses()\"\n  [attr.role]=\"'separator'\"\n  [attr.aria-orientation]=\"orientation()\">\n  <span class=\"ea-divider__label\">{{ label() }}</span>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  input,\n} from '@angular/core';\n\nimport { DividerComponent } from '../divider/divider.component';\n\n/** Visual style of a card surface. */\nexport type CardVariant = 'elevated' | 'outlined' | 'filled';\n/** Padding preset applied to the card's content area. */\nexport type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';\n/** Horizontal alignment of card header content. */\nexport type CardHeaderAlign = 'start' | 'center' | 'end';\n\n/**\n * Surface for grouping related content. Provides optional `header` and\n * `footer` content slots and supports elevated, outlined, and filled\n * variants. The card shadow can be customised per instance via the\n * `--ea-card-shadow` CSS custom property.\n */\n@Component({\n  selector: 'ea-card',\n  imports: [DividerComponent, NgClass],\n  templateUrl: './card.component.html',\n  styleUrl: './card.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class CardComponent {\n  readonly variant = input<CardVariant>('elevated');\n  readonly padding = input<CardPadding>('md');\n  readonly fullWidth = input<boolean>(false);\n  readonly headerAlign = input<CardHeaderAlign>('center');\n  readonly headerDivider = input<boolean>(false);\n\n  readonly hostClasses = computed(() => ({\n    [`ea-card--${this.variant()}`]: true,\n    [`ea-card--padding-${this.padding()}`]: true,\n    'ea-card--full-width': this.fullWidth(),\n  }));\n}\n","<div\n  class=\"ea-card\"\n  [ngClass]=\"hostClasses()\">\n  <div\n    class=\"ea-card__header\"\n    [style.text-align]=\"headerAlign()\">\n    <ng-content select=\"[slot=header]\" />\n  </div>\n\n  @if (headerDivider()) {\n    <ea-divider class=\"ea-card__divider\" />\n  }\n\n  <div class=\"ea-card__body\">\n    <ng-content />\n  </div>\n\n  <div class=\"ea-card__footer\">\n    <ng-content select=\"[slot=footer]\" />\n  </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  forwardRef,\n  input,\n  model,\n  output,\n  signal,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { type EaSize } from '../sizes';\nimport { TooltipDirective } from '../tooltip/tooltip.directive';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of a checkbox. */\nexport type CheckboxSize = EaSize;\n\n/**\n * Boolean form control with support for an indeterminate visual state. Pairs\n * a visually hidden native input with a custom checkmark and integrates with\n * Angular forms via `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-checkbox',\n  imports: [FieldMessagesComponent, NgClass, TooltipDirective],\n  templateUrl: './checkbox.component.html',\n  styleUrl: './checkbox.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class.ea-checkbox-host--truncate]': 'truncate()',\n  },\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => CheckboxComponent),\n      multi: true,\n    },\n  ],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n  readonly label = input<string | undefined>(undefined);\n  /**\n   * Optional supplementary value shown immediately after the label, dimmed\n   * to the tertiary text token. Renders inside the same `<span>` as the\n   * label so it shares the label's exact baseline and font metrics, keeping\n   * \"Inbox 42\" / \"Brand (30)\" patterns aligned without a sibling element\n   * fighting flex / inline-flow centring at the consumer's call site.\n   */\n  readonly count = input<string | number | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly size = input<CheckboxSize>('md');\n  /**\n   * Ellipsize a label too long for the space the checkbox is given, revealing\n   * the full text in a tooltip while it is clipped. Off by default, since a\n   * checkbox otherwise widens its column rather than hiding any of its label.\n   */\n  readonly truncate = input<boolean>(false);\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly indeterminate = input<boolean>(false);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly id = input<string>(uniqueId('ea-checkbox'));\n\n  readonly checked = model<boolean>(false);\n\n  /** Fires with the new checked state whenever the user toggles the checkbox. */\n  readonly changed = output<boolean>();\n\n  private readonly _formDisabled = signal(false);\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  /** What a clamped label reveals: the count rides along, since the ellipsis takes it first. */\n  protected readonly clampedText = computed(() => {\n    if (!this.truncate()) {\n      return '';\n    }\n    const count = this.count();\n    const label = this.label() ?? '';\n    return count === undefined || count === null ? label : `${label} ${count}`;\n  });\n\n  readonly hostClasses = computed(() => ({\n    [`ea-checkbox--${this.size()}`]: true,\n    'ea-checkbox--truncate': this.truncate(),\n    'ea-checkbox--disabled': this.isDisabled(),\n    'ea-checkbox--checked': this.checked(),\n    'ea-checkbox--indeterminate': this.indeterminate(),\n    'ea-checkbox--error': this.hasError(),\n  }));\n\n  private onChange: (value: boolean) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  writeValue(val: boolean): void {\n    this.checked.set(!!val);\n  }\n\n  registerOnChange(fn: (value: boolean) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  // A native checkbox answers to Space alone, and Enter submits the form\n  // around it instead, which is not what a person tabbing through a filter\n  // column expects\n  handleKeydown(event: KeyboardEvent): void {\n    if (event.key !== 'Enter') {\n      return;\n    }\n    event.preventDefault();\n    this.handleChange();\n  }\n\n  handleChange(): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    const newValue = !this.checked();\n    this.checked.set(newValue);\n    this.onChange(newValue);\n    this.onTouched();\n    this.changed.emit(newValue);\n  }\n}\n","<div\n  class=\"ea-checkbox-field ea-checkbox-field--{{ size() }}\"\n  [class.ea-checkbox-field--truncate]=\"truncate()\">\n  <label\n    class=\"ea-checkbox\"\n    [ngClass]=\"hostClasses()\"\n    [for]=\"id()\">\n    <input\n      #inputEl\n      type=\"checkbox\"\n      class=\"ea-checkbox__input\"\n      [id]=\"id()\"\n      [checked]=\"checked()\"\n      [disabled]=\"isDisabled()\"\n      [required]=\"required()\"\n      [indeterminate]=\"indeterminate()\"\n      [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n      [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n      [attr.aria-required]=\"required() || null\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (change)=\"handleChange()\"\n      (keydown)=\"handleKeydown($event)\" />\n\n    <span\n      class=\"ea-checkbox__box\"\n      aria-hidden=\"true\">\n      @if (indeterminate()) {\n        <svg\n          viewBox=\"0 0 16 16\"\n          fill=\"none\"\n          xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M4 8h8\"\n            stroke=\"currentColor\"\n            stroke-width=\"2\"\n            stroke-linecap=\"round\" />\n        </svg>\n      } @else if (checked()) {\n        <svg\n          viewBox=\"0 0 16 16\"\n          fill=\"none\"\n          xmlns=\"http://www.w3.org/2000/svg\">\n          <path\n            d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n            stroke=\"currentColor\"\n            stroke-width=\"2\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\" />\n        </svg>\n      }\n    </span>\n\n    @if (label()) {\n      <span\n        class=\"ea-checkbox__label\"\n        [class.ea-checkbox__label--required]=\"required()\"\n        [eaTooltip]=\"clampedText()\"\n        [whenClipped]=\"true\">\n        {{ label() }}\n        @if (count() !== undefined && count() !== null) {\n          <span class=\"ea-checkbox__count\">{{ count() }}</span>\n        }\n      </span>\n    }\n  </label>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-search',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"11\"\n        cy=\"11\"\n        r=\"8\" />\n      <path d=\"m21 21-4.35-4.35\" />\n    </svg>\n  `,\n})\nexport class SearchIconComponent extends IconComponentBase {\n  static readonly slug = 'search';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'search',\n    'find',\n    'magnify',\n    'lookup',\n    'query',\n    'recherche',\n    'chercher',\n    'buscar',\n    'búsqueda',\n    'αναζήτηση',\n    'βρες',\n    'szukaj',\n    'wyszukaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-eye-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class EyeOffIconComponent extends IconComponentBase {\n  static readonly slug = 'eye-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'eye-off',\n    'eye',\n    'off',\n    'hide',\n    'hidden',\n    'invisible',\n    'caché',\n    'masquer',\n    'oculto',\n    'esconder',\n    'κρυφό',\n    'απόκρυψη',\n    'ukryj',\n    'niewidoczne',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-eye',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8Z\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"3\" />\n    </svg>\n  `,\n})\nexport class EyeIconComponent extends IconComponentBase {\n  static readonly slug = 'eye';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'eye',\n    'view',\n    'see',\n    'visible',\n    'show',\n    'watch',\n    'œil',\n    'voir',\n    'ojo',\n    'ver',\n    'μάτι',\n    'δες',\n    'oko',\n    'pokaż',\n  ];\n}\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  Injector,\n  type Type,\n  afterNextRender,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { EyeOffIconComponent } from '../icons/eye-off.component';\nimport { EyeIconComponent } from '../icons/eye.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the input. */\nexport type InputSize = EaSize;\n/** HTML `type` attribute applied to the underlying `<input>`. */\nexport type InputType =\n  'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';\n\n/**\n * Single-line text field with label, hint, and error message support.\n * Includes a built-in show/hide toggle for `password` inputs and integrates\n * with Angular forms via `ControlValueAccessor`. Prefix and suffix content\n * can be projected via the `prefix` and `suffix` slots.\n */\n@Component({\n  selector: 'ea-input',\n  templateUrl: './input.component.html',\n  styleUrl: './input.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    EyeIconComponent,\n    EyeOffIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    NgClass,\n    NgComponentOutlet,\n    XIconComponent,\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputComponent),\n      multi: true,\n    },\n  ],\n})\nexport class InputComponent implements ControlValueAccessor {\n  readonly inputEl = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n  private readonly injector = inject(Injector);\n  protected readonly i18n = inject(EagamiI18nService);\n\n  /** Text label rendered above the field. */\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Accessible name for the control when no visible `label` is set. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  /** ARIA role applied to the native input, e.g. `combobox` for a typeahead host. */\n  readonly role = input<string | undefined>(undefined);\n  /** Expanded state of a controlled popup, forwarded as `aria-expanded`. */\n  readonly ariaExpanded = input<boolean | undefined>(undefined, {\n    alias: 'aria-expanded',\n  });\n  /** `id` of the popup element the input controls, forwarded as `aria-controls`. */\n  readonly ariaControls = input<string | undefined>(undefined, {\n    alias: 'aria-controls',\n  });\n  /** `id` of the active option in a controlled popup, forwarded as `aria-activedescendant`. */\n  readonly ariaActivedescendant = input<string | undefined>(undefined, {\n    alias: 'aria-activedescendant',\n  });\n  /** Autocomplete behavior hint, forwarded as `aria-autocomplete`. */\n  readonly ariaAutocomplete = input<'none' | 'inline' | 'list' | 'both' | undefined>(\n    undefined,\n    { alias: 'aria-autocomplete' },\n  );\n  /** Native input type; `password` adds a built-in show/hide toggle. */\n  readonly type = input<InputType>('text');\n  /** Placeholder shown while the field is empty. */\n  readonly placeholder = input<string>('');\n  /** Leading icon component rendered before the text, e.g. a search or filter glyph. */\n  readonly icon = input<Type<unknown> | undefined>(undefined);\n  /** Keeps the leading icon while the field has a value; when false it shows only alongside the placeholder. */\n  readonly keepIcon = input<boolean>(true);\n  /** Visual size of the field. */\n  readonly size = input<InputSize>('md');\n  /** Helper text shown below the field; hidden while an error is showing. */\n  readonly hint = input<string | undefined>(undefined);\n  /** Error message shown below the field; replaces the hint and flags the field invalid. */\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Disables the field. */\n  readonly disabled = input<boolean>(false);\n  /** Renders the field read-only. */\n  readonly readonly = input<boolean>(false);\n  /** Marks the field as required. */\n  readonly required = input<boolean>(false);\n  /** Value for the native `autocomplete` attribute. */\n  readonly autocomplete = input<string | undefined>(undefined);\n  /** Value for the native `spellcheck` attribute; left to the browser default when unset. */\n  readonly spellcheck = input<boolean | undefined>(undefined);\n  /** `id` of a `<datalist>` to associate for native suggestions. */\n  readonly list = input<string | undefined>(undefined);\n  /** Minimum value for `type=\"number\"`; the value is clamped to it on blur. */\n  readonly min = input<number | undefined>(undefined);\n  /** Maximum value for `type=\"number\"`; the value is clamped to it on blur. */\n  readonly max = input<number | undefined>(undefined);\n  /** Step increment for `type=\"number\"`. */\n  readonly step = input<number | undefined>(undefined);\n  /** Maximum number of characters; enforced for `type=\"number\"`, where native `maxlength` is ignored. */\n  readonly maxLength = input<number | undefined>(undefined);\n  /** Minimum number of characters (native `minlength`). */\n  readonly minLength = input<number | undefined>(undefined);\n  /** Focuses the field once, after it first renders. */\n  readonly autofocus = input<boolean>(false);\n  /** Shows the reveal toggle for `password` inputs. */\n  readonly showPasswordToggle = input<boolean>(true);\n  /** Shows a clear button while the field has a value. */\n  readonly clearable = input<boolean>(false);\n  /** `id` applied to the native input and label `for`; auto-generated when omitted. */\n  readonly id = input<string>(uniqueId('ea-input'));\n\n  /** Current field value; two-way bindable via `[(value)]`. */\n  readonly value = model<string>('');\n\n  readonly isFocused = signal(false);\n  readonly passwordVisible = signal(false);\n  private readonly _formDisabled = signal(false);\n\n  /** Fires when the input receives focus. */\n  readonly focused = output<FocusEvent>();\n  /** Fires when the input loses focus. */\n  readonly blurred = output<FocusEvent>();\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  readonly effectiveType = computed<InputType>(() =>\n    this.type() === 'password' && this.passwordVisible() ? 'text' : this.type(),\n  );\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly showClear = computed(\n    () => this.clearable() && !!this.value() && !this.isDisabled() && !this.readonly(),\n  );\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-input-wrapper--${this.size()}`]: true,\n    'ea-input-wrapper--error': this.hasError(),\n    'ea-input-wrapper--focused': this.isFocused() && !this.readonly(),\n    'ea-input-wrapper--disabled': this.isDisabled(),\n    'ea-input-wrapper--readonly': this.readonly(),\n  }));\n\n  /** Characters a bounded number field can hold, from `maxLength` or its bounds' digits. */\n  private readonly numberCharCapacity = computed<number | null>(() => {\n    if (this.type() !== 'number') {\n      return null;\n    }\n    const maxLen = this.maxLength();\n    if (maxLen != null) {\n      return maxLen;\n    }\n    const bounds = [this.min(), this.max()].filter((v): v is number => v != null);\n    return bounds.length ? Math.max(...bounds.map(v => String(v).length)) : null;\n  });\n\n  /** Caps a bounded number field to the widest value it can hold. */\n  readonly numberWidth = computed<string | null>(() => {\n    const capacity = this.numberCharCapacity();\n    return capacity == null ? null : `calc(${capacity}ch + 2em)`;\n  });\n\n  constructor() {\n    // `afterNextRender` runs once the input has actually been inserted into\n    // the DOM and avoids SSR, so the element is guaranteed focusable.\n    afterNextRender(\n      () => {\n        if (this.autofocus()) {\n          this.inputEl()?.nativeElement.focus();\n        }\n      },\n      { injector: this.injector },\n    );\n\n    // A `[value]` binding that reverts to the value Angular last wrote (e.g. a\n    // parent re-applying its default after the field is cleared) leaves the DOM\n    // showing the stale user edit, since the bound expression looks unchanged.\n    // Reconcile the element to the model so a controlled value always reflects.\n    effect(() => {\n      const el = this.inputEl()?.nativeElement;\n      const next = this.value();\n      if (el && el.value !== next) {\n        el.value = next;\n      }\n    });\n  }\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleInput(event: Event): void {\n    const el = event.target as HTMLInputElement;\n    let value = el.value;\n    const maxLen = this.maxLength();\n    // Native maxlength is ignored on number inputs, so enforce it here\n    if (this.type() === 'number' && maxLen != null && value.length > maxLen) {\n      value = value.slice(0, maxLen);\n      el.value = value;\n    }\n    this.value.set(value);\n    this.onChange(value);\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    // Scientific notation has no place in these fields and breaks the width and\n    // length bounds, so block the exponent key on number inputs.\n    if (this.type() === 'number' && (event.key === 'e' || event.key === 'E')) {\n      event.preventDefault();\n    }\n  }\n\n  handleWheel(event: WheelEvent): void {\n    // A focused number input changes value on scroll by default, easy to trigger\n    // by accident while scrolling the page.\n    if (this.type() === 'number' && this.isFocused()) {\n      event.preventDefault();\n    }\n  }\n\n  handleFocus(event: FocusEvent): void {\n    this.isFocused.set(true);\n    this.focused.emit(event);\n  }\n\n  handleBlur(event: FocusEvent): void {\n    if (this.type() === 'number') {\n      this.clampToBounds();\n    }\n    this.isFocused.set(false);\n    this.onTouched();\n    this.blurred.emit(event);\n  }\n\n  /** Clamps a number value into `[min, max]` once editing finishes. */\n  private clampToBounds(): void {\n    const el = this.inputEl()?.nativeElement;\n    if (!el || el.value === '') {\n      return;\n    }\n    const num = Number(el.value);\n    if (Number.isNaN(num)) {\n      return;\n    }\n    const min = this.min();\n    const max = this.max();\n    let clamped = num;\n    if (min != null && clamped < min) {\n      clamped = min;\n    }\n    if (max != null && clamped > max) {\n      clamped = max;\n    }\n    if (clamped !== num) {\n      const next = String(clamped);\n      el.value = next;\n      this.value.set(next);\n      this.onChange(next);\n    }\n  }\n\n  /** Toggles the password reveal state for `type=\"password\"` inputs. */\n  togglePasswordVisibility(): void {\n    this.passwordVisible.update(value => !value);\n  }\n\n  // Keeps focus in the input while the mouse presses the clear button\n  protected onClearMousedown(event: MouseEvent): void {\n    event.preventDefault();\n  }\n\n  /** Clear the current value and restore focus to the input. */\n  clear(): void {\n    this.value.set('');\n    this.onChange('');\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  /** Moves keyboard focus to the underlying native input element. */\n  focus(): void {\n    this.inputEl()?.nativeElement.focus();\n  }\n}\n","<div class=\"ea-input-field ea-input-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    class=\"ea-input-wrapper\"\n    [ngClass]=\"wrapperClasses()\"\n    [style.max-width]=\"numberWidth()\">\n    @if ((keepIcon() || !value()) && icon(); as leadingIcon) {\n      <span\n        class=\"ea-input-wrapper__icon\"\n        aria-hidden=\"true\">\n        <ng-container *ngComponentOutlet=\"leadingIcon\" />\n      </span>\n    }\n\n    <span class=\"ea-input-wrapper__prefix\">\n      <ng-content select=\"[slot=prefix]\" />\n    </span>\n\n    <input\n      #inputEl\n      class=\"ea-input\"\n      dir=\"auto\"\n      [id]=\"id()\"\n      [type]=\"effectiveType()\"\n      [placeholder]=\"placeholder()\"\n      [disabled]=\"isDisabled()\"\n      [readOnly]=\"readonly()\"\n      [required]=\"required()\"\n      [value]=\"value()\"\n      [attr.autocomplete]=\"autocomplete() ?? null\"\n      [attr.spellcheck]=\"spellcheck() ?? null\"\n      [attr.list]=\"list() ?? null\"\n      [attr.min]=\"type() === 'number' ? (min() ?? null) : null\"\n      [attr.max]=\"type() === 'number' ? (max() ?? null) : null\"\n      [attr.step]=\"type() === 'number' ? (step() ?? null) : null\"\n      [attr.maxlength]=\"maxLength() ?? null\"\n      [attr.minlength]=\"minLength() ?? null\"\n      [attr.role]=\"role() ?? null\"\n      [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n      [attr.aria-expanded]=\"ariaExpanded() ?? null\"\n      [attr.aria-controls]=\"ariaControls() ?? null\"\n      [attr.aria-activedescendant]=\"ariaActivedescendant() ?? null\"\n      [attr.aria-autocomplete]=\"ariaAutocomplete() ?? null\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (input)=\"handleInput($event)\"\n      (keydown)=\"handleKeydown($event)\"\n      (wheel)=\"handleWheel($event)\"\n      (focus)=\"handleFocus($event)\"\n      (blur)=\"handleBlur($event)\" />\n\n    <span class=\"ea-input-wrapper__suffix\">\n      <ng-content select=\"[slot=suffix]\" />\n    </span>\n\n    @if (showClear()) {\n      <button\n        type=\"button\"\n        class=\"ea-input-wrapper__clear\"\n        [attr.aria-label]=\"i18n.messages().input.clear\"\n        (mousedown)=\"onClearMousedown($event)\"\n        (click)=\"clear()\">\n        <ea-icon-x class=\"ea-input-wrapper__clear-icon\" />\n      </button>\n    }\n\n    @if (type() === 'password' && showPasswordToggle()) {\n      <button\n        type=\"button\"\n        class=\"ea-input-wrapper__password-toggle\"\n        [attr.aria-label]=\"\n          passwordVisible()\n            ? i18n.messages().input.hidePassword\n            : i18n.messages().input.showPassword\n        \"\n        [attr.aria-pressed]=\"passwordVisible()\"\n        (click)=\"togglePasswordVisibility()\">\n        @if (passwordVisible()) {\n          <ea-icon-eye-off />\n        } @else {\n          <ea-icon-eye />\n        }\n      </button>\n    }\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  ViewEncapsulation,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { SearchIconComponent } from '../icons/search.component';\nimport { InputComponent } from '../input/input.component';\nimport { PointerPressTracker } from '../pointer-press';\nimport { foldForSearch } from '../select-option-list';\nimport { uniqueId } from '../unique-id';\nimport type { CommandPaletteItem } from './command-palette.types';\n\ninterface PaletteEntry {\n  item: CommandPaletteItem;\n  flatIndex: number;\n  disabled: boolean;\n}\n\ninterface GroupedItems {\n  group: string;\n  items: readonly PaletteEntry[];\n}\n\n/**\n * `<ea-command-palette>` is a search-driven action launcher: a modal dialog\n * containing a search input and a filtered list of commands. Designed for\n * `Cmd/Ctrl + K`-style global menus.\n *\n * The component does NOT bind global shortcuts; the consumer wires up\n * whatever trigger they want and toggles `[(open)]`. Each selected command\n * is emitted via `(execute)`; the palette closes automatically afterwards.\n *\n * Items can be grouped via the `group` field; ungrouped items render first.\n * The active row is tracked via roving `aria-activedescendant` on the search\n * input, which is the canonical ARIA combobox-with-listbox pattern.\n */\n@Component({\n  selector: 'ea-command-palette',\n  templateUrl: './command-palette.component.html',\n  styleUrl: './command-palette.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [NgComponentOutlet, NgTemplateOutlet, InputComponent],\n})\nexport class CommandPaletteComponent {\n  private readonly i18n = inject(EagamiI18nService);\n  private readonly hostEl = inject<ElementRef<HTMLElement>>(ElementRef);\n  private readonly press = inject(PointerPressTracker);\n\n  readonly items = input.required<readonly CommandPaletteItem[]>();\n\n  readonly open = model<boolean>(false);\n\n  readonly placeholder = input<string>('');\n\n  readonly emptyMessage = input<string>('');\n\n  /**\n   * Optional predicate that disables every item it returns `true` for, in\n   * addition to each item's own `disabled` flag.\n   */\n  readonly disabledWhen = input<(item: CommandPaletteItem) => boolean>();\n\n  readonly execute = output<CommandPaletteItem>();\n\n  protected readonly messages = this.i18n.messages;\n\n  protected readonly resolvedPlaceholder = computed(\n    () => this.placeholder() || this.messages().commandPalette.searchPlaceholder,\n  );\n\n  private readonly dialogEl = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n  private readonly searchEl = viewChild<InputComponent>('searchEl');\n\n  protected readonly searchIcon = SearchIconComponent;\n\n  protected readonly query = signal<string>('');\n\n  protected readonly listboxId = uniqueId('ea-command-palette-listbox');\n\n  /**\n   * Items bucketed by `group`, then flattened back into display order\n   * (ungrouped items first, then each named group). The matching\n   * `filteredEntries` array follows this same order so `flatIndex` lines up\n   * one-to-one with what the user sees. Each entry resolves its disabled state\n   * once here, so a consumer's `disabledWhen` runs once per match rather than\n   * on every binding read.\n   */\n  protected readonly groupedItems = computed<GroupedItems[]>(() => {\n    const q = foldForSearch(this.query().trim());\n    const disabledWhen = this.disabledWhen();\n    const candidates = this.items().filter(item => {\n      if (!q) {\n        return true;\n      }\n      const haystack = foldForSearch(\n        [item.label, item.description ?? '', ...(item.keywords ?? [])].join(' '),\n      );\n      // Match when the query is a prefix of any word in the haystack.\n      // Substring-anywhere matching would surface confusing results (typing\n      // \"c\" matching \"Repla*c*e\" via a mid-word character); word-boundary\n      // matching keeps results predictable.\n      return haystack.split(/[\\s\\-_]+/).some(word => word.startsWith(q));\n    });\n\n    const buckets = new Map<string, CommandPaletteItem[]>();\n    for (const item of candidates) {\n      const key = item.group ?? '';\n      if (!buckets.has(key)) {\n        buckets.set(key, []);\n      }\n      buckets.get(key)!.push(item);\n    }\n\n    const groups: GroupedItems[] = [];\n    let flatIndex = 0;\n    const pushGroup = (group: string, items: CommandPaletteItem[]) => {\n      groups.push({\n        group,\n        items: items.map(item => ({\n          item,\n          flatIndex: flatIndex++,\n          disabled: !!item.disabled || !!disabledWhen?.(item),\n        })),\n      });\n    };\n\n    const ungrouped = buckets.get('');\n    if (ungrouped && ungrouped.length > 0) {\n      pushGroup('', ungrouped);\n    }\n    for (const [group, items] of buckets) {\n      if (group !== '') {\n        pushGroup(group, items);\n      }\n    }\n    return groups;\n  });\n\n  /**\n   * Flat list of matches in display order. Drives keyboard navigation and\n   * `aria-activedescendant`.\n   */\n  protected readonly filteredEntries = computed(() =>\n    this.groupedItems().flatMap(group => group.items),\n  );\n\n  private readonly _activeIndex = signal<number>(0);\n\n  /**\n   * Tracks what the user last did so the visual highlight only renders when\n   * it actually reflects what a click/Enter would select right now:\n   *  - `keyboard`: keyboard nav (or just-opened / just-typed): show the\n   *    active item's background so keyboard users see what Enter will pick.\n   *  - `mouse`: pointer is moving inside the list: rely on `:hover` for the\n   *    visual; skip the active-row background to avoid two highlights.\n   *  - `none`: pointer is outside the list and no keyboard nav has happened\n   *    since: nothing is highlighted, because nothing on screen is a\n   *    next-click target.\n   */\n  private readonly interaction = signal<'keyboard' | 'mouse' | 'none'>('keyboard');\n\n  protected readonly activeIndex = computed(() => {\n    const entries = this.filteredEntries();\n    if (entries.length === 0) {\n      return -1;\n    }\n    // Open/filter resets pin the index at 0, which may be a disabled row;\n    // resolve to the nearest enabled one, preferring the next row down\n    const start = Math.min(this._activeIndex(), entries.length - 1);\n    const forward = this.firstEnabled(start, 1);\n    return forward >= 0 ? forward : this.firstEnabled(start - 1, -1);\n  });\n\n  protected readonly activeId = computed(() => {\n    const idx = this.activeIndex();\n    if (idx < 0) {\n      return undefined;\n    }\n    return `ea-command-palette-item-${this.filteredEntries()[idx].item.id}`;\n  });\n\n  constructor() {\n    /* When the palette opens, focus the search input and reset state. The\n       dialog needs an extra tick to call `showModal()` before the input is\n       focusable, so queue the focus into a microtask. */\n    effect(() => {\n      const isOpen = this.open();\n      const dialog = this.dialogEl()?.nativeElement;\n      if (!dialog) {\n        return;\n      }\n\n      if (isOpen) {\n        if (!dialog.open) {\n          dialog.showModal?.();\n        }\n        this.query.set('');\n        this._activeIndex.set(0);\n        this.interaction.set('keyboard');\n        queueMicrotask(() => this.searchEl()?.focus());\n      } else if (dialog.open) {\n        dialog.close();\n      }\n    });\n  }\n\n  protected itemDomId(item: CommandPaletteItem): string {\n    return `ea-command-palette-item-${item.id}`;\n  }\n\n  /** Index of the first enabled entry from `start`, walking in `step`; -1 when none. */\n  private firstEnabled(start: number, step: 1 | -1): number {\n    const entries = this.filteredEntries();\n    for (let idx = start; idx >= 0 && idx < entries.length; idx += step) {\n      if (!entries[idx].disabled) {\n        return idx;\n      }\n    }\n    return -1;\n  }\n\n  protected isActive(flatIndex: number): boolean {\n    return this.activeIndex() === flatIndex;\n  }\n\n  /**\n   * Whether the active row should render its highlighted background right\n   * now. False when the pointer is hovering the list (`:hover` handles the\n   * visual) or when the pointer is out of the list entirely (nothing is a\n   * next-click target).\n   */\n  protected showActiveHighlight(flatIndex: number): boolean {\n    return this.interaction() === 'keyboard' && this.isActive(flatIndex);\n  }\n\n  protected onQueryChange(value: string): void {\n    this.query.set(value);\n    this._activeIndex.set(0);\n    // Typing implies keyboard intent; surface the first match so the user\n    // knows what Enter would pick without having to mouse over.\n    this.interaction.set('keyboard');\n  }\n\n  protected onSearchKeydown(event: KeyboardEvent): void {\n    /* Bound on the field host, which also contains the clear button; keys\n       pressed there must reach the button rather than drive the list. */\n    if (event.target !== this.searchEl()?.inputEl()?.nativeElement) {\n      return;\n    }\n    if (this.filteredEntries().length === 0) {\n      return;\n    }\n\n    switch (event.key) {\n      case 'ArrowDown': {\n        event.preventDefault();\n        this.moveActive(1);\n        break;\n      }\n      case 'ArrowUp': {\n        event.preventDefault();\n        this.moveActive(-1);\n        break;\n      }\n      case 'Home': {\n        event.preventDefault();\n        this.edgeActive(1);\n        break;\n      }\n      case 'End': {\n        event.preventDefault();\n        this.edgeActive(-1);\n        break;\n      }\n      case 'Enter': {\n        event.preventDefault();\n        const entry = this.filteredEntries()[this.activeIndex()];\n        if (entry) {\n          this.executeItem(entry);\n        }\n        break;\n      }\n    }\n  }\n\n  /** Wrapping arrow-key move that skips disabled items. */\n  private moveActive(delta: 1 | -1): void {\n    const entries = this.filteredEntries();\n    let idx = this.activeIndex();\n    for (let i = 0; i < entries.length; i++) {\n      idx = (idx + delta + entries.length) % entries.length;\n      if (!entries[idx].disabled) {\n        this.setActiveByKeyboard(idx);\n        return;\n      }\n    }\n  }\n\n  /** Home/End move to the first enabled item from the given end. */\n  private edgeActive(direction: 1 | -1): void {\n    const start = direction === 1 ? 0 : this.filteredEntries().length - 1;\n    const idx = this.firstEnabled(start, direction);\n    if (idx >= 0) {\n      this.setActiveByKeyboard(idx);\n    }\n  }\n\n  private setActiveByKeyboard(idx: number): void {\n    this._activeIndex.set(idx);\n    this.interaction.set('keyboard');\n    this.scrollActiveIntoView();\n  }\n\n  protected onItemClick(entry: PaletteEntry): void {\n    this.executeItem(entry);\n  }\n\n  protected onItemMouseEnter(entry: PaletteEntry): void {\n    if (entry.disabled) {\n      return;\n    }\n    this._activeIndex.set(entry.flatIndex);\n    this.interaction.set('mouse');\n  }\n\n  protected onListMouseLeave(): void {\n    /* Once the pointer leaves the list, no item is a candidate for the next\n       click, so drop the keyboard-highlight too. A subsequent keyboard nav\n       will restore it. */\n    this.interaction.set('none');\n  }\n\n  protected onBackdropClick(event: MouseEvent): void {\n    /* Native `<dialog>` clicks land on the dialog itself when the user clicks\n       the backdrop; clicks inside content bubble up via the panel. So a click\n       whose target IS the dialog element means the user clicked the backdrop,\n       unless the press behind it touched the panel at either end: the dialog is\n       the first ancestor the two share, so a drag out of the panel reports the\n       same target. */\n    const dialog = this.dialogEl()?.nativeElement;\n    if (event.target === dialog && this.press.stayedOn(dialog)) {\n      this.open.set(false);\n    }\n  }\n\n  protected onDialogClose(): void {\n    /* The dialog's native `close` event fires when the user hits Esc or the\n       backdrop dispatches `close`. Mirror that back into the `open` model\n       so consumers stay in sync. */\n    if (this.open()) {\n      this.open.set(false);\n    }\n  }\n\n  private executeItem(entry: PaletteEntry): void {\n    if (entry.disabled) {\n      return;\n    }\n    this.execute.emit(entry.item);\n    this.open.set(false);\n  }\n\n  private scrollActiveIntoView(): void {\n    queueMicrotask(() => {\n      const id = this.activeId();\n      if (!id) {\n        return;\n      }\n      const el = this.hostEl.nativeElement.querySelector<HTMLElement>(`#${id}`);\n      el?.scrollIntoView({ block: 'nearest' });\n    });\n  }\n}\n","<dialog\n  #dialogEl\n  class=\"ea-command-palette\"\n  [attr.aria-label]=\"messages().commandPalette.dialogLabel\"\n  (close)=\"onDialogClose()\"\n  (click)=\"onBackdropClick($event)\">\n  <div class=\"ea-command-palette__panel\">\n    <div class=\"ea-command-palette__search\">\n      <ea-input\n        #searchEl\n        class=\"ea-command-palette__search-input\"\n        [icon]=\"searchIcon\"\n        [clearable]=\"true\"\n        [role]=\"'combobox'\"\n        [autocomplete]=\"'off'\"\n        [spellcheck]=\"false\"\n        [aria-label]=\"resolvedPlaceholder()\"\n        [aria-controls]=\"filteredEntries().length > 0 ? listboxId : undefined\"\n        [aria-expanded]=\"filteredEntries().length > 0\"\n        [aria-autocomplete]=\"'list'\"\n        [aria-activedescendant]=\"activeId()\"\n        [placeholder]=\"resolvedPlaceholder()\"\n        [value]=\"query()\"\n        (valueChange)=\"onQueryChange($event)\"\n        (keydown)=\"onSearchKeydown($event)\" />\n    </div>\n\n    @if (filteredEntries().length === 0) {\n      <p\n        class=\"ea-command-palette__empty\"\n        role=\"status\">\n        {{ emptyMessage() || messages().commandPalette.empty }}\n      </p>\n    } @else {\n      <ul\n        class=\"ea-command-palette__list\"\n        role=\"listbox\"\n        [id]=\"listboxId\"\n        (mouseleave)=\"onListMouseLeave()\">\n        @for (group of groupedItems(); track group.group; let gi = $index) {\n          @if (group.group) {\n            <li\n              class=\"ea-command-palette__section\"\n              role=\"presentation\">\n              <div\n                class=\"ea-command-palette__group\"\n                [id]=\"listboxId + '-group-' + gi\">\n                {{ group.group }}\n              </div>\n              <ul\n                class=\"ea-command-palette__section-list\"\n                role=\"group\"\n                [attr.aria-labelledby]=\"listboxId + '-group-' + gi\">\n                @for (entry of group.items; track entry.item.id) {\n                  <ng-container\n                    *ngTemplateOutlet=\"optionTpl; context: { $implicit: entry }\" />\n                }\n              </ul>\n            </li>\n          } @else {\n            @for (entry of group.items; track entry.item.id) {\n              <ng-container\n                *ngTemplateOutlet=\"optionTpl; context: { $implicit: entry }\" />\n            }\n          }\n        }\n      </ul>\n    }\n  </div>\n</dialog>\n\n<ng-template\n  #optionTpl\n  let-entry>\n  <li\n    class=\"ea-command-palette__item\"\n    role=\"option\"\n    [id]=\"itemDomId(entry.item)\"\n    [attr.aria-selected]=\"isActive(entry.flatIndex)\"\n    [attr.aria-disabled]=\"entry.disabled || null\"\n    [class.ea-command-palette__item--active]=\"showActiveHighlight(entry.flatIndex)\"\n    [class.ea-command-palette__item--disabled]=\"entry.disabled\"\n    (click)=\"onItemClick(entry)\"\n    (mouseenter)=\"onItemMouseEnter(entry)\">\n    @if (entry.item.icon; as iconClass) {\n      <span\n        class=\"ea-command-palette__item-icon\"\n        aria-hidden=\"true\">\n        <ng-container *ngComponentOutlet=\"iconClass\" />\n      </span>\n    }\n    <span class=\"ea-command-palette__item-text\">\n      <span class=\"ea-command-palette__item-label\">\n        {{ entry.item.label }}\n      </span>\n      @if (entry.item.description) {\n        <span class=\"ea-command-palette__item-description\">\n          {{ entry.item.description }}\n        </span>\n      }\n    </span>\n    @if (entry.item.shortcut) {\n      <kbd class=\"ea-command-palette__item-shortcut\">\n        {{ entry.item.shortcut }}\n      </kbd>\n    }\n  </li>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-droplet',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\" />\n    </svg>\n  `,\n})\nexport class DropletIconComponent extends IconComponentBase {\n  static readonly slug = 'droplet';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'droplet',\n    'water',\n    'drop',\n    'liquid',\n    'rain',\n    'goutte',\n    'eau',\n    'gota',\n    'agua',\n    'σταγόνα',\n    'νερό',\n    'kropla',\n    'woda',\n  ];\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  Injector,\n  type Type,\n  afterNextRender,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { DropletIconComponent } from '../icons/droplet.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { PopoverComponent } from '../popover/popover.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the color picker trigger. */\nexport type ColorPickerSize = EaSize;\n/** Output format. `all` (default) lets the user cycle hex/rgb/hsl from the popover; a specific value locks the picker to it. */\nexport type ColorPickerFormat = 'hex' | 'rgb' | 'hsl' | 'all';\n/** A concrete format the popover can show inputs for and emit. */\nexport type ColorPickerInputMode = 'hex' | 'rgb' | 'hsl';\n/** Value accepted via `writeValue`: any CSS color string or `null`. */\nexport type ColorPickerValue = string | null;\n\ninterface Rgb {\n  r: number;\n  g: number;\n  b: number;\n}\n\ninterface Hsv {\n  h: number;\n  s: number;\n  v: number;\n}\n\n// Minimal EyeDropper API typing; not in lib.dom\ninterface EyeDropperResult {\n  sRGBHex: string;\n}\ninterface EyeDropperLike {\n  open(): Promise<EyeDropperResult>;\n}\ntype EyeDropperCtor = new () => EyeDropperLike;\n\nconst DEFAULT_PRESETS: readonly string[] = [\n  '#ef4444',\n  '#f97316',\n  '#f59e0b',\n  '#eab308',\n  '#84cc16',\n  '#22c55e',\n  '#10b981',\n  '#14b8a6',\n  '#06b6d4',\n  '#0ea5e9',\n  '#3b82f6',\n  '#6366f1',\n  '#8b5cf6',\n  '#a855f7',\n  '#d946ef',\n  '#ec4899',\n  '#f43f5e',\n  '#000000',\n  '#6b7280',\n  '#ffffff',\n];\n\n/**\n * Popover color picker with a saturation/value gradient area, hue slider,\n * optional alpha slider, hex + RGB inputs, a configurable preset palette,\n * and an eyedropper (Chromium browsers). Integrates with Angular forms via\n * `ControlValueAccessor`. Accepts any CSS color string in `writeValue`.\n */\n@Component({\n  selector: 'ea-color-picker',\n  imports: [\n    DropletIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    NgClass,\n    PopoverComponent,\n    XIconComponent,\n  ],\n  templateUrl: './color-picker.component.html',\n  styleUrl: './color-picker.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ColorPickerComponent),\n      multi: true,\n    },\n  ],\n})\nexport class ColorPickerComponent implements ControlValueAccessor {\n  protected readonly triggerEl = viewChild<ElementRef<HTMLButtonElement>>('triggerEl');\n  private readonly svAreaEl = viewChild<ElementRef<HTMLDivElement>>('svAreaEl');\n  private readonly hueTrackEl = viewChild<ElementRef<HTMLDivElement>>('hueTrackEl');\n  private readonly alphaTrackEl = viewChild<ElementRef<HTMLDivElement>>('alphaTrackEl');\n  private readonly injector = inject(Injector);\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly placeholder = input<string | undefined>(undefined);\n  readonly size = input<ColorPickerSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Whether to show the alpha slider. When `false` the emitted value always has alpha = 1. */\n  readonly showAlpha = input<boolean>(true);\n  /** Whether to show the clear button when a value is set. */\n  readonly clearable = input<boolean>(true);\n  /**\n   * Trigger as a bare square swatch instead of a field with the value beside\n   * it, for a colour sitting in a dense row or a toolbar. The value text and\n   * the clear button, which have nowhere to go at that size, are dropped.\n   */\n  readonly compact = input<boolean>(false);\n  /** Output format. `all` lets the user cycle hex/rgb/hsl in the popover; a specific value locks it. */\n  readonly format = input<ColorPickerFormat>('all');\n  /** Preset swatches shown at the bottom of the popover. Pass an empty array to hide. */\n  readonly presets = input<readonly string[]>(DEFAULT_PRESETS);\n  readonly id = input<string>(uniqueId('ea-color-picker'));\n\n  readonly value = model<string | null>(null);\n\n  /** Fires with the new color string whenever the selection changes. */\n  readonly changed = output<string | null>();\n\n  readonly isOpen = signal(false);\n  private readonly hue = signal(0);\n  private readonly sat = signal(0);\n  private readonly val = signal(0);\n  private readonly alpha = signal(1);\n  /** Tracks the active drag target so pointermove can route correctly. */\n  private readonly dragging = signal<'sv' | 'hue' | 'alpha' | null>(null);\n  /** The user's chosen format when `format` is `all`; the popover toggle cycles it. */\n  readonly inputMode = signal<ColorPickerInputMode>('hex');\n  /** Resolved format driving both the visible inputs and the emitted value. */\n  readonly activeFormat = computed<ColorPickerInputMode>(() => {\n    const f = this.format();\n    return f === 'all' ? this.inputMode() : f;\n  });\n  /** Whether the in-popover format toggle is shown (only when `format` is `all`). */\n  readonly canToggleFormat = computed(() => this.format() === 'all');\n  /** What the hex input shows. Kept separate from the canonical hex so the user\n   * can type a partial value (`#1`, `#12`, `#123`...) without each keystroke being\n   * expanded back into a 6-digit canonical form. */\n  readonly hexInputValue = signal('');\n  private readonly _formDisabled = signal(false);\n\n  /** The last value this component emitted, so the value-sync effect can tell an\n   * external `[(value)]` / reset change from its own commit and skip the echo. */\n  private lastCommitted: string | null = null;\n\n  // Sync internal HSV when `value` is set from outside (an input binding), which\n  // otherwise only happens through the forms `writeValue` path. Without this a\n  // `[(value)]`-bound initial color renders on the swatch as black.\n  private readonly valueSync = effect(() => {\n    const v = this.value();\n    if (v === null || v === this.lastCommitted) {\n      return;\n    }\n    const parsed = parseColor(v);\n    if (parsed) {\n      this.applyRgba(parsed.r, parsed.g, parsed.b, parsed.a, false);\n    }\n  });\n\n  private onChange: (value: string | null) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly rgb = computed<Rgb>(() => hsvToRgb(this.hue(), this.sat(), this.val()));\n\n  /**\n   * Presets whose colour matches the current one. Comparing the parsed colour\n   * rather than the emitted string keeps the pressed state working in every\n   * output format, not only when the value happens to be canonical hex.\n   */\n  protected readonly activePresets = computed(() => {\n    const { r, g, b } = this.rgb();\n    const a = this.showAlpha() ? this.alpha() : 1;\n    return new Set(\n      this.presets().filter(preset => {\n        const parsed = parseColor(preset);\n        return (\n          !!parsed &&\n          parsed.r === r &&\n          parsed.g === g &&\n          parsed.b === b &&\n          Math.abs(parsed.a - a) < 0.005\n        );\n      }),\n    );\n  });\n\n  readonly displayColor = computed(() => {\n    const { r, g, b } = this.rgb();\n    // With the alpha slider off the emitted value is always opaque, so the\n    // swatch must not preview a transparency the consumer never receives\n    const a = this.showAlpha() ? this.alpha() : 1;\n    return `rgba(${r}, ${g}, ${b}, ${a})`;\n  });\n\n  /** Opaque version of the current color, used as the hue/SV reference. */\n  readonly opaqueColor = computed(() => {\n    const { r, g, b } = this.rgb();\n    return `rgb(${r}, ${g}, ${b})`;\n  });\n\n  readonly hueColor = computed(() => {\n    const { r, g, b } = hsvToRgb(this.hue(), 1, 1);\n    return `rgb(${r}, ${g}, ${b})`;\n  });\n\n  readonly hexDisplay = computed(() =>\n    rgbaToHex(this.rgb(), this.alpha(), this.showAlpha()),\n  );\n\n  /** Rounded HSL channels (h in degrees, s/l as percentages) for the HSL inputs. */\n  readonly hslDisplay = computed(() => {\n    const { h, s, l } = rgbToHsl(this.rgb());\n    return { h: Math.round(h), s: Math.round(s * 100), l: Math.round(l * 100) };\n  });\n\n  /** Uppercase label for the format toggle, e.g. `HEX`. */\n  readonly formatLabel = computed(() => this.activeFormat().toUpperCase());\n\n  /** Accessible name for the format toggle; includes the visible format text. */\n  readonly formatToggleLabel = computed(\n    () => `${this.i18n.messages().colorPicker.toggleFormat}: ${this.formatLabel()}`,\n  );\n\n  readonly displayValue = computed(() => {\n    if (this.value() === null) {\n      return '';\n    }\n    return formatColor(this.rgb(), this.alpha(), this.activeFormat(), this.showAlpha());\n  });\n\n  readonly resolvedPlaceholder = computed(\n    () => this.placeholder() ?? this.i18n.messages().colorPicker.placeholder,\n  );\n\n  readonly popoverId = computed(() => `${this.id()}-popover`);\n\n  readonly triggerLabelledBy = computed(() =>\n    this.label() ? `${this.id()}-label ${this.id()}` : null,\n  );\n\n  readonly triggerClasses = computed(() => ({\n    [`ea-color-picker__trigger--${this.size()}`]: true,\n    'ea-color-picker__trigger--compact': this.compact(),\n    'ea-color-picker__trigger--error': this.hasError(),\n    'ea-color-picker__trigger--open': this.isOpen(),\n    'ea-color-picker__trigger--disabled': this.isDisabled(),\n    'ea-color-picker__trigger--readonly': this.readonly() && !this.isDisabled(),\n  }));\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-color-picker__trigger-wrapper--${this.size()}`]: true,\n  }));\n\n  // The popover is portaled to the document body, so it cannot inherit the\n  // trigger's font-size; this size class carries the scale over to it.\n  readonly popoverClasses = computed(() => ({\n    [`ea-color-picker__popover--${this.size()}`]: true,\n  }));\n\n  /**\n   * True when the browser supports the EyeDropper API. Not a `computed`:\n   * `window.EyeDropper` isn't a signal, so a memoized computed would cache the\n   * first read (typically `false`, since the popover content's bindings\n   * evaluate at parent-view creation time via content projection, before any\n   * polyfill / test setup runs). A plain method re-checks on every call.\n   */\n  hasEyeDropper(): boolean {\n    if (typeof window === 'undefined') {\n      return false;\n    }\n    return (\n      typeof (window as unknown as { EyeDropper?: EyeDropperCtor }).EyeDropper ===\n      'function'\n    );\n  }\n\n  writeValue(val: ColorPickerValue): void {\n    if (!val) {\n      this.value.set(null);\n      this.hue.set(0);\n      this.sat.set(0);\n      this.val.set(0);\n      this.alpha.set(1);\n      this.hexInputValue.set('');\n      return;\n    }\n    const parsed = parseColor(val);\n    if (!parsed) {\n      return;\n    }\n    this.applyRgba(parsed.r, parsed.g, parsed.b, parsed.a, false);\n  }\n\n  registerOnChange(fn: (value: string | null) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  toggle(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    if (this.isOpen()) {\n      this.close();\n    } else {\n      this.open();\n    }\n  }\n\n  open(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.isOpen.set(true);\n    // `preventScroll: true`: see the matching note in `ea-menu` for why:\n    // focusing inside a `position: fixed` popover nested under a sticky/scrolled\n    // ancestor otherwise nudges the document scroll position toward the trigger.\n    afterNextRender(() => this.svAreaEl()?.nativeElement.focus({ preventScroll: true }), {\n      injector: this.injector,\n    });\n  }\n\n  close(): void {\n    if (!this.isOpen()) {\n      return;\n    }\n    this.isOpen.set(false);\n    this.dragging.set(null);\n    this.onTouched();\n  }\n\n  focus(): void {\n    this.triggerEl()?.nativeElement.focus();\n  }\n\n  clear(event: Event): void {\n    event.stopPropagation();\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.value.set(null);\n    this.hue.set(0);\n    this.sat.set(0);\n    this.val.set(0);\n    this.alpha.set(1);\n    this.hexInputValue.set('');\n    this.onChange(null);\n    this.onTouched();\n    this.changed.emit(null);\n  }\n\n  readonly svPointerLeft = computed(() => `${this.sat() * 100}%`);\n  readonly svPointerTop = computed(() => `${(1 - this.val()) * 100}%`);\n  readonly huePointerLeft = computed(() => `${(this.hue() / 360) * 100}%`);\n  readonly alphaPointerLeft = computed(() => `${this.alpha() * 100}%`);\n  readonly hueRounded = computed(() => Math.round(this.hue()));\n  readonly alphaPercentRounded = computed(() => Math.round(this.alpha() * 100));\n  readonly satPercent = computed(() => Math.round(this.sat() * 100));\n  readonly valPercent = computed(() => Math.round(this.val() * 100));\n\n  onSvPointerDown(event: PointerEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const target = event.target as HTMLElement;\n    target.setPointerCapture?.(event.pointerId);\n    this.dragging.set('sv');\n    this.updateSvFromPointer(event);\n  }\n\n  onSvPointerMove(event: PointerEvent): void {\n    if (this.dragging() !== 'sv') {\n      return;\n    }\n    this.updateSvFromPointer(event);\n  }\n\n  onSvPointerUp(event: PointerEvent): void {\n    if (this.dragging() !== 'sv') {\n      return;\n    }\n    (event.target as HTMLElement).releasePointerCapture?.(event.pointerId);\n    this.dragging.set(null);\n  }\n\n  onSvKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const step = event.shiftKey ? 0.1 : 0.01;\n    let s = this.sat();\n    let v = this.val();\n    switch (event.key) {\n      case 'ArrowLeft':\n        s -= step;\n        break;\n      case 'ArrowRight':\n        s += step;\n        break;\n      case 'ArrowUp':\n        v += step;\n        break;\n      case 'ArrowDown':\n        v -= step;\n        break;\n      case 'Home':\n        s = 0;\n        break;\n      case 'End':\n        s = 1;\n        break;\n      default:\n        return;\n    }\n    event.preventDefault();\n    this.applyHsv(this.hue(), clamp01(s), clamp01(v));\n  }\n\n  private updateSvFromPointer(event: PointerEvent): void {\n    const area = this.svAreaEl()?.nativeElement;\n    if (!area) {\n      return;\n    }\n    const rect = area.getBoundingClientRect();\n    const x = clamp01((event.clientX - rect.left) / rect.width);\n    const y = clamp01((event.clientY - rect.top) / rect.height);\n    this.applyHsv(this.hue(), x, 1 - y);\n  }\n\n  onHuePointerDown(event: PointerEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\n    this.dragging.set('hue');\n    this.updateHueFromPointer(event);\n  }\n\n  onHuePointerMove(event: PointerEvent): void {\n    if (this.dragging() !== 'hue') {\n      return;\n    }\n    this.updateHueFromPointer(event);\n  }\n\n  onHuePointerUp(event: PointerEvent): void {\n    if (this.dragging() !== 'hue') {\n      return;\n    }\n    (event.target as HTMLElement).releasePointerCapture?.(event.pointerId);\n    this.dragging.set(null);\n  }\n\n  onHueKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const step = event.shiftKey ? 10 : 1;\n    let h = this.hue();\n    switch (event.key) {\n      case 'ArrowDown':\n        h -= step;\n        break;\n      case 'ArrowUp':\n        h += step;\n        break;\n      case 'ArrowLeft':\n        h -= step;\n        break;\n      case 'ArrowRight':\n        h += step;\n        break;\n      case 'Home':\n        this.applyHsv(0, this.sat(), this.val());\n        event.preventDefault();\n        return;\n      case 'End':\n        // The pointer path reaches 360 at the right edge, so End must too;\n        // wrapping it would send the thumb to the opposite end\n        this.applyHsv(360, this.sat(), this.val());\n        event.preventDefault();\n        return;\n      default:\n        return;\n    }\n    event.preventDefault();\n    this.applyHsv(((h % 360) + 360) % 360, this.sat(), this.val());\n  }\n\n  private updateHueFromPointer(event: PointerEvent): void {\n    const track = this.hueTrackEl()?.nativeElement;\n    if (!track) {\n      return;\n    }\n    const rect = track.getBoundingClientRect();\n    const ratio = clamp01((event.clientX - rect.left) / rect.width);\n    this.applyHsv(ratio * 360, this.sat(), this.val());\n  }\n\n  onAlphaPointerDown(event: PointerEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\n    this.dragging.set('alpha');\n    this.updateAlphaFromPointer(event);\n  }\n\n  onAlphaPointerMove(event: PointerEvent): void {\n    if (this.dragging() !== 'alpha') {\n      return;\n    }\n    this.updateAlphaFromPointer(event);\n  }\n\n  onAlphaPointerUp(event: PointerEvent): void {\n    if (this.dragging() !== 'alpha') {\n      return;\n    }\n    (event.target as HTMLElement).releasePointerCapture?.(event.pointerId);\n    this.dragging.set(null);\n  }\n\n  onAlphaKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const step = event.shiftKey ? 0.1 : 0.01;\n    let a = this.alpha();\n    switch (event.key) {\n      case 'ArrowDown':\n        a -= step;\n        break;\n      case 'ArrowUp':\n        a += step;\n        break;\n      case 'ArrowLeft':\n        a -= step;\n        break;\n      case 'ArrowRight':\n        a += step;\n        break;\n      case 'Home':\n        a = 0;\n        break;\n      case 'End':\n        a = 1;\n        break;\n      default:\n        return;\n    }\n    event.preventDefault();\n    this.alpha.set(clamp01(a));\n    this.commit();\n  }\n\n  private updateAlphaFromPointer(event: PointerEvent): void {\n    const track = this.alphaTrackEl()?.nativeElement;\n    if (!track) {\n      return;\n    }\n    const rect = track.getBoundingClientRect();\n    const ratio = clamp01((event.clientX - rect.left) / rect.width);\n    this.alpha.set(ratio);\n    this.commit();\n  }\n\n  /**\n   * Mirrors the user's literal text into `hexInputValue` and (if the text\n   * parses) applies the new color silently, without rewriting the input.\n   * Without `refreshHex: false`, typing `#123` would parse, commit, and then\n   * snap the input back to `#112233` mid-keystroke, fighting the user's caret.\n   * Canonicalization happens only on blur via {@link onHexBlur}.\n   */\n  onHexInput(event: Event): void {\n    const raw = (event.target as HTMLInputElement).value;\n    this.hexInputValue.set(raw);\n    const parsed = parseColor(raw.startsWith('#') ? raw : `#${raw}`);\n    if (parsed) {\n      this.applyRgba(parsed.r, parsed.g, parsed.b, parsed.a, true, false);\n    }\n  }\n\n  onHexBlur(): void {\n    // Reset the partial text to the canonical hex of the current color\n    this.hexInputValue.set(this.hexDisplay());\n    this.onTouched();\n  }\n\n  onRgbInput(channel: 'r' | 'g' | 'b', event: Event): void {\n    const input = event.target as HTMLInputElement;\n    // Truncate to 3 digits, matching `maxlength`. type=\"text\" doesn't enforce\n    // maxlength on programmatic value sets, so re-clamp here defensively.\n    if (input.value.length > 3) {\n      input.value = input.value.slice(0, 3);\n    }\n    const raw = parseInt(input.value, 10);\n    if (Number.isNaN(raw)) {\n      return;\n    }\n    const v = Math.max(0, Math.min(255, raw));\n    const next = { ...this.rgb(), [channel]: v };\n    this.applyRgba(next.r, next.g, next.b, this.alpha(), true);\n  }\n\n  onHslInput(channel: 'h' | 's' | 'l', event: Event): void {\n    const input = event.target as HTMLInputElement;\n    if (input.value.length > 3) {\n      input.value = input.value.slice(0, 3);\n    }\n    const raw = parseInt(input.value, 10);\n    if (Number.isNaN(raw)) {\n      return;\n    }\n    const max = channel === 'h' ? 360 : 100;\n    const next = { ...this.hslDisplay(), [channel]: Math.max(0, Math.min(max, raw)) };\n    const rgb = hslToRgb(next.h, next.s / 100, next.l / 100);\n    this.applyRgba(rgb.r, rgb.g, rgb.b, this.alpha(), true);\n  }\n\n  /** Cycles the format through hex, rgb, and hsl (only used when `format` is `all`). */\n  cycleInputMode(): void {\n    this.inputMode.update(m => (m === 'hex' ? 'rgb' : m === 'rgb' ? 'hsl' : 'hex'));\n    // The toggle picks the notation the consumer receives, so re-emit straight\n    // away rather than leaving the value in the old format until the next edit\n    if (this.value() !== null) {\n      this.commit();\n    }\n  }\n\n  onAlphaInput(event: Event): void {\n    const input = event.target as HTMLInputElement;\n    if (input.value.length > 3) {\n      input.value = input.value.slice(0, 3);\n    }\n    const raw = parseInt(input.value, 10);\n    if (Number.isNaN(raw)) {\n      return;\n    }\n    const next = Math.max(0, Math.min(100, raw)) / 100;\n    this.alpha.set(next);\n    this.commit();\n  }\n\n  async pickFromScreen(): Promise<void> {\n    if (this.isDisabled() || this.readonly() || !this.hasEyeDropper()) {\n      return;\n    }\n    const Ctor = (window as unknown as { EyeDropper: EyeDropperCtor }).EyeDropper;\n    const dropper = new Ctor();\n    try {\n      const result = await dropper.open();\n      const parsed = parseColor(result.sRGBHex);\n      if (parsed) {\n        this.applyRgba(parsed.r, parsed.g, parsed.b, this.alpha(), true);\n      }\n    } catch {\n      // User cancelled the eyedropper; intentional no-op\n    }\n  }\n\n  selectPreset(hex: string): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const parsed = parseColor(hex);\n    if (!parsed) {\n      return;\n    }\n    this.applyRgba(parsed.r, parsed.g, parsed.b, parsed.a, true);\n  }\n\n  onTriggerKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    switch (event.key) {\n      case 'Enter':\n      case ' ':\n      case 'ArrowDown':\n        event.preventDefault();\n        this.open();\n        break;\n    }\n  }\n\n  onPopoverKeydown(event: KeyboardEvent): void {\n    if (event.key === 'Escape') {\n      event.preventDefault();\n      this.close();\n      this.triggerEl()?.nativeElement.focus({ preventScroll: true });\n    }\n  }\n\n  /** Called by `<ea-popover>` when the user clicks outside the picker. */\n  onPopoverCloseRequested(): void {\n    this.close();\n  }\n\n  private applyHsv(h: number, s: number, v: number): void {\n    this.hue.set(h);\n    this.sat.set(s);\n    this.val.set(v);\n    this.commit();\n  }\n\n  private applyRgba(\n    r: number,\n    g: number,\n    b: number,\n    a: number,\n    commit: boolean,\n    refreshHex = true,\n  ): void {\n    const hsv = rgbToHsv(r, g, b);\n    // Preserve current hue when the new color is achromatic (sat = 0)\n    this.hue.set(hsv.s === 0 ? this.hue() : hsv.h);\n    this.sat.set(hsv.s);\n    this.val.set(hsv.v);\n    this.alpha.set(a);\n    if (commit) {\n      this.commit(refreshHex);\n    } else if (refreshHex) {\n      this.refreshHexInput();\n    }\n  }\n\n  private commit(refreshHex = true): void {\n    const out = formatColor(\n      this.rgb(),\n      this.alpha(),\n      this.activeFormat(),\n      this.showAlpha(),\n    );\n    if (refreshHex) {\n      this.refreshHexInput();\n    }\n    if (out === this.value()) {\n      return;\n    }\n    this.lastCommitted = out;\n    this.value.set(out);\n    this.onChange(out);\n    this.changed.emit(out);\n  }\n\n  private refreshHexInput(): void {\n    this.hexInputValue.set(this.hexDisplay());\n  }\n}\n\nfunction clamp01(n: number): number {\n  return Math.min(1, Math.max(0, n));\n}\n\nfunction hsvToRgb(h: number, s: number, v: number): Rgb {\n  const c = v * s;\n  const hh = (h / 60) % 6;\n  const x = c * (1 - Math.abs((hh % 2) - 1));\n  const [r, g, b] = sectorToRgb(hh, c, x);\n  const m = v - c;\n  return {\n    r: Math.round((r + m) * 255),\n    g: Math.round((g + m) * 255),\n    b: Math.round((b + m) * 255),\n  };\n}\n\nfunction sectorToRgb(hh: number, c: number, x: number): [number, number, number] {\n  if (hh < 1) {\n    return [c, x, 0];\n  }\n  if (hh < 2) {\n    return [x, c, 0];\n  }\n  if (hh < 3) {\n    return [0, c, x];\n  }\n  if (hh < 4) {\n    return [0, x, c];\n  }\n  if (hh < 5) {\n    return [x, 0, c];\n  }\n  return [c, 0, x];\n}\n\nfunction rgbToHsv(r: number, g: number, b: number): Hsv {\n  const rn = r / 255;\n  const gn = g / 255;\n  const bn = b / 255;\n  const max = Math.max(rn, gn, bn);\n  const min = Math.min(rn, gn, bn);\n  const d = max - min;\n  let h = 0;\n  if (d !== 0) {\n    if (max === rn) {\n      h = ((gn - bn) / d) % 6;\n    } else if (max === gn) {\n      h = (bn - rn) / d + 2;\n    } else {\n      h = (rn - gn) / d + 4;\n    }\n    h *= 60;\n    if (h < 0) {\n      h += 360;\n    }\n  }\n  const s = max === 0 ? 0 : d / max;\n  return { h, s, v: max };\n}\n\nfunction rgbToHsl({ r, g, b }: Rgb): { h: number; s: number; l: number } {\n  const rn = r / 255;\n  const gn = g / 255;\n  const bn = b / 255;\n  const max = Math.max(rn, gn, bn);\n  const min = Math.min(rn, gn, bn);\n  const l = (max + min) / 2;\n  const d = max - min;\n  let h = 0;\n  let s = 0;\n  if (d !== 0) {\n    s = d / (1 - Math.abs(2 * l - 1));\n    if (max === rn) {\n      h = ((gn - bn) / d) % 6;\n    } else if (max === gn) {\n      h = (bn - rn) / d + 2;\n    } else {\n      h = (rn - gn) / d + 4;\n    }\n    h *= 60;\n    if (h < 0) {\n      h += 360;\n    }\n  }\n  return { h, s, l };\n}\n\nfunction rgbaToHex({ r, g, b }: Rgb, a: number, includeAlpha: boolean): string {\n  const toHex = (n: number) => n.toString(16).padStart(2, '0');\n  const base = `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n  if (!includeAlpha || a >= 1) {\n    return base;\n  }\n  return `${base}${toHex(Math.round(a * 255))}`;\n}\n\nfunction formatColor(\n  rgb: Rgb,\n  alpha: number,\n  format: ColorPickerInputMode,\n  includeAlpha: boolean,\n): string {\n  switch (format) {\n    case 'rgb':\n      return includeAlpha && alpha < 1\n        ? `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${Number(alpha.toFixed(2))})`\n        : `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n    case 'hsl': {\n      const { h, s, l } = rgbToHsl(rgb);\n      const hh = Math.round(h);\n      const ss = Math.round(s * 100);\n      const ll = Math.round(l * 100);\n      return includeAlpha && alpha < 1\n        ? `hsla(${hh}, ${ss}%, ${ll}%, ${Number(alpha.toFixed(2))})`\n        : `hsl(${hh}, ${ss}%, ${ll}%)`;\n    }\n    case 'hex':\n    default:\n      return rgbaToHex(rgb, alpha, includeAlpha);\n  }\n}\n\nfunction parseColor(input: string): (Rgb & { a: number }) | null {\n  const value = input.trim();\n  if (!value) {\n    return null;\n  }\n  const hex = parseHex(value);\n  if (hex) {\n    return hex;\n  }\n  const rgb = parseRgbFunc(value);\n  if (rgb) {\n    return rgb;\n  }\n  const hsl = parseHslFunc(value);\n  if (hsl) {\n    return hsl;\n  }\n  return parseViaCanvas(value);\n}\n\nfunction parseHex(value: string): (Rgb & { a: number }) | null {\n  const m = /^#?([0-9a-f]{3,8})$/i.exec(value);\n  if (!m) {\n    return null;\n  }\n  let h = m[1];\n  if (h.length === 3 || h.length === 4) {\n    h = h\n      .split('')\n      .map(c => c + c)\n      .join('');\n  }\n  if (h.length !== 6 && h.length !== 8) {\n    return null;\n  }\n  const r = parseInt(h.slice(0, 2), 16);\n  const g = parseInt(h.slice(2, 4), 16);\n  const b = parseInt(h.slice(4, 6), 16);\n  const a = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;\n  return { r, g, b, a };\n}\n\nfunction parseRgbFunc(value: string): (Rgb & { a: number }) | null {\n  const m = /^rgba?\\(([^)]+)\\)$/i.exec(value);\n  if (!m) {\n    return null;\n  }\n  const parts = m[1].split(/[,\\s/]+/).filter(Boolean);\n  if (parts.length < 3) {\n    return null;\n  }\n  const r = parseByte(parts[0]);\n  const g = parseByte(parts[1]);\n  const b = parseByte(parts[2]);\n  const a = parts[3] !== undefined ? clampAlpha(parts[3]) : 1;\n  if ([r, g, b].some(Number.isNaN)) {\n    return null;\n  }\n  return { r, g, b, a };\n}\n\nfunction parseHslFunc(value: string): (Rgb & { a: number }) | null {\n  const m = /^hsla?\\(([^)]+)\\)$/i.exec(value);\n  if (!m) {\n    return null;\n  }\n  const parts = m[1].split(/[,\\s/]+/).filter(Boolean);\n  if (parts.length < 3) {\n    return null;\n  }\n  const h = parseFloat(parts[0]);\n  const s = parseFloat(parts[1]) / 100;\n  const l = parseFloat(parts[2]) / 100;\n  const a = parts[3] !== undefined ? clampAlpha(parts[3]) : 1;\n  if ([h, s, l].some(Number.isNaN)) {\n    return null;\n  }\n  const rgb = hslToRgb(h, s, l);\n  return { ...rgb, a };\n}\n\nfunction parseViaCanvas(value: string): (Rgb & { a: number }) | null {\n  if (typeof document === 'undefined') {\n    return null;\n  }\n  const canvas = document.createElement('canvas');\n  canvas.width = 1;\n  canvas.height = 1;\n  const ctx = canvas.getContext('2d');\n  if (!ctx) {\n    return null;\n  }\n  ctx.fillStyle = '#000';\n  const before = ctx.fillStyle;\n  ctx.fillStyle = value;\n  if (\n    ctx.fillStyle === before &&\n    value.toLowerCase() !== '#000000' &&\n    value.toLowerCase() !== 'black'\n  ) {\n    return null;\n  }\n  ctx.fillRect(0, 0, 1, 1);\n  const data = ctx.getImageData(0, 0, 1, 1).data;\n  return { r: data[0], g: data[1], b: data[2], a: data[3] / 255 };\n}\n\nfunction hslToRgb(hue: number, sat: number, lum: number): Rgb {\n  // `sectorToRgb` assumes a non-negative sector and in-range channels; an out-of-range\n  // `hsl()` string would otherwise yield negative or >255 components\n  const h = ((hue % 360) + 360) % 360;\n  const s = clamp01(sat);\n  const l = clamp01(lum);\n  const c = (1 - Math.abs(2 * l - 1)) * s;\n  const hh = (h / 60) % 6;\n  const x = c * (1 - Math.abs((hh % 2) - 1));\n  const [r, g, b] = sectorToRgb(hh, c, x);\n  const m = l - c / 2;\n  return {\n    r: Math.round((r + m) * 255),\n    g: Math.round((g + m) * 255),\n    b: Math.round((b + m) * 255),\n  };\n}\n\nfunction parseByte(value: string): number {\n  const n = parseFloat(value);\n  return clampByte(value.endsWith('%') ? (n / 100) * 255 : n);\n}\n\nfunction clampByte(n: number): number {\n  return Math.max(0, Math.min(255, Math.round(n)));\n}\n\nfunction clampAlpha(value: string): number {\n  if (value.endsWith('%')) {\n    return clamp01(parseFloat(value) / 100);\n  }\n  return clamp01(parseFloat(value));\n}\n","<div class=\"ea-color-picker-field ea-color-picker-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div class=\"ea-color-picker\">\n    <div\n      class=\"ea-color-picker__trigger-wrapper\"\n      [ngClass]=\"wrapperClasses()\">\n      <button\n        #triggerEl\n        type=\"button\"\n        class=\"ea-color-picker__trigger\"\n        [ngClass]=\"triggerClasses()\"\n        [id]=\"id()\"\n        [disabled]=\"isDisabled()\"\n        [attr.aria-expanded]=\"isOpen()\"\n        [attr.aria-haspopup]=\"'dialog'\"\n        [attr.aria-labelledby]=\"triggerLabelledBy()\"\n        [attr.aria-controls]=\"isOpen() ? popoverId() : null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-invalid]=\"hasError() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        (click)=\"toggle()\"\n        (keydown)=\"onTriggerKeydown($event)\">\n        <span\n          class=\"ea-color-picker__swatch\"\n          aria-hidden=\"true\">\n          <span\n            class=\"ea-color-picker__swatch-fill\"\n            [style.--_ea-swatch-color]=\"value() ? displayColor() : null\">\n          </span>\n        </span>\n        @if (!compact()) {\n          <span\n            class=\"ea-color-picker__trigger-value\"\n            [class.ea-color-picker__trigger-value--placeholder]=\"!displayValue()\">\n            <bdi>{{ displayValue() || resolvedPlaceholder() }}</bdi>\n          </span>\n        }\n      </button>\n      @if (clearable() && !compact() && value() && !isDisabled() && !readonly()) {\n        <button\n          type=\"button\"\n          class=\"ea-color-picker__clear\"\n          [attr.aria-label]=\"i18n.messages().colorPicker.clear\"\n          (click)=\"clear($event)\">\n          <ea-icon-x\n            class=\"ea-color-picker__clear-icon\"\n            aria-hidden=\"true\" />\n        </button>\n      }\n    </div>\n\n    <ea-popover\n      [anchor]=\"triggerEl\"\n      [open]=\"isOpen()\"\n      [surfaceId]=\"popoverId()\"\n      placement=\"bottom-start\"\n      role=\"dialog\"\n      [aria-label]=\"i18n.messages().colorPicker.dialogLabel\"\n      [trapFocus]=\"true\"\n      [closeOnEscape]=\"false\"\n      scrollBehavior=\"close\"\n      (closeRequested)=\"onPopoverCloseRequested()\">\n      <div\n        class=\"ea-color-picker__popover\"\n        [ngClass]=\"popoverClasses()\"\n        (keydown)=\"onPopoverKeydown($event)\">\n        <div\n          #svAreaEl\n          class=\"ea-color-picker__sv-area\"\n          role=\"slider\"\n          tabindex=\"0\"\n          [attr.aria-label]=\"i18n.messages().colorPicker.saturationAndValue\"\n          aria-valuemin=\"0\"\n          aria-valuemax=\"100\"\n          [attr.aria-valuenow]=\"satPercent()\"\n          [attr.aria-valuetext]=\"\n            i18n\n              .messages()\n              .colorPicker.saturationAndValueStatus(satPercent(), valPercent())\n          \"\n          [style.background-color]=\"hueColor()\"\n          (pointerdown)=\"onSvPointerDown($event)\"\n          (pointermove)=\"onSvPointerMove($event)\"\n          (pointerup)=\"onSvPointerUp($event)\"\n          (pointercancel)=\"onSvPointerUp($event)\"\n          (keydown)=\"onSvKeydown($event)\">\n          <div class=\"ea-color-picker__sv-area-sat\"></div>\n          <div class=\"ea-color-picker__sv-area-val\"></div>\n          <div\n            class=\"ea-color-picker__sv-pointer\"\n            [style.background-color]=\"opaqueColor()\"\n            [style.left]=\"svPointerLeft()\"\n            [style.top]=\"svPointerTop()\">\n          </div>\n        </div>\n\n        <div\n          class=\"ea-color-picker__sv-status\"\n          aria-live=\"polite\">\n          {{\n            i18n\n              .messages()\n              .colorPicker.saturationAndValueStatus(satPercent(), valPercent())\n          }}\n        </div>\n\n        <div class=\"ea-color-picker__sliders\">\n          <div class=\"ea-color-picker__slider-row\">\n            <span\n              class=\"ea-color-picker__swatch ea-color-picker__swatch--lg\"\n              aria-hidden=\"true\">\n              <span\n                class=\"ea-color-picker__swatch-fill\"\n                [style.--_ea-swatch-color]=\"displayColor()\">\n              </span>\n            </span>\n            <div class=\"ea-color-picker__strip-stack\">\n              <div\n                #hueTrackEl\n                class=\"ea-color-picker__strip ea-color-picker__strip--hue\"\n                role=\"slider\"\n                tabindex=\"0\"\n                [attr.aria-label]=\"i18n.messages().colorPicker.hue\"\n                [attr.aria-valuemin]=\"0\"\n                [attr.aria-valuemax]=\"360\"\n                [attr.aria-valuenow]=\"hueRounded()\"\n                (pointerdown)=\"onHuePointerDown($event)\"\n                (pointermove)=\"onHuePointerMove($event)\"\n                (pointerup)=\"onHuePointerUp($event)\"\n                (pointercancel)=\"onHuePointerUp($event)\"\n                (keydown)=\"onHueKeydown($event)\">\n                <div\n                  class=\"ea-color-picker__strip-thumb\"\n                  [style.left]=\"huePointerLeft()\">\n                </div>\n              </div>\n              @if (showAlpha()) {\n                <div\n                  #alphaTrackEl\n                  class=\"ea-color-picker__strip ea-color-picker__strip--alpha\"\n                  role=\"slider\"\n                  tabindex=\"0\"\n                  [attr.aria-label]=\"i18n.messages().colorPicker.alpha\"\n                  [attr.aria-valuemin]=\"0\"\n                  [attr.aria-valuemax]=\"100\"\n                  [attr.aria-valuenow]=\"alphaPercentRounded()\"\n                  [attr.aria-valuetext]=\"alphaPercentRounded() + '%'\"\n                  [style.--ea-color-picker-alpha-base]=\"opaqueColor()\"\n                  (pointerdown)=\"onAlphaPointerDown($event)\"\n                  (pointermove)=\"onAlphaPointerMove($event)\"\n                  (pointerup)=\"onAlphaPointerUp($event)\"\n                  (pointercancel)=\"onAlphaPointerUp($event)\"\n                  (keydown)=\"onAlphaKeydown($event)\">\n                  <div\n                    class=\"ea-color-picker__strip-thumb\"\n                    [style.left]=\"alphaPointerLeft()\">\n                  </div>\n                </div>\n              }\n            </div>\n          </div>\n        </div>\n\n        <div\n          class=\"ea-color-picker__inputs\"\n          [class.ea-color-picker__inputs--hex]=\"activeFormat() === 'hex'\">\n          @switch (activeFormat()) {\n            @case ('hex') {\n              <label\n                class=\"ea-color-picker__input-group ea-color-picker__input-group--hex\">\n                <span class=\"ea-color-picker__input-label\">HEX</span>\n                <input\n                  class=\"ea-color-picker__input\"\n                  type=\"text\"\n                  dir=\"auto\"\n                  spellcheck=\"false\"\n                  autocomplete=\"off\"\n                  maxlength=\"9\"\n                  [value]=\"hexInputValue()\"\n                  (input)=\"onHexInput($event)\"\n                  (blur)=\"onHexBlur()\" />\n              </label>\n            }\n            @case ('rgb') {\n              <label class=\"ea-color-picker__input-group\">\n                <span class=\"ea-color-picker__input-label\">R</span>\n                <input\n                  class=\"ea-color-picker__input ea-color-picker__input--num\"\n                  type=\"text\"\n                  inputmode=\"numeric\"\n                  pattern=\"\\d*\"\n                  maxlength=\"3\"\n                  [value]=\"rgb().r\"\n                  (input)=\"onRgbInput('r', $event)\" />\n              </label>\n              <label class=\"ea-color-picker__input-group\">\n                <span class=\"ea-color-picker__input-label\">G</span>\n                <input\n                  class=\"ea-color-picker__input ea-color-picker__input--num\"\n                  type=\"text\"\n                  inputmode=\"numeric\"\n                  pattern=\"\\d*\"\n                  maxlength=\"3\"\n                  [value]=\"rgb().g\"\n                  (input)=\"onRgbInput('g', $event)\" />\n              </label>\n              <label class=\"ea-color-picker__input-group\">\n                <span class=\"ea-color-picker__input-label\">B</span>\n                <input\n                  class=\"ea-color-picker__input ea-color-picker__input--num\"\n                  type=\"text\"\n                  inputmode=\"numeric\"\n                  pattern=\"\\d*\"\n                  maxlength=\"3\"\n                  [value]=\"rgb().b\"\n                  (input)=\"onRgbInput('b', $event)\" />\n              </label>\n              @if (showAlpha()) {\n                <label class=\"ea-color-picker__input-group\">\n                  <span class=\"ea-color-picker__input-label\">A</span>\n                  <input\n                    class=\"ea-color-picker__input ea-color-picker__input--num\"\n                    type=\"text\"\n                    inputmode=\"numeric\"\n                    pattern=\"\\d*\"\n                    maxlength=\"3\"\n                    [value]=\"alphaPercentRounded()\"\n                    (input)=\"onAlphaInput($event)\" />\n                </label>\n              }\n            }\n            @case ('hsl') {\n              <label class=\"ea-color-picker__input-group\">\n                <span class=\"ea-color-picker__input-label\">H</span>\n                <input\n                  class=\"ea-color-picker__input ea-color-picker__input--num\"\n                  type=\"text\"\n                  inputmode=\"numeric\"\n                  pattern=\"\\d*\"\n                  maxlength=\"3\"\n                  [value]=\"hslDisplay().h\"\n                  (input)=\"onHslInput('h', $event)\" />\n              </label>\n              <label class=\"ea-color-picker__input-group\">\n                <span class=\"ea-color-picker__input-label\">S</span>\n                <input\n                  class=\"ea-color-picker__input ea-color-picker__input--num\"\n                  type=\"text\"\n                  inputmode=\"numeric\"\n                  pattern=\"\\d*\"\n                  maxlength=\"3\"\n                  [value]=\"hslDisplay().s\"\n                  (input)=\"onHslInput('s', $event)\" />\n              </label>\n              <label class=\"ea-color-picker__input-group\">\n                <span class=\"ea-color-picker__input-label\">L</span>\n                <input\n                  class=\"ea-color-picker__input ea-color-picker__input--num\"\n                  type=\"text\"\n                  inputmode=\"numeric\"\n                  pattern=\"\\d*\"\n                  maxlength=\"3\"\n                  [value]=\"hslDisplay().l\"\n                  (input)=\"onHslInput('l', $event)\" />\n              </label>\n              @if (showAlpha()) {\n                <label class=\"ea-color-picker__input-group\">\n                  <span class=\"ea-color-picker__input-label\">A</span>\n                  <input\n                    class=\"ea-color-picker__input ea-color-picker__input--num\"\n                    type=\"text\"\n                    inputmode=\"numeric\"\n                    pattern=\"\\d*\"\n                    maxlength=\"3\"\n                    [value]=\"alphaPercentRounded()\"\n                    (input)=\"onAlphaInput($event)\" />\n                </label>\n              }\n            }\n          }\n          @if (canToggleFormat()) {\n            <button\n              type=\"button\"\n              class=\"ea-color-picker__format-toggle\"\n              [attr.aria-label]=\"formatToggleLabel()\"\n              (click)=\"cycleInputMode()\">\n              {{ formatLabel() }}\n            </button>\n          }\n        </div>\n\n        @if (hasEyeDropper()) {\n          <div class=\"ea-color-picker__tools\">\n            <button\n              type=\"button\"\n              class=\"ea-color-picker__tool-btn\"\n              [attr.aria-label]=\"i18n.messages().colorPicker.eyedropper\"\n              (click)=\"pickFromScreen()\">\n              <ea-icon-droplet aria-hidden=\"true\" />\n              <span>{{ i18n.messages().colorPicker.eyedropper }}</span>\n            </button>\n          </div>\n        }\n\n        @if (presets().length > 0) {\n          <div class=\"ea-color-picker__presets\">\n            <span\n              class=\"ea-color-picker__presets-label\"\n              [id]=\"id() + '-presets-label'\">\n              {{ i18n.messages().colorPicker.presets }}\n            </span>\n            <div\n              class=\"ea-color-picker__presets-grid\"\n              role=\"group\"\n              [attr.aria-labelledby]=\"id() + '-presets-label'\">\n              @for (preset of presets(); track preset) {\n                <button\n                  type=\"button\"\n                  class=\"ea-color-picker__preset\"\n                  [attr.aria-label]=\"preset\"\n                  [attr.aria-pressed]=\"activePresets().has(preset)\"\n                  [style.background-color]=\"preset\"\n                  (click)=\"selectPreset(preset)\">\n                </button>\n              }\n            </div>\n          </div>\n        }\n      </div>\n    </ea-popover>\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"12\"\n        y1=\"5\"\n        x2=\"12\"\n        y2=\"19\" />\n      <polyline points=\"19 12 12 19 5 12\" />\n    </svg>\n  `,\n})\nexport class ArrowDownIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-down',\n    'arrow',\n    'down',\n    'south',\n    'descend',\n    'flèche',\n    'bas',\n    'flecha',\n    'abajo',\n    'βέλος',\n    'κάτω',\n    'strzałka',\n    'dół',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"12\"\n        y1=\"19\"\n        x2=\"12\"\n        y2=\"5\" />\n      <polyline points=\"5 12 12 5 19 12\" />\n    </svg>\n  `,\n})\nexport class ArrowUpIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-up',\n    'arrow',\n    'up',\n    'north',\n    'ascend',\n    'flèche',\n    'haut',\n    'flecha',\n    'arriba',\n    'βέλος',\n    'πάνω',\n    'strzałka',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevrons-up-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"7 15 12 20 17 15\" />\n      <polyline points=\"17 9 12 4 7 9\" />\n    </svg>\n  `,\n})\nexport class ChevronsUpDownIconComponent extends IconComponentBase {\n  static readonly slug = 'chevrons-up-down';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevrons-up-down',\n    'chevrons',\n    'up',\n    'down',\n    'sort',\n    'expand',\n    'haut',\n    'bas',\n    'arriba',\n    'abajo',\n    'πάνω',\n    'κάτω',\n    'góra',\n    'dół',\n  ];\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  type TemplateRef,\n  ViewEncapsulation,\n  computed,\n  contentChild,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  untracked,\n} from '@angular/core';\n\nimport { isRtl } from '../direction';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ArrowDownIconComponent } from '../icons/arrow-down.component';\nimport { ArrowUpIconComponent } from '../icons/arrow-up.component';\nimport { ChevronsUpDownIconComponent } from '../icons/chevrons-up-down.component';\nimport { type EaSize } from '../sizes';\n\n/** Vertical density preset for table rows and header cells. */\nexport type DataTableDensity = 'compact' | 'comfortable' | 'spacious';\n\n/** Visual size of the table's text, paddings, and icons. */\nexport type DataTableSize = EaSize;\n\n/** Sort direction; `null` means no sort is applied. */\nexport type DataTableSortDirection = 'asc' | 'desc' | null;\n\nfunction isModifiedClick(event: MouseEvent): boolean {\n  return (\n    event.button !== 0 || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey\n  );\n}\n\n/** Column definition for the data table, including optional cell/header templates. */\nexport interface DataTableColumn<T = Record<string, unknown>> {\n  key: string;\n  label: string;\n  sortable?: boolean;\n  align?: 'left' | 'center' | 'right';\n  width?: string;\n  format?: (value: unknown) => string;\n  cellTemplate?: TemplateRef<{ $implicit: T; value: unknown }>;\n  headerTemplate?: TemplateRef<{ $implicit: DataTableColumn<T> }>;\n}\n\n/** Current sort state: which column is sorted and in which direction. */\nexport interface DataTableSortState {\n  column: string;\n  direction: DataTableSortDirection;\n}\n\n/**\n * Table for tabular data with sortable columns, sticky headers, and density\n * presets. Supports striping, borders, hoverable rows, and custom cell or\n * header templates via `ng-template`. Sort state is exposed as a two-way\n * `model()` binding.\n */\n@Component({\n  selector: 'ea-data-table',\n  imports: [\n    ArrowDownIconComponent,\n    ArrowUpIconComponent,\n    ChevronsUpDownIconComponent,\n    NgClass,\n    NgTemplateOutlet,\n  ],\n  templateUrl: './data-table.component.html',\n  styleUrl: './data-table.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class DataTableComponent<T = Record<string, unknown>> {\n  private readonly i18n = inject(EagamiI18nService);\n  private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  // Roving-tabindex active cell for grid navigation. Row 0 is the header row;\n  // body rows are 1..N. Only meaningful while `navigable` is true.\n  private readonly activeCell = signal<{ row: number; col: number }>({ row: 0, col: 0 });\n\n  // Rows skipped per PageUp/PageDown within the grid body\n  private static readonly PAGE_JUMP = 10;\n\n  readonly columns = input.required<DataTableColumn<T>[]>();\n  readonly data = input.required<T[]>();\n  /**\n   * Rows holding each column's widest content. They are laid out but never shown,\n   * so column widths come from them rather than from whichever rows are in `data`,\n   * and stay put across pages and while data loads. Moot with `stickyHeader`, whose\n   * columns share the width equally unless given a `width`.\n   */\n  readonly sizingRows = input<T[]>([]);\n  /** Accessible name for the table, announced when it takes focus as a grid. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  /** Visible caption rendered above the table; also names it for assistive technology. */\n  readonly caption = input<string | undefined>(undefined);\n  readonly trackBy = input<keyof T | undefined>(undefined);\n  readonly density = input<DataTableDensity>('comfortable');\n  /** Visual size of the table; density paddings and icons scale with it. */\n  readonly size = input<DataTableSize>('md');\n  readonly stickyHeader = input<boolean>(false);\n  readonly striped = input<boolean>(false);\n  readonly hoverable = input<boolean>(true);\n  readonly bordered = input<boolean>(false);\n  /** Keeps every cell on one line, so a narrow viewport scrolls the table sideways instead of wrapping its text. */\n  readonly nowrap = input<boolean>(false);\n  readonly noDataText = input<string | undefined>(undefined);\n  /** Enables grid keyboard navigation: `role=\"grid\"`, roving tabindex, and arrow-key cell movement. */\n  readonly navigable = input<boolean>(false);\n  /** Marks body rows as clickable: shows a pointer cursor and emits `rowActivate` on click or Enter/Space. Independent of `hoverable` and `navigable`. */\n  readonly clickable = input<boolean>(false);\n  /**\n   * Gives a row its link target, or `null` for none. Every cell of the row then holds\n   * a real link, so the browser shows the target on hover and a modified click opens\n   * it elsewhere, while a plain click still emits `rowActivate` for the app to route.\n   */\n  readonly rowHref = input<((row: T) => string | null) | undefined>(undefined);\n\n  readonly sort = model<DataTableSortState>({ column: '', direction: null });\n\n  /** Fires whenever the sort column or direction changes via header click. */\n  readonly sorted = output<DataTableSortState>();\n\n  /** Fires with the row's data when a body row is activated by click or Enter/Space while `clickable` is set. */\n  readonly rowActivate = output<T>();\n\n  readonly noDataTemplate = contentChild<TemplateRef<unknown>>('noData');\n\n  /** Empty-state text, falling back to the active locale's translation. */\n  readonly resolvedNoDataText = computed(\n    () => this.noDataText() ?? this.i18n.messages().dataTable.noData,\n  );\n\n  readonly hostClasses = computed(() => ({\n    [`ea-data-table--${this.density()}`]: true,\n    [`ea-data-table--${this.size()}`]: true,\n    'ea-data-table--sticky': this.stickyHeader(),\n    'ea-data-table--striped': this.striped(),\n    'ea-data-table--hoverable': this.hoverable(),\n    'ea-data-table--bordered': this.bordered(),\n    'ea-data-table--nowrap': this.nowrap(),\n    'ea-data-table--navigable': this.navigable(),\n    'ea-data-table--clickable': this.clickable(),\n    'ea-data-table--linked': !!this.rowHref(),\n  }));\n\n  constructor() {\n    // Keep the active cell in range as columns or row count change (sort, paging,\n    // data swaps) so a stale index can't strand focus outside the grid.\n    effect(() => {\n      const rows = this.sortedData().length;\n      const cols = this.columns().length;\n      const { row, col } = untracked(this.activeCell);\n      const nextRow = Math.min(row, rows);\n      const nextCol = Math.min(col, Math.max(0, cols - 1));\n      if (nextRow !== row || nextCol !== col) {\n        this.activeCell.set({ row: nextRow, col: nextCol });\n      }\n    });\n  }\n\n  readonly sortedData = computed(() => {\n    const items = this.data();\n    const { column, direction } = this.sort();\n    if (!column || !direction) {\n      return items;\n    }\n\n    return [...items].sort((a, b) => {\n      const valA = (a as Record<string, unknown>)[column];\n      const valB = (b as Record<string, unknown>)[column];\n\n      if (valA == null && valB == null) {\n        return 0;\n      }\n      if (valA == null) {\n        return direction === 'asc' ? -1 : 1;\n      }\n      if (valB == null) {\n        return direction === 'asc' ? 1 : -1;\n      }\n\n      let comparison: number;\n      if (typeof valA === 'number' && typeof valB === 'number') {\n        comparison = valA - valB;\n      } else if (typeof valA === 'string' && typeof valB === 'string') {\n        comparison = valA.localeCompare(valB);\n      } else {\n        comparison = String(valA).localeCompare(String(valB));\n      }\n\n      return direction === 'asc' ? comparison : -comparison;\n    });\n  });\n\n  getCellValue(row: T, key: string): unknown {\n    return (row as Record<string, unknown>)[key];\n  }\n\n  onHeaderClick(col: DataTableColumn<T>): void {\n    if (!col.sortable) {\n      return;\n    }\n\n    const current = this.sort();\n    let direction: DataTableSortDirection;\n\n    if (current.column === col.key) {\n      direction =\n        current.direction === 'asc'\n          ? 'desc'\n          : current.direction === 'desc'\n            ? null\n            : 'asc';\n    } else {\n      direction = 'asc';\n    }\n\n    const next: DataTableSortState = { column: direction ? col.key : '', direction };\n    this.sort.set(next);\n    this.sorted.emit(next);\n  }\n\n  trackByFn(_index: number, item: T): unknown {\n    const key = this.trackBy();\n    return key ? (item as Record<string, unknown>)[key as string] : _index;\n  }\n\n  // Roving tabindex for a header cell in grid mode; outside grid mode the\n  // sortable header's inner sort button is the natural tab stop\n  headerTabindex(colIndex: number): number | null {\n    if (!this.navigable()) {\n      return null;\n    }\n    const active = this.activeCell();\n    return active.row === 0 && active.col === colIndex ? 0 : -1;\n  }\n\n  // Grid-mode cell activation; ignores keydowns bubbling up from the sort\n  // button, whose native Enter/Space activation already fires its click handler\n  onHeaderKeydown(event: Event, col: DataTableColumn<T>): void {\n    if (event.target !== event.currentTarget) {\n      return;\n    }\n    event.preventDefault();\n    this.onHeaderClick(col);\n  }\n\n  // Roving tabindex for a body cell; never focusable outside grid mode\n  bodyCellTabindex(row: number, colIndex: number): number | null {\n    if (!this.navigable()) {\n      return null;\n    }\n    const active = this.activeCell();\n    return active.row === row && active.col === colIndex ? 0 : -1;\n  }\n\n  // Body rows are keyboard-focusable for activation only in clickable mode, and\n  // only when grid navigation (which owns cell-level focus) is off.\n  rowTabindex(): number | null {\n    return this.clickable() && !this.navigable() ? 0 : null;\n  }\n\n  // Suppresses the default of Enter/Space and of a row link's plain click, which\n  // the app routes itself. A modified click on a row link is the browser's to open\n  // elsewhere. In navigable mode the keydown bubbles up from the focused cell.\n  onRowActivate(row: T, event?: Event): void {\n    if (!this.clickable()) {\n      return;\n    }\n    if (event instanceof MouseEvent && isModifiedClick(event)) {\n      return;\n    }\n    event?.preventDefault();\n    this.rowActivate.emit(row);\n  }\n\n  // Syncs roving focus when a cell is focused by mouse or keyboard tab\n  onCellFocus(row: number, col: number): void {\n    if (!this.navigable()) {\n      return;\n    }\n    const active = this.activeCell();\n    if (active.row !== row || active.col !== col) {\n      this.activeCell.set({ row, col });\n    }\n  }\n\n  onGridKeydown(event: KeyboardEvent): void {\n    if (!this.navigable()) {\n      return;\n    }\n    const cols = this.columns().length;\n    const rows = this.sortedData().length;\n    if (cols === 0) {\n      return;\n    }\n\n    const { row, col } = this.activeCell();\n    let nextRow = row;\n    let nextCol = col;\n    const rtl = isRtl(event.currentTarget as Element);\n\n    switch (event.key) {\n      case 'ArrowRight':\n        nextCol = rtl ? Math.max(0, col - 1) : Math.min(cols - 1, col + 1);\n        break;\n      case 'ArrowLeft':\n        nextCol = rtl ? Math.min(cols - 1, col + 1) : Math.max(0, col - 1);\n        break;\n      case 'ArrowDown':\n        nextRow = Math.min(rows, row + 1);\n        break;\n      case 'ArrowUp':\n        nextRow = Math.max(0, row - 1);\n        break;\n      case 'Home':\n        nextCol = 0;\n        if (event.ctrlKey) {\n          nextRow = 0;\n        }\n        break;\n      case 'End':\n        nextCol = cols - 1;\n        if (event.ctrlKey) {\n          nextRow = rows;\n        }\n        break;\n      case 'PageDown':\n        nextRow = Math.min(rows, row + DataTableComponent.PAGE_JUMP);\n        break;\n      case 'PageUp':\n        nextRow = Math.max(0, row - DataTableComponent.PAGE_JUMP);\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    if (nextRow !== row || nextCol !== col) {\n      this.focusCell(nextRow, nextCol);\n    }\n  }\n\n  private focusCell(row: number, col: number): void {\n    this.activeCell.set({ row, col });\n    this.host.nativeElement\n      .querySelector<HTMLElement>(`[data-ea-cell=\"${row}-${col}\"]`)\n      ?.focus();\n  }\n}\n","<ng-template\n  #cellContent\n  let-row\n  let-col=\"col\">\n  @if (col.cellTemplate) {\n    <ng-container\n      [ngTemplateOutlet]=\"col.cellTemplate\"\n      [ngTemplateOutletContext]=\"{ $implicit: row, value: getCellValue(row, col.key) }\" />\n  } @else if (col.format) {\n    {{ col.format(getCellValue(row, col.key)) }}\n  } @else {\n    {{ getCellValue(row, col.key) }}\n  }\n</ng-template>\n\n<div\n  class=\"ea-data-table\"\n  [ngClass]=\"hostClasses()\">\n  <div class=\"ea-data-table__scroll\">\n    <table\n      class=\"ea-data-table__table\"\n      [attr.role]=\"navigable() ? 'grid' : null\"\n      [attr.aria-label]=\"caption() ? null : (ariaLabel() ?? null)\"\n      (keydown)=\"onGridKeydown($event)\">\n      @if (caption(); as captionText) {\n        <caption class=\"ea-data-table__caption\">\n          {{ captionText }}\n        </caption>\n      }\n      <thead class=\"ea-data-table__head\">\n        <tr\n          class=\"ea-data-table__row ea-data-table__row--header\"\n          [attr.role]=\"navigable() ? 'row' : null\">\n          @for (col of columns(); track col.key; let colIndex = $index) {\n            <th\n              scope=\"col\"\n              class=\"ea-data-table__cell ea-data-table__cell--header\"\n              [attr.role]=\"navigable() ? 'columnheader' : null\"\n              [attr.data-ea-cell]=\"navigable() ? '0-' + colIndex : null\"\n              [class.ea-data-table__cell--sortable]=\"col.sortable\"\n              [class.ea-data-table__cell--sorted]=\"\n                sort().column === col.key && sort().direction\n              \"\n              [class.ea-data-table__cell--align-center]=\"col.align === 'center'\"\n              [class.ea-data-table__cell--align-right]=\"col.align === 'right'\"\n              [style.width]=\"col.width ?? null\"\n              [attr.aria-sort]=\"\n                sort().column === col.key && sort().direction === 'asc'\n                  ? 'ascending'\n                  : sort().column === col.key && sort().direction === 'desc'\n                    ? 'descending'\n                    : col.sortable\n                      ? 'none'\n                      : null\n              \"\n              (keydown.enter)=\"onHeaderKeydown($event, col)\"\n              (keydown.space)=\"onHeaderKeydown($event, col)\"\n              (focus)=\"onCellFocus(0, colIndex)\"\n              [attr.tabindex]=\"headerTabindex(colIndex)\">\n              @if (col.sortable) {\n                <button\n                  type=\"button\"\n                  class=\"ea-data-table__sort-button\"\n                  [attr.tabindex]=\"navigable() ? -1 : null\"\n                  (click)=\"onHeaderClick(col)\"\n                  (focus)=\"onCellFocus(0, colIndex)\">\n                  @if (col.headerTemplate) {\n                    <ng-container\n                      [ngTemplateOutlet]=\"col.headerTemplate\"\n                      [ngTemplateOutletContext]=\"{ $implicit: col }\" />\n                  } @else {\n                    <span class=\"ea-data-table__header-text\">{{ col.label }}</span>\n                  }\n                  <span class=\"ea-data-table__sort-icon\">\n                    @if (sort().column === col.key && sort().direction === 'asc') {\n                      <ea-icon-arrow-up />\n                    } @else if (\n                      sort().column === col.key && sort().direction === 'desc'\n                    ) {\n                      <ea-icon-arrow-down />\n                    } @else {\n                      <ea-icon-chevrons-up-down />\n                    }\n                  </span>\n                </button>\n              } @else if (col.headerTemplate) {\n                <ng-container\n                  [ngTemplateOutlet]=\"col.headerTemplate\"\n                  [ngTemplateOutletContext]=\"{ $implicit: col }\" />\n              } @else {\n                <span class=\"ea-data-table__header-text\">{{ col.label }}</span>\n              }\n            </th>\n          }\n        </tr>\n      </thead>\n      @if (sizingRows().length) {\n        <tbody\n          class=\"ea-data-table__sizing\"\n          aria-hidden=\"true\">\n          @for (row of sizingRows(); track $index) {\n            <tr class=\"ea-data-table__row ea-data-table__row--sizing\">\n              @for (col of columns(); track col.key) {\n                <td\n                  class=\"ea-data-table__cell ea-data-table__cell--sizing\"\n                  [style.width]=\"col.width ?? null\">\n                  <div class=\"ea-data-table__sizing-content\">\n                    <ng-container\n                      [ngTemplateOutlet]=\"cellContent\"\n                      [ngTemplateOutletContext]=\"{ $implicit: row, col }\" />\n                  </div>\n                </td>\n              }\n            </tr>\n          }\n        </tbody>\n      }\n      <tbody class=\"ea-data-table__body\">\n        @if (sortedData().length === 0) {\n          <tr\n            class=\"ea-data-table__row ea-data-table__row--empty\"\n            [attr.role]=\"navigable() ? 'row' : null\">\n            <td\n              class=\"ea-data-table__cell ea-data-table__cell--empty\"\n              [attr.role]=\"navigable() ? 'gridcell' : null\"\n              [attr.colspan]=\"columns().length\">\n              <div role=\"status\">\n                @if (noDataTemplate()) {\n                  <ng-container [ngTemplateOutlet]=\"noDataTemplate()!\" />\n                } @else {\n                  {{ resolvedNoDataText() }}\n                }\n              </div>\n            </td>\n          </tr>\n        } @else {\n          @for (\n            row of sortedData();\n            track trackByFn($index, row);\n            let rowIndex = $index\n          ) {\n            <tr\n              class=\"ea-data-table__row\"\n              [attr.role]=\"navigable() ? 'row' : null\"\n              [attr.tabindex]=\"rowTabindex()\"\n              (click)=\"onRowActivate(row, $event)\"\n              (keydown.enter)=\"onRowActivate(row, $event)\"\n              (keydown.space)=\"onRowActivate(row, $event)\">\n              @for (col of columns(); track col.key; let colIndex = $index) {\n                <td\n                  class=\"ea-data-table__cell\"\n                  [class.ea-data-table__cell--align-center]=\"col.align === 'center'\"\n                  [class.ea-data-table__cell--align-right]=\"col.align === 'right'\"\n                  [style.width]=\"col.width ?? null\"\n                  [attr.role]=\"navigable() ? 'gridcell' : null\"\n                  [attr.data-ea-cell]=\"navigable() ? rowIndex + 1 + '-' + colIndex : null\"\n                  [attr.tabindex]=\"bodyCellTabindex(rowIndex + 1, colIndex)\"\n                  (focus)=\"onCellFocus(rowIndex + 1, colIndex)\">\n                  @if (rowHref()?.(row); as url) {\n                    <a\n                      class=\"ea-data-table__row-link\"\n                      [href]=\"url\"\n                      tabindex=\"-1\"\n                      [attr.aria-hidden]=\"colIndex > 0 ? true : null\">\n                      <ng-container\n                        [ngTemplateOutlet]=\"cellContent\"\n                        [ngTemplateOutletContext]=\"{ $implicit: row, col }\" />\n                    </a>\n                  } @else {\n                    <ng-container\n                      [ngTemplateOutlet]=\"cellContent\"\n                      [ngTemplateOutletContext]=\"{ $implicit: row, col }\" />\n                  }\n                </td>\n              }\n            </tr>\n          }\n        }\n      </tbody>\n    </table>\n  </div>\n  <ng-content select=\"ea-paginator\" />\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChildren,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of each digit cell. */\nexport type CodeInputSize = EaSize;\n\n/**\n * Verification code entry made up of one input per digit. Auto-advances on\n * input, supports paste of the full code at once, and integrates with Angular\n * forms via `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-code-input',\n  imports: [FieldLabelComponent, FieldMessagesComponent],\n  templateUrl: './code-input.component.html',\n  styleUrl: './code-input.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => CodeInputComponent),\n      multi: true,\n    },\n  ],\n})\nexport class CodeInputComponent implements ControlValueAccessor {\n  readonly digitEls = viewChildren<ElementRef<HTMLInputElement>>('digitEl');\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Placeholder text spread one character per cell (cell i shows character i). */\n  readonly placeholder = input<string>('');\n  readonly length = input<number>(6);\n  readonly size = input<CodeInputSize>('md');\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  /** Allow any non-whitespace character; when false (default) only digits are accepted. */\n  readonly allowAllChars = input<boolean>(false);\n  readonly id = input<string>(uniqueId('ea-code-input'));\n\n  readonly value = model<string>('');\n\n  readonly focusedIndex = signal<number>(-1);\n  private readonly _formDisabled = signal(false);\n\n  /** Fires with the full code once every digit has been entered. */\n  readonly completed = output<string>();\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly digits = computed(() => {\n    const val = this.value();\n    const len = this.length();\n    return Array.from({ length: len }, (_, i) => val[i] ?? '');\n  });\n\n  readonly placeholders = computed(() => {\n    const ph = this.placeholder();\n    return Array.from({ length: this.length() }, (_, i) => ph[i] ?? '');\n  });\n\n  readonly indices = computed(() => Array.from({ length: this.length() }, (_, i) => i));\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleInput(event: Event, index: number): void {\n    if (this.readonly()) {\n      return;\n    }\n    const input = event.target as HTMLInputElement;\n    const char = this.sanitize(input.value).slice(-1);\n    input.value = char;\n\n    const current = this.value();\n    const chars = current.padEnd(this.length(), ' ').split('');\n    chars[index] = char;\n    const newValue = chars.join('').replace(/ +$/, '');\n\n    this.value.set(newValue);\n    this.onChange(newValue);\n\n    if (char && index < this.length() - 1) {\n      this.focusDigit(index + 1);\n    }\n\n    if (newValue.length === this.length()) {\n      this.completed.emit(newValue);\n    }\n  }\n\n  handleKeydown(event: KeyboardEvent, index: number): void {\n    const inputs = this.digitEls();\n\n    if (event.key === 'Backspace') {\n      if (this.readonly()) {\n        return;\n      }\n      event.preventDefault();\n      const current = this.value();\n      const chars = current.padEnd(this.length(), ' ').split('');\n\n      if (chars[index] && chars[index] !== ' ') {\n        chars[index] = ' ';\n      } else if (index > 0) {\n        chars[index - 1] = ' ';\n        this.focusDigit(index - 1);\n      }\n\n      const newValue = chars.join('').replace(/ +$/, '');\n      this.value.set(newValue);\n      this.onChange(newValue);\n    } else if (event.key === 'ArrowLeft' && index > 0) {\n      event.preventDefault();\n      this.focusDigit(index - 1);\n    } else if (event.key === 'ArrowRight' && index < inputs.length - 1) {\n      event.preventDefault();\n      this.focusDigit(index + 1);\n    }\n  }\n\n  handlePaste(event: ClipboardEvent): void {\n    event.preventDefault();\n    if (this.readonly()) {\n      return;\n    }\n    const pasted = this.sanitize(event.clipboardData?.getData('text') ?? '');\n    if (!pasted) {\n      return;\n    }\n\n    const clipped = pasted.slice(0, this.length());\n    this.value.set(clipped);\n    this.onChange(clipped);\n\n    const nextIndex = Math.min(clipped.length, this.length() - 1);\n    this.focusDigit(nextIndex);\n\n    if (clipped.length === this.length()) {\n      this.completed.emit(clipped);\n    }\n  }\n\n  handleFocus(index: number): void {\n    this.focusedIndex.set(index);\n    const input = this.digitEls()[index]?.nativeElement;\n    input?.select();\n  }\n\n  handleBlur(): void {\n    this.focusedIndex.set(-1);\n    this.onTouched();\n  }\n\n  /** Moves keyboard focus to the next empty digit (or the last one when full). */\n  focus(): void {\n    const val = this.value();\n    const index = Math.min(val.length, this.length() - 1);\n    this.focusDigit(index);\n  }\n\n  // Removes disallowed characters: whitespace in free mode, non-digits otherwise\n  private sanitize(text: string): string {\n    return this.allowAllChars() ? text.replace(/\\s/g, '') : text.replace(/[^0-9]/g, '');\n  }\n\n  private focusDigit(index: number): void {\n    this.digitEls()[index]?.nativeElement.focus();\n  }\n}\n","<div class=\"ea-code-input-field ea-code-input-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    class=\"ea-code-input-group\"\n    [class.ea-code-input-group--xs]=\"size() === 'xs'\"\n    [class.ea-code-input-group--sm]=\"size() === 'sm'\"\n    [class.ea-code-input-group--md]=\"size() === 'md'\"\n    [class.ea-code-input-group--lg]=\"size() === 'lg'\"\n    [class.ea-code-input-group--xl]=\"size() === 'xl'\"\n    [class.ea-code-input-group--error]=\"hasError()\"\n    [class.ea-code-input-group--disabled]=\"isDisabled()\"\n    role=\"group\"\n    [attr.aria-labelledby]=\"label() ? id() + '-label' : null\"\n    [attr.aria-label]=\"!label() ? i18n.messages().codeInput.groupLabel(length()) : null\"\n    [attr.aria-describedby]=\"\n      showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n    \">\n    @for (i of indices(); track i) {\n      <input\n        #digitEl\n        class=\"ea-code-input\"\n        [class.ea-code-input--focused]=\"focusedIndex() === i && !readonly()\"\n        [class.ea-code-input--readonly]=\"readonly()\"\n        [class.ea-code-input--filled]=\"digits()[i] !== ''\"\n        type=\"text\"\n        [attr.inputmode]=\"allowAllChars() ? 'text' : 'numeric'\"\n        autocomplete=\"one-time-code\"\n        maxlength=\"1\"\n        [disabled]=\"isDisabled()\"\n        [readOnly]=\"readonly()\"\n        [required]=\"required()\"\n        [value]=\"digits()[i]\"\n        [placeholder]=\"placeholders()[i]\"\n        [attr.aria-label]=\"i18n.messages().codeInput.digitLabel(i + 1, length())\"\n        [attr.aria-invalid]=\"hasError() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        (input)=\"handleInput($event, i)\"\n        (keydown)=\"handleKeydown($event, i)\"\n        (paste)=\"handlePaste($event)\"\n        (focus)=\"handleFocus(i)\"\n        (blur)=\"handleBlur()\" />\n    }\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-calendar',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"4\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"16\"\n        y1=\"2\"\n        x2=\"16\"\n        y2=\"6\" />\n      <line\n        x1=\"8\"\n        y1=\"2\"\n        x2=\"8\"\n        y2=\"6\" />\n      <line\n        x1=\"3\"\n        y1=\"10\"\n        x2=\"21\"\n        y2=\"10\" />\n    </svg>\n  `,\n})\nexport class CalendarIconComponent extends IconComponentBase {\n  static readonly slug = 'calendar';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'calendar',\n    'date',\n    'schedule',\n    'event',\n    'day',\n    'month',\n    'calendrier',\n    'date',\n    'calendario',\n    'fecha',\n    'ημερολόγιο',\n    'ημερομηνία',\n    'kalendarz',\n    'data',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevron-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"15 18 9 12 15 6\" />\n    </svg>\n  `,\n})\nexport class ChevronLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'chevron-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevron-left',\n    'chevron',\n    'left',\n    'arrow',\n    'back',\n    'previous',\n    'gauche',\n    'izquierda',\n    'αριστερά',\n    'lewo',\n  ];\n}\n","/** Order the day, month, and year fields appear in for a locale's short date. */\ntype DateFieldOrder = 'dmy' | 'mdy' | 'ymd';\n\nexport interface DateParseContext {\n  /** BCP 47 tag whose field order and month names the entry is read against. */\n  locale: string;\n  /** Long month names, January first, from the active locale bundle. */\n  monthNames: readonly string[];\n}\n\nconst ENGLISH_MONTHS = [\n  'january',\n  'february',\n  'march',\n  'april',\n  'may',\n  'june',\n  'july',\n  'august',\n  'september',\n  'october',\n  'november',\n  'december',\n];\n\n// The century a bare two-digit year lands in, matching the ECMAScript window\nconst TWO_DIGIT_YEAR_PIVOT = 68;\n\n/**\n * Reads a hand-typed date into a `Date`, accepting the shapes a user plausibly\n * types: ISO (`2026-04-15`, `20260415`), all-numeric in the locale's own field\n * order (`15/04/26`, `4.15.2026`), and month-name forms in any arrangement\n * (`15 Apr 2026`, `April 15, 2026`, `avril 15`). Returns `null` when the entry\n * is not a date or names a day the calendar does not have.\n *\n * Numeric entries follow `locale`'s field order, except where a value can only\n * be a day (over 12) or a year (four digits), which wins over the order so a\n * `15/04` typed into a month-first locale still lands on 15 April. A year left\n * off is taken as the current one.\n */\nexport function parseDateInput(text: string, context: DateParseContext): Date | null {\n  const cleaned = normalize(text);\n  if (!cleaned) {\n    return null;\n  }\n  return (\n    parseCompact(cleaned) ??\n    parseNumeric(cleaned, fieldOrder(context.locale)) ??\n    parseNamedMonth(cleaned, context)\n  );\n}\n\n/**\n * Folds an entry down to lowercase ASCII digits and month names separated by\n * spaces, `-`, `/`, or `.`, dropping the ordinal suffixes, commas, and CJK date\n * markers that carry no information a parse needs.\n */\nfunction normalize(text: string): string {\n  return toAsciiDigits(text)\n    .toLowerCase()\n    .replace(/[,،、]/g, ' ')\n    .replace(/[年月]/g, '/')\n    .replace(/日/g, ' ')\n    .replace(/(\\d)(st|nd|rd|th)\\b/g, '$1')\n    .replace(/\\s+/g, ' ')\n    .replace(/^[\\s/.-]+|[\\s/.-]+$/g, '');\n}\n\n// Arabic-Indic, extended Arabic-Indic, and Devanagari digits, which the shipped\n// ar and hi formats render and so a user editing a formatted value types back\nfunction toAsciiDigits(text: string): string {\n  return text.replace(/[٠-٩۰-۹०-९]/g, digit => {\n    const code = digit.charCodeAt(0);\n    const zero = code >= 0x0966 ? 0x0966 : code >= 0x06f0 ? 0x06f0 : 0x0660;\n    return String(code - zero);\n  });\n}\n\n/** Field order the locale writes a short date in, defaulting to day-first. */\nfunction fieldOrder(locale: string): DateFieldOrder {\n  try {\n    const parts = new Intl.DateTimeFormat(locale, { dateStyle: 'short' }).formatToParts(\n      new Date(2000, 0, 2),\n    );\n    const sequence = parts\n      .filter(part => ['day', 'month', 'year'].includes(part.type))\n      .map(part => part.type[0])\n      .join('');\n    if (sequence === 'dmy' || sequence === 'mdy' || sequence === 'ymd') {\n      return sequence;\n    }\n  } catch {\n    // Locales the runtime cannot format fall through to the most common order\n  }\n  return 'dmy';\n}\n\n/** `20260415`, the separator-free ISO form. */\nfunction parseCompact(text: string): Date | null {\n  const match = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(text);\n  return match ? build(+match[1], +match[2], +match[3]) : null;\n}\n\nfunction parseNumeric(text: string, order: DateFieldOrder): Date | null {\n  const parts = text.split(/[-/. ]+/);\n  if (parts.length < 2 || parts.length > 3 || !parts.every(p => /^\\d{1,4}$/.test(p))) {\n    return null;\n  }\n  const numbers = parts.map(Number);\n  const monthLeads = order !== 'dmy';\n\n  if (parts.length === 2) {\n    const [month, day] = monthLeads ? numbers : [numbers[1], numbers[0]];\n    return buildOrdered(new Date().getFullYear(), month, day);\n  }\n  if (parts[0].length === 4) {\n    return buildOrdered(numbers[0], numbers[1], numbers[2]);\n  }\n  if (order === 'ymd' && parts[2].length !== 4) {\n    return buildOrdered(expandYear(numbers[0]), numbers[1], numbers[2]);\n  }\n  // Year trails whenever it is not the leading field, whatever the order says\n  const [month, day] = order === 'mdy' ? numbers : [numbers[1], numbers[0]];\n  return buildOrdered(expandYear(numbers[2]), month, day);\n}\n\nfunction parseNamedMonth(text: string, context: DateParseContext): Date | null {\n  const tokens = text.split(/[\\s./-]+/).filter(Boolean);\n  const candidates = monthNameCandidates(context);\n\n  let month = 0;\n  let monthAt = -1;\n  for (let index = 0; index < tokens.length && monthAt === -1; index++) {\n    const matched = matchMonth(tokens[index], candidates);\n    if (matched !== null) {\n      month = matched + 1;\n      monthAt = index;\n    }\n  }\n  if (monthAt === -1) {\n    return null;\n  }\n\n  // Anything else the entry carries (weekday names, the connectives long forms\n  // string months together with) says nothing a date needs, so it is dropped\n  const numbers = tokens.filter(\n    (token, index) => index !== monthAt && /^\\d{1,4}$/.test(token),\n  );\n  if (!numbers.length || numbers.length > 2) {\n    return null;\n  }\n  if (numbers.length === 1) {\n    return build(new Date().getFullYear(), month, +numbers[0]);\n  }\n  const yearTrails = numbers[0].length !== 4;\n  const year = expandYear(yearTrails ? +numbers[1] : +numbers[0]);\n  return build(year, month, yearTrails ? +numbers[0] : +numbers[1]);\n}\n\n/**\n * Month names an entry may use: the active bundle's own, whatever the runtime\n * formats for the locale, and English, which readers reach for regardless of\n * the interface language.\n */\nfunction monthNameCandidates(context: DateParseContext): string[][] {\n  const candidates = Array.from({ length: 12 }, (_, month) => [\n    normalize(context.monthNames[month] ?? ''),\n    ENGLISH_MONTHS[month],\n    ENGLISH_MONTHS[month].slice(0, 3),\n  ]);\n  for (const style of ['long', 'short'] as const) {\n    try {\n      const formatter = new Intl.DateTimeFormat(context.locale, { month: style });\n      for (let month = 0; month < 12; month++) {\n        candidates[month].push(normalize(formatter.format(new Date(2000, month, 1))));\n      }\n    } catch {\n      // Locales the runtime cannot format keep the bundle and English names\n    }\n  }\n  return candidates;\n}\n\n/** Index of the month a token names, matching whole names and their stems. */\nfunction matchMonth(token: string, candidates: string[][]): number | null {\n  if (!token || /^\\d+$/.test(token)) {\n    return null;\n  }\n  for (let month = 0; month < candidates.length; month++) {\n    const named = candidates[month].some(\n      name =>\n        name === token ||\n        (name.length > token.length && token.length >= 3 && name.startsWith(token)),\n    );\n    if (named) {\n      return month;\n    }\n  }\n  return null;\n}\n\n/** Builds a date, first swapping a day and month that can only fit the other way. */\nfunction buildOrdered(year: number, month: number, day: number): Date | null {\n  return month > 12 && day <= 12 ? build(year, day, month) : build(year, month, day);\n}\n\nfunction expandYear(year: number): number {\n  if (year > 99) {\n    return year;\n  }\n  return year <= TWO_DIGIT_YEAR_PIVOT ? 2000 + year : 1900 + year;\n}\n\n/** Rejects out-of-range fields and the overflow a real calendar has no day for. */\nfunction build(year: number, month: number, day: number): Date | null {\n  if (month < 1 || month > 12 || day < 1 || day > 31) {\n    return null;\n  }\n  const date = new Date(year, month - 1, day);\n  date.setFullYear(year);\n  return date.getMonth() === month - 1 && date.getDate() === day ? date : null;\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  Injector,\n  type Type,\n  afterNextRender,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { isRtl } from '../direction';\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { CalendarIconComponent } from '../icons/calendar.component';\nimport { ChevronLeftIconComponent } from '../icons/chevron-left.component';\nimport { ChevronRightIconComponent } from '../icons/chevron-right.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { PopoverComponent } from '../popover/popover.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\nimport { parseDateInput } from './parse-date';\n\n/** Visual size of the date picker field. */\nexport type DatePickerSize = EaSize;\n/** Locale-aware date format used for the displayed value. */\nexport type DatePickerFormat = 'short' | 'medium' | 'long';\n/** First day of the week in the calendar grid (0 = Sunday, 1 = Monday). */\nexport type DatePickerWeekStart = 0 | 1;\n/** Value accepted via `writeValue`: a `Date`, ISO/parseable string, or `null`. */\nexport type DatePickerValue = Date | string | null;\n\ninterface CalendarDay {\n  date: Date;\n  day: number;\n  isCurrentMonth: boolean;\n  isToday: boolean;\n  isSelected: boolean;\n  isDisabled: boolean;\n  isFocused: boolean;\n}\n\n/**\n * Date field with a calendar popover. The date can be typed straight into the\n * field in any reasonable shape (ISO, all-numeric in the locale's field order,\n * or with a month name) and is rewritten in the configured `format` on commit.\n * Supports `min`/`max` bounds, configurable week start, locale-aware formatting\n * via `Intl.DateTimeFormat`, and full keyboard navigation (arrows,\n * PageUp/PageDown, Home/End, Enter, Escape). Integrates with Angular forms via\n * `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-date-picker',\n  imports: [\n    CalendarIconComponent,\n    ChevronLeftIconComponent,\n    ChevronRightIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    NgClass,\n    PopoverComponent,\n    XIconComponent,\n  ],\n  templateUrl: './date-picker.component.html',\n  styleUrl: './date-picker.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => DatePickerComponent),\n      multi: true,\n    },\n  ],\n})\nexport class DatePickerComponent implements ControlValueAccessor {\n  protected readonly fieldEl = viewChild<ElementRef<HTMLElement>>('fieldEl');\n  protected readonly inputEl = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n  private readonly injector = inject(Injector);\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Placeholder shown in the field when no date is selected. */\n  readonly placeholder = input<string | undefined>(undefined);\n  readonly size = input<DatePickerSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly minDate = input<Date | null>(null);\n  readonly maxDate = input<Date | null>(null);\n  readonly format = input<DatePickerFormat>('medium');\n  readonly weekStartsOn = input<DatePickerWeekStart>(1);\n  readonly locale = input<string | undefined>(undefined);\n  readonly id = input<string>(uniqueId('ea-date-picker'));\n\n  readonly value = model<Date | null>(null);\n\n  /** Fires when the selected date changes, including when cleared. */\n  readonly changed = output<Date | null>();\n\n  readonly isOpen = signal(false);\n  readonly viewYear = signal(new Date().getFullYear());\n  readonly viewMonth = signal(new Date().getMonth());\n  readonly focusedDate = signal<Date | null>(null);\n  private readonly _formDisabled = signal(false);\n  private readonly isFocused = signal(false);\n  /** Entry in progress, held verbatim until it is committed or abandoned. */\n  private readonly draft = signal<string | null>(null);\n\n  private onChange: (value: Date | null) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  /** Locale used for date formatting: explicit `locale` input, else the global locale. */\n  readonly effectiveLocale = computed(() => this.locale() ?? this.i18n.locale());\n\n  /** True when the active date locale is a registered locale we ship a bundle\n   *  for (no distinct per-instance `locale` override), so the bundled calendar\n   *  names apply and the calendar stays localized regardless of the runtime's\n   *  `Intl` locale coverage. */\n  private readonly bundleCalendarApplies = computed(\n    () => this.effectiveLocale() === this.i18n.locale(),\n  );\n\n  /** Whether the runtime's `Intl` actually has date data for the active locale.\n   *  Some browsers ship a reduced ICU that silently falls back to English for\n   *  less common locales, so a matching request is not a given. */\n  private readonly intlLocalizesEffectiveLocale = computed(() => {\n    const requested = this.effectiveLocale();\n    try {\n      const resolved = new Intl.DateTimeFormat(requested).resolvedOptions().locale;\n      return resolved.split('-')[0] === requested.split('-')[0];\n    } catch {\n      return false;\n    }\n  });\n\n  /** Placeholder text, empty unless a `placeholder` is given. */\n  readonly resolvedPlaceholder = computed(() => this.placeholder() ?? '');\n\n  /** Accessible name when no `label` is given. */\n  protected readonly fallbackLabel = computed(\n    () => this.placeholder() ?? this.i18n.messages().datePicker.placeholder,\n  );\n\n  readonly dialogId = computed(() => `${this.id()}-dialog`);\n\n  readonly fieldClasses = computed(() => ({\n    'ea-date-picker__field--focused':\n      (this.isFocused() || this.isOpen()) && !this.readonly(),\n    'ea-date-picker__field--error': this.hasError(),\n    'ea-date-picker__field--disabled': this.isDisabled(),\n    'ea-date-picker__field--readonly': this.readonly() && !this.isDisabled(),\n  }));\n\n  // The calendar popover is portaled to the document body, so it cannot inherit\n  // the trigger's font-size; this size class carries the scale over to it.\n  readonly popoverClasses = computed(() => ({\n    [`ea-date-picker__popover--${this.size()}`]: true,\n  }));\n\n  readonly displayValue = computed(() => {\n    const val = this.value();\n    if (!val) {\n      return '';\n    }\n    if (this.bundleCalendarApplies() && !this.intlLocalizesEffectiveLocale()) {\n      const months = this.i18n.messages().datePicker.months;\n      return `${val.getDate()} ${months[val.getMonth()]} ${val.getFullYear()}`;\n    }\n    return new Intl.DateTimeFormat(this.effectiveLocale(), this.formatOptions()).format(\n      val,\n    );\n  });\n\n  /** Field text: the entry in progress while typing, else the formatted value. */\n  readonly inputText = computed(() => this.draft() ?? this.displayValue());\n\n  readonly monthYearLabel = computed(() => {\n    const year = this.viewYear();\n    const month = this.viewMonth();\n    // Defer to the bundle only when Intl can't localize this locale: the\n    // month/year heading carries locale-specific patterns (element order, era\n    // markers, connective words) that Intl composes and a plain join cannot.\n    if (this.bundleCalendarApplies() && !this.intlLocalizesEffectiveLocale()) {\n      return `${this.i18n.messages().datePicker.months[month]} ${year}`;\n    }\n    return new Intl.DateTimeFormat(this.effectiveLocale(), {\n      month: 'long',\n      year: 'numeric',\n    }).format(new Date(year, month, 1));\n  });\n\n  readonly weekdayLabels = computed(() => {\n    const start = this.weekStartsOn();\n    // Weekday indices in display order; bundle names are Sunday-first (index 0)\n    const order = Array.from({ length: 7 }, (_, i) => (i + start) % 7);\n    if (this.bundleCalendarApplies()) {\n      const short = this.i18n.messages().datePicker.weekdaysShort;\n      return order.map(index => short[index]);\n    }\n    // A known Sunday (2024-01-07) anchors the offset into locale weekday names\n    const base = new Date(2024, 0, 7);\n    const formatter = new Intl.DateTimeFormat(this.effectiveLocale(), {\n      weekday: 'short',\n    });\n    return order.map(index => {\n      const date = new Date(base);\n      date.setDate(base.getDate() + index);\n      return formatter.format(date);\n    });\n  });\n\n  readonly weeks = computed<CalendarDay[][]>(() => {\n    const year = this.viewYear();\n    const month = this.viewMonth();\n    const start = this.weekStartsOn();\n\n    const firstOfMonth = new Date(year, month, 1);\n    const dayOfWeek = firstOfMonth.getDay();\n    // Offset so grid starts on weekStartsOn (0=Sun, 1=Mon)\n    const leading = (dayOfWeek - start + 7) % 7;\n\n    const gridStart = new Date(year, month, 1 - leading);\n    const today = this.startOfDay(new Date());\n    const selected = this.value();\n    const focused = this.focusedDate();\n    const min = this.minDate() ? this.startOfDay(this.minDate()!) : null;\n    const max = this.maxDate() ? this.startOfDay(this.maxDate()!) : null;\n\n    const rows: CalendarDay[][] = [];\n    for (let row = 0; row < 6; row++) {\n      const cells: CalendarDay[] = [];\n      for (let col = 0; col < 7; col++) {\n        const cellDate = new Date(gridStart);\n        cellDate.setDate(gridStart.getDate() + row * 7 + col);\n        cells.push({\n          date: cellDate,\n          day: cellDate.getDate(),\n          isCurrentMonth: cellDate.getMonth() === month,\n          isToday: this.isSameDay(cellDate, today),\n          isSelected: selected ? this.isSameDay(cellDate, selected) : false,\n          isDisabled: (min ? cellDate < min : false) || (max ? cellDate > max : false),\n          isFocused: focused ? this.isSameDay(cellDate, focused) : false,\n        });\n      }\n      rows.push(cells);\n    }\n    return rows;\n  });\n\n  writeValue(val: DatePickerValue): void {\n    const date = this.toDate(val);\n    this.draft.set(null);\n    this.value.set(date);\n    if (date) {\n      this.viewYear.set(date.getFullYear());\n      this.viewMonth.set(date.getMonth());\n    }\n  }\n\n  registerOnChange(fn: (value: Date | null) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  /** Toggles the calendar popover between open and closed. */\n  toggle(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    if (this.isOpen()) {\n      this.close();\n    } else {\n      this.open();\n    }\n  }\n\n  /** Opens the calendar popover and moves focus to the focused day cell. */\n  open(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const current = this.value() ?? new Date();\n    this.viewYear.set(current.getFullYear());\n    this.viewMonth.set(current.getMonth());\n    this.focusedDate.set(this.startOfDay(current));\n    this.isOpen.set(true);\n    afterNextRender(() => this.focusFocusedDayCell(), { injector: this.injector });\n  }\n\n  /** Closes the calendar popover. */\n  close(): void {\n    this.isOpen.set(false);\n    this.focusedDate.set(null);\n  }\n\n  private focusFocusedDayCell(): void {\n    // The calendar lives inside the popover surface, which `<ea-popover>`\n    // teleports to `document.body`, so the lookup starts from the surface's own\n    // id rather than the document. Two pickers open at once would otherwise\n    // both match and steal each other's focus.\n    if (typeof document === 'undefined') {\n      return;\n    }\n    const surface = document.getElementById(this.dialogId());\n    const focusedCell = surface?.querySelector<HTMLButtonElement>(\n      '.ea-date-picker__day--focused',\n    );\n    focusedCell?.focus();\n  }\n\n  /** Moves keyboard focus to the date field. */\n  focus(): void {\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  selectDay(day: CalendarDay): void {\n    if (day.isDisabled) {\n      // aria-disabled days still take DOM focus on click, so the roving state\n      // must follow or keyboard navigation resumes from the wrong cell\n      this.focusedDate.set(this.startOfDay(day.date));\n      return;\n    }\n    this.applyValue(this.startOfDay(day.date));\n    this.close();\n    this.focus();\n  }\n\n  /** Clears the selected date and emits `changed` with `null`. */\n  clear(event: Event): void {\n    event.stopPropagation();\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.applyValue(null);\n  }\n\n  goToPrevMonth(): void {\n    const month = this.viewMonth();\n    if (month === 0) {\n      this.viewMonth.set(11);\n      this.viewYear.update(y => y - 1);\n    } else {\n      this.viewMonth.set(month - 1);\n    }\n    this.pullFocusIntoView();\n  }\n\n  goToNextMonth(): void {\n    const month = this.viewMonth();\n    if (month === 11) {\n      this.viewMonth.set(0);\n      this.viewYear.update(y => y + 1);\n    } else {\n      this.viewMonth.set(month + 1);\n    }\n    this.pullFocusIntoView();\n  }\n\n  goToPrevYear(): void {\n    this.viewYear.update(y => y - 1);\n    this.pullFocusIntoView();\n  }\n\n  goToNextYear(): void {\n    this.viewYear.update(y => y + 1);\n    this.pullFocusIntoView();\n  }\n\n  /**\n   * Moves the roving date into the month now on screen, keeping the day where\n   * the month is long enough. Without this the only tabbable day cell stays in\n   * the month the user navigated away from, so inside the focus-trapped dialog\n   * no day is reachable and the next arrow key snaps the view back.\n   */\n  private pullFocusIntoView(): void {\n    const year = this.viewYear();\n    const month = this.viewMonth();\n    const day = this.focusedDate()?.getDate() ?? 1;\n    const daysInMonth = new Date(year, month + 1, 0).getDate();\n    this.focusedDate.set(new Date(year, month, Math.min(day, daysInMonth)));\n  }\n\n  goToToday(): void {\n    const today = this.startOfDay(new Date());\n    this.viewYear.set(today.getFullYear());\n    this.viewMonth.set(today.getMonth());\n    this.focusedDate.set(today);\n  }\n\n  // Tracks the entry verbatim so the rendered text and the DOM stay in step\n  protected onInput(event: Event): void {\n    this.draft.set((event.target as HTMLInputElement).value);\n  }\n\n  protected onInputFocus(): void {\n    this.isFocused.set(true);\n  }\n\n  protected onInputBlur(): void {\n    this.isFocused.set(false);\n    this.commitDraft();\n    this.onTouched();\n  }\n\n  protected handleInputKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    switch (event.key) {\n      case 'ArrowDown':\n        event.preventDefault();\n        this.commitDraft();\n        this.open();\n        break;\n      case 'Enter':\n        event.preventDefault();\n        this.commitDraft();\n        break;\n      case 'Escape':\n        if (this.draft() !== null) {\n          event.preventDefault();\n          this.draft.set(null);\n        }\n        break;\n    }\n  }\n\n  // Reads the entry into a date and adopts it, or drops it and restores the\n  // current value's text when it names no date the field can hold\n  private commitDraft(): void {\n    const draft = this.draft();\n    if (draft === null) {\n      return;\n    }\n    this.draft.set(null);\n\n    const entry = draft.trim();\n    if (!entry) {\n      if (this.value()) {\n        this.applyValue(null);\n      }\n      return;\n    }\n\n    const parsed = parseDateInput(entry, {\n      locale: this.effectiveLocale(),\n      monthNames: this.i18n.messages().datePicker.months,\n    });\n    if (!parsed || this.isOutOfRange(parsed)) {\n      return;\n    }\n    const current = this.value();\n    if (!current || !this.isSameDay(parsed, current)) {\n      this.applyValue(this.startOfDay(parsed));\n    }\n  }\n\n  private applyValue(date: Date | null): void {\n    this.draft.set(null);\n    this.value.set(date);\n    if (date) {\n      this.viewYear.set(date.getFullYear());\n      this.viewMonth.set(date.getMonth());\n    }\n    this.onChange(date);\n    this.onTouched();\n    this.changed.emit(date);\n  }\n\n  private isOutOfRange(date: Date): boolean {\n    const min = this.minDate();\n    const max = this.maxDate();\n    return (\n      (!!min && date < this.startOfDay(min)) || (!!max && date > this.startOfDay(max))\n    );\n  }\n\n  handleGridKeydown(event: KeyboardEvent): void {\n    if (!this.isOpen()) {\n      return;\n    }\n    const focused = this.focusedDate() ?? this.startOfDay(new Date());\n    const rtl = isRtl(event.currentTarget as Element);\n    let next: Date | null;\n\n    switch (event.key) {\n      case 'ArrowLeft':\n        next = this.addDays(focused, rtl ? 1 : -1);\n        break;\n      case 'ArrowRight':\n        next = this.addDays(focused, rtl ? -1 : 1);\n        break;\n      case 'ArrowUp':\n        next = this.addDays(focused, -7);\n        break;\n      case 'ArrowDown':\n        next = this.addDays(focused, 7);\n        break;\n      case 'PageUp':\n        next = this.addMonths(focused, event.shiftKey ? -12 : -1);\n        break;\n      case 'PageDown':\n        next = this.addMonths(focused, event.shiftKey ? 12 : 1);\n        break;\n      case 'Home':\n        next = this.addDays(focused, -focused.getDay() + this.weekStartsOn());\n        if (next > focused) {\n          next = this.addDays(next, -7);\n        }\n        break;\n      case 'End': {\n        const weekStart = this.weekStartsOn();\n        const offset = (focused.getDay() - weekStart + 7) % 7;\n        next = this.addDays(focused, 6 - offset);\n        break;\n      }\n      case 'Enter':\n      case ' ': {\n        event.preventDefault();\n        const current = this.focusedDate();\n        if (!current || this.isOutOfRange(current)) {\n          return;\n        }\n        this.selectDay({\n          date: current,\n          day: current.getDate(),\n          isCurrentMonth: current.getMonth() === this.viewMonth(),\n          isToday: false,\n          isSelected: false,\n          isDisabled: false,\n          isFocused: false,\n        });\n        return;\n      }\n      case 'Escape':\n        event.preventDefault();\n        this.close();\n        this.focus();\n        return;\n      default:\n        return;\n    }\n\n    if (next) {\n      event.preventDefault();\n      this.focusedDate.set(next);\n      this.viewYear.set(next.getFullYear());\n      this.viewMonth.set(next.getMonth());\n      afterNextRender(() => this.focusFocusedDayCell(), { injector: this.injector });\n    }\n  }\n\n  /** Called by `<ea-popover>` when the user clicks outside the picker. */\n  onPopoverCloseRequested(): void {\n    this.close();\n    this.onTouched();\n  }\n\n  // Internal helpers\n  private formatOptions(): Intl.DateTimeFormatOptions {\n    switch (this.format()) {\n      case 'short':\n        return { dateStyle: 'short' };\n      case 'long':\n        return { dateStyle: 'long' };\n      case 'medium':\n      default:\n        return { dateStyle: 'medium' };\n    }\n  }\n\n  private toDate(val: DatePickerValue): Date | null {\n    if (!val) {\n      return null;\n    }\n    if (val instanceof Date) {\n      return isNaN(val.getTime()) ? null : this.startOfDay(val);\n    }\n    const parsed = new Date(val);\n    return isNaN(parsed.getTime()) ? null : this.startOfDay(parsed);\n  }\n\n  private startOfDay(date: Date): Date {\n    return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n  }\n\n  private isSameDay(a: Date, b: Date): boolean {\n    return (\n      a.getFullYear() === b.getFullYear() &&\n      a.getMonth() === b.getMonth() &&\n      a.getDate() === b.getDate()\n    );\n  }\n\n  private addDays(date: Date, days: number): Date {\n    const result = new Date(date);\n    result.setDate(date.getDate() + days);\n    return result;\n  }\n\n  private addMonths(date: Date, months: number): Date {\n    // Clamping to the target month's length keeps the step at exactly one\n    // month; a bare setMonth overflows short months into the one after\n    const daysInTarget = new Date(\n      date.getFullYear(),\n      date.getMonth() + months + 1,\n      0,\n    ).getDate();\n    return new Date(\n      date.getFullYear(),\n      date.getMonth() + months,\n      Math.min(date.getDate(), daysInTarget),\n    );\n  }\n}\n","<div class=\"ea-date-picker-field ea-date-picker-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div class=\"ea-date-picker\">\n    <div\n      #fieldEl\n      class=\"ea-date-picker__field\"\n      [ngClass]=\"fieldClasses()\">\n      <button\n        type=\"button\"\n        class=\"ea-date-picker__calendar-button\"\n        [disabled]=\"isDisabled() || readonly()\"\n        [attr.aria-label]=\"i18n.messages().datePicker.dialogLabel\"\n        [attr.aria-haspopup]=\"'dialog'\"\n        [attr.aria-expanded]=\"isOpen()\"\n        [attr.aria-controls]=\"isOpen() ? dialogId() : null\"\n        (click)=\"toggle()\">\n        <ea-icon-calendar aria-hidden=\"true\" />\n      </button>\n      <input\n        #inputEl\n        type=\"text\"\n        dir=\"auto\"\n        autocomplete=\"off\"\n        class=\"ea-date-picker__input\"\n        [id]=\"id()\"\n        [value]=\"inputText()\"\n        [placeholder]=\"resolvedPlaceholder()\"\n        [disabled]=\"isDisabled()\"\n        [readOnly]=\"readonly()\"\n        [attr.aria-label]=\"label() ? null : fallbackLabel()\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-invalid]=\"hasError() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        (input)=\"onInput($event)\"\n        (keydown)=\"handleInputKeydown($event)\"\n        (focus)=\"onInputFocus()\"\n        (blur)=\"onInputBlur()\" />\n      @if (value() && !isDisabled() && !readonly()) {\n        <button\n          type=\"button\"\n          class=\"ea-date-picker__clear\"\n          [attr.aria-label]=\"i18n.messages().datePicker.clear\"\n          (click)=\"clear($event)\">\n          <ea-icon-x\n            class=\"ea-date-picker__clear-icon\"\n            aria-hidden=\"true\" />\n        </button>\n      }\n    </div>\n\n    <ea-popover\n      [anchor]=\"fieldEl\"\n      [open]=\"isOpen()\"\n      placement=\"bottom-start\"\n      role=\"dialog\"\n      [surfaceId]=\"dialogId()\"\n      [aria-label]=\"i18n.messages().datePicker.dialogLabel\"\n      [trapFocus]=\"true\"\n      [closeOnEscape]=\"false\"\n      scrollBehavior=\"close\"\n      (closeRequested)=\"onPopoverCloseRequested()\">\n      <div\n        class=\"ea-date-picker__popover\"\n        [ngClass]=\"popoverClasses()\"\n        (keydown)=\"handleGridKeydown($event)\">\n        <div class=\"ea-date-picker__header\">\n          <button\n            type=\"button\"\n            class=\"ea-date-picker__nav-btn\"\n            [attr.aria-label]=\"i18n.messages().datePicker.previousYear\"\n            (click)=\"goToPrevYear()\">\n            <ea-icon-chevron-left\n              class=\"ea-rtl-flip\"\n              aria-hidden=\"true\" />\n            <ea-icon-chevron-left\n              class=\"ea-rtl-flip\"\n              aria-hidden=\"true\" />\n          </button>\n          <button\n            type=\"button\"\n            class=\"ea-date-picker__nav-btn\"\n            [attr.aria-label]=\"i18n.messages().datePicker.previousMonth\"\n            (click)=\"goToPrevMonth()\">\n            <ea-icon-chevron-left\n              class=\"ea-rtl-flip\"\n              aria-hidden=\"true\" />\n          </button>\n          <span\n            class=\"ea-date-picker__month-label\"\n            aria-live=\"polite\">\n            {{ monthYearLabel() }}\n          </span>\n          <button\n            type=\"button\"\n            class=\"ea-date-picker__nav-btn\"\n            [attr.aria-label]=\"i18n.messages().datePicker.nextMonth\"\n            (click)=\"goToNextMonth()\">\n            <ea-icon-chevron-right\n              class=\"ea-rtl-flip\"\n              aria-hidden=\"true\" />\n          </button>\n          <button\n            type=\"button\"\n            class=\"ea-date-picker__nav-btn\"\n            [attr.aria-label]=\"i18n.messages().datePicker.nextYear\"\n            (click)=\"goToNextYear()\">\n            <ea-icon-chevron-right\n              class=\"ea-rtl-flip\"\n              aria-hidden=\"true\" />\n            <ea-icon-chevron-right\n              class=\"ea-rtl-flip\"\n              aria-hidden=\"true\" />\n          </button>\n        </div>\n\n        <div\n          class=\"ea-date-picker__grid\"\n          role=\"grid\">\n          <div\n            class=\"ea-date-picker__weekday-row\"\n            role=\"row\">\n            @for (label of weekdayLabels(); track label) {\n              <div\n                class=\"ea-date-picker__weekday\"\n                role=\"columnheader\">\n                {{ label }}\n              </div>\n            }\n          </div>\n          @for (week of weeks(); track $index) {\n            <div\n              class=\"ea-date-picker__week\"\n              role=\"row\">\n              @for (day of week; track day.date.getTime()) {\n                <div\n                  class=\"ea-date-picker__cell\"\n                  role=\"gridcell\"\n                  [attr.aria-selected]=\"day.isSelected\">\n                  <button\n                    type=\"button\"\n                    class=\"ea-date-picker__day\"\n                    [class.ea-date-picker__day--outside]=\"!day.isCurrentMonth\"\n                    [class.ea-date-picker__day--today]=\"day.isToday\"\n                    [class.ea-date-picker__day--selected]=\"day.isSelected\"\n                    [class.ea-date-picker__day--focused]=\"day.isFocused\"\n                    [class.ea-date-picker__day--disabled]=\"day.isDisabled\"\n                    [attr.aria-disabled]=\"day.isDisabled || null\"\n                    [attr.aria-current]=\"day.isToday ? 'date' : null\"\n                    [attr.tabindex]=\"day.isFocused ? 0 : -1\"\n                    (click)=\"selectDay(day)\">\n                    {{ day.day }}\n                  </button>\n                </div>\n              }\n            </div>\n          }\n        </div>\n\n        <div class=\"ea-date-picker__footer\">\n          <button\n            type=\"button\"\n            class=\"ea-date-picker__today-btn\"\n            (click)=\"goToToday()\">\n            {{ i18n.messages().datePicker.today }}\n          </button>\n        </div>\n      </div>\n    </ea-popover>\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { Injectable } from '@angular/core';\n\n/**\n * Reference-counted hold on the page's own scrolling, taken by modal overlays\n * for as long as they are up.\n *\n * The native top layer leaves the page inert to clicks and focus, but wheel\n * and touch scrolling still chain through the backdrop to the viewport, so\n * the root scroller is shut off while any holder remains. The root scrollbar\n * disappears with it; its width is given back as body padding so the page\n * does not shift underneath the overlay.\n */\n@Injectable({ providedIn: 'root' })\nexport class ScrollLock {\n  private holds = 0;\n  private restore: (() => void) | null = null;\n\n  acquire(): void {\n    if (++this.holds > 1 || typeof document === 'undefined') {\n      return;\n    }\n\n    const root = document.documentElement;\n    const body = document.body;\n    const scrollbar = window.innerWidth - root.clientWidth;\n    const overflow = root.style.overflow;\n    const padding = body.style.paddingRight;\n\n    root.style.overflow = 'hidden';\n    if (scrollbar > 0) {\n      const held = parseFloat(getComputedStyle(body).paddingRight) || 0;\n      body.style.paddingRight = `${held + scrollbar}px`;\n    }\n\n    this.restore = () => {\n      root.style.overflow = overflow;\n      body.style.paddingRight = padding;\n    };\n  }\n\n  release(): void {\n    if (this.holds === 0 || --this.holds > 0) {\n      return;\n    }\n\n    this.restore?.();\n    this.restore = null;\n  }\n}\n","import { NgClass, isPlatformBrowser } from '@angular/common';\nimport {\n  type AfterContentChecked,\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  type ElementRef,\n  HostListener,\n  PLATFORM_ID,\n  ViewEncapsulation,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { XIconComponent } from '../icons/x.component';\nimport { PointerPressTracker } from '../pointer-press';\nimport { ScrollLock } from '../scroll-lock';\nimport { type EaWidth } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Width preset of the dialog panel. */\nexport type DialogWidth = EaWidth;\n\n/**\n * Floating surfaces a click can land on without leaving the dialog's layer:\n * another dialog, and the pieces the library teleports to `document.body`\n * (popover surfaces, tooltips, toasts). A press on any of them is interaction\n * with an overlay, not with the page behind, so it never reads as a dismissal.\n */\nconst FLOATING_SURFACES = 'dialog, .ea-popover__surface, .ea-tooltip, .ea-toast';\n\n/**\n * Dialog backed by the native `<dialog>` element. Modal by default, using\n * `showModal()` for browser-managed focus trapping with backdrop and Escape\n * dismissal, and holding the page's scrolling for as long as it is up;\n * `modal` false floats it over a page left scrollable instead. It exposes\n * `header`, default, and `footer` content slots, and the `open` state is a\n * two-way `model()` binding.\n *\n * The header is a row that lays its slot content out against the built-in\n * close button, and it applies the h4 type scale to that content, so a heading\n * element projected into it should carry `font: inherit`. Panel chrome is\n * tunable per dialog via `--ea-dialog-inset`, `--ea-dialog-radius`,\n * `--ea-dialog-max-height`, `--ea-dialog-header-padding`,\n * `--ea-dialog-body-padding`, and `--ea-dialog-status-padding`; an\n * edge-to-edge media surface zeroes the inset, radius, and paddings.\n *\n * Specs running under jsdom need `installNativeDialogShim()` from\n * `@eagami/ui/testing` before opening one.\n */\n@Component({\n  selector: 'ea-dialog',\n  imports: [NgClass, XIconComponent],\n  templateUrl: './dialog.component.html',\n  styleUrl: './dialog.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class DialogComponent implements AfterContentChecked {\n  private readonly dialogEl = viewChild<ElementRef<HTMLDialogElement>>('dialogEl');\n  private readonly headerEl = viewChild<ElementRef<HTMLElement>>('headerEl');\n  private previouslyFocused: HTMLElement | null = null;\n  protected readonly i18n = inject(EagamiI18nService);\n  private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n  private readonly press = inject(PointerPressTracker);\n  private readonly scrollLock = inject(ScrollLock);\n  private holdsScroll = false;\n\n  readonly width = input<DialogWidth>('md');\n  /**\n   * Modal by default: shown via `showModal()`, with the backdrop overlay and\n   * the page behind made inert and held from scrolling. When false the dialog\n   * floats via `show()` instead, with no backdrop, leaving the page behind\n   * scrollable and interactive; Escape still closes (or reports) from inside\n   * the dialog, and `closeOnBackdrop` dismisses on a click landing outside\n   * the panel. Read when the dialog opens; flipping it while open has no\n   * effect.\n   */\n  readonly modal = input<boolean>(true);\n  readonly closeOnBackdrop = input<boolean>(true);\n  readonly closeOnEscape = input<boolean>(true);\n  readonly showClose = input<boolean>(true);\n  /**\n   * Disables the built-in close button while a task is in flight (a save, an\n   * upload). It governs that button alone; pair it with `closeOnEscape` /\n   * `closeOnBackdrop` or `manualClose` to hold the other routes shut too.\n   */\n  readonly closeDisabled = input<boolean>(false);\n  /**\n   * Hands every close route to the consumer: the dialog reports\n   * `closeRequested` and stays open until `open` is set false, so an unsaved\n   * edit can be confirmed first. Escape and the backdrop still report, which is\n   * what `closeOnEscape` / `closeOnBackdrop` remove entirely.\n   */\n  readonly manualClose = input<boolean>(false);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly id = input<string>(uniqueId('ea-dialog'));\n\n  readonly open = model<boolean>(false);\n\n  /** Fires once the dialog has been shown via `showModal()`. */\n  readonly opened = output<void>();\n  /** Fires when the dialog closes (via close button, backdrop, or Escape). */\n  readonly closed = output<void>();\n  /** Fires under `manualClose` for every close the user asks for, leaving the dialog open. */\n  readonly closeRequested = output<void>();\n\n  readonly panelClasses = computed(() => ({\n    [`ea-dialog__panel--${this.width()}`]: true,\n  }));\n\n  /** Whether the header slot received content, so labelledby never points at an empty node. */\n  protected readonly hasHeader = signal(false);\n\n  ngAfterContentChecked(): void {\n    const header = this.headerEl()?.nativeElement;\n    this.hasHeader.set(\n      !!header && (header.children.length > 0 || !!header.textContent?.trim()),\n    );\n  }\n\n  constructor() {\n    effect(() => {\n      const dialogRef = this.dialogEl()?.nativeElement;\n      const open = this.open();\n      // `<dialog>` APIs and focus management are browser-only, but the effect\n      // still runs during SSR, so skip the DOM work on the server.\n      if (!dialogRef || !this.isBrowser) {\n        return;\n      }\n\n      if (open) {\n        if (!dialogRef.open) {\n          this.previouslyFocused = document.activeElement as HTMLElement | null;\n          if (this.modal()) {\n            dialogRef.showModal();\n            this.holdScroll();\n          } else {\n            dialogRef.show();\n          }\n          this.opened.emit();\n        }\n      } else {\n        if (dialogRef.open) {\n          dialogRef.close();\n          this.dropScroll();\n          this.previouslyFocused?.focus?.();\n          this.previouslyFocused = null;\n        }\n      }\n    });\n\n    // A dialog taken down while open never sees its close, so the hold goes\n    // with the component\n    inject(DestroyRef).onDestroy(() => this.dropScroll());\n  }\n\n  private holdScroll(): void {\n    if (!this.holdsScroll) {\n      this.holdsScroll = true;\n      this.scrollLock.acquire();\n    }\n  }\n\n  private dropScroll(): void {\n    if (this.holdsScroll) {\n      this.holdsScroll = false;\n      this.scrollLock.release();\n    }\n  }\n\n  handleClose(): void {\n    this.open.set(false);\n    this.closed.emit();\n  }\n\n  /** Every close route the user can take, routed through `manualClose`. */\n  protected requestClose(): void {\n    if (this.manualClose()) {\n      this.closeRequested.emit();\n      return;\n    }\n    this.handleClose();\n  }\n\n  handleBackdropClick(event: MouseEvent): void {\n    if (!this.closeOnBackdrop()) {\n      return;\n    }\n    const dialogRef = this.dialogEl()?.nativeElement;\n    // A press that touched the panel at either end reaches the dialog element\n    // as a click too, since that is the first ancestor the panel and the\n    // backdrop share; only a press confined to the backdrop dismisses\n    if (event.target === dialogRef && this.press.stayedOn(dialogRef)) {\n      this.requestClose();\n    }\n  }\n\n  // A non-modal dialog has no backdrop, so `closeOnBackdrop` dismisses on a\n  // click landing outside the panel instead. The native open flag stands off\n  // the opening click itself, which reaches here before the effect has shown\n  // the dialog\n  @HostListener('document:click', ['$event'])\n  onDocumentClick(event: MouseEvent): void {\n    const dialogRef = this.dialogEl()?.nativeElement;\n    if (this.modal() || !this.closeOnBackdrop() || !dialogRef?.open) {\n      return;\n    }\n    const target = event.target;\n    if (!(target instanceof Element) || target.closest(FLOATING_SURFACES)) {\n      return;\n    }\n    // A drag that started or ended on the panel (selecting text, dragging a\n    // slider) lands its click on an ancestor of both, which is not a dismissal\n    if (this.press.touchedInside(dialogRef)) {\n      return;\n    }\n    this.requestClose();\n  }\n\n  handleCancel(event: Event): void {\n    if (!this.closeOnEscape()) {\n      event.preventDefault();\n      return;\n    }\n    // The native cancel is preventable, so a vetoed Escape leaves the dialog\n    // showing rather than closing and reopening it a frame later\n    if (this.manualClose()) {\n      event.preventDefault();\n      this.closeRequested.emit();\n      return;\n    }\n    this.handleClose();\n  }\n\n  // Escape reaches a non-modal dialog only as a keydown, since `show()` never\n  // fires the native cancel; a modal one leaves it to `handleCancel`\n  protected handleEscape(): void {\n    if (this.modal() || !this.closeOnEscape()) {\n      return;\n    }\n    this.requestClose();\n  }\n}\n","<dialog\n  #dialogEl\n  class=\"ea-dialog\"\n  [id]=\"id()\"\n  [class.ea-dialog--floating]=\"!modal()\"\n  [attr.aria-label]=\"ariaLabel() ?? null\"\n  [attr.aria-labelledby]=\"!ariaLabel() && hasHeader() ? id() + '-header' : null\"\n  (click)=\"handleBackdropClick($event)\"\n  (cancel)=\"handleCancel($event)\"\n  (keydown.escape)=\"handleEscape()\">\n  <div\n    class=\"ea-dialog__panel\"\n    [ngClass]=\"panelClasses()\">\n    <div\n      class=\"ea-dialog__header\"\n      [class.ea-dialog__header--hidden]=\"!hasHeader() && !showClose()\">\n      <div\n        #headerEl\n        class=\"ea-dialog__header-content\"\n        [id]=\"id() + '-header'\">\n        <ng-content select=\"[slot=header]\" />\n      </div>\n      @if (showClose()) {\n        <button\n          type=\"button\"\n          class=\"ea-dialog__close\"\n          [attr.aria-label]=\"i18n.messages().dialog.close\"\n          [disabled]=\"closeDisabled()\"\n          (click)=\"requestClose()\">\n          <ea-icon-x />\n        </button>\n      }\n    </div>\n\n    <div class=\"ea-dialog__body\">\n      <ng-content />\n    </div>\n\n    <div class=\"ea-dialog__status\">\n      <ng-content select=\"[slot=status]\" />\n    </div>\n\n    <div class=\"ea-dialog__footer\">\n      <ng-content select=\"[slot=footer]\" />\n    </div>\n  </div>\n</dialog>\n","import { NgClass, isPlatformBrowser } from '@angular/common';\nimport {\n  type AfterContentChecked,\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  type ElementRef,\n  PLATFORM_ID,\n  ViewEncapsulation,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { XIconComponent } from '../icons/x.component';\nimport { PointerPressTracker } from '../pointer-press';\nimport { type EaWidth } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/**\n * Edge of the viewport from which the drawer slides in. `start`/`end` are\n * direction-aware (start = left in LTR, right in RTL); `left`/`right` are fixed.\n */\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom' | 'start' | 'end';\n/**\n * Extent of the drawer panel along its main axis: width for side drawers,\n * height for top/bottom drawers.\n */\nexport type DrawerSize = EaWidth;\n/**\n * How the drawer relates to the page. `overlay` floats over a dimmed,\n * focus-trapped page (modal); `push` opens non-modally with no backdrop and\n * reflows the page content aside so it stays visible and interactive.\n */\nexport type DrawerMode = 'overlay' | 'push';\n/**\n * Slide animation used when the drawer opens and closes. `none` shows and hides\n * it instantly; `linear` slides at a constant speed; `eased` slides on an\n * ease-out curve. All durations still collapse to 0ms under reduced motion.\n */\nexport type DrawerAnimation = 'none' | 'linear' | 'eased';\n\n// The padding side, per position, applied to the push target so its content\n// reflows away from the drawer's edge. `start`/`end` are direction-aware.\nconst PUSH_PROPERTY: Record<DrawerPosition, string> = {\n  right: 'padding-right',\n  left: 'padding-left',\n  start: 'padding-inline-start',\n  end: 'padding-inline-end',\n  top: 'padding-top',\n  bottom: 'padding-bottom',\n};\n\n// Every padding side push can set. All are cleared before applying the current\n// one so a position change never leaves a stale offset that shifts content off.\nconst PUSH_PROPERTIES = Object.values(PUSH_PROPERTY);\n\n/**\n * Side panel backed by the native `<dialog>` element for browser-managed\n * focus trapping. Slides in from a configurable edge, supports backdrop and\n * Escape dismissal, and exposes `header`, default, and `footer` content\n * slots. The `open` state is a two-way `model()` binding. In `push` mode it\n * opens non-modally and reflows the page content aside instead of overlaying it.\n *\n * Specs running under jsdom need `installNativeDialogShim()` from\n * `@eagami/ui/testing` before opening one.\n */\n@Component({\n  selector: 'ea-drawer',\n  imports: [NgClass, XIconComponent],\n  templateUrl: './drawer.component.html',\n  styleUrl: './drawer.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class DrawerComponent implements AfterContentChecked {\n  private readonly drawerEl = viewChild<ElementRef<HTMLDialogElement>>('drawerEl');\n  private readonly panelEl = viewChild<ElementRef<HTMLElement>>('panelEl');\n  private readonly headerEl = viewChild<ElementRef<HTMLElement>>('headerEl');\n  private previouslyFocused: HTMLElement | null = null;\n  private pushedTarget: HTMLElement | null = null;\n  private pushCleanupTimer: ReturnType<typeof setTimeout> | null = null;\n  // Which modality the open dialog was shown with, so a `mode` change while it\n  // is open can reopen it in the matching modality. `null` means it is closed.\n  private shownAsModal: boolean | null = null;\n  private reopening = false;\n  private isLeaving = false;\n  private pushRaf: number | null = null;\n  private leaveTimer: ReturnType<typeof setTimeout> | null = null;\n  private leaveOnEnd: ((event: TransitionEvent) => void) | null = null;\n  private documentClickListener: ((event: MouseEvent) => void) | null = null;\n  protected readonly i18n = inject(EagamiI18nService);\n  private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n  private readonly press = inject(PointerPressTracker);\n\n  readonly position = input<DrawerPosition>('right');\n  /**\n   * Extent of the panel along its main axis (width for side drawers, height for\n   * top/bottom drawers).\n   */\n  readonly size = input<DrawerSize>('md');\n  /**\n   * `overlay` (default) opens the drawer as a modal over a dimmed page; `push`\n   * opens it non-modally and reflows the page content aside.\n   */\n  readonly mode = input<DrawerMode>('overlay');\n  /**\n   * Element whose content is pushed aside in `push` mode, as a CSS selector or\n   * element reference. Defaults to `document.body`.\n   */\n  readonly pushTarget = input<string | HTMLElement | null>(null);\n  readonly closeOnBackdrop = input<boolean>(true);\n  readonly closeOnEscape = input<boolean>(true);\n  /** Slide animation used as the panel opens and closes. */\n  readonly animation = input<DrawerAnimation>('eased');\n  readonly showClose = input<boolean>(true);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly id = input<string>(uniqueId('ea-drawer'));\n\n  readonly open = model<boolean>(false);\n\n  /** Fires once the drawer has been shown. */\n  readonly opened = output<void>();\n  /** Fires when the drawer closes (via close button, backdrop, or Escape). */\n  readonly closed = output<void>();\n\n  readonly panelClasses = computed(() => ({\n    [`ea-drawer__panel--${this.position()}`]: true,\n    [`ea-drawer__panel--${this.size()}`]: true,\n  }));\n\n  /** Whether the header slot received content, so labelledby never points at an empty node. */\n  protected readonly hasHeader = signal(false);\n\n  ngAfterContentChecked(): void {\n    const header = this.headerEl()?.nativeElement;\n    this.hasHeader.set(\n      !!header && (header.children.length > 0 || !!header.textContent?.trim()),\n    );\n  }\n\n  constructor() {\n    effect(() => {\n      const drawerRef = this.drawerEl()?.nativeElement;\n      const open = this.open();\n      const mode = this.mode();\n      // Re-run the push measurement if size, position, or target change while open\n      this.size();\n      this.position();\n      this.pushTarget();\n      // `<dialog>` APIs and focus management are browser-only, but the effect\n      // still runs during SSR, so skip the DOM work on the server.\n      if (!drawerRef || !this.isBrowser) {\n        return;\n      }\n\n      // Push mode stays non-modal so the page behind it remains interactive\n      const wantModal = mode !== 'push';\n\n      if (open) {\n        if (!drawerRef.open) {\n          this.previouslyFocused = document.activeElement as HTMLElement | null;\n          this.showDialog(drawerRef, wantModal);\n          this.enter(true);\n          this.opened.emit();\n        } else if (this.isLeaving) {\n          // Reopened mid-exit: cancel the pending close and slide back in\n          this.enter(true);\n        } else if (this.shownAsModal !== wantModal) {\n          // A modality change while open can only be honoured by reopening: the\n          // native dialog fixes its modality at show()/showModal() time. The\n          // panel is already on screen, so re-enter without re-sliding it.\n          this.reopening = true;\n          drawerRef.close();\n          this.showDialog(drawerRef, wantModal);\n          this.enter(false);\n          this.reopening = false;\n        }\n        if (mode === 'push') {\n          this.applyPush();\n          this.addPushDismiss();\n        } else {\n          this.clearPush();\n          this.removePushDismiss();\n        }\n      } else {\n        if (drawerRef.open) {\n          this.leave(drawerRef);\n        }\n        this.clearPush();\n        this.removePushDismiss();\n      }\n    });\n\n    inject(DestroyRef).onDestroy(() => {\n      this.teardownPush();\n      this.removePushDismiss();\n      this.cancelLeave();\n    });\n  }\n\n  private showDialog(drawerRef: HTMLDialogElement, modal: boolean): void {\n    if (modal) {\n      drawerRef.showModal();\n    } else {\n      drawerRef.show();\n    }\n    this.shownAsModal = modal;\n  }\n\n  // Slides the panel in by toggling the `--entered` state. The panel rests off\n  // its positioned edge until `--entered` is added. Driving this from a class\n  // (rather than @starting-style / allow-discrete) keeps the enter and exit\n  // deterministic across browsers. `animate` is false when the panel is already\n  // on screen (a modality reopen), so it snaps into place.\n  private enter(animate: boolean): void {\n    const dialog = this.drawerEl()?.nativeElement;\n    if (!dialog) {\n      return;\n    }\n    this.cancelLeave();\n    if (!animate || this.animation() === 'none') {\n      dialog.classList.add('ea-drawer--entered');\n      return;\n    }\n    // The dialog has just switched from display:none, so a bare reflow is not\n    // enough to seed the transition. Paint the off-edge state, then add\n    // `--entered` two frames later so the browser animates the slide in.\n    dialog.classList.remove('ea-drawer--entered');\n    requestAnimationFrame(() => {\n      requestAnimationFrame(() => {\n        if (this.open() && dialog.open) {\n          dialog.classList.add('ea-drawer--entered');\n        }\n      });\n    });\n  }\n\n  // Slides the panel back off its edge, then closes the dialog once the panel's\n  // transform transition ends. Collapses to a synchronous close when nothing\n  // animates (no animation, reduced motion, or no measurable duration).\n  private leave(dialog: HTMLDialogElement): void {\n    if (this.isLeaving) {\n      return;\n    }\n    const panel = this.panelEl()?.nativeElement;\n    dialog.classList.remove('ea-drawer--entered');\n    const duration = panel ? this.transitionMs(panel) : 0;\n    if (this.animation() === 'none' || duration <= 0 || !panel) {\n      this.finishClose(dialog);\n      return;\n    }\n    this.isLeaving = true;\n    const settle = (): void => {\n      if (!this.isLeaving) {\n        return;\n      }\n      this.cancelLeave();\n      this.finishClose(dialog);\n    };\n    this.leaveOnEnd = (event: TransitionEvent): void => {\n      if (event.target === panel && event.propertyName === 'transform') {\n        settle();\n      }\n    };\n    panel.addEventListener('transitionend', this.leaveOnEnd);\n    this.leaveTimer = setTimeout(settle, duration + 50);\n  }\n\n  // Cancels a pending exit (its transitionend listener and fallback timer) so a\n  // reopen mid-exit does not later close the drawer.\n  private cancelLeave(): void {\n    this.isLeaving = false;\n    if (this.leaveTimer !== null) {\n      clearTimeout(this.leaveTimer);\n      this.leaveTimer = null;\n    }\n    if (this.leaveOnEnd) {\n      this.panelEl()?.nativeElement.removeEventListener('transitionend', this.leaveOnEnd);\n      this.leaveOnEnd = null;\n    }\n  }\n\n  private finishClose(dialog: HTMLDialogElement): void {\n    // A reopen during the exit animation supersedes the close\n    if (this.open()) {\n      return;\n    }\n    if (dialog.open) {\n      dialog.close();\n    }\n    this.previouslyFocused?.focus?.();\n    this.previouslyFocused = null;\n    this.shownAsModal = null;\n  }\n\n  private transitionMs(el: HTMLElement): number {\n    const raw = getComputedStyle(el).transitionDuration.split(',')[0].trim();\n    const value = parseFloat(raw);\n    if (!Number.isFinite(value)) {\n      return 0;\n    }\n    return raw.endsWith('ms') ? value : value * 1000;\n  }\n\n  handleClose(): void {\n    this.open.set(false);\n    this.closed.emit();\n  }\n\n  // Non-modal push drawers do not emit `cancel`, so Escape is handled here.\n  // An overlay inside the drawer (menu, dropdown, picker) consumes the key it\n  // acts on, which a modal drawer honours through `cancel`; respect it here too\n  // so one press never dismisses both the overlay and the drawer.\n  handleKeydown(event: KeyboardEvent): void {\n    if (event.defaultPrevented) {\n      return;\n    }\n    if (this.mode() === 'push' && this.closeOnEscape() && event.key === 'Escape') {\n      this.handleClose();\n    }\n  }\n\n  private resolvePushTarget(): HTMLElement | null {\n    const target = this.pushTarget();\n    if (target instanceof HTMLElement) {\n      return target;\n    }\n    if (typeof target === 'string' && target.length > 0) {\n      return document.querySelector<HTMLElement>(target);\n    }\n    return document.body;\n  }\n\n  private applyPush(): void {\n    const target = this.resolvePushTarget();\n    if (!target) {\n      return;\n    }\n    if (this.pushRaf !== null) {\n      cancelAnimationFrame(this.pushRaf);\n    }\n    if (this.pushCleanupTimer !== null) {\n      clearTimeout(this.pushCleanupTimer);\n      this.pushCleanupTimer = null;\n    }\n    // Measure on the next frame, once the view reflects the current position and\n    // size. Measuring synchronously reads the panel's previous dimensions, so a\n    // `height:100%` side panel switched to `top` would push content down by the\n    // full viewport height and shove it off screen.\n    this.pushRaf = requestAnimationFrame(() => {\n      this.pushRaf = null;\n      const panel = this.panelEl()?.nativeElement;\n      if (!panel || !this.open() || this.mode() !== 'push') {\n        return;\n      }\n      const position = this.position();\n      const size =\n        position === 'top' || position === 'bottom'\n          ? panel.offsetHeight\n          : panel.offsetWidth;\n      // Match the content reflow to the panel's slide. The tokens resolve from\n      // :root, so the duration still honours reduced motion (collapses to 0ms).\n      const animation = this.animation();\n      if (animation === 'none') {\n        target.style.removeProperty('transition');\n      } else {\n        const ease = animation === 'linear' ? 'var(--ease-linear)' : 'var(--ease-out)';\n        target.style.transition = `padding var(--duration-slower) ${ease}`;\n      }\n      // A target swap while open has to release the previous element too, or its\n      // offset sticks around with nothing left to clear it\n      if (this.pushedTarget && this.pushedTarget !== target) {\n        this.clearPushProperties(this.pushedTarget);\n        this.pushedTarget.style.removeProperty('transition');\n      }\n      // Clear every side first so a position change never stacks two offsets\n      this.clearPushProperties(target);\n      target.style.setProperty(PUSH_PROPERTY[position], `${size}px`);\n      this.pushedTarget = target;\n    });\n  }\n\n  private clearPush(): void {\n    if (this.pushRaf !== null) {\n      cancelAnimationFrame(this.pushRaf);\n      this.pushRaf = null;\n    }\n    const target = this.pushedTarget;\n    this.pushedTarget = null;\n    if (!target) {\n      return;\n    }\n    // Reflow the content back, then strip the leftover transition once it\n    // settles. A timer (rather than `transitionend`) keeps cleanup deterministic\n    // when no transition fires, e.g. under reduced motion.\n    this.clearPushProperties(target);\n    if (this.pushCleanupTimer !== null) {\n      clearTimeout(this.pushCleanupTimer);\n    }\n    this.pushCleanupTimer = setTimeout(() => {\n      target.style.removeProperty('transition');\n      this.pushCleanupTimer = null;\n    }, this.transitionMs(target));\n  }\n\n  private clearPushProperties(target: HTMLElement): void {\n    for (const property of PUSH_PROPERTIES) {\n      target.style.removeProperty(property);\n    }\n  }\n\n  // Push mode has no modal backdrop, so an outside-click dismissal is wired to\n  // the document. Deferred a tick so the click that opened the drawer does not\n  // immediately close it.\n  private addPushDismiss(): void {\n    if (this.documentClickListener || !this.isBrowser) {\n      return;\n    }\n    const listener = (event: MouseEvent): void => {\n      if (!this.closeOnBackdrop()) {\n        return;\n      }\n      const panel = this.panelEl()?.nativeElement;\n      if (!panel || panel.contains(event.target as Node)) {\n        return;\n      }\n      // A drag out of the panel (selecting text, dragging a control) lands its\n      // click outside, and is not a dismissal\n      if (this.press.touchedInside(panel)) {\n        return;\n      }\n      this.handleClose();\n    };\n    this.documentClickListener = listener;\n    setTimeout(() => {\n      if (this.documentClickListener === listener) {\n        document.addEventListener('click', listener);\n      }\n    });\n  }\n\n  private removePushDismiss(): void {\n    if (this.documentClickListener) {\n      document.removeEventListener('click', this.documentClickListener);\n      this.documentClickListener = null;\n    }\n  }\n\n  // Removes the push styles immediately, for teardown where no animation is wanted\n  private teardownPush(): void {\n    if (this.pushRaf !== null) {\n      cancelAnimationFrame(this.pushRaf);\n      this.pushRaf = null;\n    }\n    if (this.pushCleanupTimer !== null) {\n      clearTimeout(this.pushCleanupTimer);\n      this.pushCleanupTimer = null;\n    }\n    const target = this.pushedTarget;\n    this.pushedTarget = null;\n    if (target) {\n      this.clearPushProperties(target);\n      target.style.removeProperty('transition');\n    }\n  }\n\n  handleBackdropClick(event: MouseEvent): void {\n    if (!this.closeOnBackdrop()) {\n      return;\n    }\n    const drawerRef = this.drawerEl()?.nativeElement;\n    // A press that touched the panel at either end reaches the drawer element\n    // as a click too, since that is the first ancestor the panel and the\n    // backdrop share; only a press confined to the backdrop dismisses\n    if (event.target === drawerRef && this.press.stayedOn(drawerRef)) {\n      this.handleClose();\n    }\n  }\n\n  handleCancel(event: Event): void {\n    // Always cancel the native instant-close so the exit can animate; then drive\n    // the close ourselves, or keep the drawer open when Escape is disabled.\n    event.preventDefault();\n    if (this.closeOnEscape()) {\n      this.handleClose();\n    }\n  }\n\n  // The native <dialog> can close on its own (e.g. Escape), so reconcile the open\n  // model here. When closeOnEscape is off, Chrome's repeated-Escape abuse\n  // mitigation can force the close past cancel's preventDefault, so re-show to\n  // keep the drawer open; otherwise mirror the close back into the model.\n  onDialogClose(): void {\n    const drawerRef = this.drawerEl()?.nativeElement;\n    // Ignore the stale close event fired while reopening to switch modality\n    if (this.reopening || !this.open() || drawerRef?.open) {\n      return;\n    }\n    if (this.closeOnEscape()) {\n      this.open.set(false);\n      this.closed.emit();\n    } else if (drawerRef) {\n      this.showDialog(drawerRef, this.mode() !== 'push');\n    }\n  }\n}\n","<dialog\n  #drawerEl\n  class=\"ea-drawer\"\n  [class.ea-drawer--animated]=\"animation() !== 'none'\"\n  [class.ea-drawer--linear]=\"animation() === 'linear'\"\n  [class.ea-drawer--push]=\"mode() === 'push'\"\n  [id]=\"id()\"\n  [attr.aria-label]=\"ariaLabel() ?? null\"\n  [attr.aria-labelledby]=\"!ariaLabel() && hasHeader() ? id() + '-header' : null\"\n  (click)=\"handleBackdropClick($event)\"\n  (cancel)=\"handleCancel($event)\"\n  (keydown)=\"handleKeydown($event)\"\n  (close)=\"onDialogClose()\">\n  <div\n    #panelEl\n    class=\"ea-drawer__panel\"\n    [ngClass]=\"panelClasses()\">\n    @if (showClose()) {\n      <button\n        type=\"button\"\n        class=\"ea-drawer__close\"\n        [attr.aria-label]=\"i18n.messages().drawer.close\"\n        (click)=\"handleClose()\">\n        <ea-icon-x />\n      </button>\n    }\n\n    <div\n      #headerEl\n      class=\"ea-drawer__header\"\n      [id]=\"id() + '-header'\">\n      <ng-content select=\"[slot=header]\" />\n    </div>\n\n    <div class=\"ea-drawer__body\">\n      <ng-content />\n    </div>\n\n    <div class=\"ea-drawer__footer\">\n      <ng-content select=\"[slot=footer]\" />\n    </div>\n  </div>\n</dialog>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ChevronDownIconComponent } from '../icons/chevron-down.component';\nimport { PopoverComponent } from '../popover/popover.component';\nimport type { SelectOption, SelectOptions } from '../select-option';\nimport {\n  flattenGroups,\n  foldForSearch,\n  isGrouped,\n  toGroups,\n  toRenderedGroups,\n} from '../select-option-list';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the dropdown trigger. */\nexport type DropdownSize = EaSize;\n\n/**\n * Single-select dropdown with a custom popup list. Supports keyboard\n * navigation (arrow keys, Enter/Space to select, Escape to close), closes\n * on outside click or viewport scroll/resize, and integrates with Angular\n * forms via `ControlValueAccessor`. Positioning, dismissal, and SSR-safe\n * scroll handling are provided by `<ea-popover>`.\n */\n@Component({\n  selector: 'ea-dropdown',\n  imports: [\n    ChevronDownIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    NgClass,\n    PopoverComponent,\n  ],\n  templateUrl: './dropdown.component.html',\n  styleUrl: './dropdown.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => DropdownComponent),\n      multi: true,\n    },\n  ],\n})\nexport class DropdownComponent implements ControlValueAccessor {\n  private readonly elRef = viewChild<ElementRef<HTMLElement>>('triggerEl');\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly placeholder = input<string | undefined>(undefined);\n  /** Selectable options, either flat or split into groups. */\n  readonly options = input<SelectOptions>([]);\n  readonly size = input<DropdownSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly id = input<string>(uniqueId('ea-dropdown'));\n\n  readonly value = model<string>('');\n\n  /** Fires with the new value when the user selects an option. */\n  readonly changed = output<string>();\n\n  readonly isOpen = signal(false);\n  readonly focusedIndex = signal(-1);\n  private readonly _formDisabled = signal(false);\n\n  private typeaheadQuery = '';\n  private typeaheadTimer: ReturnType<typeof setTimeout> | undefined;\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => clearTimeout(this.typeaheadTimer));\n  }\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  private readonly optionGroups = computed(() => toGroups(this.options()));\n\n  /** Whether the consumer supplied groups, which the list exposes as ARIA groups. */\n  protected readonly grouped = computed(() => isGrouped(this.options()));\n\n  /** Every option in the order given, flattened across groups; drives all index maths. */\n  private readonly flatOptions = computed(() => flattenGroups(this.optionGroups()));\n\n  /** Groups to render, each option carrying its index into the flattened list. */\n  protected readonly renderedGroups = computed(() =>\n    toRenderedGroups(this.optionGroups()),\n  );\n\n  // A value repeated across groups renders twice, but a single-select listbox\n  // may only mark one option selected\n  protected readonly selectedIndex = computed(() =>\n    this.flatOptions().findIndex(o => o.value === this.value()),\n  );\n\n  readonly selectedLabel = computed(() => {\n    const opt = this.flatOptions().find(o => o.value === this.value());\n    return opt?.label ?? '';\n  });\n\n  /** Placeholder text, falling back to the active locale's translation. */\n  readonly resolvedPlaceholder = computed(\n    () => this.placeholder() ?? this.i18n.messages().dropdown.placeholder,\n  );\n\n  readonly triggerLabelledBy = computed(() =>\n    this.label() ? `${this.id()}-label ${this.id()}` : null,\n  );\n\n  readonly triggerClasses = computed(() => ({\n    [`ea-dropdown__trigger--${this.size()}`]: true,\n    'ea-dropdown__trigger--error': this.hasError(),\n    'ea-dropdown__trigger--open': this.isOpen(),\n    'ea-dropdown__trigger--disabled': this.isDisabled(),\n    'ea-dropdown__trigger--readonly': this.readonly() && !this.isDisabled(),\n  }));\n\n  readonly menuClasses = computed(() => ({\n    [`ea-dropdown__menu--${this.size()}`]: true,\n  }));\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  /** Toggles the dropdown list between open and closed. */\n  toggle(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.isOpen.set(!this.isOpen());\n    if (this.isOpen()) {\n      const selected = this.flatOptions().findIndex(o => o.value === this.value());\n      if (selected >= 0) {\n        this.focusedIndex.set(selected);\n      } else {\n        // Falling back to index 0 would point the active descendant at a\n        // disabled first option, so walk to the first selectable one instead\n        this.focusEdge(1);\n      }\n    }\n  }\n\n  /** Programmatically selects the given option, closing the list. */\n  select(option: SelectOption): void {\n    if (option.disabled || this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.value.set(option.value);\n    this.onChange(option.value);\n    this.onTouched();\n    this.changed.emit(option.value);\n    this.close();\n  }\n\n  /** Closes the dropdown list without changing the current value. */\n  close(): void {\n    this.isOpen.set(false);\n    this.focusedIndex.set(-1);\n    this.typeaheadQuery = '';\n    clearTimeout(this.typeaheadTimer);\n  }\n\n  /** Moves keyboard focus to the dropdown trigger. */\n  focus(): void {\n    this.elRef()?.nativeElement.focus();\n  }\n\n  /** Called by `<ea-popover>` when the user clicks outside the dropdown. */\n  onPopoverCloseRequested(): void {\n    this.close();\n    this.onTouched();\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n\n    switch (event.key) {\n      case ' ':\n        // Space extends an in-progress typeahead query instead of selecting\n        if (this.typeaheadQuery) {\n          this.handleTypeahead(event);\n        } else {\n          this.selectFocusedOrOpen(event);\n        }\n        break;\n      case 'Enter':\n        this.selectFocusedOrOpen(event);\n        break;\n      case 'ArrowDown':\n        event.preventDefault();\n        if (!this.isOpen()) {\n          this.toggle();\n        } else {\n          this.moveFocus(1);\n        }\n        break;\n      case 'ArrowUp':\n        event.preventDefault();\n        if (this.isOpen()) {\n          this.moveFocus(-1);\n        }\n        break;\n      case 'Escape':\n        if (this.isOpen()) {\n          event.preventDefault();\n          this.close();\n          this.elRef()?.nativeElement.focus();\n        }\n        break;\n      case 'Home':\n        event.preventDefault();\n        if (!this.isOpen()) {\n          this.toggle();\n        }\n        this.focusEdge(1);\n        break;\n      case 'End':\n        event.preventDefault();\n        if (!this.isOpen()) {\n          this.toggle();\n        }\n        this.focusEdge(-1);\n        break;\n      default:\n        this.handleTypeahead(event);\n        break;\n    }\n  }\n\n  private selectFocusedOrOpen(event: KeyboardEvent): void {\n    event.preventDefault();\n    if (this.isOpen()) {\n      const opts = this.flatOptions();\n      const idx = this.focusedIndex();\n      if (idx >= 0 && idx < opts.length && !opts[idx].disabled) {\n        this.select(opts[idx]);\n      }\n    } else {\n      this.toggle();\n    }\n  }\n\n  private focusEdge(direction: 1 | -1): void {\n    const opts = this.flatOptions();\n    let idx = direction === 1 ? 0 : opts.length - 1;\n    while (idx >= 0 && idx < opts.length && opts[idx].disabled) {\n      idx += direction;\n    }\n    if (idx >= 0 && idx < opts.length) {\n      this.setFocusedIndex(idx);\n    }\n  }\n\n  /** Keeps the keyboard-focused option visible inside the scrolling listbox. */\n  private setFocusedIndex(idx: number): void {\n    this.focusedIndex.set(idx);\n    document\n      .getElementById(`${this.id()}-option-${idx}`)\n      ?.scrollIntoView({ block: 'nearest' });\n  }\n\n  private handleTypeahead(event: KeyboardEvent): void {\n    if (event.key.length !== 1 || event.ctrlKey || event.metaKey || event.altKey) {\n      return;\n    }\n    event.preventDefault();\n    if (this.typeaheadTimer !== undefined) {\n      clearTimeout(this.typeaheadTimer);\n    }\n    this.typeaheadTimer = setTimeout(() => (this.typeaheadQuery = ''), 500);\n    this.typeaheadQuery += foldForSearch(event.key);\n    const wasOpen = this.isOpen();\n    if (!wasOpen) {\n      this.toggle();\n    }\n    const opts = this.flatOptions();\n    if (opts.length === 0) {\n      return;\n    }\n    const start = Math.max(this.focusedIndex(), 0);\n    // A repeated first character cycles matches while open; a growing query or a\n    // just-opened list starts the scan at the current focus\n    const firstOffset = this.typeaheadQuery.length > 1 || !wasOpen ? 0 : 1;\n    for (let offset = firstOffset; offset <= opts.length; offset++) {\n      const idx = (start + offset) % opts.length;\n      const opt = opts[idx];\n      if (!opt.disabled && foldForSearch(opt.label).startsWith(this.typeaheadQuery)) {\n        this.setFocusedIndex(idx);\n        return;\n      }\n    }\n  }\n\n  private moveFocus(delta: number): void {\n    const opts = this.flatOptions();\n    let idx = this.focusedIndex() + delta;\n    while (idx >= 0 && idx < opts.length && opts[idx].disabled) {\n      idx += delta;\n    }\n    if (idx >= 0 && idx < opts.length) {\n      this.setFocusedIndex(idx);\n    }\n  }\n}\n","<div class=\"ea-dropdown-field ea-dropdown-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div class=\"ea-dropdown\">\n    <button\n      #triggerEl\n      type=\"button\"\n      class=\"ea-dropdown__trigger\"\n      [ngClass]=\"triggerClasses()\"\n      [id]=\"id()\"\n      role=\"combobox\"\n      [disabled]=\"isDisabled()\"\n      [attr.aria-expanded]=\"isOpen()\"\n      [attr.aria-haspopup]=\"'listbox'\"\n      [attr.aria-controls]=\"isOpen() ? id() + '-listbox' : null\"\n      [attr.aria-activedescendant]=\"\n        isOpen() && focusedIndex() >= 0 ? id() + '-option-' + focusedIndex() : null\n      \"\n      [attr.aria-labelledby]=\"triggerLabelledBy()\"\n      [attr.aria-required]=\"required() || null\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (click)=\"toggle()\"\n      (keydown)=\"handleKeydown($event)\">\n      <span\n        class=\"ea-dropdown__value\"\n        [class.ea-dropdown__value--placeholder]=\"!selectedLabel()\">\n        <bdi>{{ selectedLabel() || resolvedPlaceholder() }}</bdi>\n      </span>\n      <ea-icon-chevron-down\n        class=\"ea-dropdown__chevron\"\n        [class.ea-dropdown__chevron--open]=\"isOpen()\" />\n    </button>\n\n    <ea-popover\n      [anchor]=\"triggerEl\"\n      [open]=\"isOpen()\"\n      placement=\"bottom-start\"\n      role=\"listbox\"\n      [surfaceId]=\"id() + '-listbox'\"\n      [aria-label]=\"label()\"\n      [matchAnchorWidth]=\"true\"\n      [closeOnEscape]=\"false\"\n      scrollBehavior=\"close\"\n      (closeRequested)=\"onPopoverCloseRequested()\">\n      <div\n        class=\"ea-dropdown__menu\"\n        [ngClass]=\"menuClasses()\"\n        role=\"none\">\n        @for (group of renderedGroups(); track $index) {\n          <div\n            class=\"ea-dropdown__group\"\n            [class.ea-dropdown__group--ruled]=\"group.rule\"\n            [attr.role]=\"grouped() ? 'group' : 'presentation'\"\n            [attr.aria-label]=\"group.label ?? null\">\n            @if (group.label; as groupLabel) {\n              <div\n                class=\"ea-dropdown__group-label\"\n                aria-hidden=\"true\">\n                {{ groupLabel }}\n              </div>\n            }\n            @for (entry of group.options; track entry.option.value) {\n              <div\n                class=\"ea-dropdown__option\"\n                [class.ea-dropdown__option--selected]=\"entry.option.value === value()\"\n                [class.ea-dropdown__option--focused]=\"entry.index === focusedIndex()\"\n                [class.ea-dropdown__option--disabled]=\"entry.option.disabled\"\n                [id]=\"id() + '-option-' + entry.index\"\n                role=\"option\"\n                [attr.aria-selected]=\"entry.index === selectedIndex()\"\n                [attr.aria-disabled]=\"entry.option.disabled || null\"\n                (click)=\"select(entry.option)\"\n                (mouseenter)=\"focusedIndex.set(entry.index)\">\n                {{ entry.option.label }}\n              </div>\n            }\n          </div>\n        }\n      </div>\n    </ea-popover>\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-eagami',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 1962.34 1962.34\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <g>\n        <polygon\n          fill=\"#718e99\"\n          points=\"843.82 1872.78 800.19 1873.73 747.86 1550.57 798.02 1579.39 843.82 1872.78\" />\n        <polygon\n          fill=\"#72808c\"\n          points=\"798.01 1579.39 747.85 1550.57 735.89 1503.54 790.69 1529.94 798.01 1579.39\" />\n        <path\n          fill=\"#3c6c90\"\n          d=\"M1369.61,147.98l-105.89-6.22s-.05,0-.07-.01c-1.06-.1-1.75-.11-1.94-.11h-.06l-187.74-15.4,147.76-37.63,147.94,59.38Z\" />\n        <polygon\n          fill=\"#46293f\"\n          points=\"1242.39 201.49 1023.2 236.73 1000.3 239.43 1005.76 200.7 1073.91 126.23 1242.39 201.49\" />\n        <polygon\n          fill=\"#653f54\"\n          points=\"1144.89 343.97 1140.97 360.09 1034.47 456.62 978.85 341.04 1000.3 239.43 1023.2 236.73 1144.89 343.97\" />\n        <polygon\n          fill=\"#46293f\"\n          points=\"1149.33 499.16 1034.47 456.62 1140.97 360.09 1149.33 499.16\" />\n        <polygon\n          fill=\"#331b2a\"\n          points=\"1318.72 563.47 1130.07 532.19 1149.33 499.16 1318.72 563.47\" />\n        <polygon\n          fill=\"#4b273c\"\n          points=\"1318.72 563.47 1076.63 609.03 1130.07 532.19 1318.72 563.47\" />\n        <polygon\n          fill=\"#4b2f3f\"\n          points=\"1066 741.83 1066 693.01 1035.47 664.68 1003.57 571.56 1076.63 609.03 1083.18 790.66 1059.73 811.84 1066 741.83\" />\n        <polygon\n          fill=\"#3c6c90\"\n          points=\"667.69 998.55 555.65 1178.36 470.69 1211.06 590.27 1015.47 667.69 998.55\" />\n        <polygon\n          fill=\"#2a445f\"\n          points=\"832.91 957.82 705.13 1117.7 555.65 1178.36 667.69 998.55 832.91 957.82\" />\n        <polygon\n          fill=\"#11253c\"\n          points=\"725.23 1109.29 780.56 1088.46 751.67 1105.48 709.41 1120.01 687.32 1156.44 680.06 1168.82 419.79 1252.33 319.47 1293.93 458.32 1053.08 202.43 1176.77 237.68 1130.08 567.1 877.57 346 1256.78 470.69 1211.06 555.65 1178.36 705.13 1117.7 832.91 957.82 841.09 956.88 725.23 1109.29\" />\n        <polygon\n          fill=\"#72808c\"\n          points=\"917.67 1070.61 873.26 1105.96 667.34 1192.96 680.06 1168.82 687.32 1156.44 901.06 1071.66 917.67 1070.61\" />\n        <path\n          fill=\"#bbcbd2\"\n          d=\"M1038.72,1696.39l-46.05,2.39-55.25-98.11-146.73-70.72-54.8-26.4-164.16-79.11-25.44-51.12s112.32-146.39,121.05-180.36l205.92-87-119.96,97.64-58.34,44.77-80.69,118.59,14.17,37.15,93.25,43.58,61.72,33.13,195.9,95.94,59.41,119.62Z\" />\n        <polygon\n          fill=\"#254b71\"\n          points=\"458.32 1053.08 319.47 1293.93 290.75 1344.73 190.85 1368.4 136.63 1381.25 114.46 1290.44 202.43 1176.77 458.32 1053.08\" />\n        <polygon\n          fill=\"#2a445f\"\n          points=\"940.14 614.9 567.1 877.57 237.68 1130.08 490.22 786.13 940.14 614.9\" />\n        <polygon\n          fill=\"#3c6c90\"\n          points=\"1003.57 571.56 940.14 614.9 490.22 786.13 865.63 537.27 1003.57 571.56\" />\n        <polygon\n          fill=\"#808d97\"\n          points=\"1379.25 231.73 1163.33 267.92 1212.39 225.78 1379.25 231.73\" />\n        <polygon\n          fill=\"#3a0a23\"\n          points=\"1090.1 267.24 1023.2 236.73 1163.33 267.92 1156.18 297.37 1090.1 267.24 1090.1 267.24\" />\n        <polygon\n          fill=\"#4d1832\"\n          points=\"1156.18 297.37 1150.7 320 1023.2 236.73 1156.18 297.37\" />\n        <polygon\n          fill=\"#594b6e\"\n          points=\"1150.7 320 1144.89 343.97 1023.2 236.73 1150.7 320\" />\n        <polygon\n          fill=\"#4f1730\"\n          points=\"1276.02 379.71 1236.58 373.98 1140.97 360.09 1248.38 360.09 1276.02 379.71\" />\n        <polygon\n          fill=\"#d8dee3\"\n          points=\"1341.26 475.03 1295.08 447.72 1295.07 447.71 1292.55 435.34 1236.58 373.98 1276.02 379.71 1336.29 447.7 1336.3 447.71 1341.26 475.03\" />\n        <polygon\n          fill=\"#6c2741\"\n          points=\"1336.29 447.7 1276.02 379.71 1328.9 417.25 1335.44 442.96 1336.29 447.7\" />\n        <polygon\n          fill=\"#9fb1b7\"\n          points=\"1346.71 505.52 1320.36 490.59 1298.63 465.1 1295.08 447.72 1341.26 475.03 1346.71 505.52\" />\n        <polygon\n          fill=\"#bbcbd2\"\n          points=\"1356.16 554.73 1311.09 698.25 1240.75 757.31 1318.72 563.47 1298.63 465.1 1320.36 490.59 1356.16 554.73\" />\n        <polygon\n          fill=\"#72808c\"\n          points=\"1279.46 804.94 1174.42 902.74 1240.75 757.31 1279.46 804.94\" />\n        <polygon\n          fill=\"#3c4d5e\"\n          points=\"1240.75 757.31 1174.42 902.74 1068.04 1002.02 1081.79 810.12 1240.75 757.31\" />\n        <polygon\n          fill=\"#04111b\"\n          points=\"1083.18 790.66 1081.79 810.12 1068.04 1002.02 1062.82 1006.89 1062.82 941.16 1059.73 811.84 1083.18 790.66\" />\n        <polygon\n          fill=\"#11253c\"\n          points=\"1062.82 941.16 928.32 1062.14 917.68 1070.61 917.67 1070.61 901.06 1071.66 880.35 1049.28 911.78 1034.51 999.93 921 1059.73 811.84 1062.82 941.16\" />\n        <polygon\n          fill=\"#72808c\"\n          points=\"873.26 1105.96 817.64 1235.99 812.19 1254.56 741.3 1304.8 753.3 1203.59 873.26 1105.96\" />\n        <polygon\n          fill=\"#8b9da8\"\n          points=\"778.38 1446.98 783.4 1480.82 721.68 1447.69 741.3 1304.8 812.19 1254.56 778.38 1446.98\" />\n        <polygon\n          fill=\"#8b9da8\"\n          points=\"1311.09 698.25 1279.46 804.94 1240.75 757.31 1311.09 698.25\" />\n        <polygon\n          fill=\"#9ea4bc\"\n          points=\"1847.88 236.73 1837.25 237.12 1670.95 211.49 1325.63 194.03 1363.79 169.1 1387.06 154.33 1717.11 201.01 1847.88 236.73\" />\n        <polygon\n          fill=\"#0d2533\"\n          points=\"1837.25 237.12 1710.47 241.73 1696.44 241.3 1325.63 194.03 1670.95 211.49 1837.25 237.12\" />\n        <polygon\n          fill=\"#04111b\"\n          points=\"901.06 1071.66 687.32 1156.44 709.41 1120.01 751.67 1105.48 780.56 1088.46 880.35 1049.28 901.06 1071.66\" />\n        <polygon\n          fill=\"#3c6c90\"\n          points=\"956.32 929.73 880.35 1049.28 780.56 1088.46 725.23 1109.29 841.09 956.88 956.32 929.73\" />\n        <polygon\n          fill=\"#2a445f\"\n          points=\"999.93 921 911.78 1034.51 880.35 1049.28 956.32 929.73 999.93 921\" />\n        <polygon\n          fill=\"#2f567a\"\n          points=\"1066 741.83 1059.73 811.84 999.93 921 956.32 929.73 841.09 956.88 832.91 957.82 667.69 998.55 590.27 1015.47 470.69 1211.06 346 1256.78 567.1 877.57 1066 741.83\" />\n        <polygon\n          fill=\"#3c6c90\"\n          points=\"1066 693.01 1066 741.83 567.1 877.57 961.31 626.09 1035.47 664.68 1066 693.01\" />\n        <polygon\n          fill=\"#182f44\"\n          points=\"961.31 626.09 567.1 877.57 940.14 614.9 961.31 626.09\" />\n        <polygon\n          fill=\"#40374f\"\n          points=\"1035.47 664.68 961.31 626.09 940.14 614.9 1003.57 571.56 1035.47 664.68\" />\n        <polygon\n          fill=\"#444e77\"\n          points=\"1318.72 563.47 1240.75 757.31 1081.79 810.12 1083.18 790.66 1318.72 563.47\" />\n        <polygon\n          fill=\"#11365c\"\n          points=\"419.79 1252.33 248.23 1407.29 190.85 1368.4 290.75 1344.73 319.47 1293.93 419.79 1252.33\" />\n        <polygon\n          fill=\"#594b6e\"\n          points=\"1318.72 563.47 1149.33 499.16 1140.97 360.09 1292.55 435.34 1295.07 447.71 1295.08 447.72 1298.63 465.1 1318.72 563.47\" />\n        <polygon\n          fill=\"#653f54\"\n          points=\"1318.72 563.47 1083.18 790.66 1076.63 609.03 1318.72 563.47\" />\n        <polygon\n          fill=\"#6d1f44\"\n          points=\"1356.16 554.73 1320.36 490.59 1346.71 505.52 1356.16 554.73\" />\n        <polygon\n          fill=\"#aeb9bc\"\n          points=\"1292.55 435.34 1140.97 360.09 1236.58 373.98 1292.55 435.34\" />\n        <polygon\n          fill=\"#541730\"\n          points=\"1242.39 201.49 1212.39 225.78 1163.33 267.92 1023.2 236.73 1242.39 201.49\" />\n        <polygon\n          fill=\"#d8dee3\"\n          points=\"1379.25 231.73 1212.4 225.78 1242.39 201.49 1325.63 194.03 1379.25 231.73\" />\n        <polygon\n          fill=\"#7a929c\"\n          points=\"1696.44 241.3 1379.25 231.73 1325.63 194.03 1696.44 241.3\" />\n        <polygon\n          fill=\"#d8dee3\"\n          points=\"1387.06 154.34 1325.63 194.03 1293.1 167.67 1280.37 157.13 1261.66 141.64 1358.76 172.62 1387.06 154.34\" />\n        <polygon\n          fill=\"#628ead\"\n          points=\"1387.06 154.34 1358.76 172.62 1261.66 141.64 1369.61 147.98 1387.06 154.34\" />\n        <polygon\n          fill=\"#285175\"\n          points=\"1325.63 194.03 1242.39 201.49 1255.66 186.41 1280.37 157.13 1293.1 167.67 1325.63 194.03\" />\n        <polygon\n          fill=\"#2a445f\"\n          points=\"1280.37 157.13 1255.66 186.41 1242.39 201.49 1073.91 126.23 1261.66 141.64 1280.37 157.13\" />\n      </g>\n      <polygon\n        fill=\"#8b9da8\"\n        points=\"628.44 1404.11 546.3 1373.32 614.27 1366.96 628.44 1404.11\" />\n      <polygon\n        fill=\"#8b9da8\"\n        points=\"937.42 1600.66 979.31 1576.77 1038.72 1696.39 992.67 1698.78 937.42 1600.66\" />\n    </svg>\n  `,\n})\nexport class EagamiIconComponent extends IconComponentBase {\n  static readonly slug = 'eagami';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['logo', 'mark'];\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { EagamiIconComponent } from '../icons/eagami.component';\n\n/** Content variant: `default` is the bare wordmark, `byline` adds the handcrafted-by line, `tagline` adds the tagline. */\nexport type EagamiWordmarkVariant = 'default' | 'byline' | 'tagline';\n/** Layout of the wordmark: `stacked` for multi-line, `inline` for a single line with em-dash separators. */\nexport type EagamiWordmarkLayout = 'stacked' | 'inline';\n\n/**\n * Branded eagami wordmark logo. `size` is the brand text's font-size in px\n * and the rest of the lockup scales proportionally from it; supports three\n * content variants paired with stacked or inline layouts.\n */\n@Component({\n  selector: 'ea-eagami-wordmark',\n  imports: [EagamiIconComponent, NgTemplateOutlet],\n  templateUrl: './eagami-wordmark.component.html',\n  styleUrl: './eagami-wordmark.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    // The wordmark is a fixed brand lockup; it never mirrors with UI direction\n    dir: 'ltr',\n    '[style.--_size]': 'resolvedSize()',\n  },\n})\nexport class EagamiWordmarkComponent {\n  protected readonly i18n = inject(EagamiI18nService);\n\n  /** Content variant. */\n  readonly variant = input<EagamiWordmarkVariant>('default');\n  readonly layout = input<EagamiWordmarkLayout>('stacked');\n  readonly size = input<number>(24);\n\n  /** Renders the wordmark as a link to eagami.com; disable to embed it inside a custom link or static context. */\n  readonly linked = input<boolean>(true);\n\n  /** Clamps size to a 10px floor and falls back to the default when cleared. */\n  protected readonly resolvedSize = computed<number>(() => {\n    const raw = this.size();\n    const value = typeof raw === 'number' ? raw : Number(raw);\n    if (!Number.isFinite(value) || value <= 0) {\n      return 24;\n    }\n    return Math.max(10, value);\n  });\n\n  protected readonly showOverline = computed(() => this.variant() === 'byline');\n\n  protected readonly showTagline = computed(() => this.variant() === 'tagline');\n\n  protected readonly brandText = computed(() => 'eagami');\n\n  // The brand name itself stays untranslated; only the descriptive overline\n  // and tagline localize.\n  protected readonly ariaLabel = computed(() => {\n    const messages = this.i18n.messages().wordmark;\n    switch (this.variant()) {\n      case 'default':\n        return 'eagami';\n      case 'byline':\n        return `${messages.overline} eagami`;\n      case 'tagline':\n        return `eagami — ${messages.tagline}`;\n    }\n  });\n}\n","@if (linked()) {\n  <a\n    class=\"ea-eagami-wordmark\"\n    [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n    [class.ea-eagami-wordmark--tagline]=\"showTagline()\"\n    href=\"https://eagami.com\"\n    target=\"_blank\"\n    rel=\"noopener\"\n    [attr.aria-label]=\"ariaLabel()\">\n    <ng-container [ngTemplateOutlet]=\"lockup\" />\n  </a>\n} @else {\n  <span\n    class=\"ea-eagami-wordmark\"\n    [class.ea-eagami-wordmark--inline]=\"layout() === 'inline'\"\n    [class.ea-eagami-wordmark--tagline]=\"showTagline()\">\n    <ng-container [ngTemplateOutlet]=\"lockup\" />\n  </span>\n}\n\n<ng-template #lockup>\n  <ea-icon-eagami\n    class=\"ea-eagami-wordmark__logo\"\n    aria-hidden=\"true\" />\n\n  <span class=\"ea-eagami-wordmark__text\">\n    @if (showOverline()) {\n      <span class=\"ea-eagami-wordmark__overline\">\n        {{ i18n.messages().wordmark.overline }}\n      </span>\n    }\n    <span class=\"ea-eagami-wordmark__brand\">{{ brandText() }}</span>\n    @if (showTagline()) {\n      @if (layout() === 'inline') {\n        <span\n          class=\"ea-eagami-wordmark__separator\"\n          aria-hidden=\"true\">\n          —\n        </span>\n      }\n      <span class=\"ea-eagami-wordmark__tagline\">\n        {{ i18n.messages().wordmark.tagline }}\n      </span>\n    }\n  </span>\n</ng-template>\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type Type,\n  computed,\n  input,\n} from '@angular/core';\n\nimport { type EaSize } from '../sizes';\n\n/** Visual size of the empty-state block. */\nexport type EmptyStateSize = EaSize;\n/** Heading level used for the title so it fits the surrounding document outline. */\nexport type EmptyStateHeadingLevel = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n/**\n * Pattern for \"no results\" or \"nothing here yet\" screens. Combines an\n * optional icon, title, and description with `[slot=media]` (custom\n * illustration) and `[slot=actions]` (follow-up buttons) content slots.\n */\n@Component({\n  selector: 'ea-empty-state',\n  templateUrl: './empty-state.component.html',\n  styleUrl: './empty-state.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgClass, NgComponentOutlet],\n})\nexport class EmptyStateComponent {\n  readonly title = input<string | undefined>(undefined);\n  readonly description = input<string | undefined>(undefined);\n  readonly size = input<EmptyStateSize>('md');\n  readonly headingLevel = input<EmptyStateHeadingLevel>('h2');\n  /** Optional icon component rendered in the media area above the title. */\n  readonly icon = input<Type<unknown> | undefined>(undefined);\n  /** Renders a dashed frame around the block. */\n  readonly bordered = input<boolean>(false);\n\n  readonly hostClasses = computed(() => ({\n    [`ea-empty-state--${this.size()}`]: true,\n    'ea-empty-state--bordered': this.bordered(),\n  }));\n}\n","<div\n  class=\"ea-empty-state\"\n  [ngClass]=\"hostClasses()\">\n  <div class=\"ea-empty-state__media\">\n    @if (icon(); as iconComponent) {\n      <ng-container *ngComponentOutlet=\"iconComponent\" />\n    }\n    <ng-content select=\"[slot=media]\" />\n  </div>\n\n  @if (title()) {\n    @switch (headingLevel()) {\n      @case ('h2') {\n        <h2 class=\"ea-empty-state__title\">{{ title() }}</h2>\n      }\n      @case ('h3') {\n        <h3 class=\"ea-empty-state__title\">{{ title() }}</h3>\n      }\n      @case ('h4') {\n        <h4 class=\"ea-empty-state__title\">{{ title() }}</h4>\n      }\n      @case ('h5') {\n        <h5 class=\"ea-empty-state__title\">{{ title() }}</h5>\n      }\n      @case ('h6') {\n        <h6 class=\"ea-empty-state__title\">{{ title() }}</h6>\n      }\n      @default {\n        <h2 class=\"ea-empty-state__title\">{{ title() }}</h2>\n      }\n    }\n  }\n\n  @if (description()) {\n    <p class=\"ea-empty-state__description\">{{ description() }}</p>\n  }\n\n  <div class=\"ea-empty-state__actions\">\n    <ng-content select=\"[slot=actions]\" />\n  </div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  type Type,\n  ViewEncapsulation,\n  afterNextRender,\n  computed,\n  contentChild,\n  effect,\n  inject,\n  input,\n  signal,\n} from '@angular/core';\nimport { type AbstractControl, NgControl } from '@angular/forms';\n\nimport {\n  type EaErrorMessages,\n  controlErrorStateFrom,\n} from '../forms/control-error-state';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\nimport { FieldLabelComponent } from './field-label.component';\nimport { FieldMessagesComponent } from './field-messages.component';\n\n/** Visual size of the field (label, control text, spacing, and messages). */\nexport type FormFieldSize = EaSize;\n\n/**\n * Wraps a projected native control (`input`, `select`, or `textarea`) in the\n * library's standard field chrome: a label with required marker, a hint, and\n * error messages, including localized validation errors auto-derived from a\n * bound reactive or template-driven control. The label's `for` and the\n * control's `aria-describedby`, `aria-invalid`, and `aria-required` are wired\n * automatically. The eagami form components render this chrome themselves; use\n * this wrapper so native or custom controls read as part of the same form.\n *\n * The label and aria wiring attach in the browser after render, since the\n * projected control can't be reached before it exists; the server ships the\n * plain markup and the associations complete on hydration.\n */\n@Component({\n  selector: 'ea-form-field',\n  templateUrl: './form-field.component.html',\n  styleUrl: './form-field.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  // None so the styles can reach the projected native control, which carries\n  // the consumer's scoping attribute rather than this component's\n  encapsulation: ViewEncapsulation.None,\n  imports: [FieldLabelComponent, FieldMessagesComponent],\n})\nexport class FormFieldComponent {\n  private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  /** Text label rendered above the control. */\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Helper text shown below the control; hidden while an error is showing. */\n  readonly hint = input<string | undefined>(undefined);\n  /** Error message shown below the control; replaces the hint and flags the field invalid. */\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for the projected form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Marks the field as required. */\n  readonly required = input<boolean>(false);\n  /** Visual size of the field; the label, control text, spacing, and messages scale with it. */\n  readonly size = input<FormFieldSize>('md');\n  /** id seed for the label and message wiring; auto-generated when omitted. */\n  readonly id = input<string>(uniqueId('ea-form-field'));\n\n  private readonly ngControl = contentChild(NgControl);\n  private readonly rendered = signal(false);\n  private readonly controlEl = signal<HTMLElement | null>(null);\n  // The consumer's own aria-describedby, captured before this component starts\n  // managing the attribute so external references survive message toggling\n  private baseDescribedBy: string | null = null;\n\n  protected readonly controlId = computed(() => this.controlEl()?.id);\n\n  private readonly boundControl = computed<AbstractControl | null>(() =>\n    this.rendered() ? (this.ngControl()?.control ?? null) : null,\n  );\n\n  private readonly errorState = controlErrorStateFrom(this.boundControl, {\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  protected readonly errorText = this.errorState.error;\n  protected readonly hasError = this.errorState.hasError;\n  protected readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  constructor() {\n    // Browser-only: the server render ships the plain markup and the label and\n    // aria wiring attach after hydration\n    afterNextRender(() => this.rendered.set(true));\n\n    effect(() => {\n      if (!this.rendered()) {\n        return;\n      }\n      // Re-locate the control when the projected form directive swaps\n      this.ngControl();\n      const el = this.host.nativeElement.querySelector<HTMLElement>(\n        'input, select, textarea',\n      );\n      if (el && el !== this.controlEl()) {\n        this.baseDescribedBy = el.getAttribute('aria-describedby');\n        if (!el.id) {\n          el.id = `${this.id()}-control`;\n        }\n      }\n      this.controlEl.set(el);\n    });\n\n    effect(() => {\n      const el = this.controlEl();\n      if (!el) {\n        return;\n      }\n      const message = this.hasError()\n        ? `${this.id()}-error`\n        : this.showHint()\n          ? `${this.id()}-hint`\n          : null;\n      const describedBy = [this.baseDescribedBy, message].filter(Boolean).join(' ');\n      if (describedBy) {\n        el.setAttribute('aria-describedby', describedBy);\n      } else {\n        el.removeAttribute('aria-describedby');\n      }\n      if (this.hasError()) {\n        el.setAttribute('aria-invalid', 'true');\n      } else {\n        el.removeAttribute('aria-invalid');\n      }\n      // aria-required rather than the native attribute: the projected control\n      // may already carry reactive-forms validators, so only the state is\n      // conveyed, without altering native constraint validation\n      if (this.required()) {\n        el.setAttribute('aria-required', 'true');\n      } else {\n        el.removeAttribute('aria-required');\n      }\n    });\n  }\n}\n","<div class=\"ea-form-field ea-form-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"controlId()\"\n      [required]=\"required()\" />\n  }\n\n  <ng-content />\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-archive',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"21 8 21 21 3 21 3 8\" />\n      <rect\n        x=\"1\"\n        y=\"3\"\n        width=\"22\"\n        height=\"5\" />\n      <line\n        x1=\"10\"\n        y1=\"12\"\n        x2=\"14\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class ArchiveIconComponent extends IconComponentBase {\n  static readonly slug = 'archive';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'archive',\n    'storage',\n    'box',\n    'save',\n    'backup',\n    'archiver',\n    'archivar',\n    'almacenar',\n    'αρχείο',\n    'αρχειοθέτηση',\n    'archiwum',\n    'archiwizuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-text',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n      <polyline points=\"14 2 14 8 20 8\" />\n      <line\n        x1=\"16\"\n        y1=\"13\"\n        x2=\"8\"\n        y2=\"13\" />\n      <line\n        x1=\"16\"\n        y1=\"17\"\n        x2=\"8\"\n        y2=\"17\" />\n      <polyline points=\"10 9 9 9 8 9\" />\n    </svg>\n  `,\n})\nexport class FileTextIconComponent extends IconComponentBase {\n  static readonly slug = 'file-text';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'file-text',\n    'file',\n    'text',\n    'document',\n    'page',\n    'fichier',\n    'texte',\n    'archivo',\n    'texto',\n    'αρχείο',\n    'κείμενο',\n    'plik',\n    'tekst',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" />\n      <polyline points=\"13 2 13 9 20 9\" />\n    </svg>\n  `,\n})\nexport class FileIconComponent extends IconComponentBase {\n  static readonly slug = 'file';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'file',\n    'document',\n    'paper',\n    'page',\n    'fichier',\n    'document',\n    'archivo',\n    'documento',\n    'αρχείο',\n    'έγγραφο',\n    'plik',\n    'dokument',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-film',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"20\"\n        height=\"20\"\n        rx=\"2.18\"\n        ry=\"2.18\" />\n      <line\n        x1=\"7\"\n        y1=\"2\"\n        x2=\"7\"\n        y2=\"22\" />\n      <line\n        x1=\"17\"\n        y1=\"2\"\n        x2=\"17\"\n        y2=\"22\" />\n      <line\n        x1=\"2\"\n        y1=\"12\"\n        x2=\"22\"\n        y2=\"12\" />\n      <line\n        x1=\"2\"\n        y1=\"7\"\n        x2=\"7\"\n        y2=\"7\" />\n      <line\n        x1=\"2\"\n        y1=\"17\"\n        x2=\"7\"\n        y2=\"17\" />\n      <line\n        x1=\"17\"\n        y1=\"17\"\n        x2=\"22\"\n        y2=\"17\" />\n      <line\n        x1=\"17\"\n        y1=\"7\"\n        x2=\"22\"\n        y2=\"7\" />\n    </svg>\n  `,\n})\nexport class FilmIconComponent extends IconComponentBase {\n  static readonly slug = 'film';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'film',\n    'movie',\n    'video',\n    'cinema',\n    'reel',\n    'película',\n    'cine',\n    'ταινία',\n    'σινεμά',\n    'kino',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-image',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <circle\n        cx=\"8.5\"\n        cy=\"8.5\"\n        r=\"1.5\" />\n      <polyline points=\"21 15 16 10 5 21\" />\n    </svg>\n  `,\n})\nexport class ImageIconComponent extends IconComponentBase {\n  static readonly slug = 'image';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'image',\n    'picture',\n    'photo',\n    'gallery',\n    'visual',\n    'photo',\n    'imagen',\n    'foto',\n    'εικόνα',\n    'φωτογραφία',\n    'obraz',\n    'zdjęcie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-music',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M9 18V5l12-2v13\" />\n      <circle\n        cx=\"6\"\n        cy=\"18\"\n        r=\"3\" />\n      <circle\n        cx=\"18\"\n        cy=\"16\"\n        r=\"3\" />\n    </svg>\n  `,\n})\nexport class MusicIconComponent extends IconComponentBase {\n  static readonly slug = 'music';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'music',\n    'note',\n    'audio',\n    'song',\n    'sound',\n    'musique',\n    'música',\n    'canción',\n    'μουσική',\n    'τραγούδι',\n    'muzyka',\n    'piosenka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-upload-cloud',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"16 16 12 12 8 16\" />\n      <line\n        x1=\"12\"\n        y1=\"12\"\n        x2=\"12\"\n        y2=\"21\" />\n      <path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\" />\n      <polyline points=\"16 16 12 12 8 16\" />\n    </svg>\n  `,\n})\nexport class UploadCloudIconComponent extends IconComponentBase {\n  static readonly slug = 'upload-cloud';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'upload-cloud',\n    'upload',\n    'cloud',\n    'send',\n    'sync',\n    'backup',\n    'téléverser',\n    'nuage',\n    'subir',\n    'nube',\n    'μεταφόρτωση',\n    'σύννεφο',\n    'prześlij',\n    'chmura',\n  ];\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ArchiveIconComponent } from '../icons/archive.component';\nimport { FileTextIconComponent } from '../icons/file-text.component';\nimport { FileIconComponent } from '../icons/file.component';\nimport { FilmIconComponent } from '../icons/film.component';\nimport { ImageIconComponent } from '../icons/image.component';\nimport { MusicIconComponent } from '../icons/music.component';\nimport { UploadCloudIconComponent } from '../icons/upload-cloud.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the file uploader. */\nexport type FileUploaderSize = EaSize;\n\n/** Reason a file was rejected during selection. */\nexport type FileUploaderRejectionReason = 'type' | 'size' | 'count';\n\n/** Detail object emitted on the `rejected` output when one or more files fail validation. */\nexport interface FileUploaderRejection {\n  readonly file: File;\n  readonly reason: FileUploaderRejectionReason;\n}\n\n/**\n * Multi-file uploader with a drag-and-drop zone and a per-file list. Pure UI:\n * the component manages selection, validation, and removal but does not perform\n * any network I/O; consumers are responsible for uploading the resulting\n * `File[]` and (optionally) feeding progress back via the `progress` map.\n *\n * The dropzone icon (default `<ea-icon-upload-cloud>`) is exposed as a content\n * slot via the `icon` attribute: project any element to override it, and the\n * dropzone's size-aware wrapper handles sizing automatically.\n *\n * @example\n * ```html\n * <ea-file-uploader label=\"Attach files\">\n *   <ea-icon-paperclip icon />\n * </ea-file-uploader>\n * ```\n */\n@Component({\n  selector: 'ea-file-uploader',\n  templateUrl: './file-uploader.component.html',\n  styleUrl: './file-uploader.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    ArchiveIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    FileIconComponent,\n    FileTextIconComponent,\n    FilmIconComponent,\n    ImageIconComponent,\n    MusicIconComponent,\n    NgClass,\n    UploadCloudIconComponent,\n    XIconComponent,\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => FileUploaderComponent),\n      multi: true,\n    },\n  ],\n})\nexport class FileUploaderComponent implements ControlValueAccessor {\n  private readonly fileInputEl = viewChild<ElementRef<HTMLInputElement>>('fileInputEl');\n  private readonly dropzoneEl = viewChild<ElementRef<HTMLButtonElement>>('dropzoneEl');\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly size = input<FileUploaderSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  /**\n   * Whether a selection adds to the current files or replaces them. Defaults\n   * to `true`: picking a second file appends it rather than swapping it in, so\n   * a single-file field has to set this to `false` explicitly.\n   */\n  readonly multiple = input<boolean>(true);\n  /** Comma-separated MIME types and / or file extensions, e.g. `'image/*,.pdf'`. */\n  readonly accept = input<string | undefined>(undefined);\n  /** Max size per file in bytes. Files larger than this are rejected. */\n  readonly maxSize = input<number | undefined>(undefined);\n  /** Max total number of files. Extra files are rejected. */\n  readonly maxFiles = input<number | undefined>(undefined);\n  /** Toggle the file list under the dropzone. */\n  readonly showFileList = input<boolean>(true);\n  /**\n   * Optional per-file progress (0-100). Keyed by `File` object identity, so\n   * consumers must keep the same `File` references between change-detection\n   * runs. When unset, no progress bar is rendered.\n   */\n  readonly progress = input<ReadonlyMap<File, number> | undefined>(undefined);\n  readonly id = input<string>(uniqueId('ea-file-uploader'));\n\n  /** Two-way binding to the current `File[]`. Also written by Angular forms. */\n  readonly value = model<readonly File[]>([]);\n\n  /** Fires when one or more selected files fail validation. */\n  readonly rejected = output<readonly FileUploaderRejection[]>();\n  /** Fires whenever a file is removed via its row's X button. */\n  readonly fileRemoved = output<File>();\n  /**\n   * Fires when a drag enters or leaves the dropzone. The component consumes\n   * the drag events it handles, so a wrapper tracking its own drag styling\n   * reads the state from here rather than from the DOM.\n   */\n  readonly dragOverChanged = output<boolean>();\n\n  protected readonly isDragOver = signal(false);\n  protected readonly isFocused = signal(false);\n  private readonly _formDisabled = signal(false);\n\n  private onChange: (value: readonly File[]) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  protected readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  protected readonly errorText = this.errorState.error;\n  protected readonly hasError = this.errorState.hasError;\n  protected readonly showError = this.hasError;\n  protected readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  protected readonly hostClasses = computed(() => ({\n    [`ea-file-uploader-field--${this.size()}`]: true,\n    'ea-file-uploader-field--error': this.hasError(),\n    'ea-file-uploader-field--disabled': this.isDisabled(),\n    'ea-file-uploader-field--drag-over': this.isDragOver(),\n    'ea-file-uploader-field--focused': this.isFocused(),\n  }));\n\n  protected readonly errorId = computed(() => `${this.id()}-error`);\n  protected readonly hintId = computed(() => `${this.id()}-hint`);\n  protected readonly constraintsId = computed(() => `${this.id()}-constraints`);\n\n  protected readonly describedBy = computed(() => {\n    const ids: string[] = [];\n    if (this.showError()) {\n      ids.push(this.errorId());\n    }\n    if (this.showHint()) {\n      ids.push(this.hintId());\n    }\n    if (this.constraintsText()) {\n      ids.push(this.constraintsId());\n    }\n    return ids.length ? ids.join(' ') : null;\n  });\n\n  /** Joined human-readable description of accept / maxSize / maxFiles limits. */\n  protected readonly constraintsText = computed(() => {\n    const messages = this.i18n.messages().fileUploader;\n    const parts: string[] = [];\n    const accept = this.accept();\n    const maxSize = this.maxSize();\n    const maxFiles = this.maxFiles();\n    if (accept) {\n      parts.push(messages.constraintsAccept(accept));\n    }\n    if (maxSize !== undefined) {\n      parts.push(messages.constraintsMaxSize(this.formatBytes(maxSize)));\n    }\n    if (maxFiles !== undefined && this.multiple()) {\n      parts.push(messages.constraintsMaxFiles(maxFiles));\n    }\n    return parts.join(' • ');\n  });\n\n  protected readonly promptText = computed(() =>\n    this.multiple()\n      ? this.i18n.messages().fileUploader.prompt\n      : this.i18n.messages().fileUploader.promptSingle,\n  );\n\n  writeValue(value: readonly File[] | null | undefined): void {\n    this.value.set(value ?? []);\n  }\n\n  registerOnChange(fn: (value: readonly File[]) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  protected openFilePicker(): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    this.fileInputEl()?.nativeElement.click();\n  }\n\n  protected onDropzoneKeydown(event: KeyboardEvent): void {\n    if (event.key === 'Enter' || event.key === ' ') {\n      event.preventDefault();\n      this.openFilePicker();\n    }\n  }\n\n  protected onDropzoneFocus(): void {\n    this.isFocused.set(true);\n  }\n\n  protected onDropzoneBlur(): void {\n    this.isFocused.set(false);\n    this.onTouched();\n  }\n\n  protected onFileSelected(event: Event): void {\n    const inputEl = event.target as HTMLInputElement;\n    const files = inputEl.files ? Array.from(inputEl.files) : [];\n    if (files.length) {\n      this.acceptFiles(files);\n    }\n    // Reset so re-picking the same file re-triggers the input\n    inputEl.value = '';\n  }\n\n  // Handled alongside dragover so the pair a wrapper listens for stays\n  // balanced: consuming dragenter without it would strand the wrapper's own\n  // drag state, since it never sees the matching dragleave or drop\n  protected onDragEnter(event: DragEvent): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    event.preventDefault();\n    event.stopPropagation();\n    this.setDragOver(true);\n  }\n\n  protected onDragOver(event: DragEvent): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    event.preventDefault();\n    event.stopPropagation();\n    this.setDragOver(true);\n  }\n\n  protected onDragLeave(event: DragEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.setDragOver(false);\n  }\n\n  protected onDrop(event: DragEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.setDragOver(false);\n    if (this.isDisabled()) {\n      return;\n    }\n    const files = event.dataTransfer?.files ? Array.from(event.dataTransfer.files) : [];\n    if (files.length) {\n      this.acceptFiles(files);\n    }\n  }\n\n  private setDragOver(next: boolean): void {\n    if (this.isDragOver() === next) {\n      return;\n    }\n    this.isDragOver.set(next);\n    this.dragOverChanged.emit(next);\n  }\n\n  protected removeFile(file: File): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    const next = this.value().filter(f => f !== file);\n    this.value.set(next);\n    this.onChange(next);\n    this.fileRemoved.emit(file);\n    this.dropzoneEl()?.nativeElement.focus();\n  }\n\n  private acceptFiles(incoming: readonly File[]): void {\n    const accepted: File[] = [];\n    const rejections: FileUploaderRejection[] = [];\n\n    const accept = this.accept();\n    const maxSize = this.maxSize();\n    const maxFiles = this.maxFiles();\n    const multiple = this.multiple();\n\n    const current = multiple ? [...this.value()] : [];\n    const headroom = maxFiles !== undefined ? maxFiles - current.length : Infinity;\n\n    for (const file of incoming) {\n      if (accept && !matchesAccept(file, accept)) {\n        rejections.push({ file, reason: 'type' });\n        continue;\n      }\n      if (maxSize !== undefined && file.size > maxSize) {\n        rejections.push({ file, reason: 'size' });\n        continue;\n      }\n      if (accepted.length >= headroom) {\n        rejections.push({ file, reason: 'count' });\n        continue;\n      }\n      accepted.push(file);\n      if (!multiple) {\n        break;\n      }\n    }\n\n    if (accepted.length) {\n      const next = multiple ? [...current, ...accepted] : accepted.slice(0, 1);\n      this.value.set(next);\n      this.onChange(next);\n    }\n    if (rejections.length) {\n      this.rejected.emit(rejections);\n    }\n  }\n\n  protected formatBytes(bytes: number): string {\n    const units = this.i18n.messages().fileUploader.bytesUnit;\n    if (bytes < 1024) {\n      return `${bytes} ${units.b}`;\n    }\n    const kb = bytes / 1024;\n    if (kb < 1024) {\n      return `${roundTo(kb, 1)} ${units.kb}`;\n    }\n    const mb = kb / 1024;\n    if (mb < 1024) {\n      return `${roundTo(mb, 1)} ${units.mb}`;\n    }\n    const gb = mb / 1024;\n    if (gb < 1024) {\n      return `${roundTo(gb, 2)} ${units.gb}`;\n    }\n    const tb = gb / 1024;\n    return `${roundTo(tb, 2)} ${units.tb}`;\n  }\n\n  protected iconKey(\n    file: File,\n  ): 'image' | 'film' | 'music' | 'archive' | 'text' | 'file' {\n    return iconForFile(file);\n  }\n\n  protected progressFor(file: File): number | undefined {\n    return this.progress()?.get(file);\n  }\n\n  /** Stable track key for the `@for` over `value()`. */\n  protected trackFile(_index: number, file: File): string {\n    return `${file.name}|${file.size}|${file.lastModified}`;\n  }\n}\n\nconst ARCHIVE_MIMES = new Set([\n  'application/zip',\n  'application/x-zip-compressed',\n  'application/x-tar',\n  'application/x-7z-compressed',\n  'application/x-rar-compressed',\n  'application/x-rar',\n  'application/gzip',\n  'application/x-gzip',\n]);\n\nconst ARCHIVE_EXTS = new Set(['zip', 'tar', '7z', 'rar', 'gz', 'tgz', 'bz2']);\n\nfunction iconForFile(\n  file: File,\n): 'image' | 'film' | 'music' | 'archive' | 'text' | 'file' {\n  const type = file.type;\n  if (type.startsWith('image/')) {\n    return 'image';\n  }\n  if (type.startsWith('video/')) {\n    return 'film';\n  }\n  if (type.startsWith('audio/')) {\n    return 'music';\n  }\n  if (ARCHIVE_MIMES.has(type)) {\n    return 'archive';\n  }\n  if (type === 'application/pdf' || type.startsWith('text/')) {\n    return 'text';\n  }\n  const ext = file.name.split('.').pop()?.toLowerCase();\n  if (ext && ARCHIVE_EXTS.has(ext)) {\n    return 'archive';\n  }\n  return 'file';\n}\n\n/**\n * Returns true if the file matches the `accept` attribute syntax: a\n * comma-separated list of MIME ranges (`image/*`), full MIMEs (`image/png`),\n * or extensions (`.pdf`).\n */\nfunction matchesAccept(file: File, accept: string): boolean {\n  const tokens = accept\n    .split(',')\n    .map(t => t.trim().toLowerCase())\n    .filter(Boolean);\n  if (tokens.length === 0) {\n    return true;\n  }\n\n  const type = file.type.toLowerCase();\n  const name = file.name.toLowerCase();\n\n  return tokens.some(token => {\n    if (token.startsWith('.')) {\n      return name.endsWith(token);\n    }\n    if (token.endsWith('/*')) {\n      return type.startsWith(token.slice(0, -1));\n    }\n    return type === token;\n  });\n}\n\nfunction roundTo(value: number, digits: number): string {\n  const factor = 10 ** digits;\n  return (Math.round(value * factor) / factor).toString();\n}\n","<div\n  class=\"ea-file-uploader-field\"\n  [ngClass]=\"hostClasses()\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [required]=\"required()\" />\n  }\n\n  <input\n    #fileInputEl\n    type=\"file\"\n    class=\"ea-file-uploader-field__file-input\"\n    [id]=\"id()\"\n    [multiple]=\"multiple()\"\n    [attr.accept]=\"accept() ?? null\"\n    [disabled]=\"isDisabled()\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    (change)=\"onFileSelected($event)\" />\n\n  <button\n    #dropzoneEl\n    type=\"button\"\n    class=\"ea-file-uploader-field__dropzone\"\n    [attr.aria-describedby]=\"describedBy()\"\n    [attr.aria-label]=\"label() ?? promptText()\"\n    [attr.aria-required]=\"required() || null\"\n    [disabled]=\"isDisabled()\"\n    (click)=\"openFilePicker()\"\n    (keydown)=\"onDropzoneKeydown($event)\"\n    (focus)=\"onDropzoneFocus()\"\n    (blur)=\"onDropzoneBlur()\"\n    (dragenter)=\"onDragEnter($event)\"\n    (dragover)=\"onDragOver($event)\"\n    (dragleave)=\"onDragLeave($event)\"\n    (drop)=\"onDrop($event)\">\n    <span\n      class=\"ea-file-uploader-field__upload-icon\"\n      aria-hidden=\"true\">\n      <ng-content select=\"[icon]\">\n        <ea-icon-upload-cloud />\n      </ng-content>\n    </span>\n    <span class=\"ea-file-uploader-field__prompt\">{{ promptText() }}</span>\n    @if (constraintsText(); as c) {\n      <span\n        class=\"ea-file-uploader-field__constraints\"\n        [id]=\"constraintsId()\">\n        {{ c }}\n      </span>\n    }\n  </button>\n\n  @if (showFileList() && value().length) {\n    <ul\n      class=\"ea-file-uploader-field__list\"\n      aria-live=\"polite\"\n      aria-relevant=\"additions removals\"\n      [attr.aria-label]=\"i18n.messages().fileUploader.fileListLabel\">\n      @for (file of value(); track trackFile($index, file)) {\n        <li class=\"ea-file-uploader-field__item\">\n          <span\n            class=\"ea-file-uploader-field__type-icon\"\n            aria-hidden=\"true\">\n            @switch (iconKey(file)) {\n              @case ('image') {\n                <ea-icon-image />\n              }\n              @case ('film') {\n                <ea-icon-film />\n              }\n              @case ('music') {\n                <ea-icon-music />\n              }\n              @case ('archive') {\n                <ea-icon-archive />\n              }\n              @case ('text') {\n                <ea-icon-file-text />\n              }\n              @default {\n                <ea-icon-file />\n              }\n            }\n          </span>\n          <div class=\"ea-file-uploader-field__meta\">\n            <span\n              class=\"ea-file-uploader-field__name\"\n              [id]=\"id() + '-file-' + $index\"\n              [title]=\"file.name\">\n              <bdi>{{ file.name }}</bdi>\n            </span>\n            <span class=\"ea-file-uploader-field__size\">\n              <bdi>{{ formatBytes(file.size) }}</bdi>\n            </span>\n            @if (progressFor(file); as p) {\n              <div\n                class=\"ea-file-uploader-field__progress\"\n                role=\"progressbar\"\n                [attr.aria-labelledby]=\"id() + '-file-' + $index\"\n                [attr.aria-valuenow]=\"p\"\n                aria-valuemin=\"0\"\n                aria-valuemax=\"100\">\n                <div\n                  class=\"ea-file-uploader-field__progress-bar\"\n                  [style.width.%]=\"p\">\n                </div>\n              </div>\n            }\n          </div>\n          <button\n            type=\"button\"\n            class=\"ea-file-uploader-field__remove\"\n            [attr.aria-label]=\"i18n.messages().fileUploader.removeFile(file.name)\"\n            [disabled]=\"isDisabled()\"\n            (click)=\"removeFile(file)\">\n            <ea-icon-x />\n          </button>\n        </li>\n      }\n    </ul>\n  }\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  HostListener,\n  Injector,\n  afterNextRender,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { PopoverComponent } from '../popover/popover.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Placement of the menu list relative to its trigger. */\nexport type MenuPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';\n\n/** Visual size of the menu, shared by all of its items. */\nexport type MenuSize = EaSize;\n\n/**\n * Popup action menu attached to any focusable element via the\n * `[eaMenuTrigger]` directive. Supports keyboard navigation\n * (arrow keys, Home/End), closes on outside click or Escape, and restores\n * focus to the trigger on close. Positioning, dismissal, and SSR-safe scroll\n * handling are provided by `<ea-popover>`.\n */\n@Component({\n  selector: 'ea-menu',\n  imports: [PopoverComponent],\n  templateUrl: './menu.component.html',\n  styleUrl: './menu.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuComponent {\n  private readonly injector = inject(Injector);\n  private readonly i18n = inject(EagamiI18nService);\n  private readonly listEl = viewChild<ElementRef<HTMLElement>>('listEl');\n\n  readonly placement = input<MenuPlacement>('bottom-start');\n  /** Visual size of the menu; every item inherits it. */\n  readonly size = input<MenuSize>('md');\n  /** Max height of the scrollable list as a CSS length; tall menus scroll past it. */\n  readonly maxHeight = input<string>('20rem');\n  readonly disabled = input<boolean>(false);\n  readonly ariaLabel = input<string | undefined>(undefined, {\n    alias: 'aria-label',\n  });\n  readonly id = input<string>(uniqueId('ea-menu'));\n\n  /** Accessible label for the menu, falling back to the active locale. */\n  readonly resolvedAriaLabel = computed(\n    () => this.ariaLabel() ?? this.i18n.messages().menu.label,\n  );\n\n  readonly open = model<boolean>(false);\n  /** Fires when the menu opens. */\n  readonly opened = output<void>();\n  /** Fires when the menu closes. */\n  readonly closed = output<void>();\n\n  /** Trigger element currently anchoring the menu. Signal-typed so `<ea-popover>` reacts when it changes. */\n  protected readonly triggerEl = signal<HTMLElement | undefined>(undefined);\n\n  // Read by each item's [attr.tabindex] binding so the roving state survives re-renders\n  readonly activeItemId = signal<string | null>(null);\n\n  constructor() {\n    // Consumers can open via the [(open)] model without openAt(), so the roving\n    // tab stop must be assigned whenever the menu opens, not only on openAt()\n    effect(() => {\n      if (!this.open()) {\n        this.activeItemId.set(null);\n        return;\n      }\n      afterNextRender(\n        () => {\n          if (this.open() && !this.activeItemId()) {\n            const first = this.getEnabledItems()[0];\n            if (first) {\n              this.activeItemId.set(first.id);\n            }\n          }\n        },\n        { injector: this.injector },\n      );\n    });\n  }\n\n  /** Toggles the menu open state, anchoring it to the given trigger element. */\n  toggleAt(triggerEl: HTMLElement): void {\n    if (this.disabled()) {\n      return;\n    }\n    if (this.open()) {\n      this.close();\n    } else {\n      this.openAt(triggerEl);\n    }\n  }\n\n  /** Opens the menu anchored to the given trigger element and focuses the first item. */\n  openAt(triggerEl: HTMLElement): void {\n    if (this.disabled()) {\n      return;\n    }\n    this.triggerEl.set(triggerEl);\n    this.open.set(true);\n    this.opened.emit();\n    afterNextRender(() => this.focusFirstItem(), { injector: this.injector });\n  }\n\n  /**\n   * Closes the menu if it is open. Pass `restoreFocus: true` to return focus\n   * to the trigger element (used when closing via Escape or item activation;\n   * not used on outside click, where the user has chosen a new focus target).\n   */\n  close(restoreFocus = false): void {\n    if (!this.open()) {\n      return;\n    }\n    this.open.set(false);\n    this.closed.emit();\n    if (restoreFocus) {\n      this.triggerEl()?.focus({ preventScroll: true });\n    }\n  }\n\n  /** Called by `<ea-popover>` when the user clicks outside the menu. */\n  onPopoverCloseRequested(): void {\n    this.close();\n  }\n\n  private getEnabledItems(): HTMLButtonElement[] {\n    const list = this.listEl()?.nativeElement;\n    if (!list) {\n      return [];\n    }\n    return Array.from(\n      list.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]:not([disabled])'),\n    );\n  }\n\n  /**\n   * `preventScroll: true` is critical here. The menu list is `position: fixed`\n   * but its DOM ancestor is whatever element hosts the menu (often a sticky\n   * header). When `.focus()` is called without `preventScroll`, Chromium uses\n   * the focused element's DOM-tree position (inside the sticky ancestor) rather\n   * than its rendered fixed position to decide whether to scroll, which on a\n   * scrolled page nudges the document up by a few pixels per open, until the\n   * trigger reaches the top edge. The same guard applies to keyboard navigation\n   * and restoring focus on close.\n   */\n  private focusFirstItem(): void {\n    this.focusItem(this.getEnabledItems()[0]);\n  }\n\n  private focusItem(item: HTMLButtonElement | undefined): void {\n    if (!item) {\n      return;\n    }\n    this.activeItemId.set(item.id);\n    item.focus({ preventScroll: true });\n  }\n\n  @HostListener('document:keydown', ['$event'])\n  onKeydown(event: KeyboardEvent): void {\n    if (!this.open()) {\n      return;\n    }\n    const list = this.listEl()?.nativeElement;\n    const active = document.activeElement as HTMLElement | null;\n    if (!list || !active || !list.contains(active)) {\n      return;\n    }\n    const items = this.getEnabledItems();\n    if (items.length === 0) {\n      return;\n    }\n\n    const current = items.indexOf(active as HTMLButtonElement);\n    let next = -1;\n\n    switch (event.key) {\n      case 'ArrowDown':\n        event.preventDefault();\n        next = current < items.length - 1 ? current + 1 : 0;\n        break;\n      case 'ArrowUp':\n        event.preventDefault();\n        next = current > 0 ? current - 1 : items.length - 1;\n        break;\n      case 'Home':\n        event.preventDefault();\n        next = 0;\n        break;\n      case 'End':\n        event.preventDefault();\n        next = items.length - 1;\n        break;\n    }\n\n    if (next >= 0) {\n      this.focusItem(items[next]);\n    }\n  }\n\n  @HostListener('document:keydown.escape', ['$event'])\n  onEscape(event: Event): void {\n    if (!this.open()) {\n      return;\n    }\n    // Consume the key, or a native modal hosting this menu reads the same\n    // Escape as its own close request and both shut at once\n    event.preventDefault();\n    this.close(true);\n  }\n}\n","<ea-popover\n  [anchor]=\"triggerEl()\"\n  [open]=\"open()\"\n  [placement]=\"placement()\"\n  role=\"menu\"\n  [surfaceId]=\"id()\"\n  [aria-label]=\"resolvedAriaLabel()\"\n  [closeOnEscape]=\"false\"\n  scrollBehavior=\"reposition\"\n  (closeRequested)=\"onPopoverCloseRequested()\">\n  <div\n    #listEl\n    class=\"ea-menu__list ea-menu__list--{{ size() }}\"\n    [style.max-height]=\"maxHeight()\">\n    <ng-content />\n  </div>\n</ea-popover>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n  output,\n} from '@angular/core';\n\nimport { uniqueId } from '../unique-id';\nimport { MenuComponent } from './menu.component';\n\n/** Visual style of a menu item; `danger` for destructive actions. */\nexport type MenuItemVariant = 'default' | 'danger';\n\n/**\n * Selectable row inside an `ea-menu`. Supports leading icons via the `icon`\n * content slot, a disabled state, and a `danger` variant for destructive\n * actions. Inherits its size from the parent menu, and activating an item\n * closes that menu.\n */\n@Component({\n  selector: 'ea-menu-item',\n  templateUrl: './menu-item.component.html',\n  styleUrl: './menu-item.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MenuItemComponent {\n  private readonly menu = inject(MenuComponent, { optional: true });\n\n  protected readonly itemId = uniqueId('ea-menu-item');\n  protected readonly tabIndex = computed(() =>\n    this.menu?.activeItemId() === this.itemId ? 0 : -1,\n  );\n\n  readonly disabled = input<boolean>(false);\n  readonly variant = input<MenuItemVariant>('default');\n\n  /** Fires when the item is activated; the parent menu closes immediately afterwards. */\n  readonly clicked = output<MouseEvent>();\n\n  handleClick(event: MouseEvent): void {\n    if (this.disabled()) {\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    this.clicked.emit(event);\n    this.menu?.close(true);\n  }\n}\n","<button\n  type=\"button\"\n  class=\"ea-menu-item\"\n  role=\"menuitem\"\n  [id]=\"itemId\"\n  [attr.tabindex]=\"tabIndex()\"\n  [class.ea-menu-item--disabled]=\"disabled()\"\n  [class.ea-menu-item--danger]=\"variant() === 'danger'\"\n  [disabled]=\"disabled()\"\n  (click)=\"handleClick($event)\">\n  <span class=\"ea-menu-item__icon\">\n    <ng-content select=\"[slot=icon]\" />\n  </span>\n  <span class=\"ea-menu-item__label\">\n    <ng-content />\n  </span>\n</button>\n","import { Directive, ElementRef, Renderer2, effect, inject, input } from '@angular/core';\n\nimport { resolveAriaTarget } from '../aria-target';\nimport type { MenuComponent } from './menu.component';\n\n/**\n * Wires a focusable host element (typically a button) to an `ea-menu`,\n * handling click and keyboard activation (ArrowDown/Enter/Space to open,\n * Escape to close) and applying the appropriate ARIA attributes.\n */\n@Directive({\n  selector: '[eaMenuTrigger]',\n  host: {\n    '(click)': 'handleClick()',\n    '(keydown)': 'handleKeydown($event)',\n  },\n})\nexport class MenuTriggerDirective {\n  private readonly el = inject(ElementRef<HTMLElement>);\n  private readonly renderer = inject(Renderer2);\n\n  readonly menu = input.required<MenuComponent>({ alias: 'eaMenuTrigger' });\n\n  constructor() {\n    effect(() => {\n      const menu = this.menu();\n      const open = menu?.open() ?? false;\n      const controls = menu?.id() ?? null;\n      const target = resolveAriaTarget(this.el.nativeElement);\n\n      this.renderer.setAttribute(target, 'aria-haspopup', 'menu');\n      this.renderer.setAttribute(target, 'aria-expanded', String(open));\n      if (controls) {\n        this.renderer.setAttribute(target, 'aria-controls', controls);\n      } else {\n        this.renderer.removeAttribute(target, 'aria-controls');\n      }\n    });\n  }\n\n  handleClick(): void {\n    const m = this.menu();\n    if (m.disabled()) {\n      return;\n    }\n    m.toggleAt(this.el.nativeElement);\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    const m = this.menu();\n    if (m.disabled()) {\n      return;\n    }\n\n    if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n      event.preventDefault();\n      if (!m.open()) {\n        m.openAt(this.el.nativeElement);\n      }\n    } else if (event.key === 'Escape' && m.open()) {\n      event.preventDefault();\n      m.close();\n    }\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  type ElementRef,\n  ViewEncapsulation,\n  afterNextRender,\n  computed,\n  inject,\n  input,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { XIconComponent } from '../icons/x.component';\nimport { readableInk } from '../palette/contrast';\nimport { type EaSize } from '../sizes';\nimport { TooltipDirective, type TooltipPosition } from '../tooltip/tooltip.directive';\nimport { isTruncated } from '../truncation';\n\n/** Semantic colour scheme of a tag. */\nexport type TagVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n/** Visual size of a tag. */\nexport type TagSize = EaSize;\n/** Where a clipped label reveals its full text, or `none` to suppress it. */\nexport type TagTooltip = 'above' | 'below' | 'none';\n\n/**\n * Inline label commonly used to represent filters, categories, or selected\n * items. When `removable`, renders a close button that emits `removed`; the\n * accessible name of that button is configurable via `removeLabel` and\n * otherwise falls back to the active locale's translation.\n *\n * When capped by `maxWidth` (or the `--ea-tag-max-width` custom property),\n * the projected label ellipsizes rather than widening the chip, revealing its\n * full text in a tooltip while it is clipped.\n */\n@Component({\n  selector: 'ea-tag',\n  imports: [NgClass, TooltipDirective, XIconComponent],\n  templateUrl: './tag.component.html',\n  styleUrl: './tag.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class TagComponent {\n  private readonly i18n = inject(EagamiI18nService);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly labelEl = viewChild<ElementRef<HTMLElement>>('labelEl');\n\n  readonly variant = input<TagVariant>('default');\n  readonly size = input<TagSize>('md');\n  readonly removable = input<boolean>(false);\n  readonly disabled = input<boolean>(false);\n  readonly removeLabel = input<string | undefined>(undefined);\n  /**\n   * Widest the chip may grow: a number of px, or any CSS length for a chip that\n   * has to give way to its container (`'100%'` in a responsive grid cell).\n   * Also settable in CSS as `--ea-tag-max-width`, which this input overrides.\n   */\n  readonly maxWidth = input<number | string | undefined>(undefined);\n  /**\n   * Fill colour as a hex value, for a tag carrying a colour of its own (a\n   * user-chosen label). Paints the chip and its border, and picks whichever ink\n   * reads better on it. Takes precedence over `variant`.\n   */\n  readonly color = input<string | undefined>(undefined);\n  /**\n   * Where a label clipped by `maxWidth` reveals its full text. Set `none` for\n   * a tag rendered inside a tooltip, which would otherwise stack a second\n   * bubble over the first.\n   */\n  readonly tooltip = input<TagTooltip>('above');\n  /**\n   * Whether the remove button is a tab stop. Set `false` inside a composite\n   * widget (a combobox trigger, a grid cell) whose own keyboard model owns\n   * navigation, since roles like `combobox` forbid focusable descendants.\n   */\n  readonly removeTabbable = input<boolean>(true);\n  readonly uppercase = input<boolean>(false);\n\n  /** Fires when the user activates the remove button on a `removable` tag. */\n  readonly removed = output<void>();\n\n  /** Full label text, held only while the rendered label is clipped. */\n  private readonly clippedText = signal('');\n\n  /** Accessible label for the remove button, falling back to the active locale. */\n  readonly resolvedRemoveLabel = computed(\n    () => this.removeLabel() ?? this.i18n.messages().tag.remove,\n  );\n\n  /** Tooltip text for the label; empty suppresses the bubble entirely. */\n  protected readonly labelTooltip = computed(() =>\n    this.tooltip() === 'none' ? '' : this.clippedText(),\n  );\n\n  protected readonly tooltipPosition = computed<TooltipPosition>(() =>\n    this.tooltip() === 'below' ? 'bottom' : 'top',\n  );\n\n  readonly hostClasses = computed(() => ({\n    [`ea-tag--${this.variant()}`]: true,\n    [`ea-tag--${this.size()}`]: true,\n    'ea-tag--disabled': this.disabled(),\n    'ea-tag--uppercase': this.uppercase(),\n  }));\n\n  /** `maxWidth` as a CSS length; a bare number is px, as the input documents. */\n  protected readonly resolvedMaxWidth = computed(() => {\n    const max = this.maxWidth();\n    if (max === undefined || max === null) {\n      return null;\n    }\n    return typeof max === 'number' ? `${max}px` : max;\n  });\n\n  /** Ink that reads on `color`, or `null` when it is not a hex the library can measure. */\n  protected readonly resolvedInk = computed(() => {\n    const color = this.color();\n    if (!color) {\n      return null;\n    }\n    const ink = readableInk(color);\n    return ink === null ? null : `var(--color-neutral-${ink === 'light' ? '0' : '950'})`;\n  });\n\n  // A fill whose ink cannot be resolved is left unpainted: taking the colour\n  // without the matching ink is how a chip ends up unreadable\n  protected readonly resolvedColor = computed(() =>\n    this.resolvedInk() === null ? null : (this.color() ?? null),\n  );\n\n  constructor() {\n    afterNextRender(() => this.watchLabel());\n  }\n\n  onRemove(event: MouseEvent): void {\n    event.stopPropagation();\n    this.removed.emit();\n  }\n\n  /**\n   * Keeps `clippedText` in step with the rendered label. Size and text are\n   * watched separately because a capped chip holds its width when the text\n   * behind the ellipsis changes, so a resize alone would leave stale text.\n   */\n  private watchLabel(): void {\n    const el = this.labelEl()?.nativeElement;\n    if (!el) {\n      return;\n    }\n    const measure = () =>\n      this.clippedText.set(isTruncated(el) ? (el.textContent ?? '').trim() : '');\n    measure();\n\n    if (typeof ResizeObserver !== 'undefined') {\n      const resize = new ResizeObserver(measure);\n      resize.observe(el);\n      this.destroyRef.onDestroy(() => resize.disconnect());\n    }\n    if (typeof MutationObserver !== 'undefined') {\n      const mutation = new MutationObserver(measure);\n      mutation.observe(el, { characterData: true, childList: true, subtree: true });\n      this.destroyRef.onDestroy(() => mutation.disconnect());\n    }\n  }\n}\n","<span\n  class=\"ea-tag\"\n  [ngClass]=\"hostClasses()\"\n  [style.--ea-tag-max-width]=\"resolvedMaxWidth()\"\n  [style.--ea-tag-color]=\"resolvedColor()\"\n  [style.--ea-tag-ink]=\"resolvedInk()\"\n  [eaTooltip]=\"labelTooltip()\"\n  [tooltipPosition]=\"tooltipPosition()\">\n  <span\n    #labelEl\n    class=\"ea-tag__label\">\n    <ng-content />\n  </span>\n  @if (removable()) {\n    <button\n      type=\"button\"\n      class=\"ea-tag__remove\"\n      [disabled]=\"disabled() || null\"\n      [attr.tabindex]=\"removeTabbable() ? null : -1\"\n      [attr.aria-label]=\"resolvedRemoveLabel()\"\n      (click)=\"onRemove($event)\">\n      <ea-icon-x />\n    </button>\n  }\n</span>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  type ElementRef,\n  Injector,\n  type Type,\n  afterNextRender,\n  afterRenderEffect,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  untracked,\n  viewChild,\n  viewChildren,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CheckboxComponent } from '../checkbox/checkbox.component';\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ChevronDownIconComponent } from '../icons/chevron-down.component';\nimport { PlusIconComponent } from '../icons/plus.component';\nimport { SearchIconComponent } from '../icons/search.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { PopoverComponent, type PopoverMaxWidth } from '../popover/popover.component';\nimport type { SelectOption, SelectOptionGroup, SelectOptions } from '../select-option';\nimport {\n  filterGroups,\n  flattenGroups,\n  foldForSearch,\n  isGrouped,\n  toGroups,\n  toRenderedGroups,\n} from '../select-option-list';\nimport { type EaSize } from '../sizes';\nimport { TagComponent } from '../tag/tag.component';\nimport { TooltipDirective } from '../tooltip/tooltip.directive';\nimport { isTruncated } from '../truncation';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the multi-select trigger. */\nexport type MultiSelectSize = EaSize;\n\n/**\n * Multi-select dropdown. Renders selections as removable `<ea-tag>` chips\n * inside the trigger, opens a popover containing an optional search input,\n * a tri-state \"Select all\" toggle, and a list of `<ea-checkbox>` options.\n * The wire value is a `readonly string[]` of selected option values, ordered\n * to match the input `options` array. Closes on outside click / scroll, and\n * integrates with Angular forms via `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-multi-select',\n  templateUrl: './multi-select.component.html',\n  styleUrl: './multi-select.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    CheckboxComponent,\n    ChevronDownIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    NgClass,\n    PlusIconComponent,\n    PopoverComponent,\n    SearchIconComponent,\n    TagComponent,\n    TooltipDirective,\n    XIconComponent,\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MultiSelectComponent),\n      multi: true,\n    },\n  ],\n})\nexport class MultiSelectComponent implements ControlValueAccessor {\n  protected readonly wrapperEl = viewChild<ElementRef<HTMLElement>>('wrapperEl');\n  private readonly popover = viewChild(PopoverComponent);\n  protected readonly triggerEl = viewChild<ElementRef<HTMLElement>>('triggerEl');\n  protected readonly searchEl = viewChild<ElementRef<HTMLInputElement>>('searchEl');\n  private readonly listEl = viewChild<ElementRef<HTMLElement>>('listEl');\n  private readonly optionLabelEls =\n    viewChildren<ElementRef<HTMLElement>>('optionLabelEl');\n  protected readonly i18n = inject(EagamiI18nService);\n  private readonly injector = inject(Injector);\n  private readonly destroyRef = inject(DestroyRef);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Accessible name for the combobox when no visible `label` is set. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly placeholder = input<string | undefined>(undefined);\n  readonly searchPlaceholder = input<string | undefined>(undefined);\n  /** Selectable options, either flat or split into groups. */\n  readonly options = input<SelectOptions>([]);\n  readonly size = input<MultiSelectSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Toggle the search input at the top of the popover. */\n  readonly searchable = input<boolean>(true);\n  /** Toggle the \"Select all\" row at the top of the option list. */\n  readonly selectAll = input<boolean>(true);\n  /**\n   * Offer a \"Create\" row when the search text matches no option, for a value\n   * the list cannot know about yet (a new tag, a new person). The component\n   * only reports the text through `created`; the consumer creates the record\n   * and pushes its value into `value`.\n   */\n  readonly allowCreate = input<boolean>(false);\n  /** Max number of chips shown inside the trigger; the rest collapse into a \"+N more\" pill. `0` removes the cap so every chip shows and the row scrolls horizontally. */\n  readonly maxVisibleChips = input<number>(0);\n  /**\n   * Widest a selected-value chip may grow, in px; a longer label ellipsizes\n   * and reveals its full text in a tooltip.\n   */\n  readonly maxChipWidth = input<number | undefined>(200);\n  /**\n   * Tallest the option popover may grow, in px, before the option list\n   * scrolls; left unset, the popover keeps its built-in 20rem cap.\n   */\n  readonly popoverMaxHeight = input<number | undefined>(undefined);\n  /**\n   * Widest the option popover may grow: a px value, or `anchor` to hold it to\n   * the field's own width so a long option truncates instead of widening it.\n   */\n  readonly popoverMaxWidth = input<PopoverMaxWidth>('anchor');\n  readonly id = input<string>(uniqueId('ea-multi-select'));\n\n  /** Selected option values, in the original options order. */\n  readonly value = model<readonly string[]>([]);\n  /** Fires with the new value whenever the selection changes. */\n  readonly changed = output<readonly string[]>();\n  /** Fires with the typed text when the user takes the `allowCreate` row. */\n  readonly created = output<string>();\n\n  readonly isOpen = signal(false);\n  readonly searchTerm = signal('');\n  /** Index into `filteredOptions()` for keyboard navigation. `-1` when none focused. */\n  readonly focusedIndex = signal(-1);\n  private readonly _formDisabled = signal(false);\n  private onChange: (value: readonly string[]) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  /** Set-backed lookup for `selectedSet().has(value)`. */\n  readonly selectedSet = computed(() => new Set(this.value()));\n\n  private readonly optionGroups = computed(() => toGroups(this.options()));\n\n  /** Whether the consumer supplied groups, which the list exposes as ARIA groups. */\n  protected readonly grouped = computed(() => isGrouped(this.options()));\n\n  /** Every option in the order given, flattened across groups. */\n  private readonly flatOptions = computed(() => flattenGroups(this.optionGroups()));\n\n  private readonly filteredGroups = computed<readonly SelectOptionGroup[]>(() => {\n    const term = foldForSearch(this.searchTerm().trim());\n    const groups = this.optionGroups();\n    if (!term) {\n      return groups;\n    }\n    return filterGroups(groups, o => foldForSearch(o.label).includes(term));\n  });\n\n  /** Options matching the current search term (case- and accent-insensitive substring on label). */\n  readonly filteredOptions = computed<readonly SelectOption[]>(() =>\n    flattenGroups(this.filteredGroups()),\n  );\n\n  /** Groups to render, each option carrying its index into `filteredOptions`. */\n  protected readonly renderedGroups = computed(() =>\n    toRenderedGroups(this.filteredGroups()),\n  );\n\n  /** Currently selected options, ordered to match the input `options`. */\n  readonly selectedOptions = computed<readonly SelectOption[]>(() =>\n    this.optionsFor(this.selectedSet()),\n  );\n\n  readonly hasValue = computed(() => this.value().length > 0);\n\n  readonly listboxId = computed(() => `${this.id()}-listbox`);\n\n  /** Whether the Select-all row renders as the first option in the listbox. */\n  protected readonly selectAllVisible = computed(\n    () => this.selectAll() && this.filteredOptions().length > 0,\n  );\n\n  /** Row-index offset the Select-all row adds ahead of the filtered options. */\n  protected readonly selectAllOffset = computed(() => (this.selectAllVisible() ? 1 : 0));\n\n  /** The text a Create row would carry, or `''` when no such row is offered. */\n  protected readonly creatableText = computed(() => {\n    const term = this.searchTerm().trim();\n    if (!this.allowCreate() || !term) {\n      return '';\n    }\n    const taken = foldForSearch(term);\n    // Measured against every option, not the filtered ones: an option hidden by\n    // a group filter is still an option that exists\n    return this.flatOptions().some(o => foldForSearch(o.label.trim()) === taken)\n      ? ''\n      : term;\n  });\n\n  /** Row index of the Create row, which sits after the options, or `-1`. */\n  protected readonly createRow = computed(() =>\n    this.creatableText() ? this.filteredOptions().length + this.selectAllOffset() : -1,\n  );\n\n  private readonly rowCount = computed(\n    () =>\n      this.filteredOptions().length +\n      this.selectAllOffset() +\n      (this.creatableText() ? 1 : 0),\n  );\n\n  protected readonly selectAllAriaChecked = computed(() => {\n    const state = this.selectAllState();\n    return state === 'some' ? 'mixed' : state === 'all' ? 'true' : 'false';\n  });\n\n  /** Id of the keyboard-focused option, for `aria-activedescendant`. */\n  readonly activeOptionId = computed(() => {\n    const idx = this.focusedIndex();\n    return idx >= 0 && idx < this.rowCount() ? `${this.id()}-opt-${idx}` : null;\n  });\n\n  /** Chips visible inside the trigger, capped by `maxVisibleChips`. */\n  readonly visibleChips = computed<readonly SelectOption[]>(() => {\n    const sel = this.selectedOptions();\n    const cap = this.maxVisibleChips();\n    return cap <= 0 || sel.length <= cap ? sel : sel.slice(0, cap);\n  });\n\n  /** Count behind the \"+N more\" pill, or `0` when all chips fit. */\n  readonly hiddenChipCount = computed(() => {\n    const sel = this.selectedOptions();\n    const cap = this.maxVisibleChips();\n    return cap <= 0 || sel.length <= cap ? 0 : sel.length - cap;\n  });\n\n  /** Tri-state of the Select-all checkbox over the **currently filtered** list. */\n  readonly selectAllState = computed<'none' | 'some' | 'all'>(() => {\n    const filtered = this.filteredOptions().filter(o => !o.disabled);\n    if (filtered.length === 0) {\n      return 'none';\n    }\n    const set = this.selectedSet();\n    let count = 0;\n    for (const o of filtered) {\n      if (set.has(o.value)) {\n        count++;\n      }\n    }\n    if (count === 0) {\n      return 'none';\n    }\n    if (count === filtered.length) {\n      return 'all';\n    }\n    return 'some';\n  });\n\n  readonly resolvedPlaceholder = computed(\n    () => this.placeholder() ?? this.i18n.messages().multiSelect.placeholder,\n  );\n\n  readonly resolvedSearchPlaceholder = computed(\n    () => this.searchPlaceholder() ?? this.i18n.messages().multiSelect.searchPlaceholder,\n  );\n\n  readonly triggerClasses = computed(() => ({\n    [`ea-multi-select__trigger--${this.size()}`]: true,\n    'ea-multi-select__trigger--error': this.hasError(),\n    'ea-multi-select__trigger--open': this.isOpen(),\n    'ea-multi-select__trigger--disabled': this.isDisabled(),\n    'ea-multi-select__trigger--readonly': this.readonly() && !this.isDisabled(),\n    'ea-multi-select__trigger--placeholder': !this.hasValue(),\n  }));\n\n  readonly menuClasses = computed(() => ({\n    [`ea-multi-select__popover--${this.size()}`]: true,\n  }));\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-multi-select__trigger-wrapper--${this.size()}`]: true,\n  }));\n\n  /** Values whose rendered option label is currently clipped by the panel. */\n  protected readonly clippedOptions = signal<ReadonlySet<string>>(new Set());\n\n  constructor() {\n    // The panel is portaled, so a consumer has no element to hang a tooltip on\n    // and no event path back here; the component resolves its own truncation.\n    afterRenderEffect(() => {\n      this.optionLabelEls();\n      this.measureClippedOptions();\n    });\n\n    // The panel stays invisible until the popover has measured itself, and an\n    // invisible input cannot take focus. Waiting on that signal from the\n    // after-render phase puts the focus call after the frame that reveals it.\n    afterRenderEffect(() => {\n      if (this.searchable() && this.popover()?.isPositioned()) {\n        untracked(() => this.searchEl()?.nativeElement.focus());\n      }\n    });\n    afterNextRender(() => this.watchListWidth(), { injector: this.injector });\n  }\n\n  writeValue(val: readonly string[] | null | undefined): void {\n    this.value.set(val ?? []);\n  }\n\n  registerOnChange(fn: (value: readonly string[]) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  toggle(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const opening = !this.isOpen();\n    this.isOpen.set(opening);\n    if (!opening) {\n      this.resetEditState();\n    }\n  }\n\n  close(): void {\n    this.isOpen.set(false);\n    this.resetEditState();\n  }\n\n  /** Called by `<ea-popover>` when the user clicks outside or scrolls. */\n  onPopoverCloseRequested(): void {\n    this.close();\n    this.onTouched();\n  }\n\n  /** Toggle one option's membership in the selection. */\n  toggleOption(opt: SelectOption): void {\n    if (this.isDisabled() || this.readonly() || opt.disabled) {\n      return;\n    }\n    const set = new Set(this.value());\n    if (set.has(opt.value)) {\n      set.delete(opt.value);\n    } else {\n      set.add(opt.value);\n    }\n    this.commit(this.orderedValues(set));\n    this.clearSearchForNextValue();\n  }\n\n  /**\n   * Clicks on the bordered box (trigger, padding, chevron) all toggle; the\n   * clear button and chip remove buttons stop propagation before reaching\n   * here. The combobox element only takes focus natively when clicked\n   * directly, so focus is restored explicitly for the activedescendant model.\n   */\n  protected onTriggerAreaClick(): void {\n    this.toggle();\n    if (!this.isOpen() || !this.searchable()) {\n      this.triggerEl()?.nativeElement.focus();\n    }\n  }\n\n  // Options never take DOM focus, so a click must return focus to the\n  // element carrying aria-activedescendant\n  protected onOptionClick(opt: SelectOption, index: number): void {\n    if (!opt.disabled) {\n      this.focusedIndex.set(index + this.selectAllOffset());\n    }\n    this.toggleOption(opt);\n    this.restoreTypingFocus();\n  }\n\n  protected onSelectAllClick(): void {\n    this.focusedIndex.set(0);\n    this.toggleSelectAll();\n    this.restoreTypingFocus();\n  }\n\n  private restoreTypingFocus(): void {\n    if (this.searchable()) {\n      this.searchEl()?.nativeElement.focus();\n    } else {\n      this.triggerEl()?.nativeElement.focus();\n    }\n  }\n\n  /**\n   * Remove a single chip from the trigger. `<ea-tag>` already stops the\n   * click from bubbling to the trigger's `(click)`, so no event handling\n   * is needed here.\n   */\n  removeChip(opt: SelectOption): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.commit(this.value().filter(v => v !== opt.value));\n  }\n\n  /** Clear every selection via the trigger × button. */\n  clear(event: Event): void {\n    event.stopPropagation();\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.commit([]);\n  }\n\n  /**\n   * Toggle the Select-all checkbox. If any filtered option is unselected, the\n   * action selects all filtered. Otherwise, the action removes every filtered\n   * value from the selection. Disabled options are skipped either way.\n   */\n  toggleSelectAll(): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const filteredValues = this.filteredOptions()\n      .filter(o => !o.disabled)\n      .map(o => o.value);\n    const set = new Set(this.value());\n    if (this.selectAllState() === 'all') {\n      for (const v of filteredValues) {\n        set.delete(v);\n      }\n    } else {\n      for (const v of filteredValues) {\n        set.add(v);\n      }\n    }\n    this.commit(this.orderedValues(set));\n  }\n\n  onSearchInput(event: Event): void {\n    const target = event.target as HTMLInputElement;\n    this.searchTerm.set(target.value);\n    this.focusedIndex.set(this.soleOptionRow());\n  }\n\n  // Narrowing the list to a single selectable option makes Enter unambiguous,\n  // so that row takes focus and the value can be taken without arrowing to it.\n  // A query matching nothing at all leaves the Create row in that position.\n  private soleOptionRow(): number {\n    const options = this.filteredOptions();\n    if (options.length === 1 && !options[0].disabled) {\n      return this.selectAllOffset();\n    }\n    return options.length === 0 ? this.createRow() : -1;\n  }\n\n  // A query that has served its purpose otherwise has to be cleared by hand\n  // before the next value can be searched for\n  private clearSearchForNextValue(): void {\n    if (!this.searchTerm()) {\n      return;\n    }\n    this.searchTerm.set('');\n    this.focusedIndex.set(-1);\n    this.restoreTypingFocus();\n  }\n\n  handleTriggerKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    // Without a search input the trigger keeps focus while open, so it must\n    // drive the option navigation that the search input handles otherwise\n    if (this.isOpen() && !this.searchable()) {\n      this.handlePopoverKeydown(event);\n      return;\n    }\n    if (event.key === 'Enter' || event.key === ' ' || event.key === 'ArrowDown') {\n      event.preventDefault();\n      if (!this.isOpen()) {\n        this.isOpen.set(true);\n      }\n    } else if (event.key === 'Escape' && this.isOpen()) {\n      event.preventDefault();\n      this.close();\n      this.triggerEl()?.nativeElement.focus();\n    } else if (event.key === 'Backspace' && this.hasValue() && !this.isOpen()) {\n      // Quick-remove the last chip when the trigger is focused and no popover\n      event.preventDefault();\n      this.commit(this.value().slice(0, -1));\n    }\n  }\n\n  /**\n   * Keyboard navigation inside the popover. Bound to both the search input\n   * and each option row; Space passes through to the search input naturally\n   * so users can type spaces in their query.\n   */\n  handlePopoverKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const onSearchInput = event.target === this.searchEl()?.nativeElement;\n\n    if (event.key === 'ArrowDown') {\n      event.preventDefault();\n      this.moveFocusedRow(Math.min(this.rowCount() - 1, this.focusedIndex() + 1));\n    } else if (event.key === 'ArrowUp') {\n      event.preventDefault();\n      this.moveFocusedRow(Math.max(0, this.focusedIndex() - 1));\n    } else if (event.key === 'Home') {\n      event.preventDefault();\n      this.moveFocusedRow(0);\n    } else if (event.key === 'End') {\n      event.preventDefault();\n      this.moveFocusedRow(this.rowCount() - 1);\n    } else if (event.key === 'Enter') {\n      event.preventDefault();\n      this.activateRow(this.focusedIndex());\n    } else if (event.key === ' ' && !onSearchInput) {\n      // Toggle on Space only when an option row has focus; the search input\n      // needs Space for typing.\n      event.preventDefault();\n      this.activateRow(this.focusedIndex());\n    } else if (event.key === 'Escape') {\n      event.preventDefault();\n      this.close();\n      this.triggerEl()?.nativeElement.focus();\n    } else if (event.key === 'Tab') {\n      // Combobox popups dismiss on Tab; focus moves on to the next element\n      this.close();\n    }\n  }\n\n  private moveFocusedRow(row: number): void {\n    this.focusedIndex.set(row);\n    const activeId = this.activeOptionId();\n    if (activeId) {\n      document.getElementById(activeId)?.scrollIntoView({ block: 'nearest' });\n    }\n  }\n\n  /** Enter/Space on the focused row: row 0 is Select-all when visible. */\n  private activateRow(row: number): void {\n    const offset = this.selectAllOffset();\n    if (row < 0) {\n      return;\n    }\n    if (offset === 1 && row === 0) {\n      this.toggleSelectAll();\n      return;\n    }\n    if (row === this.createRow()) {\n      this.createOption();\n      return;\n    }\n    const opt = this.filteredOptions()[row - offset];\n    if (opt) {\n      this.toggleOption(opt);\n    }\n  }\n\n  /** Report the typed text, then clear it so the new value can be followed by another. */\n  protected createOption(): void {\n    const text = this.creatableText();\n    if (this.isDisabled() || this.readonly() || !text) {\n      return;\n    }\n    this.created.emit(text);\n    this.searchTerm.set('');\n    this.focusedIndex.set(-1);\n    this.restoreTypingFocus();\n  }\n\n  /** Reorder a value-set against the input `options` array. */\n  private orderedValues(set: Set<string>): readonly string[] {\n    return this.optionsFor(set).map(o => o.value);\n  }\n\n  // A value listed in more than one group (a \"recently used\" section repeating an\n  // option below it) still stands for one selection, so it resolves to one chip\n  // and one entry in the value\n  private optionsFor(values: ReadonlySet<string>): SelectOption[] {\n    const seen = new Set<string>();\n    const picked: SelectOption[] = [];\n    for (const option of this.flatOptions()) {\n      if (values.has(option.value) && !seen.has(option.value)) {\n        seen.add(option.value);\n        picked.push(option);\n      }\n    }\n    return picked;\n  }\n\n  private resetEditState(): void {\n    this.searchTerm.set('');\n    this.focusedIndex.set(-1);\n  }\n\n  private commit(next: readonly string[]): void {\n    this.value.set(next);\n    this.onChange(next);\n    this.onTouched();\n    this.changed.emit(next);\n  }\n\n  /**\n   * Re-reads which option labels are clipped. The result is written back only\n   * when the set actually differs, since an unconditional write would render,\n   * re-measure, and write again forever.\n   */\n  private measureClippedOptions(): void {\n    const clipped = new Set<string>();\n    for (const ref of this.optionLabelEls()) {\n      const el = ref.nativeElement;\n      const value = el.dataset['value'];\n      if (value !== undefined && isTruncated(el)) {\n        clipped.add(value);\n      }\n    }\n    const current = this.clippedOptions();\n    const same =\n      current.size === clipped.size && [...clipped].every(value => current.has(value));\n    if (!same) {\n      this.clippedOptions.set(clipped);\n    }\n  }\n\n  // The panel settles on its final width a frame after opening, which changes\n  // what fits without changing the option set the render effect watches\n  private watchListWidth(): void {\n    const el = this.listEl()?.nativeElement;\n    if (!el || typeof ResizeObserver === 'undefined') {\n      return;\n    }\n    const observer = new ResizeObserver(() => this.measureClippedOptions());\n    observer.observe(el);\n    this.destroyRef.onDestroy(() => observer.disconnect());\n  }\n}\n","<div class=\"ea-multi-select-field ea-multi-select-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div class=\"ea-multi-select\">\n    <div\n      #wrapperEl\n      class=\"ea-multi-select__trigger-wrapper\"\n      [ngClass]=\"wrapperClasses()\"\n      (click)=\"onTriggerAreaClick()\">\n      <div\n        #triggerEl\n        class=\"ea-multi-select__trigger\"\n        [ngClass]=\"triggerClasses()\"\n        [id]=\"id()\"\n        role=\"combobox\"\n        [attr.tabindex]=\"isDisabled() ? -1 : 0\"\n        [attr.aria-labelledby]=\"label() ? id() + '-label' : null\"\n        [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n        [attr.aria-expanded]=\"isOpen()\"\n        [attr.aria-haspopup]=\"'listbox'\"\n        [attr.aria-controls]=\"isOpen() ? listboxId() : null\"\n        [attr.aria-activedescendant]=\"isOpen() && !searchable() ? activeOptionId() : null\"\n        [attr.aria-disabled]=\"isDisabled() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-invalid]=\"hasError() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        (keydown)=\"handleTriggerKeydown($event)\">\n        <span class=\"ea-multi-select__trigger-content\">\n          @if (!hasValue()) {\n            <span class=\"ea-multi-select__trigger-placeholder\">\n              <bdi>{{ resolvedPlaceholder() }}</bdi>\n            </span>\n          } @else {\n            @for (opt of visibleChips(); track opt.value) {\n              <ea-tag\n                [size]=\"size()\"\n                variant=\"default\"\n                [maxWidth]=\"maxChipWidth()\"\n                [removable]=\"!isDisabled() && !readonly()\"\n                [removeTabbable]=\"false\"\n                [removeLabel]=\"i18n.messages().multiSelect.removeOption(opt.label)\"\n                (removed)=\"removeChip(opt)\">\n                <span>{{ opt.label }}</span>\n              </ea-tag>\n            }\n            @if (hiddenChipCount() > 0) {\n              <span class=\"ea-multi-select__more\">+{{ hiddenChipCount() }}</span>\n            }\n          }\n        </span>\n      </div>\n      @if (hasValue() && !isDisabled() && !readonly()) {\n        <button\n          type=\"button\"\n          class=\"ea-multi-select__clear\"\n          [attr.aria-label]=\"i18n.messages().multiSelect.clearAll\"\n          (click)=\"clear($event)\">\n          <ea-icon-x\n            class=\"ea-multi-select__clear-icon\"\n            aria-hidden=\"true\" />\n        </button>\n      }\n      <ea-icon-chevron-down\n        class=\"ea-multi-select__trigger-icon\"\n        aria-hidden=\"true\" />\n    </div>\n\n    <ea-popover\n      [anchor]=\"wrapperEl\"\n      [open]=\"isOpen()\"\n      placement=\"bottom-start\"\n      [aria-label]=\"i18n.messages().multiSelect.dialogLabel\"\n      [matchAnchorWidth]=\"true\"\n      [maxWidth]=\"popoverMaxWidth()\"\n      [closeOnEscape]=\"false\"\n      scrollBehavior=\"reposition\"\n      (closeRequested)=\"onPopoverCloseRequested()\">\n      <div\n        class=\"ea-multi-select__popover\"\n        [ngClass]=\"menuClasses()\"\n        [style.max-height.px]=\"popoverMaxHeight()\">\n        @if (searchable()) {\n          <div class=\"ea-multi-select__search\">\n            <ea-icon-search\n              class=\"ea-multi-select__search-icon\"\n              aria-hidden=\"true\" />\n            <input\n              #searchEl\n              type=\"text\"\n              dir=\"auto\"\n              class=\"ea-multi-select__search-input\"\n              autocomplete=\"off\"\n              [placeholder]=\"resolvedSearchPlaceholder()\"\n              [value]=\"searchTerm()\"\n              [attr.aria-controls]=\"listboxId()\"\n              [attr.aria-activedescendant]=\"activeOptionId()\"\n              (input)=\"onSearchInput($event)\"\n              (keydown)=\"handlePopoverKeydown($event)\" />\n          </div>\n        }\n\n        <ul\n          #listEl\n          class=\"ea-multi-select__list\"\n          role=\"listbox\"\n          aria-multiselectable=\"true\"\n          [id]=\"listboxId()\"\n          [attr.aria-label]=\"label() ?? ariaLabel() ?? null\">\n          @if (selectAllVisible()) {\n            <li\n              class=\"ea-multi-select__option ea-multi-select__option--select-all\"\n              [class.ea-multi-select__option--focused]=\"focusedIndex() === 0\"\n              [id]=\"id() + '-opt-0'\"\n              role=\"option\"\n              [attr.aria-selected]=\"selectAllState() === 'all'\"\n              [attr.aria-checked]=\"selectAllAriaChecked()\"\n              (click)=\"onSelectAllClick()\">\n              <ea-checkbox\n                size=\"sm\"\n                inert\n                aria-hidden=\"true\"\n                [checked]=\"selectAllState() === 'all'\"\n                [indeterminate]=\"selectAllState() === 'some'\" />\n              <span class=\"ea-multi-select__option-label\">\n                {{ i18n.messages().multiSelect.selectAll }}\n              </span>\n            </li>\n          }\n          @for (group of renderedGroups(); track $index) {\n            <li\n              class=\"ea-multi-select__group\"\n              [class.ea-multi-select__group--ruled]=\"group.rule\"\n              role=\"presentation\">\n              @if (group.label; as groupLabel) {\n                <span\n                  class=\"ea-multi-select__group-label\"\n                  aria-hidden=\"true\">\n                  {{ groupLabel }}\n                </span>\n              }\n              <ul\n                class=\"ea-multi-select__group-options\"\n                [attr.role]=\"grouped() ? 'group' : 'presentation'\"\n                [attr.aria-label]=\"group.label ?? null\">\n                @for (entry of group.options; track entry.option.value) {\n                  <li\n                    class=\"ea-multi-select__option\"\n                    [class.ea-multi-select__option--focused]=\"\n                      focusedIndex() === entry.index + selectAllOffset()\n                    \"\n                    [class.ea-multi-select__option--disabled]=\"entry.option.disabled\"\n                    [id]=\"id() + '-opt-' + (entry.index + selectAllOffset())\"\n                    role=\"option\"\n                    [attr.aria-selected]=\"selectedSet().has(entry.option.value)\"\n                    [attr.aria-disabled]=\"entry.option.disabled || null\"\n                    (click)=\"onOptionClick(entry.option, entry.index)\">\n                    <ea-checkbox\n                      size=\"sm\"\n                      inert\n                      aria-hidden=\"true\"\n                      [checked]=\"selectedSet().has(entry.option.value)\"\n                      [disabled]=\"!!entry.option.disabled\" />\n                    <span\n                      #optionLabelEl\n                      class=\"ea-multi-select__option-label\"\n                      [attr.data-value]=\"entry.option.value\"\n                      [eaTooltip]=\"\n                        clippedOptions().has(entry.option.value) ? entry.option.label : ''\n                      \">\n                      {{ entry.option.label }}\n                    </span>\n                  </li>\n                }\n              </ul>\n            </li>\n          }\n          @if (creatableText(); as newText) {\n            <li\n              class=\"ea-multi-select__option ea-multi-select__option--create\"\n              [class.ea-multi-select__option--focused]=\"focusedIndex() === createRow()\"\n              [id]=\"id() + '-opt-' + createRow()\"\n              role=\"option\"\n              [attr.aria-selected]=\"false\"\n              (click)=\"createOption()\">\n              <ea-icon-plus\n                class=\"ea-multi-select__create-icon\"\n                aria-hidden=\"true\" />\n              <span class=\"ea-multi-select__option-label\">\n                {{ i18n.messages().multiSelect.create(newText) }}\n              </span>\n            </li>\n          }\n        </ul>\n        @if (filteredOptions().length === 0 && !creatableText()) {\n          <div\n            class=\"ea-multi-select__empty\"\n            role=\"status\">\n            {{ i18n.messages().multiSelect.searchEmpty }}\n          </div>\n        }\n      </div>\n    </ea-popover>\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the number input. */\nexport type NumberInputSize = EaSize;\n\n/**\n * Numeric field with min/max/step bounds, native arrow-key stepping, and\n * the standard label, hint, and error chrome. The native input carries the\n * `spinbutton` role, so arrow keys step it; the steppers are pointer\n * affordances. Integrates with Angular forms via `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-number-input',\n  templateUrl: './number-input.component.html',\n  styleUrl: './number-input.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NumberInputComponent),\n      multi: true,\n    },\n  ],\n})\nexport class NumberInputComponent implements ControlValueAccessor {\n  readonly inputEl = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n  protected readonly i18n = inject(EagamiI18nService);\n\n  /** Text label rendered above the field. */\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Placeholder shown while the field is empty. */\n  readonly placeholder = input<string>('');\n  /** Visual size of the field. */\n  readonly size = input<NumberInputSize>('md');\n  /** Helper text shown below the field; hidden while an error is showing. */\n  readonly hint = input<string | undefined>(undefined);\n  /** Error message shown below the field; replaces the hint and flags the field invalid. */\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Disables the field. */\n  readonly disabled = input<boolean>(false);\n  /** Renders the field read-only. */\n  readonly readonly = input<boolean>(false);\n  /** Marks the field as required. */\n  readonly required = input<boolean>(false);\n  /** Minimum value; typed values are clamped to it on blur and the steppers respect it. */\n  readonly min = input<number | undefined>(undefined);\n  /** Maximum value; typed values are clamped to it on blur. */\n  readonly max = input<number | undefined>(undefined);\n  /** Amount each arrow-key step adds or subtracts. */\n  readonly step = input<number>(1);\n  /**\n   * Caps how many characters the field accepts, counting the digits, the minus\n   * sign, and the decimal point. Also sets how wide the field renders; without\n   * it the field is six characters wide.\n   */\n  readonly maxDigits = input<number | undefined>(undefined);\n  /** Whether negative values are allowed; when `false` the value floors at 0. */\n  readonly allowNegative = input<boolean>(true);\n  /** Accessible name for the field when no visible `label` is set. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  /** `id` applied to the native input and label `for`; auto-generated when omitted. */\n  readonly id = input<string>(uniqueId('ea-number-input'));\n\n  /** Current field value; `null` when empty. Two-way bindable via `[(value)]`. */\n  readonly value = model<number | null>(null);\n\n  /** Fires with the new value whenever it changes. */\n  readonly changed = output<number | null>();\n  /** Fires when the input receives focus. */\n  readonly focused = output<FocusEvent>();\n  /** Fires when the input loses focus. */\n  readonly blurred = output<FocusEvent>();\n\n  readonly isFocused = signal(false);\n  private readonly _formDisabled = signal(false);\n\n  private onChange: (value: number | null) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  readonly isInteractive = computed(() => !this.isDisabled() && !this.readonly());\n\n  // The lower bound actually enforced: `min` normally, but floored at 0 when\n  // negatives are disallowed (even if `min` was set lower).\n  readonly effectiveMin = computed<number | undefined>(() => {\n    const min = this.min();\n    if (this.allowNegative()) {\n      return min;\n    }\n    return min == null ? 0 : Math.max(min, 0);\n  });\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-number-input-wrapper--${this.size()}`]: true,\n    'ea-number-input-wrapper--error': this.hasError(),\n    'ea-number-input-wrapper--focused': this.isFocused() && !this.readonly(),\n    'ea-number-input-wrapper--disabled': this.isDisabled(),\n    'ea-number-input-wrapper--readonly': this.readonly(),\n  }));\n\n  constructor() {\n    // Reflect the model onto the native element, but only when they differ\n    // NUMERICALLY: comparing text would clobber an in-progress decimal (typing\n    // \"42.\" parses to 42, and rewriting \"42\" would drop the trailing dot).\n    effect(() => {\n      const el = this.inputEl()?.nativeElement;\n      if (!el) {\n        return;\n      }\n      const model = this.value();\n      const elValue =\n        el.value === '' || Number.isNaN(el.valueAsNumber) ? null : el.valueAsNumber;\n      if (elValue !== model) {\n        el.value = model == null ? '' : String(model);\n      }\n    });\n  }\n\n  writeValue(val: number | null): void {\n    // Do not clamp here: a CVA writeValue cannot call onChange, so clamping now\n    // would diverge the form model (unclamped) from the view. Bounds apply on\n    // interaction (blur after typing, or stepping) instead.\n    this.value.set(val == null || Number.isNaN(Number(val)) ? null : Number(val));\n  }\n\n  registerOnChange(fn: (value: number | null) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  protected handleInput(): void {\n    this.enforceMaxDigits();\n    this.commitFromElement(false);\n  }\n\n  // `type=\"number\"` ignores `maxlength`, so the cap is applied to the element's\n  // own value. Trimming from the end mirrors what the browser would have done\n  // had it stopped accepting the keystroke, and covers paste and drop too. The\n  // caret is left alone: a number input supports no selection API, and reading\n  // `selectionStart` on one throws.\n  private enforceMaxDigits(): void {\n    const max = this.maxDigits();\n    const el = this.inputEl()?.nativeElement;\n    if (max == null || !el || el.value.length <= max) {\n      return;\n    }\n    el.value = el.value.slice(0, max);\n  }\n\n  protected handleFocus(event: FocusEvent): void {\n    this.isFocused.set(true);\n    this.focused.emit(event);\n  }\n\n  protected handleBlur(event: FocusEvent): void {\n    this.commitFromElement(true);\n    this.isFocused.set(false);\n    this.onTouched();\n    this.blurred.emit(event);\n  }\n\n  // A focused number input changes value on scroll by default, easy to trigger\n  // by accident while scrolling the page.\n  protected handleWheel(event: WheelEvent): void {\n    if (this.isFocused()) {\n      event.preventDefault();\n    }\n  }\n\n  protected handleKeydown(event: KeyboardEvent): void {\n    // Exponent notation breaks the numeric bounds; block it. Also block the\n    // minus sign when negatives are disallowed.\n    if (\n      event.key === 'e' ||\n      event.key === 'E' ||\n      (!this.allowNegative() && event.key === '-')\n    ) {\n      event.preventDefault();\n    }\n  }\n\n  /** Moves keyboard focus to the underlying native input element. */\n  focus(): void {\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  // Reads the element, optionally clamps into the effective bounds, and emits\n  // only when the value actually changed (so a no-op blur does not dirty a form\n  // control or fire a spurious `changed`).\n  private commitFromElement(clamp: boolean): void {\n    const el = this.inputEl()?.nativeElement;\n    if (!el) {\n      return;\n    }\n    let next =\n      el.value === '' || Number.isNaN(el.valueAsNumber) ? null : el.valueAsNumber;\n    if (clamp && next != null) {\n      const clamped = this.clampToBounds(next);\n      if (clamped !== next) {\n        next = clamped;\n        el.value = String(next);\n      }\n    }\n    if (next === this.value()) {\n      return;\n    }\n    this.value.set(next);\n    this.onChange(next);\n    this.changed.emit(next);\n  }\n\n  private clampToBounds(num: number): number {\n    const min = this.effectiveMin();\n    const max = this.max();\n    if (min != null && num < min) {\n      return min;\n    }\n    if (max != null && num > max) {\n      return max;\n    }\n    return num;\n  }\n}\n","<div\n  class=\"ea-number-input-field ea-number-input-field--{{ size() }}\"\n  [style.--ea-number-input-chars]=\"maxDigits()\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    class=\"ea-number-input-wrapper\"\n    [ngClass]=\"wrapperClasses()\">\n    <input\n      #inputEl\n      type=\"number\"\n      class=\"ea-number-input\"\n      dir=\"auto\"\n      [id]=\"id()\"\n      [placeholder]=\"placeholder()\"\n      [disabled]=\"isDisabled()\"\n      [readOnly]=\"readonly()\"\n      [required]=\"required()\"\n      [attr.min]=\"effectiveMin() ?? null\"\n      [attr.max]=\"max() ?? null\"\n      [attr.step]=\"step()\"\n      [attr.aria-label]=\"ariaLabel() ?? null\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (input)=\"handleInput()\"\n      (keydown)=\"handleKeydown($event)\"\n      (wheel)=\"handleWheel($event)\"\n      (focus)=\"handleFocus($event)\"\n      (blur)=\"handleBlur($event)\" />\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import type { EagamiMessages } from './i18n.types';\n\ntype EagamiNumberFormat = EagamiMessages['numberFormat'];\n\n/** Whether the runtime's `Intl` actually has number data for `locale` rather\n *  than silently negotiating down to a default (as reduced-ICU builds do). */\nfunction intlLocalizes(locale: string): boolean {\n  try {\n    const resolved = new Intl.NumberFormat(locale).resolvedOptions().locale;\n    return resolved.split('-')[0] === locale.split('-')[0];\n  } catch {\n    return false;\n  }\n}\n\nfunction groupInteger(digits: string, sep: string, grouping: readonly number[]): string {\n  const primary = grouping[0] ?? 3;\n  const secondary = grouping[1] ?? primary;\n  if (digits.length <= primary) {\n    return digits;\n  }\n  let result = digits.slice(digits.length - primary);\n  let rest = digits.slice(0, digits.length - primary);\n  while (rest.length > 0) {\n    const take = Math.min(secondary, rest.length);\n    result = `${rest.slice(rest.length - take)}${sep}${result}`;\n    rest = rest.slice(0, rest.length - take);\n  }\n  return result;\n}\n\n/**\n * Group-formats a number for the active locale. Uses the runtime's `Intl` when\n * it actually has data for `locale`; otherwise formats from the locale bundle's\n * numeric rules so grouping stays correct on browsers whose ICU lacks the\n * locale (some Chrome builds drop long-tail locales, e.g. Icelandic). The\n * manual fallback honours the locale's separators and grouping pattern, not\n * `Intl` rounding options, which is sufficient for the values these components\n * display.\n */\nexport function formatGroupedNumber(\n  value: number,\n  locale: string,\n  format: EagamiNumberFormat,\n  options?: Intl.NumberFormatOptions,\n): string {\n  if (intlLocalizes(locale)) {\n    return value.toLocaleString(locale, options);\n  }\n  if (!isFinite(value)) {\n    return String(value);\n  }\n  const magnitude = Math.abs(value).toString();\n  // Scientific notation can't be digit-grouped meaningfully; leave it as-is\n  if (magnitude.includes('e') || magnitude.includes('E')) {\n    return value.toString();\n  }\n  const [intPart, fracPart] = magnitude.split('.');\n  const grouped = groupInteger(intPart, format.group, format.grouping);\n  const body = fracPart != null ? `${grouped}${format.decimal}${fracPart}` : grouped;\n  return value < 0 ? `-${body}` : body;\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  inject,\n  input,\n  model,\n  output,\n} from '@angular/core';\n\nimport { ButtonComponent } from '../button/button.component';\nimport { formatGroupedNumber } from '../i18n/format-number';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ChevronDownIconComponent } from '../icons/chevron-down.component';\nimport { ChevronLeftIconComponent } from '../icons/chevron-left.component';\nimport { ChevronRightIconComponent } from '../icons/chevron-right.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Horizontal alignment of paginator controls within their container. */\nexport type PaginatorAlign = 'left' | 'center' | 'right';\n\n/** Visual size of the paginator. */\nexport type PaginatorSize = EaSize;\n\n/** Snapshot of the paginator's page and page size. */\nexport interface PaginatorState {\n  page: number;\n  pageSize: number;\n}\n\n/**\n * Page navigation control with previous/next buttons, numbered page jumps,\n * an optional page-size selector, and a range label. Exposes `page` and\n * `pageSize` as two-way `model()` bindings and emits a single `changed`\n * event whenever either changes.\n */\n@Component({\n  selector: 'ea-paginator',\n  imports: [\n    NgClass,\n    ButtonComponent,\n    ChevronDownIconComponent,\n    ChevronLeftIconComponent,\n    ChevronRightIconComponent,\n  ],\n  templateUrl: './paginator.component.html',\n  styleUrl: './paginator.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PaginatorComponent {\n  protected readonly i18n = inject(EagamiI18nService);\n  protected readonly sizeSelectId = uniqueId('ea-paginator-size');\n\n  readonly totalItems = input.required<number>();\n  readonly pageSizeOptions = input<number[]>([10, 25, 50, 100]);\n  readonly showPageSizeSelector = input<boolean>(true);\n  readonly showRangeLabel = input<boolean>(true);\n  readonly align = input<PaginatorAlign>('right');\n  readonly size = input<PaginatorSize>('md');\n  /** Group thousands with commas in the range and page numbers. */\n  readonly groupThousands = input<boolean>(true);\n  readonly disabled = input<boolean>(false);\n\n  readonly page = model<number>(1);\n  readonly pageSize = model<number>(10);\n\n  /** Fires when the user changes either the current page or the page size. */\n  readonly changed = output<PaginatorState>();\n\n  readonly totalPages = computed(() =>\n    Math.max(1, Math.ceil(this.totalItems() / this.pageSize())),\n  );\n\n  readonly rangeStart = computed(() =>\n    this.totalItems() === 0 ? 0 : (this.page() - 1) * this.pageSize() + 1,\n  );\n\n  readonly rangeEnd = computed(() =>\n    Math.min(this.page() * this.pageSize(), this.totalItems()),\n  );\n\n  readonly canGoPrev = computed(() => this.page() > 1);\n\n  readonly canGoNext = computed(() => this.page() < this.totalPages());\n\n  /** Formats a number for display, grouping thousands per the active locale when enabled. */\n  protected formatNumber(value: number): string {\n    return this.groupThousands()\n      ? formatGroupedNumber(value, this.i18n.locale(), this.i18n.messages().numberFormat)\n      : `${value}`;\n  }\n\n  readonly visiblePages = computed(() => {\n    const total = this.totalPages();\n    const current = this.page();\n    const pages: (number | 'ellipsis')[] = [];\n\n    if (total <= 7) {\n      for (let i = 1; i <= total; i++) {\n        pages.push(i);\n      }\n      return pages;\n    }\n\n    pages.push(1);\n\n    if (current > 3) {\n      pages.push('ellipsis');\n    }\n\n    const start = Math.max(2, current - 1);\n    const end = Math.min(total - 1, current + 1);\n    for (let i = start; i <= end; i++) {\n      pages.push(i);\n    }\n\n    if (current < total - 2) {\n      pages.push('ellipsis');\n    }\n\n    pages.push(total);\n    return pages;\n  });\n\n  /** Navigates to the given page, clamped into the valid range. */\n  goToPage(page: number): void {\n    if (this.disabled()) {\n      return;\n    }\n    const clamped = Math.max(1, Math.min(page, this.totalPages()));\n    if (clamped === this.page()) {\n      return;\n    }\n    this.page.set(clamped);\n    this.changed.emit({ page: clamped, pageSize: this.pageSize() });\n  }\n\n  /** Navigates to the previous page if one exists. */\n  prevPage(): void {\n    if (this.canGoPrev()) {\n      this.goToPage(this.page() - 1);\n    }\n  }\n\n  /** Navigates to the next page if one exists. */\n  nextPage(): void {\n    if (this.canGoNext()) {\n      this.goToPage(this.page() + 1);\n    }\n  }\n\n  onPageSizeChange(event: Event): void {\n    if (this.disabled()) {\n      return;\n    }\n    const newSize = Number((event.target as HTMLSelectElement).value);\n    this.pageSize.set(newSize);\n    this.page.set(1);\n    this.changed.emit({ page: 1, pageSize: newSize });\n  }\n}\n","<div\n  class=\"ea-paginator\"\n  [ngClass]=\"'ea-paginator--' + size()\"\n  [class.ea-paginator--left]=\"align() === 'left'\"\n  [class.ea-paginator--center]=\"align() === 'center'\"\n  [class.ea-paginator--disabled]=\"disabled()\"\n  role=\"navigation\"\n  [attr.aria-label]=\"i18n.messages().paginator.label\">\n  @if (showPageSizeSelector()) {\n    <div class=\"ea-paginator__page-size\">\n      <label\n        class=\"ea-paginator__label\"\n        [for]=\"sizeSelectId\">\n        {{ i18n.messages().paginator.rowsPerPage }}\n      </label>\n      <span class=\"ea-paginator__select-wrapper\">\n        <select\n          class=\"ea-paginator__select\"\n          [id]=\"sizeSelectId\"\n          [disabled]=\"disabled()\"\n          (change)=\"onPageSizeChange($event)\">\n          <!-- Track by index so options update in place; replacing them mid-reconcile\n       trips NG05106 inside a select on Angular 22.1.3+ -->\n          @for (option of pageSizeOptions(); track $index) {\n            <option\n              [value]=\"option\"\n              [selected]=\"option === pageSize()\">\n              {{ formatNumber(option) }}\n            </option>\n          }\n        </select>\n        <ea-icon-chevron-down\n          class=\"ea-paginator__select-chevron\"\n          aria-hidden=\"true\" />\n      </span>\n    </div>\n  }\n\n  @if (showRangeLabel()) {\n    <span\n      class=\"ea-paginator__range\"\n      aria-live=\"polite\">\n      <bdi>\n        {{\n          i18n\n            .messages()\n            .paginator.range(\n              formatNumber(rangeStart()),\n              formatNumber(rangeEnd()),\n              formatNumber(totalItems())\n            )\n        }}\n      </bdi>\n    </span>\n  }\n\n  <div class=\"ea-paginator__controls\">\n    <ea-button\n      variant=\"ghost\"\n      [size]=\"size()\"\n      [disabled]=\"disabled() || !canGoPrev()\"\n      [aria-label]=\"i18n.messages().paginator.previousPage\"\n      (clicked)=\"prevPage()\">\n      <ea-icon-chevron-left class=\"ea-rtl-flip\" />\n    </ea-button>\n\n    @for (p of visiblePages(); track $index) {\n      @if (p === 'ellipsis') {\n        <span\n          class=\"ea-paginator__ellipsis\"\n          aria-hidden=\"true\">\n          …\n        </span>\n      } @else {\n        <ea-button\n          class=\"ea-paginator__page-btn\"\n          [class.ea-paginator__page-btn--active]=\"p === page()\"\n          variant=\"ghost\"\n          [size]=\"size()\"\n          [disabled]=\"disabled()\"\n          [aria-label]=\"i18n.messages().paginator.page(formatNumber(p))\"\n          [aria-current]=\"p === page() ? 'page' : undefined\"\n          (clicked)=\"goToPage(p)\">\n          {{ formatNumber(p) }}\n        </ea-button>\n      }\n    }\n\n    <ea-button\n      variant=\"ghost\"\n      [size]=\"size()\"\n      [disabled]=\"disabled() || !canGoNext()\"\n      [aria-label]=\"i18n.messages().paginator.nextPage\"\n      (clicked)=\"nextPage()\">\n      <ea-icon-chevron-right class=\"ea-rtl-flip\" />\n    </ea-button>\n  </div>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { type EaSize } from '../sizes';\n\n/** Semantic colour scheme of the progress bar. */\nexport type ProgressBarVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n/** Visual height of the progress bar. */\nexport type ProgressBarSize = EaSize;\n\n/**\n * Linear progress indicator supporting both determinate (driven by `value`\n * and `max`) and indeterminate modes. Optionally renders an inline label\n * and/or the current percentage.\n */\n@Component({\n  selector: 'ea-progress-bar',\n  imports: [NgClass],\n  templateUrl: './progress-bar.component.html',\n  styleUrl: './progress-bar.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class ProgressBarComponent {\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly value = input<number>(0);\n  readonly max = input<number>(100);\n  readonly variant = input<ProgressBarVariant>('default');\n  readonly size = input<ProgressBarSize>('md');\n  readonly label = input<string | undefined>(undefined);\n  /** Shows the rounded percentage alongside the label. */\n  readonly showPercentage = input<boolean>(false);\n  readonly indeterminate = input<boolean>(false);\n  /**\n   * Optional buffered position ahead of `value` (same scale as `value`),\n   * rendered as a secondary-colour segment behind the fill. Use for\n   * download/upload-then-process style progress.\n   */\n  readonly buffer = input<number | undefined>(undefined);\n\n  /** Whether to render the percentage. */\n  readonly showsPercentage = computed(() => this.showPercentage());\n\n  readonly percentage = computed(() => {\n    const max = this.max();\n    if (max <= 0) {\n      return 0;\n    }\n    return Math.min(100, Math.max(0, (this.value() / max) * 100));\n  });\n\n  readonly percentageRounded = computed(() => Math.round(this.percentage()));\n\n  readonly bufferPercentage = computed<number | null>(() => {\n    const buffer = this.buffer();\n    const max = this.max();\n    if (buffer == null || max <= 0) {\n      return null;\n    }\n    return Math.min(100, Math.max(0, (buffer / max) * 100));\n  });\n\n  readonly hostClasses = computed(() => ({\n    [`ea-progress-bar--${this.variant()}`]: true,\n    [`ea-progress-bar--${this.size()}`]: true,\n    'ea-progress-bar--indeterminate': this.indeterminate(),\n  }));\n}\n","<div\n  class=\"ea-progress-bar\"\n  [ngClass]=\"hostClasses()\">\n  @if (label() || showsPercentage()) {\n    <div class=\"ea-progress-bar__header\">\n      @if (label()) {\n        <span class=\"ea-progress-bar__label\">\n          {{ label() }}\n        </span>\n      }\n      @if (showsPercentage() && !indeterminate()) {\n        <span class=\"ea-progress-bar__value\">\n          <bdi>{{ percentageRounded() }}%</bdi>\n        </span>\n      }\n    </div>\n  }\n  <div\n    class=\"ea-progress-bar__track\"\n    role=\"progressbar\"\n    [attr.aria-valuenow]=\"indeterminate() ? null : percentageRounded()\"\n    aria-valuemin=\"0\"\n    aria-valuemax=\"100\"\n    [attr.aria-busy]=\"indeterminate() || null\"\n    [attr.aria-label]=\"label() || i18n.messages().progressBar.label\">\n    @if (bufferPercentage() !== null && !indeterminate()) {\n      <div\n        class=\"ea-progress-bar__buffer\"\n        [style.width]=\"bufferPercentage() + '%'\">\n      </div>\n    }\n    <div\n      class=\"ea-progress-bar__fill\"\n      [style.width]=\"indeterminate() ? null : percentage() + '%'\">\n    </div>\n  </div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  type Type,\n  computed,\n  forwardRef,\n  input,\n  model,\n  output,\n  signal,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size shared by all radios in the group. */\nexport type RadioSize = EaSize;\n/** Layout direction for radios within the group. */\nexport type RadioOrientation = 'vertical' | 'horizontal';\n\n/**\n * Composite single-select control made up of `ea-radio` children. Manages\n * shared state (name, size, disabled) for its options and integrates with\n * Angular forms via `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-radio-group',\n  imports: [FieldLabelComponent, FieldMessagesComponent],\n  templateUrl: './radio-group.component.html',\n  styleUrl: './radio-group.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RadioGroupComponent),\n      multi: true,\n    },\n  ],\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n  readonly id = input<string>(uniqueId('ea-radio-group'));\n  readonly name = input<string>(uniqueId('ea-radio'));\n  readonly size = input<RadioSize>('md');\n  readonly orientation = input<RadioOrientation>('vertical');\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n  readonly value = model<string>('');\n\n  /** Fires with the new value when an option is selected. */\n  readonly changed = output<string>();\n\n  private readonly _formDisabled = signal(false);\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  /** Programmatically selects the option with the given value. */\n  select(val: string): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    this.value.set(val);\n    this.onChange(val);\n    this.onTouched();\n    this.changed.emit(val);\n  }\n}\n","<div class=\"ea-radio-group-field ea-radio-group-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    class=\"ea-radio-group\"\n    [class.ea-radio-group--horizontal]=\"orientation() === 'horizontal'\"\n    [class.ea-radio-group--vertical]=\"orientation() === 'vertical'\"\n    role=\"radiogroup\"\n    [id]=\"id()\"\n    [attr.aria-labelledby]=\"label() ? id() + '-label' : null\"\n    [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n    [attr.aria-required]=\"required() || null\"\n    [attr.aria-invalid]=\"hasError() || null\"\n    [attr.aria-describedby]=\"\n      showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n    \">\n    <ng-content />\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { uniqueId } from '../unique-id';\nimport { RadioGroupComponent } from './radio-group.component';\n\n/**\n * Single radio option used inside an `ea-radio-group`. Inherits its size and\n * disabled state from the parent group and selecting it updates the group's\n * value.\n */\n@Component({\n  selector: 'ea-radio',\n  templateUrl: './radio.component.html',\n  styleUrl: './radio.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgClass],\n})\nexport class RadioComponent {\n  private readonly group = inject(RadioGroupComponent);\n\n  readonly value = input.required<string>();\n  readonly label = input<string | undefined>(undefined);\n  readonly disabled = input<boolean>(false);\n  readonly id = input<string>(uniqueId('ea-radio-opt'));\n\n  readonly isChecked = computed(() => this.group.value() === this.value());\n  readonly isDisabled = computed(() => this.disabled() || this.group.isDisabled());\n  readonly name = computed(() => this.group.name());\n  readonly size = computed(() => this.group.size());\n\n  readonly hostClasses = computed(() => ({\n    [`ea-radio--${this.size()}`]: true,\n    'ea-radio--disabled': this.isDisabled(),\n    'ea-radio--checked': this.isChecked(),\n  }));\n\n  handleChange(): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    this.group.select(this.value());\n  }\n}\n","<label\n  class=\"ea-radio\"\n  [ngClass]=\"hostClasses()\"\n  [for]=\"id()\">\n  <input\n    type=\"radio\"\n    class=\"ea-radio__input\"\n    [id]=\"id()\"\n    [name]=\"name()\"\n    [value]=\"value()\"\n    [checked]=\"isChecked()\"\n    [disabled]=\"isDisabled()\"\n    (change)=\"handleChange()\" />\n\n  <span\n    class=\"ea-radio__circle\"\n    aria-hidden=\"true\">\n  </span>\n\n  @if (label()) {\n    <span class=\"ea-radio__label\">{{ label() }}</span>\n  }\n</label>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { isRtl } from '../direction';\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { formatGroupedNumber } from '../i18n/format-number';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the range slider track and thumbs. */\nexport type RangeSliderSize = EaSize;\n\n/** Tuple model emitted by the range slider: `[low, high]`, with `low <= high`. */\nexport type RangeSliderValue = readonly [number, number];\n\n/** Identifies which of the two thumbs an event affects. */\ntype Thumb = 'low' | 'high';\n\n// Default value formatter, identity-checked so a custom `formatValue` bypasses\n// the `groupThousands` grouping.\nconst FORMAT_PLAIN = (value: number): string => `${value}`;\n\n/**\n * Two-thumb extension of `<ea-slider>`. Drives a `[low, high]` numeric range\n * with pointer drag (the closer thumb to the pointer responds) and full\n * keyboard navigation per thumb (arrows / PageUp / PageDown / Home / End).\n * Tab moves between thumbs. Configurable `min`, `max`, `step`, optional value\n * display, and integrates with Angular forms via `ControlValueAccessor`.\n *\n * Overlap rule: a thumb cannot cross past the other; once it reaches the\n * opposite thumb's position, it clamps to that boundary. Drag-induced\n * overlap (where the user yanks the low thumb past the high) is resolved by\n * keeping the moving thumb on its side and the other thumb pinned.\n */\n@Component({\n  selector: 'ea-range-slider',\n  templateUrl: './range-slider.component.html',\n  styleUrl: './range-slider.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RangeSliderComponent),\n      multi: true,\n    },\n  ],\n})\nexport class RangeSliderComponent implements ControlValueAccessor {\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly trackEl = viewChild<ElementRef<HTMLDivElement>>('trackEl');\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly min = input<number>(0);\n  readonly max = input<number>(100);\n  readonly step = input<number>(1);\n  readonly size = input<RangeSliderSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly showValue = input<boolean>(false);\n  readonly showMinMaxLabels = input<boolean>(false);\n  readonly formatValue = input<(value: number) => string>(FORMAT_PLAIN);\n  /** Group thousands with commas in displayed values (ignored when a custom `formatValue` is set). */\n  readonly groupThousands = input<boolean>(true);\n  /** Accessible label for the low (start) thumb. Falls back to a localized default when omitted. */\n  readonly ariaLabelLow = input<string | undefined>(undefined, {\n    alias: 'aria-label-low',\n  });\n  /** Accessible label for the high (end) thumb. Falls back to a localized default when omitted. */\n  readonly ariaLabelHigh = input<string | undefined>(undefined, {\n    alias: 'aria-label-high',\n  });\n  readonly id = input<string>(uniqueId('ea-range-slider'));\n\n  readonly value = model<RangeSliderValue>([0, 100]);\n  /** Fires with the new `[low, high]` tuple whenever either thumb moves. */\n  readonly changed = output<RangeSliderValue>();\n\n  private readonly _formDisabled = signal(false);\n  readonly dragging = signal<Thumb | null>(null);\n\n  private onChange: (value: RangeSliderValue) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  /** Clamped, ordered `[low, high]` tuple: `low <= high`, both within `[min, max]`. */\n  readonly clampedValue = computed<RangeSliderValue>(() => {\n    const [a, b] = this.value();\n    const min = this.min();\n    const max = this.max();\n    const lo = Math.min(max, Math.max(min, Math.min(a, b)));\n    const hi = Math.min(max, Math.max(min, Math.max(a, b)));\n    return [lo, hi];\n  });\n\n  readonly lowPercent = computed(() => this.toPercent(this.clampedValue()[0]));\n  readonly highPercent = computed(() => this.toPercent(this.clampedValue()[1]));\n\n  readonly lowThumbLabel = computed(\n    () => this.ariaLabelLow() ?? this.i18n.messages().rangeSlider.lowThumbLabel,\n  );\n  readonly highThumbLabel = computed(\n    () => this.ariaLabelHigh() ?? this.i18n.messages().rangeSlider.highThumbLabel,\n  );\n\n  readonly lowThumbLabelledBy = computed(() => this.thumbLabelledBy('low'));\n  readonly highThumbLabelledBy = computed(() => this.thumbLabelledBy('high'));\n\n  private thumbLabelledBy(thumb: Thumb): string {\n    const thumbLabelId = `${this.id()}-${thumb}-label`;\n    return this.label() ? `${this.id()}-label ${thumbLabelId}` : thumbLabelId;\n  }\n\n  /** Formats a value for display, grouping thousands with commas unless a custom `formatValue` is set. */\n  protected formatDisplay(value: number): string {\n    const formatter = this.formatValue();\n    if (formatter !== FORMAT_PLAIN) {\n      return formatter(value);\n    }\n    return this.groupThousands()\n      ? formatGroupedNumber(\n          value,\n          this.i18n.locale(),\n          this.i18n.messages().numberFormat,\n          {\n            maximumFractionDigits: 20,\n          },\n        )\n      : `${value}`;\n  }\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly hostClasses = computed(() => ({\n    [`ea-range-slider--${this.size()}`]: true,\n    'ea-range-slider--error': this.hasError(),\n    'ea-range-slider--disabled': this.isDisabled(),\n    'ea-range-slider--dragging': this.dragging() !== null,\n  }));\n\n  writeValue(val: RangeSliderValue | null | undefined): void {\n    if (Array.isArray(val) && val.length === 2) {\n      const [a, b] = val;\n      const safeA = typeof a === 'number' && !isNaN(a) ? a : this.min();\n      const safeB = typeof b === 'number' && !isNaN(b) ? b : this.max();\n      this.value.set([safeA, safeB]);\n    } else {\n      this.value.set([this.min(), this.max()]);\n    }\n  }\n\n  registerOnChange(fn: (value: RangeSliderValue) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleKeydown(event: KeyboardEvent, thumb: Thumb): void {\n    if (this.isDisabled()) {\n      return;\n    }\n\n    const [lo, hi] = this.clampedValue();\n    const current = thumb === 'low' ? lo : hi;\n    const step = this.step();\n    const bigStep = Math.max(step * 10, (this.max() - this.min()) / 10);\n    const track = this.trackEl()?.nativeElement;\n    const rtl = track ? isRtl(track) : false;\n    let next: number;\n\n    switch (event.key) {\n      case 'ArrowUp':\n        next = current + step;\n        break;\n      case 'ArrowDown':\n        next = current - step;\n        break;\n      case 'ArrowRight':\n        next = current + (rtl ? -step : step);\n        break;\n      case 'ArrowLeft':\n        next = current + (rtl ? step : -step);\n        break;\n      case 'PageUp':\n        next = current + bigStep;\n        break;\n      case 'PageDown':\n        next = current - bigStep;\n        break;\n      case 'Home':\n        next = this.min();\n        break;\n      case 'End':\n        next = this.max();\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    this.commitThumb(thumb, next);\n  }\n\n  handleBlur(): void {\n    this.onTouched();\n  }\n\n  handleTrackPointerDown(event: PointerEvent): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    const track = this.trackEl()?.nativeElement;\n    if (!track) {\n      return;\n    }\n\n    // Pick whichever thumb is closer to the pointer's track-relative ratio,\n    // breaking ties toward the low thumb. Then begin dragging that thumb.\n    const raw = this.pointerToValue(event, track);\n    const [lo, hi] = this.clampedValue();\n    const target: Thumb = Math.abs(raw - lo) <= Math.abs(raw - hi) ? 'low' : 'high';\n\n    (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\n    this.dragging.set(target);\n    this.commitThumb(target, raw);\n  }\n\n  handleTrackPointerMove(event: PointerEvent): void {\n    const active = this.dragging();\n    if (!active || this.isDisabled()) {\n      return;\n    }\n    const track = this.trackEl()?.nativeElement;\n    if (!track) {\n      return;\n    }\n    this.commitThumb(active, this.pointerToValue(event, track));\n  }\n\n  handleTrackPointerUp(event: PointerEvent): void {\n    if (!this.dragging()) {\n      return;\n    }\n    (event.target as HTMLElement).releasePointerCapture?.(event.pointerId);\n    this.dragging.set(null);\n    this.onTouched();\n  }\n\n  private toPercent(value: number): number {\n    const range = this.max() - this.min();\n    if (range <= 0) {\n      return 0;\n    }\n    return ((value - this.min()) / range) * 100;\n  }\n\n  private pointerToValue(event: PointerEvent, track: HTMLDivElement): number {\n    const rect = track.getBoundingClientRect();\n    let ratio = Math.min(1, Math.max(0, (event.clientX - rect.left) / rect.width));\n    if (isRtl(track)) {\n      ratio = 1 - ratio;\n    }\n    return this.min() + ratio * (this.max() - this.min());\n  }\n\n  /** Snap to step, clamp to `[min, max]`, then constrain by the opposite thumb. */\n  private commitThumb(thumb: Thumb, raw: number): void {\n    const step = this.step();\n    const min = this.min();\n    const max = this.max();\n    const snapped = Math.round((raw - min) / step) * step + min;\n    const clamped = Math.min(max, Math.max(min, snapped));\n    const rounded = Number(clamped.toFixed(10));\n\n    const [lo, hi] = this.clampedValue();\n    let nextLo = lo;\n    let nextHi = hi;\n\n    if (thumb === 'low') {\n      nextLo = Math.min(rounded, hi);\n    } else {\n      nextHi = Math.max(rounded, lo);\n    }\n\n    if (nextLo === lo && nextHi === hi) {\n      return;\n    }\n    const next: RangeSliderValue = [nextLo, nextHi];\n    this.value.set(next);\n    this.onChange(next);\n    this.changed.emit(next);\n  }\n}\n","<div\n  class=\"ea-range-slider-field\"\n  [ngClass]=\"hostClasses()\">\n  @if (label() || showValue()) {\n    <div class=\"ea-range-slider-field__header\">\n      @if (label(); as labelText) {\n        <ea-field-label\n          [text]=\"labelText\"\n          [icon]=\"labelIcon()\"\n          [labelId]=\"id() + '-label'\"\n          [required]=\"required()\" />\n      }\n      @if (showValue()) {\n        <span class=\"ea-range-slider-field__value\">\n          <bdi>\n            {{ formatDisplay(clampedValue()[0]) }} –\n            {{ formatDisplay(clampedValue()[1]) }}\n          </bdi>\n        </span>\n      }\n    </div>\n  }\n\n  <div class=\"ea-range-slider\">\n    <span\n      class=\"ea-range-slider__thumb-label\"\n      [id]=\"id() + '-low-label'\">\n      {{ lowThumbLabel() }}\n    </span>\n    <span\n      class=\"ea-range-slider__thumb-label\"\n      [id]=\"id() + '-high-label'\">\n      {{ highThumbLabel() }}\n    </span>\n    <div\n      #trackEl\n      class=\"ea-range-slider__track\"\n      (pointerdown)=\"handleTrackPointerDown($event)\"\n      (pointermove)=\"handleTrackPointerMove($event)\"\n      (pointerup)=\"handleTrackPointerUp($event)\"\n      (pointercancel)=\"handleTrackPointerUp($event)\">\n      <div\n        class=\"ea-range-slider__fill\"\n        [style.inset-inline-start.%]=\"lowPercent()\"\n        [style.inset-inline-end.%]=\"100 - highPercent()\">\n      </div>\n      <div\n        class=\"ea-range-slider__thumb ea-range-slider__thumb--low\"\n        role=\"slider\"\n        tabindex=\"0\"\n        [id]=\"id() + '-low'\"\n        [attr.aria-labelledby]=\"lowThumbLabelledBy()\"\n        [attr.aria-valuemin]=\"min()\"\n        [attr.aria-valuemax]=\"clampedValue()[1]\"\n        [attr.aria-valuenow]=\"clampedValue()[0]\"\n        [attr.aria-valuetext]=\"formatDisplay(clampedValue()[0])\"\n        [attr.aria-disabled]=\"isDisabled() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-invalid]=\"hasError() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        [style.inset-inline-start.%]=\"lowPercent()\"\n        (keydown)=\"handleKeydown($event, 'low')\"\n        (blur)=\"handleBlur()\">\n      </div>\n      <div\n        class=\"ea-range-slider__thumb ea-range-slider__thumb--high\"\n        role=\"slider\"\n        tabindex=\"0\"\n        [id]=\"id() + '-high'\"\n        [attr.aria-labelledby]=\"highThumbLabelledBy()\"\n        [attr.aria-valuemin]=\"clampedValue()[0]\"\n        [attr.aria-valuemax]=\"max()\"\n        [attr.aria-valuenow]=\"clampedValue()[1]\"\n        [attr.aria-valuetext]=\"formatDisplay(clampedValue()[1])\"\n        [attr.aria-disabled]=\"isDisabled() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-invalid]=\"hasError() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        [style.inset-inline-start.%]=\"highPercent()\"\n        (keydown)=\"handleKeydown($event, 'high')\"\n        (blur)=\"handleBlur()\">\n      </div>\n    </div>\n\n    @if (showMinMaxLabels()) {\n      <div class=\"ea-range-slider__minmax\">\n        <span class=\"ea-range-slider__minmax-label\">\n          {{ formatDisplay(min()) }}\n        </span>\n        <span class=\"ea-range-slider__minmax-label\">\n          {{ formatDisplay(max()) }}\n        </span>\n      </div>\n    }\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-left-half-star',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 2 L8.91 8.26 L2 9.27 L7 14.14 L5.82 21.02 L12 17.77 Z\" />\n    </svg>\n  `,\n})\nexport class LeftHalfStarIconComponent extends IconComponentBase {\n  static readonly slug = 'left-half-star';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'left-half-star',\n    'half-star',\n    'half',\n    'left',\n    'partial',\n    'rating',\n    'star',\n    'shape',\n    'demi-étoile',\n    'demi',\n    'gauche',\n    'media-estrella',\n    'media',\n    'izquierda',\n    'μισό-αστέρι',\n    'μισό',\n    'αριστερά',\n    'pół-gwiazdy',\n    'pół',\n    'lewa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-star',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon\n        points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\" />\n    </svg>\n  `,\n})\nexport class StarIconComponent extends IconComponentBase {\n  static readonly slug = 'star';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'star',\n    'favorite',\n    'rating',\n    'bookmark',\n    'like',\n    'étoile',\n    'favori',\n    'estrella',\n    'favorito',\n    'αστέρι',\n    'αγαπημένο',\n    'gwiazda',\n    'ulubione',\n    'shape',\n  ];\n}\n","import { NgClass, NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  effect,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { isRtl } from '../direction';\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { LeftHalfStarIconComponent } from '../icons/left-half-star.component';\nimport { StarIconComponent } from '../icons/star.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Per-position render state, computed from the current display value. */\nexport type RatingStarState = 'empty' | 'half' | 'full';\n\n/** Visual size of the rating. */\nexport type RatingSize = EaSize;\n\n/**\n * Star-based rating input. Supports whole-star or half-star granularity (via\n * `allowHalf`), hover preview, keyboard navigation (Left/Right/Up/Down,\n * Home/End, 0-9 to jump), and a read-only display mode.\n *\n * The default `<ea-icon-star>` can be swapped via the `iconClass` input\n * (any standalone Angular component reference, e.g. `[iconClass]=\"HeartIconComponent\"`).\n * When `allowHalf` is true, the half-position render uses `halfIconClass`\n * (default `<ea-icon-left-half-star>`); if a consumer supplies their own\n * `iconClass` without a matching `halfIconClass`, the half is rendered with the\n * default left-half-star.\n *\n * Integrates with Angular forms via `ControlValueAccessor`. Emits the new\n * value through the `value` model (numeric 0..max in 1 or 0.5 increments).\n */\n@Component({\n  selector: 'ea-rating',\n  templateUrl: './rating.component.html',\n  styleUrl: './rating.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass, NgComponentOutlet],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RatingComponent),\n      multi: true,\n    },\n  ],\n})\nexport class RatingComponent implements ControlValueAccessor {\n  constructor() {\n    // Keep the value signal inside the [min, max] range even when set via\n    // direct template binding (`[value]=\"0\"` would otherwise bypass\n    // `writeValue`'s clamp).\n    effect(() => {\n      const current = this.value();\n      const clamped = this.clamp(current);\n      if (clamped !== current) {\n        this.value.set(clamped);\n      }\n    });\n  }\n\n  private readonly starsEl = viewChild<ElementRef<HTMLElement>>('starsEl');\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly size = input<RatingSize>('md');\n  readonly min = input<number>(0);\n  readonly max = input<number>(5);\n  readonly allowHalf = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  /** Clicking the current value clears the rating back to 0. */\n  readonly clearable = input<boolean>(true);\n  /** Standalone component class rendered for empty / full positions. */\n  readonly iconClass = input<Type<unknown>>(StarIconComponent);\n  /** Standalone component class rendered for half positions (when `allowHalf` is true). */\n  readonly halfIconClass = input<Type<unknown>>(LeftHalfStarIconComponent);\n  readonly id = input<string>(uniqueId('ea-rating'));\n\n  /** Current rating value, 0..max in 1 (or 0.5 when `allowHalf`) increments. */\n  readonly value = model<number>(0);\n\n  /** Fires when the user pre-selects a value via hover; `null` when the cursor leaves. */\n  readonly hoverChanged = output<number | null>();\n\n  protected readonly hoverValue = signal<number | null>(null);\n  protected readonly isFocused = signal(false);\n  private readonly _formDisabled = signal(false);\n\n  private onChange: (value: number) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  protected readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  protected readonly isInteractive = computed(\n    () => !this.isDisabled() && !this.readonly(),\n  );\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  protected readonly errorText = this.errorState.error;\n  protected readonly hasError = this.errorState.hasError;\n  protected readonly showError = this.hasError;\n  protected readonly showHint = computed(() => !!this.hint() && !this.hasError());\n  protected readonly step = computed(() => (this.allowHalf() ? 0.5 : 1));\n\n  /** Value used to render the stars (hover preview wins over committed value). */\n  protected readonly displayValue = computed(() => this.hoverValue() ?? this.value());\n\n  /** 1..max positions for the @for loop. */\n  protected readonly positions = computed(() =>\n    Array.from({ length: this.max() }, (_, i) => i + 1),\n  );\n\n  protected readonly hostClasses = computed(() => ({\n    [`ea-rating-field--${this.size()}`]: true,\n    'ea-rating-field--error': this.hasError(),\n    'ea-rating-field--disabled': this.isDisabled(),\n    'ea-rating-field--readonly': this.readonly(),\n    'ea-rating-field--focused': this.isFocused(),\n  }));\n\n  protected readonly errorId = computed(() => `${this.id()}-error`);\n  protected readonly hintId = computed(() => `${this.id()}-hint`);\n  protected readonly describedBy = computed(() => {\n    const ids: string[] = [];\n    if (this.showError()) {\n      ids.push(this.errorId());\n    }\n    if (this.showHint()) {\n      ids.push(this.hintId());\n    }\n    return ids.length ? ids.join(' ') : null;\n  });\n\n  protected readonly resolvedAriaLabel = computed(\n    () => this.label() ?? this.i18n.messages().rating.label,\n  );\n\n  /** Resolves the render state for star `pos` against the current display value. */\n  protected stateFor(pos: number): RatingStarState {\n    const v = this.displayValue();\n    if (v >= pos) {\n      return 'full';\n    }\n    if (this.allowHalf() && v > pos - 1 && v < pos) {\n      return 'half';\n    }\n    return 'empty';\n  }\n\n  /** Component class to instantiate for star `pos`. */\n  protected iconForState(state: RatingStarState): Type<unknown> {\n    return state === 'half' ? this.halfIconClass() : this.iconClass();\n  }\n\n  protected starAriaLabel(pos: number): string {\n    return this.i18n.messages().rating.valueLabel(pos, this.max());\n  }\n\n  writeValue(value: number | null | undefined): void {\n    this.value.set(this.clamp(value ?? 0));\n  }\n\n  registerOnChange(fn: (value: number) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  protected onPointerMove(event: PointerEvent, pos: number): void {\n    if (!this.isInteractive()) {\n      return;\n    }\n    // Clamp the hover preview to `min` so the user never sees a star preview\n    // below the floor, matching what an Enter/click would actually commit.\n    this.hoverValue.set(Math.max(this.min(), this.computePointerValue(event, pos)));\n    this.hoverChanged.emit(this.hoverValue());\n  }\n\n  protected onPointerLeave(): void {\n    if (this.hoverValue() === null) {\n      return;\n    }\n    this.hoverValue.set(null);\n    this.hoverChanged.emit(null);\n  }\n\n  protected onClick(event: MouseEvent, pos: number): void {\n    if (!this.isInteractive()) {\n      return;\n    }\n    const next = this.computePointerValue(event, pos);\n    // Click-same-to-clear only applies when `min === 0`; with a non-zero\n    // floor the clear-to-zero action is meaningless, so a re-click is a no-op\n    // (just like ArrowDown can't lower past `min`).\n    if (this.clearable() && this.min() === 0 && next === this.value()) {\n      this.commit(0);\n    } else {\n      this.commit(next);\n    }\n  }\n\n  protected onFocus(): void {\n    this.isFocused.set(true);\n  }\n\n  protected onBlur(): void {\n    this.isFocused.set(false);\n    this.onTouched();\n  }\n\n  protected onKeydown(event: KeyboardEvent): void {\n    if (!this.isInteractive()) {\n      return;\n    }\n    const step = this.step();\n    const min = this.min();\n    const max = this.max();\n    const rtl = isRtl(event.currentTarget as Element);\n    const dec = (): number => Math.max(min, this.value() - step);\n    const inc = (): number => Math.min(max, this.value() + step);\n    let next: number | null = null;\n\n    switch (event.key) {\n      case 'ArrowDown':\n        next = dec();\n        break;\n      case 'ArrowUp':\n        next = inc();\n        break;\n      case 'ArrowLeft':\n        next = rtl ? inc() : dec();\n        break;\n      case 'ArrowRight':\n        next = rtl ? dec() : inc();\n        break;\n      case 'Home':\n        next = Math.max(min, step);\n        break;\n      case 'End':\n        next = max;\n        break;\n      case 'Delete':\n      case 'Backspace':\n        next = min;\n        break;\n      default:\n        if (/^[0-9]$/.test(event.key)) {\n          next = Math.min(max, Math.max(min, parseInt(event.key, 10)));\n        }\n    }\n\n    if (next !== null) {\n      event.preventDefault();\n      this.commit(next);\n    }\n  }\n\n  private commit(next: number): void {\n    const clamped = this.clamp(next);\n    if (clamped === this.value()) {\n      return;\n    }\n    this.value.set(clamped);\n    this.onChange(clamped);\n  }\n\n  private clamp(value: number): number {\n    const min = this.min();\n    const max = this.max();\n    const step = this.step();\n    const snapped = Math.round(value / step) * step;\n    return Math.min(max, Math.max(min, snapped));\n  }\n\n  private computePointerValue(event: { clientX: number }, pos: number): number {\n    if (!this.allowHalf()) {\n      return pos;\n    }\n    const target = (event as PointerEvent).target as HTMLElement | null;\n    const rect = target?.getBoundingClientRect();\n    if (!rect || rect.width === 0) {\n      return pos;\n    }\n    let ratio = (event.clientX - rect.left) / rect.width;\n    if (target && isRtl(target)) {\n      ratio = 1 - ratio;\n    }\n    return ratio < 0.5 ? pos - 0.5 : pos;\n  }\n}\n","<div\n  class=\"ea-rating-field\"\n  [ngClass]=\"hostClasses()\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    #starsEl\n    class=\"ea-rating-field__stars\"\n    role=\"slider\"\n    tabindex=\"0\"\n    [id]=\"id()\"\n    [attr.aria-label]=\"resolvedAriaLabel()\"\n    [attr.aria-valuemin]=\"min()\"\n    [attr.aria-valuemax]=\"max()\"\n    [attr.aria-valuenow]=\"value()\"\n    [attr.aria-valuetext]=\"starAriaLabel(value())\"\n    [attr.aria-readonly]=\"readonly() ? true : null\"\n    [attr.aria-disabled]=\"isDisabled() ? true : null\"\n    [attr.aria-required]=\"required() || null\"\n    [attr.aria-invalid]=\"hasError() || null\"\n    [attr.aria-describedby]=\"describedBy()\"\n    (keydown)=\"onKeydown($event)\"\n    (focus)=\"onFocus()\"\n    (blur)=\"onBlur()\"\n    (pointerleave)=\"onPointerLeave()\">\n    @for (pos of positions(); track pos) {\n      <!--\n        Stars are presentational click targets. The parent\n        `<div role=\"slider\">` is the canonical interactive element (keyboard\n        and AT navigation flows through it); using `<button>` here would\n        nest two interactive controls and trip axe's `nested-interactive`.\n      -->\n      <span\n        role=\"presentation\"\n        class=\"ea-rating-field__star\"\n        [class.ea-rating-field__star--full]=\"stateFor(pos) === 'full'\"\n        [class.ea-rating-field__star--half]=\"stateFor(pos) === 'half'\"\n        [class.ea-rating-field__star--empty]=\"stateFor(pos) === 'empty'\"\n        [class.ea-rating-field__star--inert]=\"!isInteractive()\"\n        (pointermove)=\"onPointerMove($event, pos)\"\n        (click)=\"onClick($event, pos)\">\n        <!--\n          Background layer is always rendered as the dim full-star outline so\n          empty positions show a visible silhouette and half positions reveal\n          the unfilled side behind the foreground. Thinner stroke keeps the\n          outline visually quiet against the filled foreground.\n        -->\n        <span\n          class=\"ea-rating-field__star-icon ea-rating-field__star-icon--background\"\n          aria-hidden=\"true\">\n          <ng-container *ngComponentOutlet=\"iconClass(); inputs: { strokeWidth: 1.5 }\" />\n        </span>\n        @if (stateFor(pos) !== 'empty') {\n          <span\n            class=\"ea-rating-field__star-icon ea-rating-field__star-icon--foreground\"\n            aria-hidden=\"true\">\n            <ng-container\n              *ngComponentOutlet=\"\n                stateFor(pos) === 'half' ? halfIconClass() : iconClass()\n              \" />\n          </span>\n        }\n      </span>\n    }\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  input,\n  model,\n  output,\n  signal,\n  viewChildren,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { isRtl } from '../direction';\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport type { SelectOption } from '../select-option';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the segmented control. */\nexport type SegmentedSize = EaSize;\n\n/**\n * Compact toggle button group for picking one of a small set of options\n * (e.g. List/Grid/Kanban or Light/Dark). Implements `radiogroup` semantics\n * and `ControlValueAccessor`, with full keyboard support\n * (arrow keys, Home/End, Enter/Space).\n */\n@Component({\n  selector: 'ea-segmented',\n  templateUrl: './segmented.component.html',\n  styleUrl: './segmented.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class.ea-segmented-host--full-width]': 'fullWidth()',\n  },\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SegmentedComponent),\n      multi: true,\n    },\n  ],\n})\nexport class SegmentedComponent implements ControlValueAccessor {\n  readonly buttonEls = viewChildren<ElementRef<HTMLButtonElement>>('optionEl');\n\n  readonly options = input.required<SelectOption[]>();\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly size = input<SegmentedSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly fullWidth = input<boolean>(false);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly id = input<string>(uniqueId('ea-segmented'));\n\n  readonly value = model<string>('');\n  /** Fires with the new value when the user selects a different option. */\n  readonly changed = output<string>();\n\n  private readonly _formDisabled = signal(false);\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly enabledOptions = computed(() => this.options().filter(opt => !opt.disabled));\n\n  readonly firstEnabledIndex = computed(() =>\n    this.options().findIndex(opt => !opt.disabled),\n  );\n\n  // The selected option only qualifies as the tab stop while enabled; a value\n  // pointing at a disabled or missing option must not leave the group unreachable\n  readonly tabStopIndex = computed(() => {\n    const selected = this.options().findIndex(\n      opt => opt.value === this.value() && !opt.disabled,\n    );\n    return selected >= 0 ? selected : this.firstEnabledIndex();\n  });\n\n  readonly hostClasses = computed(() => ({\n    [`ea-segmented--${this.size()}`]: true,\n    'ea-segmented--full-width': this.fullWidth(),\n    'ea-segmented--disabled': this.isDisabled(),\n    'ea-segmented--error': this.hasError(),\n  }));\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  isSelected(option: SelectOption): boolean {\n    return this.value() === option.value;\n  }\n\n  isOptionDisabled(option: SelectOption): boolean {\n    return this.isDisabled() || !!option.disabled;\n  }\n\n  /** Programmatically selects the given option. */\n  select(option: SelectOption): void {\n    if (this.isOptionDisabled(option)) {\n      return;\n    }\n    if (this.value() === option.value) {\n      this.onTouched();\n      return;\n    }\n    this.value.set(option.value);\n    this.onChange(option.value);\n    this.onTouched();\n    this.changed.emit(option.value);\n  }\n\n  handleKeydown(event: KeyboardEvent, index: number): void {\n    if (this.isDisabled()) {\n      return;\n    }\n\n    const enabled = this.enabledOptions();\n    if (enabled.length === 0) {\n      return;\n    }\n\n    const rtl = isRtl(event.currentTarget as Element);\n    const current = enabled.findIndex(o => o.value === this.value());\n    const nextValue = (): string =>\n      enabled[(current + 1 + enabled.length) % enabled.length].value;\n    const prevValue = (): string =>\n      enabled[(current - 1 + enabled.length) % enabled.length].value;\n    let targetValue: string | null = null;\n\n    switch (event.key) {\n      case 'ArrowDown':\n        targetValue = nextValue();\n        break;\n      case 'ArrowUp':\n        targetValue = prevValue();\n        break;\n      case 'ArrowRight':\n        targetValue = rtl ? prevValue() : nextValue();\n        break;\n      case 'ArrowLeft':\n        targetValue = rtl ? nextValue() : prevValue();\n        break;\n      case 'Home':\n        targetValue = enabled[0].value;\n        break;\n      case 'End':\n        targetValue = enabled[enabled.length - 1].value;\n        break;\n      case ' ':\n      case 'Enter': {\n        const opt = this.options()[index];\n        if (opt) {\n          this.select(opt);\n        }\n        event.preventDefault();\n        return;\n      }\n      default:\n        return;\n    }\n\n    if (targetValue !== null) {\n      event.preventDefault();\n      const opt = this.options().find(o => o.value === targetValue);\n      if (opt) {\n        this.select(opt);\n        const targetIndex = this.options().findIndex(o => o.value === targetValue);\n        queueMicrotask(() => this.buttonEls()[targetIndex]?.nativeElement.focus());\n      }\n    }\n  }\n}\n","<div\n  class=\"ea-segmented-field ea-segmented-field--{{ size() }}\"\n  [class.ea-segmented-field--full-width]=\"fullWidth()\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [labelId]=\"id() + '-label'\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    class=\"ea-segmented\"\n    role=\"radiogroup\"\n    [ngClass]=\"hostClasses()\"\n    [attr.aria-labelledby]=\"label() ? id() + '-label' : null\"\n    [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n    [attr.aria-required]=\"required() || null\"\n    [attr.aria-invalid]=\"hasError() || null\"\n    [attr.aria-disabled]=\"isDisabled() || null\"\n    [attr.aria-describedby]=\"\n      showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n    \">\n    @for (option of options(); track option.value; let i = $index) {\n      <button\n        #optionEl\n        type=\"button\"\n        class=\"ea-segmented__option\"\n        role=\"radio\"\n        [class.ea-segmented__option--selected]=\"isSelected(option)\"\n        [class.ea-segmented__option--disabled]=\"isOptionDisabled(option)\"\n        [attr.aria-checked]=\"isSelected(option)\"\n        [attr.aria-disabled]=\"isOptionDisabled(option) || null\"\n        [disabled]=\"isOptionDisabled(option)\"\n        [attr.tabindex]=\"i === tabStopIndex() ? 0 : -1\"\n        (click)=\"select(option)\"\n        (keydown)=\"handleKeydown($event, i)\">\n        {{ option.label }}\n      </button>\n    }\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { isRtl } from '../direction';\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { formatGroupedNumber } from '../i18n/format-number';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the slider track and thumb. */\nexport type SliderSize = EaSize;\n\n// Default value formatter, identity-checked so a custom `formatValue` bypasses\n// the `groupThousands` grouping.\nconst FORMAT_PLAIN = (value: number): string => `${value}`;\n\n/**\n * Single-value range input controlled with pointer drag or full keyboard\n * navigation (arrows, PageUp/PageDown, Home/End). Supports configurable\n * `min`, `max`, and `step`, optional value display, and integrates with\n * Angular forms via `ControlValueAccessor`.\n */\n/** How far the magnet reaches either side of a snap value, in pixels. */\nconst SNAP_REACH_PX = 8;\n\n@Component({\n  selector: 'ea-slider',\n  templateUrl: './slider.component.html',\n  styleUrl: './slider.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SliderComponent),\n      multi: true,\n    },\n  ],\n})\nexport class SliderComponent implements ControlValueAccessor {\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly trackEl = viewChild<ElementRef<HTMLDivElement>>('trackEl');\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Force the error-state styling without binding `errorMsg`. Lets consumers\n   *  render the error text themselves (e.g. above the slider in a form layout)\n   *  while still getting the built-in recolour of the fill and thumb. */\n  readonly hasError = input<boolean>(false);\n  readonly min = input<number>(0);\n  readonly max = input<number>(100);\n  readonly step = input<number>(1);\n  readonly size = input<SliderSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly showValue = input<boolean>(false);\n  readonly showMinMaxLabels = input<boolean>(false);\n  readonly formatValue = input<(value: number) => string>(FORMAT_PLAIN);\n  /**\n   * Values the thumb is pulled onto while dragging, each drawn as a tick on\n   * the track. The pull reaches a few pixels either side, so a marked value\n   * can be landed exactly without hunting for it.\n   */\n  readonly snapValues = input<readonly number[]>([]);\n  /** Group thousands with commas in displayed values (ignored when a custom `formatValue` is set). */\n  readonly groupThousands = input<boolean>(true);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly id = input<string>(uniqueId('ea-slider'));\n\n  readonly value = model<number>(0);\n  /** Fires with the new (snapped, clamped) numeric value whenever the slider moves. */\n  readonly changed = output<number>();\n\n  private readonly _formDisabled = signal(false);\n  readonly dragging = signal(false);\n\n  private onChange: (value: number) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n\n  readonly clampedValue = computed(() => {\n    const v = this.value();\n    return Math.min(this.max(), Math.max(this.min(), v));\n  });\n\n  readonly percent = computed(() => {\n    const range = this.max() - this.min();\n    if (range <= 0) {\n      return 0;\n    }\n    return ((this.clampedValue() - this.min()) / range) * 100;\n  });\n\n  /** Where each snap value's tick sits along the track. */\n  readonly tickPercents = computed(() => {\n    const range = this.max() - this.min();\n    if (range <= 0) {\n      return [];\n    }\n    return this.snapValues()\n      .filter(held => held >= this.min() && held <= this.max())\n      .map(held => ((held - this.min()) / range) * 100);\n  });\n\n  /** Formats a value for display, grouping thousands with commas unless a custom `formatValue` is set. */\n  protected formatDisplay(value: number): string {\n    const formatter = this.formatValue();\n    if (formatter !== FORMAT_PLAIN) {\n      return formatter(value);\n    }\n    return this.groupThousands()\n      ? formatGroupedNumber(\n          value,\n          this.i18n.locale(),\n          this.i18n.messages().numberFormat,\n          {\n            maximumFractionDigits: 20,\n          },\n        )\n      : `${value}`;\n  }\n\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly errored = computed(() => this.hasError() || this.showError());\n  readonly showError = computed(() => this.errorText() !== null);\n  /* Hint stays visible when the consumer is rendering the error elsewhere\n     (`hasError=true` without `errorMsg`); only the slider's own inline message\n     replaces it. */\n  readonly showHint = computed(() => !!this.hint() && !this.showError());\n\n  readonly hostClasses = computed(() => ({\n    [`ea-slider--${this.size()}`]: true,\n    'ea-slider--error': this.errored(),\n    'ea-slider--disabled': this.isDisabled(),\n    'ea-slider--dragging': this.dragging(),\n  }));\n\n  writeValue(val: number): void {\n    this.value.set(typeof val === 'number' && !isNaN(val) ? val : this.min());\n  }\n\n  registerOnChange(fn: (value: number) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled()) {\n      return;\n    }\n\n    const step = this.step();\n    const bigStep = Math.max(step * 10, (this.max() - this.min()) / 10);\n    const track = this.trackEl()?.nativeElement;\n    const rtl = track ? isRtl(track) : false;\n    let next: number;\n\n    switch (event.key) {\n      case 'ArrowUp':\n        next = this.clampedValue() + step;\n        break;\n      case 'ArrowDown':\n        next = this.clampedValue() - step;\n        break;\n      case 'ArrowRight':\n        next = this.clampedValue() + (rtl ? -step : step);\n        break;\n      case 'ArrowLeft':\n        next = this.clampedValue() + (rtl ? step : -step);\n        break;\n      case 'PageUp':\n        next = this.clampedValue() + bigStep;\n        break;\n      case 'PageDown':\n        next = this.clampedValue() - bigStep;\n        break;\n      case 'Home':\n        next = this.min();\n        break;\n      case 'End':\n        next = this.max();\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    this.commitValue(next);\n  }\n\n  handlePointerDown(event: PointerEvent): void {\n    if (this.isDisabled() || event.button !== 0) {\n      return;\n    }\n    const track = this.trackEl()?.nativeElement;\n    if (!track) {\n      return;\n    }\n\n    // Captured on the track rather than whatever child was pressed, so every\n    // later event of the drag flows through the one element listening for it\n    track.setPointerCapture?.(event.pointerId);\n    this.dragging.set(true);\n    this.updateFromPointer(event, track);\n  }\n\n  handlePointerMove(event: PointerEvent): void {\n    if (!this.dragging() || this.isDisabled()) {\n      return;\n    }\n    // A release that never reached us leaves the drag armed, and the thumb\n    // chasing a lifted pointer; a move with no button down stands it down\n    if (event.buttons === 0) {\n      this.handlePointerUp(event);\n      return;\n    }\n    const track = this.trackEl()?.nativeElement;\n    if (!track) {\n      return;\n    }\n    this.updateFromPointer(event, track);\n  }\n\n  handlePointerUp(event: PointerEvent): void {\n    if (!this.dragging()) {\n      return;\n    }\n    const track = this.trackEl()?.nativeElement;\n    if (track?.hasPointerCapture?.(event.pointerId)) {\n      track.releasePointerCapture(event.pointerId);\n    }\n    this.dragging.set(false);\n    this.onTouched();\n  }\n\n  handleBlur(): void {\n    this.onTouched();\n  }\n\n  private updateFromPointer(event: PointerEvent, track: HTMLDivElement): void {\n    const rect = track.getBoundingClientRect();\n    let ratio = Math.min(1, Math.max(0, (event.clientX - rect.left) / rect.width));\n    if (isRtl(track)) {\n      ratio = 1 - ratio;\n    }\n    const range = this.max() - this.min();\n    const raw = this.min() + ratio * range;\n\n    const magnet = this.magnetTarget(raw, rect.width, range);\n    if (magnet !== null) {\n      this.commitValue(magnet, true);\n    } else {\n      this.commitValue(raw);\n    }\n  }\n\n  /** The snap value within the magnet's reach of the pointer, if any. */\n  private magnetTarget(raw: number, trackWidth: number, range: number): number | null {\n    const values = this.snapValues();\n    if (!values.length || range <= 0 || trackWidth <= 0) {\n      return null;\n    }\n\n    const reach = (SNAP_REACH_PX / trackWidth) * range;\n    let best: number | null = null;\n    let bestDistance = Infinity;\n    for (const held of values) {\n      const distance = Math.abs(held - raw);\n      if (distance <= reach && distance < bestDistance) {\n        best = held;\n        bestDistance = distance;\n      }\n    }\n\n    return best;\n  }\n\n  // Exact for a magnetised value: the snap is the point of it, so the step\n  // grid does not get to round it away\n  private commitValue(raw: number, exact = false): void {\n    const step = this.step();\n    const min = this.min();\n    const max = this.max();\n    const snapped = exact ? raw : Math.round((raw - min) / step) * step + min;\n    const clamped = Math.min(max, Math.max(min, snapped));\n    const rounded = Number(clamped.toFixed(10));\n    if (rounded === this.value()) {\n      return;\n    }\n    this.value.set(rounded);\n    this.onChange(rounded);\n    this.changed.emit(rounded);\n  }\n}\n","<div\n  class=\"ea-slider-field\"\n  [ngClass]=\"hostClasses()\">\n  @if (label() || showValue()) {\n    <div class=\"ea-slider-field__header\">\n      @if (label(); as labelText) {\n        <ea-field-label\n          [text]=\"labelText\"\n          [icon]=\"labelIcon()\"\n          [labelId]=\"id() + '-label'\"\n          [required]=\"required()\" />\n      }\n      @if (showValue()) {\n        <span class=\"ea-slider-field__value\">\n          {{ formatDisplay(clampedValue()) }}\n        </span>\n      }\n    </div>\n  }\n\n  <div class=\"ea-slider\">\n    <div\n      #trackEl\n      class=\"ea-slider__track\"\n      (pointerdown)=\"handlePointerDown($event)\"\n      (pointermove)=\"handlePointerMove($event)\"\n      (pointerup)=\"handlePointerUp($event)\"\n      (pointercancel)=\"handlePointerUp($event)\"\n      (lostpointercapture)=\"handlePointerUp($event)\">\n      <div\n        class=\"ea-slider__fill\"\n        [style.width.%]=\"percent()\">\n      </div>\n      @for (tick of tickPercents(); track $index) {\n        <span\n          class=\"ea-slider__tick\"\n          aria-hidden=\"true\"\n          [style.inset-inline-start.%]=\"tick\">\n        </span>\n      }\n      <div\n        class=\"ea-slider__thumb\"\n        role=\"slider\"\n        tabindex=\"0\"\n        [id]=\"id()\"\n        [attr.aria-labelledby]=\"label() ? id() + '-label' : null\"\n        [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n        [attr.aria-valuemin]=\"min()\"\n        [attr.aria-valuemax]=\"max()\"\n        [attr.aria-valuenow]=\"clampedValue()\"\n        [attr.aria-valuetext]=\"formatDisplay(clampedValue())\"\n        [attr.aria-disabled]=\"isDisabled() || null\"\n        [attr.aria-required]=\"required() || null\"\n        [attr.aria-invalid]=\"errored() || null\"\n        [attr.aria-describedby]=\"\n          showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n        \"\n        [style.inset-inline-start.%]=\"percent()\"\n        (keydown)=\"handleKeydown($event)\"\n        (blur)=\"handleBlur()\">\n      </div>\n    </div>\n\n    @if (showMinMaxLabels()) {\n      <div class=\"ea-slider__minmax\">\n        <span class=\"ea-slider__minmax-label\">\n          {{ formatDisplay(min()) }}\n        </span>\n        <span class=\"ea-slider__minmax-label\">\n          {{ formatDisplay(max()) }}\n        </span>\n      </div>\n    }\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { type EaSize } from '../sizes';\n\n/** Visual size of the spinner. */\nexport type SpinnerSize = EaSize;\n\n/**\n * SVG loading indicator with an accessible `role=\"status\"`. The `label` input\n * overrides the accessible name announced to assistive technology; when unset\n * it falls back to the active locale's translation.\n */\n@Component({\n  selector: 'ea-spinner',\n  imports: [NgClass],\n  templateUrl: './spinner.component.html',\n  styleUrl: './spinner.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class SpinnerComponent {\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly size = input<SpinnerSize>('md');\n  readonly label = input<string | undefined>(undefined);\n\n  /** Accessible label, falling back to the active locale's translation. */\n  readonly resolvedLabel = computed(\n    () => this.label() ?? this.i18n.messages().spinner.label,\n  );\n\n  readonly hostClasses = computed(() => ({\n    [`ea-spinner--${this.size()}`]: true,\n  }));\n}\n","<div\n  class=\"ea-spinner\"\n  [ngClass]=\"hostClasses()\"\n  role=\"status\">\n  <svg\n    class=\"ea-spinner__circle\"\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n    aria-hidden=\"true\">\n    <circle\n      cx=\"12\"\n      cy=\"12\"\n      r=\"10\"\n      stroke=\"currentColor\"\n      stroke-width=\"3\"\n      opacity=\"0.25\" />\n    <path\n      d=\"M12 2a10 10 0 0 1 10 10\"\n      stroke=\"currentColor\"\n      stroke-width=\"3\"\n      stroke-linecap=\"round\" />\n  </svg>\n  <span class=\"ea-spinner__label\">{{ resolvedLabel() }}</span>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n} from '@angular/core';\n\nimport { isRtl } from '../direction';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { CheckIconComponent } from '../icons/check.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\nimport type { StepComponent } from './step.component';\n\n/** Visual size of the stepper. */\nexport type StepperSize = EaSize;\n\n/** Axis the steps are laid out along. */\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\n/**\n * Multi-step navigation paired with content panels. Child `<ea-step>`\n * components register themselves automatically and the active panel is\n * shown based on the `activeStep` (zero-based index) two-way binding.\n *\n * In `linear` mode, steps cannot be navigated to until all earlier\n * non-optional steps are marked `completed`. Otherwise any step can be\n * clicked. ArrowLeft / ArrowRight walk through reachable steps; Home/End\n * jump to the extremes.\n */\n@Component({\n  selector: 'ea-stepper',\n  templateUrl: './stepper.component.html',\n  styleUrl: './stepper.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [CheckIconComponent, NgClass],\n})\nexport class StepperComponent {\n  protected readonly i18n = inject(EagamiI18nService);\n\n  readonly registeredSteps = signal<StepComponent[]>([]);\n\n  readonly activeStep = model<number>(0);\n  readonly linear = input<boolean>(false);\n  readonly size = input<StepperSize>('md');\n  readonly orientation = input<StepperOrientation>('horizontal');\n  readonly disabled = input<boolean>(false);\n  readonly id = input<string>(uniqueId('ea-stepper'));\n\n  /** Fires with the new active step index when the user navigates. */\n  readonly changed = output<number>();\n\n  readonly hostClasses = computed(() => ({\n    [`ea-stepper--${this.size()}`]: true,\n    [`ea-stepper--${this.orientation()}`]: true,\n    'ea-stepper--disabled': this.disabled(),\n  }));\n\n  registerStep(step: StepComponent): void {\n    this.registeredSteps.update(steps => [...steps, step]);\n  }\n\n  unregisterStep(step: StepComponent): void {\n    this.registeredSteps.update(steps => steps.filter(s => s !== step));\n  }\n\n  /** Returns the index of a given step, or `-1` if it isn't registered. */\n  indexOf(step: StepComponent): number {\n    return this.registeredSteps().indexOf(step);\n  }\n\n  /**\n   * True when the user can navigate directly to the step at `index`. In\n   * non-linear mode this is true for any non-disabled step; in linear mode,\n   * every non-optional earlier step must also be marked `completed`.\n   */\n  canNavigateTo(index: number): boolean {\n    if (this.disabled()) {\n      return false;\n    }\n    const steps = this.registeredSteps();\n    if (index < 0 || index >= steps.length) {\n      return false;\n    }\n    if (steps[index].disabled()) {\n      return false;\n    }\n    if (!this.linear()) {\n      return true;\n    }\n    if (index <= this.activeStep()) {\n      return true;\n    }\n    for (let i = 0; i < index; i++) {\n      const step = steps[i];\n      if (!step.completed() && !step.optional()) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  /** Activate the step at `index` if reachable. */\n  selectStep(index: number): void {\n    if (!this.canNavigateTo(index)) {\n      return;\n    }\n    if (index === this.activeStep()) {\n      return;\n    }\n    this.activeStep.set(index);\n    this.changed.emit(index);\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    if (this.disabled()) {\n      return;\n    }\n    const steps = this.registeredSteps();\n    if (steps.length === 0) {\n      return;\n    }\n\n    const vertical = this.orientation() === 'vertical';\n    const rtl = isRtl(event.currentTarget as Element);\n    const forwardKey = vertical ? 'ArrowDown' : rtl ? 'ArrowLeft' : 'ArrowRight';\n    const backwardKey = vertical ? 'ArrowUp' : rtl ? 'ArrowRight' : 'ArrowLeft';\n\n    let nextIndex = -1;\n    if (event.key === forwardKey) {\n      event.preventDefault();\n      nextIndex = this.nextReachable(this.activeStep(), 1);\n    } else if (event.key === backwardKey) {\n      event.preventDefault();\n      nextIndex = this.nextReachable(this.activeStep(), -1);\n    } else if (event.key === 'Home') {\n      event.preventDefault();\n      nextIndex = this.firstReachable();\n    } else if (event.key === 'End') {\n      event.preventDefault();\n      nextIndex = this.lastReachable();\n    }\n\n    if (nextIndex >= 0 && nextIndex !== this.activeStep()) {\n      this.selectStep(nextIndex);\n      const buttons = (\n        event.currentTarget as HTMLElement\n      ).querySelectorAll<HTMLButtonElement>('.ea-stepper__button:not([disabled])');\n      // Match the focused button to the new index (visit order matches DOM order)\n      const reachableIndices = this.registeredSteps()\n        .map((_, i) => i)\n        .filter(i => this.canNavigateTo(i));\n      const buttonIdx = reachableIndices.indexOf(nextIndex);\n      buttons[buttonIdx]?.focus();\n    }\n  }\n\n  private nextReachable(from: number, direction: 1 | -1): number {\n    const steps = this.registeredSteps();\n    for (let i = from + direction; i >= 0 && i < steps.length; i += direction) {\n      if (this.canNavigateTo(i)) {\n        return i;\n      }\n    }\n    return -1;\n  }\n\n  private firstReachable(): number {\n    const steps = this.registeredSteps();\n    for (let i = 0; i < steps.length; i++) {\n      if (this.canNavigateTo(i)) {\n        return i;\n      }\n    }\n    return -1;\n  }\n\n  private lastReachable(): number {\n    const steps = this.registeredSteps();\n    for (let i = steps.length - 1; i >= 0; i--) {\n      if (this.canNavigateTo(i)) {\n        return i;\n      }\n    }\n    return -1;\n  }\n}\n","<div\n  class=\"ea-stepper\"\n  [ngClass]=\"hostClasses()\">\n  <div\n    class=\"ea-stepper__list\"\n    role=\"tablist\"\n    [attr.aria-label]=\"i18n.messages().stepper.stepsLabel\"\n    [attr.aria-orientation]=\"orientation()\"\n    (keydown)=\"handleKeydown($event)\">\n    @for (step of registeredSteps(); let i = $index; track step) {\n      <button\n        type=\"button\"\n        role=\"tab\"\n        class=\"ea-stepper__button\"\n        [class.ea-stepper__button--active]=\"i === activeStep()\"\n        [class.ea-stepper__button--completed]=\"step.completed()\"\n        [id]=\"step.id() + '-tab'\"\n        [attr.aria-controls]=\"i === activeStep() ? step.id() + '-panel' : null\"\n        [attr.aria-selected]=\"i === activeStep()\"\n        [disabled]=\"!canNavigateTo(i)\"\n        [tabindex]=\"i === activeStep() ? 0 : -1\"\n        (click)=\"selectStep(i)\">\n        <span\n          class=\"ea-stepper__circle\"\n          aria-hidden=\"true\">\n          @if (step.completed()) {\n            <ea-icon-check />\n          } @else {\n            {{ i + 1 }}\n          }\n        </span>\n        <span class=\"ea-stepper__label\">\n          {{ step.label() }}\n          @if (step.optional()) {\n            <span class=\"ea-stepper__optional\">\n              ({{ i18n.messages().stepper.optional }})\n            </span>\n          }\n        </span>\n        @if (step.completed()) {\n          <span class=\"ea-stepper__completed-label\">\n            {{ i18n.messages().stepper.stepCompleted }}\n          </span>\n        }\n      </button>\n      @if (i < registeredSteps().length - 1) {\n        <span\n          class=\"ea-stepper__connector\"\n          [class.ea-stepper__connector--completed]=\"step.completed()\"\n          aria-hidden=\"true\">\n        </span>\n      }\n    }\n  </div>\n  <ng-content />\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  type OnDestroy,\n  type OnInit,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { uniqueId } from '../unique-id';\nimport { StepperComponent } from './stepper.component';\n\n/**\n * Single step within an `<ea-stepper>`. Registers itself with the parent on\n * init, exposes its `label` / `completed` / `optional` flags, and shows its\n * projected content when active.\n */\n@Component({\n  selector: 'ea-step',\n  host: { '[style.display]': 'isActive() ? null : \"none\"' },\n  template: `\n    @if (isActive()) {\n      <div\n        class=\"ea-step__panel\"\n        role=\"tabpanel\"\n        [id]=\"id() + '-panel'\"\n        [attr.aria-labelledby]=\"id() + '-tab'\"\n        tabindex=\"0\">\n        <ng-content />\n      </div>\n    }\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepComponent implements OnInit, OnDestroy {\n  private readonly stepper = inject(StepperComponent);\n\n  readonly label = input.required<string>();\n  readonly completed = input<boolean>(false);\n  readonly disabled = input<boolean>(false);\n  readonly optional = input<boolean>(false);\n  readonly id = input<string>(uniqueId('ea-step'));\n\n  readonly isActive = computed(\n    () => this.stepper.indexOf(this) === this.stepper.activeStep(),\n  );\n\n  ngOnInit(): void {\n    this.stepper.registerStep(this);\n  }\n\n  ngOnDestroy(): void {\n    this.stepper.unregisterStep(this);\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  forwardRef,\n  input,\n  model,\n  output,\n  signal,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the switch. */\nexport type SwitchSize = EaSize;\n\n/**\n * On/off toggle styled as a sliding switch. Backed by a visually hidden\n * native checkbox and integrates with Angular forms via\n * `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-switch',\n  imports: [FieldMessagesComponent, NgClass],\n  templateUrl: './switch.component.html',\n  styleUrl: './switch.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SwitchComponent),\n      multi: true,\n    },\n  ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n  readonly label = input<string | undefined>(undefined);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly size = input<SwitchSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly id = input<string>(uniqueId('ea-switch'));\n\n  readonly checked = model<boolean>(false);\n  /** Fires with the new checked state whenever the user toggles the switch. */\n  readonly changed = output<boolean>();\n\n  private readonly _formDisabled = signal(false);\n\n  private onChange: (value: boolean) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly hostClasses = computed(() => ({\n    [`ea-switch--${this.size()}`]: true,\n    'ea-switch--checked': this.checked(),\n    'ea-switch--disabled': this.isDisabled(),\n    'ea-switch--error': this.hasError(),\n  }));\n\n  writeValue(val: boolean): void {\n    this.checked.set(!!val);\n  }\n\n  registerOnChange(fn: (value: boolean) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleChange(): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    const newValue = !this.checked();\n    this.checked.set(newValue);\n    this.onChange(newValue);\n    this.onTouched();\n    this.changed.emit(newValue);\n  }\n}\n","<div class=\"ea-switch-field ea-switch-field--{{ size() }}\">\n  <label\n    class=\"ea-switch\"\n    [ngClass]=\"hostClasses()\"\n    [for]=\"id()\">\n    <input\n      class=\"ea-switch__input\"\n      type=\"checkbox\"\n      role=\"switch\"\n      [id]=\"id()\"\n      [checked]=\"checked()\"\n      [disabled]=\"isDisabled()\"\n      [required]=\"required()\"\n      [attr.aria-checked]=\"checked()\"\n      [attr.aria-label]=\"!label() ? (ariaLabel() ?? null) : null\"\n      [attr.aria-required]=\"required() || null\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (change)=\"handleChange()\" />\n    <span class=\"ea-switch__track\">\n      <span class=\"ea-switch__thumb\"></span>\n    </span>\n    @if (label()) {\n      <span\n        class=\"ea-switch__label\"\n        [class.ea-switch__label--required]=\"required()\">\n        {{ label() }}\n      </span>\n    }\n  </label>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  input,\n  model,\n  output,\n  signal,\n} from '@angular/core';\n\nimport { isRtl } from '../direction';\nimport { type EaSize } from '../sizes';\nimport type { TabComponent } from './tab.component';\n\n/** Visual style of the tab bar. */\nexport type TabsVariant = 'underline' | 'filled';\n/** Visual size of the tabs. */\nexport type TabsSize = EaSize;\n\n/**\n * Tab bar paired with content panels. Child `ea-tab` components register\n * themselves automatically and the active panel is shown based on the\n * `activeTab` two-way binding. Supports keyboard navigation\n * (arrow keys, Home/End).\n */\n@Component({\n  selector: 'ea-tabs',\n  templateUrl: './tabs.component.html',\n  styleUrl: './tabs.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabsComponent {\n  readonly registeredTabs = signal<TabComponent[]>([]);\n\n  readonly variant = input<TabsVariant>('underline');\n  readonly size = input<TabsSize>('md');\n  /** Accessible name for the tablist, announced by screen readers. */\n  readonly ariaLabel = input<string | undefined>(undefined);\n\n  readonly activeTab = model<string>('');\n\n  /** Fires with the value of the newly active tab. */\n  readonly changed = output<string>();\n\n  /** Registers a child tab so it appears in the tab bar; called automatically by `ea-tab`. */\n  registerTab(tab: TabComponent): void {\n    this.registeredTabs.update(tabs => [...tabs, tab]);\n  }\n\n  /** Removes a previously registered child tab; called automatically by `ea-tab`. */\n  unregisterTab(tab: TabComponent): void {\n    this.registeredTabs.update(tabs => tabs.filter(t => t !== tab));\n  }\n\n  /** Programmatically activates the tab with the given value. */\n  selectTab(value: string): void {\n    this.activeTab.set(value);\n    this.changed.emit(value);\n  }\n\n  handleKeydown(event: KeyboardEvent): void {\n    const tabList = this.registeredTabs().filter(t => !t.disabled());\n    const currentIndex = tabList.findIndex(t => t.value() === this.activeTab());\n    const rtl = isRtl(event.currentTarget as Element);\n    const forwardKey = rtl ? 'ArrowLeft' : 'ArrowRight';\n    const backwardKey = rtl ? 'ArrowRight' : 'ArrowLeft';\n    let nextIndex = -1;\n\n    if (event.key === forwardKey) {\n      event.preventDefault();\n      nextIndex = currentIndex < tabList.length - 1 ? currentIndex + 1 : 0;\n    } else if (event.key === backwardKey) {\n      event.preventDefault();\n      nextIndex = currentIndex > 0 ? currentIndex - 1 : tabList.length - 1;\n    } else if (event.key === 'Home') {\n      event.preventDefault();\n      nextIndex = 0;\n    } else if (event.key === 'End') {\n      event.preventDefault();\n      nextIndex = tabList.length - 1;\n    }\n\n    if (nextIndex >= 0) {\n      const tab = tabList[nextIndex];\n      this.selectTab(tab.value());\n      const buttons = (\n        event.currentTarget as HTMLElement\n      ).querySelectorAll<HTMLButtonElement>('[role=\"tab\"]:not([disabled])');\n      buttons[nextIndex]?.focus();\n    }\n  }\n}\n","<div class=\"ea-tabs\">\n  <div\n    class=\"ea-tabs__list ea-tabs__list--{{ size() }}\"\n    [class.ea-tabs__list--underline]=\"variant() === 'underline'\"\n    [class.ea-tabs__list--filled]=\"variant() === 'filled'\"\n    role=\"tablist\"\n    [attr.aria-label]=\"ariaLabel() || null\"\n    (keydown)=\"handleKeydown($event)\">\n    @for (tab of registeredTabs(); track tab.value()) {\n      <button\n        class=\"ea-tabs__trigger\"\n        [class.ea-tabs__trigger--active]=\"tab.isActive()\"\n        type=\"button\"\n        role=\"tab\"\n        [id]=\"tab.id() + '-tab'\"\n        [attr.aria-selected]=\"tab.isActive()\"\n        [attr.aria-controls]=\"tab.id() + '-panel'\"\n        [disabled]=\"tab.disabled()\"\n        [tabindex]=\"tab.isActive() ? 0 : -1\"\n        (click)=\"selectTab(tab.value())\">\n        {{ tab.label() }}\n      </button>\n    }\n  </div>\n  <ng-content />\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  type OnDestroy,\n  type OnInit,\n  computed,\n  inject,\n  input,\n} from '@angular/core';\n\nimport { uniqueId } from '../unique-id';\nimport { TabsComponent } from './tabs.component';\n\n/**\n * Single tab within an `ea-tabs` group. Registers itself with the parent on\n * init, exposes its `value` and `label`, and shows its projected content\n * when active.\n */\n@Component({\n  selector: 'ea-tab',\n  host: { '[style.display]': 'isActive() ? null : \"none\"' },\n  template: `\n    @if (isActive()) {\n      <div\n        class=\"ea-tab__panel\"\n        role=\"tabpanel\"\n        [id]=\"id() + '-panel'\"\n        [attr.aria-labelledby]=\"id() + '-tab'\"\n        tabindex=\"0\">\n        <ng-content />\n      </div>\n    }\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements OnInit, OnDestroy {\n  private readonly tabs = inject(TabsComponent);\n\n  readonly value = input.required<string>();\n  readonly label = input.required<string>();\n  readonly disabled = input<boolean>(false);\n  readonly id = input<string>(uniqueId('ea-tab'));\n\n  readonly isActive = computed(() => this.tabs.activeTab() === this.value());\n\n  ngOnInit(): void {\n    this.tabs.registerTab(this);\n  }\n\n  ngOnDestroy(): void {\n    this.tabs.unregisterTab(this);\n  }\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  type Type,\n  computed,\n  forwardRef,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\nconst DEFAULT_ROWS = 3;\n\n/** Visual size of the textarea. */\nexport type TextareaSize = EaSize;\n/** Axis along which the user is allowed to resize the textarea. */\nexport type TextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';\n\n/**\n * Multiline text field that mirrors the `ea-input` API. Supports configurable\n * `resize` direction and `maxlength`, and integrates with Angular\n * forms via `ControlValueAccessor`.\n */\n@Component({\n  selector: 'ea-textarea',\n  imports: [FieldLabelComponent, FieldMessagesComponent, NgClass],\n  templateUrl: './textarea.component.html',\n  styleUrl: './textarea.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TextareaComponent),\n      multi: true,\n    },\n  ],\n})\nexport class TextareaComponent implements ControlValueAccessor {\n  readonly textareaEl = viewChild<ElementRef<HTMLTextAreaElement>>('textareaEl');\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  /** Accessible name for the control when no visible `label` is set. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n  readonly placeholder = input<string>('');\n  readonly size = input<TextareaSize>('md');\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly resize = input<TextareaResize>('vertical');\n  readonly maxlength = input<number | undefined>(undefined);\n  /** Optional pixel ceiling for the textarea's height. Beyond it, the inner\n   * field scrolls vertically instead of growing. */\n  readonly maxHeight = input<number | undefined>(undefined);\n  /** Optional pixel floor for the textarea's height. Clamped so it never drops\n   * below the default height. */\n  readonly minHeight = input<number | undefined>(undefined);\n  readonly id = input<string>(uniqueId('ea-textarea'));\n\n  readonly value = model<string>('');\n\n  readonly isFocused = signal(false);\n  private readonly _formDisabled = signal(false);\n\n  /** Fires when the textarea receives focus. */\n  readonly focused = output<FocusEvent>();\n  /** Fires when the textarea loses focus. */\n  readonly blurred = output<FocusEvent>();\n\n  private onChange: (value: string) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-textarea-wrapper--${this.size()}`]: true,\n    'ea-textarea-wrapper--error': this.hasError(),\n    'ea-textarea-wrapper--focused': this.isFocused() && !this.readonly(),\n    'ea-textarea-wrapper--disabled': this.isDisabled(),\n    'ea-textarea-wrapper--readonly': this.readonly(),\n  }));\n\n  // Default em-based min-height of 3 lines plus padding keeps it proportional to\n  // the size; a consumer `minHeight` (px) raises the floor but can never shrink it\n  // below that calculated value.\n  readonly minHeightStyle = computed(() => {\n    const rowsHeight = `calc(${DEFAULT_ROWS} * var(--line-height-normal) * 1em + 0.75em * 2)`;\n    const px = this.minHeight();\n    return px && px > 0 ? `max(${rowsHeight}, ${px}px)` : rowsHeight;\n  });\n\n  writeValue(val: string): void {\n    this.value.set(val ?? '');\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  handleInput(event: Event): void {\n    const value = (event.target as HTMLTextAreaElement).value;\n    this.value.set(value);\n    this.onChange(value);\n  }\n\n  handleFocus(event: FocusEvent): void {\n    this.isFocused.set(true);\n    this.focused.emit(event);\n  }\n\n  handleBlur(event: FocusEvent): void {\n    this.isFocused.set(false);\n    this.onTouched();\n    this.blurred.emit(event);\n  }\n\n  /** Moves keyboard focus to the underlying native textarea element. */\n  focus(): void {\n    this.textareaEl()?.nativeElement.focus();\n  }\n}\n","<div class=\"ea-textarea-field ea-textarea-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [required]=\"required()\" />\n  }\n\n  <div\n    class=\"ea-textarea-wrapper\"\n    [ngClass]=\"wrapperClasses()\"\n    [style.resize]=\"resize()\"\n    [style.min-height]=\"minHeightStyle()\"\n    [style.max-height.px]=\"maxHeight() ?? null\">\n    <textarea\n      #textareaEl\n      class=\"ea-textarea\"\n      dir=\"auto\"\n      [id]=\"id()\"\n      [placeholder]=\"placeholder()\"\n      [disabled]=\"isDisabled()\"\n      [readOnly]=\"readonly()\"\n      [required]=\"required()\"\n      [value]=\"value()\"\n      [attr.maxlength]=\"maxlength() ?? null\"\n      [attr.aria-label]=\"label() ? null : (ariaLabel() ?? null)\"\n      [attr.aria-invalid]=\"hasError() || null\"\n      [attr.aria-describedby]=\"\n        showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n      \"\n      (input)=\"handleInput($event)\"\n      (focus)=\"handleFocus($event)\"\n      (blur)=\"handleBlur($event)\"></textarea>\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevron-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"18 15 12 9 6 15\" />\n    </svg>\n  `,\n})\nexport class ChevronUpIconComponent extends IconComponentBase {\n  static readonly slug = 'chevron-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevron-up',\n    'chevron',\n    'up',\n    'arrow',\n    'collapse',\n    'haut',\n    'arriba',\n    'πάνω',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-clock',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polyline points=\"12 6 12 12 16 14\" />\n    </svg>\n  `,\n})\nexport class ClockIconComponent extends IconComponentBase {\n  static readonly slug = 'clock';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'clock',\n    'time',\n    'watch',\n    'hour',\n    'horloge',\n    'temps',\n    'reloj',\n    'tiempo',\n    'ρολόι',\n    'ώρα',\n    'zegar',\n    'czas',\n  ];\n}\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  type ElementRef,\n  Injector,\n  type Type,\n  afterNextRender,\n  computed,\n  forwardRef,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { FieldLabelComponent } from '../field/field-label.component';\nimport { FieldMessagesComponent } from '../field/field-messages.component';\nimport {\n  type EaErrorMessages,\n  injectControlErrorState,\n} from '../forms/control-error-state';\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ChevronDownIconComponent } from '../icons/chevron-down.component';\nimport { ChevronUpIconComponent } from '../icons/chevron-up.component';\nimport { ClockIconComponent } from '../icons/clock.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { PopoverComponent } from '../popover/popover.component';\nimport { type EaSize } from '../sizes';\nimport { uniqueId } from '../unique-id';\n\n/** Visual size of the time picker trigger. */\nexport type TimePickerSize = EaSize;\n\n/** Display format for the trigger label. The wire value is always 24h. */\nexport type TimePickerFormat = '12h' | '24h';\n\n/** Internal identifier for the three unit columns. */\ntype Unit = 'hours' | 'minutes' | 'seconds';\n\ninterface ParsedTime {\n  readonly hours: number;\n  readonly minutes: number;\n  readonly seconds: number;\n}\n\n/**\n * Pops a stepper UI for selecting an `HH:MM[:SS]` time. The wire value is\n * always a 24-hour string (`\"14:30\"` or `\"14:30:00\"`); the `format` input\n * toggles the trigger's display between 12-hour and 24-hour styles. Supports\n * configurable steps for minutes and seconds, optional seconds column, and\n * integrates with Angular forms via `ControlValueAccessor`.\n *\n * The field itself is a text input: a time can be typed by hand and is read\n * leniently on Enter or blur. Bare digits are a 24-hour clock (\"5\" is 05:00,\n * \"1234\" is 12:34, \"123456\" adds seconds), `:`, `.`, `h`, and spaces all\n * separate units (\"17h30\", \"12.34\"), and an AM/PM suffix reads the hour on\n * the 12-hour clock (\"5pm\" is 17:00). Text that parses to no time is\n * discarded and the field falls back to the current value; clearing the text\n * clears the value.\n *\n * Keyboard: ArrowDown opens the popover and moves into the hour column. Tab\n * moves between the hour, minute, (seconds), and AM/PM columns. Each spinner\n * accepts ArrowUp/ArrowDown to step by 1 (or by the configured step),\n * PageUp/PageDown for a coarser bump, and digit keys to type a value\n * directly. After typing two digits (or one digit that already maxes the\n * unit), focus auto-advances to the next column. Backspace clears the typed\n * buffer; Escape closes the popover.\n */\n@Component({\n  selector: 'ea-time-picker',\n  templateUrl: './time-picker.component.html',\n  styleUrl: './time-picker.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    ChevronDownIconComponent,\n    ChevronUpIconComponent,\n    ClockIconComponent,\n    FieldLabelComponent,\n    FieldMessagesComponent,\n    NgClass,\n    PopoverComponent,\n    XIconComponent,\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TimePickerComponent),\n      multi: true,\n    },\n  ],\n})\nexport class TimePickerComponent implements ControlValueAccessor {\n  protected readonly triggerEl = viewChild<ElementRef<HTMLElement>>('triggerEl');\n  protected readonly inputEl = viewChild<ElementRef<HTMLInputElement>>('inputEl');\n  protected readonly hoursEl = viewChild<ElementRef<HTMLInputElement>>('hoursEl');\n  protected readonly minutesEl = viewChild<ElementRef<HTMLInputElement>>('minutesEl');\n  protected readonly secondsEl = viewChild<ElementRef<HTMLInputElement>>('secondsEl');\n  protected readonly i18n = inject(EagamiI18nService);\n  private readonly destroyRef = inject(DestroyRef);\n  private readonly injector = inject(Injector);\n\n  readonly label = input<string | undefined>(undefined);\n  /** Optional icon component rendered before the label text. */\n  readonly labelIcon = input<Type<unknown> | undefined>(undefined);\n  readonly placeholder = input<string | undefined>(undefined);\n  readonly size = input<TimePickerSize>('md');\n  readonly disabled = input<boolean>(false);\n  readonly readonly = input<boolean>(false);\n  readonly required = input<boolean>(false);\n  readonly hint = input<string | undefined>(undefined);\n  readonly errorMsg = input<string | undefined>(undefined);\n  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */\n  readonly errorMessages = input<EaErrorMessages | undefined>(undefined);\n  /** Display format for the trigger label. Wire value is always 24h. */\n  readonly format = input<TimePickerFormat>('24h');\n  readonly includeSeconds = input<boolean>(false);\n  readonly minuteStep = input<number>(1);\n  readonly secondStep = input<number>(1);\n  readonly id = input<string>(uniqueId('ea-time-picker'));\n\n  readonly popoverId = computed(() => `${this.id()}-popover`);\n\n  /** `\"HH:MM\"` or `\"HH:MM:SS\"` in 24-hour notation, or `null` when unset. */\n  readonly value = model<string | null>(null);\n  /** Fires with the new value whenever the user changes the time. */\n  readonly changed = output<string | null>();\n\n  readonly isOpen = signal(false);\n  /** Raw text under edit in the field, or `null` while it mirrors the value. */\n  readonly typedText = signal<string | null>(null);\n  /** Typed-digit buffer for the currently focused column, or `null` when idle. */\n  readonly editBuffer = signal<{ unit: Unit; digits: string } | null>(null);\n  private readonly _formDisabled = signal(false);\n  private onChange: (value: string | null) => void = () => {};\n  private onTouched: () => void = () => {};\n\n  /** Long-press timers for the chevron buttons. Cleared on release/destroy. */\n  private holdDelayTimer: ReturnType<typeof setTimeout> | null = null;\n  private holdIntervalTimer: ReturnType<typeof setInterval> | null = null;\n  private holdStartedAt = 0;\n\n  readonly isDisabled = computed(() => this.disabled() || this._formDisabled());\n  private readonly errorState = injectControlErrorState({\n    errorMsg: this.errorMsg,\n    errorMessages: this.errorMessages,\n  });\n  readonly errorText = this.errorState.error;\n  readonly hasError = this.errorState.hasError;\n  readonly showError = this.hasError;\n  readonly showHint = computed(() => !!this.hint() && !this.hasError());\n\n  /** Parsed `[hh, mm, ss]` from the current value, defaulting to midnight. */\n  readonly parsed = computed<ParsedTime>(() => {\n    const parsed = parseTime(this.value());\n    return parsed ?? { hours: 0, minutes: 0, seconds: 0 };\n  });\n\n  /** True when the picker has a non-null value. Drives the clear button + placeholder fallback. */\n  readonly hasValue = computed(() => this.value() !== null);\n\n  /** Hours digit displayed in the popover stepper. Honors the `format` input. */\n  readonly displayHours = computed(() => {\n    const h = this.parsed().hours;\n    if (this.format() === '24h') {\n      return h;\n    }\n    // 12h: 0 maps to 12 (midnight as 12 AM), 13–23 map to 1–11\n    return h % 12 === 0 ? 12 : h % 12;\n  });\n\n  /**\n   * Text shown in a column's value cell. Reflects the typed-digit buffer when\n   * the user is mid-edit on that column; otherwise renders the committed\n   * value. Hours pad to two digits in 24h mode only (so 9 AM still reads as\n   * \"9\", but 09:00 in 24h reads as \"09\").\n   */\n  hoursText = computed(() => {\n    const buf = this.editBuffer();\n    if (buf && buf.unit === 'hours') {\n      return buf.digits;\n    }\n    const h = this.displayHours();\n    return this.format() === '24h' ? pad2(h) : String(h);\n  });\n\n  minutesText = computed(() => {\n    const buf = this.editBuffer();\n    if (buf && buf.unit === 'minutes') {\n      return buf.digits;\n    }\n    return pad2(this.parsed().minutes);\n  });\n\n  secondsText = computed(() => {\n    const buf = this.editBuffer();\n    if (buf && buf.unit === 'seconds') {\n      return buf.digits;\n    }\n    return pad2(this.parsed().seconds);\n  });\n\n  /** `'AM' | 'PM'` for 12h mode; `null` in 24h. */\n  readonly period = computed<'AM' | 'PM' | null>(() => {\n    if (this.format() === '24h') {\n      return null;\n    }\n    return this.parsed().hours < 12 ? 'AM' : 'PM';\n  });\n\n  /** Localized text shown on the trigger. Falls back to placeholder when no value. */\n  readonly displayValue = computed(() => {\n    if (!this.hasValue()) {\n      return null;\n    }\n    const { hours, minutes, seconds } = this.parsed();\n    const m = pad2(minutes);\n    const s = this.includeSeconds() ? `:${pad2(seconds)}` : '';\n    if (this.format() === '24h') {\n      return `${pad2(hours)}:${m}${s}`;\n    }\n    const display = hours % 12 === 0 ? 12 : hours % 12;\n    const period =\n      hours < 12\n        ? this.i18n.messages().timePicker.amLabel\n        : this.i18n.messages().timePicker.pmLabel;\n    return `${display}:${m}${s} ${period}`;\n  });\n\n  readonly resolvedPlaceholder = computed(\n    () => this.placeholder() ?? this.i18n.messages().timePicker.placeholder,\n  );\n\n  /** What the field's input shows: the text mid-edit, else the formatted value. */\n  readonly triggerText = computed(() => this.typedText() ?? this.displayValue() ?? '');\n\n  readonly triggerClasses = computed(() => ({\n    [`ea-time-picker__trigger--${this.size()}`]: true,\n    'ea-time-picker__trigger--error': this.hasError(),\n    'ea-time-picker__trigger--open': this.isOpen(),\n    'ea-time-picker__trigger--disabled': this.isDisabled(),\n    'ea-time-picker__trigger--readonly': this.readonly() && !this.isDisabled(),\n  }));\n\n  readonly wrapperClasses = computed(() => ({\n    [`ea-time-picker__trigger-wrapper--${this.size()}`]: true,\n  }));\n\n  // The popover is portaled to the document body, so it cannot inherit the\n  // trigger's font-size; this size class carries the scale over to it.\n  readonly popoverClasses = computed(() => ({\n    [`ea-time-picker__popover--${this.size()}`]: true,\n  }));\n\n  writeValue(val: string | null | undefined): void {\n    this.value.set(val ?? null);\n  }\n\n  registerOnChange(fn: (value: string | null) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._formDisabled.set(isDisabled);\n  }\n\n  constructor() {\n    this.destroyRef.onDestroy(() => this.stopHold());\n  }\n\n  /**\n   * A click anywhere on the field opens the popover and leaves the focus in\n   * the input, so the caret lands where it was aimed and typing can start\n   * straight away. A click while open only moves the caret.\n   */\n  onTriggerClick(): void {\n    if (this.isDisabled() || this.readonly() || this.isOpen()) {\n      return;\n    }\n    this.isOpen.set(true);\n  }\n\n  /**\n   * Push focus into the hours input once the popover surface has been\n   * rendered. `afterNextRender` guarantees the DOM has been updated (and the\n   * surface is no longer `display: none`) before we call `.focus()`.\n   */\n  private focusHoursWhenReady(): void {\n    afterNextRender(\n      () => {\n        const el = this.hoursEl()?.nativeElement;\n        el?.focus();\n        el?.select();\n      },\n      { injector: this.injector },\n    );\n  }\n\n  close(): void {\n    this.isOpen.set(false);\n  }\n\n  /** Called by `<ea-popover>` when the user clicks outside or scrolls. */\n  onPopoverCloseRequested(): void {\n    this.close();\n    this.onTouched();\n  }\n\n  clear(event: Event): void {\n    event.stopPropagation();\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    this.value.set(null);\n    this.onChange(null);\n    this.onTouched();\n    this.changed.emit(null);\n  }\n\n  handleTriggerKeydown(event: KeyboardEvent): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    if (event.key === 'ArrowDown') {\n      event.preventDefault();\n      if (!this.isOpen()) {\n        this.isOpen.set(true);\n      }\n      this.focusHoursWhenReady();\n    } else if (event.key === 'Enter') {\n      event.preventDefault();\n      this.commitTyped();\n      this.close();\n    } else if (event.key === 'Escape') {\n      // Left alone when there is nothing to let go of, so the press can\n      // still close whatever layer holds the field\n      if (this.typedText() === null && !this.isOpen()) {\n        return;\n      }\n      event.preventDefault();\n      this.typedText.set(null);\n      this.close();\n    }\n  }\n\n  onTriggerInput(event: Event): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const el = event.currentTarget as HTMLInputElement;\n    this.typedText.set(el.value);\n  }\n\n  onTriggerBlur(): void {\n    this.commitTyped();\n    this.onTouched();\n  }\n\n  /**\n   * Reads the hand-typed text and commits what it says: a time updates the\n   * value, emptied text clears it, and anything unreadable is dropped so the\n   * field falls back to the value it already shows.\n   */\n  private commitTyped(): void {\n    const text = this.typedText();\n    if (text === null) {\n      return;\n    }\n    this.typedText.set(null);\n\n    if (!text.trim()) {\n      if (this.value() !== null) {\n        this.value.set(null);\n        this.onChange(null);\n        this.changed.emit(null);\n      }\n      return;\n    }\n\n    const labels = this.i18n.messages().timePicker;\n    const parsed = parseTypedTime(text, {\n      am: labels.amLabel,\n      pm: labels.pmLabel,\n    });\n    if (parsed) {\n      this.commit(parsed);\n    }\n  }\n\n  /** Stepper button or keyboard arrow nudges one column up or down. */\n  step(unit: Unit, direction: 1 | -1): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const { hours, minutes, seconds } = this.parsed();\n    const next = nextTime(\n      { hours, minutes, seconds },\n      unit,\n      direction,\n      this.minuteStep(),\n      this.secondStep(),\n    );\n    this.commit(next);\n  }\n\n  /**\n   * Keyboard activation of a stepper button dispatches only a click, never the\n   * pointer events that drive the hold repeat. `detail` is 0 for those\n   * synthetic clicks, so pointer presses (already handled by startHold) are\n   * ignored here.\n   */\n  onStepClick(unit: Unit, direction: 1 | -1, event: MouseEvent): void {\n    if (event.detail === 0) {\n      this.step(unit, direction);\n    }\n  }\n\n  /**\n   * Begin a long-press repeat on a chevron button. Fires once immediately,\n   * then after a `HOLD_INITIAL_DELAY` pause repeats at `HOLD_INTERVAL_MS`,\n   * accelerating to `HOLD_FAST_INTERVAL_MS` after `HOLD_ACCELERATE_AFTER_MS`\n   * of continuous holding. Pointer up / leave / cancel stops the repeat.\n   */\n  startHold(unit: Unit, direction: 1 | -1, event: Event): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    event.preventDefault();\n    this.stopHold();\n    this.step(unit, direction);\n    this.holdStartedAt = performance.now();\n    this.holdDelayTimer = setTimeout(() => {\n      this.holdIntervalTimer = setInterval(() => {\n        this.step(unit, direction);\n        const elapsed = performance.now() - this.holdStartedAt;\n        if (elapsed > HOLD_ACCELERATE_AFTER_MS && this.holdIntervalTimer !== null) {\n          clearInterval(this.holdIntervalTimer);\n          this.holdIntervalTimer = setInterval(\n            () => this.step(unit, direction),\n            HOLD_FAST_INTERVAL_MS,\n          );\n        }\n      }, HOLD_INTERVAL_MS);\n    }, HOLD_INITIAL_DELAY);\n  }\n\n  /** End any in-flight long-press repeat. Idempotent. */\n  stopHold(): void {\n    if (this.holdDelayTimer !== null) {\n      clearTimeout(this.holdDelayTimer);\n      this.holdDelayTimer = null;\n    }\n    if (this.holdIntervalTimer !== null) {\n      clearInterval(this.holdIntervalTimer);\n      this.holdIntervalTimer = null;\n    }\n  }\n\n  /** Switches the AM/PM period in 12h mode by toggling the 12-hour offset. */\n  togglePeriod(): void {\n    if (this.isDisabled() || this.readonly() || this.format() === '24h') {\n      return;\n    }\n    const { hours, minutes, seconds } = this.parsed();\n    const flipped = (hours + 12) % 24;\n    this.commit({ hours: flipped, minutes, seconds });\n  }\n\n  handlePopoverKeydown(event: KeyboardEvent, unit: Unit): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n\n    // Digits, Backspace, and Delete pass through to the native `<input>`.\n    // The `(input)` handler picks them up via `onSpinnerInput`.\n    if (event.key === 'ArrowUp') {\n      event.preventDefault();\n      this.flushBuffer();\n      this.step(unit, 1);\n    } else if (event.key === 'ArrowDown') {\n      event.preventDefault();\n      this.flushBuffer();\n      this.step(unit, -1);\n    } else if (event.key === 'PageUp') {\n      event.preventDefault();\n      this.flushBuffer();\n      // Coarse step: 5× the configured step (or 10 for hours)\n      const coarse = unit === 'hours' ? 10 : 5;\n      for (let i = 0; i < coarse; i++) {\n        this.step(unit, 1);\n      }\n    } else if (event.key === 'PageDown') {\n      event.preventDefault();\n      this.flushBuffer();\n      const coarse = unit === 'hours' ? 10 : 5;\n      for (let i = 0; i < coarse; i++) {\n        this.step(unit, -1);\n      }\n    } else if (event.key === 'Enter') {\n      event.preventDefault();\n      this.flushBuffer();\n      // Commit the currently displayed time even if it wasn't edited, so a\n      // user who opens the picker on a null value and hits Enter gets the\n      // default `00:00` (the fallback returned by `parsed()`).\n      this.commit(this.parsed());\n      this.close();\n      this.inputEl()?.nativeElement.focus();\n    }\n    // Escape bubbles up to the popover wrapper's handler, which closes\n    // Tab is handled by the browser; (blur) on the leaving input flushes\n  }\n\n  /** Escape from anywhere inside the popover closes it and refocuses the field. */\n  onPopoverEscape(event: Event): void {\n    event.preventDefault();\n    this.editBuffer.set(null);\n    this.close();\n    this.inputEl()?.nativeElement.focus();\n  }\n\n  /** Select-all on focus so the first keystroke replaces the current value. */\n  onSpinnerFocus(event: FocusEvent): void {\n    const el = event.currentTarget as HTMLInputElement;\n    // afterNextRender-ish: wait one tick so iOS / Safari accept the select()\n    queueMicrotask(() => el.select());\n  }\n\n  /**\n   * Native `(input)` event: the typed value is already in `el.value`. Strip\n   * non-digits, update the buffer (which drives the displayed text), and\n   * commit + auto-advance once the column is full or a third digit would\n   * overflow.\n   */\n  onSpinnerInput(unit: Unit, event: Event): void {\n    if (this.isDisabled() || this.readonly()) {\n      return;\n    }\n    const el = event.currentTarget as HTMLInputElement;\n    const raw = el.value;\n    const digits = raw.replace(/\\D/g, '').slice(0, 2);\n    if (digits !== raw) {\n      el.value = digits;\n    }\n\n    this.editBuffer.set({ unit, digits });\n\n    if (digits.length === 2) {\n      this.commitDigits(unit, digits);\n      this.advanceFocus(unit);\n      return;\n    }\n    if (digits.length === 1 && this.cannotExtend(unit, digits)) {\n      // A single digit already saturates the unit (e.g. `9` in minutes: a\n      // second `0`–`5` would be needed to stay ≤ 59, but 9 + 0 = 90 > 59).\n      this.commitDigits(unit, digits);\n      this.advanceFocus(unit);\n    }\n  }\n\n  /** Commits the current buffer if any. Wired to each input's `(blur)`. */\n  onSpinnerBlur(): void {\n    this.flushBuffer();\n  }\n\n  /** True when no digit `0`–`9` can validly extend the current buffer. */\n  private cannotExtend(unit: Unit, digits: string): boolean {\n    const candidate = parseInt(`${digits}0`, 10);\n    return candidate > this.maxFor(unit);\n  }\n\n  /** Commits any pending buffer. Called on blur, on arrow keys, on Tab. */\n  private flushBuffer(): void {\n    const buf = this.editBuffer();\n    if (!buf || buf.digits.length === 0) {\n      this.editBuffer.set(null);\n      return;\n    }\n    this.commitDigits(buf.unit, buf.digits);\n  }\n\n  /** Writes the buffered digits into the value and clears the buffer. */\n  private commitDigits(unit: Unit, digits: string): void {\n    const raw = parseInt(digits, 10);\n    if (isNaN(raw)) {\n      this.editBuffer.set(null);\n      return;\n    }\n    const max = this.maxFor(unit);\n    const clamped = Math.min(max, Math.max(this.minFor(unit), raw));\n    const { hours, minutes, seconds } = this.parsed();\n    let next: ParsedTime;\n    if (unit === 'hours') {\n      next = { hours: this.hoursFromTyped(clamped), minutes, seconds };\n    } else if (unit === 'minutes') {\n      next = { hours, minutes: clamped, seconds };\n    } else {\n      next = { hours, minutes, seconds: clamped };\n    }\n    this.editBuffer.set(null);\n    this.commit(next);\n  }\n\n  /**\n   * Map a typed hours value back to 24h. In 24h mode the typed value is the\n   * hour. In 12h mode the typed value is interpreted in the current period\n   * (AM: 12 maps to 0, others stay; PM: 12 stays, others add 12).\n   */\n  private hoursFromTyped(typed: number): number {\n    if (this.format() === '24h') {\n      return typed;\n    }\n    const isPm = this.period() === 'PM';\n    if (typed === 12) {\n      return isPm ? 12 : 0;\n    }\n    return isPm ? typed + 12 : typed;\n  }\n\n  private minFor(unit: Unit): number {\n    if (unit !== 'hours') {\n      return 0;\n    }\n    return this.format() === '24h' ? 0 : 1;\n  }\n\n  private maxFor(unit: Unit): number {\n    if (unit === 'hours') {\n      return this.format() === '24h' ? 23 : 12;\n    }\n    return 59;\n  }\n\n  /** Move focus to the next unit column, looping back to hours at the end. */\n  private advanceFocus(unit: Unit): void {\n    const next = this.nextUnit(unit);\n    const el =\n      next === 'hours'\n        ? this.hoursEl()?.nativeElement\n        : next === 'minutes'\n          ? this.minutesEl()?.nativeElement\n          : this.secondsEl()?.nativeElement;\n    el?.focus();\n  }\n\n  private nextUnit(unit: Unit): Unit {\n    if (unit === 'hours') {\n      return 'minutes';\n    }\n    if (unit === 'minutes') {\n      return this.includeSeconds() ? 'seconds' : 'hours';\n    }\n    return 'hours';\n  }\n\n  private commit(time: ParsedTime): void {\n    const str = formatTime(time, this.includeSeconds());\n    if (str === this.value()) {\n      return;\n    }\n    this.value.set(str);\n    this.onChange(str);\n    this.changed.emit(str);\n  }\n}\n\n/** Delay before a held chevron button starts repeating, in ms. */\nconst HOLD_INITIAL_DELAY = 400;\n/** Repeat interval while a chevron button is held, in ms. */\nconst HOLD_INTERVAL_MS = 90;\n/** After this many ms of continuous hold, the repeat accelerates. */\nconst HOLD_ACCELERATE_AFTER_MS = 1500;\n/** Repeat interval once the long-press has accelerated, in ms. */\nconst HOLD_FAST_INTERVAL_MS = 35;\n\n/** Pad a 0–59 unit to two digits. */\nfunction pad2(n: number): string {\n  return n < 10 ? `0${n}` : `${n}`;\n}\n\n/**\n * Reads a hand-typed time, leniently. Bare digits are a 24-hour clock (\"5\" is\n * 05:00, \"130\" is 01:30, \"1234\" is 12:34, \"123456\" adds seconds); `:`, `.`,\n * `h`, and spaces all separate units (\"17h30\", \"12.34\", \"12 34\"); a trailing\n * AM/PM token, in English or the current locale's labels, reads the hour on\n * the 12-hour clock (\"5pm\" is 17:00, \"12am\" is 00:00). Returns `null` for\n * anything that names no valid time.\n */\nfunction parseTypedTime(\n  text: string,\n  labels: { am: string; pm: string },\n): ParsedTime | null {\n  let rest = text.trim().toLowerCase();\n\n  let period: 'am' | 'pm' | null = null;\n  const tokens: [string, 'am' | 'pm'][] = [\n    [labels.am.toLowerCase(), 'am'],\n    [labels.pm.toLowerCase(), 'pm'],\n    ['a.m.', 'am'],\n    ['p.m.', 'pm'],\n    ['am', 'am'],\n    ['pm', 'pm'],\n    ['a', 'am'],\n    ['p', 'pm'],\n  ];\n  for (const [token, kind] of tokens) {\n    if (token && rest.endsWith(token)) {\n      rest = rest.slice(0, -token.length).trim();\n      period = kind;\n      break;\n    }\n  }\n\n  const separated = rest.replace(/[.h]/g, ':').replace(/\\s+/g, ':').replace(/:$/, '');\n\n  let hours: number;\n  let minutes: number;\n  let seconds: number;\n\n  const parts = /^(\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2}))?)?$/.exec(separated);\n  if (parts) {\n    hours = parseInt(parts[1], 10);\n    minutes = parts[2] !== undefined ? parseInt(parts[2], 10) : 0;\n    seconds = parts[3] !== undefined ? parseInt(parts[3], 10) : 0;\n  } else if (/^\\d{3,6}$/.test(separated)) {\n    // An unbroken run splits from the right: minutes take two digits, seconds\n    // two more when present, and the hour keeps whatever is left\n    const withSeconds = separated.length >= 5;\n    const tail = withSeconds ? separated.slice(-4) : separated.slice(-2);\n    hours = parseInt(separated.slice(0, separated.length - tail.length), 10);\n    minutes = parseInt(tail.slice(0, 2), 10);\n    seconds = withSeconds ? parseInt(tail.slice(2), 10) : 0;\n  } else {\n    return null;\n  }\n\n  if (minutes > 59 || seconds > 59) {\n    return null;\n  }\n\n  if (period === null) {\n    return hours <= 23 ? { hours, minutes, seconds } : null;\n  }\n\n  if (hours > 12) {\n    return null;\n  }\n  return { hours: (hours % 12) + (period === 'pm' ? 12 : 0), minutes, seconds };\n}\n\n/** Parse `\"HH:MM\"` / `\"HH:MM:SS\"`; returns `null` for any malformed input. */\nfunction parseTime(input: string | null | undefined): ParsedTime | null {\n  if (!input) {\n    return null;\n  }\n  const match = /^(\\d{1,2}):(\\d{1,2})(?::(\\d{1,2}))?$/.exec(input.trim());\n  if (!match) {\n    return null;\n  }\n  const hours = clamp(parseInt(match[1], 10), 0, 23);\n  const minutes = clamp(parseInt(match[2], 10), 0, 59);\n  const seconds = match[3] !== undefined ? clamp(parseInt(match[3], 10), 0, 59) : 0;\n  if (isNaN(hours) || isNaN(minutes) || isNaN(seconds)) {\n    return null;\n  }\n  return { hours, minutes, seconds };\n}\n\nfunction clamp(n: number, lo: number, hi: number): number {\n  return Math.min(hi, Math.max(lo, n));\n}\n\nfunction formatTime(time: ParsedTime, includeSeconds: boolean): string {\n  const base = `${pad2(time.hours)}:${pad2(time.minutes)}`;\n  return includeSeconds ? `${base}:${pad2(time.seconds)}` : base;\n}\n\n/** Wrap-around step for a unit. Hours wrap at 24, minutes/seconds at 60. */\nfunction nextTime(\n  current: ParsedTime,\n  unit: Unit,\n  direction: 1 | -1,\n  minuteStep: number,\n  secondStep: number,\n): ParsedTime {\n  const { hours, minutes, seconds } = current;\n  if (unit === 'hours') {\n    const nextHours = (hours + direction + 24) % 24;\n    return { hours: nextHours, minutes, seconds };\n  }\n  if (unit === 'minutes') {\n    const nextMinutes = (minutes + direction * minuteStep + 60) % 60;\n    return { hours, minutes: nextMinutes, seconds };\n  }\n  const nextSeconds = (seconds + direction * secondStep + 60) % 60;\n  return { hours, minutes, seconds: nextSeconds };\n}\n","<div class=\"ea-time-picker-field ea-time-picker-field--{{ size() }}\">\n  @if (label(); as labelText) {\n    <ea-field-label\n      [text]=\"labelText\"\n      [icon]=\"labelIcon()\"\n      [forId]=\"id()\"\n      [required]=\"required()\" />\n  }\n\n  <div class=\"ea-time-picker\">\n    <div\n      class=\"ea-time-picker__trigger-wrapper\"\n      [ngClass]=\"wrapperClasses()\">\n      <div\n        #triggerEl\n        class=\"ea-time-picker__trigger\"\n        [ngClass]=\"triggerClasses()\"\n        (click)=\"onTriggerClick()\">\n        <ea-icon-clock\n          class=\"ea-time-picker__trigger-icon\"\n          aria-hidden=\"true\" />\n        <input\n          #inputEl\n          type=\"text\"\n          class=\"ea-time-picker__input\"\n          role=\"combobox\"\n          autocomplete=\"off\"\n          [id]=\"id()\"\n          [disabled]=\"isDisabled()\"\n          [readonly]=\"readonly()\"\n          [placeholder]=\"resolvedPlaceholder()\"\n          [value]=\"triggerText()\"\n          [attr.aria-expanded]=\"isOpen()\"\n          [attr.aria-haspopup]=\"'dialog'\"\n          [attr.aria-controls]=\"isOpen() ? popoverId() : null\"\n          [attr.aria-required]=\"required() || null\"\n          [attr.aria-invalid]=\"hasError() || null\"\n          [attr.aria-describedby]=\"\n            showError() ? id() + '-error' : showHint() ? id() + '-hint' : null\n          \"\n          (input)=\"onTriggerInput($event)\"\n          (keydown)=\"handleTriggerKeydown($event)\"\n          (blur)=\"onTriggerBlur()\" />\n      </div>\n      @if (hasValue() && !isDisabled() && !readonly()) {\n        <button\n          type=\"button\"\n          class=\"ea-time-picker__clear\"\n          [attr.aria-label]=\"i18n.messages().timePicker.clear\"\n          (click)=\"clear($event)\">\n          <ea-icon-x\n            class=\"ea-time-picker__clear-icon\"\n            aria-hidden=\"true\" />\n        </button>\n      }\n    </div>\n\n    <ea-popover\n      [anchor]=\"triggerEl\"\n      [open]=\"isOpen()\"\n      placement=\"bottom-start\"\n      role=\"dialog\"\n      [aria-label]=\"i18n.messages().timePicker.dialogLabel\"\n      [surfaceId]=\"popoverId()\"\n      [trapFocus]=\"true\"\n      [closeOnEscape]=\"false\"\n      scrollBehavior=\"close\"\n      (closeRequested)=\"onPopoverCloseRequested()\">\n      <div\n        class=\"ea-time-picker__popover\"\n        [ngClass]=\"popoverClasses()\"\n        (keydown.escape)=\"onPopoverEscape($event)\">\n        <div class=\"ea-time-picker__column\">\n          <button\n            type=\"button\"\n            class=\"ea-time-picker__step\"\n            [attr.aria-label]=\"i18n.messages().timePicker.incrementHours\"\n            (click)=\"onStepClick('hours', 1, $event)\"\n            (mousedown)=\"startHold('hours', 1, $event)\"\n            (touchstart)=\"startHold('hours', 1, $event)\"\n            (mouseup)=\"stopHold()\"\n            (mouseleave)=\"stopHold()\"\n            (touchend)=\"stopHold()\"\n            (touchcancel)=\"stopHold()\">\n            <ea-icon-chevron-up aria-hidden=\"true\" />\n          </button>\n          <input\n            #hoursEl\n            type=\"text\"\n            class=\"ea-time-picker__value\"\n            inputmode=\"numeric\"\n            autocomplete=\"off\"\n            maxlength=\"2\"\n            role=\"spinbutton\"\n            [attr.aria-label]=\"i18n.messages().timePicker.hoursLabel\"\n            [attr.aria-valuemin]=\"format() === '24h' ? 0 : 1\"\n            [attr.aria-valuemax]=\"format() === '24h' ? 23 : 12\"\n            [attr.aria-valuenow]=\"displayHours()\"\n            [value]=\"hoursText()\"\n            (focus)=\"onSpinnerFocus($event)\"\n            (input)=\"onSpinnerInput('hours', $event)\"\n            (keydown)=\"handlePopoverKeydown($event, 'hours')\"\n            (blur)=\"onSpinnerBlur()\" />\n          <button\n            type=\"button\"\n            class=\"ea-time-picker__step\"\n            [attr.aria-label]=\"i18n.messages().timePicker.decrementHours\"\n            (click)=\"onStepClick('hours', -1, $event)\"\n            (mousedown)=\"startHold('hours', -1, $event)\"\n            (touchstart)=\"startHold('hours', -1, $event)\"\n            (mouseup)=\"stopHold()\"\n            (mouseleave)=\"stopHold()\"\n            (touchend)=\"stopHold()\"\n            (touchcancel)=\"stopHold()\">\n            <ea-icon-chevron-down aria-hidden=\"true\" />\n          </button>\n        </div>\n\n        <span\n          class=\"ea-time-picker__separator\"\n          aria-hidden=\"true\">\n          :\n        </span>\n\n        <div class=\"ea-time-picker__column\">\n          <button\n            type=\"button\"\n            class=\"ea-time-picker__step\"\n            [attr.aria-label]=\"i18n.messages().timePicker.incrementMinutes\"\n            (click)=\"onStepClick('minutes', 1, $event)\"\n            (mousedown)=\"startHold('minutes', 1, $event)\"\n            (touchstart)=\"startHold('minutes', 1, $event)\"\n            (mouseup)=\"stopHold()\"\n            (mouseleave)=\"stopHold()\"\n            (touchend)=\"stopHold()\"\n            (touchcancel)=\"stopHold()\">\n            <ea-icon-chevron-up aria-hidden=\"true\" />\n          </button>\n          <input\n            #minutesEl\n            type=\"text\"\n            class=\"ea-time-picker__value\"\n            inputmode=\"numeric\"\n            autocomplete=\"off\"\n            maxlength=\"2\"\n            role=\"spinbutton\"\n            [attr.aria-label]=\"i18n.messages().timePicker.minutesLabel\"\n            [attr.aria-valuemin]=\"0\"\n            [attr.aria-valuemax]=\"59\"\n            [attr.aria-valuenow]=\"parsed().minutes\"\n            [value]=\"minutesText()\"\n            (focus)=\"onSpinnerFocus($event)\"\n            (input)=\"onSpinnerInput('minutes', $event)\"\n            (keydown)=\"handlePopoverKeydown($event, 'minutes')\"\n            (blur)=\"onSpinnerBlur()\" />\n          <button\n            type=\"button\"\n            class=\"ea-time-picker__step\"\n            [attr.aria-label]=\"i18n.messages().timePicker.decrementMinutes\"\n            (click)=\"onStepClick('minutes', -1, $event)\"\n            (mousedown)=\"startHold('minutes', -1, $event)\"\n            (touchstart)=\"startHold('minutes', -1, $event)\"\n            (mouseup)=\"stopHold()\"\n            (mouseleave)=\"stopHold()\"\n            (touchend)=\"stopHold()\"\n            (touchcancel)=\"stopHold()\">\n            <ea-icon-chevron-down aria-hidden=\"true\" />\n          </button>\n        </div>\n\n        @if (includeSeconds()) {\n          <span\n            class=\"ea-time-picker__separator\"\n            aria-hidden=\"true\">\n            :\n          </span>\n          <div class=\"ea-time-picker__column\">\n            <button\n              type=\"button\"\n              class=\"ea-time-picker__step\"\n              [attr.aria-label]=\"i18n.messages().timePicker.incrementSeconds\"\n              (click)=\"onStepClick('seconds', 1, $event)\"\n              (mousedown)=\"startHold('seconds', 1, $event)\"\n              (touchstart)=\"startHold('seconds', 1, $event)\"\n              (mouseup)=\"stopHold()\"\n              (mouseleave)=\"stopHold()\"\n              (touchend)=\"stopHold()\"\n              (touchcancel)=\"stopHold()\">\n              <ea-icon-chevron-up aria-hidden=\"true\" />\n            </button>\n            <input\n              #secondsEl\n              type=\"text\"\n              class=\"ea-time-picker__value\"\n              inputmode=\"numeric\"\n              autocomplete=\"off\"\n              maxlength=\"2\"\n              role=\"spinbutton\"\n              [attr.aria-label]=\"i18n.messages().timePicker.secondsLabel\"\n              [attr.aria-valuemin]=\"0\"\n              [attr.aria-valuemax]=\"59\"\n              [attr.aria-valuenow]=\"parsed().seconds\"\n              [value]=\"secondsText()\"\n              (focus)=\"onSpinnerFocus($event)\"\n              (input)=\"onSpinnerInput('seconds', $event)\"\n              (keydown)=\"handlePopoverKeydown($event, 'seconds')\"\n              (blur)=\"onSpinnerBlur()\" />\n            <button\n              type=\"button\"\n              class=\"ea-time-picker__step\"\n              [attr.aria-label]=\"i18n.messages().timePicker.decrementSeconds\"\n              (click)=\"onStepClick('seconds', -1, $event)\"\n              (mousedown)=\"startHold('seconds', -1, $event)\"\n              (touchstart)=\"startHold('seconds', -1, $event)\"\n              (mouseup)=\"stopHold()\"\n              (mouseleave)=\"stopHold()\"\n              (touchend)=\"stopHold()\"\n              (touchcancel)=\"stopHold()\">\n              <ea-icon-chevron-down aria-hidden=\"true\" />\n            </button>\n          </div>\n        }\n\n        @if (format() === '12h') {\n          <div class=\"ea-time-picker__period\">\n            <button\n              type=\"button\"\n              class=\"ea-time-picker__period-option\"\n              [class.ea-time-picker__period-option--active]=\"period() === 'AM'\"\n              [attr.aria-pressed]=\"period() === 'AM'\"\n              (click)=\"period() === 'PM' && togglePeriod()\">\n              {{ i18n.messages().timePicker.amLabel }}\n            </button>\n            <button\n              type=\"button\"\n              class=\"ea-time-picker__period-option\"\n              [class.ea-time-picker__period-option--active]=\"period() === 'PM'\"\n              [attr.aria-pressed]=\"period() === 'PM'\"\n              (click)=\"period() === 'AM' && togglePeriod()\">\n              {{ i18n.messages().timePicker.pmLabel }}\n            </button>\n          </div>\n        }\n      </div>\n    </ea-popover>\n  </div>\n\n  <ea-field-messages\n    [id]=\"id()\"\n    [error]=\"errorText()\"\n    [hint]=\"showHint() ? hint() : null\" />\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  computed,\n  input,\n} from '@angular/core';\n\nimport { type EaSize } from '../sizes';\n\n/** Direction the timeline flows. */\nexport type TimelineOrientation = 'vertical' | 'horizontal';\n\n/**\n * Placement of each item's content relative to the line. `alternate` zig-zags\n * items to either side of a centered line and applies to vertical timelines only.\n */\nexport type TimelineAlign = 'start' | 'alternate';\n\n/** Semantic color of a timeline item's node. */\nexport type TimelineItemColor =\n  'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error';\n\n/** Visual size of the timeline. */\nexport type TimelineSize = EaSize;\n\n/** Single event rendered in an `<ea-timeline>`. */\nexport interface TimelineItem {\n  /** Title line for the event. */\n  heading?: string;\n  /** Muted meta line, typically a timestamp. */\n  time?: string;\n  /** Body text describing the event. */\n  description?: string;\n  /** Node color; ignored when `current` is set. */\n  color?: TimelineItemColor;\n  /** Marks the current point in time; the node wears the secondary brand and a halo. */\n  current?: boolean;\n}\n\n/**\n * Vertical or horizontal sequence of events, each a colored node on a connecting\n * line with an optional heading, timestamp, and description. A single item flagged\n * `current` is highlighted with the secondary brand color to mark \"you are here\".\n */\n@Component({\n  selector: 'ea-timeline',\n  templateUrl: './timeline.component.html',\n  styleUrl: './timeline.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [NgClass],\n})\nexport class TimelineComponent {\n  /** The events to render, in order. */\n  readonly items = input<TimelineItem[]>([]);\n  /** Direction the timeline flows. */\n  readonly orientation = input<TimelineOrientation>('vertical');\n  /** Content placement relative to the line; `alternate` applies to vertical timelines only. */\n  readonly align = input<TimelineAlign>('start');\n  /** Visual size; scales nodes, gaps, and text from a single knob. */\n  readonly size = input<TimelineSize>('md');\n\n  protected readonly hostClasses = computed(() => ({\n    [`ea-timeline--${this.orientation()}`]: true,\n    [`ea-timeline--${this.size()}`]: true,\n    'ea-timeline--alternate':\n      this.orientation() === 'vertical' && this.align() === 'alternate',\n  }));\n\n  // Node modifier: the current marker always wins the secondary brand; otherwise\n  // the item's semantic color (default when unset).\n  protected itemModifier(item: TimelineItem): string {\n    return `ea-timeline__item--${item.current ? 'current' : (item.color ?? 'default')}`;\n  }\n}\n","<ol\n  class=\"ea-timeline\"\n  role=\"list\"\n  [ngClass]=\"hostClasses()\">\n  @for (item of items(); track $index) {\n    <li\n      class=\"ea-timeline__item\"\n      role=\"listitem\"\n      [ngClass]=\"itemModifier(item)\"\n      [attr.aria-current]=\"item.current ? 'true' : null\">\n      <div\n        class=\"ea-timeline__marker\"\n        aria-hidden=\"true\">\n        <span class=\"ea-timeline__node\"></span>\n        <span class=\"ea-timeline__connector\"></span>\n      </div>\n      <div class=\"ea-timeline__content\">\n        @if (item.heading) {\n          <p class=\"ea-timeline__heading\">{{ item.heading }}</p>\n        }\n        @if (item.time) {\n          <p class=\"ea-timeline__time\">{{ item.time }}</p>\n        }\n        @if (item.description) {\n          <p class=\"ea-timeline__description\">{{ item.description }}</p>\n        }\n      </div>\n    </li>\n  }\n</ol>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-alert-triangle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n      <line\n        x1=\"12\"\n        y1=\"9\"\n        x2=\"12\"\n        y2=\"13\" />\n      <line\n        x1=\"12\"\n        y1=\"17\"\n        x2=\"12.01\"\n        y2=\"17\" />\n    </svg>\n  `,\n})\nexport class AlertTriangleIconComponent extends IconComponentBase {\n  static readonly slug = 'alert-triangle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'alert-triangle',\n    'alert',\n    'triangle',\n    'warning',\n    'caution',\n    'danger',\n    'alerte',\n    'triángulo',\n    'alerta',\n    'ειδοποίηση',\n    'τρίγωνο',\n    'alarm',\n    'ostrzeżenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-check-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n      <polyline points=\"22 4 12 14.01 9 11.01\" />\n    </svg>\n  `,\n})\nexport class CheckCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'check-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'check-circle',\n    'check',\n    'circle',\n    'tick',\n    'confirm',\n    'done',\n    'success',\n    'validé',\n    'coche',\n    'confirmar',\n    'éxito',\n    'επιτυχία',\n    'επιβεβαίωση',\n    'sukces',\n    'potwierdzono',\n  ];\n}\n","import { Injectable, type Type, signal } from '@angular/core';\n\n/** Semantic colour scheme of a toast. */\nexport type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\n\n/** One run of a toast's title or message. */\nexport interface ToastSegment {\n  text: string;\n  /** Drawn at full strength, for the part the reader is meant to catch. */\n  strong?: boolean;\n}\n\n/**\n * A toast's title or message: a plain string, or segments so the parts worth\n * catching (a name, a count) can be emphasized. Segments are bound as text and\n * rendered in order with nothing between them, so they read as one sentence.\n */\nexport type ToastText = string | readonly ToastSegment[];\n\n/** A single live toast notification rendered by `ea-toast`. */\nexport interface Toast {\n  id: number;\n  message: ToastText;\n  /** Heading shown above the message; the message steps back when set. */\n  title?: ToastText;\n  variant: ToastVariant;\n  duration: number;\n  /** Icon component rendered in place of the variant's own; `null` renders none. */\n  icon?: Type<unknown> | null;\n}\n\n/** Optional configuration for a toast; defaults to `default` variant and 4s duration. */\nexport interface ToastOptions {\n  /** Heading shown above the message; the message steps back when set. */\n  title?: ToastText;\n  variant?: ToastVariant;\n  duration?: number;\n  /** Any icon component to render in place of the variant's own; `null` for no icon. */\n  icon?: Type<unknown> | null;\n}\n\n/**\n * Application-wide notification service. Use the convenience methods\n * (`success`, `error`, `warning`, `info`) to push a toast, or call\n * {@link show} for full control. A single `<ea-toast />` outlet must be\n * present in the app for toasts to appear.\n */\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n  private nextId = 0;\n  private readonly timers = new Map<\n    number,\n    { handle: ReturnType<typeof setTimeout> | null; startedAt: number; remaining: number }\n  >();\n  private paused = false;\n\n  readonly toasts = signal<Toast[]>([]);\n\n  /** Shows a toast and returns its id; pass `duration: 0` to disable auto-dismiss. */\n  show(message: ToastText, options: ToastOptions = {}): number {\n    const id = this.nextId++;\n    const toast: Toast = {\n      id,\n      message,\n      title: options.title,\n      variant: options.variant ?? 'default',\n      duration: options.duration ?? 4000,\n      icon: options.icon,\n    };\n\n    this.toasts.update(list => [...list, toast]);\n\n    if (toast.duration > 0) {\n      const entry = {\n        handle: null as ReturnType<typeof setTimeout> | null,\n        startedAt: Date.now(),\n        remaining: toast.duration,\n      };\n      if (!this.paused) {\n        entry.handle = setTimeout(() => this.dismiss(id), toast.duration);\n      }\n      this.timers.set(id, entry);\n    }\n\n    return id;\n  }\n\n  /**\n   * Suspends every auto-dismiss countdown, keeping the time each toast has\n   * left. The `<ea-toast />` outlet calls this while the pointer or keyboard\n   * focus is on the stack so users get time to read or reach the dismiss\n   * button.\n   */\n  pause(): void {\n    if (this.paused) {\n      return;\n    }\n    this.paused = true;\n    for (const entry of this.timers.values()) {\n      if (entry.handle !== null) {\n        clearTimeout(entry.handle);\n        entry.handle = null;\n        entry.remaining = Math.max(0, entry.remaining - (Date.now() - entry.startedAt));\n      }\n    }\n  }\n\n  /** Resumes auto-dismiss countdowns suspended by {@link pause}. */\n  resume(): void {\n    if (!this.paused) {\n      return;\n    }\n    this.paused = false;\n    for (const [id, entry] of this.timers) {\n      entry.startedAt = Date.now();\n      entry.handle = setTimeout(() => this.dismiss(id), entry.remaining);\n    }\n  }\n\n  /** Shows a `success` toast and returns its id. */\n  success(message: ToastText, duration?: number): number {\n    return this.show(message, { variant: 'success', duration });\n  }\n\n  /** Shows an `error` toast and returns its id. */\n  error(message: ToastText, duration?: number): number {\n    return this.show(message, { variant: 'error', duration });\n  }\n\n  /** Shows a `warning` toast and returns its id. */\n  warning(message: ToastText, duration?: number): number {\n    return this.show(message, { variant: 'warning', duration });\n  }\n\n  /** Shows an `info` toast and returns its id. */\n  info(message: ToastText, duration?: number): number {\n    return this.show(message, { variant: 'info', duration });\n  }\n\n  /** Removes the toast with the given id, if it is still active. */\n  dismiss(id: number): void {\n    const entry = this.timers.get(id);\n    if (entry?.handle != null) {\n      clearTimeout(entry.handle);\n    }\n    this.timers.delete(id);\n    this.toasts.update(list => list.filter(t => t.id !== id));\n  }\n\n  /** Removes all currently visible toasts. */\n  clear(): void {\n    for (const entry of this.timers.values()) {\n      if (entry.handle !== null) {\n        clearTimeout(entry.handle);\n      }\n    }\n    this.timers.clear();\n    this.toasts.set([]);\n  }\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  type ElementRef,\n  ViewEncapsulation,\n  computed,\n  inject,\n  input,\n  viewChild,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { AlertCircleIconComponent } from '../icons/alert-circle.component';\nimport { AlertTriangleIconComponent } from '../icons/alert-triangle.component';\nimport { CheckCircleIconComponent } from '../icons/check-circle.component';\nimport { InfoIconComponent } from '../icons/info.component';\nimport { XIconComponent } from '../icons/x.component';\nimport { type EaSize } from '../sizes';\nimport { type ToastSegment, ToastService, type ToastText } from './toast.service';\n\n/** Corner or edge of the viewport the toast stack is pinned to. */\nexport type ToastPosition =\n  'top-left' | 'top' | 'top-right' | 'bottom-left' | 'bottom' | 'bottom-right';\n\n/** Visual size of every toast rendered by the outlet. */\nexport type ToastSize = EaSize;\n\n/**\n * Outlet that renders the stack of active toasts produced by\n * {@link ToastService}. Place a single `<ea-toast />` once in the root\n * template so toasts created from anywhere in the app are surfaced.\n */\n@Component({\n  selector: 'ea-toast',\n  imports: [\n    NgComponentOutlet,\n    XIconComponent,\n    CheckCircleIconComponent,\n    InfoIconComponent,\n    AlertTriangleIconComponent,\n    AlertCircleIconComponent,\n  ],\n  templateUrl: './toast.component.html',\n  styleUrl: './toast.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class ToastComponent {\n  protected readonly toastService = inject(ToastService);\n  protected readonly i18n = inject(EagamiI18nService);\n  private readonly containerEl = viewChild<ElementRef<HTMLElement>>('containerEl');\n\n  private hovered = false;\n  private focused = false;\n\n  /** Viewport corner or edge the toast stack is pinned to. */\n  readonly position = input<ToastPosition>('bottom-right');\n  /** Visual size applied to every toast in the stack. */\n  readonly size = input<ToastSize>('sm');\n  /** Show a dismiss button on each toast. */\n  readonly clearable = input<boolean>(true);\n\n  protected readonly containerClass = computed(\n    () => `ea-toast-container ea-toast-container--${this.position()}`,\n  );\n\n  // Errors and warnings interrupt like `ea-alert`; the rest wait politely\n  protected toastRole(variant: string): 'alert' | 'status' {\n    return variant === 'error' || variant === 'warning' ? 'alert' : 'status';\n  }\n\n  // null keeps plain text a bare text node rather than a wrapped segment\n  protected segmentsOf(text: ToastText): readonly ToastSegment[] | null {\n    return typeof text === 'string' ? null : text;\n  }\n\n  protected segmentClass(segment: ToastSegment): string {\n    return segment.strong\n      ? 'ea-toast__segment ea-toast__segment--strong'\n      : 'ea-toast__segment';\n  }\n\n  protected onMouseEnter(): void {\n    this.hovered = true;\n    this.syncPause();\n  }\n\n  protected onMouseLeave(): void {\n    this.hovered = false;\n    this.syncPause();\n  }\n\n  protected onFocusIn(): void {\n    this.focused = true;\n    this.syncPause();\n  }\n\n  protected onFocusOut(event: FocusEvent): void {\n    const container = this.containerEl()?.nativeElement;\n    this.focused = !!container && container.contains(event.relatedTarget as Node | null);\n    this.syncPause();\n  }\n\n  private syncPause(): void {\n    if (this.hovered || this.focused) {\n      this.toastService.pause();\n    } else {\n      this.toastService.resume();\n    }\n  }\n}\n","<div\n  #containerEl\n  [class]=\"containerClass()\"\n  (mouseenter)=\"onMouseEnter()\"\n  (mouseleave)=\"onMouseLeave()\"\n  (focusin)=\"onFocusIn()\"\n  (focusout)=\"onFocusOut($event)\">\n  @for (toast of toastService.toasts(); track toast.id) {\n    <div\n      class=\"ea-toast ea-toast--{{ toast.variant }} ea-toast--{{ size() }}\"\n      [attr.role]=\"toastRole(toast.variant)\">\n      @if (toast.icon !== undefined) {\n        @if (toast.icon) {\n          <span\n            class=\"ea-toast__icon\"\n            aria-hidden=\"true\">\n            <ng-container *ngComponentOutlet=\"toast.icon\" />\n          </span>\n        }\n      } @else {\n        @switch (toast.variant) {\n          @case ('success') {\n            <ea-icon-check-circle class=\"ea-toast__icon\" />\n          }\n          @case ('info') {\n            <ea-icon-info class=\"ea-toast__icon\" />\n          }\n          @case ('warning') {\n            <ea-icon-alert-triangle class=\"ea-toast__icon\" />\n          }\n          @case ('error') {\n            <ea-icon-alert-circle class=\"ea-toast__icon\" />\n          }\n        }\n      }\n      <div class=\"ea-toast__content\">\n        @if (toast.title) {\n          @if (segmentsOf(toast.title); as segments) {\n            <span class=\"ea-toast__title\">\n              @for (segment of segments; track $index) {\n                <span [class]=\"segmentClass(segment)\">{{ segment.text }}</span>\n              }\n            </span>\n          } @else {\n            <span class=\"ea-toast__title\">{{ toast.title }}</span>\n          }\n        }\n        @if (segmentsOf(toast.message); as segments) {\n          <span class=\"ea-toast__message\">\n            @for (segment of segments; track $index) {\n              <span [class]=\"segmentClass(segment)\">{{ segment.text }}</span>\n            }\n          </span>\n        } @else {\n          <span class=\"ea-toast__message\">{{ toast.message }}</span>\n        }\n      </div>\n      @if (clearable()) {\n        <button\n          class=\"ea-toast__close\"\n          type=\"button\"\n          [attr.aria-label]=\"i18n.messages().toast.dismiss\"\n          (click)=\"toastService.dismiss(toast.id)\">\n          <ea-icon-x />\n        </button>\n      }\n    </div>\n  }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevrons-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"11 17 6 12 11 7\" />\n      <polyline points=\"18 17 13 12 18 7\" />\n    </svg>\n  `,\n})\nexport class ChevronsLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'chevrons-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevrons-left',\n    'chevrons',\n    'left',\n    'arrow',\n    'back',\n    'previous',\n    'double',\n    'gauche',\n    'izquierda',\n    'αριστερά',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevrons-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"13 17 18 12 13 7\" />\n      <polyline points=\"6 17 11 12 6 7\" />\n    </svg>\n  `,\n})\nexport class ChevronsRightIconComponent extends IconComponentBase {\n  static readonly slug = 'chevrons-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevrons-right',\n    'chevrons',\n    'right',\n    'arrow',\n    'forward',\n    'next',\n    'double',\n    'droite',\n    'derecha',\n    'δεξιά',\n    'prawo',\n  ];\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  inject,\n  input,\n  model,\n  signal,\n} from '@angular/core';\n\nimport { EagamiI18nService } from '../i18n/i18n.service';\nimport { ChevronLeftIconComponent } from '../icons/chevron-left.component';\nimport { ChevronRightIconComponent } from '../icons/chevron-right.component';\nimport { ChevronsLeftIconComponent } from '../icons/chevrons-left.component';\nimport { ChevronsRightIconComponent } from '../icons/chevrons-right.component';\nimport { type EaSize } from '../sizes';\nimport type { TransferListItem } from './transfer-list.types';\n\nexport type TransferListSize = EaSize;\n\n/**\n * `<ea-transfer-list>` is a two-pane shuttle control for moving items between\n * a \"source\" set and a \"target\" set. The full pool of items lives in\n * `[items]`; the `selectedIds` model tracks which subset is currently on the\n * target side. Highlighted-for-transfer state is internal to the component:\n * a user clicks one or more rows to highlight them, then clicks one of the\n * four direction buttons to move them.\n *\n * Each pane is a `role=\"listbox\"` with `aria-multiselectable=\"true\"`; rows\n * are `role=\"option\"` with `aria-selected`.\n */\n@Component({\n  selector: 'ea-transfer-list',\n  templateUrl: './transfer-list.component.html',\n  styleUrl: './transfer-list.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    ChevronLeftIconComponent,\n    ChevronRightIconComponent,\n    ChevronsLeftIconComponent,\n    ChevronsRightIconComponent,\n  ],\n})\nexport class TransferListComponent {\n  private readonly i18n = inject(EagamiI18nService);\n\n  readonly items = input.required<readonly TransferListItem[]>();\n\n  /** Ids currently on the target (right) side. */\n  readonly selectedIds = model<readonly string[]>([]);\n\n  /**\n   * Heading rendered above the source (left) pane. Defaults to the localized\n   * `transferList.sourceLabel` from i18n; pass an explicit empty string to\n   * hide the heading row entirely.\n   */\n  readonly sourceLabel = input<string | undefined>(undefined);\n\n  /**\n   * Heading rendered above the target (right) pane. Defaults to the localized\n   * `transferList.targetLabel` from i18n; pass an explicit empty string to\n   * hide the heading row entirely.\n   */\n  readonly targetLabel = input<string | undefined>(undefined);\n\n  readonly size = input<TransferListSize>('md');\n\n  readonly disabled = input<boolean>(false);\n\n  protected readonly messages = this.i18n.messages;\n\n  // Highlight state: which rows in each pane are currently \"selected for\n  // transfer\" (visually checked, but not yet moved). Cleared after every\n  // transfer so the user starts fresh on the next move.\n  private readonly leftHighlighted = signal<ReadonlySet<string>>(new Set<string>());\n  private readonly rightHighlighted = signal<ReadonlySet<string>>(new Set<string>());\n\n  // Per-pane \"anchor\" id: the last item the user clicked without Shift.\n  // Shift-click on another item selects the range from anchor to target,\n  // matching the standard list-selection convention (Windows Explorer,\n  // macOS Finder, every file picker).\n  private readonly leftAnchor = signal<string | null>(null);\n  private readonly rightAnchor = signal<string | null>(null);\n\n  // Roving tabindex: one option per pane is tabbable; arrows move it\n  private readonly leftActiveId = signal<string | null>(null);\n  private readonly rightActiveId = signal<string | null>(null);\n\n  private readonly leftActiveIndex = computed(() =>\n    this.resolveActiveIndex(this.sourceItems(), this.leftActiveId()),\n  );\n  private readonly rightActiveIndex = computed(() =>\n    this.resolveActiveIndex(this.targetItems(), this.rightActiveId()),\n  );\n\n  protected readonly sourceItems = computed(() => {\n    const selected = new Set(this.selectedIds());\n    return this.items().filter(item => !selected.has(item.id));\n  });\n\n  protected readonly targetItems = computed(() => {\n    const selected = new Set(this.selectedIds());\n    return this.items().filter(item => selected.has(item.id));\n  });\n\n  protected readonly canMoveRight = computed(() => {\n    if (this.disabled()) {\n      return false;\n    }\n    const highlighted = this.leftHighlighted();\n    const allowed = new Set(\n      this.sourceItems()\n        .filter(i => !i.disabled)\n        .map(i => i.id),\n    );\n    return Array.from(highlighted).some(id => allowed.has(id));\n  });\n\n  protected readonly canMoveAllRight = computed(() => {\n    if (this.disabled()) {\n      return false;\n    }\n    return this.sourceItems().some(i => !i.disabled);\n  });\n\n  protected readonly canMoveLeft = computed(() => {\n    if (this.disabled()) {\n      return false;\n    }\n    const highlighted = this.rightHighlighted();\n    const allowed = new Set(\n      this.targetItems()\n        .filter(i => !i.disabled)\n        .map(i => i.id),\n    );\n    return Array.from(highlighted).some(id => allowed.has(id));\n  });\n\n  protected readonly canMoveAllLeft = computed(() => {\n    if (this.disabled()) {\n      return false;\n    }\n    return this.targetItems().some(i => !i.disabled);\n  });\n\n  protected readonly resolvedSourceLabel = computed(\n    () => this.sourceLabel() ?? this.messages().transferList.sourceLabel,\n  );\n\n  protected readonly resolvedTargetLabel = computed(\n    () => this.targetLabel() ?? this.messages().transferList.targetLabel,\n  );\n\n  // Moves rearrange both panes at once, which a screen reader has no way to\n  // report on its own, so each transfer is summarized in a live region.\n  protected readonly announcement = signal('');\n\n  protected readonly hostClasses = computed(() => [\n    'ea-transfer-list',\n    `ea-transfer-list--${this.size()}`,\n    this.disabled() ? 'ea-transfer-list--disabled' : '',\n  ]);\n\n  protected isHighlighted(pane: 'source' | 'target', id: string): boolean {\n    const set = pane === 'source' ? this.leftHighlighted() : this.rightHighlighted();\n    return set.has(id);\n  }\n\n  protected itemTabindex(\n    pane: 'source' | 'target',\n    index: number,\n    item: TransferListItem,\n  ): number {\n    if (item.disabled || this.disabled()) {\n      return -1;\n    }\n    const activeIndex =\n      pane === 'source' ? this.leftActiveIndex() : this.rightActiveIndex();\n    return index === activeIndex ? 0 : -1;\n  }\n\n  protected onItemClick(\n    pane: 'source' | 'target',\n    item: TransferListItem,\n    event: MouseEvent,\n  ): void {\n    if (this.disabled() || item.disabled) {\n      return;\n    }\n    this.setActive(pane, item.id);\n    if (event.shiftKey) {\n      this.selectRangeTo(pane, item);\n    } else {\n      this.toggleHighlight(pane, item);\n    }\n  }\n\n  protected onItemKeydown(\n    event: KeyboardEvent,\n    pane: 'source' | 'target',\n    item: TransferListItem,\n  ): void {\n    if (event.key === ' ' || event.key === 'Enter') {\n      event.preventDefault();\n      if (event.shiftKey) {\n        this.selectRangeTo(pane, item);\n      } else {\n        this.toggleHighlight(pane, item);\n      }\n      return;\n    }\n\n    const items = pane === 'source' ? this.sourceItems() : this.targetItems();\n    const currentIndex = items.findIndex(i => i.id === item.id);\n    let nextIndex: number;\n    switch (event.key) {\n      case 'ArrowDown':\n        nextIndex = this.nextEnabledIndex(items, currentIndex, 1);\n        break;\n      case 'ArrowUp':\n        nextIndex = this.nextEnabledIndex(items, currentIndex, -1);\n        break;\n      case 'Home':\n        nextIndex = items.findIndex(i => !i.disabled);\n        break;\n      case 'End':\n        nextIndex = this.nextEnabledIndex(items, items.length, -1);\n        break;\n      default:\n        return;\n    }\n\n    event.preventDefault();\n    if (nextIndex < 0) {\n      return;\n    }\n    this.setActive(pane, items[nextIndex].id);\n    this.focusOption(event, nextIndex);\n  }\n\n  private resolveActiveIndex(\n    items: readonly TransferListItem[],\n    activeId: string | null,\n  ): number {\n    const index = items.findIndex(i => i.id === activeId && !i.disabled);\n    return index >= 0 ? index : items.findIndex(i => !i.disabled);\n  }\n\n  private nextEnabledIndex(\n    items: readonly TransferListItem[],\n    from: number,\n    step: 1 | -1,\n  ): number {\n    for (let i = from + step; i >= 0 && i < items.length; i += step) {\n      if (!items[i].disabled) {\n        return i;\n      }\n    }\n    return from >= 0 && from < items.length ? from : -1;\n  }\n\n  private setActive(pane: 'source' | 'target', id: string): void {\n    const active = pane === 'source' ? this.leftActiveId : this.rightActiveId;\n    active.set(id);\n  }\n\n  private focusOption(event: KeyboardEvent, index: number): void {\n    const list = (event.currentTarget as HTMLElement).closest('[role=\"listbox\"]');\n    const options = list?.querySelectorAll<HTMLElement>('[role=\"option\"]');\n    options?.[index]?.focus();\n  }\n\n  private toggleHighlight(pane: 'source' | 'target', item: TransferListItem): void {\n    const highlight = pane === 'source' ? this.leftHighlighted : this.rightHighlighted;\n    const anchor = pane === 'source' ? this.leftAnchor : this.rightAnchor;\n    const next = new Set(highlight());\n    if (next.has(item.id)) {\n      next.delete(item.id);\n    } else {\n      next.add(item.id);\n    }\n    highlight.set(next);\n    anchor.set(item.id);\n  }\n\n  private selectRangeTo(pane: 'source' | 'target', item: TransferListItem): void {\n    const highlight = pane === 'source' ? this.leftHighlighted : this.rightHighlighted;\n    const anchor = pane === 'source' ? this.leftAnchor : this.rightAnchor;\n    const items = pane === 'source' ? this.sourceItems() : this.targetItems();\n    const anchorId = anchor();\n    /* If there is no anchor yet (or the anchor row has been moved to the\n       other pane), fall back to a single-row toggle so Shift-click never\n       feels broken. */\n    const anchorIdx = anchorId === null ? -1 : items.findIndex(i => i.id === anchorId);\n    const currentIdx = items.findIndex(i => i.id === item.id);\n    if (anchorIdx < 0 || currentIdx < 0) {\n      this.toggleHighlight(pane, item);\n      return;\n    }\n    const [start, end] =\n      anchorIdx <= currentIdx ? [anchorIdx, currentIdx] : [currentIdx, anchorIdx];\n    const next = new Set(highlight());\n    for (let i = start; i <= end; i++) {\n      const row = items[i];\n      if (!row.disabled) {\n        next.add(row.id);\n      }\n    }\n    highlight.set(next);\n    // Anchor stays put on shift-click so successive shift-clicks always\n    // extend from the original anchor (matching native list behaviour).\n  }\n\n  protected moveSelectedRight(): void {\n    if (!this.canMoveRight()) {\n      return;\n    }\n    const highlighted = this.leftHighlighted();\n    const sourceIds = new Set(\n      this.sourceItems()\n        .filter(i => !i.disabled)\n        .map(i => i.id),\n    );\n    const toMove = Array.from(highlighted).filter(id => sourceIds.has(id));\n    this.selectedIds.set([...this.selectedIds(), ...toMove]);\n    this.leftHighlighted.set(new Set<string>());\n    this.announceMove(toMove.length, this.resolvedTargetLabel());\n  }\n\n  protected moveAllRight(): void {\n    if (!this.canMoveAllRight()) {\n      return;\n    }\n    const moveable = this.sourceItems()\n      .filter(i => !i.disabled)\n      .map(i => i.id);\n    this.selectedIds.set([...this.selectedIds(), ...moveable]);\n    this.leftHighlighted.set(new Set<string>());\n    this.announceMove(moveable.length, this.resolvedTargetLabel());\n  }\n\n  protected moveSelectedLeft(): void {\n    if (!this.canMoveLeft()) {\n      return;\n    }\n    const highlighted = this.rightHighlighted();\n    const targetIds = new Set(\n      this.targetItems()\n        .filter(i => !i.disabled)\n        .map(i => i.id),\n    );\n    const toRemove = new Set(Array.from(highlighted).filter(id => targetIds.has(id)));\n    this.selectedIds.set(this.selectedIds().filter(id => !toRemove.has(id)));\n    this.rightHighlighted.set(new Set<string>());\n    this.announceMove(toRemove.size, this.resolvedSourceLabel());\n  }\n\n  protected moveAllLeft(): void {\n    if (!this.canMoveAllLeft()) {\n      return;\n    }\n    const stickyIds = new Set(\n      this.targetItems()\n        .filter(i => i.disabled)\n        .map(i => i.id),\n    );\n    const movedCount = this.targetItems().filter(i => !i.disabled).length;\n    this.selectedIds.set(this.selectedIds().filter(id => stickyIds.has(id)));\n    this.rightHighlighted.set(new Set<string>());\n    this.announceMove(movedCount, this.resolvedSourceLabel());\n  }\n\n  private announceMove(count: number, listLabel: string): void {\n    if (count > 0) {\n      this.announcement.set(this.messages().transferList.moved(`${count}`, listLabel));\n    }\n  }\n}\n","<div [class]=\"hostClasses()\">\n  <div class=\"ea-transfer-list__pane\">\n    @if (resolvedSourceLabel()) {\n      <h3 class=\"ea-transfer-list__pane-label\">{{ resolvedSourceLabel() }}</h3>\n    }\n    <ul\n      class=\"ea-transfer-list__list\"\n      role=\"listbox\"\n      aria-multiselectable=\"true\"\n      [attr.aria-label]=\"resolvedSourceLabel() || messages().transferList.sourceLabel\"\n      [attr.aria-disabled]=\"disabled() || null\">\n      @for (item of sourceItems(); track item.id) {\n        <li\n          class=\"ea-transfer-list__item\"\n          role=\"option\"\n          [attr.aria-selected]=\"isHighlighted('source', item.id)\"\n          [attr.aria-disabled]=\"item.disabled || disabled() || null\"\n          [class.ea-transfer-list__item--highlighted]=\"isHighlighted('source', item.id)\"\n          [class.ea-transfer-list__item--disabled]=\"item.disabled || disabled()\"\n          [attr.tabindex]=\"itemTabindex('source', $index, item)\"\n          (click)=\"onItemClick('source', item, $event)\"\n          (keydown)=\"onItemKeydown($event, 'source', item)\">\n          {{ item.label }}\n        </li>\n      } @empty {\n        <li\n          class=\"ea-transfer-list__empty\"\n          aria-hidden=\"true\">\n          {{ messages().transferList.empty }}\n        </li>\n      }\n    </ul>\n  </div>\n\n  <div\n    class=\"ea-transfer-list__buttons\"\n    role=\"group\"\n    [attr.aria-label]=\"messages().transferList.controlsLabel\">\n    <button\n      type=\"button\"\n      class=\"ea-transfer-list__button\"\n      [attr.aria-label]=\"messages().transferList.moveAllToTarget\"\n      [disabled]=\"!canMoveAllRight()\"\n      (click)=\"moveAllRight()\">\n      <ea-icon-chevrons-right class=\"ea-rtl-flip\" />\n    </button>\n    <button\n      type=\"button\"\n      class=\"ea-transfer-list__button\"\n      [attr.aria-label]=\"messages().transferList.moveSelectedToTarget\"\n      [disabled]=\"!canMoveRight()\"\n      (click)=\"moveSelectedRight()\">\n      <ea-icon-chevron-right class=\"ea-rtl-flip\" />\n    </button>\n    <button\n      type=\"button\"\n      class=\"ea-transfer-list__button\"\n      [attr.aria-label]=\"messages().transferList.moveSelectedToSource\"\n      [disabled]=\"!canMoveLeft()\"\n      (click)=\"moveSelectedLeft()\">\n      <ea-icon-chevron-left class=\"ea-rtl-flip\" />\n    </button>\n    <button\n      type=\"button\"\n      class=\"ea-transfer-list__button\"\n      [attr.aria-label]=\"messages().transferList.moveAllToSource\"\n      [disabled]=\"!canMoveAllLeft()\"\n      (click)=\"moveAllLeft()\">\n      <ea-icon-chevrons-left class=\"ea-rtl-flip\" />\n    </button>\n  </div>\n\n  <div class=\"ea-transfer-list__pane\">\n    @if (resolvedTargetLabel()) {\n      <h3 class=\"ea-transfer-list__pane-label\">{{ resolvedTargetLabel() }}</h3>\n    }\n    <ul\n      class=\"ea-transfer-list__list\"\n      role=\"listbox\"\n      aria-multiselectable=\"true\"\n      [attr.aria-label]=\"resolvedTargetLabel() || messages().transferList.targetLabel\"\n      [attr.aria-disabled]=\"disabled() || null\">\n      @for (item of targetItems(); track item.id) {\n        <li\n          class=\"ea-transfer-list__item\"\n          role=\"option\"\n          [attr.aria-selected]=\"isHighlighted('target', item.id)\"\n          [attr.aria-disabled]=\"item.disabled || disabled() || null\"\n          [class.ea-transfer-list__item--highlighted]=\"isHighlighted('target', item.id)\"\n          [class.ea-transfer-list__item--disabled]=\"item.disabled || disabled()\"\n          [attr.tabindex]=\"itemTabindex('target', $index, item)\"\n          (click)=\"onItemClick('target', item, $event)\"\n          (keydown)=\"onItemKeydown($event, 'target', item)\">\n          {{ item.label }}\n        </li>\n      } @empty {\n        <li\n          class=\"ea-transfer-list__empty\"\n          aria-hidden=\"true\">\n          {{ messages().transferList.empty }}\n        </li>\n      }\n    </ul>\n  </div>\n\n  <p\n    class=\"ea-transfer-list__announcement\"\n    role=\"status\">\n    {{ announcement() }}\n  </p>\n</div>\n","import { NgComponentOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  input,\n  output,\n} from '@angular/core';\n\nimport { ChevronRightIconComponent } from '../icons/chevron-right.component';\nimport type { TreeNode } from './tree.types';\n\n/**\n * Internal recursive renderer for a single tree node and its descendants.\n * Selection and expansion state are owned by the parent `<ea-tree>`; this\n * component emits intents (`toggle`, `select`) and the parent reconciles\n * them against the shared signals.\n */\n@Component({\n  selector: 'ea-tree-node',\n  templateUrl: './tree-node.component.html',\n  styleUrl: './tree-node.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgComponentOutlet, ChevronRightIconComponent],\n  host: {\n    role: 'none',\n  },\n})\nexport class TreeNodeComponent {\n  readonly node = input.required<TreeNode>();\n\n  /** Depth from the tree root (0-indexed). Drives indentation and `aria-level`. */\n  readonly level = input.required<number>();\n\n  /** 1-indexed position among the parent's children (for `aria-posinset`). */\n  readonly posInSet = input.required<number>();\n\n  /** Total number of siblings (for `aria-setsize`). */\n  readonly setSize = input.required<number>();\n\n  /** Currently-selected node id (single-select). */\n  readonly selectedId = input<string | null>(null);\n\n  /** Currently-focused node id (drives roving tabindex). */\n  readonly focusedId = input<string | null>(null);\n\n  /** Set of currently-expanded node ids. */\n  readonly expandedIds = input.required<ReadonlySet<string>>();\n\n  /** Whole-tree disabled state. */\n  readonly disabled = input<boolean>(false);\n\n  readonly toggle = output<string>();\n\n  readonly select = output<TreeNode>();\n\n  protected readonly hasChildren = computed(\n    () => (this.node().children?.length ?? 0) > 0,\n  );\n\n  protected readonly isExpanded = computed(() => this.expandedIds().has(this.node().id));\n\n  protected readonly isSelected = computed(() => this.selectedId() === this.node().id);\n\n  protected readonly isFocused = computed(() => this.focusedId() === this.node().id);\n\n  protected readonly isDisabled = computed(\n    () => this.disabled() || !!this.node().disabled,\n  );\n\n  protected readonly indentStyle = computed(() => ({\n    '--ea-tree-node-level': String(this.level()),\n  }));\n\n  protected onRowClick(): void {\n    if (this.isDisabled()) {\n      return;\n    }\n    this.select.emit(this.node());\n    if (this.hasChildren()) {\n      this.toggle.emit(this.node().id);\n    }\n  }\n\n  protected onChevronClick(event: MouseEvent): void {\n    /* Chevron clicks toggle expansion without also triggering selection.\n       Without stopPropagation the click would bubble to the row handler. */\n    event.stopPropagation();\n    if (this.isDisabled()) {\n      return;\n    }\n    this.toggle.emit(this.node().id);\n  }\n}\n","<li\n  class=\"ea-tree-node\"\n  role=\"treeitem\"\n  [attr.id]=\"'ea-tree-item-' + node().id\"\n  [attr.data-treeitem-id]=\"node().id\"\n  [attr.aria-level]=\"level() + 1\"\n  [attr.aria-posinset]=\"posInSet()\"\n  [attr.aria-setsize]=\"setSize()\"\n  [attr.aria-selected]=\"isSelected()\"\n  [attr.aria-expanded]=\"hasChildren() ? isExpanded() : null\"\n  [attr.aria-disabled]=\"isDisabled() || null\"\n  [attr.tabindex]=\"isFocused() ? 0 : -1\"\n  [class.ea-tree-node--selected]=\"isSelected()\"\n  [class.ea-tree-node--disabled]=\"isDisabled()\"\n  [class.ea-tree-node--leaf]=\"!hasChildren()\"\n  [style]=\"indentStyle()\">\n  <div\n    class=\"ea-tree-node__row\"\n    (click)=\"onRowClick()\">\n    @if (hasChildren()) {\n      <span\n        class=\"ea-tree-node__chevron\"\n        [class.ea-tree-node__chevron--open]=\"isExpanded()\"\n        aria-hidden=\"true\"\n        (click)=\"onChevronClick($event)\">\n        <ea-icon-chevron-right />\n      </span>\n    } @else {\n      <span\n        class=\"ea-tree-node__chevron-spacer\"\n        aria-hidden=\"true\">\n      </span>\n    }\n\n    @if (node().icon; as iconClass) {\n      <span\n        class=\"ea-tree-node__icon\"\n        aria-hidden=\"true\">\n        <ng-container *ngComponentOutlet=\"iconClass\" />\n      </span>\n    }\n\n    <span class=\"ea-tree-node__label\">\n      {{ node().label }}\n    </span>\n  </div>\n\n  @if (hasChildren() && isExpanded()) {\n    <ul\n      class=\"ea-tree-node__children\"\n      role=\"group\">\n      @for (child of node().children; track child.id; let i = $index) {\n        <ea-tree-node\n          [node]=\"child\"\n          [level]=\"level() + 1\"\n          [posInSet]=\"i + 1\"\n          [setSize]=\"node().children!.length\"\n          [selectedId]=\"selectedId()\"\n          [focusedId]=\"focusedId()\"\n          [expandedIds]=\"expandedIds()\"\n          [disabled]=\"disabled()\"\n          (toggle)=\"toggle.emit($event)\"\n          (select)=\"select.emit($event)\" />\n      }\n    </ul>\n  }\n</li>\n","import type { Type } from '@angular/core';\n\n/**\n * A single node in an `<ea-tree>` hierarchy.\n *\n * `id` must be unique across the entire tree (not just within siblings); it\n * drives selection state, expansion state, and keyboard focus.\n */\nexport interface TreeNode<T = unknown> {\n  /** Stable, unique identifier for the node. */\n  id: string;\n\n  /** Text label rendered for the node. */\n  label: string;\n\n  /** Child nodes. Omit (or empty array) to render as a leaf. */\n  children?: readonly TreeNode<T>[];\n\n  /** Optional leading-icon component class (e.g. `FolderIconComponent`). */\n  icon?: Type<unknown>;\n\n  /** When true, the node is skipped by keyboard navigation and cannot be selected. */\n  disabled?: boolean;\n\n  /** Arbitrary consumer-defined payload, passed through to `(nodeClick)`. */\n  data?: T;\n}\n\n/**\n * Internal helper: walks a tree depth-first, yielding every node along with\n * its parent chain. Used by `<ea-tree>` for keyboard navigation and lookup.\n */\nexport function* walkTree<T>(\n  nodes: readonly TreeNode<T>[],\n  ancestors: readonly TreeNode<T>[] = [],\n): Generator<{ node: TreeNode<T>; ancestors: readonly TreeNode<T>[] }> {\n  for (const node of nodes) {\n    yield { node, ancestors };\n    if (node.children?.length) {\n      yield* walkTree(node.children, [...ancestors, node]);\n    }\n  }\n}\n\n/**\n * Returns the flat list of currently-visible node ids, in tab order. A node\n * is visible iff every ancestor up to the root is in `expandedIds`.\n */\nexport function visibleNodeIds<T>(\n  nodes: readonly TreeNode<T>[],\n  expandedIds: ReadonlySet<string>,\n): string[] {\n  const out: string[] = [];\n  const visit = (list: readonly TreeNode<T>[]) => {\n    for (const node of list) {\n      out.push(node.id);\n      if (node.children?.length && expandedIds.has(node.id)) {\n        visit(node.children);\n      }\n    }\n  };\n  visit(nodes);\n  return out;\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  type Signal,\n  computed,\n  effect,\n  inject,\n  input,\n  model,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\nimport { isRtl } from '../direction';\nimport { type EaSize } from '../sizes';\nimport { TreeNodeComponent } from './tree-node.component';\nimport { type TreeNode, visibleNodeIds, walkTree } from './tree.types';\n\nexport type TreeSize = EaSize;\n\n/**\n * `<ea-tree>` renders a hierarchical, single-selection treeview with full\n * keyboard navigation (Arrow keys, Home, End, Enter / Space). Selection and\n * expansion state are model signals: pass `[selectedId]` / `[expandedIds]`\n * to control them, or bind `[(selectedId)]` / `[(expandedIds)]` for two-way\n * sync.\n *\n * The component implements the ARIA `tree` pattern:\n * - The outer `<ul>` carries `role=\"tree\"`\n * - Each node is a `<li role=\"treeitem\">` with `aria-level`, `aria-posinset`,\n *   `aria-setsize`, `aria-expanded` (branches only), and `aria-selected`\n * - Roving tabindex: only the currently-focused node has `tabindex=\"0\"`\n */\n@Component({\n  selector: 'ea-tree',\n  templateUrl: './tree.component.html',\n  styleUrl: './tree.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [TreeNodeComponent],\n})\nexport class TreeComponent {\n  private readonly hostEl = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  readonly nodes = input.required<readonly TreeNode[]>();\n\n  readonly size = input<TreeSize>('md');\n\n  readonly disabled = input<boolean>(false);\n\n  /** Currently-selected node id. `null` means nothing is selected. */\n  readonly selectedId = model<string | null>(null);\n\n  /** Ids of currently-expanded branch nodes. */\n  readonly expandedIds = model<readonly string[]>([]);\n\n  /** Optional aria-label for the tree itself. */\n  readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n  readonly nodeClick = output<TreeNode>();\n\n  private readonly listEl = viewChild<ElementRef<HTMLElement>>('listEl');\n\n  private readonly _focusedId = signal<string | null>(null);\n\n  protected readonly expandedSet: Signal<ReadonlySet<string>> = computed(\n    () => new Set(this.expandedIds()),\n  );\n\n  /**\n   * The node id currently driving the roving tabindex. Defaults to the first\n   * visible node if nothing has been focused yet, so Tab-into-tree lands on a\n   * sensible target.\n   */\n  protected readonly focusedId = computed(() => {\n    const explicit = this._focusedId();\n    if (explicit) {\n      // If the previously-focused node has been hidden (a parent collapsed),\n      // fall back to the first visible node so Tab still lands somewhere.\n      const visible = visibleNodeIds(this.nodes(), this.expandedSet());\n      if (visible.includes(explicit)) {\n        return explicit;\n      }\n    }\n    const visible = visibleNodeIds(this.nodes(), this.expandedSet());\n    return visible[0] ?? null;\n  });\n\n  protected readonly hostClasses = computed(() => [\n    'ea-tree',\n    `ea-tree--${this.size()}`,\n    this.disabled() ? 'ea-tree--disabled' : '',\n  ]);\n\n  constructor() {\n    /* When the consumer passes a `selectedId` for a node that is not yet\n       expanded into view, expand the chain so the selection becomes visible.\n       Only runs on `selectedId` changes (not on every nodes update). */\n    effect(() => {\n      const id = this.selectedId();\n      if (!id) {\n        return;\n      }\n      const ancestors = this.findAncestorIds(id);\n      if (ancestors.length === 0) {\n        return;\n      }\n      const current = new Set(this.expandedIds());\n      let changed = false;\n      for (const ancestorId of ancestors) {\n        if (!current.has(ancestorId)) {\n          current.add(ancestorId);\n          changed = true;\n        }\n      }\n      if (changed) {\n        this.expandedIds.set(Array.from(current));\n      }\n    });\n  }\n\n  protected onNodeSelect(node: TreeNode): void {\n    if (this.disabled() || node.disabled) {\n      return;\n    }\n    this.selectedId.set(node.id);\n    this._focusedId.set(node.id);\n    this.nodeClick.emit(node);\n  }\n\n  protected onNodeToggle(id: string): void {\n    if (this.disabled()) {\n      return;\n    }\n    const current = new Set(this.expandedIds());\n    if (current.has(id)) {\n      current.delete(id);\n    } else {\n      current.add(id);\n    }\n    this.expandedIds.set(Array.from(current));\n  }\n\n  protected onKeydown(event: KeyboardEvent): void {\n    if (this.disabled()) {\n      return;\n    }\n\n    const visible = visibleNodeIds(this.nodes(), this.expandedSet()).filter(\n      id => !this.isNodeDisabled(id),\n    );\n    if (visible.length === 0) {\n      return;\n    }\n\n    const currentId = this.focusedId();\n    const currentIdx = currentId ? visible.indexOf(currentId) : -1;\n\n    // In RTL the horizontal arrows swap: the arrow pointing towards the child\n    // indent expands, the one pointing towards the root collapses\n    const rtl = isRtl(event.currentTarget as Element);\n    let key = event.key;\n    if (rtl && key === 'ArrowRight') {\n      key = 'ArrowLeft';\n    } else if (rtl && key === 'ArrowLeft') {\n      key = 'ArrowRight';\n    }\n\n    switch (key) {\n      case 'ArrowDown': {\n        event.preventDefault();\n        const next = visible[Math.min(currentIdx + 1, visible.length - 1)];\n        this.focusNode(next);\n        break;\n      }\n      case 'ArrowUp': {\n        event.preventDefault();\n        const prev = visible[Math.max(currentIdx - 1, 0)];\n        this.focusNode(prev);\n        break;\n      }\n      case 'Home': {\n        event.preventDefault();\n        this.focusNode(visible[0]);\n        break;\n      }\n      case 'End': {\n        event.preventDefault();\n        this.focusNode(visible[visible.length - 1]);\n        break;\n      }\n      case 'ArrowRight': {\n        event.preventDefault();\n        if (!currentId) {\n          return;\n        }\n        const node = this.findNode(currentId);\n        if (!node) {\n          return;\n        }\n        const hasChildren = (node.children?.length ?? 0) > 0;\n        if (!hasChildren) {\n          return;\n        }\n        if (!this.expandedSet().has(currentId)) {\n          this.onNodeToggle(currentId);\n        } else if (node.children && node.children.length > 0) {\n          const firstChild = node.children.find(c => !c.disabled);\n          if (firstChild) {\n            this.focusNode(firstChild.id);\n          }\n        }\n        break;\n      }\n      case 'ArrowLeft': {\n        event.preventDefault();\n        if (!currentId) {\n          return;\n        }\n        const node = this.findNode(currentId);\n        if (!node) {\n          return;\n        }\n        const hasChildren = (node.children?.length ?? 0) > 0;\n        if (hasChildren && this.expandedSet().has(currentId)) {\n          this.onNodeToggle(currentId);\n        } else {\n          const parentId = this.findParentId(currentId);\n          if (parentId) {\n            this.focusNode(parentId);\n          }\n        }\n        break;\n      }\n      case 'Enter':\n      case ' ': {\n        event.preventDefault();\n        if (!currentId) {\n          return;\n        }\n        const node = this.findNode(currentId);\n        if (node) {\n          this.onNodeSelect(node);\n        }\n        break;\n      }\n    }\n  }\n\n  protected onTreeFocus(event: FocusEvent): void {\n    /* Track focus changes inside the tree so clicking a node updates the\n       roving tabindex. Skip if focus moved outside the tree (relatedTarget\n       is the next focus owner). */\n    const target = event.target as HTMLElement | null;\n    const itemId = target?.dataset['treeitemId'];\n    if (itemId) {\n      this._focusedId.set(itemId);\n    }\n  }\n\n  private focusNode(id: string): void {\n    this._focusedId.set(id);\n    queueMicrotask(() => {\n      const el = this.hostEl.nativeElement.querySelector<HTMLElement>(\n        `[data-treeitem-id=\"${CSS.escape(id)}\"]`,\n      );\n      el?.focus();\n    });\n  }\n\n  private findNode(id: string): TreeNode | null {\n    for (const { node } of walkTree(this.nodes())) {\n      if (node.id === id) {\n        return node;\n      }\n    }\n    return null;\n  }\n\n  private findParentId(id: string): string | null {\n    for (const { node, ancestors } of walkTree(this.nodes())) {\n      if (node.id === id) {\n        return ancestors[ancestors.length - 1]?.id ?? null;\n      }\n    }\n    return null;\n  }\n\n  private findAncestorIds(id: string): string[] {\n    for (const { node, ancestors } of walkTree(this.nodes())) {\n      if (node.id === id) {\n        return ancestors.map(a => a.id);\n      }\n    }\n    return [];\n  }\n\n  private isNodeDisabled(id: string): boolean {\n    if (this.disabled()) {\n      return true;\n    }\n    const node = this.findNode(id);\n    return !!node?.disabled;\n  }\n\n  // Silences the unused-warning on the viewChild ref, retained for programmatic\n  // focus behaviour (e.g. focusing the tree from a parent component).\n  protected readonly _listEl = this.listEl;\n}\n","<ul\n  #listEl\n  class=\"ea-tree__list\"\n  [class]=\"hostClasses()\"\n  role=\"tree\"\n  [attr.aria-label]=\"ariaLabel()\"\n  [attr.aria-disabled]=\"disabled() || null\"\n  (keydown)=\"onKeydown($event)\"\n  (focusin)=\"onTreeFocus($event)\">\n  @for (root of nodes(); track root.id; let i = $index) {\n    <ea-tree-node\n      [node]=\"root\"\n      [level]=\"0\"\n      [posInSet]=\"i + 1\"\n      [setSize]=\"nodes().length\"\n      [selectedId]=\"selectedId()\"\n      [focusedId]=\"focusedId()\"\n      [expandedIds]=\"expandedSet()\"\n      [disabled]=\"disabled()\"\n      (toggle)=\"onNodeToggle($event)\"\n      (select)=\"onNodeSelect($event)\" />\n  }\n</ul>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  type TemplateRef,\n  computed,\n  contentChild,\n  inject,\n  input,\n  output,\n  signal,\n  viewChild,\n} from '@angular/core';\n\n/**\n * Context object passed to each `<ng-template #item>` projection inside an\n * `<ea-virtual-list>`. Mirrors `let-item=\"$implicit\"` + `let-index=\"index\"`.\n */\nexport interface VirtualListItemContext<T = unknown> {\n  $implicit: T;\n  index: number;\n}\n\n/**\n * `<ea-virtual-list>` is a low-level windowed-rendering primitive: it only\n * mounts the items currently in the visible viewport (plus a small overscan)\n * so that lists of tens of thousands of rows scroll smoothly.\n *\n * Fixed-height items only. Variable-height virtualization would need either\n * a measurement pass per row or a height estimator, neither of which the\n * component implements.\n *\n * Usage:\n * ```html\n * <ea-virtual-list\n *   [items]=\"rows\"\n *   [itemHeight]=\"40\"\n *   [viewportHeight]=\"400\">\n *   <ng-template #item let-row let-i=\"index\">\n *     <div class=\"row\">{{ i }}: {{ row.label }}</div>\n *   </ng-template>\n * </ea-virtual-list>\n * ```\n *\n * The component intentionally stays role-agnostic: the consumer wraps the\n * projected item with whatever ARIA the use case calls for (`role=\"listitem\"`,\n * `role=\"option\"`, `role=\"row\"`, etc.) and applies `aria-setsize` /\n * `aria-posinset` using the projected `index` if needed.\n */\n@Component({\n  selector: 'ea-virtual-list',\n  templateUrl: './virtual-list.component.html',\n  styleUrl: './virtual-list.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgTemplateOutlet],\n})\nexport class VirtualListComponent {\n  // A composite consumer (a role on the host, e.g. listbox or grid) manages\n  // keyboard interaction and scrolling itself, and a focusable generic inside\n  // it would break the pattern. Without one, the viewport must take focus so\n  // keyboard users can scroll it.\n  private readonly hostRole: string | null =\n    inject(ElementRef).nativeElement.getAttribute('role');\n\n  protected readonly viewportTabindex = this.hostRole === null ? 0 : null;\n\n  readonly items = input.required<readonly unknown[]>();\n\n  /** Pixel height of each item. Must be > 0. */\n  readonly itemHeight = input.required<number>();\n\n  /** Pixel height of the scrolling viewport. Must be > 0. */\n  readonly viewportHeight = input.required<number>();\n\n  /**\n   * Extra rows rendered above and below the visible window. A small buffer\n   * (3-5) hides the edge of the window during fast scrolls; larger values\n   * trade memory for smoothness.\n   */\n  readonly overscan = input<number>(3);\n\n  /**\n   * Accessible name for the scrollable viewport. When set, the viewport gets\n   * `role=\"region\"` with this label so keyboard and screen-reader users can\n   * identify it. Leave unset when the consumer supplies its own ARIA\n   * semantics around the list (e.g. an outer `role=\"listbox\"`).\n   */\n  readonly ariaLabel = input<string | undefined>(undefined);\n\n  /** Index of the first row currently visible at the top of the viewport. */\n  readonly scrollIndexChange = output<number>();\n\n  /** Template applied to each rendered item, projected via `<ng-template #item>`. */\n  protected readonly itemTemplate =\n    contentChild.required<TemplateRef<VirtualListItemContext>>('item');\n\n  protected readonly viewportEl = viewChild<ElementRef<HTMLElement>>('viewport');\n\n  private readonly scrollTop = signal<number>(0);\n\n  protected readonly totalHeight = computed(\n    () => this.items().length * this.itemHeight(),\n  );\n\n  protected readonly viewportStyle = computed(() => ({\n    height: `${this.viewportHeight()}px`,\n  }));\n\n  protected readonly spacerStyle = computed(() => ({\n    height: `${this.totalHeight()}px`,\n  }));\n\n  protected readonly visibleRange = computed(() => {\n    const height = this.itemHeight();\n    const total = this.items().length;\n    if (height <= 0 || total === 0) {\n      return { start: 0, end: 0 };\n    }\n\n    const buffer = Math.max(0, this.overscan());\n    const firstVisible = Math.floor(this.scrollTop() / height);\n    const lastVisible = Math.ceil((this.scrollTop() + this.viewportHeight()) / height);\n    return {\n      start: Math.max(0, firstVisible - buffer),\n      end: Math.min(total, lastVisible + buffer),\n    };\n  });\n\n  protected readonly visibleItems = computed(() => {\n    const { start, end } = this.visibleRange();\n    const items = this.items();\n    const out: Array<{ index: number; item: unknown }> = [];\n    for (let i = start; i < end; i++) {\n      out.push({ index: i, item: items[i] });\n    }\n    return out;\n  });\n\n  protected itemStyle(index: number): Record<string, string> {\n    return {\n      position: 'absolute',\n      top: `${index * this.itemHeight()}px`,\n      left: '0',\n      right: '0',\n      height: `${this.itemHeight()}px`,\n    };\n  }\n\n  protected onScroll(event: Event): void {\n    const top = (event.target as HTMLElement).scrollTop;\n    this.scrollTop.set(top);\n    const firstVisible = Math.floor(top / this.itemHeight());\n    this.scrollIndexChange.emit(firstVisible);\n  }\n\n  /**\n   * Programmatically scroll the viewport so that the row at `index` is the\n   * top-most visible row. Out-of-range values are clamped to the list bounds.\n   */\n  scrollToIndex(index: number): void {\n    const el = this.viewportEl()?.nativeElement;\n    if (!el) {\n      return;\n    }\n    const clamped = Math.max(0, Math.min(this.items().length - 1, index));\n    el.scrollTop = clamped * this.itemHeight();\n  }\n}\n","<div\n  #viewport\n  class=\"ea-virtual-list__viewport\"\n  [attr.tabindex]=\"viewportTabindex\"\n  [attr.role]=\"ariaLabel() ? 'region' : null\"\n  [attr.aria-label]=\"ariaLabel() || null\"\n  [style]=\"viewportStyle()\"\n  (scroll)=\"onScroll($event)\">\n  <div\n    class=\"ea-virtual-list__spacer\"\n    [style]=\"spacerStyle()\">\n    @for (entry of visibleItems(); track entry.index) {\n      <div\n        class=\"ea-virtual-list__item\"\n        [style]=\"itemStyle(entry.index)\">\n        <ng-container\n          *ngTemplateOutlet=\"\n            itemTemplate();\n            context: { $implicit: entry.item, index: entry.index }\n          \" />\n      </div>\n    }\n  </div>\n</div>\n","import type { IconComponentType } from './icon-category';\n\n/**\n * Casing overrides for icons whose canonical brand or acronym name doesn't\n * match a naive slug-to-Title-Case derivation. Add new entries here so every\n * consumer (the reference page, the sandbox, downstream catalogues) renders\n * the same label.\n */\nconst DISPLAY_NAME_OVERRIDES: Record<string, string> = {\n  codepen: 'CodePen',\n  codesandbox: 'CodeSandbox',\n  cpu: 'CPU',\n  'file-pdf': 'File PDF',\n  github: 'GitHub',\n  'github-2': 'GitHub 2',\n  gitlab: 'GitLab',\n  linkedin: 'LinkedIn',\n  'linkedin-2': 'LinkedIn 2',\n  mongodb: 'MongoDB',\n  nodejs: 'Node.js',\n  npm: 'npm',\n  paypal: 'PayPal',\n  'picture-in-picture': 'Picture-in-Picture',\n  'qr-code': 'QR Code',\n  rss: 'RSS',\n  tailwind: 'Tailwind CSS',\n  tiktok: 'TikTok',\n  tv: 'TV',\n  vue: 'Vue.js',\n  whatsapp: 'WhatsApp',\n  wordpress: 'WordPress',\n  'x-twitter': 'X (Twitter)',\n  youtube: 'YouTube',\n  'youtube-2': 'YouTube 2',\n};\n\n/**\n * Resolves an icon's human-readable display name. Pass the component class\n * (`iconDisplayName(GithubIconComponent)` returns `'GitHub'`) or its slug\n * (`iconDisplayName('github')` returns `'GitHub'`). Falls back to a generic\n * slug-to-Title-Case derivation when no override is defined.\n */\nexport function iconDisplayName(iconOrSlug: IconComponentType | string): string {\n  const slug = typeof iconOrSlug === 'string' ? iconOrSlug : iconOrSlug.slug;\n  return DISPLAY_NAME_OVERRIDES[slug] ?? toTitleCase(slug);\n}\n\nfunction toTitleCase(slug: string): string {\n  return slug\n    .split('-')\n    .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n    .join(' ');\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-activity',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\" />\n    </svg>\n  `,\n})\nexport class ActivityIconComponent extends IconComponentBase {\n  static readonly slug = 'activity';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'activity',\n    'pulse',\n    'heartbeat',\n    'health',\n    'fitness',\n    'activité',\n    'pouls',\n    'actividad',\n    'pulso',\n    'δραστηριότητα',\n    'παλμός',\n    'aktywność',\n    'puls',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-airplay',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\" />\n      <polygon points=\"12 15 17 21 7 21 12 15\" />\n    </svg>\n  `,\n})\nexport class AirplayIconComponent extends IconComponentBase {\n  static readonly slug = 'airplay';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'airplay',\n    'cast',\n    'stream',\n    'mirror',\n    'screen',\n    'diffusion',\n    'transmisión',\n    'μετάδοση',\n    'transmisja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-alert-octagon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon\n        points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"16\"\n        x2=\"12.01\"\n        y2=\"16\" />\n    </svg>\n  `,\n})\nexport class AlertOctagonIconComponent extends IconComponentBase {\n  static readonly slug = 'alert-octagon';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'alert-octagon',\n    'alert',\n    'octagon',\n    'warning',\n    'stop',\n    'danger',\n    'alerte',\n    'octogone',\n    'alerta',\n    'octágono',\n    'ειδοποίηση',\n    'οκτάγωνο',\n    'alarm',\n    'ostrzeżenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-align-center',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"18\"\n        y1=\"10\"\n        x2=\"6\"\n        y2=\"10\" />\n      <line\n        x1=\"21\"\n        y1=\"6\"\n        x2=\"3\"\n        y2=\"6\" />\n      <line\n        x1=\"21\"\n        y1=\"14\"\n        x2=\"3\"\n        y2=\"14\" />\n      <line\n        x1=\"18\"\n        y1=\"18\"\n        x2=\"6\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class AlignCenterIconComponent extends IconComponentBase {\n  static readonly slug = 'align-center';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'align-center',\n    'align',\n    'center',\n    'centre',\n    'text',\n    'format',\n    'paragraph',\n    'centrer',\n    'centrado',\n    'στοίχιση',\n    'κέντρο',\n    'wyśrodkuj',\n    'środek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-align-justify',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"21\"\n        y1=\"10\"\n        x2=\"3\"\n        y2=\"10\" />\n      <line\n        x1=\"21\"\n        y1=\"6\"\n        x2=\"3\"\n        y2=\"6\" />\n      <line\n        x1=\"21\"\n        y1=\"14\"\n        x2=\"3\"\n        y2=\"14\" />\n      <line\n        x1=\"21\"\n        y1=\"18\"\n        x2=\"3\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class AlignJustifyIconComponent extends IconComponentBase {\n  static readonly slug = 'align-justify';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'align-justify',\n    'align',\n    'justify',\n    'text',\n    'format',\n    'paragraph',\n    'justifier',\n    'justificar',\n    'πλήρης στοίχιση',\n    'wyjustuj',\n    'justowanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-align-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"17\"\n        y1=\"10\"\n        x2=\"3\"\n        y2=\"10\" />\n      <line\n        x1=\"21\"\n        y1=\"6\"\n        x2=\"3\"\n        y2=\"6\" />\n      <line\n        x1=\"21\"\n        y1=\"14\"\n        x2=\"3\"\n        y2=\"14\" />\n      <line\n        x1=\"17\"\n        y1=\"18\"\n        x2=\"3\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class AlignLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'align-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'align-left',\n    'align',\n    'left',\n    'text',\n    'format',\n    'paragraph',\n    'gauche',\n    'izquierda',\n    'αριστερά',\n    'στοίχιση',\n    'lewo',\n    'wyrównaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-align-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"21\"\n        y1=\"10\"\n        x2=\"7\"\n        y2=\"10\" />\n      <line\n        x1=\"21\"\n        y1=\"6\"\n        x2=\"3\"\n        y2=\"6\" />\n      <line\n        x1=\"21\"\n        y1=\"14\"\n        x2=\"3\"\n        y2=\"14\" />\n      <line\n        x1=\"21\"\n        y1=\"18\"\n        x2=\"7\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class AlignRightIconComponent extends IconComponentBase {\n  static readonly slug = 'align-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'align-right',\n    'align',\n    'right',\n    'text',\n    'format',\n    'paragraph',\n    'droite',\n    'derecha',\n    'δεξιά',\n    'στοίχιση',\n    'prawo',\n    'wyrównaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-anchor',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"5\"\n        r=\"3\" />\n      <line\n        x1=\"12\"\n        y1=\"22\"\n        x2=\"12\"\n        y2=\"8\" />\n      <path d=\"M5 12H2a10 10 0 0 0 20 0h-3\" />\n    </svg>\n  `,\n})\nexport class AnchorIconComponent extends IconComponentBase {\n  static readonly slug = 'anchor';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'anchor',\n    'ship',\n    'boat',\n    'marine',\n    'ancre',\n    'bateau',\n    'ancla',\n    'barco',\n    'άγκυρα',\n    'πλοίο',\n    'kotwica',\n    'statek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-android',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#3DDC84' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z\" />\n    </svg>\n  `,\n})\nexport class AndroidIconComponent extends IconComponentBase {\n  static readonly slug = 'android';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'android',\n    'mobile',\n    'os',\n    'google',\n    'phone',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-angular',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#0F0F11' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M16.712 17.711H7.288l-1.204 2.916L12 24l5.916-3.373-1.204-2.916ZM14.692 0l7.832 16.855.814-12.856L14.692 0ZM9.308 0 .662 3.999l.814 12.856L9.308 0Zm-.405 13.93h6.198L12 6.396 8.903 13.93Z\" />\n    </svg>\n  `,\n})\nexport class AngularIconComponent extends IconComponentBase {\n  static readonly slug = 'angular';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'angular',\n    'framework',\n    'typescript',\n    'frontend',\n    'web',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-anthropic',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#D97757' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z\" />\n    </svg>\n  `,\n})\nexport class AnthropicIconComponent extends IconComponentBase {\n  static readonly slug = 'anthropic';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['anthropic', 'claude', 'ai', 'llm'];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-aperture',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"14.31\"\n        y1=\"8\"\n        x2=\"20.05\"\n        y2=\"17.94\" />\n      <line\n        x1=\"9.69\"\n        y1=\"8\"\n        x2=\"21.17\"\n        y2=\"8\" />\n      <line\n        x1=\"7.38\"\n        y1=\"12\"\n        x2=\"13.12\"\n        y2=\"2.06\" />\n      <line\n        x1=\"9.69\"\n        y1=\"16\"\n        x2=\"3.95\"\n        y2=\"6.06\" />\n      <line\n        x1=\"14.31\"\n        y1=\"16\"\n        x2=\"2.83\"\n        y2=\"16\" />\n      <line\n        x1=\"16.62\"\n        y1=\"12\"\n        x2=\"10.88\"\n        y2=\"21.94\" />\n    </svg>\n  `,\n})\nexport class ApertureIconComponent extends IconComponentBase {\n  static readonly slug = 'aperture';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'aperture',\n    'camera',\n    'lens',\n    'photo',\n    'photography',\n    'ouverture',\n    'objectif',\n    'apertura',\n    'lente',\n    'διάφραγμα',\n    'φακός',\n    'przysłona',\n    'obiektyw',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-array',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M2.5 9a1.5 1.5 0 0 1-1.5-1.5V2.5a1.5 1.5 0 0 1 1.5-1.5h9a1.5 1.5 0 0 1 1.5 1.5\" />\n      <path\n        d=\"M5 12.5a1.5 1.5 0 0 1-1.5-1.5V6a1.5 1.5 0 0 1 1.5-1.5h9a1.5 1.5 0 0 1 1.5 1.5\" />\n      <path\n        d=\"M7.5 16a1.5 1.5 0 0 1-1.5-1.5V9.5a1.5 1.5 0 0 1 1.5-1.5h9a1.5 1.5 0 0 1 1.5 1.5\" />\n      <path\n        d=\"M10 19.5a1.5 1.5 0 0 1-1.5-1.5V13a1.5 1.5 0 0 1 1.5-1.5h9a1.5 1.5 0 0 1 1.5 1.5\" />\n      <rect\n        x=\"11\"\n        y=\"15\"\n        width=\"12\"\n        height=\"8\"\n        rx=\"1.5\" />\n    </svg>\n  `,\n})\nexport class ArrayIconComponent extends IconComponentBase {\n  static override readonly defaultStrokeWidth = 1.5;\n  static readonly slug = 'array';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'array',\n    'stack',\n    'pile',\n    'cards',\n    'deck',\n    'layers',\n    'collection',\n    'list',\n    'tableau',\n    'cartes',\n    'matriz',\n    'pila',\n    'πίνακας',\n    'στοίβα',\n    'tablica',\n    'stos',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-down-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polyline points=\"8 12 12 16 16 12\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"16\" />\n    </svg>\n  `,\n})\nexport class ArrowDownCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-down-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-down-circle',\n    'arrow',\n    'down',\n    'circle',\n    'south',\n    'descend',\n    'flèche',\n    'bas',\n    'flecha',\n    'abajo',\n    'βέλος',\n    'κάτω',\n    'strzałka',\n    'dół',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-down-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"17\"\n        y1=\"7\"\n        x2=\"7\"\n        y2=\"17\" />\n      <polyline points=\"17 17 7 17 7 7\" />\n    </svg>\n  `,\n})\nexport class ArrowDownLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-down-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-down-left',\n    'arrow',\n    'down',\n    'left',\n    'southwest',\n    'flèche',\n    'bas',\n    'gauche',\n    'flecha',\n    'abajo',\n    'izquierda',\n    'βέλος',\n    'κάτω',\n    'αριστερά',\n    'strzałka',\n    'dół',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-down-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"7\"\n        y1=\"7\"\n        x2=\"17\"\n        y2=\"17\" />\n      <polyline points=\"17 7 17 17 7 17\" />\n    </svg>\n  `,\n})\nexport class ArrowDownRightIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-down-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-down-right',\n    'arrow',\n    'down',\n    'right',\n    'southeast',\n    'flèche',\n    'bas',\n    'droite',\n    'flecha',\n    'abajo',\n    'derecha',\n    'βέλος',\n    'κάτω',\n    'δεξιά',\n    'strzałka',\n    'dół',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-left-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polyline points=\"12 8 8 12 12 16\" />\n      <line\n        x1=\"16\"\n        y1=\"12\"\n        x2=\"8\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class ArrowLeftCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-left-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-left-circle',\n    'arrow',\n    'left',\n    'circle',\n    'west',\n    'back',\n    'previous',\n    'flèche',\n    'gauche',\n    'flecha',\n    'izquierda',\n    'βέλος',\n    'αριστερά',\n    'strzałka',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"19\"\n        y1=\"12\"\n        x2=\"5\"\n        y2=\"12\" />\n      <polyline points=\"12 19 5 12 12 5\" />\n    </svg>\n  `,\n})\nexport class ArrowLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-left',\n    'arrow',\n    'left',\n    'west',\n    'back',\n    'previous',\n    'flèche',\n    'gauche',\n    'flecha',\n    'izquierda',\n    'βέλος',\n    'αριστερά',\n    'strzałka',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-right-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polyline points=\"12 16 16 12 12 8\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class ArrowRightCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-right-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-right-circle',\n    'arrow',\n    'right',\n    'circle',\n    'east',\n    'forward',\n    'next',\n    'flèche',\n    'droite',\n    'flecha',\n    'derecha',\n    'βέλος',\n    'δεξιά',\n    'strzałka',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"5\"\n        y1=\"12\"\n        x2=\"19\"\n        y2=\"12\" />\n      <polyline points=\"12 5 19 12 12 19\" />\n    </svg>\n  `,\n})\nexport class ArrowRightIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-right',\n    'arrow',\n    'right',\n    'east',\n    'forward',\n    'next',\n    'flèche',\n    'droite',\n    'flecha',\n    'derecha',\n    'βέλος',\n    'δεξιά',\n    'strzałka',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-up-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polyline points=\"16 12 12 8 8 12\" />\n      <line\n        x1=\"12\"\n        y1=\"16\"\n        x2=\"12\"\n        y2=\"8\" />\n    </svg>\n  `,\n})\nexport class ArrowUpCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-up-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-up-circle',\n    'arrow',\n    'up',\n    'circle',\n    'north',\n    'ascend',\n    'flèche',\n    'haut',\n    'flecha',\n    'arriba',\n    'βέλος',\n    'πάνω',\n    'strzałka',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-up-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"17\"\n        y1=\"17\"\n        x2=\"7\"\n        y2=\"7\" />\n      <polyline points=\"7 17 7 7 17 7\" />\n    </svg>\n  `,\n})\nexport class ArrowUpLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-up-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-up-left',\n    'arrow',\n    'up',\n    'left',\n    'northwest',\n    'flèche',\n    'haut',\n    'gauche',\n    'flecha',\n    'arriba',\n    'izquierda',\n    'βέλος',\n    'πάνω',\n    'αριστερά',\n    'strzałka',\n    'góra',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-arrow-up-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"7\"\n        y1=\"17\"\n        x2=\"17\"\n        y2=\"7\" />\n      <polyline points=\"7 7 17 7 17 17\" />\n    </svg>\n  `,\n})\nexport class ArrowUpRightIconComponent extends IconComponentBase {\n  static readonly slug = 'arrow-up-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'arrow-up-right',\n    'arrow',\n    'up',\n    'right',\n    'northeast',\n    'flèche',\n    'haut',\n    'droite',\n    'flecha',\n    'arriba',\n    'derecha',\n    'βέλος',\n    'πάνω',\n    'δεξιά',\n    'strzałka',\n    'góra',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-aspect-ratio',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"5\"\n        width=\"18\"\n        height=\"14\"\n        rx=\"2\" />\n      <line\n        x1=\"6\"\n        y1=\"16\"\n        x2=\"18\"\n        y2=\"8\" />\n      <polyline points=\"14.5 8 18 8 18 11.5\" />\n      <polyline points=\"9.5 16 6 16 6 12.5\" />\n    </svg>\n  `,\n})\nexport class AspectRatioIconComponent extends IconComponentBase {\n  static readonly slug = 'aspect-ratio';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'aspect ratio',\n    'frame',\n    'dimensions',\n    'widescreen',\n    'scale',\n    \"format d'image\",\n    'relación de aspecto',\n    'λόγος διαστάσεων',\n    'proporcje obrazu',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-at-sign',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"4\" />\n      <path d=\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\" />\n    </svg>\n  `,\n})\nexport class AtSignIconComponent extends IconComponentBase {\n  static readonly slug = 'at-sign';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'at-sign',\n    'at',\n    'sign',\n    'email',\n    'mention',\n    'arobase',\n    'arroba',\n    'παπάκι',\n    'małpa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-award',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"8\"\n        r=\"7\" />\n      <polyline points=\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\" />\n    </svg>\n  `,\n})\nexport class AwardIconComponent extends IconComponentBase {\n  static readonly slug = 'award';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'award',\n    'medal',\n    'prize',\n    'trophy',\n    'achievement',\n    'badge',\n    'récompense',\n    'médaille',\n    'premio',\n    'medalla',\n    'βραβείο',\n    'μετάλλιο',\n    'nagroda',\n    'medal',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-badge-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\" />\n      <path d=\"m9 12 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class BadgeCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'badge-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'badge-check',\n    'verified',\n    'check',\n    'badge',\n    'approved',\n    'vérifié',\n    'verificado',\n    'επαληθευμένο',\n    'zweryfikowano',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bar-chart-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"18\"\n        y1=\"20\"\n        x2=\"18\"\n        y2=\"10\" />\n      <line\n        x1=\"12\"\n        y1=\"20\"\n        x2=\"12\"\n        y2=\"4\" />\n      <line\n        x1=\"6\"\n        y1=\"20\"\n        x2=\"6\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class BarChart2IconComponent extends IconComponentBase {\n  static readonly slug = 'bar-chart-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bar-chart-2',\n    'bar',\n    'chart',\n    '2',\n    'graph',\n    'statistics',\n    'analytics',\n    'graphique',\n    'gráfico',\n    'estadísticas',\n    'γράφημα',\n    'στατιστικά',\n    'wykres',\n    'statystyki',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bar-chart',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"12\"\n        y1=\"20\"\n        x2=\"12\"\n        y2=\"10\" />\n      <line\n        x1=\"18\"\n        y1=\"20\"\n        x2=\"18\"\n        y2=\"4\" />\n      <line\n        x1=\"6\"\n        y1=\"20\"\n        x2=\"6\"\n        y2=\"16\" />\n    </svg>\n  `,\n})\nexport class BarChartIconComponent extends IconComponentBase {\n  static readonly slug = 'bar-chart';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bar-chart',\n    'bar',\n    'chart',\n    'graph',\n    'statistics',\n    'analytics',\n    'graphique',\n    'gráfico',\n    'estadísticas',\n    'γράφημα',\n    'στατιστικά',\n    'wykres',\n    'statystyki',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-battery-charging',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\" />\n      <line\n        x1=\"23\"\n        y1=\"13\"\n        x2=\"23\"\n        y2=\"11\" />\n      <polyline points=\"11 6 7 12 13 12 9 18\" />\n    </svg>\n  `,\n})\nexport class BatteryChargingIconComponent extends IconComponentBase {\n  static readonly slug = 'battery-charging';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'battery-charging',\n    'battery',\n    'charging',\n    'power',\n    'energy',\n    'charge',\n    'batterie',\n    'charge',\n    'batería',\n    'cargando',\n    'μπαταρία',\n    'φόρτιση',\n    'bateria',\n    'ładowanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-battery',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"1\"\n        y=\"6\"\n        width=\"18\"\n        height=\"12\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"23\"\n        y1=\"13\"\n        x2=\"23\"\n        y2=\"11\" />\n    </svg>\n  `,\n})\nexport class BatteryIconComponent extends IconComponentBase {\n  static readonly slug = 'battery';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'battery',\n    'power',\n    'energy',\n    'charge',\n    'batterie',\n    'batería',\n    'energía',\n    'μπαταρία',\n    'ενέργεια',\n    'bateria',\n    'energia',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bell-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" />\n      <path d=\"M18.63 13A17.89 17.89 0 0 1 18 8\" />\n      <path d=\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\" />\n      <path d=\"M18 8a6 6 0 0 0-9.33-5\" />\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class BellOffIconComponent extends IconComponentBase {\n  static readonly slug = 'bell-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bell-off',\n    'bell',\n    'off',\n    'mute',\n    'silent',\n    'notification',\n    'silence',\n    'silencio',\n    'mudo',\n    'σίγαση',\n    'wyciszony',\n    'cisza',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bell-ring',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M10.268 21a2 2 0 0 0 3.464 0\" />\n      <path d=\"M22 8c0-2.3-.8-4.3-2-6\" />\n      <path\n        d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\" />\n      <path d=\"M4 2C2.8 3.7 2 5.7 2 8\" />\n    </svg>\n  `,\n})\nexport class BellRingIconComponent extends IconComponentBase {\n  static readonly slug = 'bell-ring';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bell-ring',\n    'bell',\n    'notification',\n    'alert',\n    'alarm',\n    'cloche',\n    'campana',\n    'καμπάνα',\n    'dzwonek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bell',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\" />\n      <path d=\"M13.73 21a2 2 0 0 1-3.46 0\" />\n    </svg>\n  `,\n})\nexport class BellIconComponent extends IconComponentBase {\n  static readonly slug = 'bell';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bell',\n    'notification',\n    'alert',\n    'ring',\n    'reminder',\n    'cloche',\n    'notification',\n    'campana',\n    'notificación',\n    'καμπάνα',\n    'ειδοποίηση',\n    'dzwonek',\n    'powiadomienie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bitcoin',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727\" />\n    </svg>\n  `,\n})\nexport class BitcoinIconComponent extends IconComponentBase {\n  static readonly slug = 'bitcoin';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bitcoin',\n    'crypto',\n    'cryptocurrency',\n    'btc',\n    'currency',\n    'κρυπτονόμισμα',\n    'kryptowaluta',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bluesky',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#1185FE' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026\" />\n    </svg>\n  `,\n})\nexport class BlueskyIconComponent extends IconComponentBase {\n  static readonly slug = 'bluesky';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'bluesky',\n    'social',\n    'network',\n    'atproto',\n    'feed',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bluetooth',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\" />\n    </svg>\n  `,\n})\nexport class BluetoothIconComponent extends IconComponentBase {\n  static readonly slug = 'bluetooth';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bluetooth',\n    'wireless',\n    'connection',\n    'connect',\n    'sans-fil',\n    'inalámbrico',\n    'ασύρματο',\n    'σύνδεση',\n    'bezprzewodowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bold',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\" />\n      <path d=\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\" />\n    </svg>\n  `,\n})\nexport class BoldIconComponent extends IconComponentBase {\n  static readonly slug = 'bold';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bold',\n    'text',\n    'format',\n    'strong',\n    'weight',\n    'gras',\n    'negrita',\n    'έντονα',\n    'pogrubienie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-book-open',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\" />\n      <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\" />\n    </svg>\n  `,\n})\nexport class BookOpenIconComponent extends IconComponentBase {\n  static readonly slug = 'book-open';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'book-open',\n    'book',\n    'open',\n    'read',\n    'literature',\n    'study',\n    'livre',\n    'ouvert',\n    'libro',\n    'abierto',\n    'βιβλίο',\n    'ανοιχτό',\n    'książka',\n    'otwarta',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-book',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\" />\n      <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\" />\n    </svg>\n  `,\n})\nexport class BookIconComponent extends IconComponentBase {\n  static readonly slug = 'book';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'book',\n    'read',\n    'library',\n    'literature',\n    'study',\n    'livre',\n    'lecture',\n    'libro',\n    'leer',\n    'βιβλίο',\n    'ανάγνωση',\n    'książka',\n    'czytać',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bookmark-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z\" />\n      <path d=\"m9 10 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class BookmarkCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'bookmark-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bookmark-check',\n    'bookmark',\n    'check',\n    'saved',\n    'favorite',\n    'signet',\n    'marcador',\n    'σελιδοδείκτης',\n    'zakładka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bookmark-plus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 7v6\" />\n      <path d=\"M15 10H9\" />\n      <path\n        d=\"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z\" />\n    </svg>\n  `,\n})\nexport class BookmarkPlusIconComponent extends IconComponentBase {\n  static readonly slug = 'bookmark-plus';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bookmark-plus',\n    'bookmark',\n    'save',\n    'add',\n    'favorite',\n    'signet',\n    'marcador',\n    'σελιδοδείκτης',\n    'zakładka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bookmark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\" />\n    </svg>\n  `,\n})\nexport class BookmarkIconComponent extends IconComponentBase {\n  static readonly slug = 'bookmark';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'bookmark',\n    'save',\n    'favorite',\n    'mark',\n    'tag',\n    'marque-page',\n    'favori',\n    'marcador',\n    'favorito',\n    'σελιδοδείκτης',\n    'αγαπημένο',\n    'zakładka',\n    'ulubione',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bot',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 8V4H8\" />\n      <rect\n        width=\"16\"\n        height=\"12\"\n        x=\"4\"\n        y=\"8\"\n        rx=\"2\" />\n      <path d=\"M2 14h2\" />\n      <path d=\"M20 14h2\" />\n      <path d=\"M15 13v2\" />\n      <path d=\"M9 13v2\" />\n    </svg>\n  `,\n})\nexport class BotIconComponent extends IconComponentBase {\n  static readonly slug = 'bot';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bot',\n    'robot',\n    'ai',\n    'assistant',\n    'chatbot',\n    'ρομπότ',\n    'robot',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bottle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M10 2h4v4l2 3v11a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2V9l2-3z\" />\n      <line\n        x1=\"9\"\n        y1=\"14\"\n        x2=\"15\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class BottleIconComponent extends IconComponentBase {\n  static readonly slug = 'bottle';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bottle',\n    'drink',\n    'water',\n    'beverage',\n    'container',\n    'bouteille',\n    'botella',\n    'agua',\n    'μπουκάλι',\n    'νερό',\n    'butelka',\n    'woda',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-box',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n      <polyline points=\"3.27 6.96 12 12.01 20.73 6.96\" />\n      <line\n        x1=\"12\"\n        y1=\"22.08\"\n        x2=\"12\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class BoxIconComponent extends IconComponentBase {\n  static readonly slug = 'box';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'box',\n    'package',\n    'parcel',\n    'cube',\n    'container',\n    'boîte',\n    'colis',\n    'caja',\n    'paquete',\n    'κουτί',\n    'πακέτο',\n    'pudełko',\n    'paczka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-brain',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 18V5\" />\n      <path d=\"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4\" />\n      <path d=\"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5\" />\n      <path d=\"M17.997 5.125a4 4 0 0 1 2.526 5.77\" />\n      <path d=\"M18 18a4 4 0 0 0 2-7.464\" />\n      <path d=\"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517\" />\n      <path d=\"M6 18a4 4 0 0 1-2-7.464\" />\n      <path d=\"M6.003 5.125a4 4 0 0 0-2.526 5.77\" />\n    </svg>\n  `,\n})\nexport class BrainIconComponent extends IconComponentBase {\n  static readonly slug = 'brain';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'brain',\n    'mind',\n    'intelligence',\n    'think',\n    'ai',\n    'cerveau',\n    'cerebro',\n    'εγκέφαλος',\n    'mózg',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-briefcase',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"7\"\n        width=\"20\"\n        height=\"14\"\n        rx=\"2\"\n        ry=\"2\" />\n      <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\" />\n    </svg>\n  `,\n})\nexport class BriefcaseIconComponent extends IconComponentBase {\n  static readonly slug = 'briefcase';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'briefcase',\n    'work',\n    'business',\n    'job',\n    'office',\n    'mallette',\n    'travail',\n    'maletín',\n    'trabajo',\n    'χαρτοφύλακας',\n    'εργασία',\n    'teczka',\n    'praca',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-bug',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 20v-9\" />\n      <path d=\"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z\" />\n      <path d=\"M14.12 3.88 16 2\" />\n      <path d=\"M21 21a4 4 0 0 0-3.81-4\" />\n      <path d=\"M21 5a4 4 0 0 1-3.55 3.97\" />\n      <path d=\"M22 13h-4\" />\n      <path d=\"M3 21a4 4 0 0 1 3.81-4\" />\n      <path d=\"M3 5a4 4 0 0 0 3.55 3.97\" />\n      <path d=\"M6 13H2\" />\n      <path d=\"m8 2 1.88 1.88\" />\n      <path d=\"M9 7.13V6a3 3 0 1 1 6 0v1.13\" />\n    </svg>\n  `,\n})\nexport class BugIconComponent extends IconComponentBase {\n  static readonly slug = 'bug';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'bug',\n    'insect',\n    'issue',\n    'error',\n    'debug',\n    'bogue',\n    'insecte',\n    'bicho',\n    'fallo',\n    'σφάλμα',\n    'έντομο',\n    'błąd',\n    'owad',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-building',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 10h.01\" />\n      <path d=\"M12 14h.01\" />\n      <path d=\"M12 6h.01\" />\n      <path d=\"M16 10h.01\" />\n      <path d=\"M16 14h.01\" />\n      <path d=\"M16 6h.01\" />\n      <path d=\"M8 10h.01\" />\n      <path d=\"M8 14h.01\" />\n      <path d=\"M8 6h.01\" />\n      <path d=\"M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\" />\n      <rect\n        x=\"4\"\n        y=\"2\"\n        width=\"16\"\n        height=\"20\"\n        rx=\"2\" />\n    </svg>\n  `,\n})\nexport class BuildingIconComponent extends IconComponentBase {\n  static readonly slug = 'building';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'building',\n    'office',\n    'company',\n    'organization',\n    'apartment',\n    'immeuble',\n    'bâtiment',\n    'edificio',\n    'oficina',\n    'κτίριο',\n    'γραφείο',\n    'budynek',\n    'biuro',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-calculator',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        width=\"16\"\n        height=\"20\"\n        x=\"4\"\n        y=\"2\"\n        rx=\"2\" />\n      <line\n        x1=\"8\"\n        x2=\"16\"\n        y1=\"6\"\n        y2=\"6\" />\n      <line\n        x1=\"16\"\n        x2=\"16\"\n        y1=\"14\"\n        y2=\"18\" />\n      <path d=\"M16 10h.01\" />\n      <path d=\"M12 10h.01\" />\n      <path d=\"M8 10h.01\" />\n      <path d=\"M12 14h.01\" />\n      <path d=\"M8 14h.01\" />\n      <path d=\"M12 18h.01\" />\n      <path d=\"M8 18h.01\" />\n    </svg>\n  `,\n})\nexport class CalculatorIconComponent extends IconComponentBase {\n  static readonly slug = 'calculator';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'calculator',\n    'math',\n    'count',\n    'calculate',\n    'calculatrice',\n    'calculadora',\n    'αριθμομηχανή',\n    'kalkulator',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-calendar-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 2v4\" />\n      <path d=\"M16 2v4\" />\n      <rect\n        width=\"18\"\n        height=\"18\"\n        x=\"3\"\n        y=\"4\"\n        rx=\"2\" />\n      <path d=\"M3 10h18\" />\n      <path d=\"m9 16 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class CalendarCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'calendar-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'calendar-check',\n    'calendar',\n    'check',\n    'event',\n    'scheduled',\n    'calendrier',\n    'calendario',\n    'ημερολόγιο',\n    'kalendarz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-calendar-days',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 2v4\" />\n      <path d=\"M16 2v4\" />\n      <rect\n        width=\"18\"\n        height=\"18\"\n        x=\"3\"\n        y=\"4\"\n        rx=\"2\" />\n      <path d=\"M3 10h18\" />\n      <path d=\"M8 14h.01\" />\n      <path d=\"M12 14h.01\" />\n      <path d=\"M16 14h.01\" />\n      <path d=\"M8 18h.01\" />\n      <path d=\"M12 18h.01\" />\n      <path d=\"M16 18h.01\" />\n    </svg>\n  `,\n})\nexport class CalendarDaysIconComponent extends IconComponentBase {\n  static readonly slug = 'calendar-days';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'calendar-days',\n    'calendar',\n    'date',\n    'schedule',\n    'month',\n    'calendrier',\n    'calendario',\n    'ημερολόγιο',\n    'kalendarz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-camera-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n      <path\n        d=\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\" />\n    </svg>\n  `,\n})\nexport class CameraOffIconComponent extends IconComponentBase {\n  static readonly slug = 'camera-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'camera-off',\n    'camera',\n    'off',\n    'disabled',\n    'photo',\n    'mute',\n    'appareil photo',\n    'désactivé',\n    'cámara',\n    'apagado',\n    'κάμερα',\n    'απενεργοποιημένη',\n    'aparat',\n    'wyłączony',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-candle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 2c2 2 2 4 0 6-2-2-2-4 0-6z\" />\n      <path d=\"M8 10h8v11a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z\" />\n    </svg>\n  `,\n})\nexport class CandleIconComponent extends IconComponentBase {\n  static readonly slug = 'candle';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'candle',\n    'light',\n    'flame',\n    'wax',\n    'bougie',\n    'flamme',\n    'vela',\n    'llama',\n    'κερί',\n    'φλόγα',\n    'świeca',\n    'płomień',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cast',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\" />\n      <line\n        x1=\"2\"\n        y1=\"20\"\n        x2=\"2.01\"\n        y2=\"20\" />\n    </svg>\n  `,\n})\nexport class CastIconComponent extends IconComponentBase {\n  static readonly slug = 'cast';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cast',\n    'stream',\n    'broadcast',\n    'chromecast',\n    'screen',\n    'mirror',\n    'diffusion',\n    'transmettre',\n    'transmisión',\n    'transmitir',\n    'μετάδοση',\n    'αναμετάδοση',\n    'transmisja',\n    'nadawanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-check-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"9 11 12 14 22 4\" />\n      <path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\" />\n    </svg>\n  `,\n})\nexport class CheckSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'check-square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'check-square',\n    'check',\n    'square',\n    'tick',\n    'confirm',\n    'done',\n    'checkbox',\n    'coche',\n    'valider',\n    'marca',\n    'confirmar',\n    'τσεκ',\n    'επιβεβαίωση',\n    'zaznacz',\n    'potwierdź',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevrons-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"7 13 12 18 17 13\" />\n      <polyline points=\"7 6 12 11 17 6\" />\n    </svg>\n  `,\n})\nexport class ChevronsDownIconComponent extends IconComponentBase {\n  static readonly slug = 'chevrons-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevrons-down',\n    'chevrons',\n    'down',\n    'arrow',\n    'expand',\n    'double',\n    'bas',\n    'abajo',\n    'κάτω',\n    'dół',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chevrons-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"17 11 12 6 7 11\" />\n      <polyline points=\"17 18 12 13 7 18\" />\n    </svg>\n  `,\n})\nexport class ChevronsUpIconComponent extends IconComponentBase {\n  static readonly slug = 'chevrons-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'chevrons-up',\n    'chevrons',\n    'up',\n    'arrow',\n    'collapse',\n    'double',\n    'haut',\n    'arriba',\n    'πάνω',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-chrome',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"4\" />\n      <line\n        x1=\"21.17\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"8\" />\n      <line\n        x1=\"3.95\"\n        y1=\"6.06\"\n        x2=\"8.54\"\n        y2=\"14\" />\n      <line\n        x1=\"10.88\"\n        y1=\"21.94\"\n        x2=\"15.46\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class ChromeIconComponent extends IconComponentBase {\n  static readonly slug = 'chrome';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'chrome',\n    'browser',\n    'google',\n    'web',\n    'navigateur',\n    'navegador',\n    'περιηγητής',\n    'przeglądarka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n    </svg>\n  `,\n})\nexport class CircleIconComponent extends IconComponentBase {\n  static readonly slug = 'circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'circle',\n    'round',\n    'oval',\n    'disc',\n    'shape',\n    'cercle',\n    'círculo',\n    'κύκλος',\n    'okrąg',\n    'koło',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-clapperboard',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"8\"\n        width=\"18\"\n        height=\"13\"\n        rx=\"2\" />\n      <path d=\"M3 8V5.5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2V8\" />\n      <line\n        x1=\"7.5\"\n        y1=\"3.5\"\n        x2=\"5.5\"\n        y2=\"8\" />\n      <line\n        x1=\"12.5\"\n        y1=\"3.5\"\n        x2=\"10.5\"\n        y2=\"8\" />\n      <line\n        x1=\"17.5\"\n        y1=\"3.5\"\n        x2=\"15.5\"\n        y2=\"8\" />\n    </svg>\n  `,\n})\nexport class ClapperboardIconComponent extends IconComponentBase {\n  static readonly slug = 'clapperboard';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'clapperboard',\n    'slate',\n    'film',\n    'shoot',\n    'production',\n    'clap',\n    'claqueta',\n    'κλακέτα',\n    'klaps filmowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-clipboard-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        width=\"8\"\n        height=\"4\"\n        x=\"8\"\n        y=\"2\"\n        rx=\"1\"\n        ry=\"1\" />\n      <path\n        d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\" />\n      <path d=\"m9 14 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class ClipboardCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'clipboard-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'clipboard-check',\n    'clipboard',\n    'check',\n    'done',\n    'task',\n    'presse-papiers',\n    'portapapeles',\n    'πρόχειρο',\n    'schowek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-clipboard-list',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        width=\"8\"\n        height=\"4\"\n        x=\"8\"\n        y=\"2\"\n        rx=\"1\"\n        ry=\"1\" />\n      <path\n        d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\" />\n      <path d=\"M12 11h4\" />\n      <path d=\"M12 16h4\" />\n      <path d=\"M8 11h.01\" />\n      <path d=\"M8 16h.01\" />\n    </svg>\n  `,\n})\nexport class ClipboardListIconComponent extends IconComponentBase {\n  static readonly slug = 'clipboard-list';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'clipboard-list',\n    'clipboard',\n    'list',\n    'tasks',\n    'notes',\n    'presse-papiers',\n    'portapapeles',\n    'πρόχειρο',\n    'schowek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-clipboard',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\" />\n      <rect\n        x=\"8\"\n        y=\"2\"\n        width=\"8\"\n        height=\"4\"\n        rx=\"1\"\n        ry=\"1\" />\n    </svg>\n  `,\n})\nexport class ClipboardIconComponent extends IconComponentBase {\n  static readonly slug = 'clipboard';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'clipboard',\n    'copy',\n    'paste',\n    'notes',\n    'list',\n    'presse-papiers',\n    'portapapeles',\n    'πρόχειρο',\n    'schowek',\n    'notatki',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloud-drizzle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"8\"\n        y1=\"19\"\n        x2=\"8\"\n        y2=\"21\" />\n      <line\n        x1=\"8\"\n        y1=\"13\"\n        x2=\"8\"\n        y2=\"15\" />\n      <line\n        x1=\"16\"\n        y1=\"19\"\n        x2=\"16\"\n        y2=\"21\" />\n      <line\n        x1=\"16\"\n        y1=\"13\"\n        x2=\"16\"\n        y2=\"15\" />\n      <line\n        x1=\"12\"\n        y1=\"21\"\n        x2=\"12\"\n        y2=\"23\" />\n      <line\n        x1=\"12\"\n        y1=\"15\"\n        x2=\"12\"\n        y2=\"17\" />\n      <path d=\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\" />\n    </svg>\n  `,\n})\nexport class CloudDrizzleIconComponent extends IconComponentBase {\n  static readonly slug = 'cloud-drizzle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cloud-drizzle',\n    'cloud',\n    'drizzle',\n    'rain',\n    'weather',\n    'shower',\n    'bruine',\n    'pluie',\n    'llovizna',\n    'ψιχάλισμα',\n    'βροχή',\n    'mżawka',\n    'deszcz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloud-lightning',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\" />\n      <polyline points=\"13 11 9 17 15 17 11 23\" />\n    </svg>\n  `,\n})\nexport class CloudLightningIconComponent extends IconComponentBase {\n  static readonly slug = 'cloud-lightning';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cloud-lightning',\n    'cloud',\n    'lightning',\n    'storm',\n    'thunder',\n    'weather',\n    'bolt',\n    'éclair',\n    'orage',\n    'relámpago',\n    'tormenta',\n    'αστραπή',\n    'καταιγίδα',\n    'błyskawica',\n    'burza',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloud-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\" />\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class CloudOffIconComponent extends IconComponentBase {\n  static readonly slug = 'cloud-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cloud-off',\n    'cloud',\n    'off',\n    'offline',\n    'disconnected',\n    'disabled',\n    'nuage',\n    'déconnecté',\n    'nube',\n    'desconectado',\n    'σύννεφο',\n    'εκτός σύνδεσης',\n    'chmura',\n    'wyłączony',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloud-rain',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"16\"\n        y1=\"13\"\n        x2=\"16\"\n        y2=\"21\" />\n      <line\n        x1=\"8\"\n        y1=\"13\"\n        x2=\"8\"\n        y2=\"21\" />\n      <line\n        x1=\"12\"\n        y1=\"15\"\n        x2=\"12\"\n        y2=\"23\" />\n      <path d=\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\" />\n    </svg>\n  `,\n})\nexport class CloudRainIconComponent extends IconComponentBase {\n  static readonly slug = 'cloud-rain';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cloud-rain',\n    'cloud',\n    'rain',\n    'weather',\n    'shower',\n    'storm',\n    'pluie',\n    'météo',\n    'lluvia',\n    'tiempo',\n    'βροχή',\n    'καιρός',\n    'deszcz',\n    'pogoda',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloud-snow',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\" />\n      <line\n        x1=\"8\"\n        y1=\"16\"\n        x2=\"8.01\"\n        y2=\"16\" />\n      <line\n        x1=\"8\"\n        y1=\"20\"\n        x2=\"8.01\"\n        y2=\"20\" />\n      <line\n        x1=\"12\"\n        y1=\"18\"\n        x2=\"12.01\"\n        y2=\"18\" />\n      <line\n        x1=\"12\"\n        y1=\"22\"\n        x2=\"12.01\"\n        y2=\"22\" />\n      <line\n        x1=\"16\"\n        y1=\"16\"\n        x2=\"16.01\"\n        y2=\"16\" />\n      <line\n        x1=\"16\"\n        y1=\"20\"\n        x2=\"16.01\"\n        y2=\"20\" />\n    </svg>\n  `,\n})\nexport class CloudSnowIconComponent extends IconComponentBase {\n  static readonly slug = 'cloud-snow';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cloud-snow',\n    'cloud',\n    'snow',\n    'weather',\n    'winter',\n    'blizzard',\n    'neige',\n    'hiver',\n    'nieve',\n    'invierno',\n    'χιόνι',\n    'χειμώνας',\n    'śnieg',\n    'zima',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloud',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\" />\n    </svg>\n  `,\n})\nexport class CloudIconComponent extends IconComponentBase {\n  static readonly slug = 'cloud';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cloud',\n    'weather',\n    'sky',\n    'storage',\n    'nuage',\n    'météo',\n    'nube',\n    'tiempo',\n    'σύννεφο',\n    'καιρός',\n    'chmura',\n    'pogoda',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cloudflare',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M16.36 17.36a.5.5 0 0 0 .49-.6l-.34-1.6a1.97 1.97 0 0 0-1.93-1.6h-8.7a.2.2 0 0 1-.2-.27.27.27 0 0 1 .23-.18l8.78-.11a3.13 3.13 0 0 0 2.84-2.32l.36-1.37a.18.18 0 0 0 0-.08 6.27 6.27 0 0 0-12.04-.65 2.81 2.81 0 0 0-4.44 2.94 4 4 0 0 0-3.9 4 .19.19 0 0 0 .19.18Z\"\n        fill=\"#F38020\" />\n      <path\n        d=\"M19.04 8.62a4.41 4.41 0 0 0-.78.07.14.14 0 0 0-.1.1l-.53 1.85a1.97 1.97 0 0 1-1.93 1.6l-1.84.04a.06.06 0 0 0-.04.1.27.27 0 0 0 .12.09l1.91.09a3.13 3.13 0 0 1 2.84 2.32l.13.46a.13.13 0 0 0 .13.1c2.21 0 4-1.79 4-4s-1.79-4.82-4-4.82Z\"\n        fill=\"#FAAE40\" />\n    </svg>\n  `,\n})\nexport class CloudflareIconComponent extends IconComponentBase {\n  static readonly slug = 'cloudflare';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'cloudflare',\n    'cdn',\n    'cloud',\n    'hosting',\n    'dns',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-code',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"16 18 22 12 16 6\" />\n      <polyline points=\"8 6 2 12 8 18\" />\n    </svg>\n  `,\n})\nexport class CodeIconComponent extends IconComponentBase {\n  static readonly slug = 'code';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'code',\n    'programming',\n    'developer',\n    'syntax',\n    'brackets',\n    'script',\n    'programmation',\n    'développement',\n    'código',\n    'programación',\n    'κώδικας',\n    'προγραμματισμός',\n    'kod',\n    'programowanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-codepen',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\" />\n      <line\n        x1=\"12\"\n        y1=\"22\"\n        x2=\"12\"\n        y2=\"15.5\" />\n      <polyline points=\"22 8.5 12 15.5 2 8.5\" />\n      <polyline points=\"2 15.5 12 8.5 22 15.5\" />\n      <line\n        x1=\"12\"\n        y1=\"2\"\n        x2=\"12\"\n        y2=\"8.5\" />\n    </svg>\n  `,\n})\nexport class CodepenIconComponent extends IconComponentBase {\n  static readonly slug = 'codepen';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'codepen',\n    'code',\n    'editor',\n    'sandbox',\n    'frontend',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-codesandbox',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n      <polyline points=\"7.5 4.21 12 6.81 16.5 4.21\" />\n      <polyline points=\"7.5 19.79 7.5 14.6 3 12\" />\n      <polyline points=\"21 12 16.5 14.6 16.5 19.79\" />\n      <polyline points=\"3.27 6.96 12 12.01 20.73 6.96\" />\n      <line\n        x1=\"12\"\n        y1=\"22.08\"\n        x2=\"12\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class CodesandboxIconComponent extends IconComponentBase {\n  static readonly slug = 'codesandbox';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'codesandbox',\n    'sandbox',\n    'code',\n    'editor',\n    'frontend',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-coffee',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M18 8h1a4 4 0 0 1 0 8h-1\" />\n      <path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4z\" />\n      <line\n        x1=\"6\"\n        y1=\"1\"\n        x2=\"6\"\n        y2=\"4\" />\n      <line\n        x1=\"10\"\n        y1=\"1\"\n        x2=\"10\"\n        y2=\"4\" />\n      <line\n        x1=\"14\"\n        y1=\"1\"\n        x2=\"14\"\n        y2=\"4\" />\n    </svg>\n  `,\n})\nexport class CoffeeIconComponent extends IconComponentBase {\n  static readonly slug = 'coffee';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'coffee',\n    'drink',\n    'cup',\n    'cafe',\n    'mug',\n    'café',\n    'taza',\n    'καφές',\n    'κούπα',\n    'kawa',\n    'kubek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-coins',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13.744 17.736a6 6 0 1 1-7.48-7.48\" />\n      <path d=\"M15 6h1v4\" />\n      <path d=\"m6.134 14.768.866-.5 2 3.464\" />\n      <circle\n        cx=\"16\"\n        cy=\"8\"\n        r=\"6\" />\n    </svg>\n  `,\n})\nexport class CoinsIconComponent extends IconComponentBase {\n  static readonly slug = 'coins';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'coins',\n    'money',\n    'currency',\n    'cash',\n    'finance',\n    'pièces',\n    'monedas',\n    'νομίσματα',\n    'monety',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-columns',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\" />\n    </svg>\n  `,\n})\nexport class ColumnsIconComponent extends IconComponentBase {\n  static readonly slug = 'columns';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'columns',\n    'layout',\n    'split',\n    'grid',\n    'panel',\n    'colonnes',\n    'columnas',\n    'στήλες',\n    'διάταξη',\n    'kolumny',\n    'układ',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-command',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\" />\n    </svg>\n  `,\n})\nexport class CommandIconComponent extends IconComponentBase {\n  static readonly slug = 'command';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'command',\n    'keyboard',\n    'shortcut',\n    'cmd',\n    'mac',\n    'commande',\n    'comando',\n    'εντολή',\n    'πληκτρολόγιο',\n    'komenda',\n    'klawisz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-compass',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polygon points=\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\" />\n    </svg>\n  `,\n})\nexport class CompassIconComponent extends IconComponentBase {\n  static readonly slug = 'compass';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'compass',\n    'navigation',\n    'direction',\n    'map',\n    'north',\n    'boussole',\n    'brújula',\n    'navegación',\n    'πυξίδα',\n    'πλοήγηση',\n    'kompas',\n    'nawigacja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-contrast',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <path d=\"M12 18a6 6 0 0 0 0-12v12z\" />\n    </svg>\n  `,\n})\nexport class ContrastIconComponent extends IconComponentBase {\n  static readonly slug = 'contrast';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'contrast',\n    'adjust',\n    'edit',\n    'photo',\n    'filter',\n    'tone',\n    'contraste',\n    'ajuster',\n    'ajustar',\n    'αντίθεση',\n    'ρύθμιση',\n    'kontrast',\n    'dostosuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-copy',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"9\"\n        y=\"9\"\n        width=\"13\"\n        height=\"13\"\n        rx=\"2\"\n        ry=\"2\" />\n      <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n    </svg>\n  `,\n})\nexport class CopyIconComponent extends IconComponentBase {\n  static readonly slug = 'copy';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'copy',\n    'duplicate',\n    'clone',\n    'paste',\n    'clipboard',\n    'copier',\n    'copiar',\n    'duplicar',\n    'αντιγραφή',\n    'kopiuj',\n    'duplikuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-down-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"9 10 4 15 9 20\" />\n      <path d=\"M20 4v7a4 4 0 0 1-4 4H4\" />\n    </svg>\n  `,\n})\nexport class CornerDownLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-down-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-down-left',\n    'corner',\n    'down',\n    'left',\n    'arrow',\n    'return',\n    'enter',\n    'coin',\n    'bas',\n    'gauche',\n    'esquina',\n    'abajo',\n    'izquierda',\n    'γωνία',\n    'κάτω',\n    'αριστερά',\n    'róg',\n    'dół',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-down-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"15 10 20 15 15 20\" />\n      <path d=\"M4 4v7a4 4 0 0 0 4 4h12\" />\n    </svg>\n  `,\n})\nexport class CornerDownRightIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-down-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-down-right',\n    'corner',\n    'down',\n    'right',\n    'arrow',\n    'coin',\n    'bas',\n    'droite',\n    'esquina',\n    'abajo',\n    'derecha',\n    'γωνία',\n    'κάτω',\n    'δεξιά',\n    'róg',\n    'dół',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-left-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"14 15 9 20 4 15\" />\n      <path d=\"M20 4h-7a4 4 0 0 0-4 4v12\" />\n    </svg>\n  `,\n})\nexport class CornerLeftDownIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-left-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-left-down',\n    'corner',\n    'left',\n    'down',\n    'arrow',\n    'coin',\n    'gauche',\n    'bas',\n    'esquina',\n    'izquierda',\n    'abajo',\n    'γωνία',\n    'αριστερά',\n    'κάτω',\n    'róg',\n    'lewo',\n    'dół',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-left-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"14 9 9 4 4 9\" />\n      <path d=\"M20 20h-7a4 4 0 0 1-4-4V4\" />\n    </svg>\n  `,\n})\nexport class CornerLeftUpIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-left-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-left-up',\n    'corner',\n    'left',\n    'up',\n    'arrow',\n    'coin',\n    'gauche',\n    'haut',\n    'esquina',\n    'izquierda',\n    'arriba',\n    'γωνία',\n    'αριστερά',\n    'πάνω',\n    'róg',\n    'lewo',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-right-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"10 15 15 20 20 15\" />\n      <path d=\"M4 4h7a4 4 0 0 1 4 4v12\" />\n    </svg>\n  `,\n})\nexport class CornerRightDownIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-right-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-right-down',\n    'corner',\n    'right',\n    'down',\n    'arrow',\n    'coin',\n    'droite',\n    'bas',\n    'esquina',\n    'derecha',\n    'abajo',\n    'γωνία',\n    'δεξιά',\n    'κάτω',\n    'róg',\n    'prawo',\n    'dół',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-right-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"10 9 15 4 20 9\" />\n      <path d=\"M4 20h7a4 4 0 0 0 4-4V4\" />\n    </svg>\n  `,\n})\nexport class CornerRightUpIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-right-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-right-up',\n    'corner',\n    'right',\n    'up',\n    'arrow',\n    'coin',\n    'droite',\n    'haut',\n    'esquina',\n    'derecha',\n    'arriba',\n    'γωνία',\n    'δεξιά',\n    'πάνω',\n    'róg',\n    'prawo',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-up-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"9 14 4 9 9 4\" />\n      <path d=\"M20 20v-7a4 4 0 0 0-4-4H4\" />\n    </svg>\n  `,\n})\nexport class CornerUpLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-up-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-up-left',\n    'corner',\n    'up',\n    'left',\n    'arrow',\n    'undo',\n    'coin',\n    'haut',\n    'gauche',\n    'esquina',\n    'arriba',\n    'izquierda',\n    'γωνία',\n    'πάνω',\n    'αριστερά',\n    'róg',\n    'góra',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-corner-up-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"15 14 20 9 15 4\" />\n      <path d=\"M4 20v-7a4 4 0 0 1 4-4h12\" />\n    </svg>\n  `,\n})\nexport class CornerUpRightIconComponent extends IconComponentBase {\n  static readonly slug = 'corner-up-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'corner-up-right',\n    'corner',\n    'up',\n    'right',\n    'arrow',\n    'redo',\n    'coin',\n    'haut',\n    'droite',\n    'esquina',\n    'arriba',\n    'derecha',\n    'γωνία',\n    'πάνω',\n    'δεξιά',\n    'róg',\n    'góra',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-cpu',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"4\"\n        y=\"4\"\n        width=\"16\"\n        height=\"16\"\n        rx=\"2\"\n        ry=\"2\" />\n      <rect\n        x=\"9\"\n        y=\"9\"\n        width=\"6\"\n        height=\"6\" />\n      <line\n        x1=\"9\"\n        y1=\"1\"\n        x2=\"9\"\n        y2=\"4\" />\n      <line\n        x1=\"15\"\n        y1=\"1\"\n        x2=\"15\"\n        y2=\"4\" />\n      <line\n        x1=\"9\"\n        y1=\"20\"\n        x2=\"9\"\n        y2=\"23\" />\n      <line\n        x1=\"15\"\n        y1=\"20\"\n        x2=\"15\"\n        y2=\"23\" />\n      <line\n        x1=\"20\"\n        y1=\"9\"\n        x2=\"23\"\n        y2=\"9\" />\n      <line\n        x1=\"20\"\n        y1=\"14\"\n        x2=\"23\"\n        y2=\"14\" />\n      <line\n        x1=\"1\"\n        y1=\"9\"\n        x2=\"4\"\n        y2=\"9\" />\n      <line\n        x1=\"1\"\n        y1=\"14\"\n        x2=\"4\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class CpuIconComponent extends IconComponentBase {\n  static readonly slug = 'cpu';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'cpu',\n    'processor',\n    'chip',\n    'computer',\n    'hardware',\n    'processeur',\n    'puce',\n    'procesador',\n    'chip',\n    'επεξεργαστής',\n    'τσιπ',\n    'procesor',\n    'układ',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-credit-card',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"1\"\n        y=\"4\"\n        width=\"22\"\n        height=\"16\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"1\"\n        y1=\"10\"\n        x2=\"23\"\n        y2=\"10\" />\n    </svg>\n  `,\n})\nexport class CreditCardIconComponent extends IconComponentBase {\n  static readonly slug = 'credit-card';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'credit-card',\n    'credit',\n    'card',\n    'payment',\n    'money',\n    'bank',\n    'carte',\n    'paiement',\n    'tarjeta',\n    'pago',\n    'κάρτα',\n    'πληρωμή',\n    'karta',\n    'płatność',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-crop',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M6.13 1L6 16a2 2 0 0 0 2 2h15\" />\n      <path d=\"M1 6.13L16 6a2 2 0 0 1 2 2v15\" />\n    </svg>\n  `,\n})\nexport class CropIconComponent extends IconComponentBase {\n  static readonly slug = 'crop';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'crop',\n    'image',\n    'cut',\n    'trim',\n    'edit',\n    'recadrer',\n    'rogner',\n    'recortar',\n    'περικοπή',\n    'κόψιμο',\n    'kadruj',\n    'przytnij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-crosshair',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"22\"\n        y1=\"12\"\n        x2=\"18\"\n        y2=\"12\" />\n      <line\n        x1=\"6\"\n        y1=\"12\"\n        x2=\"2\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"6\"\n        x2=\"12\"\n        y2=\"2\" />\n      <line\n        x1=\"12\"\n        y1=\"22\"\n        x2=\"12\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class CrosshairIconComponent extends IconComponentBase {\n  static readonly slug = 'crosshair';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'crosshair',\n    'target',\n    'aim',\n    'focus',\n    'precision',\n    'cible',\n    'mira',\n    'objetivo',\n    'στόχος',\n    'σταυρόνημα',\n    'celownik',\n    'cel',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-database',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <ellipse\n        cx=\"12\"\n        cy=\"5\"\n        rx=\"9\"\n        ry=\"3\" />\n      <path d=\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\" />\n      <path d=\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\" />\n    </svg>\n  `,\n})\nexport class DatabaseIconComponent extends IconComponentBase {\n  static readonly slug = 'database';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'database',\n    'storage',\n    'data',\n    'server',\n    'sql',\n    'base de données',\n    'données',\n    'base de datos',\n    'datos',\n    'βάση δεδομένων',\n    'δεδομένα',\n    'baza danych',\n    'dane',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-delete',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\" />\n      <line\n        x1=\"18\"\n        y1=\"9\"\n        x2=\"12\"\n        y2=\"15\" />\n      <line\n        x1=\"12\"\n        y1=\"9\"\n        x2=\"18\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class DeleteIconComponent extends IconComponentBase {\n  static readonly slug = 'delete';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'delete',\n    'remove',\n    'erase',\n    'backspace',\n    'clear',\n    'supprimer',\n    'effacer',\n    'eliminar',\n    'borrar',\n    'διαγραφή',\n    'usuń',\n    'kasuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dice-1',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\" />\n      <path d=\"M12 12h.01\" />\n    </svg>\n  `,\n})\nexport class Dice1IconComponent extends IconComponentBase {\n  static readonly slug = 'dice-1';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'dice',\n    'die',\n    'one',\n    'random',\n    'chance',\n    'game',\n    'dé',\n    'dado',\n    'ζάρι',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dice-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\" />\n      <path d=\"M16 8h.01\" />\n      <path d=\"M8 16h.01\" />\n    </svg>\n  `,\n})\nexport class Dice2IconComponent extends IconComponentBase {\n  static readonly slug = 'dice-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'dice',\n    'die',\n    'two',\n    'random',\n    'chance',\n    'game',\n    'dé',\n    'dado',\n    'ζάρι',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dice-3',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\" />\n      <path d=\"M16 8h.01\" />\n      <path d=\"M12 12h.01\" />\n      <path d=\"M8 16h.01\" />\n    </svg>\n  `,\n})\nexport class Dice3IconComponent extends IconComponentBase {\n  static readonly slug = 'dice-3';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'dice',\n    'die',\n    'three',\n    'random',\n    'chance',\n    'game',\n    'dé',\n    'dado',\n    'ζάρι',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dice-4',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\" />\n      <path d=\"M8 8h.01\" />\n      <path d=\"M16 8h.01\" />\n      <path d=\"M8 16h.01\" />\n      <path d=\"M16 16h.01\" />\n    </svg>\n  `,\n})\nexport class Dice4IconComponent extends IconComponentBase {\n  static readonly slug = 'dice-4';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'dice',\n    'die',\n    'four',\n    'random',\n    'chance',\n    'game',\n    'dé',\n    'dado',\n    'ζάρι',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dice-5',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\" />\n      <path d=\"M8 8h.01\" />\n      <path d=\"M16 8h.01\" />\n      <path d=\"M12 12h.01\" />\n      <path d=\"M8 16h.01\" />\n      <path d=\"M16 16h.01\" />\n    </svg>\n  `,\n})\nexport class Dice5IconComponent extends IconComponentBase {\n  static readonly slug = 'dice-5';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'dice',\n    'die',\n    'five',\n    'random',\n    'chance',\n    'game',\n    'dé',\n    'dado',\n    'ζάρι',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dice-6',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\" />\n      <path d=\"M8 8h.01\" />\n      <path d=\"M16 8h.01\" />\n      <path d=\"M8 12h.01\" />\n      <path d=\"M16 12h.01\" />\n      <path d=\"M8 16h.01\" />\n      <path d=\"M16 16h.01\" />\n    </svg>\n  `,\n})\nexport class Dice6IconComponent extends IconComponentBase {\n  static readonly slug = 'dice-6';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'dice',\n    'die',\n    'six',\n    'random',\n    'chance',\n    'game',\n    'dé',\n    'dado',\n    'ζάρι',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-disc',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"3\" />\n    </svg>\n  `,\n})\nexport class DiscIconComponent extends IconComponentBase {\n  static readonly slug = 'disc';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'disc',\n    'cd',\n    'dvd',\n    'record',\n    'music',\n    'album',\n    'disque',\n    'disco',\n    'δίσκος',\n    'μουσική',\n    'płyta',\n    'dysk',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-discord',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#5865F2' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M20.317 4.37a19.79 19.79 0 0 0-4.885-1.515.07.07 0 0 0-.074.034c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.5 12.5 0 0 0-.617-1.25.077.077 0 0 0-.075-.034A19.74 19.74 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.2 14.2 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.1 13.1 0 0 1-1.872-.892.077.077 0 0 1-.008-.128c.126-.094.252-.192.372-.291a.074.074 0 0 1 .078-.01c3.927 1.793 8.18 1.793 12.061 0a.074.074 0 0 1 .079.009c.12.099.246.198.373.292a.077.077 0 0 1-.006.127 12.3 12.3 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.84 19.84 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.028ZM8.02 15.331c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418Zm7.974 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z\" />\n    </svg>\n  `,\n})\nexport class DiscordIconComponent extends IconComponentBase {\n  static readonly slug = 'discord';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'discord',\n    'chat',\n    'messaging',\n    'gaming',\n    'community',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-divide-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"16\"\n        x2=\"12\"\n        y2=\"16\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"8\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n    </svg>\n  `,\n})\nexport class DivideCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'divide-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'divide-circle',\n    'divide',\n    'circle',\n    'division',\n    'math',\n    'split',\n    'diviser',\n    'dividir',\n    'matemáticas',\n    'διαίρεση',\n    'μαθηματικά',\n    'dzielenie',\n    'matematyka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-divide-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"16\"\n        x2=\"12\"\n        y2=\"16\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"8\" />\n    </svg>\n  `,\n})\nexport class DivideSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'divide-square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'divide-square',\n    'divide',\n    'square',\n    'division',\n    'math',\n    'split',\n    'diviser',\n    'dividir',\n    'matemáticas',\n    'διαίρεση',\n    'μαθηματικά',\n    'dzielenie',\n    'matematyka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-divide',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"6\"\n        r=\"2\" />\n      <line\n        x1=\"5\"\n        y1=\"12\"\n        x2=\"19\"\n        y2=\"12\" />\n      <circle\n        cx=\"12\"\n        cy=\"18\"\n        r=\"2\" />\n    </svg>\n  `,\n})\nexport class DivideIconComponent extends IconComponentBase {\n  static readonly slug = 'divide';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'divide',\n    'division',\n    'math',\n    'split',\n    'diviser',\n    'mathématiques',\n    'dividir',\n    'matemáticas',\n    'διαίρεση',\n    'μαθηματικά',\n    'dzielenie',\n    'matematyka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-docker',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#2496ED' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M13.983 11.078h2.119a.186.186 0 0 0 .186-.185V9.006a.186.186 0 0 0-.186-.186h-2.12a.185.185 0 0 0-.185.185v1.888c0 .102.083.185.186.185m-2.954-5.43h2.118a.186.186 0 0 0 .186-.186V3.574a.186.186 0 0 0-.186-.185h-2.118a.185.185 0 0 0-.185.185v1.888c0 .102.083.186.185.186m0 2.716h2.118a.187.187 0 0 0 .186-.186V6.29a.186.186 0 0 0-.186-.185h-2.118a.185.185 0 0 0-.185.185v1.887c0 .102.083.186.185.186m-2.93 0h2.12a.186.186 0 0 0 .184-.186V6.29a.185.185 0 0 0-.185-.185H8.1a.185.185 0 0 0-.186.185v1.887c0 .102.084.186.186.186m-2.964 0h2.119a.186.186 0 0 0 .185-.186V6.29a.185.185 0 0 0-.185-.185H5.136a.186.186 0 0 0-.186.185v1.887c0 .102.084.186.186.186m5.893 2.715h2.118a.186.186 0 0 0 .186-.185V9.006a.186.186 0 0 0-.186-.186h-2.118a.185.185 0 0 0-.185.185v1.888c0 .102.083.185.185.185m-2.93 0h2.12a.185.185 0 0 0 .184-.185V9.006a.185.185 0 0 0-.185-.186H8.1a.185.185 0 0 0-.186.186v1.887c0 .102.084.185.186.185m-2.964 0h2.119a.185.185 0 0 0 .185-.185V9.006a.185.185 0 0 0-.185-.186H5.136a.186.186 0 0 0-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 0 0 .184-.185V9.006a.185.185 0 0 0-.185-.186H2.216a.185.185 0 0 0-.185.186v1.887c0 .102.083.185.185.185m21.54-.077c-.066-.05-.633-.479-1.81-.479-.31 0-.624.027-.93.082-.225-1.55-1.516-2.305-1.572-2.34l-.314-.18-.205.297a4.247 4.247 0 0 0-.547 1.282c-.21.882-.082 1.71.353 2.418-.521.293-1.366.366-1.537.371H.564a.564.564 0 0 0-.563.563c-.029 1.546.232 3.07.776 4.504.622 1.582 1.55 2.747 2.755 3.46 1.353.8 3.557 1.258 6.052 1.258 1.128 0 2.255-.103 3.36-.305a14.04 14.04 0 0 0 4.378-1.594 11.985 11.985 0 0 0 2.987-2.444c1.45-1.654 2.314-3.494 2.957-5.129H24c.276 0 .521-.169.621-.426l.379-1.084-.244-.254Z\" />\n    </svg>\n  `,\n})\nexport class DockerIconComponent extends IconComponentBase {\n  static readonly slug = 'docker';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'docker',\n    'container',\n    'devops',\n    'image',\n    'virtualization',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dollar-sign',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"12\"\n        y1=\"1\"\n        x2=\"12\"\n        y2=\"23\" />\n      <path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\" />\n    </svg>\n  `,\n})\nexport class DollarSignIconComponent extends IconComponentBase {\n  static readonly slug = 'dollar-sign';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'dollar-sign',\n    'dollar',\n    'sign',\n    'money',\n    'currency',\n    'usd',\n    'price',\n    'argent',\n    'devise',\n    'dinero',\n    'moneda',\n    'δολάριο',\n    'χρήμα',\n    'dolar',\n    'pieniądze',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-double-exclamation-mark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M7 6v7.5\" />\n      <path d=\"M7 17.5h.01\" />\n      <path d=\"M17 6v7.5\" />\n      <path d=\"M17 17.5h.01\" />\n    </svg>\n  `,\n})\nexport class DoubleExclamationMarkIconComponent extends IconComponentBase {\n  static readonly slug = 'double-exclamation-mark';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'double exclamation mark',\n    'exclamation marks',\n    'brilliant',\n    'emphasis',\n    'chess',\n    'double point d’exclamation',\n    'doble signo de exclamación',\n    'διπλό θαυμαστικό',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-double-question-mark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M4.5 8.5a2.5 2.5 0 1 1 3.7 2.2c-.9.6-1.2 1.2-1.2 2.5\" />\n      <path d=\"M7 17.5h.01\" />\n      <path d=\"M14.5 8.5a2.5 2.5 0 1 1 3.7 2.2c-.9.6-1.2 1.2-1.2 2.5\" />\n      <path d=\"M17 17.5h.01\" />\n    </svg>\n  `,\n})\nexport class DoubleQuestionMarkIconComponent extends IconComponentBase {\n  static readonly slug = 'double-question-mark';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'double question mark',\n    'question marks',\n    'blunder',\n    'confusion',\n    'chess',\n    'double point d’interrogation',\n    'doble signo de interrogación',\n    'διπλό ερωτηματικό',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-download-cloud',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"8 17 12 21 16 17\" />\n      <line\n        x1=\"12\"\n        y1=\"12\"\n        x2=\"12\"\n        y2=\"21\" />\n      <path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\" />\n    </svg>\n  `,\n})\nexport class DownloadCloudIconComponent extends IconComponentBase {\n  static readonly slug = 'download-cloud';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'download-cloud',\n    'download',\n    'cloud',\n    'save',\n    'sync',\n    'télécharger',\n    'nuage',\n    'descargar',\n    'nube',\n    'λήψη',\n    'σύννεφο',\n    'pobierz',\n    'chmura',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-download',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n      <polyline points=\"7 10 12 15 17 10\" />\n      <line\n        x1=\"12\"\n        y1=\"15\"\n        x2=\"12\"\n        y2=\"3\" />\n    </svg>\n  `,\n})\nexport class DownloadIconComponent extends IconComponentBase {\n  static readonly slug = 'download';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'download',\n    'save',\n    'arrow',\n    'get',\n    'install',\n    'télécharger',\n    'descargar',\n    'bajar',\n    'λήψη',\n    'κατέβασμα',\n    'pobierz',\n    'ściągnij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dribbble',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <path\n        d=\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\" />\n    </svg>\n  `,\n})\nexport class DribbbleIconComponent extends IconComponentBase {\n  static readonly slug = 'dribbble';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'dribbble',\n    'design',\n    'designer',\n    'portfolio',\n    'community',\n    'social',\n    'creative',\n    'basketball',\n    'ball',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-dropbox',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#0061FF' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M6 1.807 0 5.629l6 3.822 6-3.822-6-3.822Zm12 0-6 3.822 6 3.822 6-3.822-6-3.822ZM0 13.274l6 3.822 6-3.822-6-3.822-6 3.822Zm18-3.822-6 3.822 6 3.822 6-3.822-6-3.822ZM6 18.371l6 3.822 6-3.822-6-3.822-6 3.822Z\" />\n    </svg>\n  `,\n})\nexport class DropboxIconComponent extends IconComponentBase {\n  static readonly slug = 'dropbox';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'dropbox',\n    'storage',\n    'cloud',\n    'files',\n    'sync',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-edit-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\" />\n    </svg>\n  `,\n})\nexport class Edit2IconComponent extends IconComponentBase {\n  static readonly slug = 'edit-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'edit-2',\n    'edit',\n    '2',\n    'pencil',\n    'modify',\n    'write',\n    'éditer',\n    'crayon',\n    'editar',\n    'lápiz',\n    'επεξεργασία',\n    'μολύβι',\n    'edytuj',\n    'ołówek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-edit-3',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 20h9\" />\n      <path d=\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\" />\n    </svg>\n  `,\n})\nexport class Edit3IconComponent extends IconComponentBase {\n  static readonly slug = 'edit-3';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'edit-3',\n    'edit',\n    '3',\n    'pencil',\n    'modify',\n    'write',\n    'éditer',\n    'crayon',\n    'editar',\n    'lápiz',\n    'επεξεργασία',\n    'μολύβι',\n    'edytuj',\n    'ołówek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-edit',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n      <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n    </svg>\n  `,\n})\nexport class EditIconComponent extends IconComponentBase {\n  static readonly slug = 'edit';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'edit',\n    'pencil',\n    'modify',\n    'change',\n    'write',\n    'éditer',\n    'modifier',\n    'editar',\n    'modificar',\n    'επεξεργασία',\n    'τροποποίηση',\n    'edytuj',\n    'zmień',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-exclamation-mark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 5v9.5\" />\n      <path d=\"M12 19.5h.01\" />\n    </svg>\n  `,\n})\nexport class ExclamationMarkIconComponent extends IconComponentBase {\n  static readonly slug = 'exclamation-mark';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'exclamation mark',\n    'exclamation',\n    'alert',\n    'important',\n    'good move',\n    'chess',\n    'point d’exclamation',\n    'signo de exclamación',\n    'θαυμαστικό',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-exclamation-question-mark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M7 6v7.5\" />\n      <path d=\"M7 17.5h.01\" />\n      <path d=\"M14.5 8.5a2.5 2.5 0 1 1 3.7 2.2c-.9.6-1.2 1.2-1.2 2.5\" />\n      <path d=\"M17 17.5h.01\" />\n    </svg>\n  `,\n})\nexport class ExclamationQuestionMarkIconComponent extends IconComponentBase {\n  static readonly slug = 'exclamation-question-mark';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'exclamation question mark',\n    'interrobang',\n    'interesting',\n    'surprise',\n    'chess',\n    'point d’exclamation et d’interrogation',\n    'signos de exclamación e interrogación',\n    'θαυμαστικό και ερωτηματικό',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-external-link',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n      <polyline points=\"15 3 21 3 21 9\" />\n      <line\n        x1=\"10\"\n        y1=\"14\"\n        x2=\"21\"\n        y2=\"3\" />\n    </svg>\n  `,\n})\nexport class ExternalLinkIconComponent extends IconComponentBase {\n  static readonly slug = 'external-link';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'external-link',\n    'external',\n    'link',\n    'open',\n    'new',\n    'tab',\n    'lien',\n    'externe',\n    'enlace',\n    'externo',\n    'εξωτερικός',\n    'σύνδεσμος',\n    'zewnętrzny',\n    'link',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Facebook brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-facebook>` / `FacebookIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-facebook-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#1877F2' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073\" />\n    </svg>\n  `,\n})\nexport class Facebook2IconComponent extends IconComponentBase {\n  static readonly slug = 'facebook-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'facebook-2',\n    'facebook',\n    'social',\n    'meta',\n    'network',\n    'mark',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Facebook icon (Feather outline).\n *\n * @remarks\n * The brand-filled Facebook mark lives at `<ea-icon-facebook-2>` /\n * `Facebook2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-facebook',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\" />\n    </svg>\n  `,\n})\nexport class FacebookIconComponent extends IconComponentBase {\n  static readonly slug = 'facebook';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['facebook', 'social', 'meta', 'network'];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-fast-forward',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"13 19 22 12 13 5 13 19\" />\n      <polygon points=\"2 19 11 12 2 5 2 19\" />\n    </svg>\n  `,\n})\nexport class FastForwardIconComponent extends IconComponentBase {\n  static readonly slug = 'fast-forward';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'fast-forward',\n    'fast',\n    'forward',\n    'play',\n    'skip',\n    'speed',\n    'avance rapide',\n    'rápido',\n    'γρήγορη μετάβαση',\n    'μπροστά',\n    'przewiń',\n    'do przodu',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-feather',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\" />\n      <line\n        x1=\"16\"\n        y1=\"8\"\n        x2=\"2\"\n        y2=\"22\" />\n      <line\n        x1=\"17.5\"\n        y1=\"15\"\n        x2=\"9\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class FeatherIconComponent extends IconComponentBase {\n  static readonly slug = 'feather';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'light',\n    'write',\n    'quill',\n    'plume',\n    'pluma',\n    'φτερό',\n    'πένα',\n    'pióro',\n    'lekki',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Figma brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-figma>` / `FigmaIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-figma-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M8 24c2.21 0 4-1.79 4-4v-4H8c-2.21 0-4 1.79-4 4s1.79 4 4 4Z\"\n        fill=\"#0ACF83\" />\n      <path\n        d=\"M4 12c0-2.21 1.79-4 4-4h4v8H8c-2.21 0-4-1.79-4-4Z\"\n        fill=\"#A259FF\" />\n      <path\n        d=\"M4 4c0-2.21 1.79-4 4-4h4v8H8C5.79 8 4 6.21 4 4Z\"\n        fill=\"#F24E1E\" />\n      <path\n        d=\"M12 0h4c2.21 0 4 1.79 4 4s-1.79 4-4 4h-4V0Z\"\n        fill=\"#FF7262\" />\n      <path\n        d=\"M20 12c0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4 4 1.79 4 4Z\"\n        fill=\"#1ABCFE\" />\n    </svg>\n  `,\n})\nexport class Figma2IconComponent extends IconComponentBase {\n  static readonly slug = 'figma-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'figma-2',\n    'figma',\n    'design',\n    'ui',\n    'tool',\n    'mark',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Figma icon (Feather outline).\n *\n * @remarks\n * The brand-filled Figma mark lives at `<ea-icon-figma-2>` /\n * `Figma2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-figma',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\" />\n      <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\" />\n      <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\" />\n      <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\" />\n      <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\" />\n    </svg>\n  `,\n})\nexport class FigmaIconComponent extends IconComponentBase {\n  static readonly slug = 'figma';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['figma', 'design', 'ui', 'tool'];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-audio',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" />\n      <polyline points=\"13 2 13 9 20 9\" />\n      <line\n        x1=\"8.5\"\n        y1=\"14.8\"\n        x2=\"8.5\"\n        y2=\"17.8\" />\n      <line\n        x1=\"12\"\n        y1=\"12.8\"\n        x2=\"12\"\n        y2=\"19.3\" />\n      <line\n        x1=\"15.5\"\n        y1=\"14.3\"\n        x2=\"15.5\"\n        y2=\"18.3\" />\n    </svg>\n  `,\n})\nexport class FileAudioIconComponent extends IconComponentBase {\n  static readonly slug = 'file-audio';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'file audio',\n    'sound file',\n    'music file',\n    'mp3',\n    'wav',\n    'fichier audio',\n    'archivo de audio',\n    'αρχείο ήχου',\n    'plik audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\" />\n      <path d=\"M14 2v5a1 1 0 0 0 1 1h5\" />\n      <path d=\"m9 15 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class FileCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'file-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'file-check',\n    'file',\n    'document',\n    'verified',\n    'approved',\n    'fichier',\n    'archivo',\n    'αρχείο',\n    'plik',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-image',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" />\n      <polyline points=\"13 2 13 9 20 9\" />\n      <circle\n        cx=\"15.5\"\n        cy=\"14\"\n        r=\"1\" />\n      <polyline points=\"6.5 19 10 15 17.5 19\" />\n    </svg>\n  `,\n})\nexport class FileImageIconComponent extends IconComponentBase {\n  static readonly slug = 'file-image';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'file image',\n    'photo file',\n    'picture file',\n    'jpg',\n    'png',\n    'fichier image',\n    'archivo de imagen',\n    'αρχείο εικόνας',\n    'plik obrazu',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-minus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n      <polyline points=\"14 2 14 8 20 8\" />\n      <line\n        x1=\"9\"\n        y1=\"15\"\n        x2=\"15\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class FileMinusIconComponent extends IconComponentBase {\n  static readonly slug = 'file-minus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'file-minus',\n    'file',\n    'minus',\n    'remove',\n    'delete',\n    'document',\n    'fichier',\n    'archivo',\n    'eliminar',\n    'αρχείο',\n    'αφαίρεση',\n    'plik',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-pdf',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" />\n      <polyline points=\"13 2 13 9 20 9\" />\n      <path d=\"M6 19.2v-5.4h1.7a1.35 1.35 0 0 1 0 2.7H6\" />\n      <path d=\"M10.6 19.2v-5.4h1a2.7 2.7 0 0 1 0 5.4z\" />\n      <path d=\"M15.6 19.2v-5.4h2.2\" />\n      <path d=\"M15.6 16.6h1.7\" />\n    </svg>\n  `,\n})\nexport class FilePdfIconComponent extends IconComponentBase {\n  static readonly slug = 'file-pdf';\n  static readonly category: IconCategory = 'eagami';\n  // Letterforms need a lighter stroke to stay legible inside the file body\n  static override readonly defaultStrokeWidth = 1.5;\n  static readonly tags: ReadonlyArray<string> = [\n    'file pdf',\n    'document',\n    'acrobat',\n    'portable document',\n    'fichier pdf',\n    'archivo pdf',\n    'αρχείο pdf',\n    'plik pdf',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-plus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n      <polyline points=\"14 2 14 8 20 8\" />\n      <line\n        x1=\"12\"\n        y1=\"18\"\n        x2=\"12\"\n        y2=\"12\" />\n      <line\n        x1=\"9\"\n        y1=\"15\"\n        x2=\"15\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class FilePlusIconComponent extends IconComponentBase {\n  static readonly slug = 'file-plus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'file-plus',\n    'file',\n    'plus',\n    'add',\n    'new',\n    'create',\n    'document',\n    'fichier',\n    'nouveau',\n    'archivo',\n    'nuevo',\n    'αρχείο',\n    'νέο',\n    'plik',\n    'nowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-file-video',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" />\n      <polyline points=\"13 2 13 9 20 9\" />\n      <polygon points=\"9.8 13.5 15.3 16.5 9.8 19.5\" />\n    </svg>\n  `,\n})\nexport class FileVideoIconComponent extends IconComponentBase {\n  static readonly slug = 'file-video';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'file video',\n    'movie file',\n    'clip',\n    'mp4',\n    'mov',\n    'fichier vidéo',\n    'archivo de vídeo',\n    'αρχείο βίντεο',\n    'plik wideo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-filter-x',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473\" />\n      <path d=\"m16.5 3.5 5 5\" />\n      <path d=\"m21.5 3.5-5 5\" />\n    </svg>\n  `,\n})\nexport class FilterXIconComponent extends IconComponentBase {\n  static readonly slug = 'filter-x';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'filter-x',\n    'filter',\n    'clear',\n    'remove',\n    'funnel',\n    'filtre',\n    'filtro',\n    'φίλτρο',\n    'filtr',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-filter',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\" />\n    </svg>\n  `,\n})\nexport class FilterIconComponent extends IconComponentBase {\n  static readonly slug = 'filter';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'filter',\n    'funnel',\n    'sort',\n    'refine',\n    'filtre',\n    'entonnoir',\n    'filtro',\n    'embudo',\n    'φίλτρο',\n    'χωνί',\n    'filtr',\n    'lejek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-fingerprint',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4\" />\n      <path d=\"M14 13.12c0 2.38 0 6.38-1 8.88\" />\n      <path d=\"M17.29 21.02c.12-.6.43-2.3.5-3.02\" />\n      <path d=\"M2 12a10 10 0 0 1 18-6\" />\n      <path d=\"M2 16h.01\" />\n      <path d=\"M21.8 16c.2-2 .131-5.354 0-6\" />\n      <path d=\"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2\" />\n      <path d=\"M8.65 22c.21-.66.45-1.32.57-2\" />\n      <path d=\"M9 6.8a6 6 0 0 1 9 5.2v2\" />\n    </svg>\n  `,\n})\nexport class FingerprintIconComponent extends IconComponentBase {\n  static readonly slug = 'fingerprint';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'fingerprint',\n    'biometric',\n    'identity',\n    'security',\n    'touch',\n    'empreinte',\n    'huella',\n    'δακτυλικό',\n    'odcisk',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-first-place-medal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"7.5 6.21 6.5 1 17.5 1 16.5 6.21\" />\n      <circle\n        cx=\"12\"\n        cy=\"14\"\n        r=\"9\" />\n      <path d=\"M10.5 12l2-2v8\" />\n    </svg>\n  `,\n})\nexport class FirstPlaceMedalIconComponent extends IconComponentBase {\n  static readonly slug = 'first-place-medal';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'medal',\n    'first place',\n    'gold',\n    'winner',\n    'champion',\n    'rank',\n    'podium',\n    'award',\n    'médaille',\n    'première place',\n    'medalla',\n    'oro',\n    'primer lugar',\n    'μετάλλιο',\n    'χρυσό',\n    'πρώτη θέση',\n    'złoto',\n    'pierwsze miejsce',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-flag',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\" />\n      <line\n        x1=\"4\"\n        y1=\"22\"\n        x2=\"4\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class FlagIconComponent extends IconComponentBase {\n  static readonly slug = 'flag';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'flag',\n    'mark',\n    'report',\n    'country',\n    'banner',\n    'drapeau',\n    'bandera',\n    'σημαία',\n    'flaga',\n    'oznacz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-flame',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4\" />\n    </svg>\n  `,\n})\nexport class FlameIconComponent extends IconComponentBase {\n  static readonly slug = 'flame';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'flame',\n    'fire',\n    'hot',\n    'burn',\n    'heat',\n    'flamme',\n    'llama',\n    'φλόγα',\n    'płomień',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-folder-minus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n      <line\n        x1=\"9\"\n        y1=\"14\"\n        x2=\"15\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class FolderMinusIconComponent extends IconComponentBase {\n  static readonly slug = 'folder-minus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'folder-minus',\n    'folder',\n    'minus',\n    'remove',\n    'delete',\n    'directory',\n    'dossier',\n    'supprimer',\n    'carpeta',\n    'eliminar',\n    'φάκελος',\n    'αφαίρεση',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-folder-open',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2\" />\n    </svg>\n  `,\n})\nexport class FolderOpenIconComponent extends IconComponentBase {\n  static readonly slug = 'folder-open';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'folder-open',\n    'folder',\n    'directory',\n    'open',\n    'dossier',\n    'carpeta',\n    'φάκελος',\n    'katalog',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-folder-plus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n      <line\n        x1=\"12\"\n        y1=\"11\"\n        x2=\"12\"\n        y2=\"17\" />\n      <line\n        x1=\"9\"\n        y1=\"14\"\n        x2=\"15\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class FolderPlusIconComponent extends IconComponentBase {\n  static readonly slug = 'folder-plus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'folder-plus',\n    'folder',\n    'plus',\n    'add',\n    'new',\n    'create',\n    'directory',\n    'dossier',\n    'nouveau',\n    'carpeta',\n    'nuevo',\n    'φάκελος',\n    'νέο',\n    'nowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-folder',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n    </svg>\n  `,\n})\nexport class FolderIconComponent extends IconComponentBase {\n  static readonly slug = 'folder';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'folder',\n    'directory',\n    'files',\n    'storage',\n    'dossier',\n    'répertoire',\n    'carpeta',\n    'directorio',\n    'φάκελος',\n    'κατάλογος',\n    'folder',\n    'katalog',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-framer',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\" />\n    </svg>\n  `,\n})\nexport class FramerIconComponent extends IconComponentBase {\n  static readonly slug = 'framer';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'framer',\n    'design',\n    'prototype',\n    'ui',\n    'tool',\n    'animation',\n    'motion',\n    'web',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-frown',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <path d=\"M16 16s-1.5-2-4-2-4 2-4 2\" />\n      <line\n        x1=\"9\"\n        y1=\"9\"\n        x2=\"9.01\"\n        y2=\"9\" />\n      <line\n        x1=\"15\"\n        y1=\"9\"\n        x2=\"15.01\"\n        y2=\"9\" />\n    </svg>\n  `,\n})\nexport class FrownIconComponent extends IconComponentBase {\n  static readonly slug = 'frown';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'frown',\n    'sad',\n    'unhappy',\n    'emoji',\n    'face',\n    'triste',\n    'mécontent',\n    'enfadado',\n    'cara',\n    'λυπημένος',\n    'πρόσωπο',\n    'smutny',\n    'twarz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-gauge',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"m12 14 4-4\" />\n      <path d=\"M3.34 19a10 10 0 1 1 17.32 0\" />\n    </svg>\n  `,\n})\nexport class GaugeIconComponent extends IconComponentBase {\n  static readonly slug = 'gauge';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'gauge',\n    'speedometer',\n    'dashboard',\n    'meter',\n    'performance',\n    'jauge',\n    'medidor',\n    'μετρητής',\n    'wskaźnik',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-gemini',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#8E75B2' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81\" />\n    </svg>\n  `,\n})\nexport class GeminiIconComponent extends IconComponentBase {\n  static readonly slug = 'gemini';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['gemini', 'google', 'ai', 'llm'];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-gift',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"20 12 20 22 4 22 4 12\" />\n      <rect\n        x=\"2\"\n        y=\"7\"\n        width=\"20\"\n        height=\"5\" />\n      <line\n        x1=\"12\"\n        y1=\"22\"\n        x2=\"12\"\n        y2=\"7\" />\n      <path d=\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\" />\n      <path d=\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\" />\n    </svg>\n  `,\n})\nexport class GiftIconComponent extends IconComponentBase {\n  static readonly slug = 'gift';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'gift',\n    'present',\n    'birthday',\n    'box',\n    'reward',\n    'cadeau',\n    'regalo',\n    'sorpresa',\n    'δώρο',\n    'έκπληξη',\n    'prezent',\n    'podarunek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-git-branch',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"6\"\n        y1=\"3\"\n        x2=\"6\"\n        y2=\"15\" />\n      <circle\n        cx=\"18\"\n        cy=\"6\"\n        r=\"3\" />\n      <circle\n        cx=\"6\"\n        cy=\"18\"\n        r=\"3\" />\n      <path d=\"M18 9a9 9 0 0 1-9 9\" />\n    </svg>\n  `,\n})\nexport class GitBranchIconComponent extends IconComponentBase {\n  static readonly slug = 'git-branch';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'git-branch',\n    'git',\n    'branch',\n    'version',\n    'control',\n    'fork',\n    'branche',\n    'rama',\n    'κλάδος',\n    'gałąź',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-git-commit',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"4\" />\n      <line\n        x1=\"1.05\"\n        y1=\"12\"\n        x2=\"7\"\n        y2=\"12\" />\n      <line\n        x1=\"17.01\"\n        y1=\"12\"\n        x2=\"22.96\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class GitCommitIconComponent extends IconComponentBase {\n  static readonly slug = 'git-commit';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'git-commit',\n    'git',\n    'commit',\n    'version',\n    'control',\n    'change',\n    'commit',\n    'cambio',\n    'υποβολή',\n    'commit',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-git-compare',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"18\"\n        cy=\"18\"\n        r=\"3\" />\n      <circle\n        cx=\"6\"\n        cy=\"6\"\n        r=\"3\" />\n      <path d=\"M13 6h3a2 2 0 0 1 2 2v7\" />\n      <path d=\"M11 18H8a2 2 0 0 1-2-2V9\" />\n    </svg>\n  `,\n})\nexport class GitCompareIconComponent extends IconComponentBase {\n  static readonly slug = 'git-compare';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'git-compare',\n    'git',\n    'compare',\n    'diff',\n    'branch',\n    'comparer',\n    'comparar',\n    'σύγκριση',\n    'porównaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-git-merge',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"18\"\n        cy=\"18\"\n        r=\"3\" />\n      <circle\n        cx=\"6\"\n        cy=\"6\"\n        r=\"3\" />\n      <path d=\"M6 21V9a9 9 0 0 0 9 9\" />\n    </svg>\n  `,\n})\nexport class GitMergeIconComponent extends IconComponentBase {\n  static readonly slug = 'git-merge';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'git-merge',\n    'git',\n    'merge',\n    'version',\n    'control',\n    'combine',\n    'fusion',\n    'fusionner',\n    'fusión',\n    'συγχώνευση',\n    'scalanie',\n    'merge',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-git-pull-request',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"18\"\n        cy=\"18\"\n        r=\"3\" />\n      <circle\n        cx=\"6\"\n        cy=\"6\"\n        r=\"3\" />\n      <path d=\"M13 6h3a2 2 0 0 1 2 2v7\" />\n      <line\n        x1=\"6\"\n        y1=\"9\"\n        x2=\"6\"\n        y2=\"21\" />\n    </svg>\n  `,\n})\nexport class GitPullRequestIconComponent extends IconComponentBase {\n  static readonly slug = 'git-pull-request';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'git-pull-request',\n    'git',\n    'pull',\n    'request',\n    'pr',\n    'version',\n    'control',\n    'review',\n    'demande',\n    'solicitud',\n    'αίτημα',\n    'prośba',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * GitHub brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-github>` / `GithubIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-github-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#181717' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\" />\n    </svg>\n  `,\n})\nexport class Github2IconComponent extends IconComponentBase {\n  static readonly slug = 'github-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'github-2',\n    'github',\n    'git',\n    'repository',\n    'repo',\n    'source code',\n    'version control',\n    'mark',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * GitHub icon (Feather outline).\n *\n * @remarks\n * The brand-filled GitHub mark lives at `<ea-icon-github-2>` /\n * `Github2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-github',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\" />\n    </svg>\n  `,\n})\nexport class GithubIconComponent extends IconComponentBase {\n  static readonly slug = 'github';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'github',\n    'git',\n    'repository',\n    'repo',\n    'source code',\n    'version control',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-gitlab',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#FC6D26' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\" />\n    </svg>\n  `,\n})\nexport class GitlabIconComponent extends IconComponentBase {\n  static readonly slug = 'gitlab';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'gitlab',\n    'git',\n    'repository',\n    'repo',\n    'source code',\n    'version control',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-globe',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"2\"\n        y1=\"12\"\n        x2=\"22\"\n        y2=\"12\" />\n      <path\n        d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\" />\n    </svg>\n  `,\n})\nexport class GlobeIconComponent extends IconComponentBase {\n  static readonly slug = 'globe';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'globe',\n    'world',\n    'earth',\n    'international',\n    'language',\n    'web',\n    'monde',\n    'terre',\n    'mundo',\n    'tierra',\n    'κόσμος',\n    'γη',\n    'świat',\n    'ziemia',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-google',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z\"\n        fill=\"#4285F4\" />\n      <path\n        d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n        fill=\"#34A853\" />\n      <path\n        d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.45 1.18 4.93l3.66-2.84z\"\n        fill=\"#FBBC05\" />\n      <path\n        d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n        fill=\"#EA4335\" />\n    </svg>\n  `,\n})\nexport class GoogleIconComponent extends IconComponentBase {\n  static readonly slug = 'google';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['google', 'search', 'web'];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-grid',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"7\"\n        height=\"7\" />\n      <rect\n        x=\"14\"\n        y=\"3\"\n        width=\"7\"\n        height=\"7\" />\n      <rect\n        x=\"14\"\n        y=\"14\"\n        width=\"7\"\n        height=\"7\" />\n      <rect\n        x=\"3\"\n        y=\"14\"\n        width=\"7\"\n        height=\"7\" />\n    </svg>\n  `,\n})\nexport class GridIconComponent extends IconComponentBase {\n  static readonly slug = 'grid';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'grid',\n    'layout',\n    'tiles',\n    'gallery',\n    'cells',\n    'grille',\n    'cuadrícula',\n    'πλέγμα',\n    'siatka',\n    'układ',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-half-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 2 A10 10 0 0 0 12 22 Z\" />\n    </svg>\n  `,\n})\nexport class HalfCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'half-circle';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'half-circle',\n    'half',\n    'left',\n    'partial',\n    'rating',\n    'circle',\n    'round',\n    'shape',\n    'demi-cercle',\n    'demi',\n    'gauche',\n    'medio-círculo',\n    'medio',\n    'izquierda',\n    'μισός-κύκλος',\n    'μισό',\n    'αριστερά',\n    'pół-koła',\n    'pół',\n    'lewa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-half-heart',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 5.67 L10.94 4.61 a5.5 5.5 0 0 0 -7.78 7.78 L12 21.23 Z\" />\n    </svg>\n  `,\n})\nexport class HalfHeartIconComponent extends IconComponentBase {\n  static readonly slug = 'half-heart';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'half-heart',\n    'half',\n    'left',\n    'partial',\n    'rating',\n    'heart',\n    'love',\n    'shape',\n    'demi-cœur',\n    'demi',\n    'gauche',\n    'medio-corazón',\n    'medio',\n    'izquierda',\n    'μισή-καρδιά',\n    'μισό',\n    'αριστερά',\n    'pół-serca',\n    'pół',\n    'lewa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-hard-drive',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"22\"\n        y1=\"12\"\n        x2=\"2\"\n        y2=\"12\" />\n      <path\n        d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" />\n      <line\n        x1=\"6\"\n        y1=\"16\"\n        x2=\"6.01\"\n        y2=\"16\" />\n      <line\n        x1=\"10\"\n        y1=\"16\"\n        x2=\"10.01\"\n        y2=\"16\" />\n    </svg>\n  `,\n})\nexport class HardDriveIconComponent extends IconComponentBase {\n  static readonly slug = 'hard-drive';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'hard-drive',\n    'hard',\n    'drive',\n    'storage',\n    'disk',\n    'memory',\n    'disque dur',\n    'almacenamiento',\n    'disco duro',\n    'σκληρός δίσκος',\n    'αποθήκευση',\n    'dysk twardy',\n    'pamięć',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-hash',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"4\"\n        y1=\"9\"\n        x2=\"20\"\n        y2=\"9\" />\n      <line\n        x1=\"4\"\n        y1=\"15\"\n        x2=\"20\"\n        y2=\"15\" />\n      <line\n        x1=\"10\"\n        y1=\"3\"\n        x2=\"8\"\n        y2=\"21\" />\n      <line\n        x1=\"16\"\n        y1=\"3\"\n        x2=\"14\"\n        y2=\"21\" />\n    </svg>\n  `,\n})\nexport class HashIconComponent extends IconComponentBase {\n  static readonly slug = 'hash';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'hash',\n    'hashtag',\n    'pound',\n    'number',\n    'tag',\n    'dièse',\n    'numeral',\n    'almohadilla',\n    'δίεση',\n    'κατακερματισμός',\n    'krzyżyk',\n    'hasztag',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-headphones',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M3 18v-6a9 9 0 0 1 18 0v6\" />\n      <path\n        d=\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\" />\n    </svg>\n  `,\n})\nexport class HeadphonesIconComponent extends IconComponentBase {\n  static readonly slug = 'headphones';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'headphones',\n    'audio',\n    'music',\n    'listen',\n    'sound',\n    'casque',\n    'écouteurs',\n    'auriculares',\n    'ακουστικά',\n    'μουσική',\n    'słuchawki',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-heart',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\" />\n    </svg>\n  `,\n})\nexport class HeartIconComponent extends IconComponentBase {\n  static readonly slug = 'heart';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'heart',\n    'love',\n    'like',\n    'favorite',\n    'romance',\n    'cœur',\n    'amour',\n    'corazón',\n    'amor',\n    'καρδιά',\n    'αγάπη',\n    'serce',\n    'miłość',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-help-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n      <line\n        x1=\"12\"\n        y1=\"17\"\n        x2=\"12.01\"\n        y2=\"17\" />\n    </svg>\n  `,\n})\nexport class HelpCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'help-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'help-circle',\n    'help',\n    'circle',\n    'question',\n    'support',\n    'info',\n    'aide',\n    'question',\n    'ayuda',\n    'pregunta',\n    'βοήθεια',\n    'ερώτηση',\n    'pomoc',\n    'pytanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-heptagon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon\n        points=\"12 2 19.82 5.77 21.75 14.22 16.34 21.01 7.66 21.01 2.25 14.22 4.18 5.77\" />\n    </svg>\n  `,\n})\nexport class HeptagonIconComponent extends IconComponentBase {\n  static readonly slug = 'heptagon';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'heptagon',\n    'seven-sided',\n    'polygon',\n    'shape',\n    'heptagone',\n    'heptágono',\n    'επτάγωνο',\n    'siedmiokąt',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-hexagon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"12 2 20.66 7 20.66 17 12 22 3.34 17 3.34 7\" />\n    </svg>\n  `,\n})\nexport class HexagonIconComponent extends IconComponentBase {\n  static readonly slug = 'hexagon';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'hexagon',\n    'six-sided',\n    'polygon',\n    'shape',\n    'hexagone',\n    'hexágono',\n    'εξάγωνο',\n    'sześciokąt',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-history',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n      <path d=\"M3 3v5h5\" />\n      <path d=\"M12 7v5l4 2\" />\n    </svg>\n  `,\n})\nexport class HistoryIconComponent extends IconComponentBase {\n  static readonly slug = 'history';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'history',\n    'recent',\n    'clock',\n    'time',\n    'undo',\n    'historique',\n    'récent',\n    'historial',\n    'reciente',\n    'ιστορικό',\n    'historia',\n    'ostatnie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-home',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\n      <polyline points=\"9 22 9 12 15 12 15 22\" />\n    </svg>\n  `,\n})\nexport class HomeIconComponent extends IconComponentBase {\n  static readonly slug = 'home';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'home',\n    'house',\n    'main',\n    'start',\n    'dashboard',\n    'accueil',\n    'maison',\n    'inicio',\n    'casa',\n    'αρχική',\n    'σπίτι',\n    'dom',\n    'początek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-image-plus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M16 5h6\" />\n      <path d=\"M19 2v6\" />\n      <path d=\"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5\" />\n      <circle\n        cx=\"9\"\n        cy=\"9\"\n        r=\"2\" />\n      <path d=\"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\" />\n    </svg>\n  `,\n})\nexport class ImagePlusIconComponent extends IconComponentBase {\n  static readonly slug = 'image-plus';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'image-plus',\n    'add image',\n    'add photo',\n    'upload picture',\n    'gallery',\n    'ajouter une image',\n    'añadir imagen',\n    'προσθήκη εικόνας',\n    'dodaj obraz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-image-search',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12.5 5H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6\" />\n      <polyline points=\"19 17 13.5 11.5 5 21\" />\n      <circle\n        cx=\"17.5\"\n        cy=\"6.5\"\n        r=\"3\" />\n      <path d=\"m19.7 8.7 2 2\" />\n    </svg>\n  `,\n})\nexport class ImageSearchIconComponent extends IconComponentBase {\n  static readonly slug = 'image-search';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'image-search',\n    'find image',\n    'search photo',\n    'magnifier',\n    'gallery',\n    'rechercher une image',\n    'buscar imagen',\n    'αναζήτηση εικόνας',\n    'szukaj obrazu',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-images',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 3h11a2 2 0 0 1 2 2v11\" />\n      <rect\n        x=\"3\"\n        y=\"7\"\n        width=\"14\"\n        height=\"14\"\n        rx=\"1.56\" />\n      <circle\n        cx=\"7.28\"\n        cy=\"11.28\"\n        r=\"1.17\" />\n      <polyline points=\"17.0 16.33 13.11 12.44 4.56 21.0\" />\n    </svg>\n  `,\n})\nexport class ImagesIconComponent extends IconComponentBase {\n  static readonly slug = 'images';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'images',\n    'gallery',\n    'photos',\n    'album',\n    'library',\n    'galerie',\n    'galería',\n    'συλλογή εικόνων',\n    'galeria',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-inbox',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\" />\n      <path\n        d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\" />\n    </svg>\n  `,\n})\nexport class InboxIconComponent extends IconComponentBase {\n  static readonly slug = 'inbox';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'inbox',\n    'mail',\n    'messages',\n    'tray',\n    'email',\n    'boîte de réception',\n    'bandeja',\n    'entrada',\n    'εισερχόμενα',\n    'skrzynka',\n    'odbiorcze',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-instagram',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"20\"\n        height=\"20\"\n        rx=\"5\"\n        ry=\"5\" />\n      <path d=\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\" />\n      <line\n        x1=\"17.5\"\n        y1=\"6.5\"\n        x2=\"17.51\"\n        y2=\"6.5\" />\n    </svg>\n  `,\n})\nexport class InstagramIconComponent extends IconComponentBase {\n  static readonly slug = 'instagram';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'instagram',\n    'social',\n    'network',\n    'meta',\n    'photo',\n    'camera',\n    'story',\n    'reels',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-italic',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"19\"\n        y1=\"4\"\n        x2=\"10\"\n        y2=\"4\" />\n      <line\n        x1=\"14\"\n        y1=\"20\"\n        x2=\"5\"\n        y2=\"20\" />\n      <line\n        x1=\"15\"\n        y1=\"4\"\n        x2=\"9\"\n        y2=\"20\" />\n    </svg>\n  `,\n})\nexport class ItalicIconComponent extends IconComponentBase {\n  static readonly slug = 'italic';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'italic',\n    'text',\n    'format',\n    'slant',\n    'style',\n    'italique',\n    'cursiva',\n    'πλάγια',\n    'kursywa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-key',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\" />\n    </svg>\n  `,\n})\nexport class KeyIconComponent extends IconComponentBase {\n  static readonly slug = 'key';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'key',\n    'lock',\n    'password',\n    'security',\n    'access',\n    'clé',\n    'mot de passe',\n    'llave',\n    'clave',\n    'κλειδί',\n    'κωδικός',\n    'klucz',\n    'hasło',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-keyboard',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M10 8h.01\" />\n      <path d=\"M12 12h.01\" />\n      <path d=\"M14 8h.01\" />\n      <path d=\"M16 12h.01\" />\n      <path d=\"M18 8h.01\" />\n      <path d=\"M6 8h.01\" />\n      <path d=\"M7 16h10\" />\n      <path d=\"M8 12h.01\" />\n      <rect\n        width=\"20\"\n        height=\"16\"\n        x=\"2\"\n        y=\"4\"\n        rx=\"2\" />\n    </svg>\n  `,\n})\nexport class KeyboardIconComponent extends IconComponentBase {\n  static readonly slug = 'keyboard';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'keyboard',\n    'type',\n    'typing',\n    'input',\n    'keys',\n    'clavier',\n    'teclado',\n    'πληκτρολόγιο',\n    'klawiatura',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-keyframe',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"2\"\n        y1=\"12\"\n        x2=\"6.5\"\n        y2=\"12\" />\n      <line\n        x1=\"17.5\"\n        y1=\"12\"\n        x2=\"22\"\n        y2=\"12\" />\n      <path d=\"M12 7l5 5-5 5-5-5z\" />\n    </svg>\n  `,\n})\nexport class KeyframeIconComponent extends IconComponentBase {\n  static readonly slug = 'keyframe';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'keyframe',\n    'animation',\n    'timeline marker',\n    'tween',\n    'waypoint',\n    'image clé',\n    'fotograma clave',\n    'καρέ-κλειδί',\n    'klatka kluczowa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-kubernetes',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#326CE5' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 0a1.74 1.74 0 0 0-.776.187l-8.81 4.211a1.74 1.74 0 0 0-.943 1.18L.247 14.97a1.74 1.74 0 0 0 .337 1.48l6.094 7.575a1.74 1.74 0 0 0 1.36.65h9.722a1.74 1.74 0 0 0 1.36-.65l6.093-7.575a1.74 1.74 0 0 0 .337-1.48L23.53 5.578a1.74 1.74 0 0 0-.944-1.18L13.776.187A1.74 1.74 0 0 0 12 0Zm-.05 4.054a.39.39 0 0 1 .39.39v1.91a.388.388 0 0 0 .312.382 6.6 6.6 0 0 1 3.972 2.293c.073.087.197.11.295.052l1.654-.955a.39.39 0 0 1 .54.158.392.392 0 0 1-.144.526l-1.655.955a.388.388 0 0 0-.143.514 6.55 6.55 0 0 1 .748 4.466.388.388 0 0 0 .265.452l1.85.55a.39.39 0 0 1 .256.491.39.39 0 0 1-.486.252l-1.847-.55a.388.388 0 0 0-.473.224 6.6 6.6 0 0 1-3.297 3.297.388.388 0 0 0-.224.473l.55 1.847a.39.39 0 0 1-.252.486.39.39 0 0 1-.49-.256l-.55-1.85a.388.388 0 0 0-.453-.265 6.55 6.55 0 0 1-4.466-.748.388.388 0 0 0-.514.143l-.955 1.655a.392.392 0 0 1-.526.144.39.39 0 0 1-.158-.54l.955-1.654a.388.388 0 0 0-.052-.295 6.6 6.6 0 0 1-2.293-3.972.388.388 0 0 0-.382-.312H2.99a.39.39 0 0 1 0-.78h1.91a.388.388 0 0 0 .382-.312 6.6 6.6 0 0 1 2.293-3.972.388.388 0 0 0 .052-.295L6.672 6.85a.39.39 0 0 1 .158-.54.392.392 0 0 1 .526.144l.955 1.655a.388.388 0 0 0 .514.143 6.55 6.55 0 0 1 4.466-.748.388.388 0 0 0 .453-.265l.55-1.85a.39.39 0 0 1 .49-.256.39.39 0 0 1 .252.486l-.55 1.847a.388.388 0 0 0 .224.473 6.6 6.6 0 0 1 .92.46.39.39 0 0 1-.39-.39v-1.91a.39.39 0 0 1 .39-.39Zm.05 5.7a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492Z\" />\n    </svg>\n  `,\n})\nexport class KubernetesIconComponent extends IconComponentBase {\n  static readonly slug = 'kubernetes';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'kubernetes',\n    'k8s',\n    'container',\n    'devops',\n    'orchestration',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-lamp',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 2h8l3 10H5z\" />\n      <line\n        x1=\"12\"\n        y1=\"12\"\n        x2=\"12\"\n        y2=\"22\" />\n      <line\n        x1=\"7\"\n        y1=\"22\"\n        x2=\"17\"\n        y2=\"22\" />\n    </svg>\n  `,\n})\nexport class LampIconComponent extends IconComponentBase {\n  static readonly slug = 'lamp';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'lamp',\n    'light',\n    'bulb',\n    'lighting',\n    'lampe',\n    'lumière',\n    'lámpara',\n    'luz',\n    'λάμπα',\n    'φως',\n    'lampa',\n    'światło',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-languages',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"m5 8 6 6\" />\n      <path d=\"m4 14 6-6 2-3\" />\n      <path d=\"M2 5h12\" />\n      <path d=\"M7 2h1\" />\n      <path d=\"m22 22-5-10-5 10\" />\n      <path d=\"M14 18h6\" />\n    </svg>\n  `,\n})\nexport class LanguagesIconComponent extends IconComponentBase {\n  static readonly slug = 'languages';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'languages',\n    'language',\n    'translate',\n    'translation',\n    'locale',\n    'langues',\n    'idiomas',\n    'γλώσσες',\n    'języki',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-laptop',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M4 16V7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v9\" />\n      <path d=\"M4 16h16l1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16\" />\n    </svg>\n  `,\n})\nexport class LaptopIconComponent extends IconComponentBase {\n  static readonly slug = 'laptop';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'laptop',\n    'computer',\n    'notebook',\n    'portable',\n    'device',\n    'screen',\n    'ordinateur portable',\n    'portátil',\n    'φορητός υπολογιστής',\n    'laptop',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-layers',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"12 2 2 7 12 12 22 7 12 2\" />\n      <polyline points=\"2 17 12 22 22 17\" />\n      <polyline points=\"2 12 12 17 22 12\" />\n    </svg>\n  `,\n})\nexport class LayersIconComponent extends IconComponentBase {\n  static readonly slug = 'layers';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'layers',\n    'stack',\n    'levels',\n    'design',\n    'overlay',\n    'calques',\n    'capas',\n    'στρώματα',\n    'επίπεδα',\n    'warstwy',\n    'stos',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-layout',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"3\"\n        y1=\"9\"\n        x2=\"21\"\n        y2=\"9\" />\n      <line\n        x1=\"9\"\n        y1=\"21\"\n        x2=\"9\"\n        y2=\"9\" />\n    </svg>\n  `,\n})\nexport class LayoutIconComponent extends IconComponentBase {\n  static readonly slug = 'layout';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'layout',\n    'grid',\n    'design',\n    'structure',\n    'template',\n    'mise en page',\n    'diseño',\n    'plantilla',\n    'διάταξη',\n    'σχέδιο',\n    'układ',\n    'szablon',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-leaf',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z\" />\n      <path d=\"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12\" />\n    </svg>\n  `,\n})\nexport class LeafIconComponent extends IconComponentBase {\n  static readonly slug = 'leaf';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'leaf',\n    'nature',\n    'eco',\n    'plant',\n    'organic',\n    'feuille',\n    'hoja',\n    'φύλλο',\n    'liść',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-life-buoy',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"4\" />\n      <line\n        x1=\"4.93\"\n        y1=\"4.93\"\n        x2=\"9.17\"\n        y2=\"9.17\" />\n      <line\n        x1=\"14.83\"\n        y1=\"14.83\"\n        x2=\"19.07\"\n        y2=\"19.07\" />\n      <line\n        x1=\"14.83\"\n        y1=\"9.17\"\n        x2=\"19.07\"\n        y2=\"4.93\" />\n      <line\n        x1=\"14.83\"\n        y1=\"9.17\"\n        x2=\"18.36\"\n        y2=\"5.64\" />\n      <line\n        x1=\"4.93\"\n        y1=\"19.07\"\n        x2=\"9.17\"\n        y2=\"14.83\" />\n    </svg>\n  `,\n})\nexport class LifeBuoyIconComponent extends IconComponentBase {\n  static readonly slug = 'life-buoy';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'life-buoy',\n    'life',\n    'buoy',\n    'help',\n    'support',\n    'rescue',\n    'bouée',\n    'sauvetage',\n    'salvavidas',\n    'ayuda',\n    'σωσίβιο',\n    'βοήθεια',\n    'koło ratunkowe',\n    'pomoc',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-lightbulb',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\" />\n      <path d=\"M9 18h6\" />\n      <path d=\"M10 22h4\" />\n    </svg>\n  `,\n})\nexport class LightbulbIconComponent extends IconComponentBase {\n  static readonly slug = 'lightbulb';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'lightbulb',\n    'bulb',\n    'idea',\n    'light',\n    'inspiration',\n    'tip',\n    'ampoule',\n    'idée',\n    'bombilla',\n    'λάμπα',\n    'ιδέα',\n    'żarówka',\n    'pomysł',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-link-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class Link2IconComponent extends IconComponentBase {\n  static readonly slug = 'link-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'link-2',\n    'link',\n    '2',\n    'chain',\n    'url',\n    'connect',\n    'hyperlink',\n    'lien',\n    'enlace',\n    'σύνδεσμος',\n    'link',\n    'połączenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-link',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\" />\n      <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\" />\n    </svg>\n  `,\n})\nexport class LinkIconComponent extends IconComponentBase {\n  static readonly slug = 'link';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'link',\n    'chain',\n    'url',\n    'connect',\n    'hyperlink',\n    'lien',\n    'chaîne',\n    'enlace',\n    'cadena',\n    'σύνδεσμος',\n    'αλυσίδα',\n    'link',\n    'połączenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * LinkedIn brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-linkedin>` / `LinkedinIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-linkedin-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#0A66C2' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05a3.74 3.74 0 0 1 3.37-1.85c3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45ZM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0Z\" />\n    </svg>\n  `,\n})\nexport class Linkedin2IconComponent extends IconComponentBase {\n  static readonly slug = 'linkedin-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'linkedin-2',\n    'linkedin',\n    'social',\n    'network',\n    'professional',\n    'job',\n    'mark',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * LinkedIn icon (Feather outline).\n *\n * @remarks\n * The brand-filled LinkedIn mark lives at `<ea-icon-linkedin-2>` /\n * `Linkedin2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-linkedin',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\" />\n      <rect\n        x=\"2\"\n        y=\"9\"\n        width=\"4\"\n        height=\"12\" />\n      <circle\n        cx=\"4\"\n        cy=\"4\"\n        r=\"2\" />\n    </svg>\n  `,\n})\nexport class LinkedinIconComponent extends IconComponentBase {\n  static readonly slug = 'linkedin';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'linkedin',\n    'social',\n    'network',\n    'professional',\n    'job',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-list-checks',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 5h8\" />\n      <path d=\"M13 12h8\" />\n      <path d=\"M13 19h8\" />\n      <path d=\"m3 17 2 2 4-4\" />\n      <path d=\"m3 7 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class ListChecksIconComponent extends IconComponentBase {\n  static readonly slug = 'list-checks';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'list-checks',\n    'checklist',\n    'tasks',\n    'todo',\n    'done',\n    'liste',\n    'lista',\n    'λίστα',\n    'lista',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-list',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"8\"\n        y1=\"6\"\n        x2=\"21\"\n        y2=\"6\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"21\"\n        y2=\"12\" />\n      <line\n        x1=\"8\"\n        y1=\"18\"\n        x2=\"21\"\n        y2=\"18\" />\n      <line\n        x1=\"3\"\n        y1=\"6\"\n        x2=\"3.01\"\n        y2=\"6\" />\n      <line\n        x1=\"3\"\n        y1=\"12\"\n        x2=\"3.01\"\n        y2=\"12\" />\n      <line\n        x1=\"3\"\n        y1=\"18\"\n        x2=\"3.01\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class ListIconComponent extends IconComponentBase {\n  static readonly slug = 'list';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'list',\n    'menu',\n    'items',\n    'bullets',\n    'todo',\n    'liste',\n    'lista',\n    'menú',\n    'λίστα',\n    'κατάλογος',\n    'lista',\n    'spis',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-loader',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"12\"\n        y1=\"2\"\n        x2=\"12\"\n        y2=\"6\" />\n      <line\n        x1=\"12\"\n        y1=\"18\"\n        x2=\"12\"\n        y2=\"22\" />\n      <line\n        x1=\"4.93\"\n        y1=\"4.93\"\n        x2=\"7.76\"\n        y2=\"7.76\" />\n      <line\n        x1=\"16.24\"\n        y1=\"16.24\"\n        x2=\"19.07\"\n        y2=\"19.07\" />\n      <line\n        x1=\"2\"\n        y1=\"12\"\n        x2=\"6\"\n        y2=\"12\" />\n      <line\n        x1=\"18\"\n        y1=\"12\"\n        x2=\"22\"\n        y2=\"12\" />\n      <line\n        x1=\"4.93\"\n        y1=\"19.07\"\n        x2=\"7.76\"\n        y2=\"16.24\" />\n      <line\n        x1=\"16.24\"\n        y1=\"7.76\"\n        x2=\"19.07\"\n        y2=\"4.93\" />\n    </svg>\n  `,\n})\nexport class LoaderIconComponent extends IconComponentBase {\n  static readonly slug = 'loader';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'loader',\n    'loading',\n    'spinner',\n    'wait',\n    'progress',\n    'chargement',\n    'cargando',\n    'cargador',\n    'φόρτωση',\n    'αναμονή',\n    'ładowanie',\n    'wczytywanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-lock',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"11\"\n        width=\"18\"\n        height=\"11\"\n        rx=\"2\"\n        ry=\"2\" />\n      <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n    </svg>\n  `,\n})\nexport class LockIconComponent extends IconComponentBase {\n  static readonly slug = 'lock';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'lock',\n    'secure',\n    'password',\n    'private',\n    'closed',\n    'verrou',\n    'cadenas',\n    'candado',\n    'cerrado',\n    'κλειδαριά',\n    'ασφαλές',\n    'kłódka',\n    'zamknij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-log-in',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\" />\n      <polyline points=\"10 17 15 12 10 7\" />\n      <line\n        x1=\"15\"\n        y1=\"12\"\n        x2=\"3\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class LogInIconComponent extends IconComponentBase {\n  static readonly slug = 'log-in';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'log-in',\n    'log',\n    'in',\n    'login',\n    'sign in',\n    'enter',\n    'access',\n    'connexion',\n    'iniciar sesión',\n    'entrar',\n    'σύνδεση',\n    'είσοδος',\n    'logowanie',\n    'zaloguj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-log-out',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n      <polyline points=\"16 17 21 12 16 7\" />\n      <line\n        x1=\"21\"\n        y1=\"12\"\n        x2=\"9\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class LogOutIconComponent extends IconComponentBase {\n  static readonly slug = 'log-out';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'log-out',\n    'log',\n    'out',\n    'logout',\n    'sign out',\n    'exit',\n    'leave',\n    'déconnexion',\n    'cerrar sesión',\n    'salir',\n    'αποσύνδεση',\n    'έξοδος',\n    'wylogowanie',\n    'wyjdź',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mail-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\" />\n      <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n      <path d=\"m16 19 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class MailCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'mail-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'mail-check',\n    'mail',\n    'email',\n    'envelope',\n    'delivered',\n    'courrier',\n    'correo',\n    'αλληλογραφία',\n    'poczta',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mail',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\" />\n      <polyline points=\"22 6 12 13 2 6\" />\n    </svg>\n  `,\n})\nexport class MailIconComponent extends IconComponentBase {\n  static readonly slug = 'mail';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'mail',\n    'email',\n    'message',\n    'envelope',\n    'letter',\n    'courrier',\n    'enveloppe',\n    'correo',\n    'mensaje',\n    'αλληλογραφία',\n    'φάκελος',\n    'poczta',\n    'wiadomość',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-map-pin',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\" />\n      <circle\n        cx=\"12\"\n        cy=\"10\"\n        r=\"3\" />\n    </svg>\n  `,\n})\nexport class MapPinIconComponent extends IconComponentBase {\n  static readonly slug = 'map-pin';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'map-pin',\n    'map',\n    'pin',\n    'location',\n    'marker',\n    'place',\n    'épingle',\n    'marqueur',\n    'ubicación',\n    'marcador',\n    'καρφίτσα',\n    'τοποθεσία',\n    'pinezka',\n    'lokalizacja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-map',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\" />\n      <line\n        x1=\"8\"\n        y1=\"2\"\n        x2=\"8\"\n        y2=\"18\" />\n      <line\n        x1=\"16\"\n        y1=\"6\"\n        x2=\"16\"\n        y2=\"22\" />\n    </svg>\n  `,\n})\nexport class MapIconComponent extends IconComponentBase {\n  static readonly slug = 'map';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'map',\n    'location',\n    'navigation',\n    'directions',\n    'geography',\n    'carte',\n    'mapa',\n    'ubicación',\n    'χάρτης',\n    'τοποθεσία',\n    'mapa',\n    'lokalizacja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mastercard',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"9\"\n        cy=\"12\"\n        r=\"7\"\n        fill=\"#EB001B\" />\n      <circle\n        cx=\"15\"\n        cy=\"12\"\n        r=\"7\"\n        fill=\"#F79E1B\" />\n      <path\n        d=\"M12 6.764A6.984 6.984 0 0 1 14.5 12 6.984 6.984 0 0 1 12 17.236 6.984 6.984 0 0 1 9.5 12 6.984 6.984 0 0 1 12 6.764Z\"\n        fill=\"#FF5F00\" />\n    </svg>\n  `,\n})\nexport class MastercardIconComponent extends IconComponentBase {\n  static readonly slug = 'mastercard';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'mastercard',\n    'card',\n    'payment',\n    'credit',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-maximize-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"15 3 21 3 21 9\" />\n      <polyline points=\"9 21 3 21 3 15\" />\n      <line\n        x1=\"21\"\n        y1=\"3\"\n        x2=\"14\"\n        y2=\"10\" />\n      <line\n        x1=\"3\"\n        y1=\"21\"\n        x2=\"10\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class Maximize2IconComponent extends IconComponentBase {\n  static readonly slug = 'maximize-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'maximize-2',\n    'maximize',\n    '2',\n    'expand',\n    'fullscreen',\n    'enlarge',\n    'agrandir',\n    'maximizar',\n    'μεγιστοποίηση',\n    'maksymalizuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-maximize',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 3H5a2 2 0 0 0-2 2v3\" />\n      <path d=\"M21 8V5a2 2 0 0 0-2-2h-3\" />\n      <path d=\"M3 16v3a2 2 0 0 0 2 2h3\" />\n      <path d=\"M16 21h3a2 2 0 0 0 2-2v-3\" />\n    </svg>\n  `,\n})\nexport class MaximizeIconComponent extends IconComponentBase {\n  static readonly slug = 'maximize';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'maximize',\n    'expand',\n    'fullscreen',\n    'enlarge',\n    'agrandir',\n    'plein écran',\n    'maximizar',\n    'pantalla completa',\n    'μεγιστοποίηση',\n    'πλήρης οθόνη',\n    'maksymalizuj',\n    'pełny ekran',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-megaphone',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\" />\n      <path d=\"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14\" />\n      <path d=\"M8 6v8\" />\n    </svg>\n  `,\n})\nexport class MegaphoneIconComponent extends IconComponentBase {\n  static readonly slug = 'megaphone';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'megaphone',\n    'announcement',\n    'broadcast',\n    'bullhorn',\n    'marketing',\n    'mégaphone',\n    'annonce',\n    'megáfono',\n    'anuncio',\n    'μεγάφωνο',\n    'ανακοίνωση',\n    'megafon',\n    'ogłoszenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-meh',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"8\"\n        y1=\"15\"\n        x2=\"16\"\n        y2=\"15\" />\n      <line\n        x1=\"9\"\n        y1=\"9\"\n        x2=\"9.01\"\n        y2=\"9\" />\n      <line\n        x1=\"15\"\n        y1=\"9\"\n        x2=\"15.01\"\n        y2=\"9\" />\n    </svg>\n  `,\n})\nexport class MehIconComponent extends IconComponentBase {\n  static readonly slug = 'meh';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'meh',\n    'neutral',\n    'face',\n    'emoji',\n    'indifferent',\n    'neutre',\n    'visage',\n    'neutral',\n    'cara',\n    'ουδέτερος',\n    'πρόσωπο',\n    'obojętny',\n    'twarz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-menu',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"3\"\n        y1=\"6\"\n        x2=\"21\"\n        y2=\"6\" />\n      <line\n        x1=\"3\"\n        y1=\"12\"\n        x2=\"21\"\n        y2=\"12\" />\n      <line\n        x1=\"3\"\n        y1=\"18\"\n        x2=\"21\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class MenuIconComponent extends IconComponentBase {\n  static readonly slug = 'menu';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'menu',\n    'hamburger',\n    'list',\n    'navigation',\n    'bars',\n    'menú',\n    'lista',\n    'μενού',\n    'navigacja',\n    'lista',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-message-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\" />\n    </svg>\n  `,\n})\nexport class MessageCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'message-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'message-circle',\n    'message',\n    'circle',\n    'chat',\n    'comment',\n    'bubble',\n    'talk',\n    'messagerie',\n    'mensaje',\n    'comentario',\n    'μήνυμα',\n    'συνομιλία',\n    'wiadomość',\n    'czat',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-message-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\" />\n    </svg>\n  `,\n})\nexport class MessageSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'message-square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'message-square',\n    'message',\n    'square',\n    'chat',\n    'comment',\n    'bubble',\n    'talk',\n    'messagerie',\n    'mensaje',\n    'comentario',\n    'μήνυμα',\n    'συνομιλία',\n    'wiadomość',\n    'czat',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mic-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n      <path d=\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\" />\n      <path d=\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\" />\n      <line\n        x1=\"12\"\n        y1=\"19\"\n        x2=\"12\"\n        y2=\"23\" />\n      <line\n        x1=\"8\"\n        y1=\"23\"\n        x2=\"16\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class MicOffIconComponent extends IconComponentBase {\n  static readonly slug = 'mic-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'mic-off',\n    'mic',\n    'off',\n    'mute',\n    'microphone',\n    'silent',\n    'muet',\n    'silencio',\n    'mudo',\n    'σίγαση',\n    'wyciszony',\n    'mikrofon',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mic',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\" />\n      <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\n      <line\n        x1=\"12\"\n        y1=\"19\"\n        x2=\"12\"\n        y2=\"23\" />\n      <line\n        x1=\"8\"\n        y1=\"23\"\n        x2=\"16\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class MicIconComponent extends IconComponentBase {\n  static readonly slug = 'mic';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'mic',\n    'microphone',\n    'audio',\n    'record',\n    'voice',\n    'sound',\n    'micro',\n    'micrófono',\n    'voz',\n    'μικρόφωνο',\n    'φωνή',\n    'mikrofon',\n    'głos',\n    'music',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-microscope',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M6 18h8\" />\n      <path d=\"M3 22h18\" />\n      <path d=\"M14 22a7 7 0 1 0 0-14h-1\" />\n      <path d=\"M9 14h2\" />\n      <path d=\"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z\" />\n      <path d=\"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3\" />\n    </svg>\n  `,\n})\nexport class MicroscopeIconComponent extends IconComponentBase {\n  static readonly slug = 'microscope';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'microscope',\n    'science',\n    'lab',\n    'biology',\n    'research',\n    'analysis',\n    'microscopio',\n    'μικροσκόπιο',\n    'mikroskop',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-microsoft',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"1\"\n        y=\"1\"\n        width=\"10\"\n        height=\"10\"\n        fill=\"#F25022\" />\n      <rect\n        x=\"13\"\n        y=\"1\"\n        width=\"10\"\n        height=\"10\"\n        fill=\"#7FBA00\" />\n      <rect\n        x=\"1\"\n        y=\"13\"\n        width=\"10\"\n        height=\"10\"\n        fill=\"#00A4EF\" />\n      <rect\n        x=\"13\"\n        y=\"13\"\n        width=\"10\"\n        height=\"10\"\n        fill=\"#FFB900\" />\n    </svg>\n  `,\n})\nexport class MicrosoftIconComponent extends IconComponentBase {\n  static readonly slug = 'microsoft';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['microsoft', 'windows', 'company'];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-minimize-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"4 14 10 14 10 20\" />\n      <polyline points=\"20 10 14 10 14 4\" />\n      <line\n        x1=\"14\"\n        y1=\"10\"\n        x2=\"21\"\n        y2=\"3\" />\n      <line\n        x1=\"3\"\n        y1=\"21\"\n        x2=\"10\"\n        y2=\"14\" />\n    </svg>\n  `,\n})\nexport class Minimize2IconComponent extends IconComponentBase {\n  static readonly slug = 'minimize-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'minimize-2',\n    'minimize',\n    '2',\n    'shrink',\n    'reduce',\n    'collapse',\n    'réduire',\n    'minimizar',\n    'ελαχιστοποίηση',\n    'minimalizuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-minimize',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 3v3a2 2 0 0 1-2 2H3\" />\n      <path d=\"M21 8h-3a2 2 0 0 1-2-2V3\" />\n      <path d=\"M3 16h3a2 2 0 0 1 2 2v3\" />\n      <path d=\"M16 21v-3a2 2 0 0 1 2-2h3\" />\n    </svg>\n  `,\n})\nexport class MinimizeIconComponent extends IconComponentBase {\n  static readonly slug = 'minimize';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'minimize',\n    'shrink',\n    'reduce',\n    'collapse',\n    'réduire',\n    'minimizar',\n    'reducir',\n    'ελαχιστοποίηση',\n    'σμίκρυνση',\n    'minimalizuj',\n    'zmniejsz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-minus-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class MinusCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'minus-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'minus-circle',\n    'minus',\n    'circle',\n    'remove',\n    'subtract',\n    'delete',\n    'moins',\n    'menos',\n    'eliminar',\n    'μείον',\n    'αφαίρεση',\n    'minus',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-minus-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class MinusSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'minus-square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'minus-square',\n    'minus',\n    'square',\n    'remove',\n    'subtract',\n    'delete',\n    'moins',\n    'menos',\n    'eliminar',\n    'μείον',\n    'αφαίρεση',\n    'minus',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mongodb',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#47A248' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M17.193 9.555c-1.264-5.58-4.252-7.414-4.573-8.115-.28-.394-.53-.954-.735-1.44-.036.495-.055.685-.523 1.184-.723.566-4.438 3.682-4.74 10.02-.282 5.912 4.27 9.435 4.888 9.884l.07.05A73.49 73.49 0 0 1 11.91 24h.481c.114-1.032.284-2.056.51-3.07.417-.296.604-.463.85-.693a11.342 11.342 0 0 0 3.639-8.464c.01-.814-.103-1.662-.197-2.218zm-5.336 8.195s0-8.291.275-8.29c.213 0 .49 10.695.49 10.695-.381-.045-.765-1.76-.765-2.405z\" />\n    </svg>\n  `,\n})\nexport class MongodbIconComponent extends IconComponentBase {\n  static readonly slug = 'mongodb';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['mongodb', 'database', 'nosql', 'mongo'];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-monitor',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"3\"\n        width=\"20\"\n        height=\"14\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"8\"\n        y1=\"21\"\n        x2=\"16\"\n        y2=\"21\" />\n      <line\n        x1=\"12\"\n        y1=\"17\"\n        x2=\"12\"\n        y2=\"21\" />\n    </svg>\n  `,\n})\nexport class MonitorIconComponent extends IconComponentBase {\n  static readonly slug = 'monitor';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'monitor',\n    'screen',\n    'display',\n    'computer',\n    'desktop',\n    'écran',\n    'pantalla',\n    'οθόνη',\n    'monitor',\n    'ekran',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-moon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n    </svg>\n  `,\n})\nexport class MoonIconComponent extends IconComponentBase {\n  static readonly slug = 'moon';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'moon',\n    'night',\n    'dark',\n    'theme',\n    'sleep',\n    'lune',\n    'nuit',\n    'luna',\n    'noche',\n    'φεγγάρι',\n    'νύχτα',\n    'księżyc',\n    'noc',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-more-horizontal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"1\" />\n      <circle\n        cx=\"19\"\n        cy=\"12\"\n        r=\"1\" />\n      <circle\n        cx=\"5\"\n        cy=\"12\"\n        r=\"1\" />\n    </svg>\n  `,\n})\nexport class MoreHorizontalIconComponent extends IconComponentBase {\n  static readonly slug = 'more-horizontal';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'more-horizontal',\n    'more',\n    'horizontal',\n    'ellipsis',\n    'menu',\n    'dots',\n    'options',\n    'plus',\n    'más',\n    'περισσότερα',\n    'więcej',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-more-vertical',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"1\" />\n      <circle\n        cx=\"12\"\n        cy=\"5\"\n        r=\"1\" />\n      <circle\n        cx=\"12\"\n        cy=\"19\"\n        r=\"1\" />\n    </svg>\n  `,\n})\nexport class MoreVerticalIconComponent extends IconComponentBase {\n  static readonly slug = 'more-vertical';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'more-vertical',\n    'more',\n    'vertical',\n    'ellipsis',\n    'menu',\n    'dots',\n    'options',\n    'plus',\n    'más',\n    'περισσότερα',\n    'więcej',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-mouse-pointer',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\" />\n      <path d=\"M13 13l6 6\" />\n    </svg>\n  `,\n})\nexport class MousePointerIconComponent extends IconComponentBase {\n  static readonly slug = 'mouse-pointer';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'mouse-pointer',\n    'mouse',\n    'pointer',\n    'cursor',\n    'click',\n    'arrow',\n    'souris',\n    'curseur',\n    'ratón',\n    'cursor',\n    'ποντίκι',\n    'δείκτης',\n    'mysz',\n    'kursor',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-move',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"5 9 2 12 5 15\" />\n      <polyline points=\"9 5 12 2 15 5\" />\n      <polyline points=\"15 19 12 22 9 19\" />\n      <polyline points=\"19 9 22 12 19 15\" />\n      <line\n        x1=\"2\"\n        y1=\"12\"\n        x2=\"22\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"2\"\n        x2=\"12\"\n        y2=\"22\" />\n    </svg>\n  `,\n})\nexport class MoveIconComponent extends IconComponentBase {\n  static readonly slug = 'move';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'move',\n    'drag',\n    'arrows',\n    'reposition',\n    'shift',\n    'déplacer',\n    'mover',\n    'μετακίνηση',\n    'przenieś',\n    'przesuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-navigation-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"12 2 19 21 12 17 5 21 12 2\" />\n    </svg>\n  `,\n})\nexport class Navigation2IconComponent extends IconComponentBase {\n  static readonly slug = 'navigation-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'navigation-2',\n    'navigation',\n    '2',\n    'compass',\n    'direction',\n    'gps',\n    'arrow',\n    'navegación',\n    'πλοήγηση',\n    'nawigacja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-navigation',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"3 11 22 2 13 21 11 13 3 11\" />\n    </svg>\n  `,\n})\nexport class NavigationIconComponent extends IconComponentBase {\n  static readonly slug = 'navigation';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'navigation',\n    'compass',\n    'direction',\n    'gps',\n    'arrow',\n    'navegación',\n    'πλοήγηση',\n    'nawigacja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-netlify',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"4 4 16 16\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"m13.4 13.144-.71-.71 4.474-4.474 1.86 1.07a.39.39 0 0 1 .15.378l-.69 4.31-5.084-.574Zm-2.8 0L5.516 13.72l-.69-4.31a.39.39 0 0 1 .15-.379l1.86-1.07 4.474 4.474-.71.71Zm.71-2.04L7.05 6.694l.71-.71L12 9.604l4.24-3.62.71.71-4.26 4.41-.71-.71-.67.71Zm.69 6.91-4.24-3.62-.71.71 4.26 4.41.71-.71 4.24-3.62-.71-.71-3.55 3.54Z\"\n        fill=\"#00C7B7\" />\n    </svg>\n  `,\n})\nexport class NetlifyIconComponent extends IconComponentBase {\n  static readonly slug = 'netlify';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'netlify',\n    'hosting',\n    'deploy',\n    'jamstack',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-newspaper',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M2 18V4a2 2 0 0 1 2-2h13\" />\n      <rect\n        x=\"6\"\n        y=\"5\"\n        width=\"16\"\n        height=\"17\"\n        rx=\"2\" />\n      <rect\n        x=\"9.5\"\n        y=\"8.5\"\n        width=\"9\"\n        height=\"3.5\"\n        rx=\"1\" />\n      <path d=\"M18.5 15.5h-9\" />\n      <path d=\"M15.5 19h-6\" />\n    </svg>\n  `,\n})\nexport class NewspaperIconComponent extends IconComponentBase {\n  static readonly slug = 'newspaper';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'newspaper',\n    'news',\n    'article',\n    'press',\n    'headline',\n    'journal',\n    'presse',\n    'actualités',\n    'periódico',\n    'noticias',\n    'εφημερίδα',\n    'ειδήσεις',\n    'gazeta',\n    'wiadomości',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-nodejs',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#5FA04E' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11.998,24c-0.321,0-0.641-0.084-0.922-0.247l-2.936-1.737c-0.438-0.245-0.224-0.332-0.08-0.383 c0.585-0.203,0.703-0.25,1.328-0.604c0.065-0.037,0.151-0.023,0.218,0.017l2.256,1.339c0.082,0.045,0.197,0.045,0.272,0l8.795-5.076 c0.082-0.047,0.134-0.141,0.134-0.238V6.921c0-0.099-0.053-0.192-0.137-0.242l-8.791-5.072c-0.081-0.047-0.189-0.047-0.271,0 L3.075,6.68C2.99,6.729,2.936,6.825,2.936,6.921v10.15c0,0.097,0.054,0.189,0.139,0.235l2.409,1.392 c1.307,0.654,2.108-0.116,2.108-0.89V7.787c0-0.142,0.114-0.253,0.256-0.253h1.115c0.139,0,0.255,0.112,0.255,0.253v10.021 c0,1.745-0.95,2.745-2.604,2.745c-0.508,0-0.909,0-2.026-0.551L2.28,18.675c-0.57-0.329-0.922-0.945-0.922-1.604V6.921 c0-0.659,0.353-1.275,0.922-1.603l8.795-5.082c0.557-0.315,1.296-0.315,1.848,0l8.794,5.082c0.57,0.329,0.924,0.944,0.924,1.603 v10.15c0,0.659-0.354,1.273-0.924,1.604l-8.794,5.078C12.643,23.916,12.324,24,11.998,24z M19.099,13.993 c0-1.9-1.284-2.406-3.987-2.763c-2.731-0.361-3.009-0.548-3.009-1.187c0-0.528,0.235-1.233,2.258-1.233 c1.807,0,2.473,0.389,2.747,1.607c0.024,0.115,0.129,0.199,0.247,0.199h1.141c0.071,0,0.138-0.031,0.186-0.081 c0.048-0.054,0.074-0.123,0.067-0.196c-0.177-2.098-1.571-3.076-4.388-3.076c-2.508,0-4.004,1.058-4.004,2.833 c0,1.925,1.488,2.457,3.895,2.695c2.88,0.282,3.103,0.703,3.103,1.269c0,0.983-0.789,1.402-2.642,1.402 c-2.327,0-2.839-0.584-3.011-1.742c-0.02-0.124-0.126-0.215-0.253-0.215h-1.137c-0.141,0-0.254,0.112-0.254,0.253 c0,1.482,0.806,3.248,4.655,3.248C17.501,17.007,19.099,15.91,19.099,13.993z\" />\n    </svg>\n  `,\n})\nexport class NodejsIconComponent extends IconComponentBase {\n  static readonly slug = 'nodejs';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'nodejs',\n    'node',\n    'javascript',\n    'runtime',\n    'server',\n    'backend',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-notion',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#000000' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M4.459 4.208c.746.606 1.026.56 2.428.466l13.215-.793c.28 0 .047-.28-.046-.327L17.86 1.874c-.42-.326-.981-.7-2.055-.607L3.01 2.146c-.466.046-.56.28-.374.466Zm.793 3.08v13.904c0 .747.373 1.027 1.214.98l14.523-.84c.841-.046.935-.56.935-1.167V6.354c0-.606-.233-.933-.748-.887l-15.177.887c-.56.047-.747.327-.747.933Zm14.337.745c.093.42 0 .84-.42.888l-.7.14v10.264c-.608.327-1.168.514-1.635.514-.748 0-.935-.234-1.495-.933l-4.577-7.186v6.952l1.448.327s0 .84-1.168.84l-3.222.187c-.093-.187 0-.653.327-.746l.84-.234V9.854L7.822 9.76c-.094-.42.14-1.026.793-1.073l3.456-.233 4.764 7.279V9.295l-1.215-.14c-.093-.514.28-.887.747-.933ZM2.69.84 16.041 0c1.635-.14 2.055-.046 3.082.7l4.256 2.986c.7.513.934.654.934 1.213v16.378c0 1.026-.373 1.634-1.681 1.728l-15.504.933c-.98.047-1.448-.094-1.962-.747l-3.129-4.06C.467 18.484.234 17.83.234 17.084V2.846C.234 2.006.607 1.307 2.69.84Z\" />\n    </svg>\n  `,\n})\nexport class NotionIconComponent extends IconComponentBase {\n  static readonly slug = 'notion';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'notion',\n    'notes',\n    'productivity',\n    'workspace',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-npm',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#CB3837' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M0 7.334v8h6.666v1.332H12v-1.332h12v-8H0Zm6.666 6.664H5.334v-4H3.999v4H1.335V8.667h5.331v5.331Zm4 0v1.336H8v-6.667h5.333v5.331h-2.667Zm12.001 0h-1.33v-4h-1.336v4h-1.335v-4h-1.33v4h-2.671V8.667h8.002v5.331ZM10.665 10H12v2.667h-1.335V10Z\" />\n    </svg>\n  `,\n})\nexport class NpmIconComponent extends IconComponentBase {\n  static readonly slug = 'npm';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'npm',\n    'node',\n    'package',\n    'registry',\n    'javascript',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-octagon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon\n        points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\" />\n    </svg>\n  `,\n})\nexport class OctagonIconComponent extends IconComponentBase {\n  static readonly slug = 'octagon';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'octagon',\n    'shape',\n    'stop',\n    'sign',\n    'eight',\n    'octogone',\n    'octágono',\n    'οκτάγωνο',\n    'σχήμα',\n    'ośmiokąt',\n    'kształt',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-package',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"16.5\"\n        y1=\"9.4\"\n        x2=\"7.5\"\n        y2=\"4.21\" />\n      <path\n        d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n      <polyline points=\"3.27 6.96 12 12.01 20.73 6.96\" />\n      <line\n        x1=\"12\"\n        y1=\"22.08\"\n        x2=\"12\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class PackageIconComponent extends IconComponentBase {\n  static readonly slug = 'package';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'package',\n    'box',\n    'parcel',\n    'delivery',\n    'shipping',\n    'paquet',\n    'colis',\n    'paquete',\n    'caja',\n    'πακέτο',\n    'κουτί',\n    'paczka',\n    'pudełko',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-palette',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\" />\n      <circle\n        cx=\"13.5\"\n        cy=\"6.5\"\n        r=\".5\"\n        fill=\"currentColor\" />\n      <circle\n        cx=\"17.5\"\n        cy=\"10.5\"\n        r=\".5\"\n        fill=\"currentColor\" />\n      <circle\n        cx=\"6.5\"\n        cy=\"12.5\"\n        r=\".5\"\n        fill=\"currentColor\" />\n      <circle\n        cx=\"8.5\"\n        cy=\"7.5\"\n        r=\".5\"\n        fill=\"currentColor\" />\n    </svg>\n  `,\n})\nexport class PaletteIconComponent extends IconComponentBase {\n  static readonly slug = 'palette';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'palette',\n    'color',\n    'paint',\n    'theme',\n    'art',\n    'couleur',\n    'peinture',\n    'paleta',\n    'pintura',\n    'παλέτα',\n    'χρώμα',\n    'kolor',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-paperclip',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\" />\n    </svg>\n  `,\n})\nexport class PaperclipIconComponent extends IconComponentBase {\n  static readonly slug = 'paperclip';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'paperclip',\n    'attach',\n    'attachment',\n    'clip',\n    'file',\n    'trombone',\n    'pièce jointe',\n    'clip',\n    'adjunto',\n    'συνδετήρας',\n    'συνημμένο',\n    'spinacz',\n    'załącznik',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pause-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"10\"\n        y1=\"15\"\n        x2=\"10\"\n        y2=\"9\" />\n      <line\n        x1=\"14\"\n        y1=\"15\"\n        x2=\"14\"\n        y2=\"9\" />\n    </svg>\n  `,\n})\nexport class PauseCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'pause-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'pause-circle',\n    'pause',\n    'circle',\n    'stop',\n    'media',\n    'player',\n    'pausa',\n    'παύση',\n    'pauza',\n    'wstrzymaj',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pause',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"6\"\n        y=\"4\"\n        width=\"4\"\n        height=\"16\" />\n      <rect\n        x=\"14\"\n        y=\"4\"\n        width=\"4\"\n        height=\"16\" />\n    </svg>\n  `,\n})\nexport class PauseIconComponent extends IconComponentBase {\n  static readonly slug = 'pause';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'pause',\n    'stop',\n    'media',\n    'player',\n    'wait',\n    'pausa',\n    'παύση',\n    'pauza',\n    'wstrzymaj',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-paypal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M7.076 21.337H2.47a.641.641 0 0 1-.633-.74L4.944 1.186A.641.641 0 0 1 5.577.643h7.46c2.57 0 4.578.543 5.69 1.81 1.01 1.15 1.34 2.825.985 5.118-.027.17-.062.34-.103.518-.69 3.564-3.084 4.788-6.149 4.788H11.93c-.376 0-.696.273-.755.643l-.83 5.25-.302 1.909a.426.426 0 0 1-.42.358H7.076v-1.43Z\"\n        fill=\"#003087\" />\n      <path\n        d=\"M19.612 7.572c-.027.17-.062.34-.103.518-.69 3.564-3.084 4.788-6.149 4.788H11.93c-.376 0-.696.273-.755.643L9.96 21.337l-.302 1.91a.426.426 0 0 0 .42.494h4.158a.561.561 0 0 0 .555-.473l.023-.119.783-4.954.05-.273a.561.561 0 0 1 .555-.473h.349c2.687 0 4.79-1.07 5.405-4.198.257-1.31.123-2.402-.55-3.171a2.628 2.628 0 0 0-.794-.508Z\"\n        fill=\"#0070BA\" />\n      <path\n        d=\"M18.83 7.265a5.485 5.485 0 0 0-.677-.15 8.605 8.605 0 0 0-1.367-.1H10.94a.561.561 0 0 0-.555.474L9.1 15.665l-.038.235a.642.642 0 0 1 .633-.543h1.745c3.065 0 5.46-1.224 6.149-4.788.04-.178.075-.348.103-.518.146-.96.07-1.617-.862-2.286Z\"\n        fill=\"#001C64\" />\n    </svg>\n  `,\n})\nexport class PaypalIconComponent extends IconComponentBase {\n  static readonly slug = 'paypal';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'paypal',\n    'payment',\n    'money',\n    'checkout',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pen-tool',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 19l7-7 3 3-7 7-3-3z\" />\n      <path d=\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\" />\n      <path d=\"M2 2l7.586 7.586\" />\n      <circle\n        cx=\"11\"\n        cy=\"11\"\n        r=\"2\" />\n    </svg>\n  `,\n})\nexport class PenToolIconComponent extends IconComponentBase {\n  static readonly slug = 'pen-tool';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'pen-tool',\n    'pen',\n    'tool',\n    'vector',\n    'draw',\n    'bezier',\n    'design',\n    'stylo',\n    'dessiner',\n    'pluma',\n    'dibujar',\n    'στυλό',\n    'σχέδιο',\n    'pióro',\n    'rysować',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pentagon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"12 2 21.51 8.91 17.88 20.09 6.12 20.09 2.49 8.91\" />\n    </svg>\n  `,\n})\nexport class PentagonIconComponent extends IconComponentBase {\n  static readonly slug = 'pentagon';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'pentagon',\n    'five-sided',\n    'polygon',\n    'shape',\n    'pentagone',\n    'pentágono',\n    'πεντάγωνο',\n    'pięciokąt',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-percent',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"19\"\n        y1=\"5\"\n        x2=\"5\"\n        y2=\"19\" />\n      <circle\n        cx=\"6.5\"\n        cy=\"6.5\"\n        r=\"2.5\" />\n      <circle\n        cx=\"17.5\"\n        cy=\"17.5\"\n        r=\"2.5\" />\n    </svg>\n  `,\n})\nexport class PercentIconComponent extends IconComponentBase {\n  static readonly slug = 'percent';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'percent',\n    'percentage',\n    'discount',\n    'sale',\n    'math',\n    'pourcentage',\n    'porcentaje',\n    'descuento',\n    'ποσοστό',\n    'έκπτωση',\n    'procent',\n    'zniżka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone-call',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />\n    </svg>\n  `,\n})\nexport class PhoneCallIconComponent extends IconComponentBase {\n  static readonly slug = 'phone-call';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone-call',\n    'phone',\n    'call',\n    'telephone',\n    'contact',\n    'dial',\n    'téléphone',\n    'appel',\n    'teléfono',\n    'llamada',\n    'τηλέφωνο',\n    'κλήση',\n    'telefon',\n    'połączenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone-forwarded',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"19 1 23 5 19 9\" />\n      <line\n        x1=\"15\"\n        y1=\"5\"\n        x2=\"23\"\n        y2=\"5\" />\n      <path\n        d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />\n    </svg>\n  `,\n})\nexport class PhoneForwardedIconComponent extends IconComponentBase {\n  static readonly slug = 'phone-forwarded';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone-forwarded',\n    'phone',\n    'forwarded',\n    'call',\n    'redirect',\n    'transfer',\n    'téléphone',\n    'transféré',\n    'teléfono',\n    'desviado',\n    'τηλέφωνο',\n    'προώθηση',\n    'telefon',\n    'przekierowane',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone-incoming',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"16 2 16 8 22 8\" />\n      <line\n        x1=\"23\"\n        y1=\"1\"\n        x2=\"16\"\n        y2=\"8\" />\n      <path\n        d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />\n    </svg>\n  `,\n})\nexport class PhoneIncomingIconComponent extends IconComponentBase {\n  static readonly slug = 'phone-incoming';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone-incoming',\n    'phone',\n    'incoming',\n    'call',\n    'inbound',\n    'received',\n    'téléphone',\n    'entrant',\n    'teléfono',\n    'entrante',\n    'τηλέφωνο',\n    'εισερχόμενη',\n    'telefon',\n    'przychodzące',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone-missed',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"23\"\n        y1=\"1\"\n        x2=\"17\"\n        y2=\"7\" />\n      <line\n        x1=\"17\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"7\" />\n      <path\n        d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />\n    </svg>\n  `,\n})\nexport class PhoneMissedIconComponent extends IconComponentBase {\n  static readonly slug = 'phone-missed';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone-missed',\n    'phone',\n    'missed',\n    'call',\n    'unanswered',\n    'rejected',\n    'téléphone',\n    'manqué',\n    'teléfono',\n    'perdida',\n    'τηλέφωνο',\n    'αναπάντητη',\n    'telefon',\n    'nieodebrane',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\" />\n      <line\n        x1=\"23\"\n        y1=\"1\"\n        x2=\"1\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class PhoneOffIconComponent extends IconComponentBase {\n  static readonly slug = 'phone-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone-off',\n    'phone',\n    'off',\n    'call',\n    'hang up',\n    'end',\n    'disabled',\n    'téléphone',\n    'raccroché',\n    'teléfono',\n    'colgado',\n    'τηλέφωνο',\n    'τερματισμός',\n    'telefon',\n    'rozłączony',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone-outgoing',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"23 7 23 1 17 1\" />\n      <line\n        x1=\"16\"\n        y1=\"8\"\n        x2=\"23\"\n        y2=\"1\" />\n      <path\n        d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />\n    </svg>\n  `,\n})\nexport class PhoneOutgoingIconComponent extends IconComponentBase {\n  static readonly slug = 'phone-outgoing';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone-outgoing',\n    'phone',\n    'outgoing',\n    'call',\n    'outbound',\n    'dial',\n    'téléphone',\n    'sortant',\n    'teléfono',\n    'saliente',\n    'τηλέφωνο',\n    'εξερχόμενη',\n    'telefon',\n    'wychodzące',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-phone',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />\n    </svg>\n  `,\n})\nexport class PhoneIconComponent extends IconComponentBase {\n  static readonly slug = 'phone';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'phone',\n    'call',\n    'telephone',\n    'contact',\n    'mobile',\n    'téléphone',\n    'appel',\n    'teléfono',\n    'llamada',\n    'τηλέφωνο',\n    'κλήση',\n    'telefon',\n    'połączenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-picture-in-picture',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"4\"\n        width=\"18\"\n        height=\"16\"\n        rx=\"2\" />\n      <rect\n        x=\"12\"\n        y=\"12\"\n        width=\"6\"\n        height=\"5\"\n        rx=\"1\" />\n    </svg>\n  `,\n})\nexport class PictureInPictureIconComponent extends IconComponentBase {\n  static readonly slug = 'picture-in-picture';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'picture in picture',\n    'pip',\n    'floating player',\n    'overlay',\n    'mini player',\n    'incrustation',\n    'imagen en imagen',\n    'εικόνα σε εικόνα',\n    'obraz w obrazie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pie-chart',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21.21 15.89A10 10 0 1 1 8 2.83\" />\n      <path d=\"M22 12A10 10 0 0 0 12 2v10z\" />\n    </svg>\n  `,\n})\nexport class PieChartIconComponent extends IconComponentBase {\n  static readonly slug = 'pie-chart';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'pie-chart',\n    'pie',\n    'chart',\n    'graph',\n    'statistics',\n    'analytics',\n    'circulaire',\n    'gráfico',\n    'circular',\n    'γράφημα',\n    'πίτα',\n    'wykres',\n    'kołowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pin',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 17v5\" />\n      <path\n        d=\"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z\" />\n    </svg>\n  `,\n})\nexport class PinIconComponent extends IconComponentBase {\n  static readonly slug = 'pin';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'pin',\n    'pushpin',\n    'tack',\n    'attach',\n    'save',\n    'épingle',\n    'punaise',\n    'chincheta',\n    'alfiler',\n    'καρφίτσα',\n    'pinezka',\n    'przypnij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pinterest',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#BD081C' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z\" />\n    </svg>\n  `,\n})\nexport class PinterestIconComponent extends IconComponentBase {\n  static readonly slug = 'pinterest';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'pinterest',\n    'social',\n    'pin',\n    'board',\n    'inspiration',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-play-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <polygon points=\"10 8 16 12 10 16 10 8\" />\n    </svg>\n  `,\n})\nexport class PlayCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'play-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'play-circle',\n    'play',\n    'circle',\n    'start',\n    'media',\n    'video',\n    'lecture',\n    'reproducir',\n    'αναπαραγωγή',\n    'odtwórz',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-play',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"5 3 19 12 5 21 5 3\" />\n    </svg>\n  `,\n})\nexport class PlayIconComponent extends IconComponentBase {\n  static readonly slug = 'play';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'play',\n    'start',\n    'media',\n    'player',\n    'video',\n    'lecture',\n    'reproducir',\n    'iniciar',\n    'αναπαραγωγή',\n    'παίξε',\n    'odtwórz',\n    'graj',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-playlist',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"3\"\n        y1=\"6\"\n        x2=\"15\"\n        y2=\"6\" />\n      <line\n        x1=\"3\"\n        y1=\"11\"\n        x2=\"15\"\n        y2=\"11\" />\n      <line\n        x1=\"3\"\n        y1=\"16\"\n        x2=\"10\"\n        y2=\"16\" />\n      <polygon points=\"14 14 20 17 14 20\" />\n    </svg>\n  `,\n})\nexport class PlaylistIconComponent extends IconComponentBase {\n  static readonly slug = 'playlist';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'playlist',\n    'queue',\n    'tracks',\n    'up next',\n    'sequence',\n    'liste de lecture',\n    'lista de reproducción',\n    'λίστα αναπαραγωγής',\n    'playlista',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-plug',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 22v-5\" />\n      <path d=\"M15 8V2\" />\n      <path d=\"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z\" />\n      <path d=\"M9 8V2\" />\n    </svg>\n  `,\n})\nexport class PlugIconComponent extends IconComponentBase {\n  static readonly slug = 'plug';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'plug',\n    'power',\n    'outlet',\n    'connect',\n    'electricity',\n    'prise',\n    'brancher',\n    'enchufe',\n    'conectar',\n    'πρίζα',\n    'wtyczka',\n    'zasilanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-plus-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"16\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class PlusCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'plus-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'plus-circle',\n    'plus',\n    'circle',\n    'add',\n    'new',\n    'create',\n    'ajouter',\n    'añadir',\n    'agregar',\n    'συν',\n    'προσθήκη',\n    'dodaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-plus-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"16\" />\n      <line\n        x1=\"8\"\n        y1=\"12\"\n        x2=\"16\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class PlusSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'plus-square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'plus-square',\n    'plus',\n    'square',\n    'add',\n    'new',\n    'create',\n    'ajouter',\n    'añadir',\n    'agregar',\n    'συν',\n    'προσθήκη',\n    'dodaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-pocket',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\" />\n      <polyline points=\"8 10 12 14 16 10\" />\n    </svg>\n  `,\n})\nexport class PocketIconComponent extends IconComponentBase {\n  static readonly slug = 'pocket';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'pocket',\n    'save',\n    'read',\n    'later',\n    'bookmark',\n    'poche',\n    'bolsillo',\n    'τσέπη',\n    'kieszeń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-power',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M18.36 6.64a9 9 0 1 1-12.73 0\" />\n      <line\n        x1=\"12\"\n        y1=\"2\"\n        x2=\"12\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class PowerIconComponent extends IconComponentBase {\n  static readonly slug = 'power';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'power',\n    'on',\n    'off',\n    'shutdown',\n    'energy',\n    'switch',\n    'alimentation',\n    'encender',\n    'apagar',\n    'τροφοδοσία',\n    'ενέργεια',\n    'zasilanie',\n    'włącz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-printer',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"6 9 6 2 18 2 18 9\" />\n      <path\n        d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\" />\n      <rect\n        x=\"6\"\n        y=\"14\"\n        width=\"12\"\n        height=\"8\" />\n    </svg>\n  `,\n})\nexport class PrinterIconComponent extends IconComponentBase {\n  static readonly slug = 'printer';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'printer',\n    'print',\n    'document',\n    'paper',\n    'office',\n    'imprimante',\n    'imprimir',\n    'impresora',\n    'εκτυπωτής',\n    'εκτύπωση',\n    'drukarka',\n    'drukuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-python',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#3776AB' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" />\n    </svg>\n  `,\n})\nexport class PythonIconComponent extends IconComponentBase {\n  static readonly slug = 'python';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'python',\n    'language',\n    'programming',\n    'code',\n    'script',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-qr-code',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        width=\"5\"\n        height=\"5\"\n        x=\"3\"\n        y=\"3\"\n        rx=\"1\" />\n      <rect\n        width=\"5\"\n        height=\"5\"\n        x=\"16\"\n        y=\"3\"\n        rx=\"1\" />\n      <rect\n        width=\"5\"\n        height=\"5\"\n        x=\"3\"\n        y=\"16\"\n        rx=\"1\" />\n      <path d=\"M21 16h-3a2 2 0 0 0-2 2v3\" />\n      <path d=\"M21 21v.01\" />\n      <path d=\"M12 7v3a2 2 0 0 1-2 2H7\" />\n      <path d=\"M3 12h.01\" />\n      <path d=\"M12 3h.01\" />\n      <path d=\"M12 16v.01\" />\n      <path d=\"M16 12h1\" />\n      <path d=\"M21 12v.01\" />\n      <path d=\"M12 21v-1\" />\n    </svg>\n  `,\n})\nexport class QrCodeIconComponent extends IconComponentBase {\n  static readonly slug = 'qr-code';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'qr-code',\n    'qr',\n    'code',\n    'scan',\n    'barcode',\n    'código',\n    'κωδικός',\n    'kod',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-question-exclamation-mark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M4.5 8.5a2.5 2.5 0 1 1 3.7 2.2c-.9.6-1.2 1.2-1.2 2.5\" />\n      <path d=\"M7 17.5h.01\" />\n      <path d=\"M17 6v7.5\" />\n      <path d=\"M17 17.5h.01\" />\n    </svg>\n  `,\n})\nexport class QuestionExclamationMarkIconComponent extends IconComponentBase {\n  static readonly slug = 'question-exclamation-mark';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'question exclamation mark',\n    'interrobang',\n    'dubious',\n    'surprise',\n    'chess',\n    'point d’interrogation et d’exclamation',\n    'signos de interrogación y exclamación',\n    'ερωτηματικό και θαυμαστικό',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-question-mark',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8.5 8.5a3.5 3.5 0 1 1 5.2 3.1c-1.3.8-1.7 1.6-1.7 3.4\" />\n      <path d=\"M12 19.5h.01\" />\n    </svg>\n  `,\n})\nexport class QuestionMarkIconComponent extends IconComponentBase {\n  static readonly slug = 'question-mark';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'question mark',\n    'question',\n    'query',\n    'unknown',\n    'mistake',\n    'chess',\n    'point d’interrogation',\n    'signo de interrogación',\n    'ερωτηματικό',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-radio',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"2\" />\n      <path\n        d=\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\" />\n    </svg>\n  `,\n})\nexport class RadioIconComponent extends IconComponentBase {\n  static readonly slug = 'radio';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'radio',\n    'broadcast',\n    'wireless',\n    'signal',\n    'music',\n    'señal',\n    'ραδιόφωνο',\n    'σήμα',\n    'radio',\n    'sygnał',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-react',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#61DAFB' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z\" />\n    </svg>\n  `,\n})\nexport class ReactIconComponent extends IconComponentBase {\n  static readonly slug = 'react';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'react',\n    'reactjs',\n    'javascript',\n    'framework',\n    'library',\n    'frontend',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-receipt',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 17V7\" />\n      <path d=\"M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8\" />\n      <path\n        d=\"M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z\" />\n    </svg>\n  `,\n})\nexport class ReceiptIconComponent extends IconComponentBase {\n  static readonly slug = 'receipt';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'receipt',\n    'invoice',\n    'bill',\n    'payment',\n    'reçu',\n    'recibo',\n    'απόδειξη',\n    'paragon',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-record',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"9\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"4.5\"\n        fill=\"currentColor\"\n        stroke=\"none\" />\n    </svg>\n  `,\n})\nexport class RecordIconComponent extends IconComponentBase {\n  static readonly slug = 'record';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'record',\n    'capture',\n    'rec',\n    'take',\n    'shoot',\n    'enregistrer',\n    'grabar',\n    'εγγραφή',\n    'nagrywanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rectangle-horizontal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"6\"\n        width=\"20\"\n        height=\"12\"\n        rx=\"2\"\n        ry=\"2\" />\n    </svg>\n  `,\n})\nexport class RectangleHorizontalIconComponent extends IconComponentBase {\n  static readonly slug = 'rectangle-horizontal';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'rectangle-horizontal',\n    'rectangle',\n    'horizontal',\n    'landscape',\n    'shape',\n    'paysage',\n    'horizontal',\n    'apaisado',\n    'οριζόντιο',\n    'ορθογώνιο',\n    'prostokąt',\n    'poziomy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rectangle-vertical',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"6\"\n        y=\"2\"\n        width=\"12\"\n        height=\"20\"\n        rx=\"2\"\n        ry=\"2\" />\n    </svg>\n  `,\n})\nexport class RectangleVerticalIconComponent extends IconComponentBase {\n  static readonly slug = 'rectangle-vertical';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'rectangle-vertical',\n    'rectangle',\n    'vertical',\n    'portrait',\n    'shape',\n    'portrait',\n    'vertical',\n    'κατακόρυφο',\n    'ορθογώνιο',\n    'prostokąt',\n    'pionowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-reddit',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#FF4500' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 0a12 12 0 1 0 12 12A12 12 0 0 0 12 0Zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.974 0 1.764.79 1.764 1.764 0 .715-.423 1.33-1.035 1.612a3.32 3.32 0 0 1 .045.516c0 2.652-3.086 4.802-6.888 4.802-3.803 0-6.889-2.15-6.889-4.802 0-.176.016-.348.045-.516a1.77 1.77 0 0 1-1.035-1.612c0-.974.79-1.764 1.764-1.764.477 0 .898.182 1.207.49 1.207-.868 2.88-1.43 4.728-1.487l.898-4.21a.342.342 0 0 1 .42-.255l2.922.617a1.25 1.25 0 0 1 1.118-.694Zm-8.626 7.844a1.249 1.249 0 0 0 0 2.498 1.249 1.249 0 0 0 0-2.498Zm7.232 0a1.249 1.249 0 1 0 0 2.498 1.249 1.249 0 0 0 0-2.498Zm-3.62 5.226c-1.146 0-2.222-.04-3.319.097a.252.252 0 0 0-.169.353c.477.892 1.797 1.519 3.488 1.519 1.69 0 3.01-.627 3.488-1.519a.249.249 0 0 0-.166-.355c-1.097-.135-2.176-.095-3.322-.095Z\" />\n    </svg>\n  `,\n})\nexport class RedditIconComponent extends IconComponentBase {\n  static readonly slug = 'reddit';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'reddit',\n    'social',\n    'forum',\n    'community',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-redo',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 7v6h-6\" />\n      <path d=\"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7\" />\n    </svg>\n  `,\n})\nexport class RedoIconComponent extends IconComponentBase {\n  static readonly slug = 'redo';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'redo',\n    'forward',\n    'repeat',\n    'history',\n    'rétablir',\n    'rehacer',\n    'επανάληψη',\n    'ponów',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-refresh-ccw',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"1 4 1 10 7 10\" />\n      <polyline points=\"23 20 23 14 17 14\" />\n      <path d=\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\" />\n    </svg>\n  `,\n})\nexport class RefreshCcwIconComponent extends IconComponentBase {\n  static readonly slug = 'refresh-ccw';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'refresh-ccw',\n    'refresh',\n    'ccw',\n    'reload',\n    'sync',\n    'update',\n    'rotate',\n    'actualiser',\n    'actualizar',\n    'recargar',\n    'ανανέωση',\n    'odśwież',\n    'załaduj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-refresh-cw',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"23 4 23 10 17 10\" />\n      <polyline points=\"1 20 1 14 7 14\" />\n      <path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\" />\n    </svg>\n  `,\n})\nexport class RefreshCwIconComponent extends IconComponentBase {\n  static readonly slug = 'refresh-cw';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'refresh-cw',\n    'refresh',\n    'cw',\n    'reload',\n    'sync',\n    'update',\n    'rotate',\n    'actualiser',\n    'actualizar',\n    'recargar',\n    'ανανέωση',\n    'odśwież',\n    'załaduj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-repeat',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"17 1 21 5 17 9\" />\n      <path d=\"M3 11V9a4 4 0 0 1 4-4h14\" />\n      <polyline points=\"7 23 3 19 7 15\" />\n      <path d=\"M21 13v2a4 4 0 0 1-4 4H3\" />\n    </svg>\n  `,\n})\nexport class RepeatIconComponent extends IconComponentBase {\n  static readonly slug = 'repeat';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'repeat',\n    'loop',\n    'cycle',\n    'replay',\n    'again',\n    'répéter',\n    'repetir',\n    'επανάληψη',\n    'powtórz',\n    'powtarzaj',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rewind',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"11 19 2 12 11 5 11 19\" />\n      <polygon points=\"22 19 13 12 22 5 22 19\" />\n    </svg>\n  `,\n})\nexport class RewindIconComponent extends IconComponentBase {\n  static readonly slug = 'rewind';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'rewind',\n    'back',\n    'reverse',\n    'media',\n    'player',\n    'retour',\n    'rebobinar',\n    'πίσω',\n    'cofnij',\n    'przewiń',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-right-half-star',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 2 L15.09 8.26 L22 9.27 L17 14.14 L18.18 21.02 L12 17.77 Z\" />\n    </svg>\n  `,\n})\nexport class RightHalfStarIconComponent extends IconComponentBase {\n  static readonly slug = 'right-half-star';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'right-half-star',\n    'half-star',\n    'half',\n    'right',\n    'partial',\n    'rating',\n    'star',\n    'shape',\n    'demi-étoile',\n    'demi',\n    'droite',\n    'media-estrella',\n    'media',\n    'derecha',\n    'μισό-αστέρι',\n    'μισό',\n    'δεξιά',\n    'pół-gwiazdy',\n    'pół',\n    'prawa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rocket',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" />\n      <path\n        d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09\" />\n      <path\n        d=\"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z\" />\n      <path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05\" />\n    </svg>\n  `,\n})\nexport class RocketIconComponent extends IconComponentBase {\n  static readonly slug = 'rocket';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'rocket',\n    'launch',\n    'startup',\n    'space',\n    'boost',\n    'fusée',\n    'cohete',\n    'πύραυλος',\n    'rakieta',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rotate-ccw-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M20 9V7a2 2 0 0 0-2-2h-6\" />\n      <path d=\"m15 2-3 3 3 3\" />\n      <path d=\"M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2\" />\n    </svg>\n  `,\n})\nexport class RotateCcwSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'rotate-ccw-square';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'rotate-ccw-square',\n    'rotate',\n    'square',\n    'ccw',\n    'counterclockwise',\n    'turn',\n    'image',\n    'photo',\n    'tourner',\n    'girar',\n    'περιστροφή',\n    'obróć',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rotate-cw',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"23 4 23 10 17 10\" />\n      <path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\" />\n    </svg>\n  `,\n})\nexport class RotateCwIconComponent extends IconComponentBase {\n  static readonly slug = 'rotate-cw';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'rotate-cw',\n    'rotate',\n    'cw',\n    'clockwise',\n    'redo',\n    'turn',\n    'tourner',\n    'girar',\n    'περιστροφή',\n    'obróć',\n    'ponów',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rows',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <path d=\"M3 12h18\" />\n    </svg>\n  `,\n})\nexport class RowsIconComponent extends IconComponentBase {\n  static readonly slug = 'rows';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'rows',\n    'layout',\n    'stack',\n    'split',\n    'panels',\n    'list view',\n    'rangées',\n    'filas',\n    'σειρές',\n    'wiersze',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-rss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M4 11a9 9 0 0 1 9 9\" />\n      <path d=\"M4 4a16 16 0 0 1 16 16\" />\n      <circle\n        cx=\"5\"\n        cy=\"19\"\n        r=\"1\" />\n    </svg>\n  `,\n})\nexport class RssIconComponent extends IconComponentBase {\n  static readonly slug = 'rss';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'rss',\n    'feed',\n    'subscribe',\n    'news',\n    'syndication',\n    'flux',\n    'noticias',\n    'τροφοδοσία',\n    'kanał',\n    'subskrybuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-save',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\" />\n      <polyline points=\"17 21 17 13 7 13 7 21\" />\n      <polyline points=\"7 3 7 8 15 8\" />\n    </svg>\n  `,\n})\nexport class SaveIconComponent extends IconComponentBase {\n  static readonly slug = 'save';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'save',\n    'disk',\n    'store',\n    'floppy',\n    'download',\n    'enregistrer',\n    'guardar',\n    'almacenar',\n    'αποθήκευση',\n    'zapisz',\n    'dysk',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-scan',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M3 7V5a2 2 0 0 1 2-2h2\" />\n      <path d=\"M17 3h2a2 2 0 0 1 2 2v2\" />\n      <path d=\"M21 17v2a2 2 0 0 1-2 2h-2\" />\n      <path d=\"M7 21H5a2 2 0 0 1-2-2v-2\" />\n    </svg>\n  `,\n})\nexport class ScanIconComponent extends IconComponentBase {\n  static readonly slug = 'scan';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'scan',\n    'scanner',\n    'frame',\n    'focus',\n    'escanear',\n    'σάρωση',\n    'skanowanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-scissors',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"6\"\n        cy=\"6\"\n        r=\"3\" />\n      <circle\n        cx=\"6\"\n        cy=\"18\"\n        r=\"3\" />\n      <line\n        x1=\"20\"\n        y1=\"4\"\n        x2=\"8.12\"\n        y2=\"15.88\" />\n      <line\n        x1=\"14.47\"\n        y1=\"14.48\"\n        x2=\"20\"\n        y2=\"20\" />\n      <line\n        x1=\"8.12\"\n        y1=\"8.12\"\n        x2=\"12\"\n        y2=\"12\" />\n    </svg>\n  `,\n})\nexport class ScissorsIconComponent extends IconComponentBase {\n  static readonly slug = 'scissors';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'scissors',\n    'cut',\n    'snip',\n    'clip',\n    'shears',\n    'ciseaux',\n    'couper',\n    'tijeras',\n    'cortar',\n    'ψαλίδι',\n    'κοπή',\n    'nożyczki',\n    'tnij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-second-place-medal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"7.5 6.21 6.5 1 17.5 1 16.5 6.21\" />\n      <circle\n        cx=\"12\"\n        cy=\"14\"\n        r=\"9\" />\n      <path d=\"M14 18h-4c0-2 4-4 4-6s-2-3-4-2\" />\n    </svg>\n  `,\n})\nexport class SecondPlaceMedalIconComponent extends IconComponentBase {\n  static readonly slug = 'second-place-medal';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'medal',\n    'second place',\n    'silver',\n    'runner-up',\n    'rank',\n    'podium',\n    'award',\n    'médaille',\n    'argent',\n    'deuxième place',\n    'medalla',\n    'plata',\n    'segundo lugar',\n    'μετάλλιο',\n    'ασημένιο',\n    'δεύτερη θέση',\n    'srebro',\n    'drugie miejsce',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-send',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"22\"\n        y1=\"2\"\n        x2=\"11\"\n        y2=\"13\" />\n      <polygon points=\"22 2 15 22 11 13 2 9 22 2\" />\n    </svg>\n  `,\n})\nexport class SendIconComponent extends IconComponentBase {\n  static readonly slug = 'send';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'send',\n    'submit',\n    'message',\n    'plane',\n    'mail',\n    'envoyer',\n    'enviar',\n    'αποστολή',\n    'στείλε',\n    'wyślij',\n    'nadaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-server',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"2\"\n        width=\"20\"\n        height=\"8\"\n        rx=\"2\"\n        ry=\"2\" />\n      <rect\n        x=\"2\"\n        y=\"14\"\n        width=\"20\"\n        height=\"8\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"6\"\n        y1=\"6\"\n        x2=\"6.01\"\n        y2=\"6\" />\n      <line\n        x1=\"6\"\n        y1=\"18\"\n        x2=\"6.01\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class ServerIconComponent extends IconComponentBase {\n  static readonly slug = 'server';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'server',\n    'database',\n    'host',\n    'hardware',\n    'cloud',\n    'serveur',\n    'servidor',\n    'διακομιστής',\n    'εξυπηρετητής',\n    'serwer',\n    'host',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-settings',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"3\" />\n      <path\n        d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n    </svg>\n  `,\n})\nexport class SettingsIconComponent extends IconComponentBase {\n  static readonly slug = 'settings';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'settings',\n    'gear',\n    'cog',\n    'preferences',\n    'config',\n    'options',\n    'paramètres',\n    'réglages',\n    'ajustes',\n    'configuración',\n    'ρυθμίσεις',\n    'παράμετροι',\n    'ustawienia',\n    'opcje',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-share',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"18\"\n        cy=\"5\"\n        r=\"3\" />\n      <circle\n        cx=\"6\"\n        cy=\"12\"\n        r=\"3\" />\n      <circle\n        cx=\"18\"\n        cy=\"19\"\n        r=\"3\" />\n      <line\n        x1=\"8.59\"\n        y1=\"13.51\"\n        x2=\"15.42\"\n        y2=\"17.49\" />\n      <line\n        x1=\"15.41\"\n        y1=\"6.51\"\n        x2=\"8.59\"\n        y2=\"10.49\" />\n    </svg>\n  `,\n})\nexport class ShareIconComponent extends IconComponentBase {\n  static readonly slug = 'share';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'share',\n    'send',\n    'network',\n    'social',\n    'export',\n    'partager',\n    'compartir',\n    'κοινοποίηση',\n    'μοιραστείτε',\n    'udostępnij',\n    'wyślij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shield-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\" />\n      <path d=\"m9 12 2 2 4-4\" />\n    </svg>\n  `,\n})\nexport class ShieldCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'shield-check';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'shield-check',\n    'shield',\n    'security',\n    'protected',\n    'safe',\n    'bouclier',\n    'escudo',\n    'ασπίδα',\n    'tarcza',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shield-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\" />\n      <path d=\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\" />\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class ShieldOffIconComponent extends IconComponentBase {\n  static readonly slug = 'shield-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'shield-off',\n    'shield',\n    'off',\n    'unprotected',\n    'unsafe',\n    'disabled',\n    'bouclier',\n    'escudo',\n    'ασπίδα',\n    'tarcza',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shield',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" />\n    </svg>\n  `,\n})\nexport class ShieldIconComponent extends IconComponentBase {\n  static readonly slug = 'shield';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'shield',\n    'security',\n    'protect',\n    'safe',\n    'guard',\n    'bouclier',\n    'protection',\n    'escudo',\n    'seguridad',\n    'ασπίδα',\n    'προστασία',\n    'tarcza',\n    'ochrona',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shopify',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#7AB55C' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M15.337 23.979l7.216-1.561s-2.604-17.613-2.625-17.73c-.018-.116-.114-.192-.211-.192s-1.929-.136-1.929-.136-1.275-1.274-1.439-1.411c-.045-.037-.075-.057-.121-.074l-.914 21.104h.023zM11.71 11.305s-.81-.424-1.774-.424c-1.447 0-1.504.906-1.504 1.141 0 1.232 3.24 1.715 3.24 4.629 0 2.295-1.44 3.76-3.406 3.76-2.354 0-3.54-1.465-3.54-1.465l.646-2.086s1.245 1.066 2.28 1.066c.675 0 .975-.545.975-.932 0-1.619-2.654-1.694-2.654-4.359-.034-2.237 1.571-4.416 4.827-4.416 1.257 0 1.875.361 1.875.361l-.945 2.715-.02.01zM11.17.83c.136 0 .271.038.405.135-.984.465-2.064 1.639-2.508 3.992-.656.213-1.293.405-1.889.578C7.697 3.75 8.951.84 11.17.84V.83zm1.235 2.949v.135c-.754.232-1.583.484-2.394.736.466-1.777 1.333-2.645 2.085-2.971.193.501.309 1.176.309 2.1zm.539-2.234c.694.074 1.141.867 1.429 1.755-.349.114-.735.231-1.158.366v-.252c0-.752-.096-1.371-.271-1.871v.002zm2.992 1.289c-.02 0-.06.021-.078.021s-.289.075-.714.21c-.423-1.233-1.176-2.37-2.508-2.37h-.115C12.135.209 11.669 0 11.265 0 8.159 0 6.675 3.877 6.21 5.846c-1.194.365-2.063.636-2.16.674-.675.213-.694.232-.772.87-.075.462-1.83 14.063-1.83 14.063L15.009 24l.927-21.166z\" />\n    </svg>\n  `,\n})\nexport class ShopifyIconComponent extends IconComponentBase {\n  static readonly slug = 'shopify';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'shopify',\n    'ecommerce',\n    'store',\n    'commerce',\n    'shop',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shopping-bag',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\" />\n      <line\n        x1=\"3\"\n        y1=\"6\"\n        x2=\"21\"\n        y2=\"6\" />\n      <path d=\"M16 10a4 4 0 0 1-8 0\" />\n    </svg>\n  `,\n})\nexport class ShoppingBagIconComponent extends IconComponentBase {\n  static readonly slug = 'shopping-bag';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'shopping-bag',\n    'shopping',\n    'bag',\n    'store',\n    'purchase',\n    'buy',\n    'sac',\n    'achats',\n    'bolsa',\n    'compras',\n    'τσάντα',\n    'αγορές',\n    'torba',\n    'zakupy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shopping-cart',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"9\"\n        cy=\"21\"\n        r=\"1\" />\n      <circle\n        cx=\"20\"\n        cy=\"21\"\n        r=\"1\" />\n      <path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\" />\n    </svg>\n  `,\n})\nexport class ShoppingCartIconComponent extends IconComponentBase {\n  static readonly slug = 'shopping-cart';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'shopping-cart',\n    'shopping',\n    'cart',\n    'store',\n    'checkout',\n    'buy',\n    'panier',\n    'caddie',\n    'carrito',\n    'compras',\n    'καλάθι',\n    'αγορές',\n    'koszyk',\n    'zakupy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-shuffle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"16 3 21 3 21 8\" />\n      <line\n        x1=\"4\"\n        y1=\"20\"\n        x2=\"21\"\n        y2=\"3\" />\n      <polyline points=\"21 16 21 21 16 21\" />\n      <line\n        x1=\"15\"\n        y1=\"15\"\n        x2=\"21\"\n        y2=\"21\" />\n      <line\n        x1=\"4\"\n        y1=\"4\"\n        x2=\"9\"\n        y2=\"9\" />\n    </svg>\n  `,\n})\nexport class ShuffleIconComponent extends IconComponentBase {\n  static readonly slug = 'shuffle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'shuffle',\n    'random',\n    'mix',\n    'media',\n    'aléatoire',\n    'aleatorio',\n    'mezclar',\n    'τυχαία',\n    'ανακάτεμα',\n    'losowo',\n    'tasuj',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-sidebar',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"9\"\n        y1=\"3\"\n        x2=\"9\"\n        y2=\"21\" />\n    </svg>\n  `,\n})\nexport class SidebarIconComponent extends IconComponentBase {\n  static readonly slug = 'sidebar';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'sidebar',\n    'panel',\n    'navigation',\n    'layout',\n    'menu',\n    'barre latérale',\n    'panneau',\n    'barra lateral',\n    'panel',\n    'πλευρική μπάρα',\n    'panel boczny',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-skip-back',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"19 20 9 12 19 4 19 20\" />\n      <line\n        x1=\"5\"\n        y1=\"19\"\n        x2=\"5\"\n        y2=\"5\" />\n    </svg>\n  `,\n})\nexport class SkipBackIconComponent extends IconComponentBase {\n  static readonly slug = 'skip-back';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'skip-back',\n    'skip',\n    'back',\n    'previous',\n    'media',\n    'player',\n    'précédent',\n    'anterior',\n    'προηγούμενο',\n    'poprzedni',\n    'cofnij',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-skip-forward',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"5 4 15 12 5 20 5 4\" />\n      <line\n        x1=\"19\"\n        y1=\"5\"\n        x2=\"19\"\n        y2=\"19\" />\n    </svg>\n  `,\n})\nexport class SkipForwardIconComponent extends IconComponentBase {\n  static readonly slug = 'skip-forward';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'skip-forward',\n    'skip',\n    'forward',\n    'next',\n    'media',\n    'player',\n    'suivant',\n    'siguiente',\n    'επόμενο',\n    'następny',\n    'do przodu',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Slack brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-slack>` / `SlackIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-slack-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52ZM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313Z\"\n        fill=\"#E01E5A\" />\n      <path\n        d=\"M8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834ZM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312Z\"\n        fill=\"#36C5F0\" />\n      <path\n        d=\"M18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522v-2.521ZM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312Z\"\n        fill=\"#2EB67D\" />\n      <path\n        d=\"M15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52ZM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313Z\"\n        fill=\"#ECB22E\" />\n    </svg>\n  `,\n})\nexport class Slack2IconComponent extends IconComponentBase {\n  static readonly slug = 'slack-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'slack-2',\n    'slack',\n    'chat',\n    'messaging',\n    'workspace',\n    'team',\n    'mark',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Slack icon (Feather outline).\n *\n * @remarks\n * The brand-filled Slack mark lives at `<ea-icon-slack-2>` /\n * `Slack2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-slack',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\" />\n      <path d=\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\" />\n      <path\n        d=\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\" />\n      <path d=\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\" />\n      <path\n        d=\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\" />\n      <path d=\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\" />\n      <path\n        d=\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\" />\n      <path d=\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\" />\n    </svg>\n  `,\n})\nexport class SlackIconComponent extends IconComponentBase {\n  static readonly slug = 'slack';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'slack',\n    'chat',\n    'messaging',\n    'workspace',\n    'team',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-slash',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"4.93\"\n        y1=\"4.93\"\n        x2=\"19.07\"\n        y2=\"19.07\" />\n    </svg>\n  `,\n})\nexport class SlashIconComponent extends IconComponentBase {\n  static readonly slug = 'slash';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'slash',\n    'cancel',\n    'forbidden',\n    'no',\n    'disabled',\n    'barre',\n    'barra',\n    'πλάγια',\n    'ukośnik',\n    'zakaz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-sliders',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"4\"\n        y1=\"21\"\n        x2=\"4\"\n        y2=\"14\" />\n      <line\n        x1=\"4\"\n        y1=\"10\"\n        x2=\"4\"\n        y2=\"3\" />\n      <line\n        x1=\"12\"\n        y1=\"21\"\n        x2=\"12\"\n        y2=\"12\" />\n      <line\n        x1=\"12\"\n        y1=\"8\"\n        x2=\"12\"\n        y2=\"3\" />\n      <line\n        x1=\"20\"\n        y1=\"21\"\n        x2=\"20\"\n        y2=\"16\" />\n      <line\n        x1=\"20\"\n        y1=\"12\"\n        x2=\"20\"\n        y2=\"3\" />\n      <line\n        x1=\"1\"\n        y1=\"14\"\n        x2=\"7\"\n        y2=\"14\" />\n      <line\n        x1=\"9\"\n        y1=\"8\"\n        x2=\"15\"\n        y2=\"8\" />\n      <line\n        x1=\"17\"\n        y1=\"16\"\n        x2=\"23\"\n        y2=\"16\" />\n    </svg>\n  `,\n})\nexport class SlidersIconComponent extends IconComponentBase {\n  static readonly slug = 'sliders';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'sliders',\n    'controls',\n    'settings',\n    'adjust',\n    'mixer',\n    'equalizer',\n    'curseurs',\n    'réglages',\n    'controles',\n    'ajustes',\n    'ρυθμιστικά',\n    'έλεγχοι',\n    'suwaki',\n    'regulacja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-smartphone',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"5\"\n        y=\"2\"\n        width=\"14\"\n        height=\"20\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"12\"\n        y1=\"18\"\n        x2=\"12.01\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class SmartphoneIconComponent extends IconComponentBase {\n  static readonly slug = 'smartphone';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'smartphone',\n    'phone',\n    'mobile',\n    'device',\n    'cell',\n    'téléphone',\n    'móvil',\n    'celular',\n    'κινητό',\n    'συσκευή',\n    'smartfon',\n    'komórka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-smile',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <path d=\"M8 14s1.5 2 4 2 4-2 4-2\" />\n      <line\n        x1=\"9\"\n        y1=\"9\"\n        x2=\"9.01\"\n        y2=\"9\" />\n      <line\n        x1=\"15\"\n        y1=\"9\"\n        x2=\"15.01\"\n        y2=\"9\" />\n    </svg>\n  `,\n})\nexport class SmileIconComponent extends IconComponentBase {\n  static readonly slug = 'smile';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'smile',\n    'happy',\n    'face',\n    'emoji',\n    'positive',\n    'sourire',\n    'visage',\n    'sonrisa',\n    'feliz',\n    'cara',\n    'χαμόγελο',\n    'χαρούμενος',\n    'uśmiech',\n    'twarz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-snowflake',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"m10 20-1.25-2.5L6 18\" />\n      <path d=\"M10 4 8.75 6.5 6 6\" />\n      <path d=\"m14 20 1.25-2.5L18 18\" />\n      <path d=\"m14 4 1.25 2.5L18 6\" />\n      <path d=\"m17 21-3-6h-4\" />\n      <path d=\"m17 3-3 6 1.5 3\" />\n      <path d=\"M2 12h6.5L10 9\" />\n      <path d=\"m20 10-1.5 2 1.5 2\" />\n      <path d=\"M22 12h-6.5L14 15\" />\n      <path d=\"m4 10 1.5 2L4 14\" />\n      <path d=\"m7 21 3-6-1.5-3\" />\n      <path d=\"m7 3 3 6h4\" />\n    </svg>\n  `,\n})\nexport class SnowflakeIconComponent extends IconComponentBase {\n  static readonly slug = 'snowflake';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'snowflake',\n    'snow',\n    'winter',\n    'cold',\n    'frost',\n    'flocon',\n    'copo',\n    'νιφάδα',\n    'płatek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-soccer-ball',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon\n        points=\"12 2 17.88 3.91 21.51 8.91 21.51 15.09 17.88 20.09 12 22 6.12 20.09 2.49 15.09 2.49 8.91 6.12 3.91\" />\n      <polygon points=\"12 7 16.755 10.455 14.939 16.045 9.061 16.045 7.245 10.455\" />\n      <line\n        x1=\"12\"\n        y1=\"7\"\n        x2=\"12\"\n        y2=\"3\" />\n      <line\n        x1=\"16.755\"\n        y1=\"10.455\"\n        x2=\"20.56\"\n        y2=\"9.22\" />\n      <line\n        x1=\"14.939\"\n        y1=\"16.045\"\n        x2=\"17.29\"\n        y2=\"19.28\" />\n      <line\n        x1=\"9.061\"\n        y1=\"16.045\"\n        x2=\"6.71\"\n        y2=\"19.28\" />\n      <line\n        x1=\"7.245\"\n        y1=\"10.455\"\n        x2=\"3.44\"\n        y2=\"9.22\" />\n    </svg>\n  `,\n})\nexport class SoccerBallIconComponent extends IconComponentBase {\n  static readonly slug = 'soccer-ball';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'soccer-ball',\n    'soccer',\n    'ball',\n    'football',\n    'sport',\n    'futbol',\n    'fútbol',\n    'pelota',\n    'ποδόσφαιρο',\n    'μπάλα',\n    'piłka',\n    'nożna',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-sparkles',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z\" />\n      <path d=\"M20 2v4\" />\n      <path d=\"M22 4h-4\" />\n      <circle\n        cx=\"4\"\n        cy=\"20\"\n        r=\"2\" />\n    </svg>\n  `,\n})\nexport class SparklesIconComponent extends IconComponentBase {\n  static readonly slug = 'sparkles';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'sparkles',\n    'sparkle',\n    'shine',\n    'magic',\n    'ai',\n    'glitter',\n    'étincelles',\n    'destellos',\n    'λάμψη',\n    'iskry',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-speaker',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"4\"\n        y=\"2\"\n        width=\"16\"\n        height=\"20\"\n        rx=\"2\"\n        ry=\"2\" />\n      <circle\n        cx=\"12\"\n        cy=\"14\"\n        r=\"4\" />\n      <line\n        x1=\"12\"\n        y1=\"6\"\n        x2=\"12.01\"\n        y2=\"6\" />\n    </svg>\n  `,\n})\nexport class SpeakerIconComponent extends IconComponentBase {\n  static readonly slug = 'speaker';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'speaker',\n    'audio',\n    'sound',\n    'music',\n    'volume',\n    'haut-parleur',\n    'altavoz',\n    'sonido',\n    'ηχείο',\n    'ήχος',\n    'głośnik',\n    'dźwięk',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-spotify',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#1DB954' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12 0a12 12 0 1 0 12 12A12 12 0 0 0 12 0Zm5.5 17.32a.748.748 0 0 1-1.029.249c-2.818-1.721-6.366-2.111-10.546-1.156a.748.748 0 0 1-.331-1.458c4.575-1.045 8.498-.594 11.658 1.336a.748.748 0 0 1 .248 1.029Zm1.468-3.265a.935.935 0 0 1-1.286.308c-3.227-1.984-8.146-2.558-11.965-1.4a.935.935 0 1 1-.542-1.79c4.362-1.323 9.782-.682 13.485 1.595a.935.935 0 0 1 .308 1.287Zm.126-3.4c-3.869-2.298-10.252-2.51-13.946-1.39a1.121 1.121 0 1 1-.652-2.146c4.241-1.286 11.288-1.038 15.74 1.605a1.121 1.121 0 0 1-1.142 1.93Z\" />\n    </svg>\n  `,\n})\nexport class SpotifyIconComponent extends IconComponentBase {\n  static readonly slug = 'spotify';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'spotify',\n    'music',\n    'streaming',\n    'audio',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n    </svg>\n  `,\n})\nexport class SquareIconComponent extends IconComponentBase {\n  static readonly slug = 'square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'square',\n    'shape',\n    'box',\n    'rectangle',\n    'carré',\n    'cuadrado',\n    'τετράγωνο',\n    'σχήμα',\n    'kwadrat',\n    'kształt',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-stop-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <rect\n        x=\"9\"\n        y=\"9\"\n        width=\"6\"\n        height=\"6\" />\n    </svg>\n  `,\n})\nexport class StopCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'stop-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'stop-circle',\n    'stop',\n    'circle',\n    'media',\n    'player',\n    'end',\n    'arrêter',\n    'detener',\n    'parar',\n    'σταμάτημα',\n    'τέλος',\n    'zatrzymaj',\n    'stop',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-stripe',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#635BFF' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M13.479 9.883c-1.626-.604-2.512-1.067-2.512-1.803 0-.622.511-.977 1.422-.977 1.667 0 3.379.642 4.558 1.22l.666-4.111c-.935-.446-2.847-1.177-5.49-1.177-1.87 0-3.425.488-4.534 1.4-1.156.953-1.752 2.346-1.752 4.026 0 3.045 1.86 4.353 4.882 5.45 1.949.704 2.6 1.207 2.6 1.98 0 .751-.643 1.184-1.81 1.184-1.469 0-3.876-.72-5.444-1.642l-.666 4.158C6.738 20.213 9.099 21 11.553 21 13.532 21 15.182 20.53 16.3 19.643c1.246-.992 1.886-2.46 1.886-4.36 0-3.114-1.9-4.41-4.706-5.4Z\" />\n    </svg>\n  `,\n})\nexport class StripeIconComponent extends IconComponentBase {\n  static readonly slug = 'stripe';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'stripe',\n    'payment',\n    'checkout',\n    'money',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-subtitles',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"5\"\n        width=\"18\"\n        height=\"14\"\n        rx=\"2\" />\n      <line\n        x1=\"7\"\n        y1=\"15\"\n        x2=\"12\"\n        y2=\"15\" />\n      <line\n        x1=\"14.5\"\n        y1=\"15\"\n        x2=\"17\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class SubtitlesIconComponent extends IconComponentBase {\n  static readonly slug = 'subtitles';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'subtitles',\n    'captions',\n    'closed captions',\n    'cc',\n    'accessibility',\n    'sous-titres',\n    'subtítulos',\n    'υπότιτλοι',\n    'napisy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-sun',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"5\" />\n      <line\n        x1=\"12\"\n        y1=\"1\"\n        x2=\"12\"\n        y2=\"3\" />\n      <line\n        x1=\"12\"\n        y1=\"21\"\n        x2=\"12\"\n        y2=\"23\" />\n      <line\n        x1=\"4.22\"\n        y1=\"4.22\"\n        x2=\"5.64\"\n        y2=\"5.64\" />\n      <line\n        x1=\"18.36\"\n        y1=\"18.36\"\n        x2=\"19.78\"\n        y2=\"19.78\" />\n      <line\n        x1=\"1\"\n        y1=\"12\"\n        x2=\"3\"\n        y2=\"12\" />\n      <line\n        x1=\"21\"\n        y1=\"12\"\n        x2=\"23\"\n        y2=\"12\" />\n      <line\n        x1=\"4.22\"\n        y1=\"19.78\"\n        x2=\"5.64\"\n        y2=\"18.36\" />\n      <line\n        x1=\"18.36\"\n        y1=\"5.64\"\n        x2=\"19.78\"\n        y2=\"4.22\" />\n    </svg>\n  `,\n})\nexport class SunIconComponent extends IconComponentBase {\n  static readonly slug = 'sun';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'sun',\n    'light',\n    'day',\n    'theme',\n    'weather',\n    'soleil',\n    'sol',\n    'día',\n    'ήλιος',\n    'φως',\n    'słońce',\n    'dzień',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-sunrise',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M17 18a5 5 0 0 0-10 0\" />\n      <line\n        x1=\"12\"\n        y1=\"2\"\n        x2=\"12\"\n        y2=\"9\" />\n      <line\n        x1=\"4.22\"\n        y1=\"10.22\"\n        x2=\"5.64\"\n        y2=\"11.64\" />\n      <line\n        x1=\"1\"\n        y1=\"18\"\n        x2=\"3\"\n        y2=\"18\" />\n      <line\n        x1=\"21\"\n        y1=\"18\"\n        x2=\"23\"\n        y2=\"18\" />\n      <line\n        x1=\"18.36\"\n        y1=\"11.64\"\n        x2=\"19.78\"\n        y2=\"10.22\" />\n      <line\n        x1=\"23\"\n        y1=\"22\"\n        x2=\"1\"\n        y2=\"22\" />\n      <polyline points=\"8 6 12 2 16 6\" />\n    </svg>\n  `,\n})\nexport class SunriseIconComponent extends IconComponentBase {\n  static readonly slug = 'sunrise';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'sunrise',\n    'sun',\n    'morning',\n    'dawn',\n    'weather',\n    'lever du soleil',\n    'amanecer',\n    'aurora',\n    'ανατολή',\n    'πρωί',\n    'wschód',\n    'poranek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-sunset',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M17 18a5 5 0 0 0-10 0\" />\n      <line\n        x1=\"12\"\n        y1=\"9\"\n        x2=\"12\"\n        y2=\"2\" />\n      <line\n        x1=\"4.22\"\n        y1=\"10.22\"\n        x2=\"5.64\"\n        y2=\"11.64\" />\n      <line\n        x1=\"1\"\n        y1=\"18\"\n        x2=\"3\"\n        y2=\"18\" />\n      <line\n        x1=\"21\"\n        y1=\"18\"\n        x2=\"23\"\n        y2=\"18\" />\n      <line\n        x1=\"18.36\"\n        y1=\"11.64\"\n        x2=\"19.78\"\n        y2=\"10.22\" />\n      <line\n        x1=\"23\"\n        y1=\"22\"\n        x2=\"1\"\n        y2=\"22\" />\n      <polyline points=\"16 5 12 9 8 5\" />\n    </svg>\n  `,\n})\nexport class SunsetIconComponent extends IconComponentBase {\n  static readonly slug = 'sunset';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'sunset',\n    'sun',\n    'evening',\n    'dusk',\n    'weather',\n    'coucher du soleil',\n    'atardecer',\n    'puesta',\n    'δύση',\n    'σούρουπο',\n    'zachód',\n    'wieczór',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-svelte',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#FF3E00' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M10.354 21.125a4.44 4.44 0 0 1-4.765-1.767 4.109 4.109 0 0 1-.703-3.107 3.898 3.898 0 0 1 .134-.522l.105-.321.287.21a7.21 7.21 0 0 0 2.186 1.092l.208.063-.02.208a1.253 1.253 0 0 0 .226.83 1.337 1.337 0 0 0 1.435.533 1.231 1.231 0 0 0 .343-.15l5.59-3.562a1.164 1.164 0 0 0 .524-.778 1.242 1.242 0 0 0-.211-.937 1.338 1.338 0 0 0-1.435-.533 1.23 1.23 0 0 0-.343.15l-2.133 1.36a4.078 4.078 0 0 1-1.135.499 4.44 4.44 0 0 1-4.765-1.766 4.108 4.108 0 0 1-.702-3.108 3.855 3.855 0 0 1 1.742-2.582l5.589-3.563a4.072 4.072 0 0 1 1.135-.499 4.44 4.44 0 0 1 4.765 1.767 4.109 4.109 0 0 1 .703 3.107 3.943 3.943 0 0 1-.134.522l-.105.321-.286-.21a7.204 7.204 0 0 0-2.187-1.093l-.208-.063.02-.207a1.255 1.255 0 0 0-.226-.831 1.337 1.337 0 0 0-1.435-.532 1.231 1.231 0 0 0-.343.15L8.62 9.368a1.162 1.162 0 0 0-.524.778 1.24 1.24 0 0 0 .211.937 1.338 1.338 0 0 0 1.435.533 1.235 1.235 0 0 0 .344-.151l2.132-1.36a4.067 4.067 0 0 1 1.135-.498 4.44 4.44 0 0 1 4.765 1.766 4.108 4.108 0 0 1 .702 3.108 3.857 3.857 0 0 1-1.742 2.583l-5.589 3.562a4.072 4.072 0 0 1-1.135.499m10.358-17.95C18.484-.015 14.082-.96 10.9 1.068L5.31 4.63a6.412 6.412 0 0 0-2.896 4.295 6.753 6.753 0 0 0 .666 4.336 6.43 6.43 0 0 0-.96 2.396 6.833 6.833 0 0 0 1.168 5.167c2.229 3.19 6.63 4.135 9.812 2.108l5.59-3.562a6.41 6.41 0 0 0 2.896-4.295 6.756 6.756 0 0 0-.665-4.336 6.429 6.429 0 0 0 .958-2.396 6.831 6.831 0 0 0-1.167-5.168Z\" />\n    </svg>\n  `,\n})\nexport class SvelteIconComponent extends IconComponentBase {\n  static readonly slug = 'svelte';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'svelte',\n    'framework',\n    'javascript',\n    'frontend',\n    'web',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-table',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\" />\n    </svg>\n  `,\n})\nexport class TableIconComponent extends IconComponentBase {\n  static readonly slug = 'table';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'table',\n    'grid',\n    'data',\n    'spreadsheet',\n    'rows',\n    'columns',\n    'tableau',\n    'grille',\n    'tabla',\n    'cuadrícula',\n    'πίνακας',\n    'πλέγμα',\n    'tabela',\n    'siatka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-tablet',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"4\"\n        y=\"2\"\n        width=\"16\"\n        height=\"20\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"12\"\n        y1=\"18\"\n        x2=\"12.01\"\n        y2=\"18\" />\n    </svg>\n  `,\n})\nexport class TabletIconComponent extends IconComponentBase {\n  static readonly slug = 'tablet';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'tablet',\n    'device',\n    'ipad',\n    'screen',\n    'mobile',\n    'tableta',\n    'tableta',\n    'ταμπλέτα',\n    'συσκευή',\n    'tablet',\n    'urządzenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-tag',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\" />\n      <line\n        x1=\"7\"\n        y1=\"7\"\n        x2=\"7.01\"\n        y2=\"7\" />\n    </svg>\n  `,\n})\nexport class TagIconComponent extends IconComponentBase {\n  static readonly slug = 'tag';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'tag',\n    'label',\n    'price',\n    'category',\n    'sticker',\n    'étiquette',\n    'etiqueta',\n    'ετικέτα',\n    'κατηγορία',\n    'etykieta',\n    'metka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-tailwind',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#06B6D4' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z\" />\n    </svg>\n  `,\n})\nexport class TailwindIconComponent extends IconComponentBase {\n  static readonly slug = 'tailwind';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'tailwind',\n    'tailwindcss',\n    'css',\n    'framework',\n    'styling',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-target',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"6\" />\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"2\" />\n    </svg>\n  `,\n})\nexport class TargetIconComponent extends IconComponentBase {\n  static readonly slug = 'target';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'target',\n    'aim',\n    'goal',\n    'focus',\n    'bullseye',\n    'cible',\n    'objectif',\n    'objetivo',\n    'diana',\n    'στόχος',\n    'σκοπός',\n    'cel',\n    'tarcza',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-telegram',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#26A5E4' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z\" />\n    </svg>\n  `,\n})\nexport class TelegramIconComponent extends IconComponentBase {\n  static readonly slug = 'telegram';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'telegram',\n    'chat',\n    'messaging',\n    'social',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-terminal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"4 17 10 11 4 5\" />\n      <line\n        x1=\"12\"\n        y1=\"19\"\n        x2=\"20\"\n        y2=\"19\" />\n    </svg>\n  `,\n})\nexport class TerminalIconComponent extends IconComponentBase {\n  static readonly slug = 'terminal';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'terminal',\n    'console',\n    'command',\n    'shell',\n    'prompt',\n    'developer',\n    'terminal',\n    'consola',\n    'τερματικό',\n    'κονσόλα',\n    'konsola',\n    'wiersz poleceń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-thermometer',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\" />\n    </svg>\n  `,\n})\nexport class ThermometerIconComponent extends IconComponentBase {\n  static readonly slug = 'thermometer';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'thermometer',\n    'temperature',\n    'weather',\n    'hot',\n    'cold',\n    'thermomètre',\n    'température',\n    'termómetro',\n    'temperatura',\n    'θερμόμετρο',\n    'θερμοκρασία',\n    'termometr',\n    'temperatura',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-third-place-medal',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"7.5 6.21 6.5 1 17.5 1 16.5 6.21\" />\n      <circle\n        cx=\"12\"\n        cy=\"14\"\n        r=\"9\" />\n      <path d=\"M10 12a2 2 0 1 1 2 2a2 2 0 1 1-2 2\" />\n    </svg>\n  `,\n})\nexport class ThirdPlaceMedalIconComponent extends IconComponentBase {\n  static readonly slug = 'third-place-medal';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'medal',\n    'third place',\n    'bronze',\n    'rank',\n    'podium',\n    'award',\n    'médaille',\n    'troisième place',\n    'medalla',\n    'bronce',\n    'tercer lugar',\n    'μετάλλιο',\n    'χάλκινο',\n    'τρίτη θέση',\n    'brąz',\n    'trzecie miejsce',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-threads',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#000000' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z\" />\n    </svg>\n  `,\n})\nexport class ThreadsIconComponent extends IconComponentBase {\n  static readonly slug = 'threads';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'threads',\n    'social',\n    'meta',\n    'instagram',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-thumbs-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\" />\n    </svg>\n  `,\n})\nexport class ThumbsDownIconComponent extends IconComponentBase {\n  static readonly slug = 'thumbs-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'thumbs-down',\n    'thumbs',\n    'down',\n    'dislike',\n    'no',\n    'negative',\n    'pouce',\n    'bas',\n    'pulgar',\n    'abajo',\n    'no me gusta',\n    'αντίχειρας',\n    'κάτω',\n    'kciuk',\n    'dół',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-thumbs-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\" />\n    </svg>\n  `,\n})\nexport class ThumbsUpIconComponent extends IconComponentBase {\n  static readonly slug = 'thumbs-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'thumbs-up',\n    'thumbs',\n    'up',\n    'like',\n    'yes',\n    'approve',\n    'positive',\n    'pouce',\n    'haut',\n    'pulgar',\n    'arriba',\n    'me gusta',\n    'αντίχειρας',\n    'πάνω',\n    'kciuk',\n    'góra',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-tiktok',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#000000' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z\" />\n    </svg>\n  `,\n})\nexport class TiktokIconComponent extends IconComponentBase {\n  static readonly slug = 'tiktok';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['tiktok', 'social', 'video', 'music'];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-timecode',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"7\"\n        width=\"20\"\n        height=\"10\"\n        rx=\"2\" />\n      <line\n        x1=\"5.5\"\n        y1=\"10.5\"\n        x2=\"5.5\"\n        y2=\"13.5\" />\n      <line\n        x1=\"12\"\n        y1=\"10.5\"\n        x2=\"12\"\n        y2=\"13.5\" />\n      <line\n        x1=\"18.5\"\n        y1=\"10.5\"\n        x2=\"18.5\"\n        y2=\"13.5\" />\n      <circle\n        cx=\"8.75\"\n        cy=\"10.6\"\n        r=\"0.7\"\n        fill=\"currentColor\"\n        stroke=\"none\" />\n      <circle\n        cx=\"8.75\"\n        cy=\"13.4\"\n        r=\"0.7\"\n        fill=\"currentColor\"\n        stroke=\"none\" />\n      <circle\n        cx=\"15.25\"\n        cy=\"10.6\"\n        r=\"0.7\"\n        fill=\"currentColor\"\n        stroke=\"none\" />\n      <circle\n        cx=\"15.25\"\n        cy=\"13.4\"\n        r=\"0.7\"\n        fill=\"currentColor\"\n        stroke=\"none\" />\n    </svg>\n  `,\n})\nexport class TimecodeIconComponent extends IconComponentBase {\n  static readonly slug = 'timecode';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'timecode',\n    'timestamp',\n    'duration',\n    'runtime',\n    'position',\n    'code temporel',\n    'código de tiempo',\n    'χρονοκώδικας',\n    'kod czasowy',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-timer',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"10\"\n        x2=\"14\"\n        y1=\"2\"\n        y2=\"2\" />\n      <line\n        x1=\"12\"\n        x2=\"15\"\n        y1=\"14\"\n        y2=\"11\" />\n      <circle\n        cx=\"12\"\n        cy=\"14\"\n        r=\"8\" />\n    </svg>\n  `,\n})\nexport class TimerIconComponent extends IconComponentBase {\n  static readonly slug = 'timer';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'timer',\n    'stopwatch',\n    'countdown',\n    'time',\n    'minuteur',\n    'chronomètre',\n    'temporizador',\n    'cronómetro',\n    'χρονόμετρο',\n    'minutnik',\n    'stoper',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-toggle-left',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"1\"\n        y=\"5\"\n        width=\"22\"\n        height=\"14\"\n        rx=\"7\"\n        ry=\"7\" />\n      <circle\n        cx=\"8\"\n        cy=\"12\"\n        r=\"3\" />\n    </svg>\n  `,\n})\nexport class ToggleLeftIconComponent extends IconComponentBase {\n  static readonly slug = 'toggle-left';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'toggle-left',\n    'toggle',\n    'left',\n    'switch',\n    'off',\n    'interrupteur',\n    'gauche',\n    'interruptor',\n    'izquierda',\n    'διακόπτης',\n    'αριστερά',\n    'przełącznik',\n    'lewo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-toggle-right',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"1\"\n        y=\"5\"\n        width=\"22\"\n        height=\"14\"\n        rx=\"7\"\n        ry=\"7\" />\n      <circle\n        cx=\"16\"\n        cy=\"12\"\n        r=\"3\" />\n    </svg>\n  `,\n})\nexport class ToggleRightIconComponent extends IconComponentBase {\n  static readonly slug = 'toggle-right';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'toggle-right',\n    'toggle',\n    'right',\n    'switch',\n    'on',\n    'interrupteur',\n    'droite',\n    'interruptor',\n    'derecha',\n    'διακόπτης',\n    'δεξιά',\n    'przełącznik',\n    'prawo',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-tool',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\" />\n    </svg>\n  `,\n})\nexport class ToolIconComponent extends IconComponentBase {\n  static readonly slug = 'tool';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'tool',\n    'wrench',\n    'fix',\n    'repair',\n    'settings',\n    'outil',\n    'clé',\n    'herramienta',\n    'llave',\n    'εργαλείο',\n    'κλειδί',\n    'narzędzie',\n    'klucz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-transcode',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\" />\n      <polyline points=\"13 2 13 9 20 9\" />\n      <line\n        x1=\"7.5\"\n        y1=\"17\"\n        x2=\"14.5\"\n        y2=\"17\" />\n      <polyline points=\"12.2 14.7 15 17 12.2 19.3\" />\n    </svg>\n  `,\n})\nexport class TranscodeIconComponent extends IconComponentBase {\n  static readonly slug = 'transcode';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'transcode',\n    'convert',\n    'encode',\n    're-encode',\n    'format change',\n    'transcodage',\n    'transcodificar',\n    'μετακωδικοποίηση',\n    'transkodowanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trash-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"3 6 5 6 21 6\" />\n      <path\n        d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n      <line\n        x1=\"10\"\n        y1=\"11\"\n        x2=\"10\"\n        y2=\"17\" />\n      <line\n        x1=\"14\"\n        y1=\"11\"\n        x2=\"14\"\n        y2=\"17\" />\n    </svg>\n  `,\n})\nexport class Trash2IconComponent extends IconComponentBase {\n  static readonly slug = 'trash-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'trash-2',\n    'trash',\n    '2',\n    'delete',\n    'remove',\n    'bin',\n    'garbage',\n    'poubelle',\n    'basura',\n    'eliminar',\n    'κάδος',\n    'διαγραφή',\n    'kosz',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trello',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <rect\n        x=\"7\"\n        y=\"7\"\n        width=\"3\"\n        height=\"9\" />\n      <rect\n        x=\"14\"\n        y=\"7\"\n        width=\"3\"\n        height=\"5\" />\n    </svg>\n  `,\n})\nexport class TrelloIconComponent extends IconComponentBase {\n  static readonly slug = 'trello';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'trello',\n    'board',\n    'kanban',\n    'project',\n    'task',\n    'productivity',\n    'atlassian',\n    'cards',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trending-down',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"23 18 13.5 8.5 8.5 13.5 1 6\" />\n      <polyline points=\"17 18 23 18 23 12\" />\n    </svg>\n  `,\n})\nexport class TrendingDownIconComponent extends IconComponentBase {\n  static readonly slug = 'trending-down';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'trending-down',\n    'trending',\n    'down',\n    'decrease',\n    'graph',\n    'arrow',\n    'statistics',\n    'tendance',\n    'baisse',\n    'tendencia',\n    'bajada',\n    'τάση',\n    'κάτω',\n    'trend',\n    'spadek',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trending-up',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\" />\n      <polyline points=\"17 6 23 6 23 12\" />\n    </svg>\n  `,\n})\nexport class TrendingUpIconComponent extends IconComponentBase {\n  static readonly slug = 'trending-up';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'trending-up',\n    'trending',\n    'up',\n    'increase',\n    'graph',\n    'arrow',\n    'statistics',\n    'tendance',\n    'hausse',\n    'tendencia',\n    'subida',\n    'τάση',\n    'πάνω',\n    'trend',\n    'wzrost',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-triangle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n    </svg>\n  `,\n})\nexport class TriangleIconComponent extends IconComponentBase {\n  static readonly slug = 'triangle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'triangle',\n    'shape',\n    'arrow',\n    'play',\n    'three',\n    'triangle',\n    'triángulo',\n    'τρίγωνο',\n    'σχήμα',\n    'trójkąt',\n    'kształt',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trim',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"8.5 4 4 4 4 20 8.5 20\" />\n      <polyline points=\"15.5 4 20 4 20 20 15.5 20\" />\n      <polygon points=\"10.5 9.5 14.5 12 10.5 14.5\" />\n    </svg>\n  `,\n})\nexport class TrimIconComponent extends IconComponentBase {\n  static readonly slug = 'trim';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'trim',\n    'clip',\n    'in point',\n    'out point',\n    'cut range',\n    'rogner',\n    'recortar',\n    'περικοπή',\n    'przycinanie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-trophy',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M8 2h8v6a4 4 0 0 1-8 0z\" />\n      <path d=\"M8 4H5v3a3 3 0 0 0 3 3\" />\n      <path d=\"M16 4h3v3a3 3 0 0 1-3 3\" />\n      <line\n        x1=\"12\"\n        y1=\"12\"\n        x2=\"12\"\n        y2=\"16\" />\n      <path d=\"M7 22h10l-1-6H8z\" />\n    </svg>\n  `,\n})\nexport class TrophyIconComponent extends IconComponentBase {\n  static readonly slug = 'trophy';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'trophy',\n    'award',\n    'prize',\n    'cup',\n    'winner',\n    'sport',\n    'champion',\n    'trophée',\n    'récompense',\n    'trofeo',\n    'premio',\n    'τρόπαιο',\n    'βραβείο',\n    'puchar',\n    'nagroda',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-truck',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"1\"\n        y=\"3\"\n        width=\"15\"\n        height=\"13\" />\n      <polygon points=\"16 8 20 8 23 11 23 16 16 16 16 8\" />\n      <circle\n        cx=\"5.5\"\n        cy=\"18.5\"\n        r=\"2.5\" />\n      <circle\n        cx=\"18.5\"\n        cy=\"18.5\"\n        r=\"2.5\" />\n    </svg>\n  `,\n})\nexport class TruckIconComponent extends IconComponentBase {\n  static readonly slug = 'truck';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'truck',\n    'delivery',\n    'shipping',\n    'vehicle',\n    'transport',\n    'camion',\n    'livraison',\n    'camión',\n    'envío',\n    'φορτηγό',\n    'παράδοση',\n    'ciężarówka',\n    'dostawa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-tv',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"2\"\n        y=\"7\"\n        width=\"20\"\n        height=\"15\"\n        rx=\"2\"\n        ry=\"2\" />\n      <polyline points=\"17 2 12 7 7 2\" />\n    </svg>\n  `,\n})\nexport class TvIconComponent extends IconComponentBase {\n  static readonly slug = 'tv';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'tv',\n    'television',\n    'screen',\n    'display',\n    'monitor',\n    'télévision',\n    'televisión',\n    'τηλεόραση',\n    'οθόνη',\n    'telewizor',\n    'telewizja',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Twitch brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-twitch>` / `TwitchIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-twitch-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#9146FF' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M11.571 4.714h1.715v5.143H11.57Zm4.715 0H18v5.143h-1.714ZM6 0 1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0Zm14.571 11.143-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z\" />\n    </svg>\n  `,\n})\nexport class Twitch2IconComponent extends IconComponentBase {\n  static readonly slug = 'twitch-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'twitch-2',\n    'twitch',\n    'streaming',\n    'gaming',\n    'video',\n    'mark',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * Twitch icon (Feather outline).\n *\n * @remarks\n * The brand-filled Twitch mark lives at `<ea-icon-twitch-2>` /\n * `Twitch2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-twitch',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\" />\n    </svg>\n  `,\n})\nexport class TwitchIconComponent extends IconComponentBase {\n  static readonly slug = 'twitch';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'twitch',\n    'streaming',\n    'gaming',\n    'video',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-twitter',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\" />\n    </svg>\n  `,\n})\nexport class TwitterIconComponent extends IconComponentBase {\n  static readonly slug = 'twitter';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'twitter',\n    'social',\n    'network',\n    'tweet',\n    'bird',\n    'x',\n    'microblog',\n    'feed',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-type',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"4 7 4 4 20 4 20 7\" />\n      <line\n        x1=\"9\"\n        y1=\"20\"\n        x2=\"15\"\n        y2=\"20\" />\n      <line\n        x1=\"12\"\n        y1=\"4\"\n        x2=\"12\"\n        y2=\"20\" />\n    </svg>\n  `,\n})\nexport class TypeIconComponent extends IconComponentBase {\n  static readonly slug = 'type';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'type',\n    'text',\n    'font',\n    'typography',\n    'letter',\n    'texte',\n    'police',\n    'fuente',\n    'texto',\n    'γραμματοσειρά',\n    'κείμενο',\n    'czcionka',\n    'tekst',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-umbrella',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\" />\n    </svg>\n  `,\n})\nexport class UmbrellaIconComponent extends IconComponentBase {\n  static readonly slug = 'umbrella';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'umbrella',\n    'rain',\n    'weather',\n    'protection',\n    'parapluie',\n    'pluie',\n    'paraguas',\n    'lluvia',\n    'ομπρέλα',\n    'βροχή',\n    'parasol',\n    'deszcz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-underline',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\" />\n      <line\n        x1=\"4\"\n        y1=\"21\"\n        x2=\"20\"\n        y2=\"21\" />\n    </svg>\n  `,\n})\nexport class UnderlineIconComponent extends IconComponentBase {\n  static readonly slug = 'underline';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'underline',\n    'text',\n    'format',\n    'style',\n    'souligné',\n    'subrayado',\n    'υπογράμμιση',\n    'podkreślenie',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-undo',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M3 7v6h6\" />\n      <path d=\"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\" />\n    </svg>\n  `,\n})\nexport class UndoIconComponent extends IconComponentBase {\n  static readonly slug = 'undo';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'undo',\n    'back',\n    'revert',\n    'history',\n    'annuler',\n    'deshacer',\n    'αναίρεση',\n    'cofnij',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-unlock',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"11\"\n        width=\"18\"\n        height=\"11\"\n        rx=\"2\"\n        ry=\"2\" />\n      <path d=\"M7 11V7a5 5 0 0 1 9.9-1\" />\n    </svg>\n  `,\n})\nexport class UnlockIconComponent extends IconComponentBase {\n  static readonly slug = 'unlock';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'unlock',\n    'open',\n    'security',\n    'access',\n    'password',\n    'déverrouiller',\n    'desbloquear',\n    'abierto',\n    'ξεκλείδωμα',\n    'άνοιγμα',\n    'odblokuj',\n    'otwórz',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-upload',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n      <polyline points=\"17 8 12 3 7 8\" />\n      <line\n        x1=\"12\"\n        y1=\"3\"\n        x2=\"12\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class UploadIconComponent extends IconComponentBase {\n  static readonly slug = 'upload';\n  static readonly category: IconCategory = 'feather';\n  static override readonly defaultStrokeWidth = 1.5;\n  static readonly tags: ReadonlyArray<string> = [\n    'upload',\n    'send',\n    'arrow',\n    'share',\n    'submit',\n    'téléverser',\n    'envoyer',\n    'subir',\n    'cargar',\n    'μεταφόρτωση',\n    'ανέβασμα',\n    'prześlij',\n    'wgraj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-user-check',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n      <circle\n        cx=\"8.5\"\n        cy=\"7\"\n        r=\"4\" />\n      <polyline points=\"17 11 19 13 23 9\" />\n    </svg>\n  `,\n})\nexport class UserCheckIconComponent extends IconComponentBase {\n  static readonly slug = 'user-check';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'user-check',\n    'user',\n    'check',\n    'verified',\n    'approved',\n    'confirm',\n    'utilisateur',\n    'usuario',\n    'verificado',\n    'χρήστης',\n    'επιβεβαίωση',\n    'użytkownik',\n    'zatwierdź',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-user-minus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n      <circle\n        cx=\"8.5\"\n        cy=\"7\"\n        r=\"4\" />\n      <line\n        x1=\"23\"\n        y1=\"11\"\n        x2=\"17\"\n        y2=\"11\" />\n    </svg>\n  `,\n})\nexport class UserMinusIconComponent extends IconComponentBase {\n  static readonly slug = 'user-minus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'user-minus',\n    'user',\n    'minus',\n    'remove',\n    'delete',\n    'unfollow',\n    'utilisateur',\n    'usuario',\n    'eliminar',\n    'χρήστης',\n    'αφαίρεση',\n    'użytkownik',\n    'usuń',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-user-plus',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n      <circle\n        cx=\"8.5\"\n        cy=\"7\"\n        r=\"4\" />\n      <line\n        x1=\"20\"\n        y1=\"8\"\n        x2=\"20\"\n        y2=\"14\" />\n      <line\n        x1=\"23\"\n        y1=\"11\"\n        x2=\"17\"\n        y2=\"11\" />\n    </svg>\n  `,\n})\nexport class UserPlusIconComponent extends IconComponentBase {\n  static readonly slug = 'user-plus';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'user-plus',\n    'user',\n    'plus',\n    'add',\n    'new',\n    'invite',\n    'follow',\n    'utilisateur',\n    'usuario',\n    'añadir',\n    'χρήστης',\n    'προσθήκη',\n    'użytkownik',\n    'dodaj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-user-x',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n      <circle\n        cx=\"8.5\"\n        cy=\"7\"\n        r=\"4\" />\n      <line\n        x1=\"18\"\n        y1=\"8\"\n        x2=\"23\"\n        y2=\"13\" />\n      <line\n        x1=\"23\"\n        y1=\"8\"\n        x2=\"18\"\n        y2=\"13\" />\n    </svg>\n  `,\n})\nexport class UserXIconComponent extends IconComponentBase {\n  static readonly slug = 'user-x';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'user-x',\n    'user',\n    'x',\n    'remove',\n    'delete',\n    'block',\n    'utilisateur',\n    'usuario',\n    'bloquear',\n    'χρήστης',\n    'αποκλεισμός',\n    'użytkownik',\n    'zablokuj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-users',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n      <circle\n        cx=\"9\"\n        cy=\"7\"\n        r=\"4\" />\n      <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\" />\n      <path d=\"M16 3.13a4 4 0 0 1 0 7.75\" />\n    </svg>\n  `,\n})\nexport class UsersIconComponent extends IconComponentBase {\n  static readonly slug = 'users';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'users',\n    'people',\n    'group',\n    'team',\n    'community',\n    'utilisateurs',\n    'personnes',\n    'usuarios',\n    'personas',\n    'grupo',\n    'χρήστες',\n    'άτομα',\n    'ομάδα',\n    'użytkownicy',\n    'grupa',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-vercel',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#000000' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M12 2 24 22H0Z\" />\n    </svg>\n  `,\n})\nexport class VercelIconComponent extends IconComponentBase {\n  static readonly slug = 'vercel';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = ['vercel', 'hosting', 'deploy', 'nextjs'];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-video-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\" />\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class VideoOffIconComponent extends IconComponentBase {\n  static readonly slug = 'video-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'video-off',\n    'video',\n    'off',\n    'camera',\n    'disabled',\n    'mute',\n    'vidéo',\n    'vídeo',\n    'cámara',\n    'βίντεο',\n    'κάμερα',\n    'wideo',\n    'wyłączone',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-video',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"23 7 16 12 23 17 23 7\" />\n      <rect\n        x=\"1\"\n        y=\"5\"\n        width=\"15\"\n        height=\"14\"\n        rx=\"2\"\n        ry=\"2\" />\n    </svg>\n  `,\n})\nexport class VideoIconComponent extends IconComponentBase {\n  static readonly slug = 'video';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'video',\n    'camera',\n    'film',\n    'movie',\n    'record',\n    'vidéo',\n    'caméra',\n    'vídeo',\n    'cámara',\n    'βίντεο',\n    'κάμερα',\n    'wideo',\n    'kamera',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-voicemail',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"5.5\"\n        cy=\"11.5\"\n        r=\"4.5\" />\n      <circle\n        cx=\"18.5\"\n        cy=\"11.5\"\n        r=\"4.5\" />\n      <line\n        x1=\"5.5\"\n        y1=\"16\"\n        x2=\"18.5\"\n        y2=\"16\" />\n    </svg>\n  `,\n})\nexport class VoicemailIconComponent extends IconComponentBase {\n  static readonly slug = 'voicemail';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'voicemail',\n    'message',\n    'voice',\n    'phone',\n    'recording',\n    'messagerie',\n    'buzón',\n    'voz',\n    'τηλεφωνητής',\n    'φωνή',\n    'poczta',\n    'głosowa',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-volume-1',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" />\n      <path d=\"M15.54 8.46a5 5 0 0 1 0 7.07\" />\n    </svg>\n  `,\n})\nexport class Volume1IconComponent extends IconComponentBase {\n  static readonly slug = 'volume-1';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'volume-1',\n    'volume',\n    '1',\n    'sound',\n    'audio',\n    'low',\n    'son',\n    'sonido',\n    'ένταση',\n    'ήχος',\n    'głośność',\n    'dźwięk',\n    'music',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-volume-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" />\n      <path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\" />\n    </svg>\n  `,\n})\nexport class Volume2IconComponent extends IconComponentBase {\n  static readonly slug = 'volume-2';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'volume-2',\n    'volume',\n    '2',\n    'sound',\n    'audio',\n    'high',\n    'son',\n    'sonido',\n    'ένταση',\n    'ήχος',\n    'głośność',\n    'dźwięk',\n    'music',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-volume-x',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" />\n      <line\n        x1=\"23\"\n        y1=\"9\"\n        x2=\"17\"\n        y2=\"15\" />\n      <line\n        x1=\"17\"\n        y1=\"9\"\n        x2=\"23\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class VolumeXIconComponent extends IconComponentBase {\n  static readonly slug = 'volume-x';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'volume-x',\n    'volume',\n    'x',\n    'mute',\n    'silent',\n    'off',\n    'sound',\n    'muet',\n    'silencio',\n    'mudo',\n    'σίγαση',\n    'wyciszony',\n    'cisza',\n    'music',\n    'audio',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-volume',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" />\n    </svg>\n  `,\n})\nexport class VolumeIconComponent extends IconComponentBase {\n  static readonly slug = 'volume';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'volume',\n    'sound',\n    'audio',\n    'speaker',\n    'mute',\n    'son',\n    'sonido',\n    'altavoz',\n    'ένταση',\n    'ήχος',\n    'głośność',\n    'dźwięk',\n    'music',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-vue',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#4FC08D' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z\" />\n    </svg>\n  `,\n})\nexport class VueIconComponent extends IconComponentBase {\n  static readonly slug = 'vue';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'vue',\n    'vuejs',\n    'framework',\n    'javascript',\n    'frontend',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-wallet',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n      <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n    </svg>\n  `,\n})\nexport class WalletIconComponent extends IconComponentBase {\n  static readonly slug = 'wallet';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'wallet',\n    'money',\n    'payment',\n    'cash',\n    'finance',\n    'portefeuille',\n    'cartera',\n    'πορτοφόλι',\n    'portfel',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-wand',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M15 4V2\" />\n      <path d=\"M15 16v-2\" />\n      <path d=\"M8 9h2\" />\n      <path d=\"M20 9h2\" />\n      <path d=\"M17.8 11.8 19 13\" />\n      <path d=\"M15 9h.01\" />\n      <path d=\"M17.8 6.2 19 5\" />\n      <path d=\"m3 21 9-9\" />\n      <path d=\"M12.2 6.2 11 5\" />\n    </svg>\n  `,\n})\nexport class WandIconComponent extends IconComponentBase {\n  static readonly slug = 'wand';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'wand',\n    'magic',\n    'wizard',\n    'spell',\n    'baguette',\n    'varita',\n    'magia',\n    'ραβδί',\n    'różdżka',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-watch',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"7\" />\n      <polyline points=\"12 9 12 12 13.5 13.5\" />\n      <path\n        d=\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\" />\n    </svg>\n  `,\n})\nexport class WatchIconComponent extends IconComponentBase {\n  static readonly slug = 'watch';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'watch',\n    'time',\n    'clock',\n    'wristwatch',\n    'smartwatch',\n    'montre',\n    'reloj',\n    'ρολόι',\n    'ώρα',\n    'zegarek',\n    'czas',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-waveform',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"3\"\n        y1=\"10\"\n        x2=\"3\"\n        y2=\"14\" />\n      <line\n        x1=\"6.5\"\n        y1=\"7\"\n        x2=\"6.5\"\n        y2=\"17\" />\n      <line\n        x1=\"10\"\n        y1=\"4\"\n        x2=\"10\"\n        y2=\"20\" />\n      <line\n        x1=\"13.5\"\n        y1=\"8\"\n        x2=\"13.5\"\n        y2=\"16\" />\n      <line\n        x1=\"17\"\n        y1=\"5.5\"\n        x2=\"17\"\n        y2=\"18.5\" />\n      <line\n        x1=\"20.5\"\n        y1=\"9.5\"\n        x2=\"20.5\"\n        y2=\"14.5\" />\n    </svg>\n  `,\n})\nexport class WaveformIconComponent extends IconComponentBase {\n  static readonly slug = 'waveform';\n  static readonly category: IconCategory = 'eagami';\n  static readonly tags: ReadonlyArray<string> = [\n    'waveform',\n    'audio',\n    'amplitude',\n    'sound wave',\n    'levels',\n    \"forme d'onde\",\n    'forma de onda',\n    'κυματομορφή',\n    'przebieg dźwięku',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-whatsapp',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#25D366' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\" />\n    </svg>\n  `,\n})\nexport class WhatsappIconComponent extends IconComponentBase {\n  static readonly slug = 'whatsapp';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'whatsapp',\n    'chat',\n    'messaging',\n    'social',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-wifi-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n      <path d=\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\" />\n      <path d=\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\" />\n      <path d=\"M10.71 5.05A16 16 0 0 1 22.58 9\" />\n      <path d=\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\" />\n      <path d=\"M8.53 16.11a6 6 0 0 1 6.95 0\" />\n      <line\n        x1=\"12\"\n        y1=\"20\"\n        x2=\"12.01\"\n        y2=\"20\" />\n    </svg>\n  `,\n})\nexport class WifiOffIconComponent extends IconComponentBase {\n  static readonly slug = 'wifi-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'wifi-off',\n    'wifi',\n    'off',\n    'wireless',\n    'disabled',\n    'offline',\n    'sans-fil',\n    'inalámbrico',\n    'ασύρματο',\n    'εκτός',\n    'bezprzewodowy',\n    'wyłączone',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-wifi',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path d=\"M5 12.55a11 11 0 0 1 14.08 0\" />\n      <path d=\"M1.42 9a16 16 0 0 1 21.16 0\" />\n      <path d=\"M8.53 16.11a6 6 0 0 1 6.95 0\" />\n      <line\n        x1=\"12\"\n        y1=\"20\"\n        x2=\"12.01\"\n        y2=\"20\" />\n    </svg>\n  `,\n})\nexport class WifiIconComponent extends IconComponentBase {\n  static readonly slug = 'wifi';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'wifi',\n    'wireless',\n    'internet',\n    'signal',\n    'network',\n    'sans-fil',\n    'inalámbrico',\n    'señal',\n    'ασύρματο',\n    'σήμα',\n    'bezprzewodowy',\n    'sygnał',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-wind',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\" />\n    </svg>\n  `,\n})\nexport class WindIconComponent extends IconComponentBase {\n  static readonly slug = 'wind';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'wind',\n    'air',\n    'weather',\n    'breeze',\n    'storm',\n    'vent',\n    'viento',\n    'aire',\n    'άνεμος',\n    'αέρας',\n    'wiatr',\n    'powietrze',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-wordpress',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#21759B' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M21.469 6.825c.84 1.537 1.318 3.3 1.318 5.175 0 3.979-2.156 7.456-5.363 9.325l3.295-9.527c.615-1.54.82-2.771.82-3.864 0-.405-.026-.78-.07-1.11m-7.981.105c.647-.03 1.232-.105 1.232-.105.582-.075.514-.93-.067-.899 0 0-1.755.135-2.88.135-1.064 0-2.85-.15-2.85-.15-.585-.03-.661.855-.075.885 0 0 .54.061 1.125.09l1.68 4.605-2.37 7.08L5.354 6.9c.649-.03 1.234-.1 1.234-.1.585-.075.516-.93-.065-.896 0 0-1.746.138-2.874.138-.2 0-.438-.008-.69-.015C4.911 3.15 8.235 1.215 12 1.215c2.809 0 5.365 1.072 7.286 2.833-.046-.003-.091-.009-.141-.009-1.06 0-1.812.923-1.812 1.914 0 .89.513 1.643 1.06 2.531.411.72.89 1.643.89 2.977 0 .915-.354 1.994-.821 3.479l-1.075 3.585-3.9-11.61.001.014zM12 22.784c-1.059 0-2.081-.153-3.048-.437l3.237-9.406 3.315 9.087c.024.053.05.101.078.149-1.12.393-2.325.609-3.582.609M1.211 12c0-1.564.336-3.05.935-4.39L7.29 21.709C3.694 19.96 1.212 16.271 1.211 12M12 0C5.385 0 0 5.385 0 12s5.385 12 12 12 12-5.385 12-12S18.615 0 12 0\" />\n    </svg>\n  `,\n})\nexport class WordpressIconComponent extends IconComponentBase {\n  static readonly slug = 'wordpress';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'wordpress',\n    'cms',\n    'blog',\n    'website',\n    'publishing',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-x-circle',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10\" />\n      <line\n        x1=\"15\"\n        y1=\"9\"\n        x2=\"9\"\n        y2=\"15\" />\n      <line\n        x1=\"9\"\n        y1=\"9\"\n        x2=\"15\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class XCircleIconComponent extends IconComponentBase {\n  static readonly slug = 'x-circle';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'x-circle',\n    'x',\n    'circle',\n    'close',\n    'cancel',\n    'remove',\n    'error',\n    'fermer',\n    'cerrar',\n    'cancelar',\n    'κλείσιμο',\n    'σφάλμα',\n    'zamknij',\n    'błąd',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-x-octagon',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon\n        points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\" />\n      <line\n        x1=\"15\"\n        y1=\"9\"\n        x2=\"9\"\n        y2=\"15\" />\n      <line\n        x1=\"9\"\n        y1=\"9\"\n        x2=\"15\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class XOctagonIconComponent extends IconComponentBase {\n  static readonly slug = 'x-octagon';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'x-octagon',\n    'x',\n    'octagon',\n    'close',\n    'stop',\n    'cancel',\n    'error',\n    'fermer',\n    'detener',\n    'κλείσιμο',\n    'στοπ',\n    'zatrzymaj',\n    'błąd',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-x-square',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <rect\n        x=\"3\"\n        y=\"3\"\n        width=\"18\"\n        height=\"18\"\n        rx=\"2\"\n        ry=\"2\" />\n      <line\n        x1=\"9\"\n        y1=\"9\"\n        x2=\"15\"\n        y2=\"15\" />\n      <line\n        x1=\"15\"\n        y1=\"9\"\n        x2=\"9\"\n        y2=\"15\" />\n    </svg>\n  `,\n})\nexport class XSquareIconComponent extends IconComponentBase {\n  static readonly slug = 'x-square';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'x-square',\n    'x',\n    'square',\n    'close',\n    'cancel',\n    'remove',\n    'fermer',\n    'cerrar',\n    'cancelar',\n    'κλείσιμο',\n    'άκυρο',\n    'zamknij',\n    'anuluj',\n  ];\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-x-twitter',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#000000' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z\" />\n    </svg>\n  `,\n})\nexport class XTwitterIconComponent extends IconComponentBase {\n  static readonly slug = 'x-twitter';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'x-twitter',\n    'x',\n    'twitter',\n    'social',\n    'tweet',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * YouTube brand mark (Eagami brand-filled).\n *\n * @remarks\n * The Feather outline lives at `<ea-icon-youtube>` / `YoutubeIconComponent`.\n * Set the `brand` input to render in the official brand colour.\n */\n@Component({\n  selector: 'ea-icon-youtube-2',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[style.color]': \"brand() ? '#FF0000' : null\" },\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"currentColor\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.546 15.568V8.432L15.818 12l-6.272 3.568Z\" />\n    </svg>\n  `,\n})\nexport class Youtube2IconComponent extends IconComponentBase {\n  static readonly slug = 'youtube-2';\n  static readonly category: IconCategory = 'eagami';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'youtube-2',\n    'youtube',\n    'video',\n    'streaming',\n    'social',\n    'mark',\n  ];\n  readonly brand = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n/**\n * YouTube icon (Feather outline).\n *\n * @remarks\n * The brand-filled YouTube mark lives at `<ea-icon-youtube-2>` /\n * `Youtube2IconComponent`.\n */\n@Component({\n  selector: 'ea-icon-youtube',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <path\n        d=\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\" />\n      <polygon points=\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\" />\n    </svg>\n  `,\n})\nexport class YoutubeIconComponent extends IconComponentBase {\n  static readonly slug = 'youtube';\n  static readonly category: IconCategory = 'feather';\n  static readonly isBrand = true;\n  static readonly tags: ReadonlyArray<string> = [\n    'youtube',\n    'video',\n    'streaming',\n    'social',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-zap-off',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polyline points=\"12.41 6.75 13 2 10.57 4.92\" />\n      <polyline points=\"18.57 12.91 21 10 15.66 10\" />\n      <polyline points=\"8 8 3 14 12 14 11 22 16 16\" />\n      <line\n        x1=\"1\"\n        y1=\"1\"\n        x2=\"23\"\n        y2=\"23\" />\n    </svg>\n  `,\n})\nexport class ZapOffIconComponent extends IconComponentBase {\n  static readonly slug = 'zap-off';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'zap-off',\n    'zap',\n    'off',\n    'lightning',\n    'disabled',\n    'no power',\n    'éclair',\n    'rayo',\n    'αστραπή',\n    'błyskawica',\n    'wyłączone',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-zap',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\" />\n    </svg>\n  `,\n})\nexport class ZapIconComponent extends IconComponentBase {\n  static readonly slug = 'zap';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'zap',\n    'lightning',\n    'bolt',\n    'flash',\n    'electric',\n    'power',\n    'éclair',\n    'foudre',\n    'rayo',\n    'relámpago',\n    'αστραπή',\n    'κεραυνός',\n    'błyskawica',\n    'piorun',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-zoom-in',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"11\"\n        cy=\"11\"\n        r=\"8\" />\n      <line\n        x1=\"21\"\n        y1=\"21\"\n        x2=\"16.65\"\n        y2=\"16.65\" />\n      <line\n        x1=\"11\"\n        y1=\"8\"\n        x2=\"11\"\n        y2=\"14\" />\n      <line\n        x1=\"8\"\n        y1=\"11\"\n        x2=\"14\"\n        y2=\"11\" />\n    </svg>\n  `,\n})\nexport class ZoomInIconComponent extends IconComponentBase {\n  static readonly slug = 'zoom-in';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'zoom-in',\n    'zoom',\n    'in',\n    'magnify',\n    'enlarge',\n    'closer',\n    'agrandir',\n    'acercar',\n    'ampliar',\n    'μεγέθυνση',\n    'εστίαση',\n    'powiększ',\n    'przybliż',\n  ];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { type IconCategory, IconComponentBase } from './icon-category';\n\n@Component({\n  selector: 'ea-icon-zoom-out',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <svg\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      [attr.stroke-width]=\"strokeWidth()\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      aria-hidden=\"true\"\n      width=\"100%\"\n      height=\"100%\">\n      <circle\n        cx=\"11\"\n        cy=\"11\"\n        r=\"8\" />\n      <line\n        x1=\"21\"\n        y1=\"21\"\n        x2=\"16.65\"\n        y2=\"16.65\" />\n      <line\n        x1=\"8\"\n        y1=\"11\"\n        x2=\"14\"\n        y2=\"11\" />\n    </svg>\n  `,\n})\nexport class ZoomOutIconComponent extends IconComponentBase {\n  static readonly slug = 'zoom-out';\n  static readonly category: IconCategory = 'feather';\n  static readonly tags: ReadonlyArray<string> = [\n    'zoom-out',\n    'zoom',\n    'out',\n    'shrink',\n    'reduce',\n    'farther',\n    'réduire',\n    'alejar',\n    'reducir',\n    'σμίκρυνση',\n    'απομάκρυνση',\n    'pomniejsz',\n    'oddal',\n  ];\n}\n","import { ActivityIconComponent } from './activity.component';\nimport { AirplayIconComponent } from './airplay.component';\nimport { AlertCircleIconComponent } from './alert-circle.component';\nimport { AlertOctagonIconComponent } from './alert-octagon.component';\nimport { AlertTriangleIconComponent } from './alert-triangle.component';\nimport { AlignCenterIconComponent } from './align-center.component';\nimport { AlignJustifyIconComponent } from './align-justify.component';\nimport { AlignLeftIconComponent } from './align-left.component';\nimport { AlignRightIconComponent } from './align-right.component';\nimport { AnchorIconComponent } from './anchor.component';\nimport { AndroidIconComponent } from './android.component';\nimport { AngularIconComponent } from './angular.component';\nimport { AnthropicIconComponent } from './anthropic.component';\nimport { ApertureIconComponent } from './aperture.component';\nimport { ArchiveIconComponent } from './archive.component';\nimport { ArrayIconComponent } from './array.component';\nimport { ArrowDownCircleIconComponent } from './arrow-down-circle.component';\nimport { ArrowDownLeftIconComponent } from './arrow-down-left.component';\nimport { ArrowDownRightIconComponent } from './arrow-down-right.component';\nimport { ArrowDownIconComponent } from './arrow-down.component';\nimport { ArrowLeftCircleIconComponent } from './arrow-left-circle.component';\nimport { ArrowLeftIconComponent } from './arrow-left.component';\nimport { ArrowRightCircleIconComponent } from './arrow-right-circle.component';\nimport { ArrowRightIconComponent } from './arrow-right.component';\nimport { ArrowUpCircleIconComponent } from './arrow-up-circle.component';\nimport { ArrowUpLeftIconComponent } from './arrow-up-left.component';\nimport { ArrowUpRightIconComponent } from './arrow-up-right.component';\nimport { ArrowUpIconComponent } from './arrow-up.component';\nimport { AspectRatioIconComponent } from './aspect-ratio.component';\nimport { AtSignIconComponent } from './at-sign.component';\nimport { AwardIconComponent } from './award.component';\nimport { BadgeCheckIconComponent } from './badge-check.component';\nimport { BarChart2IconComponent } from './bar-chart-2.component';\nimport { BarChartIconComponent } from './bar-chart.component';\nimport { BatteryChargingIconComponent } from './battery-charging.component';\nimport { BatteryIconComponent } from './battery.component';\nimport { BellOffIconComponent } from './bell-off.component';\nimport { BellRingIconComponent } from './bell-ring.component';\nimport { BellIconComponent } from './bell.component';\nimport { BitcoinIconComponent } from './bitcoin.component';\nimport { BlueskyIconComponent } from './bluesky.component';\nimport { BluetoothIconComponent } from './bluetooth.component';\nimport { BoldIconComponent } from './bold.component';\nimport { BookOpenIconComponent } from './book-open.component';\nimport { BookIconComponent } from './book.component';\nimport { BookmarkCheckIconComponent } from './bookmark-check.component';\nimport { BookmarkPlusIconComponent } from './bookmark-plus.component';\nimport { BookmarkIconComponent } from './bookmark.component';\nimport { BotIconComponent } from './bot.component';\nimport { BottleIconComponent } from './bottle.component';\nimport { BoxIconComponent } from './box.component';\nimport { BrainIconComponent } from './brain.component';\nimport { BriefcaseIconComponent } from './briefcase.component';\nimport { BugIconComponent } from './bug.component';\nimport { BuildingIconComponent } from './building.component';\nimport { CalculatorIconComponent } from './calculator.component';\nimport { CalendarCheckIconComponent } from './calendar-check.component';\nimport { CalendarDaysIconComponent } from './calendar-days.component';\nimport { CalendarIconComponent } from './calendar.component';\nimport { CameraOffIconComponent } from './camera-off.component';\nimport { CameraIconComponent } from './camera.component';\nimport { CandleIconComponent } from './candle.component';\nimport { CastIconComponent } from './cast.component';\nimport { CheckCircleIconComponent } from './check-circle.component';\nimport { CheckSquareIconComponent } from './check-square.component';\nimport { CheckIconComponent } from './check.component';\nimport { ChevronDownIconComponent } from './chevron-down.component';\nimport { ChevronLeftIconComponent } from './chevron-left.component';\nimport { ChevronRightIconComponent } from './chevron-right.component';\nimport { ChevronUpIconComponent } from './chevron-up.component';\nimport { ChevronsDownIconComponent } from './chevrons-down.component';\nimport { ChevronsLeftIconComponent } from './chevrons-left.component';\nimport { ChevronsRightIconComponent } from './chevrons-right.component';\nimport { ChevronsUpDownIconComponent } from './chevrons-up-down.component';\nimport { ChevronsUpIconComponent } from './chevrons-up.component';\nimport { ChromeIconComponent } from './chrome.component';\nimport { CircleIconComponent } from './circle.component';\nimport { ClapperboardIconComponent } from './clapperboard.component';\nimport { ClipboardCheckIconComponent } from './clipboard-check.component';\nimport { ClipboardListIconComponent } from './clipboard-list.component';\nimport { ClipboardIconComponent } from './clipboard.component';\nimport { ClockIconComponent } from './clock.component';\nimport { CloudDrizzleIconComponent } from './cloud-drizzle.component';\nimport { CloudLightningIconComponent } from './cloud-lightning.component';\nimport { CloudOffIconComponent } from './cloud-off.component';\nimport { CloudRainIconComponent } from './cloud-rain.component';\nimport { CloudSnowIconComponent } from './cloud-snow.component';\nimport { CloudIconComponent } from './cloud.component';\nimport { CloudflareIconComponent } from './cloudflare.component';\nimport { CodeIconComponent } from './code.component';\nimport { CodepenIconComponent } from './codepen.component';\nimport { CodesandboxIconComponent } from './codesandbox.component';\nimport { CoffeeIconComponent } from './coffee.component';\nimport { CoinsIconComponent } from './coins.component';\nimport { ColumnsIconComponent } from './columns.component';\nimport { CommandIconComponent } from './command.component';\nimport { CompassIconComponent } from './compass.component';\nimport { ContrastIconComponent } from './contrast.component';\nimport { CopyIconComponent } from './copy.component';\nimport { CornerDownLeftIconComponent } from './corner-down-left.component';\nimport { CornerDownRightIconComponent } from './corner-down-right.component';\nimport { CornerLeftDownIconComponent } from './corner-left-down.component';\nimport { CornerLeftUpIconComponent } from './corner-left-up.component';\nimport { CornerRightDownIconComponent } from './corner-right-down.component';\nimport { CornerRightUpIconComponent } from './corner-right-up.component';\nimport { CornerUpLeftIconComponent } from './corner-up-left.component';\nimport { CornerUpRightIconComponent } from './corner-up-right.component';\nimport { CpuIconComponent } from './cpu.component';\nimport { CreditCardIconComponent } from './credit-card.component';\nimport { CropIconComponent } from './crop.component';\nimport { CrosshairIconComponent } from './crosshair.component';\nimport { DatabaseIconComponent } from './database.component';\nimport { DeleteIconComponent } from './delete.component';\nimport { Dice1IconComponent } from './dice-1.component';\nimport { Dice2IconComponent } from './dice-2.component';\nimport { Dice3IconComponent } from './dice-3.component';\nimport { Dice4IconComponent } from './dice-4.component';\nimport { Dice5IconComponent } from './dice-5.component';\nimport { Dice6IconComponent } from './dice-6.component';\nimport { DiscIconComponent } from './disc.component';\nimport { DiscordIconComponent } from './discord.component';\nimport { DivideCircleIconComponent } from './divide-circle.component';\nimport { DivideSquareIconComponent } from './divide-square.component';\nimport { DivideIconComponent } from './divide.component';\nimport { DockerIconComponent } from './docker.component';\nimport { DollarSignIconComponent } from './dollar-sign.component';\nimport { DoubleExclamationMarkIconComponent } from './double-exclamation-mark.component';\nimport { DoubleQuestionMarkIconComponent } from './double-question-mark.component';\nimport { DownloadCloudIconComponent } from './download-cloud.component';\nimport { DownloadIconComponent } from './download.component';\nimport { DribbbleIconComponent } from './dribbble.component';\nimport { DropboxIconComponent } from './dropbox.component';\nimport { DropletIconComponent } from './droplet.component';\nimport { EagamiIconComponent } from './eagami.component';\nimport { Edit2IconComponent } from './edit-2.component';\nimport { Edit3IconComponent } from './edit-3.component';\nimport { EditIconComponent } from './edit.component';\nimport { ExclamationMarkIconComponent } from './exclamation-mark.component';\nimport { ExclamationQuestionMarkIconComponent } from './exclamation-question-mark.component';\nimport { ExternalLinkIconComponent } from './external-link.component';\nimport { EyeOffIconComponent } from './eye-off.component';\nimport { EyeIconComponent } from './eye.component';\nimport { Facebook2IconComponent } from './facebook-2.component';\nimport { FacebookIconComponent } from './facebook.component';\nimport { FastForwardIconComponent } from './fast-forward.component';\nimport { FeatherIconComponent } from './feather.component';\nimport { Figma2IconComponent } from './figma-2.component';\nimport { FigmaIconComponent } from './figma.component';\nimport { FileAudioIconComponent } from './file-audio.component';\nimport { FileCheckIconComponent } from './file-check.component';\nimport { FileImageIconComponent } from './file-image.component';\nimport { FileMinusIconComponent } from './file-minus.component';\nimport { FilePdfIconComponent } from './file-pdf.component';\nimport { FilePlusIconComponent } from './file-plus.component';\nimport { FileTextIconComponent } from './file-text.component';\nimport { FileVideoIconComponent } from './file-video.component';\nimport { FileIconComponent } from './file.component';\nimport { FilmIconComponent } from './film.component';\nimport { FilterXIconComponent } from './filter-x.component';\nimport { FilterIconComponent } from './filter.component';\nimport { FingerprintIconComponent } from './fingerprint.component';\nimport { FirstPlaceMedalIconComponent } from './first-place-medal.component';\nimport { FlagIconComponent } from './flag.component';\nimport { FlameIconComponent } from './flame.component';\nimport { FolderMinusIconComponent } from './folder-minus.component';\nimport { FolderOpenIconComponent } from './folder-open.component';\nimport { FolderPlusIconComponent } from './folder-plus.component';\nimport { FolderIconComponent } from './folder.component';\nimport { FramerIconComponent } from './framer.component';\nimport { FrownIconComponent } from './frown.component';\nimport { GaugeIconComponent } from './gauge.component';\nimport { GeminiIconComponent } from './gemini.component';\nimport { GiftIconComponent } from './gift.component';\nimport { GitBranchIconComponent } from './git-branch.component';\nimport { GitCommitIconComponent } from './git-commit.component';\nimport { GitCompareIconComponent } from './git-compare.component';\nimport { GitMergeIconComponent } from './git-merge.component';\nimport { GitPullRequestIconComponent } from './git-pull-request.component';\nimport { Github2IconComponent } from './github-2.component';\nimport { GithubIconComponent } from './github.component';\nimport { GitlabIconComponent } from './gitlab.component';\nimport { GlobeIconComponent } from './globe.component';\nimport { GoogleIconComponent } from './google.component';\nimport { GridIconComponent } from './grid.component';\nimport { HalfCircleIconComponent } from './half-circle.component';\nimport { HalfHeartIconComponent } from './half-heart.component';\nimport { HardDriveIconComponent } from './hard-drive.component';\nimport { HashIconComponent } from './hash.component';\nimport { HeadphonesIconComponent } from './headphones.component';\nimport { HeartIconComponent } from './heart.component';\nimport { HelpCircleIconComponent } from './help-circle.component';\nimport { HeptagonIconComponent } from './heptagon.component';\nimport { HexagonIconComponent } from './hexagon.component';\nimport { HistoryIconComponent } from './history.component';\nimport { HomeIconComponent } from './home.component';\nimport type { IconComponentType } from './icon-category';\nimport { ImagePlusIconComponent } from './image-plus.component';\nimport { ImageSearchIconComponent } from './image-search.component';\nimport { ImageIconComponent } from './image.component';\nimport { ImagesIconComponent } from './images.component';\nimport { InboxIconComponent } from './inbox.component';\nimport { InfoIconComponent } from './info.component';\nimport { InstagramIconComponent } from './instagram.component';\nimport { ItalicIconComponent } from './italic.component';\nimport { KeyIconComponent } from './key.component';\nimport { KeyboardIconComponent } from './keyboard.component';\nimport { KeyframeIconComponent } from './keyframe.component';\nimport { KubernetesIconComponent } from './kubernetes.component';\nimport { LampIconComponent } from './lamp.component';\nimport { LanguagesIconComponent } from './languages.component';\nimport { LaptopIconComponent } from './laptop.component';\nimport { LayersIconComponent } from './layers.component';\nimport { LayoutIconComponent } from './layout.component';\nimport { LeafIconComponent } from './leaf.component';\nimport { LeftHalfStarIconComponent } from './left-half-star.component';\nimport { LifeBuoyIconComponent } from './life-buoy.component';\nimport { LightbulbIconComponent } from './lightbulb.component';\nimport { Link2IconComponent } from './link-2.component';\nimport { LinkIconComponent } from './link.component';\nimport { Linkedin2IconComponent } from './linkedin-2.component';\nimport { LinkedinIconComponent } from './linkedin.component';\nimport { ListChecksIconComponent } from './list-checks.component';\nimport { ListIconComponent } from './list.component';\nimport { LoaderIconComponent } from './loader.component';\nimport { LockIconComponent } from './lock.component';\nimport { LogInIconComponent } from './log-in.component';\nimport { LogOutIconComponent } from './log-out.component';\nimport { MailCheckIconComponent } from './mail-check.component';\nimport { MailIconComponent } from './mail.component';\nimport { MapPinIconComponent } from './map-pin.component';\nimport { MapIconComponent } from './map.component';\nimport { MastercardIconComponent } from './mastercard.component';\nimport { Maximize2IconComponent } from './maximize-2.component';\nimport { MaximizeIconComponent } from './maximize.component';\nimport { MegaphoneIconComponent } from './megaphone.component';\nimport { MehIconComponent } from './meh.component';\nimport { MenuIconComponent } from './menu.component';\nimport { MessageCircleIconComponent } from './message-circle.component';\nimport { MessageSquareIconComponent } from './message-square.component';\nimport { MicOffIconComponent } from './mic-off.component';\nimport { MicIconComponent } from './mic.component';\nimport { MicroscopeIconComponent } from './microscope.component';\nimport { MicrosoftIconComponent } from './microsoft.component';\nimport { Minimize2IconComponent } from './minimize-2.component';\nimport { MinimizeIconComponent } from './minimize.component';\nimport { MinusCircleIconComponent } from './minus-circle.component';\nimport { MinusSquareIconComponent } from './minus-square.component';\nimport { MinusIconComponent } from './minus.component';\nimport { MongodbIconComponent } from './mongodb.component';\nimport { MonitorIconComponent } from './monitor.component';\nimport { MoonIconComponent } from './moon.component';\nimport { MoreHorizontalIconComponent } from './more-horizontal.component';\nimport { MoreVerticalIconComponent } from './more-vertical.component';\nimport { MousePointerIconComponent } from './mouse-pointer.component';\nimport { MoveIconComponent } from './move.component';\nimport { MusicIconComponent } from './music.component';\nimport { Navigation2IconComponent } from './navigation-2.component';\nimport { NavigationIconComponent } from './navigation.component';\nimport { NetlifyIconComponent } from './netlify.component';\nimport { NewspaperIconComponent } from './newspaper.component';\nimport { NodejsIconComponent } from './nodejs.component';\nimport { NotionIconComponent } from './notion.component';\nimport { NpmIconComponent } from './npm.component';\nimport { OctagonIconComponent } from './octagon.component';\nimport { PackageIconComponent } from './package.component';\nimport { PaletteIconComponent } from './palette.component';\nimport { PaperclipIconComponent } from './paperclip.component';\nimport { PauseCircleIconComponent } from './pause-circle.component';\nimport { PauseIconComponent } from './pause.component';\nimport { PaypalIconComponent } from './paypal.component';\nimport { PenToolIconComponent } from './pen-tool.component';\nimport { PentagonIconComponent } from './pentagon.component';\nimport { PercentIconComponent } from './percent.component';\nimport { PhoneCallIconComponent } from './phone-call.component';\nimport { PhoneForwardedIconComponent } from './phone-forwarded.component';\nimport { PhoneIncomingIconComponent } from './phone-incoming.component';\nimport { PhoneMissedIconComponent } from './phone-missed.component';\nimport { PhoneOffIconComponent } from './phone-off.component';\nimport { PhoneOutgoingIconComponent } from './phone-outgoing.component';\nimport { PhoneIconComponent } from './phone.component';\nimport { PictureInPictureIconComponent } from './picture-in-picture.component';\nimport { PieChartIconComponent } from './pie-chart.component';\nimport { PinIconComponent } from './pin.component';\nimport { PinterestIconComponent } from './pinterest.component';\nimport { PlayCircleIconComponent } from './play-circle.component';\nimport { PlayIconComponent } from './play.component';\nimport { PlaylistIconComponent } from './playlist.component';\nimport { PlugIconComponent } from './plug.component';\nimport { PlusCircleIconComponent } from './plus-circle.component';\nimport { PlusSquareIconComponent } from './plus-square.component';\nimport { PlusIconComponent } from './plus.component';\nimport { PocketIconComponent } from './pocket.component';\nimport { PowerIconComponent } from './power.component';\nimport { PrinterIconComponent } from './printer.component';\nimport { PythonIconComponent } from './python.component';\nimport { QrCodeIconComponent } from './qr-code.component';\nimport { QuestionExclamationMarkIconComponent } from './question-exclamation-mark.component';\nimport { QuestionMarkIconComponent } from './question-mark.component';\nimport { RadioIconComponent } from './radio.component';\nimport { ReactIconComponent } from './react.component';\nimport { ReceiptIconComponent } from './receipt.component';\nimport { RecordIconComponent } from './record.component';\nimport { RectangleHorizontalIconComponent } from './rectangle-horizontal.component';\nimport { RectangleVerticalIconComponent } from './rectangle-vertical.component';\nimport { RedditIconComponent } from './reddit.component';\nimport { RedoIconComponent } from './redo.component';\nimport { RefreshCcwIconComponent } from './refresh-ccw.component';\nimport { RefreshCwIconComponent } from './refresh-cw.component';\nimport { RepeatIconComponent } from './repeat.component';\nimport { RewindIconComponent } from './rewind.component';\nimport { RightHalfStarIconComponent } from './right-half-star.component';\nimport { RocketIconComponent } from './rocket.component';\nimport { RotateCcwSquareIconComponent } from './rotate-ccw-square.component';\nimport { RotateCcwIconComponent } from './rotate-ccw.component';\nimport { RotateCwIconComponent } from './rotate-cw.component';\nimport { RowsIconComponent } from './rows.component';\nimport { RssIconComponent } from './rss.component';\nimport { SaveIconComponent } from './save.component';\nimport { ScanIconComponent } from './scan.component';\nimport { ScissorsIconComponent } from './scissors.component';\nimport { SearchIconComponent } from './search.component';\nimport { SecondPlaceMedalIconComponent } from './second-place-medal.component';\nimport { SendIconComponent } from './send.component';\nimport { ServerIconComponent } from './server.component';\nimport { SettingsIconComponent } from './settings.component';\nimport { ShareIconComponent } from './share.component';\nimport { ShieldCheckIconComponent } from './shield-check.component';\nimport { ShieldOffIconComponent } from './shield-off.component';\nimport { ShieldIconComponent } from './shield.component';\nimport { ShopifyIconComponent } from './shopify.component';\nimport { ShoppingBagIconComponent } from './shopping-bag.component';\nimport { ShoppingCartIconComponent } from './shopping-cart.component';\nimport { ShuffleIconComponent } from './shuffle.component';\nimport { SidebarIconComponent } from './sidebar.component';\nimport { SkipBackIconComponent } from './skip-back.component';\nimport { SkipForwardIconComponent } from './skip-forward.component';\nimport { Slack2IconComponent } from './slack-2.component';\nimport { SlackIconComponent } from './slack.component';\nimport { SlashIconComponent } from './slash.component';\nimport { SlidersIconComponent } from './sliders.component';\nimport { SmartphoneIconComponent } from './smartphone.component';\nimport { SmileIconComponent } from './smile.component';\nimport { SnowflakeIconComponent } from './snowflake.component';\nimport { SoccerBallIconComponent } from './soccer-ball.component';\nimport { SparklesIconComponent } from './sparkles.component';\nimport { SpeakerIconComponent } from './speaker.component';\nimport { SpotifyIconComponent } from './spotify.component';\nimport { SquareIconComponent } from './square.component';\nimport { StarIconComponent } from './star.component';\nimport { StopCircleIconComponent } from './stop-circle.component';\nimport { StripeIconComponent } from './stripe.component';\nimport { SubtitlesIconComponent } from './subtitles.component';\nimport { SunIconComponent } from './sun.component';\nimport { SunriseIconComponent } from './sunrise.component';\nimport { SunsetIconComponent } from './sunset.component';\nimport { SvelteIconComponent } from './svelte.component';\nimport { TableIconComponent } from './table.component';\nimport { TabletIconComponent } from './tablet.component';\nimport { TagIconComponent } from './tag.component';\nimport { TailwindIconComponent } from './tailwind.component';\nimport { TargetIconComponent } from './target.component';\nimport { TelegramIconComponent } from './telegram.component';\nimport { TerminalIconComponent } from './terminal.component';\nimport { ThermometerIconComponent } from './thermometer.component';\nimport { ThirdPlaceMedalIconComponent } from './third-place-medal.component';\nimport { ThreadsIconComponent } from './threads.component';\nimport { ThumbsDownIconComponent } from './thumbs-down.component';\nimport { ThumbsUpIconComponent } from './thumbs-up.component';\nimport { TiktokIconComponent } from './tiktok.component';\nimport { TimecodeIconComponent } from './timecode.component';\nimport { TimerIconComponent } from './timer.component';\nimport { ToggleLeftIconComponent } from './toggle-left.component';\nimport { ToggleRightIconComponent } from './toggle-right.component';\nimport { ToolIconComponent } from './tool.component';\nimport { TranscodeIconComponent } from './transcode.component';\nimport { Trash2IconComponent } from './trash-2.component';\nimport { TrashIconComponent } from './trash.component';\nimport { TrelloIconComponent } from './trello.component';\nimport { TrendingDownIconComponent } from './trending-down.component';\nimport { TrendingUpIconComponent } from './trending-up.component';\nimport { TriangleIconComponent } from './triangle.component';\nimport { TrimIconComponent } from './trim.component';\nimport { TrophyIconComponent } from './trophy.component';\nimport { TruckIconComponent } from './truck.component';\nimport { TvIconComponent } from './tv.component';\nimport { Twitch2IconComponent } from './twitch-2.component';\nimport { TwitchIconComponent } from './twitch.component';\nimport { TwitterIconComponent } from './twitter.component';\nimport { TypeIconComponent } from './type.component';\nimport { UmbrellaIconComponent } from './umbrella.component';\nimport { UnderlineIconComponent } from './underline.component';\nimport { UndoIconComponent } from './undo.component';\nimport { UnlockIconComponent } from './unlock.component';\nimport { UploadCloudIconComponent } from './upload-cloud.component';\nimport { UploadIconComponent } from './upload.component';\nimport { UserCheckIconComponent } from './user-check.component';\nimport { UserMinusIconComponent } from './user-minus.component';\nimport { UserPlusIconComponent } from './user-plus.component';\nimport { UserXIconComponent } from './user-x.component';\nimport { UserIconComponent } from './user.component';\nimport { UsersIconComponent } from './users.component';\nimport { VercelIconComponent } from './vercel.component';\nimport { VideoOffIconComponent } from './video-off.component';\nimport { VideoIconComponent } from './video.component';\nimport { VoicemailIconComponent } from './voicemail.component';\nimport { Volume1IconComponent } from './volume-1.component';\nimport { Volume2IconComponent } from './volume-2.component';\nimport { VolumeXIconComponent } from './volume-x.component';\nimport { VolumeIconComponent } from './volume.component';\nimport { VueIconComponent } from './vue.component';\nimport { WalletIconComponent } from './wallet.component';\nimport { WandIconComponent } from './wand.component';\nimport { WatchIconComponent } from './watch.component';\nimport { WaveformIconComponent } from './waveform.component';\nimport { WhatsappIconComponent } from './whatsapp.component';\nimport { WifiOffIconComponent } from './wifi-off.component';\nimport { WifiIconComponent } from './wifi.component';\nimport { WindIconComponent } from './wind.component';\nimport { WordpressIconComponent } from './wordpress.component';\nimport { XCircleIconComponent } from './x-circle.component';\nimport { XOctagonIconComponent } from './x-octagon.component';\nimport { XSquareIconComponent } from './x-square.component';\nimport { XTwitterIconComponent } from './x-twitter.component';\nimport { XIconComponent } from './x.component';\nimport { Youtube2IconComponent } from './youtube-2.component';\nimport { YoutubeIconComponent } from './youtube.component';\nimport { ZapOffIconComponent } from './zap-off.component';\nimport { ZapIconComponent } from './zap.component';\nimport { ZoomInIconComponent } from './zoom-in.component';\nimport { ZoomOutIconComponent } from './zoom-out.component';\n\n/**\n * Flat list of every non-deprecated icon component shipped by Eagami UI,\n * sorted by `slug` so that consumers iterating it (the `/ui/icons` reference\n * page, the sandbox gallery, downstream pickers) get a stable alphabetical\n * order where a base icon always precedes its `-2` variant (e.g. `facebook`\n * before `facebook-2`). The literal below is kept in class-name order so a new\n * icon has one obvious insertion point; the `.sort()` at the bottom is the\n * source of truth for consumers.\n *\n * Bundle-size note: importing this constant brings every icon component into\n * the consuming bundle, which is the right trade-off when you actually want\n * the full set. For single-icon usage import the component directly (e.g.\n * `import { HomeIconComponent } from '@eagami/ui'`) and the bundler will\n * tree-shake `ICONS` away.\n */\nexport const ICONS: ReadonlyArray<IconComponentType> = (\n  [\n    ActivityIconComponent,\n    AirplayIconComponent,\n    AlertCircleIconComponent,\n    AlertOctagonIconComponent,\n    AlertTriangleIconComponent,\n    AlignCenterIconComponent,\n    AlignJustifyIconComponent,\n    AlignLeftIconComponent,\n    AlignRightIconComponent,\n    AnchorIconComponent,\n    AndroidIconComponent,\n    AngularIconComponent,\n    AnthropicIconComponent,\n    ApertureIconComponent,\n    ArchiveIconComponent,\n    ArrayIconComponent,\n    ArrowDownCircleIconComponent,\n    ArrowDownIconComponent,\n    ArrowDownLeftIconComponent,\n    ArrowDownRightIconComponent,\n    ArrowLeftCircleIconComponent,\n    ArrowLeftIconComponent,\n    ArrowRightCircleIconComponent,\n    ArrowRightIconComponent,\n    ArrowUpCircleIconComponent,\n    ArrowUpIconComponent,\n    ArrowUpLeftIconComponent,\n    ArrowUpRightIconComponent,\n    AspectRatioIconComponent,\n    AtSignIconComponent,\n    AwardIconComponent,\n    BadgeCheckIconComponent,\n    BarChart2IconComponent,\n    BarChartIconComponent,\n    BatteryChargingIconComponent,\n    BatteryIconComponent,\n    BellIconComponent,\n    BellOffIconComponent,\n    BellRingIconComponent,\n    BitcoinIconComponent,\n    BlueskyIconComponent,\n    BluetoothIconComponent,\n    BoldIconComponent,\n    BookIconComponent,\n    BookOpenIconComponent,\n    BookmarkCheckIconComponent,\n    BookmarkIconComponent,\n    BookmarkPlusIconComponent,\n    BotIconComponent,\n    BottleIconComponent,\n    BoxIconComponent,\n    BrainIconComponent,\n    BriefcaseIconComponent,\n    BugIconComponent,\n    BuildingIconComponent,\n    CalculatorIconComponent,\n    CalendarCheckIconComponent,\n    CalendarDaysIconComponent,\n    CalendarIconComponent,\n    CameraIconComponent,\n    CameraOffIconComponent,\n    CandleIconComponent,\n    CastIconComponent,\n    CheckCircleIconComponent,\n    CheckIconComponent,\n    CheckSquareIconComponent,\n    ChevronDownIconComponent,\n    ChevronLeftIconComponent,\n    ChevronRightIconComponent,\n    ChevronUpIconComponent,\n    ChevronsDownIconComponent,\n    ChevronsLeftIconComponent,\n    ChevronsRightIconComponent,\n    ChevronsUpDownIconComponent,\n    ChevronsUpIconComponent,\n    ChromeIconComponent,\n    CircleIconComponent,\n    ClapperboardIconComponent,\n    ClipboardCheckIconComponent,\n    ClipboardIconComponent,\n    ClipboardListIconComponent,\n    ClockIconComponent,\n    CloudDrizzleIconComponent,\n    CloudIconComponent,\n    CloudLightningIconComponent,\n    CloudOffIconComponent,\n    CloudRainIconComponent,\n    CloudSnowIconComponent,\n    CloudflareIconComponent,\n    CodeIconComponent,\n    CodepenIconComponent,\n    CodesandboxIconComponent,\n    CoffeeIconComponent,\n    CoinsIconComponent,\n    ColumnsIconComponent,\n    CommandIconComponent,\n    CompassIconComponent,\n    ContrastIconComponent,\n    CopyIconComponent,\n    CornerDownLeftIconComponent,\n    CornerDownRightIconComponent,\n    CornerLeftDownIconComponent,\n    CornerLeftUpIconComponent,\n    CornerRightDownIconComponent,\n    CornerRightUpIconComponent,\n    CornerUpLeftIconComponent,\n    CornerUpRightIconComponent,\n    CpuIconComponent,\n    CreditCardIconComponent,\n    CropIconComponent,\n    CrosshairIconComponent,\n    DatabaseIconComponent,\n    DeleteIconComponent,\n    Dice1IconComponent,\n    Dice2IconComponent,\n    Dice3IconComponent,\n    Dice4IconComponent,\n    Dice5IconComponent,\n    Dice6IconComponent,\n    DiscIconComponent,\n    DiscordIconComponent,\n    DivideCircleIconComponent,\n    DivideIconComponent,\n    DivideSquareIconComponent,\n    DockerIconComponent,\n    DollarSignIconComponent,\n    DoubleExclamationMarkIconComponent,\n    DoubleQuestionMarkIconComponent,\n    DownloadCloudIconComponent,\n    DownloadIconComponent,\n    DribbbleIconComponent,\n    DropboxIconComponent,\n    DropletIconComponent,\n    EagamiIconComponent,\n    Edit2IconComponent,\n    Edit3IconComponent,\n    EditIconComponent,\n    ExclamationMarkIconComponent,\n    ExclamationQuestionMarkIconComponent,\n    ExternalLinkIconComponent,\n    EyeIconComponent,\n    EyeOffIconComponent,\n    Facebook2IconComponent,\n    FacebookIconComponent,\n    FastForwardIconComponent,\n    FeatherIconComponent,\n    Figma2IconComponent,\n    FigmaIconComponent,\n    FileAudioIconComponent,\n    FileCheckIconComponent,\n    FileIconComponent,\n    FileImageIconComponent,\n    FileMinusIconComponent,\n    FilePdfIconComponent,\n    FilePlusIconComponent,\n    FileTextIconComponent,\n    FileVideoIconComponent,\n    FilmIconComponent,\n    FilterIconComponent,\n    FilterXIconComponent,\n    FingerprintIconComponent,\n    FirstPlaceMedalIconComponent,\n    FlagIconComponent,\n    FlameIconComponent,\n    FolderIconComponent,\n    FolderMinusIconComponent,\n    FolderOpenIconComponent,\n    FolderPlusIconComponent,\n    FramerIconComponent,\n    FrownIconComponent,\n    GaugeIconComponent,\n    GeminiIconComponent,\n    GiftIconComponent,\n    GitBranchIconComponent,\n    GitCommitIconComponent,\n    GitCompareIconComponent,\n    GitMergeIconComponent,\n    GitPullRequestIconComponent,\n    Github2IconComponent,\n    GithubIconComponent,\n    GitlabIconComponent,\n    GlobeIconComponent,\n    GoogleIconComponent,\n    GridIconComponent,\n    HalfCircleIconComponent,\n    HalfHeartIconComponent,\n    HardDriveIconComponent,\n    HashIconComponent,\n    HeadphonesIconComponent,\n    HeartIconComponent,\n    HelpCircleIconComponent,\n    HeptagonIconComponent,\n    HexagonIconComponent,\n    HistoryIconComponent,\n    HomeIconComponent,\n    ImageIconComponent,\n    ImagePlusIconComponent,\n    ImageSearchIconComponent,\n    ImagesIconComponent,\n    InboxIconComponent,\n    InfoIconComponent,\n    InstagramIconComponent,\n    ItalicIconComponent,\n    KeyIconComponent,\n    KeyboardIconComponent,\n    KeyframeIconComponent,\n    KubernetesIconComponent,\n    LampIconComponent,\n    LanguagesIconComponent,\n    LaptopIconComponent,\n    LayersIconComponent,\n    LayoutIconComponent,\n    LeafIconComponent,\n    LeftHalfStarIconComponent,\n    LifeBuoyIconComponent,\n    LightbulbIconComponent,\n    Link2IconComponent,\n    LinkIconComponent,\n    Linkedin2IconComponent,\n    LinkedinIconComponent,\n    ListChecksIconComponent,\n    ListIconComponent,\n    LoaderIconComponent,\n    LockIconComponent,\n    LogInIconComponent,\n    LogOutIconComponent,\n    MailCheckIconComponent,\n    MailIconComponent,\n    MapIconComponent,\n    MapPinIconComponent,\n    MastercardIconComponent,\n    Maximize2IconComponent,\n    MaximizeIconComponent,\n    MegaphoneIconComponent,\n    MehIconComponent,\n    MenuIconComponent,\n    MessageCircleIconComponent,\n    MessageSquareIconComponent,\n    MicIconComponent,\n    MicOffIconComponent,\n    MicroscopeIconComponent,\n    MicrosoftIconComponent,\n    Minimize2IconComponent,\n    MinimizeIconComponent,\n    MinusCircleIconComponent,\n    MinusIconComponent,\n    MinusSquareIconComponent,\n    MongodbIconComponent,\n    MonitorIconComponent,\n    MoonIconComponent,\n    MoreHorizontalIconComponent,\n    MoreVerticalIconComponent,\n    MousePointerIconComponent,\n    MoveIconComponent,\n    MusicIconComponent,\n    Navigation2IconComponent,\n    NavigationIconComponent,\n    NetlifyIconComponent,\n    NewspaperIconComponent,\n    NodejsIconComponent,\n    NotionIconComponent,\n    NpmIconComponent,\n    OctagonIconComponent,\n    PackageIconComponent,\n    PaletteIconComponent,\n    PaperclipIconComponent,\n    PauseCircleIconComponent,\n    PauseIconComponent,\n    PaypalIconComponent,\n    PenToolIconComponent,\n    PentagonIconComponent,\n    PercentIconComponent,\n    PhoneCallIconComponent,\n    PhoneForwardedIconComponent,\n    PhoneIconComponent,\n    PhoneIncomingIconComponent,\n    PhoneMissedIconComponent,\n    PhoneOffIconComponent,\n    PhoneOutgoingIconComponent,\n    PictureInPictureIconComponent,\n    PieChartIconComponent,\n    PinIconComponent,\n    PinterestIconComponent,\n    PlayCircleIconComponent,\n    PlayIconComponent,\n    PlaylistIconComponent,\n    PlugIconComponent,\n    PlusCircleIconComponent,\n    PlusIconComponent,\n    PlusSquareIconComponent,\n    PocketIconComponent,\n    PowerIconComponent,\n    PrinterIconComponent,\n    PythonIconComponent,\n    QrCodeIconComponent,\n    QuestionExclamationMarkIconComponent,\n    QuestionMarkIconComponent,\n    RadioIconComponent,\n    ReactIconComponent,\n    ReceiptIconComponent,\n    RecordIconComponent,\n    RectangleHorizontalIconComponent,\n    RectangleVerticalIconComponent,\n    RedditIconComponent,\n    RedoIconComponent,\n    RefreshCcwIconComponent,\n    RefreshCwIconComponent,\n    RepeatIconComponent,\n    RewindIconComponent,\n    RightHalfStarIconComponent,\n    RocketIconComponent,\n    RotateCcwIconComponent,\n    RotateCcwSquareIconComponent,\n    RotateCwIconComponent,\n    RowsIconComponent,\n    RssIconComponent,\n    SaveIconComponent,\n    ScanIconComponent,\n    ScissorsIconComponent,\n    SearchIconComponent,\n    SecondPlaceMedalIconComponent,\n    SendIconComponent,\n    ServerIconComponent,\n    SettingsIconComponent,\n    ShareIconComponent,\n    ShieldCheckIconComponent,\n    ShieldIconComponent,\n    ShieldOffIconComponent,\n    ShopifyIconComponent,\n    ShoppingBagIconComponent,\n    ShoppingCartIconComponent,\n    ShuffleIconComponent,\n    SidebarIconComponent,\n    SkipBackIconComponent,\n    SkipForwardIconComponent,\n    Slack2IconComponent,\n    SlackIconComponent,\n    SlashIconComponent,\n    SlidersIconComponent,\n    SmartphoneIconComponent,\n    SmileIconComponent,\n    SnowflakeIconComponent,\n    SoccerBallIconComponent,\n    SparklesIconComponent,\n    SpeakerIconComponent,\n    SpotifyIconComponent,\n    SquareIconComponent,\n    StarIconComponent,\n    StopCircleIconComponent,\n    StripeIconComponent,\n    SubtitlesIconComponent,\n    SunIconComponent,\n    SunriseIconComponent,\n    SunsetIconComponent,\n    SvelteIconComponent,\n    TableIconComponent,\n    TabletIconComponent,\n    TagIconComponent,\n    TailwindIconComponent,\n    TargetIconComponent,\n    TelegramIconComponent,\n    TerminalIconComponent,\n    ThermometerIconComponent,\n    ThirdPlaceMedalIconComponent,\n    ThreadsIconComponent,\n    ThumbsDownIconComponent,\n    ThumbsUpIconComponent,\n    TiktokIconComponent,\n    TimecodeIconComponent,\n    TimerIconComponent,\n    ToggleLeftIconComponent,\n    ToggleRightIconComponent,\n    ToolIconComponent,\n    TranscodeIconComponent,\n    Trash2IconComponent,\n    TrashIconComponent,\n    TrelloIconComponent,\n    TrendingDownIconComponent,\n    TrendingUpIconComponent,\n    TriangleIconComponent,\n    TrimIconComponent,\n    TrophyIconComponent,\n    TruckIconComponent,\n    TvIconComponent,\n    Twitch2IconComponent,\n    TwitchIconComponent,\n    TwitterIconComponent,\n    TypeIconComponent,\n    UmbrellaIconComponent,\n    UnderlineIconComponent,\n    UndoIconComponent,\n    UnlockIconComponent,\n    UploadCloudIconComponent,\n    UploadIconComponent,\n    UserCheckIconComponent,\n    UserIconComponent,\n    UserMinusIconComponent,\n    UserPlusIconComponent,\n    UserXIconComponent,\n    UsersIconComponent,\n    VercelIconComponent,\n    VideoIconComponent,\n    VideoOffIconComponent,\n    VoicemailIconComponent,\n    Volume1IconComponent,\n    Volume2IconComponent,\n    VolumeIconComponent,\n    VolumeXIconComponent,\n    VueIconComponent,\n    WalletIconComponent,\n    WandIconComponent,\n    WatchIconComponent,\n    WaveformIconComponent,\n    WhatsappIconComponent,\n    WifiIconComponent,\n    WifiOffIconComponent,\n    WindIconComponent,\n    WordpressIconComponent,\n    XCircleIconComponent,\n    XIconComponent,\n    XOctagonIconComponent,\n    XSquareIconComponent,\n    XTwitterIconComponent,\n    Youtube2IconComponent,\n    YoutubeIconComponent,\n    ZapIconComponent,\n    ZapOffIconComponent,\n    ZoomInIconComponent,\n    ZoomOutIconComponent,\n  ] as IconComponentType[]\n).sort((a, b) => a.slug.localeCompare(b.slug));\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["messages","FORMAT_PLAIN"],"mappings":"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A,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAA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AA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EA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"}