kage-ui
Version:
A minimal, border-focused Angular UI component library.
1 lines • 300 kB
Source Map (JSON)
{"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()\">×</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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"}