UNPKG

kage-ui

Version:

A minimal, border-focused Angular UI component library.

1 lines 300 kB
{"version":3,"file":"kage-ui.mjs","sources":["../../../projects/kage-ui/src/components/accordion/accordion.component.ts","../../../projects/kage-ui/src/components/accordion/accordion.component.html","../../../projects/kage-ui/src/components/avatar/avatar.component.ts","../../../projects/kage-ui/src/components/avatar/avatar.component.html","../../../projects/kage-ui/src/components/badge/badge.component.ts","../../../projects/kage-ui/src/components/badge/badge.component.html","../../../projects/kage-ui/src/components/bread-crumb/bread-crumb.component.ts","../../../projects/kage-ui/src/components/icon/icon.registry.ts","../../../projects/kage-ui/src/components/icon/icon.component.ts","../../../projects/kage-ui/src/services/toast/toast.component.ts","../../../projects/kage-ui/src/services/toast/toast.service.ts","../../../projects/kage-ui/src/directives/copy/copy.directive.ts","../../../projects/kage-ui/src/directives/image-view/image-view.directive.ts","../../../projects/kage-ui/src/directives/resize/resize.directive.ts","../../../projects/kage-ui/src/directives/ripple/ripple.directive.ts","../../../projects/kage-ui/src/directives/image-fallback/image-fallback.directive.ts","../../../projects/kage-ui/src/components/bread-crumbs/bread-crumbs.component.ts","../../../projects/kage-ui/src/components/bread-crumbs/bread-crumbs.component.html","../../../projects/kage-ui/src/components/button/button.component.ts","../../../projects/kage-ui/src/components/button/button.component.html","../../../projects/kage-ui/src/components/calendar/calendar.component.ts","../../../projects/kage-ui/src/components/calendar/calendar.component.html","../../../projects/kage-ui/src/components/card/card.component.ts","../../../projects/kage-ui/src/components/card/card.component.html","../../../projects/kage-ui/src/components/checkbox/checkbox.component.ts","../../../projects/kage-ui/src/components/checkbox/checkbox.component.html","../../../projects/kage-ui/src/components/chip/chip.component.ts","../../../projects/kage-ui/src/components/chip/chip.component.html","../../../projects/kage-ui/src/components/col/col.component.ts","../../../projects/kage-ui/src/components/fab-button/fab-button-expand-item.component.ts","../../../projects/kage-ui/src/components/fab-button/fab-button.component.ts","../../../projects/kage-ui/src/components/fab-button/fab-button.component.html","../../../projects/kage-ui/src/components/grid/grid.component.ts","../../../projects/kage-ui/src/components/grid/grid.component.html","../../../projects/kage-ui/src/components/input/input.component.ts","../../../projects/kage-ui/src/components/input/input.component.html","../../../projects/kage-ui/src/components/select/option.component.ts","../../../projects/kage-ui/src/components/progress-bar/progress-bar.component.ts","../../../projects/kage-ui/src/components/progress-bar/progress-bar.component.html","../../../projects/kage-ui/src/components/radio/radio.component.ts","../../../projects/kage-ui/src/components/radio/radio.component.html","../../../projects/kage-ui/src/components/radio-group/radio-group.component.ts","../../../projects/kage-ui/src/components/range/range.component.ts","../../../projects/kage-ui/src/components/range/range.component.html","../../../projects/kage-ui/src/components/row/row.component.ts","../../../projects/kage-ui/src/components/row/row.component.html","../../../projects/kage-ui/src/components/searchbar/searchbar.component.ts","../../../projects/kage-ui/src/components/searchbar/searchbar.component.html","../../../projects/kage-ui/src/components/segment/segment.component.ts","../../../projects/kage-ui/src/components/segment/segment.component.html","../../../projects/kage-ui/src/components/select/select.component.ts","../../../projects/kage-ui/src/components/select/select.component.html","../../../projects/kage-ui/src/components/textarea/textarea.component.ts","../../../projects/kage-ui/src/components/textarea/textarea.component.html","../../../projects/kage-ui/src/components/toggle/toggle.component.ts","../../../projects/kage-ui/src/components/toggle/toggle.component.html","../../../projects/kage-ui/src/pipes/bytes/bytes.pipe.ts","../../../projects/kage-ui/src/pipes/capitalize/capitalize.pipe.ts","../../../projects/kage-ui/src/pipes/highlight/highlight.pipe.ts","../../../projects/kage-ui/src/pipes/mask/mask.pipe.ts","../../../projects/kage-ui/src/pipes/ordinate/ordinate.pipe.ts","../../../projects/kage-ui/src/pipes/repeat/repeat.pipe.ts","../../../projects/kage-ui/src/pipes/slugify/slugify.pipe.ts","../../../projects/kage-ui/src/pipes/time-ago/time-ago.pipe.ts","../../../projects/kage-ui/src/pipes/truncate/truncate.pipe.ts","../../../projects/kage-ui/src/services/alert/alert.component.ts","../../../projects/kage-ui/src/services/alert/alert.component.html","../../../projects/kage-ui/src/services/alert/alert.service.ts","../../../projects/kage-ui/src/services/drawer/drawer.component.ts","../../../projects/kage-ui/src/services/drawer/drawer.component.html","../../../projects/kage-ui/src/services/drawer/drawer.service.ts","../../../projects/kage-ui/src/services/modal/modal.component.ts","../../../projects/kage-ui/src/services/modal/modal.service.ts","../../../projects/kage-ui/src/services/popover/popover.ref.ts","../../../projects/kage-ui/src/services/popover/popover.service.ts","../../../projects/kage-ui/src/public-api.ts","../../../projects/kage-ui/src/kage-ui.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  inject,\r\n  input,\r\n  Renderer2,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'kage-accordion',\r\n  imports: [NgClass],\r\n  templateUrl: './accordion.component.html',\r\n  styleUrl: './accordion.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageAccordion implements AfterViewInit {\r\n  @ViewChild('header', { read: ElementRef }) header!: ElementRef;\r\n  @ViewChild('content', { read: ElementRef }) content!: ElementRef;\r\n\r\n  cssClass = input<string>();\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n  expanded = input<boolean>(false);\r\n\r\n  private renderer = inject(Renderer2);\r\n\r\n  ngAfterViewInit(): void {\r\n    fromEvent(this.header.nativeElement, 'click').subscribe({\r\n      next: (_) => {\r\n        const currentHeight = getComputedStyle(\r\n          this.content.nativeElement\r\n        ).maxHeight;\r\n        const scrollHeight = this.content.nativeElement.scrollHeight;\r\n\r\n        if (parseInt(currentHeight)) {\r\n          this.renderer.setStyle(\r\n            this.header.nativeElement,\r\n            'background',\r\n            'transparent'\r\n          );\r\n          this.renderer.setStyle(\r\n            this.content.nativeElement,\r\n            'maxHeight',\r\n            '0px'\r\n          );\r\n        } else {\r\n          this.renderer.setStyle(\r\n            this.header.nativeElement,\r\n            'background',\r\n            'color-mix(in srgb, var(--border-color) 20%, transparent 80%)'\r\n          );\r\n          this.renderer.setStyle(\r\n            this.content.nativeElement,\r\n            'maxHeight',\r\n            `${scrollHeight}px`\r\n          );\r\n        }\r\n      },\r\n    });\r\n\r\n    if (this.expanded()) {\r\n      this.header.nativeElement.click();\r\n    }\r\n  }\r\n}\r\n","<div class=\"kage-accordion-wrapper\" [ngClass]=\"[color() ?? '', cssClass() ?? '']\">\r\n    <div class=\"kage-accordion-header\" #header><ng-content select=\"[slot='header']\"></ng-content></div>\r\n    <div class=\"kage-accordion-content\" #content><ng-content select=\"[slot='content']\"></ng-content></div>\r\n</div>","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-avatar',\r\n  imports: [],\r\n  templateUrl: './avatar.component.html',\r\n  styleUrl: './avatar.component.scss',\r\n})\r\nexport class KageAvatar {\r\n  src = input<string>();\r\n  alt = input<string>();\r\n  cssClass = input<string>();\r\n}\r\n","<div class=\"kage-avatar-wrapper\" [class]=\"cssClass() ?? ''\">\r\n    <img [src]=\"src()\" [attr.alt]=\"alt()\">\r\n</div>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-badge',\r\n  imports: [NgClass],\r\n  templateUrl: './badge.component.html',\r\n  styleUrl: './badge.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageBadge {\r\n  cssClass = input<string>();\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n}\r\n","<p class=\"kage-badge-wrapper\" [ngClass]=\"[color() ?? '', cssClass() ?? '']\"><ng-content></ng-content></p>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-bread-crumb',\r\n  template: '',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageBreadCrumb {\r\n  label = input<string>();\r\n  href = input<string>();\r\n}\r\n","export const ICONS: Record<string, string> = {\r\n  add: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"32\" /><line x1=\"8\" y1=\"20\" x2=\"32\" y2=\"20\" /></svg>`,\r\n  analytics: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><line x1=\"10\" y1=\"32\" x2=\"10\" y2=\"20\" /><line x1=\"20\" y1=\"32\" x2=\"20\" y2=\"12\" /><line x1=\"30\" y1=\"32\" x2=\"30\" y2=\"24\" /></svg>`,\r\n  archive: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"5\" width=\"30\" height=\"6.67\" /><rect x=\"8.33\" y=\"13.33\" width=\"23.33\" height=\"21.67\" /></svg>`,\r\n  'arrow-backward': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M32 20H12\" /><path d=\"M18 12l-8 8 8 8\" /></svg>`,\r\n  'arrow-downward': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 8v20\" /><path d=\"M12 22l8 8 8-8\" /></svg>`,\r\n  'arrow-forward': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M8 20h20\" /><path d=\"M22 12l8 8-8 8\" /></svg>`,\r\n  'arrow-upward': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 32V12\" /><path d=\"M12 18l8-8 8 8\" /></svg>`,\r\n  'arrow-undo': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M15 8.33L5 20L15 31.67\" /><path d=\"M5 20H21.67C28.33 20 33.33 25 33.33 31.67\" /></svg>`,\r\n  attach: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M26.67 11.67L15 23.33C12.5 25.83 12.5 30 15 32.5C17.5 35 21.67 35 24.17 32.5L33.33 23.33C36.67 20 36.67 15 33.33 11.67C30 8.33 25 8.33 21.67 11.67L11.67 21.67\" /></svg>`,\r\n  'at-the-rate': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5C11.67 5 5 11.67 5 20C5 28.33 11.67 35 20 35C25 35 28.33 31.67 28.33 26.67V16.67C28.33 15 26.67 13.33 25 13.33H20C16.67 13.33 15 15 15 18.33C15 21.67 16.67 23.33 20 23.33H25\" /><line x1=\"25\" y1=\"23.33\" x2=\"25\" y2=\"26.67\" /></svg>`,\r\n  bag: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"8.33\" y=\"11.67\" width=\"23.33\" height=\"23.33\" /><path d=\"M15 11.67V8.33H25V11.67\" /></svg>`,\r\n  balloon: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 3.33 L26.67 6.67 L30 13.33 L26.67 23.33 L20 30 L13.33 23.33 L10 13.33 L13.33 6.67 Z\" /><path d=\"M20 30 L20 36.67\" /></svg>`,\r\n  ban: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\" /><line x1=\"10\" y1=\"10\" x2=\"30\" y2=\"30\" /></svg>`,\r\n  barcode: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><line x1=\"3.33\" y1=\"6.67\" x2=\"3.33\" y2=\"33.33\" /><line x1=\"6.67\" y1=\"6.67\" x2=\"6.67\" y2=\"33.33\" /><line x1=\"11.67\" y1=\"6.67\" x2=\"11.67\" y2=\"33.33\" /><line x1=\"15\" y1=\"6.67\" x2=\"15\" y2=\"33.33\" /><line x1=\"18.33\" y1=\"6.67\" x2=\"18.33\" y2=\"33.33\" /><line x1=\"23.33\" y1=\"6.67\" x2=\"23.33\" y2=\"33.33\" /><line x1=\"28.33\" y1=\"6.67\" x2=\"28.33\" y2=\"33.33\" /><line x1=\"33.33\" y1=\"6.67\" x2=\"33.33\" y2=\"33.33\" /></svg>`,\r\n  baseball: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\" /><line x1=\"11.67\" y1=\"11.67\" x2=\"16.67\" y2=\"16.67\" /><line x1=\"16.67\" y1=\"23.33\" x2=\"11.67\" y2=\"28.33\" /><line x1=\"28.33\" y1=\"11.67\" x2=\"23.33\" y2=\"16.67\" /><line x1=\"23.33\" y1=\"23.33\" x2=\"28.33\" y2=\"28.33\" /></svg>`,\r\n  basket: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" stroke=\"currentColor\" class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"6.67\" y=\"16.67\" width=\"26.67\" height=\"16.67\" /><path d=\"M6.67 16.67 L20 6.67 L33.33 16.67\" /></svg>`,\r\n  basketball: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\" /><line x1=\"20\" y1=\"5\" x2=\"20\" y2=\"35\" /><line x1=\"5\" y1=\"20\" x2=\"35\" y2=\"20\" /><line x1=\"10\" y1=\"10\" x2=\"30\" y2=\"30\" /><line x1=\"10\" y1=\"30\" x2=\"30\" y2=\"10\" /></svg>`,\r\n  'battery-charging': `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" stroke=\"currentColor\" class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"3.33\" y=\"11.67\" width=\"30\" height=\"16.67\" /><rect x=\"33.33\" y=\"16.67\" width=\"3.33\" height=\"6.67\" /><path d=\"M16.67 13.33 L20 20 H15 L21.67 26.67\" /></svg>`,\r\n  'battery-dead': `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"3.33\" y=\"11.67\" width=\"30\" height=\"16.67\" /><rect x=\"33.33\" y=\"16.67\" width=\"3.33\" height=\"6.67\" /><line x1=\"15.33\" y1=\"16.67\" x2=\"21.33\" y2=\"23.33\" /><line x1=\"21.33\" y1=\"16.67\" x2=\"15.33\" y2=\"23.33\" /></svg>`,\r\n  'battery-half': `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"3.33\" y=\"11.67\" width=\"30\" height=\"16.67\" /><rect x=\"33.33\" y=\"16.67\" width=\"3.33\" height=\"6.67\" /><rect x=\"5\" y=\"13.33\" width=\"13.33\" height=\"13.33\" /><rect x=\"5\" y=\"13.33\" width=\"6.665\" height=\"13.33\" fill=\"currentColor\" stroke=\"none\" /></svg>`,\r\n  bicycle: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke=\"currentColor\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"30\" r=\"5\" /><circle cx=\"30\" cy=\"30\" r=\"5\" /><line x1=\"10\" y1=\"30\" x2=\"20\" y2=\"20\" /><line x1=\"20\" y1=\"20\" x2=\"25\" y2=\"30\" /><line x1=\"20\" y1=\"20\" x2=\"20\" y2=\"13\" /><line x1=\"20\" y1=\"13\" x2=\"15\" y2=\"13\" /><line x1=\"20\" y1=\"13\" x2=\"28\" y2=\"13\" /><line x1=\"18.5\" y1=\"23\" x2=\"21.5\" y2=\"23\" /></svg>`,\r\n  beaker: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M16 6 V12 L11 30 L29 30 L24 12 V6 Z\" /><path d=\"M13.5 25 L26.5 25 L26 28 L14 28 Z\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"20\" cy=\"26.5\" r=\"1\" fill=\"white\" /><circle cx=\"17\" cy=\"27.5\" r=\"0.7\" fill=\"white\" /></svg>`,\r\n  bed: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" stroke=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"16.67\" width=\"30\" height=\"11.67\" /><line x1=\"5\" y1=\"16.67\" x2=\"5\" y2=\"8.33\" /><rect x=\"8.33\" y=\"18.33\" width=\"6.67\" height=\"5\" /></svg>`,\r\n  beer: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"10\" y=\"12\" width=\"16\" height=\"20\" /><path d=\"M26 14 H30 V28 H26\" /><line x1=\"13\" y1=\"14\" x2=\"13\" y2=\"30\" /><line x1=\"17\" y1=\"14\" x2=\"17\" y2=\"30\" /><line x1=\"21\" y1=\"14\" x2=\"21\" y2=\"30\" /><path d=\"M10 12 Q12 8 14 10 Q16 6 18 9 Q20 6 22 10 Q24 8 26 12 Z\" fill=\"currentColor\" stroke=\"none\" /></svg>`,\r\n  bluetooth: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" stroke=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M11.67 11.67 L28.33 28.33 L20 36.67 V3.33 L28.33 11.67 L11.67 28.33\" /></svg>`,\r\n  body: `<svg class=\"kage-icon\" stroke-width=\"var(--kage-icon-depth)\" stroke=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"6.67\" r=\"3.33\" /><line x1=\"20\" y1=\"10\" x2=\"20\" y2=\"23.33\" /><line x1=\"20\" y1=\"13.33\" x2=\"13.33\" y2=\"16.67\" /><line x1=\"20\" y1=\"13.33\" x2=\"26.67\" y2=\"16.67\" /><line x1=\"20\" y1=\"23.33\" x2=\"15\" y2=\"33.33\" /><line x1=\"20\" y1=\"23.33\" x2=\"25\" y2=\"33.33\" /></svg>`,\r\n  bonfire: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5 C25 13, 15 17, 20 30 C26 22, 30 15, 20 5 Z\" /><line x1=\"12\" y1=\"32\" x2=\"28\" y2=\"35\" /><line x1=\"12\" y1=\"35\" x2=\"28\" y2=\"32\" /></svg>`,\r\n  book: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M5 10 Q20 2 35 10\" /><path d=\"M5 10 V30 C10 27, 15 27, 20 30\" /><path d=\"M35 10 V30 C30 27, 25 27, 20 30\" /><line x1=\"20\" y1=\"10\" x2=\"20\" y2=\"30\" /></svg>`,\r\n  bookmark: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 6 H30 V34 L20 28 L10 34 V6 Z\" /></svg>`,\r\n  'bowling-ball': `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\" /><circle cx=\"15\" cy=\"15\" r=\"1.6\" fill=\"none\" /><circle cx=\"21.6\" cy=\"11.6\" r=\"1.6\" fill=\"none\" /><circle cx=\"25\" cy=\"18.4\" r=\"1.6\" fill=\"none\" /></svg>`,\r\n  bulb: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M15 30h10v2H15zM14 33h12v2H14z\" /><path d=\"M20 4C13.37 4 8 9.37 8 16c0 3.76 2.48 6.88 5 9.5V28h14v-2.5c2.52-2.62 5-5.74 5-9.5 0-6.63-5.37-12-12-12z\" /></svg>`,\r\n  bus: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"8\" width=\"30\" height=\"20\" rx=\"2\" /><path d=\"M5 28h30v5H5zM10 35a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM30 35a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\" /><line x1=\"11\" y1=\"14\" x2=\"29\" y2=\"14\" /></svg>`,\r\n  business: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"5\" width=\"10\" height=\"30\" /><rect x=\"17\" y=\"10\" width=\"13\" height=\"25\" /><line x1=\"8\" y1=\"8\" x2=\"12\" y2=\"8\" /><line x1=\"8\" y1=\"14\" x2=\"12\" y2=\"14\" /><line x1=\"8\" y1=\"20\" x2=\"12\" y2=\"20\" /></svg>`,\r\n  cafe: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"10\" width=\"25\" height=\"15\" rx=\"2\" /><path d=\"M30 12h3a3 3 0 0 1 0 6h-3\" /><path d=\"M12 25v4h16v-4\" /></svg>`,\r\n  calculator: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"5\" width=\"30\" height=\"30\" rx=\"2\" /><line x1=\"10\" y1=\"10\" x2=\"30\" y2=\"10\" /><circle cx=\"10\" cy=\"17\" r=\"1.5\" /><circle cx=\"16\" cy=\"17\" r=\"1.5\" /><circle cx=\"22\" cy=\"17\" r=\"1.5\" /><circle cx=\"10\" cy=\"23\" r=\"1.5\" /><circle cx=\"16\" cy=\"23\" r=\"1.5\" /><circle cx=\"22\" cy=\"23\" r=\"1.5\" /></svg>`,\r\n  calendar: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"7\" width=\"30\" height=\"30\"/><line x1=\"5\" y1=\"17\" x2=\"35\" y2=\"17\"/><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"10\"/><line x1=\"28\" y1=\"3\" x2=\"28\" y2=\"10\"/><circle cx=\"12\" cy=\"24\" r=\"0.8\"/><circle cx=\"20\" cy=\"24\" r=\"0.8\"/><circle cx=\"28\" cy=\"24\" r=\"0.8\"/><circle cx=\"12\" cy=\"32\" r=\"0.8\"/><circle cx=\"20\" cy=\"32\" r=\"0.8\"/><circle cx=\"28\" cy=\"32\" r=\"0.8\"/></svg>`,\r\n  call: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 8c5 7.5 10 12.5 18 18l5-5c1 3.5-1.5 7-5 7-7.5-1.5-13.5-7.5-18-18 0-3.5 3.5-6 7-5l-5 5z\" /></svg>`,\r\n  camera: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\" rx=\"2\" /><circle cx=\"20\" cy=\"20\" r=\"5\" /><rect x=\"12\" y=\"5\" width=\"5\" height=\"3\" /></svg>`,\r\n  car: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"15\" width=\"30\" height=\"10\" /><path d=\"M8 15l-3 7h30l-3-7H8z\" /><circle cx=\"10\" cy=\"30\" r=\"3\" /><circle cx=\"30\" cy=\"30\" r=\"3\" /></svg>`,\r\n  card: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\" rx=\"2\" /><line x1=\"5\" y1=\"15\" x2=\"35\" y2=\"15\" /><rect x=\"8\" y=\"18\" width=\"8\" height=\"2\" /><rect x=\"18\" y=\"18\" width=\"5\" height=\"2\" /></svg>`,\r\n  cart: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"15\" cy=\"32\" r=\"2\" /><circle cx=\"30\" cy=\"32\" r=\"2\" /><path d=\"M8 8h4l4 18h16l4-10H14\" /></svg>`,\r\n  cash: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\" rx=\"2\" /><circle cx=\"20\" cy=\"20\" r=\"4\" /><path d=\"M5 10v20M35 10v20\" /></svg>`,\r\n  cellular: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"30\" width=\"4\" height=\"5\" /><rect x=\"11\" y=\"25\" width=\"4\" height=\"10\" /><rect x=\"17\" y=\"20\" width=\"4\" height=\"15\" /><rect x=\"23\" y=\"15\" width=\"4\" height=\"20\" /><rect x=\"29\" y=\"10\" width=\"4\" height=\"25\" /></svg>`,\r\n  chatbox: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M5 10h30v20H12l-7 5v-5H5z\" /></svg>`,\r\n  chatbubbles: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M6 12h22v14H14l-8 6v-6H6z\" /><path d=\"M14 10h20v14h-6v4l-6-4H14z\" /></svg>`,\r\n  checkmark: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 20l8 8 12-16\" /></svg>`,\r\n  'checkmark-done': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 20l6 6 8-10\" /><path d=\"M16 22l6 6 8-12\" /></svg>`,\r\n  'chevron-backward': `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\"><path d=\"M25.6 8.75L14.38 20 25.6 31.25\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--kage-icon-depth)\" /></svg>`,\r\n  'chevron-down': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 15l10 10 10-10\" /></svg>`,\r\n  'chevron-forward': `<svg class=\"kage-icon\" width=\"100%\" height=\"100%\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.33 6.67L26.67 20L13.33 33.33\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`,\r\n  'chevron-up': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 25l10-10 10 10\" /></svg>`,\r\n  cloud: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M30 24a6 6 0 0 0-6-6h-1a8 8 0 0 0-15 3 5 5 0 0 0 0 10h22a5 5 0 0 0 0-10z\" /></svg>`,\r\n  'cloud-done': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M30 24a6 6 0 0 0-6-6h-1a8 8 0 0 0-15 3 5 5 0 0 0 0 10h22a5 5 0 0 0 0-10z\" /><path d=\"M15 22l3 3 6-6\" /></svg>`,\r\n  'cloud-download': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M30 24a6 6 0 0 0-6-6h-1a8 8 0 0 0-15 3 5 5 0 0 0 0 10h22a5 5 0 0 0 0-10z\" /><path d=\"M20 18v10M16 26l4 4 4-4\" /></svg>`,\r\n  'cloud-offline': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M30 24a6 6 0 0 0-6-6h-1a8 8 0 0 0-15 3 5 5 0 0 0 0 10h22a5 5 0 0 0 0-10z\" /><line x1=\"12\" y1=\"12\" x2=\"28\" y2=\"28\" /></svg>`,\r\n  'cloud-upload': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M30 24a6 6 0 0 0-6-6h-1a8 8 0 0 0-15 3 5 5 0 0 0 0 10h22a5 5 0 0 0 0-10z\" /><path d=\"M20 28V18M16 22l4-4 4 4\" /></svg>`,\r\n  code: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M12 12l-6 8 6 8M28 12l6 8-6 8\" /><line x1=\"20\" y1=\"10\" x2=\"20\" y2=\"30\" /></svg>`,\r\n  'color-fill': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M14 12l12 12-6 6-12-12z\" /><path d=\"M28 28c0 3 3 6 3 6s3-3 3-6a3 3 0 1 0-6 0z\" /></svg>`,\r\n  'color-pallet': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5a15 15 0 0 1 0 30 5 5 0 0 1-5-5h-5a10 10 0 0 1 10-25z\" /><circle cx=\"15\" cy=\"15\" r=\"1.5\" /><circle cx=\"25\" cy=\"12\" r=\"1.5\" /><circle cx=\"28\" cy=\"20\" r=\"1.5\" /><circle cx=\"22\" cy=\"26\" r=\"1.5\" /></svg>`,\r\n  compass: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\" /><polygon points=\"20,10 25,25 15,25\" /></svg>`,\r\n  construct: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 5l5 5-3 3 7 7 3-3 5 5-10 10-5-5 3-3-7-7-3 3-5-5z\" /></svg>`,\r\n  contrast: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\" /><path d=\"M20 5a15 15 0 0 1 0 30z\" /></svg>`,\r\n  copy: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"10\" y=\"10\" width=\"20\" height=\"20\" /><path d=\"M10 10v-5h20v5\" /><path d=\"M5 15v20h20v-5\" /></svg>`,\r\n  crop: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 5v25h25\"/><path d=\"M30 35V10H5\"/></svg>`,\r\n  cube: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 10l10-5 10 5v20l-10 5-10-5z\"/><path d=\"M10 10l10 5 10-5\"/><path d=\"M20 15v20\"/></svg>`,\r\n  cut: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"10\" r=\"3\"/><circle cx=\"10\" cy=\"30\" r=\"3\"/><path d=\"M13 13l14 14M13 27l14-14\"/></svg>`,\r\n  desktop: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"8\" width=\"30\" height=\"20\" rx=\"2\"/><path d=\"M15 32h10M20 28v4\"/></svg>`,\r\n  diamond: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><polygon points=\"20,5 35,20 20,35 5,20\"/></svg>`,\r\n  dice: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"10\" y=\"10\" width=\"20\" height=\"20\"/><circle cx=\"15\" cy=\"15\" r=\"1\"/><circle cx=\"25\" cy=\"15\" r=\"1\"/><circle cx=\"20\" cy=\"20\" r=\"1\"/><circle cx=\"15\" cy=\"25\" r=\"1\"/><circle cx=\"25\" cy=\"25\" r=\"1\"/></svg>`,\r\n  document: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 5h15l5 5v25H10z\"/><path d=\"M25 5v5h5\"/></svg>`,\r\n  download: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5v20\"/><path d=\"M15 20l5 5 5-5\"/><path d=\"M10 30h20\"/></svg>`,\r\n  duplicate: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"10\" y=\"10\" width=\"20\" height=\"20\"/><path d=\"M5 15h5v20h20v5\"/></svg>`,\r\n  ear: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M25 10a10 10 0 0 0-15 10c0 5 2 8 5 10s5 5 5 5\"/><path d=\"M20 25c0 3-3 5-3 0\"/></svg>`,\r\n  earth: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\"/><path d=\"M10 15h10v-5h5v5h5\"/><path d=\"M15 30c0-5 10-5 10 0\"/></svg>`,\r\n  egg: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5c-7 0-10 10-10 15s3 15 10 15 10-10 10-15-3-15-10-15z\"/></svg>`,\r\n  'ellipsis-horizontal': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"20\" r=\"2\"/><circle cx=\"20\" cy=\"20\" r=\"2\"/><circle cx=\"30\" cy=\"20\" r=\"2\"/></svg>`,\r\n  'ellipsis-vertical': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"10\" r=\"2\"/><circle cx=\"20\" cy=\"20\" r=\"2\"/><circle cx=\"20\" cy=\"30\" r=\"2\"/></svg>`,\r\n  expand: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 10h10v-5\"/><path d=\"M30 10h-10v-5\"/><path d=\"M10 30h10v5\"/><path d=\"M30 30h-10v5\"/></svg>`,\r\n  eye: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1.67 20C4.55 12.68 11.53 7.5 20 7.5C28.47 7.5 35.45 12.68 38.33 20C35.45 27.32 28.47 32.5 20 32.5C11.53 32.5 4.55 27.32 1.67 20Z\"/><circle cx=\"20\" cy=\"20\" r=\"5\"/></svg>`,\r\n  'eye-off': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M5 5l30 30\"/><path d=\"M10 20s5-8 10-8 10 8 10 8-5 8-10 8-10-8-10-8z\"/><circle cx=\"20\" cy=\"20\" r=\"3\"/></svg>`,\r\n  female: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"12\" r=\"6\"/><line x1=\"20\" y1=\"18\" x2=\"20\" y2=\"30\"/><line x1=\"16\" y1=\"26\" x2=\"24\" y2=\"26\"/></svg>`,\r\n  film: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\"/><line x1=\"15\" y1=\"10\" x2=\"15\" y2=\"30\"/><line x1=\"25\" y1=\"10\" x2=\"25\" y2=\"30\"/><circle cx=\"10\" cy=\"15\" r=\"1\"/><circle cx=\"10\" cy=\"25\" r=\"1\"/><circle cx=\"30\" cy=\"15\" r=\"1\"/><circle cx=\"30\" cy=\"25\" r=\"1\"/></svg>`,\r\n  filter: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M5 10h30l-10 10v10l-10 5V20z\"/></svg>`,\r\n  fingerprint: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 10a10 10 0 0 1 10 10\"/><path d=\"M20 15a5 5 0 0 1 5 5v5\"/><path d=\"M20 20v10\"/><path d=\"M15 15a5 5 0 0 0-5 5\"/><path d=\"M25 30v-5\"/></svg>`,\r\n  fish: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M5 20s5-10 15-10 15 10 15 10-5 10-15 10-15-10-15-10z\"/><circle cx=\"28\" cy=\"20\" r=\"1\"/></svg>`,\r\n  fitness: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"17\" y=\"5\" width=\"6\" height=\"30\"/><line x1=\"10\" y1=\"10\" x2=\"10\" y2=\"30\"/><line x1=\"30\" y1=\"10\" x2=\"30\" y2=\"30\"/></svg>`,\r\n  flag: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 5v30\"/><path d=\"M10 5h20l-5 10 5 10H10\"/></svg>`,\r\n  flame: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5c4 5 5 10 2 15s-1 10 3 10 5-5 5-10c0-5-5-10-10-15z\"/></svg>`,\r\n  flash: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5l-10 15h8l-3 15 15-20h-10z\"/></svg>`,\r\n  flask: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M15 5h10v10l7 15H8l7-15z\"/></svg>`,\r\n  flower: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"3\"/><path d=\"M20 5v5 M35 20h-5 M20 35v-5 M5 20h5 M30 10l-3 3 M10 10l3 3 M30 30l-3-3 M10 30l3-3\"/></svg>`,\r\n  folder: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M5 10h10l5 5h15v15H5z\"/></svg>`,\r\n  football: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"18\" /><polygon points=\"20,13 17,17 20,21 23,17\" /><polygon points=\"20,13 15,12 14,16 17,17\" /><polygon points=\"20,13 25,12 26,16 23,17\" /><polygon points=\"17,17 14,16 13,20 17,21\" /><polygon points=\"23,17 26,16 27,20 23,21\" /><polygon points=\"20,21 17,21 20,25 23,21\" /></svg>`,\r\n  footsteps: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><ellipse cx=\"13\" cy=\"12\" rx=\"3\" ry=\"5\"/><ellipse cx=\"27\" cy=\"28\" rx=\"3\" ry=\"5\"/><circle cx=\"13\" cy=\"20\" r=\"2\"/><circle cx=\"27\" cy=\"35\" r=\"2\"/></svg>`,\r\n  'game-controller': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"5\" y=\"15\" width=\"30\" height=\"15\" rx=\"5\"/><line x1=\"13\" y1=\"20\" x2=\"17\" y2=\"20\"/><line x1=\"15\" y1=\"18\" x2=\"15\" y2=\"22\"/><circle cx=\"25\" cy=\"20\" r=\"1\"/><circle cx=\"28\" cy=\"22\" r=\"1\"/></svg>`,\r\n  gift: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"10\" y=\"15\" width=\"20\" height=\"20\"/><line x1=\"20\" y1=\"15\" x2=\"20\" y2=\"35\"/><path d=\"M10 15c0-10 10 0 10 0s10-10 10 0\"/></svg>`,\r\n  'git-branch': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"30\" r=\"2\"/><circle cx=\"30\" cy=\"30\" r=\"2\"/><path d=\"M10 12v16a10 10 0 0 0 10 10h10\"/></svg>`,\r\n  'git-commit': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"4\"/><line x1=\"0\" y1=\"20\" x2=\"16\" y2=\"20\"/><line x1=\"24\" y1=\"20\" x2=\"40\" y2=\"20\"/></svg>`,\r\n  'git-compare': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 10v20M30 30V10\"/><path d=\"M10 10l5 5h-5z\"/><path d=\"M30 30l-5-5h5z\"/></svg>`,\r\n  'git-merge': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"30\" r=\"2\"/><circle cx=\"30\" cy=\"20\" r=\"2\"/><path d=\"M10 12v16a10 10 0 0 0 10 10h10\"/></svg>`,\r\n  'git-network': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"30\" r=\"2\"/><circle cx=\"30\" cy=\"20\" r=\"2\"/><path d=\"M10 12v16M10 30h20\"/></svg>`,\r\n  'git-pull-request': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"30\" r=\"2\"/><circle cx=\"30\" cy=\"20\" r=\"2\"/><path d=\"M10 12v16M10 20h20\"/></svg>`,\r\n  glasses: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"12\" cy=\"20\" r=\"5\"/><circle cx=\"28\" cy=\"20\" r=\"5\"/><path d=\"M7 20h-2v-5M33 20h2v-5M17 20h6\"/></svg>`,\r\n  globe: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"15\"/><ellipse cx=\"20\" cy=\"20\" rx=\"15\" ry=\"6\"/><path d=\"M20 5v30\"/></svg>`,\r\n  golf: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M20 5v30\"/><path d=\"M20 5l10 5-10 5z\"/></svg>`,\r\n  graduate: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"5,15 20,5 35,15 20,25\"/><path d=\"M20 25v10\"/></svg>`,\r\n  grid: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"5\" width=\"10\" height=\"10\"/><rect x=\"5\" y=\"20\" width=\"10\" height=\"10\"/><rect x=\"20\" y=\"5\" width=\"10\" height=\"10\"/><rect x=\"20\" y=\"20\" width=\"10\" height=\"10\"/></svg>`,\r\n  'hand-left': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M15 5v15M10 7v13M20 10v10M25 15v5M10 20l2 10h10l3-5v-5\"/></svg>`,\r\n  'hand-right': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M25 5v15M30 7v13M20 10v10M15 15v5M30 20l-2 10H18l-3-5v-5\"/></svg>`,\r\n  'hardware-chip': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"10\" y=\"10\" width=\"20\" height=\"20\"/><path d=\"M20 5v5M20 35v-5M5 20h5M35 20h-5\"/></svg>`,\r\n  headset: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 25v-5a10 10 0 0 1 20 0v5\"/><rect x=\"5\" y=\"20\" width=\"5\" height=\"10\"/><rect x=\"30\" y=\"20\" width=\"5\" height=\"10\"/></svg>`,\r\n  heart: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 15a5 5 0 0 1 10 0 5 5 0 0 1 10 0c0 10-10 15-10 15s-10-5-10-15z\"/></svg>`,\r\n  help: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"15\"/><path d=\"M20 12a4 4 0 0 1 0 8c0 2-1 3-1 3\"/><circle cx=\"20\" cy=\"30\" r=\"1\"/></svg>`,\r\n  home: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" fill=\"none\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\"><path d=\"M5 18L20 5L35 18V33C35 33.5523 34.5523 34 34 34H25C24.4477 34 24 33.5523 24 33V27C24 26.4477 23.5523 26 23 26H17C16.4477 26 16 26.4477 16 27V33C16 33.5523 15.5523 34 15 34H6C5.44772 34 5 33.5523 5 33V18Z\" stroke-linejoin=\"miter\" stroke-linecap=\"butt\"/></svg>`,\r\n  'hour-glass': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 5h20M10 35h20M10 5c5 5 5 10 0 15 5 5 5 10 0 15M30 5c-5 5-5 10 0 15-5 5-5 10 0 15\"/></svg>`,\r\n  'ice-cream': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M20 25l-5 10h10z\"/><path d=\"M10 15a10 5 0 0 1 20 0c0 5-5 10-10 10s-10-5-10-10z\"/></svg>`,\r\n  'id-card': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\"/><circle cx=\"12\" cy=\"20\" r=\"3\"/><path d=\"M20 17h10M20 23h7\"/></svg>`,\r\n  image: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\"/><circle cx=\"12\" cy=\"15\" r=\"2\"/><path d=\"M5 30l10-10 5 5 10-10 5 5\"/></svg>`,\r\n  infinite: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 20c5-10 15 10 20 0s-15-10-20 0z\"/></svg>`,\r\n  information: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"15\"/><line x1=\"20\" y1=\"14\" x2=\"20\" y2=\"14\"/><line x1=\"20\" y1=\"18\" x2=\"20\" y2=\"28\"/></svg>`,\r\n  key: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"12\" cy=\"20\" r=\"5\"/><path d=\"M17 20h8v4h3v-4h2v-4\"/></svg>`,\r\n  keypad: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"2\"/><circle cx=\"20\" cy=\"10\" r=\"2\"/><circle cx=\"30\" cy=\"10\" r=\"2\"/><circle cx=\"10\" cy=\"20\" r=\"2\"/><circle cx=\"20\" cy=\"20\" r=\"2\"/><circle cx=\"30\" cy=\"20\" r=\"2\"/><circle cx=\"10\" cy=\"30\" r=\"2\"/><circle cx=\"20\" cy=\"30\" r=\"2\"/><circle cx=\"30\" cy=\"30\" r=\"2\"/></svg>`,\r\n  language: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"15\"/><path d=\"M10 20h20M20 5c5 5 5 25 0 30-5-5-5-25 0-30z\"/></svg>`,\r\n  layers: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 15l10-5 10 5-10 5z\"/><path d=\"M10 25l10-5 10 5\"/><path d=\"M10 20l10 5 10-5\"/></svg>`,\r\n  leaf: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 30c10-20 20-20 20-20s0 20-20 20z\"/><path d=\"M10 30l20-20\"/></svg>`,\r\n  library: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"10\" width=\"5\" height=\"20\"/><rect x=\"15\" y=\"10\" width=\"5\" height=\"20\"/><rect x=\"25\" y=\"10\" width=\"5\" height=\"20\"/></svg>`,\r\n  link: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M12 20a6 6 0 0 1 6-6h4\"/><path d=\"M28 20a6 6 0 0 1-6 6h-4\"/><line x1=\"16\" y1=\"20\" x2=\"24\" y2=\"20\"/></svg>`,\r\n  list: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"8\" cy=\"10\" r=\"1\"/><circle cx=\"8\" cy=\"20\" r=\"1\"/><circle cx=\"8\" cy=\"30\" r=\"1\"/><line x1=\"12\" y1=\"10\" x2=\"32\" y2=\"10\"/><line x1=\"12\" y1=\"20\" x2=\"32\" y2=\"20\"/><line x1=\"12\" y1=\"30\" x2=\"32\" y2=\"30\"/></svg>`,\r\n  locate: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"3\"/><path d=\"M20 2v6M20 32v6M2 20h6M32 20h6\"/><circle cx=\"20\" cy=\"20\" r=\"15\"/></svg>`,\r\n  location: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M20 5c-6 0-10 4-10 10 0 7 10 20 10 20s10-13 10-20c0-6-4-10-10-10z\"/><circle cx=\"20\" cy=\"15\" r=\"3\"/></svg>`,\r\n  'lock-closed': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"10\" y=\"18\" width=\"20\" height=\"15\"/><path d=\"M14 18v-5a6 6 0 0 1 12 0v5\"/></svg>`,\r\n  'lock-open': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"10\" y=\"18\" width=\"20\" height=\"15\"/><path d=\"M26 18v-5a6 6 0 0 0-12 0\"/></svg>`,\r\n  magnet: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 5v15a10 10 0 0 0 20 0V5\"/><line x1=\"10\" y1=\"5\" x2=\"18\" y2=\"5\"/><line x1=\"22\" y1=\"5\" x2=\"30\" y2=\"5\"/></svg>`,\r\n  mail: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><rect x=\"3.33\" y=\"6.67\" width=\"33.33\" height=\"26.67\" /><polyline points=\"3.33,6.67 20,21.67 36.67,6.67\" /></svg>`,\r\n  male: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"15\" cy=\"25\" r=\"8\"/><path d=\"M20 20l10-10M25 10h5v5\"/></svg>`,\r\n  'male-female': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"15\" cy=\"25\" r=\"6\"/><path d=\"M15 31v5M12 36h6M20 20l10-10M25 10h5v5\"/></svg>`,\r\n  medal: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"15\" r=\"7\"/><path d=\"M14 22l-4 10h20l-4-10\"/></svg>`,\r\n  megaphone: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M5 15v10l25-5V10L5 15z\"/><path d=\"M30 13v4M30 21v4\"/><path d=\"M12 25l2 7h4l2-7\"/></svg>`,\r\n  menu: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"8\" y1=\"10\" x2=\"32\" y2=\"10\"/><line x1=\"8\" y1=\"20\" x2=\"32\" y2=\"20\"/><line x1=\"8\" y1=\"30\" x2=\"32\" y2=\"30\"/></svg>`,\r\n  mic: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"15\" y=\"10\" width=\"10\" height=\"16\" rx=\"2\"/><path d=\"M10 20a10 10 0 0 0 20 0M20 26v6M16 32h8\"/></svg>`,\r\n  'mic-off': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"10\" y1=\"10\" x2=\"30\" y2=\"30\"/><rect x=\"15\" y=\"10\" width=\"10\" height=\"16\" rx=\"2\"/><path d=\"M10 20a10 10 0 0 0 20 0M20 26v6M16 32h8\"/></svg>`,\r\n  moon: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M25 5a15 15 0 1 0 0 30A13 13 0 1 1 25 5z\"/></svg>`,\r\n  'musical-note': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M28 10v15a6 6 0 1 1-2-4V10h-10v15a6 6 0 1 1-2-4V8h14z\"/></svg>`,\r\n  'musical-notes': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 12v12a4 4 0 1 0 2-3V12h6v10a4 4 0 1 0 2-3V10h10\"/></svg>`,\r\n  navigate: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"16\"/><path d=\"M20 20l7-10-14 5-5 14 12-9z\"/></svg>`,\r\n  newspaper: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"10\" width=\"30\" height=\"20\"/><path d=\"M10 15h10M10 20h10M10 25h10M25 15h5v10h-5z\"/></svg>`,\r\n  notification: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M20 35a4 4 0 0 0 4-4H16a4 4 0 0 0 4 4z\"/><path d=\"M10 30h20l-2-4V18a8 8 0 1 0-16 0v8z\"/></svg>`,\r\n  'notification-off': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"8\" y1=\"8\" x2=\"32\" y2=\"32\"/><path d=\"M10 30h20l-2-4V18a8 8 0 0 0-10-7.8\"/></svg>`,\r\n  pause: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"12\" y=\"10\" width=\"4\" height=\"20\"/><rect x=\"24\" y=\"10\" width=\"4\" height=\"20\"/></svg>`,\r\n  people: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"14\" cy=\"14\" r=\"4\"/><circle cx=\"26\" cy=\"14\" r=\"4\"/><path d=\"M8 28c0-4 4-6 6-6s6 2 6 6\"/><path d=\"M20 28c0-4 4-6 6-6s6 2 6 6\"/></svg>`,\r\n  person: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"12\" r=\"6\"/><path d=\"M10 30c0-6 20-6 20 0\"/></svg>`,\r\n  'pi-chart': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"15\"/><path d=\"M20 20V5M20 20h15\"/></svg>`,\r\n  play: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"14,10 30,20 14,30\" fill=\"none\"/></svg>`,\r\n  'play-back': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"26,10 10,20 26,30\" fill=\"none\"/><line x1=\"30\" y1=\"10\" x2=\"30\" y2=\"30\"/></svg>`,\r\n  'play-forward': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"14,10 30,20 14,30\" fill=\"none\"/><line x1=\"10\" y1=\"10\" x2=\"10\" y2=\"30\"/></svg>`,\r\n  power: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"20\" y1=\"5\" x2=\"20\" y2=\"20\"/><path d=\"M10 10a15 15 0 1 0 20 0\"/></svg>`,\r\n  'price-tag': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M5 20l15 15 15-15V5H20z\"/><circle cx=\"30\" cy=\"10\" r=\"2\"/></svg>`,\r\n  prism: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"20,5 35,30 5,30\"/><path d=\"M20 5v25\"/></svg>`,\r\n  pulse: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polyline points=\"5,20 12,20 16,10 20,30 24,20 35,20\"/></svg>`,\r\n  puzzle: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M10 10h5a2.5 2.5 0 1 1 5 0h5v5a2.5 2.5 0 1 1 0 5v5h-5a2.5 2.5 0 1 1-5 0h-5v-5a2.5 2.5 0 1 1 0-5z\"/></svg>`,\r\n  'qr-code': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"5\" width=\"10\" height=\"10\"/><rect x=\"25\" y=\"5\" width=\"10\" height=\"10\"/><rect x=\"5\" y=\"25\" width=\"10\" height=\"10\"/><path d=\"M25 25h5v5h-5zM30 30h5v5h-5z\"/></svg>`,\r\n  rainy: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 20a8 8 0 1 1 20-5 6 6 0 1 1 0 12H10z\"/><line x1=\"15\" y1=\"30\" x2=\"15\" y2=\"35\"/><line x1=\"20\" y1=\"30\" x2=\"20\" y2=\"35\"/><line x1=\"25\" y1=\"30\" x2=\"25\" y2=\"35\"/></svg>`,\r\n  refresh: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polyline points=\"30,10 35,10 35,5\"/><path d=\"M35 10a15 15 0 1 0 0 20\"/></svg>`,\r\n  reload: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 10a15 15 0 1 1-5 10h5\"/><polyline points=\"5,10 10,10 10,5\"/></svg>`,\r\n  remove: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"10\" y1=\"10\" x2=\"30\" y2=\"30\"/><line x1=\"30\" y1=\"10\" x2=\"10\" y2=\"30\"/></svg>`,\r\n  resize: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polyline points=\"10,20 5,20 5,15\"/><polyline points=\"30,20 35,20 35,25\"/><line x1=\"5\" y1=\"15\" x2=\"35\" y2=\"25\"/></svg>`,\r\n  rocket: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 30l5-10L30 10l-10 15-10 5z\"/><circle cx=\"25\" cy=\"15\" r=\"2\"/></svg>`,\r\n  sailboat: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\" width=\"100%\" height=\"100%\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><path d=\"M6.67 28.33 H33.33 L30 33.33 H10 L6.67 28.33 Z\" /><line x1=\"20\" y1=\"6.67\" x2=\"20\" y2=\"28.33\" /><path d=\"M20 6.67 L10 20 H20 Z\" /></svg>`,\r\n  save: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M5 5h30v30H5z\"/><rect x=\"10\" y=\"5\" width=\"20\" height=\"10\"/><rect x=\"15\" y=\"20\" width=\"10\" height=\"10\"/></svg>`,\r\n  search: `<svg class=\"kage-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"18.33\" cy=\"18.33\" r=\"11.67\" /><line x1=\"27.75\" y1=\"27.75\" x2=\"35\" y2=\"35\" /></svg>`,\r\n  server: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"5\" width=\"30\" height=\"10\"/><rect x=\"5\" y=\"15\" width=\"30\" height=\"10\"/><rect x=\"5\" y=\"25\" width=\"30\" height=\"10\"/></svg>`,\r\n  shapes: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"5\" width=\"10\" height=\"10\"/><circle cx=\"30\" cy=\"10\" r=\"5\"/><polygon points=\"10,30 20,20 30,30\"/></svg>`,\r\n  'social-share': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"3\"/><circle cx=\"30\" cy=\"10\" r=\"3\"/><circle cx=\"20\" cy=\"30\" r=\"3\"/><path d=\"M10 10l10 20M30 10l-10 20\"/></svg>`,\r\n  shield: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M20 5l15 5v10c0 10-15 15-15 15S5 30 5 20V10l15-5z\"/></svg>`,\r\n  shirt: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 10L5 20v15h10V25h10v10h10V20l-5-10-5 5h-10z\"/></svg>`,\r\n  shuffle: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M5 10h5l20 20h5\"/><path d=\"M35 10h-5l-5 5\"/><path d=\"M5 30h5l5-5\"/></svg>`,\r\n  skull: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"10\"/><circle cx=\"16\" cy=\"18\" r=\"1\"/><circle cx=\"24\" cy=\"18\" r=\"1\"/><path d=\"M18 25v5M22 25v5\"/></svg>`,\r\n  snow: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"20\" y1=\"5\" x2=\"20\" y2=\"35\"/><line x1=\"5\" y1=\"20\" x2=\"35\" y2=\"20\"/><line x1=\"10\" y1=\"10\" x2=\"30\" y2=\"30\"/><line x1=\"10\" y1=\"30\" x2=\"30\" y2=\"10\"/></svg>`,\r\n  star: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"20,5 25,15 35,15 27,22 30,32 20,26 10,32 13,22 5,15 15,15\"/></svg>`,\r\n  stop: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"10\" y=\"10\" width=\"20\" height=\"20\"/></svg>`,\r\n  sun: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" stroke-linecap=\"square\" stroke-linejoin=\"miter\"><circle cx=\"20\" cy=\"20\" r=\"5\" /><path d=\"M20 5v5M20 30v5M5 20h5M30 20h5M10 10l3 3M27 27l3 3M10 30l3-3M27 13l3-3\" /></svg>`,\r\n  sync: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polyline points=\"25,5 35,5 35,15\"/><path d=\"M35 5a15 15 0 1 0 0 30\"/></svg>`,\r\n  terminal: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"5\" width=\"30\" height=\"30\"/><polyline points=\"10,15 15,20 10,25\"/><line x1=\"20\" y1=\"25\" x2=\"30\" y2=\"25\"/></svg>`,\r\n  text: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><line x1=\"5\" y1=\"10\" x2=\"35\" y2=\"10\"/><line x1=\"10\" y1=\"20\" x2=\"30\" y2=\"20\"/><line x1=\"15\" y1=\"30\" x2=\"25\" y2=\"30\"/></svg>`,\r\n  time: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><circle cx=\"20\" cy=\"20\" r=\"14\" /><line x1=\"20\" y1=\"20\" x2=\"20\" y2=\"12\" /><line x1=\"20\" y1=\"20\" x2=\"26\" y2=\"20\" /></svg>`,\r\n  trash: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"10\" y=\"12\" width=\"20\" height=\"20\" /><line x1=\"16\" y1=\"16\" x2=\"16\" y2=\"28\" /><line x1=\"20\" y1=\"16\" x2=\"20\" y2=\"28\" /><line x1=\"24\" y1=\"16\" x2=\"24\" y2=\"28\" /><polyline points=\"12,12 12,8 28,8 28,12\" /><line x1=\"16\" y1=\"8\" x2=\"24\" y2=\"8\" /></svg>`,\r\n  'trending-down': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6,12 16,22 24,14 34,30\" /><polyline points=\"28,30 34,30 34,24\" /></svg>`,\r\n  'trending-up': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6,28 16,18 24,26 34,10\" /><polyline points=\"28,10 34,10 34,16\" /></svg>`,\r\n  trophy: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M10 10h20v10c0 10-20 10-20 0z\"/><line x1=\"20\" y1=\"20\" x2=\"20\" y2=\"30\"/><rect x=\"15\" y=\"30\" width=\"10\" height=\"5\"/></svg>`,\r\n  'thumbs-down': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 10h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5l1.5 6-0.5 2-6-6v-14z\" /><line x1=\"10\" y1=\"10\" x2=\"10\" y2=\"24\" /></svg>`,\r\n  'thumbs-up': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\" stroke-linejoin=\"round\"><path d=\"M14 18v12a2 2 0 0 0 2 2h7l4-10V12h-6l1-6-1-2-6 6v6h-1a1 1 0 0 0-1 1z\" /><path d=\"M10 18v12\" /></svg>`,\r\n  'video-cam': `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><rect x=\"5\" y=\"10\" width=\"20\" height=\"20\"/><polygon points=\"25,15 35,10 35,30 25,25\"/></svg>`,\r\n  volume: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"10,15 20,15 25,10 25,30 20,25 10,25\"/><path d=\"M28 15l4 5-4 5\"/></svg>`,\r\n  warning: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><polygon points=\"20,5 5,35 35,35\"/><line x1=\"20\" y1=\"15\" x2=\"20\" y2=\"25\"/><circle cx=\"20\" cy=\"30\" r=\"1\"/></svg>`,\r\n  wifi: `<svg class=\"kage-icon\" stroke=\"currentColor\" stroke-width=\"var(--kage-icon-depth)\" viewBox=\"0 0 40 40\" width=\"100%\" height=\"100%\" fill=\"none\"><path d=\"M5 15a25 25 0 0 1 30 0\"/><path d=\"M10 20a18 18 0 0 1 20 0\"/><path d=\"M15 25a10 10 0 0 1 10 0\"/><circle cx=\"20\" cy=\"30\" r=\"1\"/></svg>`,\r\n};\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  effect,\r\n  ElementRef,\r\n  inject,\r\n  input,\r\n  Renderer2,\r\n} from '@angular/core';\r\nimport { ICONS } from './icon.registry';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'kage-icon',\r\n  imports: [],\r\n  template: '',\r\n  styles: `\r\n    :host{\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      width: max-content;\r\n    }\r\n  `,\r\n})\r\nexport class KageIcon implements AfterViewInit {\r\n  name = input<string>();\r\n  svgSrc = input<string>();\r\n  size = input<number>();\r\n  depth = input<number>();\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'danger'\r\n    | 'info'\r\n  >();\r\n\r\n  private renderer = inject(Renderer2);\r\n  private elementRef = inject(ElementRef);\r\n  private http = inject(HttpClient);\r\n\r\n  constructor() {\r\n    effect(() => this.decide());\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.decide();\r\n  }\r\n\r\n  private decide() {\r\n    const svgSrc = this.svgSrc();\r\n    const iconName = this.name();\r\n    if (svgSrc) {\r\n      firstValueFrom(this.http.get(svgSrc, { responseType: 'text' }))\r\n        .then((rawSvg: string) => this.insertSvg(rawSvg))\r\n        .catch((err) =>\r\n          console.warn(`Failed to load SVG from URI: ${svgSrc}`, err)\r\n        );\r\n    } else if (iconName) {\r\n      this.insertSvg(ICONS[iconName ?? '']);\r\n    } else {\r\n      console.warn(\r\n        `Icon \"${iconName}\" not found in registry, and no svgSrc provided.`\r\n      );\r\n    }\r\n  }\r\n\r\n  private insertSvg(svgContent: string) {\r\n    const calculateIconDepth = (depth?: number) => {\r\n      if (depth) {\r\n        // If depth is already defined then nothing to do\r\n        return depth;\r\n      } else {\r\n        if (this.size()) {\r\n          return Math.ceil(this.size()! % 20);\r\n        } else {\r\n          return 1;\r\n        }\r\n      }\r\n    };\r\n    this.renderer.setAttribute(\r\n      this.elementRef.nativeElement,\r\n      'style',\r\n      `height: ${this.size() ?? 20}px; --kage-icon-depth: ${calculateIconDepth(\r\n        this.depth()\r\n      )}; color: ${\r\n        this.color() ? 'var(--color-' + this.color() + ')' : 'inherit'\r\n      }`\r\n    );\r\n\r\n    this.elementRef.nativeElement.innerHTML = svgContent;\r\n    // this.renderer.appendChild(this.elementRef.nativeElement, div);\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  input,\r\n  Input,\r\n  model,\r\n  Output,\r\n} from '@angular/core';\r\nimport { KageToastType } from './toast.model';\r\nimport { KageIcon } from '../../components/icon/icon.component';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'k-toast-host',\r\n  template: `\r\n    <div class=\"k-toast-container\" [ngClass]=\"[type()]\">\r\n      <p>{{ message() }}</p>\r\n      <div class=\"icon\" (click)=\"dismiss.emit()\">\r\n        <kage-icon name=\"remove\"></kage-icon>\r\n      </div>\r\n    </div>\r\n  `,\r\n  styleUrls: ['./toast.component.scss'],\r\n  imports: [KageIcon, NgClass],\r\n})\r\nexport class KageToastHost {\r\n  message = input<string>('');\r\n  type = input<KageToastType>('info');\r\n  @Output() dismiss = new EventEmitter<void>();\r\n}\r\n","import {\r\n  ApplicationRef,\r\n  ComponentRef,\r\n  createComponent,\r\n  EnvironmentInjector,\r\n  inject,\r\n  Injectable,\r\n  Injector,\r\n} from '@angular/core';\r\nimport { KageToastOptions, KageToastPosition } from './toast.model';\r\nimport { KageToastHost } from './toast.component';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class KageToastCtrl {\r\n  private wrappers: Map<KageToastPosition, HTMLElement> = new Map();\r\n\r\n  private appRef = inject(ApplicationRef);\r\n  private injector = inject(Injector);\r\n  private envInjector = inject(EnvironmentInjector);\r\n  private document = inject(DOCUMENT);\r\n\r\n  show(options: KageToastOptions) {\r\n    const {\r\n      message,\r\n      type = 'info',\r\n      duration = 3000,\r\n      position = 'top-right',\r\n    } = options;\r\n\r\n    const wrapper = this.ensureWrapper(position);\r\n\r\n    const componentRef = createComponent(KageToastHost, {\r\n      environmentInjector: this.envInjector,\r\n      elementInjector: this.injector,\r\n    });\r\n\r\n    componentRef.setInput('message', message);\r\n    componentRef.setInput('type', type);\r\n\r\n    componentRef.instance.dismiss.subscribe(() => {\r\n      this.removeToast(wrapper, componentRef);\r\n    });\r\n\r\n    this.appRef.attachView(componentRef.hostView);\r\n    wrapper.appendChild(componentRef.location.nativeElement);\r\n\r\n    if (duration > 0) {\r\n      setTimeout(() => this.removeToast(wrapper, componentRef), duration);\r\n    }\r\n  }\r\n\r\n  private removeToast(\r\n    wrapper: HTMLElement,\r\n    componentRef: ComponentRef<KageToastHost>\r\n  ) {\r\n    this.appRef.detachView(componentRef.hostView);\r\n    componentRef.destroy();\r\n    if (wrapper.children.length === 0) {\r\n      wrapper.remove();\r\n      this.wrappers.forEach((el, key) => {\r\n        if (el === wrapper) this.wrappers.delete(key);\r\n      });\r\n    }\r\n  }\r\n\r\n  private ensureWrapper(position: KageToastPosition): HTMLElement {\r\n    if (this.wrappers.has(position)) {\r\n      return this.wrappers.get(position)!;\r\n    }\r\n\r\n    const wrapper = this.document.createElement('div');\r\n    wrapper.classList.add('k-toast-wrapper', position);\r\n    this.document.body.appendChild(wrapper);\r\n    this.wrappers.set(position, wrapper);\r\n    return wrapper;\r\n  }\r\n\r\n  clearAll() {\r\n    this.wrappers.forEach((wrapper) => {\r\n      while (wrapper.firstChild) {\r\n        wrapper.firstChild.remove();\r\n      }\r\n      wrapper.remove();\r\n    });\r\n    this.wrappers.clear();\r\n  }\r\n}\r\n","import { Directive, HostListener, inject, input } from '@angular/core';\r\nimport { KageToastCtrl } from '../../services/toast/toast.service';\r\n\r\n@Directive({\r\n  selector: '[kageCopy]',\r\n})\r\nexport class KageCopyDirective {\r\n  kageCopy = input<string>('');\r\n  private toast = inject(KageToastCtrl);\r\n\r\n  @HostListener('click')\r\n  onClick(): void {\r\n    if (!this.kageCopy()) {\r\n      this.toast.show({\r\n        message: `No text provided to copy.`,\r\n        duration: 2500,\r\n        position: 'top-right',\r\n        type: 'warning',\r\n      });\r\n      console.warn('No text provided to copy.');\r\n      return;\r\n    }\r\n\r\n    navigator.clipboard\r\n      .writeText(this.kageCopy())\r\n      .then(() => {\r\n        this.toast.show({\r\n          message: `Copied`,\r\n          duration: 2500,\r\n          position: 'top-right',\r\n          type: 'success',\r\n        });\r\n      })\r\n      .catch((err) => {\r\n        this.toast.show({\r\n          message: `Failed to copy`,\r\n          duration: 2500,\r\n          position: 'top-right',\r\n          type: 'danger',\r\n        });\r\n        console.error('Failed to copy text: ', err);\r\n      });\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { AfterViewInit, Directive, ElementRef, inject } from '@angular/core';\r\nimport { KageToastCtrl } from '../../services/toast/toast.service';\r\nimport { KageAvatar } from '../../components/avatar/avatar.component';\r\n\r\n@Directive({\r\n  selector: '[kageImageView]',\r\n})\r\nexport class KageImageViewDirective implements AfterViewInit {\r\n  private element = inject(ElementRef);\r\n  private document = inject(DOCUMENT);\r\n  private toastService = inject(KageToastCtrl);\r\n  private imageCmp = inject(KageAvatar, { optional: true, host: true });\r\n\r\n  ngAfterViewInit(): void {\r\n    const ele = this.element.nativeElement;\r\n    ele.style.cursor = 'pointer';\r\n    const src = ele.src || this.imageCmp?.src();\r\n    const alt = ele.alt || this.imageCmp?.alt();\r\n    ele.onclick = () => this.previewImage(src, alt);\r\n  }\r\n\r\n  private previewImage(imageUrl: string, imageAlt?: string) {\r\n    const urlConfig = new URL(this.document.URL);\r\n\r\n    const container = this.document.createElement('div');\r\n    container.setAttribute('class', 'kage-image-preview-container');\r\n\r\n    const loaderContainer = this.document.createElement('div');\r\n    loaderContainer.setAttribute('class', 'kage-image-preview-loader');\r\n    const spanOne = this.document.createElement('span');\r\n    loaderContainer.append(spanOne);\r\n    const spanTwo = this.document.createElement('span');\r\n    loaderContainer.append(spanTwo);\r\n    const spanThree = this.document.createElement('span');\r\n    loaderContainer.append(spanThree);\r\n    const spanFour = this.document.createElement('span');\r\n    loaderContainer.append(spanFour);\r\n    const spanFive = this.document.createElement('span');\r\n    loaderContainer.append(spanFive);\r\n    container.appendChild(loaderContainer);\r\n\r\n    const image = this.document.createElement('img');\r\n    image.src = imageUrl;\r\n    image.alt = imageAlt ?? 'image';\r\n    image.title = imageAlt ?? 'Image';\r\n    image.loading = 'lazy';\r\n    image.style.display = 'none';\r\n    image.onload = () => {\r\n      container.removeChild(loaderContainer);\r\n      image.style.display = 'inherit';\r\n      image.setAttribute('class', 'kage-image-preview-image-loaded');\r\n    };\r\n    container.appendChild(image);\r\n\r\n    const options = this.document.createElement('div');\r\n    options.setAttribute('class', 'kage-image-preview-options');\r\n    const optionsDownload = this.document.createElement('div');\r\n    // Need to provide icon url\r\n    optionsDownload.setAttribute('class', 'kage-image-preview-option-download');\r\n    optionsDownload.innerText = 'Download';\r\n    optionsDownload.addEventListener('click', () => {\r\n      if (imageUrl) {\r\n        if (imageUrl.startsWith('/')) {\r\n          this.downloadImage(`${urlConfig.origin}${imageUrl}`, imageAlt);\r\n        } else if (\r\n          imageUrl.startsWith('http://') ||\r\n          imageUrl.startsWith('https://')\r\n        ) {\r\n          this.downloadImage(imageUrl, imageAlt);\r\n        }\r\n      }\r\n    });\r\n    options.appendChild(optionsDownload);\r\n\r\n    const optionsClose = this.document.createElement('div');\r\n    // Need to provide icon url\r\n    optionsClose.setAttribute('class', 'kage-image-preview-option-close');\r\n    optionsClose.innerText = 'Close';\r\n    optionsClose.addEventListener('click', () =>\r\n      this.document.body.removeChild(container)\r\n    );\r\n    options.appendChild(optionsClose);\r\n\r\n    container.appendChild(options);\r\n\r\n    this.document.body.appendChild(container);\r\n  }\r\n\r\n  private async downloadImage(src: string, fileName?: string) {\r\n    if (src) {\r\n      const response = await fetch(src);\r\n      const blobImage = await response.blob();\r\n\r\n      const href = URL.createObjectURL(blobImage);\r\n\r\n      const anchorElement = this.document.createElement('a');\r\n      anchorElement.href = href;\r\n      anchorElement.download = `${cleanText(fileName ?? 'Image')}.${\r\n        getFileExtensionFromUrl(src) ?? 'png'\r\n      }`;\r\n      this.document.body.appendChild(anchorElement);\r\n\r\n      anchorElement.click();\r\n\r\n      this.document.body.removeChild(anchorElement);\r\n      URL.revokeObjectURL(href);\r\n    } else {\r\n      this.toastService.show({\r\n        message: \"Couldn't download image.\",\r\n        position: 'top-right',\r\n        duration: 2500,\r\n        type: 'danger',\r\n      });\r\n    }\r\n  }\r\n}\r\nexport const getFileExtensionFromUrl = (url: string): string | null => {\r\n  if (url) {\r\n    if (typeof url === 'string') {\r\n      return url.split('.').pop() ?? null;\r\n    }\r\n  }\r\n  return null;\r\n};\r\n\r\nexport const cleanText = (name: string): string | null => {\r\n  if (name && typeof name === 'string') {\r\n    return name\r\n      .toLowerCase()\r\n      .replaceAll(' ', '_')\r\n      .replaceAll('-', '_')\r\n      .replaceAll('/', '_');\r\n  }\r\n  return null;\r\n};\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  inject,\r\n  Input,\r\n  input,\r\n  NgZone,\r\n  OnDestroy,\r\n  OnInit,\r\n  output,\r\n  Renderer2,\r\n} from '@angular/core';\r\nimport { debounceTime, Subject, throttleTime } from 'rxjs';\r\n\r\ntype ClassCondition = { width?: number; height?: number; className: string };\r\n\r\n@Directive({\r\n  selector: '[kageResized]',\r\n})\r\nexport class KageResizeDirective implements OnInit, OnDestroy {\r\n  observeWidth = input<boolean>(true);\r\n  observeHeight = input<boolean>(true);\r\n  debounceTime = input<number>(100);\r\n  resizeMode = input<'debounce' | 'throttle'>('debounce');\r\n\r\n  minWidthClass = input<ClassCondition>();\r\n  maxWidthClass = input<ClassCondition>();\r\n  minHeightClass = input<ClassCondition>();\r\n  maxHeightClass = input<ClassCondition>();\r\n  @Input() onResize?: (rect: DOMRectReadOnly) => void;\r\n  kageResized = output<DOMRectReadOnly>();\r\n\r\n  private resizeSubject = new Subject<DOMRectReadOnly>();\r\n  private observer?: ResizeObserver;\r\n\r\n  private el = inject(ElementRef);\r\n  private zone = inject(NgZone);\r\n  private renderer = inject(Renderer2);\r\n\r\n  ngOnInit(): void {\r\n    const stream =\r\n      this.resizeMode() === 'throttle'\r\n        ? this.resizeSubject.pipe(throttleTime(this.debounceTime()))\r\n        : this.resizeSubject.pipe(debounceTime(this.debounceTime()));\r\n\r\n    stream.subscribe((rect) => {\r\n      this.kageResized.emit(rect);\r\n      if (this.onResize) this.onResize(rect);\r\n      this.applyClasses(rect);\r\n    });\r\n\r\n    this.zone.runOutsideAngular(() => {\r\n      this.observer = new ResizeObserver((entries) => {\r\n        for (const entry of entries) {\r\n          const rect = entry.contentRect;\r\n          if (\r\n            (this.observeWidth() && rect.width !== 0) ||\r\n            (this.observeHeight() && rect.height !== 0)\r\n          ) {\r\n            this.resizeSubject.next(rect);\r\n          }\r\n        }\r\n      });\r\n\r\n      this.observer.observe(this.el.nativeElement);\r\n    });\r\n  }\r\n\r\n  private applyClasses(rect: DOMRectReadOnly): void {\r\n    const el = this.el.nativeElement;\r\n\r\n    const applyClass = (\r\n      condition: ClassCondition | undefined,\r\n      match: boolean\r\n    ) => {\r\n      if (!condition) return;\r\n      const hasClass = el.classList.contains(condition.className);\r\n      if (match && !hasClass) {\r\n        this.renderer.addClass(el, condition.className);\r\n      } else if (!match && hasClass) {\r\n        this.renderer.removeClass(el, condition.className);\r\n      }\r\n    };\r\n\r\n    applyClass(\r\n      this.minWidthClass(),\r\n      !!this.minWidthClass()?.width &&\r\n        rect.width >= this.minWidthClass()?.width!\r\n    );\r\n    applyClass(\r\n      this.maxWidthClass(),\r\n      !!this.maxWidthClass()?.width &&\r\n        rect.width <= this.maxWidthClass()?.width!\r\n    );\r\n    applyClass(\r\n      this.minHeightClass(),\r\n      !!this.minHeightClass()?.height &&\r\n        rect.height >= this.minHeightClass()?.height!\r\n    );\r\n    applyClass(\r\n      this.maxHeightClass(),\r\n      !!this.maxHeightClass()?.height &&\r\n        rect.height <= this.maxHeightClass()?.height!\r\n    );\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.observer?.disconnect();\r\n    this.resizeSubject.complete();\r\n  }\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\r\nimport {\r\n  Directive,\r\n  ElementRef,\r\n  HostListener,\r\n  inject,\r\n  input,\r\n  PLATFORM_ID,\r\n  Renderer2,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[kageRipple]',\r\n})\r\nexport class KageRippleDirective {\r\n  rippleColor = input<string>();\r\n\r\n  private container!: HTMLElement;\r\n  private keyframesInjected = false;\r\n\r\n  private el = inject(ElementRef<HTMLElement>);\r\n  private renderer = inject(Renderer2);\r\n  private document = inject(DOCUMENT);\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  constructor() {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      this.renderer.setAttribute(this.el.nativeElement, 'ripple-host', '');\r\n      this.container = this.renderer.createElement('span');\r\n      this.renderer.addClass(this.container, 'ripple-container');\r\n      this.renderer.setStyle(this.container, 'position', 'absolute');\r\n      this.renderer.appendChild(this.el.nativeElement, this.container);\r\n      this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');\r\n      this.renderer.setStyle(this.el.nativeElement, 'overflow', 'hidden');\r\n    }\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  onClick(event: MouseEvent) {\r\n    const rippleColor = this.rippleColor() ?? 'var(--color-primary)';\r\n\r\n    const ripple = this.renderer.createElement('span');\r\n    const rect = this.el.nativeElement.getBoundingClientRect();\r\n    const size = Math.max(rect.width, rect.height);\r\n    const x = event.clientX - rect.left - size / 2;\r\n    const y = event.clientY - rect.top - size / 2;\r\n\r\n    this.renderer.setStyle(ripple, 'position', 'absolute');\r\n    this.renderer.setStyle(ripple, 'border-radius', '50%');\r\n    this.renderer.setStyle(ripple, 'width', `${size}px`);\r\n    this.renderer.setStyle(ripple, 'height', `${size}px`);\r\n    this.renderer.setStyle(ripple, 'left', `${x}px`);\r\n    this.renderer.setStyle(ripple, 'top', `${y}px`);\r\n    this.renderer.setStyle(ripple, 'background-color', rippleColor);\r\n    this.renderer.setStyle(ripple, 'transform', 'scale(0)');\r\n    this.renderer.setStyle(ripple, 'opacity', '0.75');\r\n    this.renderer.setStyle(ripple, 'pointer-events', 'none');\r\n    this.renderer.setStyle(ripple, 'animation', 'ripple 600ms ease-out');\r\n\r\n    this.injectRippleKeyframes();\r\n\r\n    this.renderer.appendChild(this.container, ripple);\r\n\r\n    setTimeout(() => {\r\n      this.renderer.removeChild(this.container, ripple);\r\n    }, 600);\r\n  }\r\n\r\n  private injectRippleKeyframes() {\r\n    if (this.keyframesInjected) return;\r\n    const style = this.renderer.createElement('style');\r\n    style.innerHTML = `\r\n      @keyframes ripple {\r\n        to {\r\n          transform: scale(2);\r\n          opacity: 0;\r\n        }\r\n      }\r\n    `;\r\n    this.renderer.appendChild(this.document.head, style);\r\n    this.keyframesInjected = true;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      this.container.remove();\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef, HostListener, input, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[kageImageFallback]'\r\n})\r\nexport class KageImageFallbackDirective {\r\n\r\n  fallbackUrl = input<string>('', { alias: 'kageImageFallback' });\r\n\r\n  constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n  \r\n  @HostListener('error')\r\n  loadFallbackOnError() {\r\n    if (this.el.nativeElement.tagName.toLowerCase() === 'img') {\r\n      this.renderer.setAttribute(this.el.nativeElement, 'src', this.fallbackUrl());\r\n    }\r\n  }\r\n\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChildren,\r\n  inject,\r\n  input,\r\n  QueryList,\r\n} from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { KageBreadCrumb } from '../bread-crumb/bread-crumb.component';\r\nimport { KageIcon } from '../icon/icon.component';\r\nimport { KageRippleDirective } from \"../../directives/directives\";\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'kage-bread-crumbs',\r\n  imports: [KageIcon, KageRippleDirective, RouterLink],\r\n  templateUrl: './bread-crumbs.component.html',\r\n  styleUrl: './bread-crumbs.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageBreadCrumbs {\r\n  cssClass = input<string>();\r\n  iconDepth = input<number>();\r\n  @ContentChildren(KageBreadCrumb)\r\n  breadCrumps!: QueryList<KageBreadCrumb>;\r\n\r\n  private location = inject(Location);\r\n\r\n  backToPreviousPage() {\r\n    this.location.back()\r\n  }\r\n}\r\n","<div class=\"kage-breadcrumbs-wrapper\" [class]=\"cssClass() ?? ''\">\r\n    <span class=\"back\" kageRipple [rippleColor]=\"'var(--color-medium)'\" (click)=\"backToPreviousPage()\">\r\n        <kage-icon [depth]=\"iconDepth()\" name=\"arrow-backward\"></kage-icon>\r\n    </span>    \r\n    @if (breadCrumps.length) {\r\n        <div class=\"links\">\r\n            @for (item of breadCrumps; track $index; let l = $last) {\r\n                @if (!l) {\r\n                    <a [routerLink]=\"item.href()\">{{item.label()}}</a>\r\n                    <kage-icon name=\"chevron-forward\" [depth]=\"iconDepth()\"></kage-icon>\r\n                } @else {\r\n                    <p>{{item.label()}}</p>\r\n                }\r\n            }\r\n        </div>\r\n    }\r\n</div>","import { NgClass } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  HostListener,\r\n  input,\r\n  model,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { KageRippleDirective } from '../../directives/directives';\r\n\r\n@Component({\r\n  selector: 'kage-button',\r\n  imports: [NgClass, KageRippleDirective],\r\n  templateUrl: './button.component.html',\r\n  styleUrl: './button.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageButton),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageButton {\r\n  cssClass = input<string>();\r\n  type = input<'button' | 'submit' | 'reset'>('button');\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n  disabled = model<boolean>(false);\r\n  loading = input<boolean>(false);\r\n  iconRight = input<boolean>(false);\r\n  ariaLabel = input<string>('Button');\r\n  fill = input<'clear' | 'outline'>('outline');\r\n\r\n  private onChange = (value: any) => {};\r\n  private onTouched = () => {};\r\n  value: any;\r\n\r\n  get getRippleColor() {\r\n    if (this.color() === 'primary') {\r\n      return `var(--color-primary)`;\r\n    } else if (this.color() === 'secondary') {\r\n      return `var(--color-secondary)`;\r\n    } else if (this.color() === 'tertiary') {\r\n      return `var(--color-tertiary)`;\r\n    } else if (this.color() === 'success') {\r\n      return `var(--color-success)`;\r\n    } else if (this.color() === 'warning') {\r\n      return `var(--color-warning)`;\r\n    } else if (this.color() === 'danger') {\r\n      return `var(--color-danger)`;\r\n    } else if (this.color() === 'info') {\r\n      return `var(--color-info)`;\r\n    } else {\r\n      return `var(--border-color)`;\r\n    }\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n\r\n  handleClick() {\r\n    if (!this.disabled() && !this.loading()) {\r\n      this.onTouched();\r\n      this.onChange(true);\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  handleKeydown(event: KeyboardEvent) {\r\n    if (\r\n      (event.key === 'Enter' || event.key === ' ') &&\r\n      !this.disabled() &&\r\n      !this.loading()\r\n    ) {\r\n      event.preventDefault();\r\n      this.handleClick();\r\n    }\r\n  }\r\n\r\n  @HostListener('click', ['$event'])\r\n  onHostClick(event: MouseEvent) {\r\n    if (this.disabled()) {\r\n      event.preventDefault();\r\n      event.stopImmediatePropagation();\r\n    }\r\n  }\r\n}\r\n","<button\r\n  [attr.type]=\"type()\"\r\n  [disabled]=\"disabled() || loading()\"\r\n  [ngClass]=\"[color() ?? '', fill(), cssClass() ?? '']\"\r\n  class=\"kage-button-wrapper\"\r\n  (click)=\"handleClick()\"\r\n  [attr.aria-disabled]=\"disabled() || loading()\"\r\n  [attr.aria-busy]=\"loading()\"\r\n  [attr.aria-label]=\"ariaLabel()\"\r\n  role=\"button\"\r\n  tabindex=\"0\"\r\n  kageRipple\r\n  [rippleColor]=\"getRippleColor\"\r\n>\r\n    @if (loading()) {\r\n        <span class=\"spinner\" aria-hidden=\"true\"></span>\r\n    }\r\n    @if (!iconRight() && !loading()) {\r\n        <ng-content select=\"[icon]\"></ng-content>\r\n    }\r\n    @if (!loading()) {\r\n        <ng-content></ng-content>\r\n    }\r\n    @if (iconRight() && !loading()) {\r\n        <ng-content select=\"[icon]\"></ng-content>\r\n    }\r\n</button>","import { DatePipe } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n  output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { KageIcon } from '../icon/icon.component';\r\n\r\n@Component({\r\n  selector: 'kage-calendar',\r\n  templateUrl: './calendar.component.html',\r\n  styleUrl: './calendar.component.scss',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageCalendar),\r\n      multi: true,\r\n    },\r\n  ],\r\n  imports: [DatePipe, KageIcon],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageCalendar implements ControlValueAccessor {\r\n  mode = input<'single' | 'range' | 'multiple'>('single');\r\n  disabled = model<boolean>(false);\r\n  disabledDateFn = input<(date: Date | null) => boolean>();\r\n  invalidDateFn = input<(date: Date | null) => boolean>();\r\n  // Element function\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n  // Output Events\r\n  kageChange = output<void>();\r\n  kageTouched = output<void>();\r\n  // Local variable\r\n  calendar: Array<Array<Date | null>> = [];\r\n  value: any = {};\r\n  private range: any = {};\r\n  private multipleDates: Array<Date> = [];\r\n\r\n  constructor() {\r\n    const d = new Date();\r\n    this.createCalendar(d.getMonth(), d.getFullYear());\r\n  }\r\n\r\n  // Default options\r\n  writeValue(obj: any): void {\r\n    this.value = obj;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n    this.kageTouched.emit();\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n    this.kageChange.emit();\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n\r\n  onBlur(): void {\r\n    this.onTouched();\r\n  }\r\n\r\n  /**\r\n   * Adjust class based on boolean values\r\n   * @param date - Disable date\r\n   * @returns - boolean\r\n   */\r\n  isDateMultiple(date: Date | null) {\r\n    if (date) {\r\n      const toDateString = (date: Date) =>\r\n        new Date(date).toISOString().split('T')[0];\r\n      return this.multipleDates.some(\r\n        (d) => toDateString(d) === toDateString(date)\r\n      );\r\n    }\r\n    return false;\r\n  }\r\n  /**\r\n   * Adjust class based on boolean values\r\n   * @param date - Disable date\r\n   * @returns - boolean\r\n   */\r\n  isDateSelected(date: Date | null) {\r\n    if (date && this.value?.hasOwnProperty('selected')) {\r\n      const d = new Date(this.value.selected);\r\n      return (\r\n        date.getDate() === d.getDate() &&\r\n        date.getMonth() === d.getMonth() &&\r\n        date.getFullYear() === d.getFullYear()\r\n      );\r\n    }\r\n    return false;\r\n  }\r\n  /**\r\n   * Modify calendar based on these\r\n   * @param date - Date\r\n   * @returns - Booelan\r\n   */\r\n  isInRange(date: Date | null) {\r\n    if (date) {\r\n      const dateObj = this.range;\r\n      if (dateObj.hasOwnProperty('start') && dateObj?.hasOwnProperty('end')) {\r\n        return date >= new Date(dateObj.start) && date <= new Date(dateObj.end);\r\n      }\r\n      return false;\r\n    }\r\n    return false;\r\n  }\r\n  /**\r\n   * Adjust class based on boolean values\r\n   * @param date - Disable date\r\n   * @returns - boolean\r\n   */\r\n  isDateDisabled(date: Date | null) {\r\n    const fn = this.disabledDateFn();\r\n    if (fn) {\r\n      return fn(date);\r\n    }\r\n    return false;\r\n  }\r\n  /**\r\n   * Depends on user which date to be set as invalid\r\n   * @param date - Date\r\n   * @returns - Boolean\r\n   */\r\n  isinvalidDate(date: Date | null) {\r\n    const fn = this.invalidDateFn();\r\n    if (fn) {\r\n      return fn(date);\r\n    }\r\n    return false;\r\n  }\r\n  /**\r\n   * Today validation\r\n   * @param date - For any date\r\n   * @returns - boolean\r\n   */\r\n  isToday(date: Date | null): boolean {\r\n    if (date) {\r\n      const today = new Date();\r\n      return (\r\n        date.getDate() === today.getDate() &&\r\n        date.getMonth() === today.getMonth() &&\r\n        date.getFullYear() === today.getFullYear()\r\n      );\r\n    }\r\n    return false;\r\n  }\r\n  /**\r\n   * Calculate and recalculate date\r\n   * @param date\r\n   */\r\n  dateClicked(date: Date | null) {\r\n    if (date) {\r\n      if (this.mode() === 'single') {\r\n        const obj = { selected: date };\r\n        if (!this.isDateDisabled(date) && !this.isinvalidDate(date)) {\r\n          this.writeValue(obj);\r\n          this.onChange(obj);\r\n        }\r\n      } else if (this.mode() === 'range') {\r\n        if (!this.isDateDisabled(date) && !this.isinvalidDate(date)) {\r\n          if (this.range?.hasOwnProperty('start')) {\r\n            if (this.range?.hasOwnProperty('end')) {\r\n              delete this.range.end;\r\n              Object.assign(this.range, { start: date });\r\n              this.onChange(this.range);\r\n            } else {\r\n              Object.assign(this.range, { end: date });\r\n              this.writeValue(this.range);\r\n              this.onChange(this.range);\r\n            }\r\n          } else {\r\n            Object.assign(this.range, { start: date });\r\n            this.onChange(this.range);\r\n          }\r\n        }\r\n      } else if (this.mode() === 'multiple') {\r\n        if (!this.isDateDisabled(date) && !this.isinvalidDate(date)) {\r\n          const toDateString = (date: Date) =>\r\n            new Date(date).toISOString().split('T')[0];\r\n          const index = this.multipleDates.findIndex(\r\n            (d) => toDateString(d) === toDateString(date)\r\n          );\r\n          if (index === -1) {\r\n            this.multipleDates.push(date);\r\n          } else {\r\n            this.multipleDates.splice(index, 1);\r\n          }\r\n          this.writeValue(this.multipleDates);\r\n          this.onChange(this.multipleDates);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Calendar navigation next month\r\n   */\r\n  nextMonth() {\r\n    const currentCalendar = this.calendar[1][0];\r\n    if (currentCalendar?.getMonth() === 11) {\r\n      const month = 0;\r\n      const year = (currentCalendar?.getFullYear() ?? 0) + 1;\r\n      this.createCalendar(month, year);\r\n    } else {\r\n      const month = (currentCalendar?.getMonth() ?? 0) + 1;\r\n      const year = currentCalendar?.getFullYear();\r\n      this.createCalendar(month, year!);\r\n    }\r\n  }\r\n  /**\r\n   * Calendar navigation prev month\r\n   */\r\n  prevMonth() {\r\n    const currentCalendar = this.calendar[1][0];\r\n    if (currentCalendar?.getMonth() === 0) {\r\n      const month = 11;\r\n      const year = (currentCalendar?.getFullYear() ?? 0) - 1;\r\n      this.createCalendar(month, year);\r\n    } else {\r\n      const month = (currentCalendar?.getMonth() ?? 0) - 1;\r\n      const year = currentCalendar?.getFullYear();\r\n      this.createCalendar(month, year!);\r\n    }\r\n  }\r\n  // Create calendar dates\r\n  createCalendar(month: number, year: number) {\r\n    // Create date object\r\n    const date = new Date();\r\n    date.setFullYear(year);\r\n    date.setMonth(month);\r\n    date.setDate(1);\r\n    // last date of a month\r\n    const lastDate = new Date(year, month + 1, 0);\r\n    // get week day of the date\r\n    const weekDay = date.getDay();\r\n    const output = [];\r\n    let arr = [];\r\n    if (weekDay) {\r\n      for (let wk = 0; wk < weekDay; wk++) {\r\n        arr.push(null);\r\n      }\r\n    }\r\n    for (let i = 0; i < lastDate.getDate(); i++) {\r\n      const addedDate = new Date();\r\n      addedDate.setFullYear(year);\r\n      addedDate.setMonth(month);\r\n      addedDate.setDate(i + 1);\r\n      arr.push(addedDate);\r\n      if (arr.length === 7 || i + 1 === lastDate.getDate()) {\r\n        output.push(arr);\r\n        arr = [];\r\n      }\r\n    }\r\n    // check if last array is filled or not\r\n    const lastArr = output[output.length - 1];\r\n    if (lastArr.length !== 7) {\r\n      const extraArr = new Array(7 - lastArr.length).fill(null);\r\n      output.splice(output.length - 1, 1, lastArr.concat(extraArr));\r\n    }\r\n    this.calendar = output;\r\n  }\r\n}\r\n","<div class=\"kage-calendar-wrapper\">\r\n  <div class=\"kage-calendar-header\">\r\n    <div class=\"kage-calendar-button\" (click)=\"prevMonth()\">\r\n      <kage-icon name=\"chevron-backward\" color=\"primary\" [depth]=\"3\" [size]=\"16\"></kage-icon>\r\n    </div>\r\n    <p class=\"kage-calendar-month-year-selected\">{{calendar.length ? (calendar[1][0] | date: 'MMM y') : ''}}</p>\r\n    <div class=\"kage-calendar-button\" (click)=\"nextMonth()\">\r\n      <kage-icon name=\"chevron-forward\" color=\"primary\" [depth]=\"3\" [size]=\"16\"></kage-icon>\r\n    </div>\r\n  </div>\r\n  <div class=\"kage-calendar-body\">\r\n    <div class=\"kage-calendar-cells kage-calendar-weeks-names\">\r\n      @for (wk of ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']; track $index) {\r\n        <p>{{wk}}</p>\r\n      }\r\n    </div>\r\n    <div class=\"kage-calendar-cells kage-calendar-date-cells\">\r\n      @for (dates of calendar; track $index) {\r\n        <div class=\"kage-calendar-date-cells-row\">\r\n          @for (date of dates; track $index) {\r\n            <p \r\n              [attr.tabIndex]=\"date ? 0 : null\"\r\n              [style.cursor]=\"date ? 'pointer' : 'inherit'\"\r\n              [class.kage-calendar-today]=\"isToday(date)\" \r\n              [class.kage-calendar-date-on-range]=\"isInRange(date)\"\r\n              [class.kage-calendar-date-selected]=\"isDateSelected(date)\"\r\n              [class.kage-calender-date-multiple]=\"isDateMultiple(date)\"\r\n              [class.kage-calendar-date-disabled]=\"isDateDisabled(date)\" \r\n              [class.kage-calendar-invalid-date]=\"isinvalidDate(date)\"\r\n              (keyup.enter)=\"dateClicked(date)\"\r\n              (click)=\"dateClicked(date)\">\r\n                <span>{{date ? (date | date: 'd') : ''}}</span>\r\n            </p>\r\n          }\r\n        </div>\r\n      }\r\n    </div>\r\n    <!-- @if (mode() === 'multiple' || mode() === 'range') {\r\n      <div class=\"kage-calendar-btn-holder\">\r\n        <kage-button color=\"danger\" fill=\"clear\">Cancel</kage-button>\r\n        <kage-button color=\"success\" fill=\"clear\">Apply</kage-button>\r\n      </div>\r\n    } -->\r\n  </div>\r\n</div>","import { NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { RouterLink, RouterLinkWithHref } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'kage-card',\r\n  imports: [RouterLink, RouterLinkWithHref, NgTemplateOutlet],\r\n  templateUrl: './card.component.html',\r\n  styleUrl: './card.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageCard {\r\n  href = input<string>();\r\n  cssClass = input<string>();\r\n}\r\n","@if (href()) {\r\n    <a class=\"kage-card-link-wrapper\" [routerLink]=\"href()\" tabindex=\"0\">\r\n      <div class=\"kage-card-wrapper\" [class]=\"cssClass() ?? ''\">\r\n        <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\r\n      </div>\r\n    </a>\r\n} @else {\r\n    <div class=\"kage-card-wrapper\" [class]=\"cssClass() ?? ''\">\r\n      <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\r\n    </div>\r\n}\r\n\r\n<ng-template #cardContent>\r\n  <div class=\"kage-card-image\">\r\n    <ng-content select=\"[slot='card-image']\"></ng-content>\r\n  </div>\r\n  <div class=\"kage-card-body\">\r\n    <div class=\"card-header\">\r\n      <ng-content select=\"[slot='card-title']\"></ng-content>\r\n      <ng-content select=\"[slot='card-subtitle']\"></ng-content>\r\n    </div>\r\n    <div class=\"kage-card-content\">\r\n      <ng-content select=\"[slot='card-content']\"></ng-content>\r\n    </div>\r\n    <div class=\"kage-card-footer\">\r\n      <ng-content select=\"[slot='card-action']\"></ng-content>\r\n    </div>\r\n  </div>\r\n</ng-template>","import { NgClass } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'kage-checkbox',\r\n  imports: [NgClass],\r\n  templateUrl: './checkbox.component.html',\r\n  styleUrl: './checkbox.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageCheckbox),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageCheckbox implements ControlValueAccessor {\r\n  label = input<string>('');\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'success'\r\n    | 'danger'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n  disabled = model<boolean>(false);\r\n  checked = false;\r\n  name = input<string>();\r\n  id = input<string>();\r\n  cssClass = input<string>();\r\n\r\n  private onChange = (value: boolean) => {};\r\n  private onTouched = () => {};\r\n\r\n  writeValue(value: any): void {\r\n    this.checked = value;\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n\r\n  toggleChecked(): void {\r\n    this.checked = !this.checked;\r\n    this.onChange(this.checked);\r\n    this.onTouched();\r\n  }\r\n}\r\n","<label class=\"kage-checkbox-wrapper\" [ngClass]=\"[color() ?? '', cssClass() ?? '']\" [class.disabled]=\"disabled()\">\r\n    <input type=\"checkbox\" [disabled]=\"disabled()\" [attr.name]=\"name()\" [attr.id]=\"id()\">\r\n    <span class=\"check-box\"></span>\r\n    <p class=\"checkbox-label\"><ng-content></ng-content></p>\r\n</label>","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  input,\r\n  output,\r\n} from '@angular/core';\r\nimport { KageIcon } from '../icon/icon.component';\r\n\r\n@Component({\r\n  selector: 'kage-chip',\r\n  imports: [KageIcon],\r\n  templateUrl: './chip.component.html',\r\n  styleUrl: './chip.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageChip {\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n\r\n  onRemove = output<void>();\r\n  removable = input<boolean>(false);\r\n  removeIconDepth = input<number>();\r\n\r\n  removeChip() {\r\n    this.onRemove.emit();\r\n  }\r\n}\r\n","<div class=\"kage-chip-wrapper\" [class]=\"color() ?? ''\">\r\n    <ng-content select=\"[slot='icon']\"></ng-content>\r\n    <p><ng-content></ng-content></p>\r\n    @if (removable()) {\r\n        <span class=\"k-chip-remove\" (click)=\"removeChip()\">\r\n            <kage-icon name=\"remove\" [depth]=\"removeIconDepth() ?? 2\"></kage-icon>\r\n        </span>\r\n    }\r\n</div>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  HostBinding,\r\n  input,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-col',\r\n  imports: [],\r\n  template: '<ng-content></ng-content>',\r\n  styleUrls: ['./col.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageCol {\r\n  // Responsive span inputs\r\n  xs = input<number>();\r\n  sm = input<number>();\r\n  md = input<number>();\r\n  lg = input<number>();\r\n  xl = input<number>();\r\n  // Responsive offsets\r\n  offsetXs = input<number>();\r\n  offsetSm = input<number>();\r\n  offsetMd = input<number>();\r\n  offsetLg = input<number>();\r\n  offsetXl = input<number>();\r\n  // Non-responsive fallback\r\n  span = input<number>();\r\n  offset = input<number>();\r\n\r\n  @HostBinding('class.xs') get isXs() {\r\n    return this.xs() != null;\r\n  }\r\n  @HostBinding('class.sm') get isSm() {\r\n    return this.sm() != null;\r\n  }\r\n  @HostBinding('class.md') get isMd() {\r\n    return this.md() != null;\r\n  }\r\n  @HostBinding('class.lg') get isLg() {\r\n    return this.lg() != null;\r\n  }\r\n  @HostBinding('class.xl') get isXl() {\r\n    return this.xl() != null;\r\n  }\r\n\r\n  // Default stack unless xs is provided\r\n  @HostBinding('class.auto-stack') get autoStack() {\r\n    return (\r\n      this.xs() == null &&\r\n      this.sm() == null &&\r\n      this.md() == null &&\r\n      this.lg() == null &&\r\n      this.xl() == null\r\n    );\r\n  }\r\n\r\n  // Dynamic CSS vars for responsive spans\r\n  @HostBinding('style.--xs-span') get xsSpan() {\r\n    return this.xs() ? `${(this.xs()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--sm-span') get smSpan() {\r\n    return this.sm() ? `${(this.sm()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--md-span') get mdSpan() {\r\n    return this.md() ? `${(this.md()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--lg-span') get lgSpan() {\r\n    return this.lg() ? `${(this.lg()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--xl-span') get xlSpan() {\r\n    return this.xl() ? `${(this.xl()! / 12) * 100}%` : null;\r\n  }\r\n\r\n  // Offsets\r\n  @HostBinding('style.--xs-offset') get xsOffset() {\r\n    return this.offsetXs() ? `${(this.offsetXs()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--sm-offset') get smOffset() {\r\n    return this.offsetSm() ? `${(this.offsetSm()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--md-offset') get mdOffset() {\r\n    return this.offsetMd() ? `${(this.offsetMd()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--lg-offset') get lgOffset() {\r\n    return this.offsetLg() ? `${(this.offsetLg()! / 12) * 100}%` : null;\r\n  }\r\n  @HostBinding('style.--xl-offset') get xlOffset() {\r\n    return this.offsetXl() ? `${(this.offsetXl()! / 12) * 100}%` : null;\r\n  }\r\n\r\n  // Non-responsive fallback\r\n  @HostBinding('style.flex') get baseFlex() {\r\n    return this.span() != null ? `0 0 ${(this.span()! / 12) * 100}%` : null;\r\n  }\r\n\r\n  @HostBinding('style.margin-left') get baseOffset() {\r\n    return this.offset() != null ? `${(this.offset()! / 12) * 100}%` : null;\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  input,\r\n  InputSignal,\r\n  TemplateRef,\r\n  ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-fab-item',\r\n  template: '<ng-template #content><ng-content></ng-content></ng-template>',\r\n  imports: [],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageFabItem {\r\n  title = input<string>();\r\n  color = input<'danger' | 'success' | 'warning'>();\r\n  redirectURI = input<string>();\r\n  disabled: InputSignal<boolean> = input<boolean>(false);\r\n  cssClass = input<string>();\r\n  @ViewChild('content', { read: TemplateRef }) content!: TemplateRef<any>;\r\n}\r\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChildren,\r\n  input,\r\n  output,\r\n  QueryList,\r\n} from '@angular/core';\r\nimport { KageFabItem } from './fab-button-expand-item.component';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'kage-fab-button',\r\n  imports: [NgClass, NgTemplateOutlet, RouterLink],\r\n  templateUrl: './fab-button.component.html',\r\n  styleUrl: './fab-button.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageFab {\r\n  @ContentChildren(KageFabItem)\r\n  expandItems!: QueryList<KageFabItem>;\r\n\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n  position = input<'top-right' | 'top-left' | 'bottom-left' | 'bottom-right'>(\r\n    'bottom-left'\r\n  );\r\n  cssClass = input<string>();\r\n\r\n  onClick = output<Event>();\r\n  onChange = output<string>();\r\n\r\n  clicked(event: Event) {\r\n    this.onClick.emit(event);\r\n  }\r\n\r\n  onChangeEffect(event: any) {\r\n    const checked = event.target.checked;\r\n    this.onChange.emit(checked ? 'opened' : 'closed');\r\n  }\r\n}\r\n","<div class=\"kage-fab-button-wrapper\" [ngClass]=\"[color() ?? '', position(), cssClass() ?? '']\">\r\n\t<input type=\"checkbox\" (change)=\"onChangeEffect($event)\" />\r\n\t<div class=\"fab-button\" (click)=\"clicked($event)\"><ng-content select=\"[slot='icon']\"></ng-content></div>\r\n    @if (expandItems.length) {\r\n        <div class=\"fab-slot-buttons\">\r\n            @for (item of expandItems; track $index) {\r\n                <a [routerLink]=\"item.redirectURI()\" [ngClass]=\"[item.color() ?? '', item.cssClass() ?? '']\" [attr.title]=\"item.title() ?? ''\" [class.disabled]=\"item.disabled()\">\r\n                    <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n                </a>\r\n            }\r\n        </div>\r\n    }\r\n</div>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-grid',\r\n  imports: [NgClass],\r\n  templateUrl: './grid.component.html',\r\n  styleUrl: './grid.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageGrid {\r\n  gap = input<0 | 1 | 2 | 3 | 4>(0);\r\n}\r\n","<div class=\"k-grid\" [ngClass]=\"[gap() ? 'gap-' + gap() : '']\"><ng-content></ng-content></div>","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n  Component,\r\n  forwardRef,\r\n  ElementRef,\r\n  ViewChild,\r\n  AfterViewInit,\r\n  input,\r\n  model,\r\n  inject,\r\n  PLATFORM_ID,\r\n  output,\r\n  effect,\r\n  ChangeDetectionStrategy,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { debounceTime, fromEvent, Subject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'kage-input',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './input.component.html',\r\n  styleUrls: ['./input.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageInput),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageInput implements ControlValueAccessor, AfterViewInit {\r\n  label = input<string>('');\r\n  name = input<string>('');\r\n  type = input<string>('text');\r\n  placeholder = input<string>('');\r\n  disabled = model<boolean>(false);\r\n  readonly = input<boolean>(false);\r\n  autoFocus = input<boolean>(false);\r\n  debounce = input<number>();\r\n  autocomplete = input<InputAutoComplete>('off');\r\n  cssClass = input<string>();\r\n\r\n  valueChanged = output<string>();\r\n\r\n  maxLength = input<number>();\r\n\r\n  @ViewChild('inputField') inputRef!: ElementRef;\r\n  private debouncer = new Subject<string>();\r\n\r\n  value: string = '';\r\n\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n\r\n  ngAfterViewInit(): void {\r\n    // As these are specifically client side events or tasks\r\n    // this needs to check for pltformBrowser\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      // Work on debounce\r\n      this.debouncer\r\n        .pipe(debounceTime(this.debounce() ?? 0))\r\n        .subscribe((val) => this.valueChanged.emit(val));\r\n      // Set up the focus on element\r\n      if (this.autoFocus()) {\r\n        setTimeout(() => this.inputRef?.nativeElement?.focus(), 100);\r\n      }\r\n    }\r\n  }\r\n\r\n  writeValue(val: any): void {\r\n    this.value = val ?? '';\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n\r\n  handleInput(event: Event) {\r\n    const input = (event.target as HTMLInputElement).value;\r\n    this.updateValue(input);\r\n  }\r\n\r\n  updateValue(val: string): void {\r\n    this.value = val;\r\n    this.onChange(val);\r\n    this.onTouched();\r\n    this.debouncer.next(val);\r\n  }\r\n}\r\n\r\nexport type InputAutoComplete =\r\n  | 'on'\r\n  | 'off'\r\n  | 'address-line1'\r\n  | 'address-line2'\r\n  | 'address-line3'\r\n  | 'address-level1'\r\n  | 'address-level2'\r\n  | 'address-level3'\r\n  | 'address-level4'\r\n  | 'street-address'\r\n  | 'country'\r\n  | 'country-name'\r\n  | 'postal-code'\r\n  | 'name'\r\n  | 'additional-name'\r\n  | 'family-name'\r\n  | 'given-name'\r\n  | 'honoric-prefix'\r\n  | 'honoric-suffix'\r\n  | 'nickname'\r\n  | 'organization-title'\r\n  | 'username'\r\n  | 'new-password'\r\n  | 'current-password'\r\n  | 'bday'\r\n  | 'bday-day'\r\n  | 'bday-month'\r\n  | 'bday-year'\r\n  | 'sex'\r\n  | 'one-time-code'\r\n  | 'organization'\r\n  | 'cc-name'\r\n  | 'cc-given-name'\r\n  | 'cc-additional-name'\r\n  | 'cc-family-name'\r\n  | 'cc-number'\r\n  | 'cc-exp'\r\n  | 'cc-exp-month'\r\n  | 'cc-exp-year'\r\n  | 'cc-csc'\r\n  | 'cc-type'\r\n  | 'transaction-currency'\r\n  | 'transaction-amount'\r\n  | 'language'\r\n  | 'url'\r\n  | 'email'\r\n  | 'photo'\r\n  | 'tel'\r\n  | 'tel-country-code'\r\n  | 'tel-national'\r\n  | 'tel-area-code'\r\n  | 'tel-local'\r\n  | 'tel-local-prefix'\r\n  | 'tel-local-suffix'\r\n  | 'tel-extension'\r\n  | 'impp';\r\n","<label class=\"kage-input-wrapper\" [class]=\"cssClass() ?? ''\">\r\n    @if (label()) {\r\n        <p class=\"label-title\">{{label()}}</p>\r\n    }\r\n    <div class=\"input-area\">\r\n        <div class=\"icon start\">\r\n            <ng-content select=\"[slot='icon-start']\"></ng-content>\r\n        </div>\r\n        <div class=\"input\">\r\n            <input \r\n                [value]=\"value\"\r\n                [type]=\"type()\" \r\n                [placeholder]=\"placeholder()\" \r\n                [disabled]=\"disabled()\" \r\n                [readOnly]=\"readonly()\" \r\n                [attr.maxLength]=\"maxLength()\"\r\n                [autofocus]=\"autoFocus()\"\r\n                [autocomplete]=\"autocomplete()\"\r\n                (input)=\"handleInput($event)\"\r\n                (blur)=\"onTouched()\"\r\n                [name]=\"name()\"\r\n                #inputField\r\n            />\r\n        </div>\r\n        <div class=\"icon end\">\r\n            <ng-content select=\"[slot='icon-end']\"></ng-content>\r\n        </div>\r\n    </div>\r\n    <div class=\"validators\">\r\n        <div class=\"left\">\r\n            <div class=\"hint\"><ng-content select=\"[slot='hint']\"></ng-content></div>\r\n            <div class=\"error\"><ng-content select=\"[slot='error']\"></ng-content></div>\r\n        </div>\r\n        <div class=\"right\">\r\n            @if (maxLength()) {\r\n                <div class=\"counter\"><span>{{value.length}}</span>/{{maxLength()}}</div>\r\n            }\r\n        </div>\r\n    </div>\r\n</label>","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-option',\r\n  template: '',\r\n  styles: '',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageOption {\r\n  value = input<any>();\r\n  label = input<string>('');\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-progress-bar',\r\n  imports: [NgClass],\r\n  templateUrl: './progress-bar.component.html',\r\n  styleUrl: './progress-bar.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageProgressBar {\r\n  mode = input<'determinate' | 'buffer' | 'indeterminate'>('indeterminate');\r\n  value = input<number>(0);\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'warning'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'info'\r\n  >('primary');\r\n}\r\n","<div class=\"kage-progress-bar-wrapper\" [ngClass]=\"[mode(), color()]\">\r\n    <div class=\"progress-bar-track\">\r\n        @if (mode() !== 'indeterminate') {\r\n            <div class=\"progress-bar-fill\" [style.width.%]=\"value()\"></div>\r\n        } @else if (mode() === 'buffer') {\r\n            <div class=\"progress-bar-buffer\" [style.width.%]=\"value()\"></div>\r\n        } @else {\r\n            <div class=\"progress-bar-indeterminate\"><div class=\"indeterminate-bar\"></div></div>\r\n        }\r\n    </div>\r\n</div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, model } from '@angular/core';\r\nimport { KageRadioGroup } from '../radio-group/radio-group.component';\r\n\r\n@Component({\r\n  selector: 'kage-radio',\r\n  imports: [NgClass],\r\n  templateUrl: './radio.component.html',\r\n  styleUrl: './radio.component.scss',\r\n})\r\nexport class KageRadio {\r\n  value = input<any>();\r\n  disabled = model<boolean>(false);\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'danger'\r\n    | 'info'\r\n  >('primary');\r\n  checked = false;\r\n  cssClass = input<string>();\r\n\r\n  name = '';\r\n  private group!: KageRadioGroup;\r\n\r\n  setGroup(group: KageRadioGroup) {\r\n    this.group = group;\r\n    this.name = group.name();\r\n  }\r\n\r\n  setDisabled(disabled: boolean) {\r\n    this.disabled.set(disabled);\r\n  }\r\n\r\n  onSelect() {\r\n    if (this.group) {\r\n      if (!this.disabled()) {\r\n        this.group.selectValue(this.value());\r\n      }\r\n    } else {\r\n      throw new Error('Radio buttons must be wrapped by <k-radio-group>');\r\n    }\r\n  }\r\n}\r\n","<label class=\"kage-radio-wrapper\" [ngClass]=\"[color(), cssClass() ?? '']\">\r\n    <input\r\n        type=\"radio\"\r\n        [name]=\"name\"\r\n        [value]=\"value()\"\r\n        [checked]=\"checked\"\r\n        [disabled]=\"disabled()\"\r\n        (change)=\"onSelect()\"\r\n    />\r\n    <span class=\"kage-radio\"></span>\r\n    <ng-content></ng-content>\r\n</label>","import {\r\n  AfterContentInit,\r\n  Component,\r\n  ContentChildren,\r\n  effect,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n  QueryList,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { KageRadio } from '../radio/radio.component';\r\n\r\n@Component({\r\n  selector: 'kage-radio-group',\r\n  imports: [],\r\n  template: `\r\n    <div class=\"kage-radio-group\" [class.disabled]=\"disabled() === true\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  `,\r\n  styleUrl: './radio-group.component.scss',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageRadioGroup),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageRadioGroup implements ControlValueAccessor, AfterContentInit {\r\n  name = input<string>('');\r\n  disabled = model<boolean>(false);\r\n\r\n  @ContentChildren(KageRadio) radios!: QueryList<KageRadio>;\r\n\r\n  private _value: any;\r\n  private onChange = (value: any) => {};\r\n  private onTouched = () => {};\r\n\r\n  constructor() {\r\n    effect(() => this.updateDisabled());\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (!this.radios || this.radios.length === 0) {\r\n      throw new Error('No <k-radio> found inside <k-radio-group>');\r\n    }\r\n\r\n    this.radios.forEach((radio) => {\r\n      radio.setGroup(this);\r\n    });\r\n\r\n    this.updateSelection();\r\n    this.updateDisabled();\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this._value = value;\r\n    this.updateSelection();\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n    this.updateDisabled();\r\n  }\r\n\r\n  selectValue(value: any) {\r\n    if (!this.disabled()) {\r\n      this._value = value;\r\n      this.updateSelection();\r\n      this.onChange(value);\r\n      this.onTouched();\r\n    }\r\n  }\r\n\r\n  private updateSelection() {\r\n    this.radios?.forEach((r) => (r.checked = r.value() === this._value));\r\n  }\r\n\r\n  private updateDisabled() {\r\n    this.radios?.forEach((r) => r.setDisabled(this.disabled()));\r\n  }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n  output,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { debounceTime, Subject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'kage-range',\r\n  imports: [NgClass],\r\n  templateUrl: './range.component.html',\r\n  styleUrl: './range.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageRange),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageRange {\r\n  min = input<number>(0);\r\n  max = input<number>(100);\r\n  step = input<number>(1);\r\n  disabled = model<boolean>(false);\r\n  ticks = input<boolean | Array<string>>(false);\r\n  vertical = input<boolean>(false);\r\n  showTooltip = input<boolean>(false);\r\n  valueChange = output<number>();\r\n  focus = output<void>();\r\n  blur = output<void>();\r\n  cssClass = input<string>();\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'success'\r\n    | 'danger'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n\r\n  value = 0;\r\n\r\n  private onChange = (value: number) => {};\r\n  private onTouched = () => {};\r\n  private valueChange$ = new Subject<number>();\r\n\r\n  constructor() {\r\n    this.valueChange$.pipe(debounceTime(100)).subscribe((val) => {\r\n      this.valueChange.emit(val);\r\n      this.onChange(val);\r\n    });\r\n  }\r\n\r\n  get tickArray(): number[] {\r\n    const ticks = [];\r\n    for (let i = this.min(); i <= this.max(); i += this.step()) {\r\n      ticks.push(i);\r\n    }\r\n    return ticks;\r\n  }\r\n\r\n  get tickLabels(): string[] {\r\n    return Array.isArray(this.ticks()) ? (this.ticks() as any) : [];\r\n  }\r\n\r\n  get hasLabeledTicks(): boolean {\r\n    return Array.isArray(this.ticks());\r\n  }\r\n\r\n  get tooltipPosition(): string {\r\n    const percentage =\r\n      ((this.value - this.min()) / (this.max() - this.min())) * 100;\r\n    return this.vertical()\r\n      ? `top: ${100 - percentage}%;`\r\n      : `left: ${percentage}%;`;\r\n  }\r\n\r\n  onInput(event: Event) {\r\n    const input = event.target as HTMLInputElement;\r\n    this.value = +input.value;\r\n    this.valueChange$.next(this.value);\r\n  }\r\n\r\n  onFocus() {\r\n    this.focus.emit();\r\n  }\r\n\r\n  onBlur() {\r\n    this.onTouched();\r\n    this.blur.emit();\r\n  }\r\n\r\n  writeValue(val: number): void {\r\n    this.value = val ?? 0;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n}\r\n","<label class=\"kage-range-wrapper\" [ngClass]=\"[color() ?? '', cssClass() ?? '']\">\r\n    <div class=\"kage-field\">\r\n        <input \r\n            type=\"range\" \r\n            [attr.min]=\"min()\"\r\n            [attr.max]=\"max()\"\r\n            [attr.step]=\"step()\"\r\n            (input)=\"onInput($event)\"\r\n            (focus)=\"onFocus()\"\r\n            (blur)=\"onBlur()\"\r\n            [value]=\"value\"\r\n        />\r\n    </div>\r\n    @if (showTooltip()) {\r\n        <div class=\"kage-range-tooltip\">\r\n            <span>{{value}}</span>\r\n        </div>\r\n    }\r\n</label>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-row',\r\n  imports: [NgClass],\r\n  templateUrl: './row.component.html',\r\n  styleUrl: './row.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KageRow {\r\n  align = input<'start' | 'center' | 'end'>('start');\r\n  justify = input<'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'>(\r\n    'start'\r\n  );\r\n\r\n  get alignClass() {\r\n    return 'align-' + this.align();\r\n  }\r\n\r\n  get justifyClass() {\r\n    return 'justify-' + this.justify();\r\n  }\r\n}\r\n","<div class=\"k-row\" [ngClass]=\"[alignClass, justifyClass]\"><ng-content></ng-content></div>","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n  OnInit,\r\n  output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { KageIcon } from '../icon/icon.component';\r\nimport { debounceTime, Subject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'kage-searchbar',\r\n  imports: [KageIcon],\r\n  templateUrl: './searchbar.component.html',\r\n  styleUrl: './searchbar.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageSearchbar),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageSearchbar implements ControlValueAccessor, OnInit {\r\n  placeholder = input<string>('Search...');\r\n  debounce = input<number>(300);\r\n  autofocus = input<boolean>(false);\r\n  disabled = model<boolean>(false);\r\n  showClear = input<boolean>(true);\r\n\r\n  search = output<string>();\r\n\r\n  value = '';\r\n  onChange = (value: string) => {};\r\n  onTouched = () => {};\r\n\r\n  private input$ = new Subject<string>();\r\n\r\n  ngOnInit(): void {\r\n    this.input$.pipe(debounceTime(this.debounce())).subscribe((val) => {\r\n      this.search.emit(val);\r\n    });\r\n  }\r\n\r\n  onInput(event: Event): void {\r\n    const target = event.target as HTMLInputElement;\r\n    this.value = target.value;\r\n    this.onChange(this.value);\r\n    this.input$.next(this.value);\r\n  }\r\n\r\n  clear(): void {\r\n    this.value = '';\r\n    this.onChange(this.value);\r\n    this.input$.next(this.value);\r\n  }\r\n\r\n  writeValue(value: string): void {\r\n    this.value = value ?? '';\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(disabled: boolean): void {\r\n    this.disabled.set(Boolean(disabled));\r\n  }\r\n}\r\n","<div class=\"kage-searchbar-wrapper\" [class.disabled]=\"disabled()\">\r\n  <span class=\"search-icon\" aria-hidden=\"true\">\r\n    <kage-icon name=\"search\" [depth]=\"3\"></kage-icon>\r\n  </span>\r\n\r\n  <input\r\n    type=\"text\"\r\n    [attr.placeholder]=\"placeholder()\"\r\n    [value]=\"value\"\r\n    [disabled]=\"disabled()\"\r\n    (input)=\"onInput($event)\"\r\n    (blur)=\"onTouched()\"\r\n    [attr.aria-label]=\"placeholder()\"\r\n    [autofocus]=\"autofocus()\"\r\n  />\r\n\r\n  @if (value && showClear()) {\r\n    <div class=\"clear-btn\" type=\"button\" aria-label=\"Clear search\" (click)=\"clear()\">\r\n      <kage-icon name=\"remove\" [depth]=\"3\"></kage-icon>\r\n    </div>\r\n  }\r\n</div>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n  output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport interface KageSegmentOption {\r\n  label: string;\r\n  value: string | number;\r\n  disabled?: boolean;\r\n}\r\n\r\n@Component({\r\n  selector: 'kage-segment',\r\n  imports: [],\r\n  templateUrl: './segment.component.html',\r\n  styleUrl: './segment.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageSegment),\r\n      multi: true,\r\n    },\r\n  ],\r\n  host: {\r\n    role: 'radiogroup',\r\n    tabindex: '0',\r\n    '(keydown)': 'onKeyDown($event)',\r\n  },\r\n})\r\nexport class KageSegment implements ControlValueAccessor {\r\n  options = input<Array<string> | Array<KageSegmentOption>>([]);\r\n  disabled = model<boolean>(false);\r\n\r\n  onSegmentChange = output<string | number>();\r\n\r\n  selectedValue!: string | number;\r\n\r\n  private onChange = (value: string | number) => {};\r\n  private onTouched = () => {};\r\n\r\n  get normalizedOptions(): Array<KageSegmentOption> {\r\n    return this.options().map((opt) =>\r\n      typeof opt === 'string' ? { label: opt, value: opt } : opt\r\n    );\r\n  }\r\n\r\n  select(value: string | number, disabled = false) {\r\n    if (disabled || this.disabled()) return;\r\n    this.selectedValue = value;\r\n    this.onSegmentChange.emit(value);\r\n    this.onChange(value);\r\n    this.onTouched();\r\n  }\r\n\r\n  onKeyDown(e: KeyboardEvent) {\r\n    const index = this.normalizedOptions.findIndex(\r\n      (o) => o.value === this.selectedValue\r\n    );\r\n    let nextIndex = index;\r\n\r\n    if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\r\n      nextIndex = (index + 1) % this.normalizedOptions.length;\r\n    } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\r\n      nextIndex =\r\n        (index - 1 + this.normalizedOptions.length) %\r\n        this.normalizedOptions.length;\r\n    } else {\r\n      return;\r\n    }\r\n\r\n    const next = this.normalizedOptions[nextIndex];\r\n    if (!next.disabled) {\r\n      this.select(next.value);\r\n    }\r\n    e.preventDefault();\r\n  }\r\n\r\n  writeValue(val: string | number): void {\r\n    this.selectedValue = val;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n}\r\n","<div class=\"k-segment-container\" [class.disabled]=\"disabled()\">\r\n    <div class=\"k-segments\">\r\n        @for (opt of normalizedOptions; track $index) {\r\n            <button\r\n                [class.active]=\"opt.value === selectedValue\"\r\n                [disabled]=\"opt.disabled || disabled()\"\r\n                (click)=\"select(opt.value, opt.disabled)\"\r\n                role=\"radio\"\r\n                [attr.aria-checked]=\"opt.value === selectedValue\"\r\n                [attr.aria-disabled]=\"opt.disabled || disabled()\"\r\n            >\r\n                {{ opt.label }}\r\n            </button>\r\n        }\r\n    </div>\r\n    <div class=\"k-segment-content\">\r\n        <ng-content></ng-content>\r\n    </div>\r\n</div>","import {\r\n  AfterContentInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  forwardRef,\r\n  HostListener,\r\n  input,\r\n  model,\r\n  OnDestroy,\r\n  output,\r\n  QueryList,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { KageOption } from './option.component';\r\nimport { startWith, Subject, takeUntil } from 'rxjs';\r\nimport { KageIcon } from '../icon/icon.component';\r\n\r\n@Component({\r\n  selector: 'kage-select',\r\n  imports: [KageIcon],\r\n  templateUrl: './select.component.html',\r\n  styleUrl: './select.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageSelect),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageSelect\r\n  implements ControlValueAccessor, AfterContentInit, OnDestroy\r\n{\r\n  @ViewChild('container') containerRef!: ElementRef;\r\n  @ContentChildren(KageOption) childrens!: QueryList<KageOption>;\r\n\r\n  private obsDestroyer$ = new Subject<void>();\r\n\r\n  label = input<string>();\r\n  placeholder = input<string>('Select...');\r\n  disabled = model<boolean>(false);\r\n  cssClass = input<string>();\r\n  valueChange = output<any>();\r\n\r\n  isOpen = false;\r\n  selectedOption: any = null;\r\n  focusedIndex = -1;\r\n  options: Array<{ label: string; value: any }> = [];\r\n\r\n  onChange = (value: any) => {};\r\n  onTouched = () => {};\r\n\r\n  ngAfterContentInit(): void {\r\n    this.childrens.changes\r\n      .pipe(startWith(null), takeUntil(this.obsDestroyer$))\r\n      .subscribe({\r\n        next: () => {\r\n          this.options = this.childrens.map((el) => ({\r\n            label: el.label(),\r\n            value: el.value(),\r\n          }));\r\n        },\r\n      });\r\n  }\r\n\r\n  toggleDropdown() {\r\n    if (this.disabled()) {\r\n      return;\r\n    }\r\n    this.isOpen = !this.isOpen;\r\n  }\r\n\r\n  selectOption(option: any, index: number) {\r\n    this.selectedOption = option;\r\n    this.isOpen = false;\r\n    this.focusedIndex = index;\r\n    this.onChange(option.value);\r\n    this.valueChange.emit(option.value);\r\n    this.onTouched();\r\n  }\r\n\r\n  onKeyDown(event: KeyboardEvent) {\r\n    if (!this.isOpen && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\r\n      this.isOpen = true;\r\n    }\r\n\r\n    if (this.isOpen) {\r\n      const max = this.options.length - 1;\r\n      if (event.key === 'ArrowDown') {\r\n        this.focusedIndex =\r\n          this.focusedIndex + 1 > max ? 0 : this.focusedIndex + 1;\r\n        event.preventDefault();\r\n      } else if (event.key === 'ArrowUp') {\r\n        this.focusedIndex =\r\n          this.focusedIndex - 1 < 0 ? max : this.focusedIndex - 1;\r\n        event.preventDefault();\r\n      } else if (event.key === 'Enter' && this.focusedIndex >= 0) {\r\n        this.selectOption(this.options[this.focusedIndex], this.focusedIndex);\r\n        event.preventDefault();\r\n      } else if (event.key === 'Escape') {\r\n        this.isOpen = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  handleOutsideClick(event: MouseEvent) {\r\n    if (!this.containerRef.nativeElement.contains(event.target)) {\r\n      this.isOpen = false;\r\n    }\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.selectedOption =\r\n      this.options.find((opt) => opt.value === value) || null;\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.obsDestroyer$.next();\r\n    this.obsDestroyer$.complete();\r\n  }\r\n}\r\n","<div class=\"kage-select-wrapper\" [class.disabled]=\"disabled()\" [class]=\"cssClass() ?? ''\" tabindex=\"0\" (keydown)=\"onKeyDown($event)\" #container>\r\n  @if (label()) {\r\n    <div class=\"kage-select-label-view\">\r\n      <p>{{label()}}</p>\r\n    </div>\r\n  }\r\n  <div class=\"kage-select-selection-area\">\r\n    <div class=\"kage-select-selected\" (click)=\"toggleDropdown()\">\r\n      <div class=\"kage-select-icon start\"><ng-content select=\"[slot='icon-start']\"></ng-content></div>\r\n      <div class=\"kage-select-stage-area\">\r\n        {{ selectedOption?.label || placeholder() }}\r\n        <kage-icon [name]=\"isOpen ? 'chevron-up' : 'chevron-down'\" [depth]=\"3\" [size]=\"20\"></kage-icon>\r\n      </div>\r\n      <div class=\"kage-select-icon end\"><ng-content select=\"[slot='icon-end']\"></ng-content></div>\r\n    </div>\r\n\r\n    @if (isOpen) {\r\n      <ul class=\"kage-select-options\">\r\n        @for (option of options; track $index; let i = $index) {\r\n          <li\r\n            (click)=\"selectOption(option, i)\"\r\n            [class.focused]=\"i === focusedIndex\"\r\n            [class.selected]=\"option.value === selectedOption?.value\"\r\n          >\r\n            {{ option.label }}\r\n          </li>\r\n        }\r\n      </ul>\r\n    }\r\n  </div>\r\n</div>","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  forwardRef,\r\n  inject,\r\n  input,\r\n  model,\r\n  output,\r\n  PLATFORM_ID,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { debounceTime, Subject } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'kage-textarea',\r\n  imports: [],\r\n  templateUrl: './textarea.component.html',\r\n  styleUrl: './textarea.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageTextarea),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageTextarea {\r\n  label = input<string>('');\r\n  placeholder = input<string>('');\r\n  disabled = model<boolean>(false);\r\n  readonly = input<boolean>(false);\r\n  maxLength = input<number>();\r\n  autoFocus = input<boolean>(false);\r\n  debounce = input<number>();\r\n  rows = input<number>(4);\r\n  autoResize = input<boolean>();\r\n  autocomplete = input<InputAutoComplete>('off');\r\n  cssClass = input<string>();\r\n\r\n  valueChanged = output<string>();\r\n\r\n  @ViewChild('textareaRef') textareaRef!: ElementRef;\r\n  private debouncer = new Subject<string>();\r\n\r\n  value: string = '';\r\n\r\n  private platformId = inject(PLATFORM_ID);\r\n\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n\r\n  ngAfterViewInit(): void {\r\n    // As these are specifically client side events or tasks\r\n    // this needs to check for pltformBrowser\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      // Work on debounce\r\n      this.debouncer\r\n        .pipe(debounceTime(this.debounce() ?? 0))\r\n        .subscribe((val) => this.valueChanged.emit(val));\r\n      // Set up the focus on element\r\n      if (this.autoFocus()) {\r\n        setTimeout(() => this.textareaRef?.nativeElement?.focus(), 100);\r\n      }\r\n    }\r\n  }\r\n\r\n  writeValue(val: any): void {\r\n    this.value = val ?? '';\r\n    this.resizeTextarea();\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n\r\n  handleInput(event: Event) {\r\n    const input = (event.target as HTMLInputElement).value;\r\n    this.updateValue(input);\r\n  }\r\n\r\n  updateValue(val: string): void {\r\n    this.value = val;\r\n    this.onChange(val);\r\n    this.onTouched();\r\n    this.debouncer.next(val);\r\n  }\r\n\r\n  resizeTextarea(): void {\r\n    if (this.autoResize() && this.textareaRef) {\r\n      const el = this.textareaRef.nativeElement;\r\n      el.style.height = 'auto';\r\n      el.style.height = el.scrollHeight + 'px';\r\n    }\r\n  }\r\n}\r\n\r\nexport type InputAutoComplete =\r\n  | 'on'\r\n  | 'off'\r\n  | 'address-line1'\r\n  | 'address-line2'\r\n  | 'address-line3'\r\n  | 'address-level1'\r\n  | 'address-level2'\r\n  | 'address-level3'\r\n  | 'address-level4'\r\n  | 'street-address'\r\n  | 'country'\r\n  | 'country-name'\r\n  | 'postal-code'\r\n  | 'name'\r\n  | 'additional-name'\r\n  | 'family-name'\r\n  | 'given-name'\r\n  | 'honoric-prefix'\r\n  | 'honoric-suffix'\r\n  | 'nickname'\r\n  | 'organization-title'\r\n  | 'username'\r\n  | 'new-password'\r\n  | 'current-password'\r\n  | 'bday'\r\n  | 'bday-day'\r\n  | 'bday-month'\r\n  | 'bday-year'\r\n  | 'sex'\r\n  | 'one-time-code'\r\n  | 'organization'\r\n  | 'cc-name'\r\n  | 'cc-given-name'\r\n  | 'cc-additional-name'\r\n  | 'cc-family-name'\r\n  | 'cc-number'\r\n  | 'cc-exp'\r\n  | 'cc-exp-month'\r\n  | 'cc-exp-year'\r\n  | 'cc-csc'\r\n  | 'cc-type'\r\n  | 'transaction-currency'\r\n  | 'transaction-amount'\r\n  | 'language'\r\n  | 'url'\r\n  | 'email'\r\n  | 'photo'\r\n  | 'tel'\r\n  | 'tel-country-code'\r\n  | 'tel-national'\r\n  | 'tel-area-code'\r\n  | 'tel-local'\r\n  | 'tel-local-prefix'\r\n  | 'tel-local-suffix'\r\n  | 'tel-extension'\r\n  | 'impp';\r\n","<label class=\"kage-textarea-wrapper\" [class]=\"cssClass() ?? ''\">\r\n    @if (label()) {\r\n        <p class=\"label-title\">{{label()}}</p>\r\n    }\r\n    <div class=\"input-area\">\r\n        <div class=\"icon\">\r\n            <ng-content select=\"[slot='icon-start']\"></ng-content>\r\n        </div>\r\n        <div class=\"input\">\r\n            <textarea \r\n                [value]=\"value\"\r\n                [placeholder]=\"placeholder()\" \r\n                [disabled]=\"disabled()\" \r\n                [readOnly]=\"readonly()\" \r\n                [attr.maxLength]=\"maxLength()\"\r\n                [autofocus]=\"autoFocus()\"\r\n                [autocomplete]=\"autocomplete()\"\r\n                (input)=\"handleInput($event)\"\r\n                (blur)=\"onTouched()\"\r\n                [rows]=\"rows()\"\r\n                #textareaRef\r\n            ></textarea>\r\n        </div>\r\n        <div class=\"icon\">\r\n            <ng-content select=\"[slot='icon-end']\"></ng-content>\r\n        </div>\r\n    </div>\r\n    <div class=\"validators\">\r\n        <div class=\"left\">\r\n            <div class=\"hint\"><ng-content select=\"[slot='hint']\"></ng-content></div>\r\n            <div class=\"error\"><ng-content select=\"[slot='error']\"></ng-content></div>\r\n        </div>\r\n        <div class=\"right\">\r\n            @if (maxLength()) {\r\n                <div class=\"counter\"><span>{{value.length}}</span>/{{maxLength()}}</div>\r\n            }\r\n        </div>\r\n    </div>\r\n</label>","import { NgClass } from '@angular/common';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  forwardRef,\r\n  input,\r\n  model,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'kage-toggle',\r\n  imports: [NgClass],\r\n  templateUrl: './toggle.component.html',\r\n  styleUrl: './toggle.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => KageToggle),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class KageToggle implements ControlValueAccessor {\r\n  color = input<\r\n    | 'primary'\r\n    | 'secondary'\r\n    | 'tertiary'\r\n    | 'danger'\r\n    | 'success'\r\n    | 'warning'\r\n    | 'info'\r\n  >();\r\n  disabled = model<boolean>(false);\r\n  checked = false;\r\n\r\n  private onChange = (value: boolean) => {};\r\n  private onTouched = () => {};\r\n\r\n  writeValue(value: boolean): void {\r\n    this.checked = value;\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled.set(Boolean(isDisabled));\r\n  }\r\n  handleToggle(event: any) {\r\n    this.checked = event.target.checked;\r\n    this.onChange(this.checked);\r\n    this.onTouched();\r\n  }\r\n}\r\n","<label class=\"kage-toggle-wrapper\" [ngClass]=\"color() ?? ''\">\r\n    <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled()\" (change)=\"handleToggle($event)\">\r\n    <span class=\"k-toggle\"></span>\r\n    <p><ng-content></ng-content></p>\r\n</label>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'bytes',\r\n})\r\nexport class KageBytesPipe implements PipeTransform {\r\n  transform(\r\n    value: number | null | undefined,\r\n    decimalPlaces: number = 2\r\n  ): string {\r\n    if (value == null || isNaN(value)) return '0 Bytes';\r\n\r\n    if (value === 0) return '0 Bytes';\r\n\r\n    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'];\r\n    const i = Math.floor(Math.log(value) / Math.log(1024));\r\n    const result = parseFloat(\r\n      (value / Math.pow(1024, i)).toFixed(decimalPlaces)\r\n    );\r\n\r\n    return `${result} ${sizes[i]}`;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'capitalize',\r\n})\r\nexport class KageCapitalizePipe implements PipeTransform {\r\n  transform(value: string | null | undefined): string {\r\n    if (!value) return '';\r\n\r\n    return value\r\n      .split(' ')\r\n      .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\r\n      .join(' ');\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'highlight',\r\n})\r\nexport class KageHighlightPipe implements PipeTransform {\r\n  transform(text: string, search: string, tag: string = 'mark'): string {\r\n    if (!search || !text) return text;\r\n\r\n    const escapedSearch = search.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n    const regex = new RegExp(escapedSearch, 'gi');\r\n\r\n    return text.replace(regex, (match) => `<${tag}>${match}</${tag}>`);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'mask',\r\n})\r\nexport class KageMaskPipe implements PipeTransform {\r\n  transform(\r\n    value: string | null | undefined,\r\n    maskChar: string = '*',\r\n    visibleStart: number = 0,\r\n    visibleEnd: number = 0,\r\n    preset?: 'email' | 'phone' | 'card'\r\n  ): string {\r\n    if (!value || typeof value !== 'string') return '';\r\n\r\n    // Handle presets\r\n    if (preset) {\r\n      switch (preset) {\r\n        case 'email':\r\n          return this.maskEmail(value, maskChar);\r\n        case 'phone':\r\n          return this.maskPhone(value, maskChar);\r\n        case 'card':\r\n          return this.maskCard(value, maskChar);\r\n      }\r\n    }\r\n\r\n    // Default masking logic\r\n    const start = value.slice(0, visibleStart);\r\n    const end = visibleEnd > 0 ? value.slice(-visibleEnd) : '';\r\n    const maskedLength = value.length - (visibleStart + visibleEnd);\r\n    const masked = maskChar.repeat(Math.max(maskedLength, 0));\r\n    return `${start}${masked}${end}`;\r\n  }\r\n\r\n  private maskEmail(email: string, maskChar: string): string {\r\n    const [local, domain] = email.split('@');\r\n    if (!domain) return email;\r\n    const visible = 2;\r\n    const masked = maskChar.repeat(Math.max(local.length - visible, 0));\r\n    return local.slice(0, visible) + masked + '@' + domain;\r\n  }\r\n\r\n  private maskPhone(phone: string, maskChar: string): string {\r\n    const clean = phone.replace(/\\D/g, '');\r\n    if (clean.length < 10) return phone;\r\n    return (\r\n      clean.slice(0, 2) + maskChar.repeat(clean.length - 6) + clean.slice(-4)\r\n    );\r\n  }\r\n\r\n  private maskCard(card: string, maskChar: string): string {\r\n    const clean = card.replace(/\\D/g, '');\r\n    if (clean.length < 12) return card;\r\n    return maskChar.repeat(clean.length - 4) + clean.slice(-4);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'ordinate',\r\n})\r\nexport class KageOrdinatePipe implements PipeTransform {\r\n  transform(value: number | null | undefined): string {\r\n    if (value == null || isNaN(value)) return '';\r\n\r\n    const suffix = this.getOrdinalSuffix(value);\r\n    return `${value}${suffix}`;\r\n  }\r\n\r\n  private getOrdinalSuffix(n: number): string {\r\n    const lastDigit = n % 10;\r\n    const lastTwoDigits = n % 100;\r\n\r\n    if (lastTwoDigits >= 11 && lastTwoDigits <= 13) return 'th';\r\n\r\n    switch (lastDigit) {\r\n      case 1:\r\n        return 'st';\r\n      case 2:\r\n        return 'nd';\r\n      case 3:\r\n        return 'rd';\r\n      default:\r\n        return 'th';\r\n    }\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'repeat',\r\n})\r\nexport class KageRepeatPipe implements PipeTransform {\r\n  transform(value: string | null | undefined, count: number = 1): string {\r\n    if (!value || count <= 0) return '';\r\n    return value.repeat(count);\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'slugify',\r\n})\r\nexport class KageSlugifyPipe implements PipeTransform {\r\n  transform(value: string | null | undefined): string {\r\n    if (!value) return '';\r\n    return value\r\n      .toLowerCase()\r\n      .trim()\r\n      .replace(/[\\s_]+/g, '-') // spaces/underscores → dash\r\n      .replace(/[^\\w\\-]+/g, '') // remove non-word characters\r\n      .replace(/\\-\\-+/g, '-') // collapse multiple dashes\r\n      .replace(/^-+|-+$/g, ''); // trim leading/trailing dash\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'timeAgo',\r\n})\r\nexport class KageTimeAgoPipe implements PipeTransform {\r\n  transform(value: Date | string | number): string {\r\n    const now = new Date();\r\n    const date = new Date(value);\r\n    const diff = Math.floor((now.getTime() - date.getTime()) / 1000); // seconds\r\n\r\n    if (isNaN(diff)) return '';\r\n\r\n    const units: [number, string][] = [\r\n      [60, 'second'],\r\n      [60, 'minute'],\r\n      [24, 'hour'],\r\n      [7, 'day'],\r\n      [4.34524, 'week'],\r\n      [12, 'month'],\r\n      [Infinity, 'year'],\r\n    ];\r\n\r\n    let i = 0;\r\n    let count = diff;\r\n\r\n    while (i < units.length && count >= units[i][0]) {\r\n      count = Math.floor(count / units[i][0]);\r\n      i++;\r\n    }\r\n\r\n    const unit = units[i][1];\r\n    return `${count} ${unit}${count !== 1 ? 's' : ''} ago`;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'truncate',\r\n})\r\nexport class KageTruncatePipe implements PipeTransform {\r\n  transform(\r\n    value: string | null | undefined,\r\n    limit: number = 20,\r\n    suffix: string = '...'\r\n  ): string {\r\n    if (!value || typeof value !== 'string') return '';\r\n    if (value.length <= limit) return value;\r\n    return value.slice(0, limit) + suffix;\r\n  }\r\n}\r\n","import { Component, output, model } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AlertOptions, AlertButton } from './alert.model';\r\nimport { KageButton, KageInput } from '../../components/components';\r\n\r\n@Component({\r\n  selector: 'kage-alert-host',\r\n  imports: [FormsModule, KageButton, KageInput],\r\n  templateUrl: './alert.component.html',\r\n  styleUrls: ['./alert.component.scss'],\r\n})\r\nexport class KageAlertHost {\r\n  options = model<AlertOptions>();\r\n  result = output<{\r\n    values: Record<string, string>;\r\n    button: AlertButton | null;\r\n  }>();\r\n  close = output<void>();\r\n\r\n  inputValues: Record<string, string> = {};\r\n\r\n  ngOnInit() {\r\n    // Pre-fill default input values\r\n    this.options()?.inputs?.forEach((input) => {\r\n      this.inputValues[input.name] = input.value ?? '';\r\n    });\r\n  }\r\n\r\n  async handle(button: AlertButton) {\r\n    if (button.handler) {\r\n      await button.handler(this.inputValues); // pass input values\r\n    }\r\n\r\n    this.result.emit({ values: this.inputValues, button });\r\n    this.close.emit();\r\n  }\r\n\r\n  onBackdrop() {\r\n    if (this.options()?.dismissible) {\r\n      this.result.emit({ values: this.inputValues, button: null });\r\n      this.close.emit();\r\n    }\r\n  }\r\n\r\n  trackByIndex = (index: number) => index;\r\n}\r\n","<!-- Backdrop -->\r\n<div class=\"kage-alert-backdrop\" (click)=\"onBackdrop()\"></div>\r\n\r\n<!-- Alert Box -->\r\n<div class=\"kage-alert-box\" role=\"alertdialog\" aria-modal=\"true\">\r\n  <!-- Title -->\r\n   @if (options()?.title) {\r\n    <h3>{{ options()?.title }}</h3>\r\n   }\r\n\r\n  <!-- Message -->\r\n  <p class=\"kage-alert-message\">{{ options()?.message }}</p>\r\n\r\n  <!-- Inputs -->\r\n   @if (options()?.inputs?.length) {\r\n    <form #form=\"ngForm\" class=\"inputs\">\r\n        @for (input of options()?.inputs; track trackByIndex($index)) {\r\n            <kage-input\r\n                [label]=\"input.label ?? ''\"\r\n                [type]=\"input.type || 'text'\"\r\n                [placeholder]=\"input.placeholder ?? ''\"\r\n                [name]=\"input.name\"\r\n                [(ngModel)]=\"inputValues[input.name]\"\r\n                [ngModelOptions]=\"{ standalone: true }\"\r\n            ></kage-input>\r\n        }\r\n    </form>\r\n   }\r\n\r\n  <!-- Action Buttons -->\r\n   @if (options()?.buttons?.length) {\r\n    <div class=\"actions\">\r\n        @for (btn of options()?.buttons; track trackByIndex($index)) {\r\n            <kage-button\r\n                [disabled]=\"btn.disabled ?? false\"\r\n                [class.primary]=\"btn.primary\"\r\n                [color]=\"btn.color ?? 'primary'\"\r\n                [fill]=\"options()?.inputs?.length ? 'outline' : 'clear'\"\r\n                (click)=\"handle(btn)\"\r\n            >\r\n            {{ btn.label }}\r\n            </kage-button>\r\n        }\r\n    </div>\r\n   }\r\n</div>\r\n","import {\r\n  ApplicationRef,\r\n  ComponentRef,\r\n  createComponent,\r\n  EnvironmentInjector,\r\n  inject,\r\n  Injectable,\r\n} from '@angular/core';\r\nimport { KageAlertHost } from './alert.component';\r\nimport { AlertButton, AlertOptions } from './alert.model';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class KageAlertCtrl {\r\n  private appRef = inject(ApplicationRef);\r\n  private injector = inject(EnvironmentInjector);\r\n  private compRef: ComponentRef<KageAlertHost> | null = null;\r\n\r\n  show(\r\n    options: AlertOptions\r\n  ): Promise<{ values: Record<string, string>; button: AlertButton | null }> {\r\n    if (this.compRef) this.close();\r\n\r\n    this.compRef = createComponent(KageAlertHost, {\r\n      environmentInjector: this.injector,\r\n    });\r\n\r\n    const instance = this.compRef.instance;\r\n    instance.options.set(options);\r\n\r\n    const promise = new Promise<any>((resolve: any) => {\r\n      instance.result.subscribe(resolve);\r\n      instance.close.subscribe(() => this.close());\r\n    });\r\n\r\n    this.appRef.attachView(this.compRef.hostView);\r\n    const domElem = (this.compRef.hostView as any).rootNodes[0] as HTMLElement;\r\n    document.body.appendChild(domElem);\r\n\r\n    if (!options.buttons?.length) {\r\n      setTimeout(() => {\r\n        instance.result.emit({ values: {}, button: null });\r\n        instance.close.emit();\r\n      }, 3000);\r\n    }\r\n\r\n    return promise;\r\n  }\r\n\r\n  close() {\r\n    if (this.compRef) {\r\n      this.appRef.detachView(this.compRef.hostView);\r\n      this.compRef.destroy();\r\n      this.compRef = null;\r\n    }\r\n  }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  Component,\r\n  ComponentRef,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  TemplateRef,\r\n  Type,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-drawer-host',\r\n  imports: [NgTemplateOutlet],\r\n  templateUrl: './drawer.component.html',\r\n  styleUrl: './drawer.component.scss',\r\n})\r\nexport class KageDrawerHost implements AfterViewInit {\r\n  @Input() content!: TemplateRef<any>;\r\n  @Input() position: 'left' | 'right' = 'left';\r\n  @Input() width = '300px';\r\n  @Input() mode: 'template' | 'component' = 'template';\r\n\r\n  @Input() dynamicComponentType?: Type<any>;\r\n  @Input() dynamicInputs: Record<string, any> = {};\r\n  @Input() dynamicOutputs: Record<string, (...args: any[]) => void> = {};\r\n\r\n  @Output() closed = new EventEmitter<void>();\r\n\r\n  @ViewChild('vc', { read: ViewContainerRef }) vcRef!: ViewContainerRef;\r\n  private cmpRef?: ComponentRef<any>;\r\n\r\n  isOpen = false;\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.isOpen = true;\r\n    });\r\n\r\n    if (this.mode === 'component' && this.dynamicComponentType) {\r\n      this.vcRef.clear();\r\n      this.cmpRef = this.vcRef.createComponent(this.dynamicComponentType);\r\n      Object.entries(this.dynamicInputs).forEach(\r\n        ([k, v]) => (this.cmpRef!.instance[k] = v)\r\n      );\r\n      Object.entries(this.dynamicOutputs).forEach(([key, fn]) => {\r\n        if (this.cmpRef!.instance[key]?.subscribe) {\r\n          this.cmpRef!.instance[key].subscribe(fn);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  close() {\r\n    this.isOpen = false;\r\n    setTimeout(() => this.closed.emit(), 300);\r\n  }\r\n\r\n  onEsc(event: KeyboardEvent) {\r\n    if (event.key === 'Escape') this.close();\r\n  }\r\n}\r\n","<div class=\"k-drawer-backdrop\" (click)=\"close()\" tabindex=\"-1\" (keydown)=\"onEsc($event)\"></div>\r\n\r\n<aside\r\n  class=\"k-drawer\"\r\n  [class.left]=\"position === 'left'\"\r\n  [class.right]=\"position === 'right'\"\r\n  [class.open]=\"isOpen\"\r\n  [style.width]=\"width\"\r\n>\r\n    @if (mode === 'template') {\r\n        <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n    } @else if (mode === 'component') {\r\n        <ng-container #vc></ng-container>\r\n    }\r\n</aside>","import {\r\n  Injectable,\r\n  TemplateRef,\r\n  ComponentRef,\r\n  Type,\r\n  EnvironmentInjector,\r\n  inject,\r\n  Injector,\r\n  createComponent,\r\n  ApplicationRef,\r\n} from '@angular/core';\r\nimport { KageDrawerHost } from './drawer.component';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class KageDrawerCtrl {\r\n  private stack: ComponentRef<KageDrawerHost>[] = [];\r\n  private envInjector = inject(EnvironmentInjector);\r\n  private injector = inject(Injector);\r\n  private appRef = inject(ApplicationRef);\r\n  private document = inject(DOCUMENT);\r\n\r\n  openFromTemplate(\r\n    content: TemplateRef<any>,\r\n    config?: { position?: 'left' | 'right'; width?: string }\r\n  ) {\r\n    this.createDrawer(content, undefined, config);\r\n  }\r\n\r\n  openFromComponent<T>(\r\n    component: Type<T>,\r\n    config?: {\r\n      position?: 'left' | 'right';\r\n      width?: string;\r\n      inputs?: Record<string, any>;\r\n      outputs?: Record<string, (...args: any[]) => void>;\r\n    }\r\n  ) {\r\n    this.createDrawer(undefined, { component, config });\r\n  }\r\n\r\n  close() {\r\n    const ref = this.stack.pop();\r\n    if (this.stack.length === 0) {\r\n      this.document.body.classList.remove('drawer-open');\r\n    }\r\n    ref?.destroy();\r\n  }\r\n\r\n  closeAll() {\r\n    this.stack.forEach((ref) => ref.destroy());\r\n    this.stack = [];\r\n    this.document.body.classList.remove('drawer-open');\r\n  }\r\n\r\n  private createDrawer(\r\n    tpl?: TemplateRef<any>,\r\n    dynamicComponent?: {\r\n      component: Type<any>;\r\n      config?: {\r\n        position?: 'left' | 'right';\r\n        width?: string;\r\n        inputs?: Record<string, any>;\r\n        outputs?: Record<string, (...args: any[]) => void>;\r\n      };\r\n    },\r\n    templateConfig?: { position?: 'left' | 'right'; width?: string }\r\n  ) {\r\n    const cmpRef = createComponent(KageDrawerHost, {\r\n      environmentInjector: this.envInjector,\r\n      elementInjector: this.injector,\r\n    });\r\n\r\n    cmpRef.location.nativeElement.style.position = 'fixed';\r\n    cmpRef.location.nativeElement.style.inset = '0';\r\n    cmpRef.location.nativeElement.style.zIndex = `${\r\n      1100 + this.stack.length * 10\r\n    }`;\r\n    this.document.body.appendChild(cmpRef.location.nativeElement);\r\n    this.appRef.attachView(cmpRef.hostView);\r\n\r\n    const instance = cmpRef.instance;\r\n\r\n    if (tpl) {\r\n      instance.content = tpl;\r\n      instance.mode = 'template';\r\n      instance.position = templateConfig?.position ?? 'left';\r\n      instance.width = templateConfig?.width ?? '300px';\r\n    } else if (dynamicComponent) {\r\n      const { component, config } = dynamicComponent;\r\n      instance.dynamicComponentType = component;\r\n      instance.mode = 'component';\r\n      instance.position = config?.position ?? 'left';\r\n      instance.width = config?.width ?? '300px';\r\n      instance.dynamicInputs = config?.inputs ?? {};\r\n      instance.dynamicOutputs = config?.outputs ?? {};\r\n    }\r\n\r\n    instance.closed.subscribe(() => this.close());\r\n    this.stack.push(cmpRef);\r\n    this.document.body.classList.add('drawer-open');\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  Component,\r\n  ComponentRef,\r\n  Inject,\r\n  OnDestroy,\r\n  output,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'kage-modal-host',\r\n  template: `\r\n    <div class=\"k-modal-backdrop\" (click)=\"onBackdropClick($event)\">\r\n      <div class=\"k-modal-content\" tabindex=\"0\">\r\n        <button class=\"k-modal-close-btn\" (click)=\"close()\">&times;</button>\r\n        <ng-container #container></ng-container>\r\n      </div>\r\n    </div>\r\n  `,\r\n  styleUrls: ['./modal.component.scss'],\r\n  imports: [],\r\n})\r\nexport class KageModalHost implements AfterViewInit, OnDestroy {\r\n  @ViewChild('container', { read: ViewContainerRef, static: true })\r\n  container!: ViewContainerRef;\r\n  closed = output<void>();\r\n  private activeComponentRef?: ComponentRef<unknown>;\r\n  constructor(@Inject(DOCUMENT) private document: Document) {}\r\n\r\n  ngAfterViewInit() {\r\n    this.document.body.style.overflow = 'hidden';\r\n  }\r\n\r\n  close() {\r\n    this.closed.emit();\r\n  }\r\n\r\n  onBackdropClick(event: MouseEvent) {\r\n    if ((event.target as HTMLElement).classList.contains('modal-backdrop')) {\r\n      this.close();\r\n    }\r\n  }\r\n\r\n  inject<T>(compRef: ComponentRef<T>) {\r\n    this.container.clear();\r\n    this.activeComponentRef = compRef;\r\n    this.container.insert(compRef.hostView);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.container.clear();\r\n    this.document.body.style.overflow = '';\r\n  }\r\n}\r\n","import {\r\n  ApplicationRef,\r\n  ComponentRef,\r\n  createComponent,\r\n  EnvironmentInjector,\r\n  inject,\r\n  Injectable,\r\n  Injector,\r\n  Type,\r\n} from '@angular/core';\r\nimport { KageModalHost } from './modal.component';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class KageModalCtrl {\r\n  private hostRef?: ComponentRef<KageModalHost>;\r\n\r\n  private injector = inject(Injector);\r\n  private appRef = inject(ApplicationRef);\r\n  private envInjector = inject(EnvironmentInjector);\r\n  private document = inject(DOCUMENT);\r\n\r\n  open<T>(component: Type<T>, componentInputs?: Partial<T>): ComponentRef<T> {\r\n    if (this.hostRef) this.close();\r\n\r\n    this.hostRef = createComponent(KageModalHost, {\r\n      environmentInjector: this.envInjector,\r\n      elementInjector: this.injector,\r\n    });\r\n    this.hostRef.instance.closed.subscribe(() => this.close());\r\n\r\n    const compRef = createComponent(component, {\r\n      environmentInjector: this.envInjector,\r\n      elementInjector: this.injector,\r\n    });\r\n\r\n    if (componentInputs) {\r\n      Object.assign(compRef.instance!, componentInputs);\r\n    }\r\n\r\n    this.hostRef.instance.inject(compRef);\r\n    this.document.body.appendChild(this.hostRef.location.nativeElement);\r\n    this.appRef.attachView(this.hostRef.hostView);\r\n\r\n    return compRef;\r\n  }\r\n\r\n  close() {\r\n    if (this.hostRef) {\r\n      this.appRef.detachView(this.hostRef.hostView);\r\n      this.hostRef.destroy();\r\n      this.hostRef = undefined;\r\n    }\r\n  }\r\n}\r\n","import { ComponentRef, EmbeddedViewRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport class KagePopoverRef {\r\n  private closed$ = new Subject<any>();\r\n  private componentRef?: ComponentRef<any>;\r\n  private viewRef?: EmbeddedViewRef<any>;\r\n\r\n  close(result?: any) {\r\n    this.componentRef?.destroy();\r\n    this.viewRef?.destroy();\r\n    this.closed$.next(result);\r\n    this.closed$.complete();\r\n  }\r\n\r\n  afterClosed() {\r\n    return this.closed$.asObservable();\r\n  }\r\n\r\n  _setComponent(componentRef: ComponentRef<any>) {\r\n    this.componentRef = componentRef;\r\n  }\r\n\r\n  _setView(viewRef: EmbeddedViewRef<any>) {\r\n    this.viewRef = viewRef;\r\n  }\r\n}\r\n","import {\r\n  ApplicationRef,\r\n  createComponent,\r\n  EmbeddedViewRef,\r\n  EnvironmentInjector,\r\n  inject,\r\n  Injectable,\r\n  TemplateRef,\r\n  Type,\r\n} from '@angular/core';\r\nimport { KagePopoverRef } from './popover.ref';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class KagePopoverCtrl {\r\n  private activePopover?: HTMLElement;\r\n  private outsideClickHandler?: (e: MouseEvent) => void;\r\n  private appRef = inject(ApplicationRef);\r\n  private envInjector = inject(EnvironmentInjector);\r\n  private document = inject(DOCUMENT);\r\n\r\n  open<T>(config: {\r\n    content: Type<T> | TemplateRef<any>;\r\n    data?: any;\r\n    trigger?: MouseEvent | HTMLElement;\r\n    offsetX?: number;\r\n    offsetY?: number;\r\n    closeOnOutsideClick?: boolean;\r\n  }): KagePopoverRef {\r\n    const popoverRef = new KagePopoverRef();\r\n    let element: HTMLElement;\r\n    // Handle TemplateRef\r\n    if (config.content instanceof TemplateRef) {\r\n      const viewRef = config.content.createEmbeddedView({\r\n        $implicit: config.data,\r\n        popoverRef,\r\n      });\r\n      this.appRef.attachView(viewRef);\r\n      element = viewRef.rootNodes[0] as HTMLElement;\r\n      popoverRef._setView(viewRef);\r\n    } else {\r\n      const componentRef = createComponent(config.content, {\r\n        environmentInjector: this.envInjector,\r\n      });\r\n\r\n      if (config.data) {\r\n        Object.assign(componentRef.instance!, config.data);\r\n      }\r\n\r\n      if ('popoverRef' in (componentRef.instance as any)) {\r\n        (componentRef.instance as any).popoverRef = popoverRef;\r\n      }\r\n\r\n      this.appRef.attachView(componentRef.hostView);\r\n      element = (componentRef.hostView as EmbeddedViewRef<any>)\r\n        .rootNodes[0] as HTMLElement;\r\n      popoverRef._setComponent(componentRef);\r\n    }\r\n\r\n    // Add to DOM\r\n    element.style.position = 'absolute';\r\n    element.style.zIndex = '9999';\r\n    element.style.opacity = '0';\r\n    element.style.transition = 'opacity 150ms ease';\r\n    this.disablePageScroll();\r\n    this.document.body.appendChild(element);\r\n\r\n    this.activePopover = element;\r\n\r\n    setTimeout(() => {\r\n      requestAnimationFrame(() => {\r\n        const { top, left } = this.calculateSmartPosition(\r\n          config.trigger,\r\n          element,\r\n          config.offsetX ?? 8,\r\n          config.offsetY ?? 8\r\n        );\r\n        element.style.top = `${top}px`;\r\n        element.style.left = `${left}px`;\r\n        element.style.opacity = '1';\r\n      });\r\n      this.enablePageScroll();\r\n    });\r\n\r\n    // Optional: Close on outside click\r\n    if (config.closeOnOutsideClick) {\r\n      this.outsideClickHandler = (e: MouseEvent) => {\r\n        if (\r\n          this.activePopover &&\r\n          !this.activePopover.contains(e.target as Node)\r\n        ) {\r\n          popoverRef.close();\r\n        }\r\n      };\r\n      this.document.addEventListener('mousedown', this.outsideClickHandler);\r\n    }\r\n    popoverRef.afterClosed().subscribe(() => this.destroyPopover());\r\n    return popoverRef;\r\n  }\r\n\r\n  private calculateSmartPosition(\r\n    trigger: MouseEvent | HTMLElement | undefined,\r\n    popoverEl: HTMLElement,\r\n    offsetX: number,\r\n    offsetY: number\r\n  ): { top: number; left: number } {\r\n    const vw = window.innerWidth;\r\n    const vh = window.innerHeight;\r\n    const spacing = 8;\r\n\r\n    const pw = popoverEl.offsetWidth;\r\n    const ph = popoverEl.offsetHeight;\r\n\r\n    let tx = 0,\r\n      ty = 0,\r\n      tw = 0,\r\n      th = 0;\r\n\r\n    if (trigger instanceof MouseEvent) {\r\n      tx = trigger.clientX;\r\n      ty = trigger.clientY;\r\n    } else if (trigger instanceof HTMLElement) {\r\n      const rect = trigger.getBoundingClientRect();\r\n      tx = rect.left;\r\n      ty = rect.top;\r\n      tw = rect.width;\r\n      th = rect.height;\r\n    }\r\n\r\n    // Determine edge proximity (25% margins)\r\n    const edgeThresholdX = vw * 0.25;\r\n    const edgeThresholdY = vh * 0.25;\r\n\r\n    const nearLeft = tx < edgeThresholdX;\r\n    const nearRight = tx > vw - edgeThresholdX;\r\n    const nearTop = ty < edgeThresholdY;\r\n    const nearBottom = ty > vh - edgeThresholdY;\r\n\r\n    // Default: right + bottom\r\n    let left = tx + tw + offsetX;\r\n    let top = ty + th + offsetY;\r\n\r\n    if (nearRight) {\r\n      left = tx - pw - offsetX;\r\n      console.log('Position left', left);\r\n    } else if (nearLeft) {\r\n      left = tx + tw + offsetX;\r\n    }\r\n\r\n    if (nearBottom) {\r\n      top = ty - ph - offsetY;\r\n    } else if (nearTop) {\r\n      top = ty + th + offsetY;\r\n    }\r\n\r\n    // Clamp inside viewport\r\n    left = Math.max(spacing, Math.min(left, vw - pw - spacing));\r\n    top = Math.max(spacing, Math.min(top, vh - ph - spacing));\r\n\r\n    return { top, left };\r\n  }\r\n\r\n  private destroyPopover() {\r\n    if (this.activePopover?.parentElement) {\r\n      this.activePopover.parentElement.removeChild(this.activePopover);\r\n    }\r\n    this.activePopover = undefined;\r\n\r\n    if (this.outsideClickHandler) {\r\n      this.document.removeEventListener('mousedown', this.outsideClickHandler);\r\n      this.outsideClickHandler = undefined;\r\n    }\r\n  }\r\n\r\n  private disablePageScroll(): void {\r\n    this.document.body.style.overflow = 'hidden';\r\n  }\r\n\r\n  private enablePageScroll(): void {\r\n    this.document.body.style.overflow = '';\r\n  }\r\n}\r\n","// ============= COMPONENTS =================== //\r\nexport * from \"./components/components\";\r\n// ================ DIRECTIVES =================== //\r\nexport * from \"./directives/directives\";\r\n// ================ PIPES ======================== //\r\nexport * from \"./pipes/pipes\";\r\n// ================ SERVICES ===================== //\r\nexport * from \"./services/services\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}