@lumston/ds-angular 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/fesm2022/lumston-ds-angular-src-data-display.mjs +215 -0
  2. package/fesm2022/lumston-ds-angular-src-data-display.mjs.map +1 -0
  3. package/fesm2022/lumston-ds-angular-src-dropdown.mjs +94 -0
  4. package/fesm2022/lumston-ds-angular-src-dropdown.mjs.map +1 -0
  5. package/fesm2022/lumston-ds-angular-src-feedback.mjs +400 -0
  6. package/fesm2022/lumston-ds-angular-src-feedback.mjs.map +1 -0
  7. package/fesm2022/lumston-ds-angular-src-icon.mjs +148 -0
  8. package/fesm2022/lumston-ds-angular-src-icon.mjs.map +1 -0
  9. package/fesm2022/lumston-ds-angular-src-inputs.mjs +1132 -0
  10. package/fesm2022/lumston-ds-angular-src-inputs.mjs.map +1 -0
  11. package/fesm2022/lumston-ds-angular-src-navigation.mjs +473 -0
  12. package/fesm2022/lumston-ds-angular-src-navigation.mjs.map +1 -0
  13. package/fesm2022/lumston-ds-angular-src-overlay.mjs +1038 -0
  14. package/fesm2022/lumston-ds-angular-src-overlay.mjs.map +1 -0
  15. package/fesm2022/lumston-ds-angular-src-typography.mjs +303 -0
  16. package/fesm2022/lumston-ds-angular-src-typography.mjs.map +1 -0
  17. package/fesm2022/lumston-ds-angular.mjs +90 -65
  18. package/fesm2022/lumston-ds-angular.mjs.map +1 -1
  19. package/package.json +58 -32
  20. package/styles/index.css +0 -24
  21. package/styles/ls-icons.css +482 -0
  22. package/types/lumston-ds-angular-src-data-display.d.ts +50 -0
  23. package/types/lumston-ds-angular-src-data-display.d.ts.map +1 -0
  24. package/types/lumston-ds-angular-src-dropdown.d.ts +28 -0
  25. package/types/lumston-ds-angular-src-dropdown.d.ts.map +1 -0
  26. package/types/lumston-ds-angular-src-feedback.d.ts +75 -0
  27. package/types/lumston-ds-angular-src-feedback.d.ts.map +1 -0
  28. package/types/lumston-ds-angular-src-icon.d.ts +27 -0
  29. package/types/lumston-ds-angular-src-icon.d.ts.map +1 -0
  30. package/types/lumston-ds-angular-src-inputs.d.ts +201 -0
  31. package/types/lumston-ds-angular-src-inputs.d.ts.map +1 -0
  32. package/types/lumston-ds-angular-src-navigation.d.ts +186 -0
  33. package/types/lumston-ds-angular-src-navigation.d.ts.map +1 -0
  34. package/types/lumston-ds-angular-src-overlay.d.ts +357 -0
  35. package/types/lumston-ds-angular-src-overlay.d.ts.map +1 -0
  36. package/types/lumston-ds-angular-src-typography.d.ts +51 -0
  37. package/types/lumston-ds-angular-src-typography.d.ts.map +1 -0
  38. package/types/lumston-ds-angular.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lumston-ds-angular.mjs","sources":["../../../../libs/ds-angular/src/icon/icon.registry.ts","../../../../libs/ds-angular/src/icon/icon.component.ts","../../../../libs/ds-angular/src/dropdown/dropdown.component.ts","../../../../libs/ds-angular/src/dropdown/dropdown-content.directive.ts","../../../../libs/ds-angular/src/inputs/button/button.component.ts","../../../../libs/ds-angular/src/inputs/checkbox/checkbox.component.ts","../../../../libs/ds-angular/src/inputs/icon-button/icon-button.component.ts","../../../../libs/ds-angular/src/inputs/radio-button/radio-button.component.ts","../../../../libs/ds-angular/src/inputs/slider/slider.component.ts","../../../../libs/ds-angular/src/inputs/switch/switch.component.ts","../../../../libs/ds-angular/src/typography/link/link.component.ts","../../../../libs/ds-angular/src/typography/text/text.component.ts","../../../../libs/ds-angular/src/typography/tag/tag.component.ts","../../../../libs/ds-angular/src/data-display/badge/badge.component.ts","../../../../libs/ds-angular/src/data-display/chip/chip.component.ts","../../../../libs/ds-angular/src/overlay/tooltip/tooltip.component.ts","../../../../libs/ds-angular/src/media/avatar/avatar.component.ts","../../../../libs/ds-angular/src/media/avatar-group/avatar-group.component.ts","../../../../libs/ds-angular/src/media/logo/logo.component.ts","../../../../libs/ds-angular/src/feedback/progress-bar/progress-bar.component.ts","../../../../libs/ds-angular/src/feedback/loader/loader.component.ts","../../../../libs/ds-angular/src/feedback/alert/alert.component.ts","../../../../libs/ds-angular/src/overlay/menu/menu.component.ts","../../../../libs/ds-angular/src/overlay/menu/menu-item.component.ts","../../../../libs/ds-angular/src/overlay/menu/menu-trigger.directive.ts","../../../../libs/ds-angular/src/overlay/modal/modal-actions.component.ts","../../../../libs/ds-angular/src/overlay/modal/modal-title.component.ts","../../../../libs/ds-angular/src/overlay/modal/modal.service.ts","../../../../libs/ds-angular/src/overlay/modal/modal.component.ts","../../../../libs/ds-angular/src/overlay/modal/modal-content.component.ts","../../../../libs/ds-angular/src/overlay/popover/popover.component.ts","../../../../libs/ds-angular/src/navigation/pagination/pagination.component.ts","../../../../libs/ds-angular/src/navigation/breadcrumb/breadcrumb.component.ts","../../../../libs/ds-angular/src/public-api.ts","../../../../libs/ds-angular/src/lumston-ds-angular.ts"],"sourcesContent":["import { IconName } from './icon.types';\r\n\r\n/**\r\n * SVG icon registry.\r\n * Maps icon names to raw SVG strings.\r\n */\r\nexport const ICON_REGISTRY: Record<IconName, string> = {\r\n // UI Icons\r\n 'caret-down': `<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>`,\r\n\r\n 'carets-down': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M19 11L12 17L5 11\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path opacity=\"0.5\" d=\"M19 7L12 13L5 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>`,\r\n\r\n 'laptop': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M3 9C3 6.17157 3 4.75736 3.87868 3.87868C4.75736 3 6.17157 3 9 3H15C17.8284 3 19.2426 3 20.1213 3.87868C21 4.75736 21 6.17157 21 9V14C21 15.8856 21 16.8284 20.4142 17.4142C19.8284 18 18.8856 18 17 18H7C5.11438 18 4.17157 18 3.58579 17.4142C3 16.8284 3 15.8856 3 14V9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path opacity=\"0.5\" d=\"M22 21H2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M15 15H9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'menu': `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M20 7L4 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M20 12L4 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M20 17L4 17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'minus': `<svg width=\"16\" height=\"20\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\r\n </svg>`,\r\n\r\n 'moon': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M21.0672 11.8568L20.4253 11.469L21.0672 11.8568ZM12.1432 2.93276L11.7553 2.29085V2.29085L12.1432 2.93276ZM21.25 12C21.25 17.1086 17.1086 21.25 12 21.25V22.75C17.9371 22.75 22.75 17.9371 22.75 12H21.25ZM12 21.25C6.89137 21.25 2.75 17.1086 2.75 12H1.25C1.25 17.9371 6.06294 22.75 12 22.75V21.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75V1.25C6.06294 1.25 1.25 6.06294 1.25 12H2.75ZM15.5 14.25C12.3244 14.25 9.75 11.6756 9.75 8.5H8.25C8.25 12.5041 11.4959 15.75 15.5 15.75V14.25ZM20.4253 11.469C19.4172 13.1373 17.5882 14.25 15.5 14.25V15.75C18.1349 15.75 20.4407 14.3439 21.7092 12.2447L20.4253 11.469ZM9.75 8.5C9.75 6.41182 10.8627 4.5828 12.531 3.57467L11.7553 2.29085C9.65609 3.5593 8.25 5.86509 8.25 8.5H9.75ZM12 2.75C11.9115 2.75 11.8077 2.71008 11.7324 2.63168C11.6686 2.56527 11.6538 2.50244 11.6503 2.47703C11.6461 2.44587 11.6482 2.35557 11.7553 2.29085L12.531 3.57467C13.0342 3.27065 13.196 2.71398 13.1368 2.27627C13.0754 1.82126 12.7166 1.25 12 1.25V2.75ZM21.7092 12.2447C21.6444 12.3518 21.5541 12.3539 21.523 12.3497C21.4976 12.3462 21.4347 12.3314 21.3683 12.2676C21.2899 12.1923 21.25 12.0885 21.25 12H22.75C22.75 11.2834 22.1787 10.9246 21.7237 10.8632C21.286 10.804 20.7293 10.9658 20.4253 11.469L21.7092 12.2447Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'search': `<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"11.5\" cy=\"11.5\" r=\"9.5\" stroke=\"currentColor\" stroke-width=\"1.5\" opacity=\"0.5\" />\r\n <path d=\"M18.5 18.5L22 22\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'settings': `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path opacity=\"0.5\" d=\"M13.7654 2.15224C13.3978 2 12.9319 2 12 2C11.0681 2 10.6022 2 10.2346 2.15224C9.74457 2.35523 9.35522 2.74458 9.15223 3.23463C9.05957 3.45834 9.0233 3.7185 9.00911 4.09799C8.98826 4.65568 8.70226 5.17189 8.21894 5.45093C7.73564 5.72996 7.14559 5.71954 6.65219 5.45876C6.31645 5.2813 6.07301 5.18262 5.83294 5.15102C5.30704 5.08178 4.77518 5.22429 4.35436 5.5472C4.03874 5.78938 3.80577 6.1929 3.33983 6.99993C2.87389 7.80697 2.64092 8.21048 2.58899 8.60491C2.51976 9.1308 2.66227 9.66266 2.98518 10.0835C3.13256 10.2756 3.3397 10.437 3.66119 10.639C4.1338 10.936 4.43789 11.4419 4.43786 12C4.43783 12.5581 4.13375 13.0639 3.66118 13.3608C3.33965 13.5629 3.13248 13.7244 2.98508 13.9165C2.66217 14.3373 2.51966 14.8691 2.5889 15.395C2.64082 15.7894 2.87379 16.193 3.33973 17C3.80568 17.807 4.03865 18.2106 4.35426 18.4527C4.77508 18.7756 5.30694 18.9181 5.83284 18.8489C6.07289 18.8173 6.31632 18.7186 6.65204 18.5412C7.14547 18.2804 7.73556 18.27 8.2189 18.549C8.70224 18.8281 8.98826 19.3443 9.00911 19.9021C9.02331 20.2815 9.05957 20.5417 9.15223 20.7654C9.35522 21.2554 9.74457 21.6448 10.2346 21.8478C10.6022 22 11.0681 22 12 22C12.9319 22 13.3978 22 13.7654 21.8478C14.2554 21.6448 14.6448 21.2554 14.8477 20.7654C14.9404 20.5417 14.9767 20.2815 14.9909 19.902C15.0117 19.3443 15.2977 18.8281 15.781 18.549C16.2643 18.2699 16.8544 18.2804 17.3479 18.5412C17.6836 18.7186 17.927 18.8172 18.167 18.8488C18.6929 18.9181 19.2248 18.7756 19.6456 18.4527C19.9612 18.2105 20.1942 17.807 20.6601 16.9999C21.1261 16.1929 21.3591 15.7894 21.411 15.395C21.4802 14.8691 21.3377 14.3372 21.0148 13.9164C20.8674 13.7243 20.6602 13.5628 20.3387 13.3608C19.8662 13.0639 19.5621 12.558 19.5621 11.9999C19.5621 11.4418 19.8662 10.9361 20.3387 10.6392C20.6603 10.4371 20.8675 10.2757 21.0149 10.0835C21.3378 9.66273 21.4803 9.13087 21.4111 8.60497C21.3592 8.21055 21.1262 7.80703 20.6602 7C20.1943 6.19297 19.9613 5.78945 19.6457 5.54727C19.2249 5.22436 18.693 5.08185 18.1671 5.15109C17.9271 5.18269 17.6837 5.28136 17.3479 5.4588C16.8545 5.71959 16.2644 5.73002 15.7811 5.45096C15.2977 5.17191 15.0117 4.65566 14.9909 4.09794C14.9767 3.71848 14.9404 3.45833 14.8477 3.23463C14.6448 2.74458 14.2554 2.35523 13.7654 2.15224Z\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n </svg>`,\r\n\r\n 'sun': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"12\" cy=\"12\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path d=\"M12 2V4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M12 20V22\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M4 12L2 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M22 12L20 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M19.7778 4.22266L17.5558 6.25424\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M4.22217 4.22266L6.44418 6.25424\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M6.44434 17.5557L4.22211 19.7779\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M19.7778 19.7773L17.5558 17.5551\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'x': `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\r\n </svg>`,\r\n\r\n 'x-circle': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle opacity=\"0.5\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path d=\"M14.5 9.50002L9.5 14.5M9.49998 9.5L14.5 14.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n // Menu Icons\r\n 'menu-apps': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g opacity=\"0.5\">\r\n <path d=\"M14 2.75C15.9068 2.75 17.2615 2.75159 18.2892 2.88976C19.2952 3.02503 19.8749 3.27869 20.2981 3.7019C20.7213 4.12511 20.975 4.70476 21.1102 5.71085C21.2484 6.73851 21.25 8.09318 21.25 10C21.25 10.4142 21.5858 10.75 22 10.75C22.4142 10.75 22.75 10.4142 22.75 10V9.94359C22.75 8.10583 22.75 6.65019 22.5969 5.51098C22.4392 4.33856 22.1071 3.38961 21.3588 2.64124C20.6104 1.89288 19.6614 1.56076 18.489 1.40314C17.3498 1.24997 15.8942 1.24998 14.0564 1.25H14C13.5858 1.25 13.25 1.58579 13.25 2C13.25 2.41421 13.5858 2.75 14 2.75Z\" fill=\"currentColor\" />\r\n <path d=\"M9.94358 1.25H10C10.4142 1.25 10.75 1.58579 10.75 2C10.75 2.41421 10.4142 2.75 10 2.75C8.09318 2.75 6.73851 2.75159 5.71085 2.88976C4.70476 3.02503 4.12511 3.27869 3.7019 3.7019C3.27869 4.12511 3.02503 4.70476 2.88976 5.71085C2.75159 6.73851 2.75 8.09318 2.75 10C2.75 10.4142 2.41421 10.75 2 10.75C1.58579 10.75 1.25 10.4142 1.25 10V9.94358C1.24998 8.10583 1.24997 6.65019 1.40314 5.51098C1.56076 4.33856 1.89288 3.38961 2.64124 2.64124C3.38961 1.89288 4.33856 1.56076 5.51098 1.40314C6.65019 1.24997 8.10583 1.24998 9.94358 1.25Z\" fill=\"currentColor\" />\r\n <path d=\"M22 13.25C22.4142 13.25 22.75 13.5858 22.75 14V14.0564C22.75 15.8942 22.75 17.3498 22.5969 18.489C22.4392 19.6614 22.1071 20.6104 21.3588 21.3588C20.6104 22.1071 19.6614 22.4392 18.489 22.5969C17.3498 22.75 15.8942 22.75 14.0564 22.75H14C13.5858 22.75 13.25 22.4142 13.25 22C13.25 21.5858 13.5858 21.25 14 21.25C15.9068 21.25 17.2615 21.2484 18.2892 21.1102C19.2952 20.975 19.8749 20.7213 20.2981 20.2981C20.7213 19.8749 20.975 19.2952 21.1102 18.2892C21.2484 17.2615 21.25 15.9068 21.25 14C21.25 13.5858 21.5858 13.25 22 13.25Z\" fill=\"currentColor\" />\r\n <path d=\"M2.75 14C2.75 13.5858 2.41421 13.25 2 13.25C1.58579 13.25 1.25 13.5858 1.25 14V14.0564C1.24998 15.8942 1.24997 17.3498 1.40314 18.489C1.56076 19.6614 1.89288 20.6104 2.64124 21.3588C3.38961 22.1071 4.33856 22.4392 5.51098 22.5969C6.65019 22.75 8.10583 22.75 9.94359 22.75H10C10.4142 22.75 10.75 22.4142 10.75 22C10.75 21.5858 10.4142 21.25 10 21.25C8.09318 21.25 6.73851 21.2484 5.71085 21.1102C4.70476 20.975 4.12511 20.7213 3.7019 20.2981C3.27869 19.8749 3.02503 19.2952 2.88976 18.2892C2.75159 17.2615 2.75 15.9068 2.75 14Z\" fill=\"currentColor\" />\r\n </g>\r\n <path d=\"M5.52721 5.52721C5 6.05442 5 6.90294 5 8.6C5 9.73137 5 10.2971 5.35147 10.6485C5.70294 11 6.26863 11 7.4 11H8.6C9.73137 11 10.2971 11 10.6485 10.6485C11 10.2971 11 9.73137 11 8.6V7.4C11 6.26863 11 5.70294 10.6485 5.35147C10.2971 5 9.73137 5 8.6 5C6.90294 5 6.05442 5 5.52721 5.52721Z\" fill=\"currentColor\" />\r\n <path d=\"M5.52721 18.4728C5 17.9456 5 17.0971 5 15.4C5 14.2686 5 13.7029 5.35147 13.3515C5.70294 13 6.26863 13 7.4 13H8.6C9.73137 13 10.2971 13 10.6485 13.3515C11 13.7029 11 14.2686 11 15.4V16.6C11 17.7314 11 18.2971 10.6485 18.6485C10.2971 19 9.73138 19 8.60002 19C6.90298 19 6.05441 19 5.52721 18.4728Z\" fill=\"currentColor\" />\r\n <path d=\"M13 7.4C13 6.26863 13 5.70294 13.3515 5.35147C13.7029 5 14.2686 5 15.4 5C17.0971 5 17.9456 5 18.4728 5.52721C19 6.05442 19 6.90294 19 8.6C19 9.73137 19 10.2971 18.6485 10.6485C18.2971 11 17.7314 11 16.6 11H15.4C14.2686 11 13.7029 11 13.3515 10.6485C13 10.2971 13 9.73137 13 8.6V7.4Z\" fill=\"currentColor\" />\r\n <path d=\"M13.3515 18.6485C13 18.2971 13 17.7314 13 16.6V15.4C13 14.2686 13 13.7029 13.3515 13.3515C13.7029 13 14.2686 13 15.4 13H16.6C17.7314 13 18.2971 13 18.6485 13.3515C19 13.7029 19 14.2686 19 15.4C19 17.097 19 17.9456 18.4728 18.4728C17.9456 19 17.0971 19 15.4 19C14.2687 19 13.7029 19 13.3515 18.6485Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-components': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.42229 20.6181C10.1779 21.5395 11.0557 22.0001 12 22.0001V12.0001L2.63802 7.07275C2.62423 7.09491 2.6107 7.11727 2.5974 7.13986C2 8.15436 2 9.41678 2 11.9416V12.0586C2 14.5834 2 15.8459 2.5974 16.8604C3.19479 17.8749 4.27063 18.4395 6.42229 19.5686L8.42229 20.6181Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.7\" d=\"M17.5774 4.43152L15.5774 3.38197C13.8218 2.46066 12.944 2 11.9997 2C11.0554 2 10.1776 2.46066 8.42197 3.38197L6.42197 4.43152C4.31821 5.53552 3.24291 6.09982 2.6377 7.07264L11.9997 12L21.3617 7.07264C20.7564 6.09982 19.6811 5.53552 17.5774 4.43152Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.5\" d=\"M21.4026 7.13986C21.3893 7.11727 21.3758 7.09491 21.362 7.07275L12 12.0001V22.0001C12.9443 22.0001 13.8221 21.5395 15.5777 20.6181L17.5777 19.5686C19.7294 18.4395 20.8052 17.8749 21.4026 16.8604C22 15.8459 22 14.5834 22 12.0586V11.9416C22 9.41678 22 8.15436 21.4026 7.13986Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-dashboard': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M2 12.2039C2 9.91549 2 8.77128 2.5192 7.82274C3.0384 6.87421 3.98695 6.28551 5.88403 5.10813L7.88403 3.86687C9.88939 2.62229 10.8921 2 12 2C13.1079 2 14.1106 2.62229 16.116 3.86687L18.116 5.10812C20.0131 6.28551 20.9616 6.87421 21.4808 7.82274C22 8.77128 22 9.91549 22 12.2039V13.725C22 17.6258 22 19.5763 20.8284 20.7881C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.7881C2 19.5763 2 17.6258 2 13.725V12.2039Z\" fill=\"currentColor\" />\r\n <path d=\"M9 17.25C8.58579 17.25 8.25 17.5858 8.25 18C8.25 18.4142 8.58579 18.75 9 18.75H15C15.4142 18.75 15.75 18.4142 15.75 18C15.75 17.5858 15.4142 17.25 15 17.25H9Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-datatables': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M4.97883 9.68508C2.99294 8.89073 2 8.49355 2 8C2 7.50645 2.99294 7.10927 4.97883 6.31492L7.7873 5.19153C9.77318 4.39718 10.7661 4 12 4C13.2339 4 14.2268 4.39718 16.2127 5.19153L19.0212 6.31492C21.0071 7.10927 22 7.50645 22 8C22 8.49355 21.0071 8.89073 19.0212 9.68508L16.2127 10.8085C14.2268 11.6028 13.2339 12 12 12C10.7661 12 9.77318 11.6028 7.7873 10.8085L4.97883 9.68508Z\" fill=\"currentColor\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 8C2 8.49355 2.99294 8.89073 4.97883 9.68508L7.7873 10.8085C9.77318 11.6028 10.7661 12 12 12C13.2339 12 14.2268 11.6028 16.2127 10.8085L19.0212 9.68508C21.0071 8.89073 22 8.49355 22 8C22 7.50645 21.0071 7.10927 19.0212 6.31492L16.2127 5.19153C14.2268 4.39718 13.2339 4 12 4C10.7661 4 9.77318 4.39718 7.7873 5.19153L4.97883 6.31492C2.99294 7.10927 2 7.50645 2 8Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.7\" d=\"M5.76613 10L4.97883 10.3149C2.99294 11.1093 2 11.5065 2 12C2 12.4935 2.99294 12.8907 4.97883 13.6851L7.7873 14.8085C9.77318 15.6028 10.7661 16 12 16C13.2339 16 14.2268 15.6028 16.2127 14.8085L19.0212 13.6851C21.0071 12.8907 22 12.4935 22 12C22 11.5065 21.0071 11.1093 19.0212 10.3149L18.2339 10L16.2127 10.8085C14.2268 11.6028 13.2339 12 12 12C10.7661 12 9.77318 11.6028 7.7873 10.8085L5.76613 10Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.4\" d=\"M5.76613 14L4.97883 14.3149C2.99294 15.1093 2 15.5065 2 16C2 16.4935 2.99294 16.8907 4.97883 17.6851L7.7873 18.8085C9.77318 19.6028 10.7661 20 12 20C13.2339 20 14.2268 19.6028 16.2127 18.8085L19.0212 17.6851C21.0071 16.8907 22 16.4935 22 16C22 15.5065 21.0071 15.1093 19.0212 14.3149L18.2339 14L16.2127 14.8085C14.2268 15.6028 13.2339 16 12 16C10.7661 16 9.77318 15.6028 7.7873 14.8085L5.76613 14Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-documentation': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4.69434V18.6943C4 20.3512 5.34315 21.6943 7 21.6943H17C18.6569 21.6943 20 20.3512 20 18.6943V8.69434C20 7.03748 18.6569 5.69434 17 5.69434H5C4.44772 5.69434 4 5.24662 4 4.69434ZM7.25 11.6943C7.25 11.2801 7.58579 10.9443 8 10.9443H16C16.4142 10.9443 16.75 11.2801 16.75 11.6943C16.75 12.1085 16.4142 12.4443 16 12.4443H8C7.58579 12.4443 7.25 12.1085 7.25 11.6943ZM7.25 15.1943C7.25 14.7801 7.58579 14.4443 8 14.4443H13.5C13.9142 14.4443 14.25 14.7801 14.25 15.1943C14.25 15.6085 13.9142 15.9443 13.5 15.9443H8C7.58579 15.9443 7.25 15.6085 7.25 15.1943Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.5\" d=\"M18 4.00038V5.86504C17.6872 5.75449 17.3506 5.69434 17 5.69434H5C4.44772 5.69434 4 5.24662 4 4.69434V4.62329C4 4.09027 4.39193 3.63837 4.91959 3.56299L15.7172 2.02048C16.922 1.84835 18 2.78328 18 4.00038Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-elements': `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.73167 5.77133L5.66953 9.91436C4.3848 11.6526 3.74244 12.5217 4.09639 13.205C4.10225 13.2164 4.10829 13.2276 4.1145 13.2387C4.48945 13.9117 5.59888 13.9117 7.81775 13.9117C9.05079 13.9117 9.6673 13.9117 10.054 14.2754L10.074 14.2946L13.946 9.72466L13.926 9.70541C13.5474 9.33386 13.5474 8.74151 13.5474 7.55682V7.24712C13.5474 3.96249 13.5474 2.32018 12.6241 2.03721C11.7007 1.75425 10.711 3.09327 8.73167 5.77133Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.5\" d=\"M10.4527 16.4432L10.4527 16.7528C10.4527 20.0374 10.4527 21.6798 11.376 21.9627C12.2994 22.2457 13.2891 20.9067 15.2685 18.2286L18.3306 14.0856C19.6154 12.3474 20.2577 11.4783 19.9038 10.7949C19.8979 10.7836 19.8919 10.7724 19.8857 10.7613C19.5107 10.0883 18.4013 10.0883 16.1824 10.0883C14.9494 10.0883 14.3329 10.0883 13.9462 9.72461L10.0742 14.2946C10.4528 14.6661 10.4527 15.2585 10.4527 16.4432Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-forms': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M3 10C3 6.22876 3 4.34315 4.17157 3.17157C5.34315 2 7.22876 2 11 2H13C16.7712 2 18.6569 2 19.8284 3.17157C21 4.34315 21 6.22876 21 10V14C21 17.7712 21 19.6569 19.8284 20.8284C18.6569 22 16.7712 22 13 22H11C7.22876 22 5.34315 22 4.17157 20.8284C3 19.6569 3 17.7712 3 14V10Z\" fill=\"currentColor\" />\r\n <path d=\"M16.5189 16.5013C16.6939 16.3648 16.8526 16.2061 17.1701 15.8886L21.1275 11.9312C21.2231 11.8356 21.1793 11.6708 21.0515 11.6264C20.5844 11.4644 19.9767 11.1601 19.4083 10.5917C18.8399 10.0233 18.5356 9.41561 18.3736 8.94849C18.3292 8.82066 18.1644 8.77687 18.0688 8.87254L14.1114 12.8299C13.7939 13.1474 13.6352 13.3061 13.4987 13.4811C13.3377 13.6876 13.1996 13.9109 13.087 14.1473C12.9915 14.3476 12.9205 14.5606 12.7786 14.9865L12.5951 15.5368L12.3034 16.4118L12.0299 17.2323C11.9601 17.4419 12.0146 17.6729 12.1708 17.8292C12.3271 17.9854 12.5581 18.0399 12.7677 17.9701L13.5882 17.6966L14.4632 17.4049L15.0135 17.2214L15.0136 17.2214C15.4394 17.0795 15.6524 17.0085 15.8527 16.913C16.0891 16.8004 16.3124 16.6623 16.5189 16.5013Z\" fill=\"currentColor\" />\r\n <path d=\"M22.3665 10.6922C23.2112 9.84754 23.2112 8.47812 22.3665 7.63348C21.5219 6.78884 20.1525 6.78884 19.3078 7.63348L19.1806 7.76071C19.0578 7.88348 19.0022 8.05496 19.0329 8.22586C19.0522 8.33336 19.0879 8.49053 19.153 8.67807C19.2831 9.05314 19.5288 9.54549 19.9917 10.0083C20.4545 10.4712 20.9469 10.7169 21.3219 10.847C21.5095 10.9121 21.6666 10.9478 21.7741 10.9671C21.945 10.9978 22.1165 10.9422 22.2393 10.8194L22.3665 10.6922Z\" fill=\"currentColor\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.25 9C7.25 8.58579 7.58579 8.25 8 8.25H14.5C14.9142 8.25 15.25 8.58579 15.25 9C15.25 9.41421 14.9142 9.75 14.5 9.75H8C7.58579 9.75 7.25 9.41421 7.25 9ZM7.25 13C7.25 12.5858 7.58579 12.25 8 12.25H11C11.4142 12.25 11.75 12.5858 11.75 13C11.75 13.4142 11.4142 13.75 11 13.75H8C7.58579 13.75 7.25 13.4142 7.25 13ZM7.25 17C7.25 16.5858 7.58579 16.25 8 16.25H9.5C9.91421 16.25 10.25 16.5858 10.25 17C10.25 17.4142 9.91421 17.75 9.5 17.75H8C7.58579 17.75 7.25 17.4142 7.25 17Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-more': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\" fill=\"currentColor\" />\r\n <path d=\"M12.75 9C12.75 8.58579 12.4142 8.25 12 8.25C11.5858 8.25 11.25 8.58579 11.25 9L11.25 11.25H9C8.58579 11.25 8.25 11.5858 8.25 12C8.25 12.4142 8.58579 12.75 9 12.75H11.25V15C11.25 15.4142 11.5858 15.75 12 15.75C12.4142 15.75 12.75 15.4142 12.75 15L12.75 12.75H15C15.4142 12.75 15.75 12.4142 15.75 12C15.75 11.5858 15.4142 11.25 15 11.25H12.75V9Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-pages': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V10C2 6.22876 2 4.34315 3.17157 3.17157C4.34315 2 6.23869 2 10.0298 2C10.6358 2 11.1214 2 11.53 2.01666C11.5166 2.09659 11.5095 2.17813 11.5092 2.26057L11.5 5.09497C11.4999 6.19207 11.4998 7.16164 11.6049 7.94316C11.7188 8.79028 11.9803 9.63726 12.6716 10.3285C13.3628 11.0198 14.2098 11.2813 15.0569 11.3952C15.8385 11.5003 16.808 11.5002 17.9051 11.5001L18 11.5001H21.9574C22 12.0344 22 12.6901 22 13.5629V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22Z\" fill=\"currentColor\" />\r\n <path d=\"M6 13.75C5.58579 13.75 5.25 14.0858 5.25 14.5C5.25 14.9142 5.58579 15.25 6 15.25H14C14.4142 15.25 14.75 14.9142 14.75 14.5C14.75 14.0858 14.4142 13.75 14 13.75H6Z\" fill=\"currentColor\" />\r\n <path d=\"M6 17.25C5.58579 17.25 5.25 17.5858 5.25 18C5.25 18.4142 5.58579 18.75 6 18.75H11.5C11.9142 18.75 12.25 18.4142 12.25 18C12.25 17.5858 11.9142 17.25 11.5 17.25H6Z\" fill=\"currentColor\" />\r\n <path d=\"M11.5092 2.2601L11.5 5.0945C11.4999 6.1916 11.4998 7.16117 11.6049 7.94269C11.7188 8.78981 11.9803 9.6368 12.6716 10.3281C13.3629 11.0193 14.2098 11.2808 15.057 11.3947C15.8385 11.4998 16.808 11.4997 17.9051 11.4996L21.9574 11.4996C21.9698 11.6552 21.9786 11.821 21.9848 11.9995H22C22 11.732 22 11.5983 21.9901 11.4408C21.9335 10.5463 21.5617 9.52125 21.0315 8.79853C20.9382 8.6713 20.8743 8.59493 20.7467 8.44218C19.9542 7.49359 18.911 6.31193 18 5.49953C17.1892 4.77645 16.0787 3.98536 15.1101 3.3385C14.2781 2.78275 13.862 2.50487 13.2915 2.29834C13.1403 2.24359 12.9408 2.18311 12.7846 2.14466C12.4006 2.05013 12.0268 2.01725 11.5 2.00586L11.5092 2.2601Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-scrumboard': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M21 15.9983V9.99826C21 7.16983 21 5.75562 20.1213 4.87694C19.3529 4.10856 18.175 4.01211 16 4H8C5.82497 4.01211 4.64706 4.10856 3.87868 4.87694C3 5.75562 3 7.16983 3 9.99826V15.9983C3 18.8267 3 20.2409 3.87868 21.1196C4.75736 21.9983 6.17157 21.9983 9 21.9983H15C17.8284 21.9983 19.2426 21.9983 20.1213 21.1196C21 20.2409 21 18.8267 21 15.9983Z\" fill=\"currentColor\" />\r\n <path d=\"M8 3.5C8 2.67157 8.67157 2 9.5 2H14.5C15.3284 2 16 2.67157 16 3.5V4.5C16 5.32843 15.3284 6 14.5 6H9.5C8.67157 6 8 5.32843 8 4.5V3.5Z\" fill=\"currentColor\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 9.25C12.4142 9.25 12.75 9.58579 12.75 10V12.25L15 12.25C15.4142 12.25 15.75 12.5858 15.75 13C15.75 13.4142 15.4142 13.75 15 13.75L12.75 13.75L12.75 16C12.75 16.4142 12.4142 16.75 12 16.75C11.5858 16.75 11.25 16.4142 11.25 16L11.25 13.75H9C8.58579 13.75 8.25 13.4142 8.25 13C8.25 12.5858 8.58579 12.25 9 12.25L11.25 12.25L11.25 10C11.25 9.58579 11.5858 9.25 12 9.25Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n};\r\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ICON_REGISTRY } from './icon.registry';\r\nimport { IconName } from './icon.types';\r\n\r\n@Component({\r\n selector: 'ls-icon',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `<span [innerHTML]=\"svgHtml()\" [class]=\"iconClass()\"></span>`,\r\n styleUrls: ['./icon.styles.css'],\r\n})\r\nexport class IconComponent {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n readonly name = input.required<IconName>();\r\n readonly iconClass = input<string>('');\r\n\r\n protected readonly svgHtml = computed(() => {\r\n const iconName = this.name();\r\n const svg = ICON_REGISTRY[iconName];\r\n if (!svg) {\r\n console.warn(`Icon \"${iconName}\" not found in registry`);\r\n return '';\r\n }\r\n return this.sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n}\r\n","import { Component, ElementRef, HostListener, Input, ViewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule],\r\n selector: 'ls-dropdown',\r\n template: `\r\n <div class=\"dropdown\" #dropdown>\r\n <div (click)=\"toggle()\">\r\n <ng-content select=\"[dropdownButton]\"></ng-content>\r\n </div>\r\n @if (isOpen || isAnimating) {\r\n <div class=\"dropdown-content\"\r\n [ngClass]=\"[contentClass, isOpen ? 'toggle-enter' : 'toggle-leave']\"\r\n (animationend)=\"onAnimationEnd()\">\r\n <ng-content select=\"[dropdownContent]\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./dropdown.styles.css']\r\n})\r\nexport class DropdownComponent {\r\n @Input() contentClass: string = '';\r\n @ViewChild('dropdown') dropdown!: ElementRef;\r\n isOpen = false;\r\n isAnimating = false;\r\n\r\n toggle() {\r\n if (this.isOpen) {\r\n this.isAnimating = true;\r\n this.isOpen = false;\r\n } else {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n close() {\r\n if (this.isOpen) {\r\n this.isAnimating = true;\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n onAnimationEnd() {\r\n this.isAnimating = false;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (this.dropdown && !this.dropdown.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[lsDropdownContent]', standalone: true })\r\nexport class LsDropdownContentDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type ButtonVariant = 'contained' | 'outline' | 'text';\r\nexport type ButtonColor =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'dark';\r\nexport type ButtonSize = 'small' | 'medium' | 'large';\r\nexport type ButtonLoadingIndicator = 'spinner' | (string & {});\r\nexport type ButtonLoadingPosition = 'center' | 'start' | 'end';\r\n\r\n@Component({\r\n selector: 'ls-button',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n template: `\r\n <button\r\n [type]=\"type()\"\r\n [disabled]=\"disabled() || loading()\"\r\n [class]=\"buttonClasses\"\r\n (click)=\"onClick($event)\">\r\n <ng-template #spinner>\r\n <svg class=\"btn-spinner\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <circle\r\n class=\"btn-spinner-circle\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\" />\r\n <path\r\n class=\"btn-spinner-path\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\r\n </svg>\r\n </ng-template>\r\n\r\n @if (showStartIcon) {\r\n <span\r\n class=\"btn-icon btn-icon--start\"\r\n [class]=\"iconSizeClass\"\r\n [innerHTML]=\"sanitizedStartIcon\"></span>\r\n }\r\n\r\n @if (loading() && isCustomText) {\r\n <span class=\"btn-loading-overlay\">\r\n {{ loadingIndicator() }}\r\n </span>\r\n }\r\n\r\n @if (loading() && !isCustomText && loadingPosition() === 'start') {\r\n <span class=\"btn-loading-inline btn-loading-inline--start\">\r\n <ng-container *ngTemplateOutlet=\"spinner\" />\r\n </span>\r\n }\r\n\r\n @if (loading() && !isCustomText && loadingPosition() === 'center') {\r\n <span class=\"btn-loading-overlay\">\r\n <ng-container *ngTemplateOutlet=\"spinner\" />\r\n </span>\r\n }\r\n\r\n <span\r\n [class]=\"\r\n loading() && (isCustomText || loadingPosition() === 'center')\r\n ? 'btn-content--hidden'\r\n : ''\r\n \">\r\n <ng-content />\r\n </span>\r\n\r\n @if (loading() && !isCustomText && loadingPosition() === 'end') {\r\n <span class=\"btn-loading-inline btn-loading-inline--end\">\r\n <ng-container *ngTemplateOutlet=\"spinner\" />\r\n </span>\r\n }\r\n @if (showEndIcon) {\r\n <span\r\n class=\"btn-icon btn-icon--end\"\r\n [class]=\"iconSizeClass\"\r\n [innerHTML]=\"sanitizedEndIcon\"></span>\r\n }\r\n </button>\r\n `,\r\n styleUrls: ['./button.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n /** Host element of this component. Pass directly as `anchorEl` to overlay components like `ls-menu`. */\r\n readonly nativeElement: HTMLElement = this._elementRef.nativeElement;\r\n\r\n readonly variant = input<ButtonVariant>('contained');\r\n readonly color = input<ButtonColor>('primary');\r\n readonly size = input<ButtonSize>('medium');\r\n readonly type = input<'button' | 'submit' | 'reset'>('button');\r\n readonly disabled = input<boolean>(false);\r\n readonly fullWidth = input<boolean>(false);\r\n readonly startIcon = input<string>();\r\n readonly endIcon = input<string>();\r\n readonly loading = input<boolean>(false);\r\n readonly loadingIndicator = input<ButtonLoadingIndicator>('spinner');\r\n readonly loadingPosition = input<ButtonLoadingPosition>('center');\r\n readonly rounded = input<boolean>(false);\r\n\r\n readonly clicked = output<MouseEvent>();\r\n\r\n get isCustomText(): boolean {\r\n return this.loadingIndicator() !== 'spinner';\r\n }\r\n\r\n get iconSizeClass(): string {\r\n switch (this.size()) {\r\n case 'small':\r\n return 'btn-icon--sm';\r\n case 'large':\r\n return 'btn-icon--lg';\r\n default:\r\n return 'btn-icon--md';\r\n }\r\n }\r\n\r\n get showStartIcon(): boolean {\r\n if (!this.startIcon()) return false;\r\n if (!this.loading()) return true;\r\n return this.loadingPosition() === 'end' && !this.isCustomText;\r\n }\r\n\r\n get showEndIcon(): boolean {\r\n if (!this.endIcon()) return false;\r\n if (!this.loading()) return true;\r\n return this.loadingPosition() === 'start' && !this.isCustomText;\r\n }\r\n\r\n get sanitizedStartIcon(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.startIcon() ?? '');\r\n }\r\n\r\n get sanitizedEndIcon(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.endIcon() ?? '');\r\n }\r\n\r\n get buttonClasses(): string {\r\n const classes = ['btn'];\r\n\r\n const variant = this.variant();\r\n const color = this.color();\r\n\r\n // Variant + color mapping\r\n if (variant === 'contained') {\r\n classes.push(`btn-${color}`);\r\n }\r\n\r\n if (variant === 'outline') {\r\n classes.push(`btn-outline-${color}`);\r\n }\r\n\r\n if (variant === 'text') {\r\n classes.push(`btn-text-${color}`);\r\n }\r\n\r\n // Size\r\n switch (this.size()) {\r\n case 'small':\r\n classes.push('btn-sm');\r\n break;\r\n case 'large':\r\n classes.push('btn-lg');\r\n break;\r\n default:\r\n classes.push('btn-md');\r\n }\r\n\r\n if (this.fullWidth()) {\r\n classes.push('btn-full-width');\r\n }\r\n\r\n if (this.rounded()) {\r\n classes.push('btn-rounded');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled() && !this.loading()) {\r\n this.clicked.emit(event);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type CheckboxColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type CheckboxSize = 'small' | 'medium';\r\n\r\nexport type CheckboxLabelPlacement =\r\n | 'start'\r\n | 'end'\r\n | 'top'\r\n | 'bottom';\r\n\r\nconst INDETERMINATE_SVG =\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">' +\r\n '<path d=\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-2 10H7v-2h10v2z\"/>' +\r\n '</svg>';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-checkbox',\r\n standalone: true,\r\n styleUrls: ['./checkbox.styles.css'],\r\n template: `\r\n <label [class]=\"checkboxClasses()\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-input\"\r\n [checked]=\"_isChecked()\"\r\n [disabled]=\"disabled()\"\r\n [indeterminate]=\"indeterminate()\"\r\n (change)=\"onToggle()\"\r\n />\r\n <span\r\n class=\"checkbox-icon\"\r\n [innerHTML]=\"currentIcon()\"\r\n ></span>\r\n <span class=\"checkbox-label\">\r\n <ng-content />\r\n </span>\r\n </label>\r\n `,\r\n})\r\nexport class CheckboxComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly icon = input.required<string>();\r\n readonly checkedIcon = input.required<string>();\r\n readonly checked = input<boolean>(false);\r\n readonly defaultChecked = input<boolean>(false);\r\n readonly color = input<CheckboxColor>('primary');\r\n readonly size = input<CheckboxSize>('medium');\r\n readonly disabled = input<boolean>(false);\r\n readonly indeterminate = input<boolean>(false);\r\n readonly labelPlacement =\r\n input<CheckboxLabelPlacement>('end');\r\n\r\n readonly changed = output<boolean>();\r\n\r\n protected readonly _isChecked = signal(false);\r\n\r\n private _isFirstSync = true;\r\n\r\n private readonly _syncChecked = effect(() => {\r\n const checked = this.checked();\r\n if (this._isFirstSync) {\r\n this._isFirstSync = false;\r\n this._isChecked.set(checked || this.defaultChecked());\r\n } else {\r\n this._isChecked.set(checked);\r\n }\r\n });\r\n\r\n protected readonly checkboxClasses = computed(() => {\r\n const s = this.size() === 'small' ? 'sm' : 'md';\r\n const parts = [\r\n 'checkbox',\r\n `checkbox-${s}`,\r\n `checkbox-color-${this.color()}`,\r\n `checkbox-label-${this.labelPlacement()}`,\r\n ];\r\n\r\n if (this._isChecked()) {\r\n parts.push('checkbox-checked');\r\n }\r\n if (this.disabled()) {\r\n parts.push('checkbox-disabled');\r\n }\r\n if (this.indeterminate()) {\r\n parts.push('checkbox-indeterminate');\r\n }\r\n\r\n return parts.join(' ');\r\n });\r\n\r\n protected readonly currentIcon = computed<SafeHtml>(() => {\r\n let svg: string;\r\n\r\n if (this.indeterminate()) {\r\n svg = INDETERMINATE_SVG;\r\n } else if (this._isChecked()) {\r\n svg = this.checkedIcon();\r\n } else {\r\n svg = this.icon();\r\n }\r\n\r\n return this._sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n\r\n onToggle(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n const next = !this._isChecked();\r\n this._isChecked.set(next);\r\n this.changed.emit(next);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type IconButtonColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'dark';\r\nexport type IconButtonSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n selector: 'ls-icon-button',\r\n standalone: true,\r\n template: `\r\n <button\r\n [type]=\"type()\"\r\n [disabled]=\"disabled() || loading()\"\r\n [class]=\"buttonClasses\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.aria-busy]=\"loading() || null\"\r\n (click)=\"onClick($event)\">\r\n @if (loading()) {\r\n <svg class=\"icon-btn-spinner\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <circle\r\n class=\"icon-btn-spinner-circle\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\" />\r\n <path\r\n class=\"icon-btn-spinner-path\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\r\n </svg>\r\n } @else {\r\n <span class=\"icon-btn-icon\" [innerHTML]=\"sanitizedIcon\"></span>\r\n }\r\n </button>\r\n `,\r\n styleUrls: ['./icon-button.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconButtonComponent {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n readonly icon = input.required<string>();\r\n readonly ariaLabel = input.required<string>();\r\n readonly color = input<IconButtonColor>('primary');\r\n readonly size = input<IconButtonSize>('medium');\r\n readonly type = input<'button' | 'submit' | 'reset'>('button');\r\n readonly disabled = input<boolean>(false);\r\n readonly loading = input<boolean>(false);\r\n\r\n readonly clicked = output<MouseEvent>();\r\n\r\n get sanitizedIcon(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.icon());\r\n }\r\n\r\n get buttonClasses(): string {\r\n const classes = ['icon-btn'];\r\n\r\n classes.push(`icon-btn-${this.color()}`);\r\n\r\n switch (this.size()) {\r\n case 'small':\r\n classes.push('icon-btn-sm');\r\n break;\r\n case 'large':\r\n classes.push('icon-btn-lg');\r\n break;\r\n default:\r\n classes.push('icon-btn-md');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled() && !this.loading()) {\r\n this.clicked.emit(event);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n forwardRef,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type RadioButtonColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type RadioButtonSize = 'small' | 'medium';\r\n\r\nexport type RadioButtonLabelPlacement =\r\n | 'start'\r\n | 'end'\r\n | 'top'\r\n | 'bottom';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n selector: 'ls-radio-button',\r\n standalone: true,\r\n styleUrls: ['./radio-button.styles.css'],\r\n template: `\r\n <label [class]=\"radioClasses()\">\r\n <button\r\n type=\"button\"\r\n role=\"radio\"\r\n class=\"radio-indicator\"\r\n [attr.aria-checked]=\"_isChecked()\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n (click)=\"onToggle()\"\r\n (keydown.space)=\"onToggle(); $event.preventDefault()\"\r\n (keydown.enter)=\"onToggle(); $event.preventDefault()\">\r\n </button>\r\n <span class=\"radio-label\">\r\n <ng-content />\r\n </span>\r\n </label>\r\n `,\r\n})\r\nexport class RadioButtonComponent\r\n implements ControlValueAccessor\r\n{\r\n public readonly checked = input<boolean>(false);\r\n public readonly color = input<RadioButtonColor>('primary');\r\n public readonly size = input<RadioButtonSize>('medium');\r\n public readonly disabled = input<boolean>(false);\r\n public readonly labelPlacement =\r\n input<RadioButtonLabelPlacement>('end');\r\n\r\n public readonly changed = output<boolean>();\r\n\r\n protected readonly _isChecked = signal(false);\r\n protected readonly _isDisabledByCva = signal(false);\r\n\r\n private _onChange: (val: boolean) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n\r\n private readonly _syncChecked = effect(() => {\r\n this._isChecked.set(this.checked());\r\n });\r\n\r\n protected readonly radioClasses = computed(() => {\r\n const s = this.size() === 'small' ? 'sm' : 'md';\r\n const parts = [\r\n 'radio',\r\n `radio-${s}`,\r\n `radio-color-${this.color()}`,\r\n `radio-label-${this.labelPlacement()}`,\r\n ];\r\n\r\n if (this._isChecked()) {\r\n parts.push('radio-checked');\r\n }\r\n if (this.isEffectivelyDisabled()) {\r\n parts.push('radio-disabled');\r\n }\r\n\r\n return parts.join(' ');\r\n });\r\n\r\n protected readonly isEffectivelyDisabled = computed(\r\n () => this.disabled() || this._isDisabledByCva()\r\n );\r\n\r\n onToggle(): void {\r\n if (this.isEffectivelyDisabled()) {\r\n return;\r\n }\r\n\r\n const isNext = !this._isChecked();\r\n this._isChecked.set(isNext);\r\n this.changed.emit(isNext);\r\n this._onChange(isNext);\r\n this._onTouched();\r\n }\r\n\r\n writeValue(value: boolean): void {\r\n this._isChecked.set(!!value);\r\n }\r\n\r\n registerOnChange(fn: (val: boolean) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._isDisabledByCva.set(isDisabled);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n Renderer2,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nexport type SliderColor =\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type SliderSize = 'small' | 'medium';\r\nexport type SliderValueLabelDisplay = 'auto' | 'off' | 'on';\r\nexport interface SliderMark {\r\n value: number;\r\n label?: string;\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-slider',\r\n standalone: true,\r\n styleUrls: ['./slider.styles.css'],\r\n template: `\r\n <div\r\n [class]=\"_containerClasses()\"\r\n (mousedown)=\"_onRailMouseDown($event)\"\r\n (touchstart)=\"_onRailTouchStart($event)\"\r\n #railRef>\r\n <div class=\"ls-slider__rail\"></div>\r\n\r\n <div\r\n class=\"ls-slider__track\"\r\n [style.left]=\"_trackFillStyle().left\"\r\n [style.width]=\"_trackFillStyle().width\">\r\n </div>\r\n\r\n @for (mark of _normalizedMarks(); track mark.value) {\r\n <span\r\n class=\"ls-slider__mark\"\r\n [class.ls-slider__mark--active]=\"\r\n _isMarkActive(mark.value)\r\n \"\r\n [style.left]=\"_getMarkPosition(mark.value) + '%'\">\r\n </span>\r\n @if (mark.label) {\r\n <span\r\n class=\"ls-slider__mark-label\"\r\n [style.left]=\"\r\n _getMarkPosition(mark.value) + '%'\r\n \">\r\n {{ mark.label }}\r\n </span>\r\n }\r\n }\r\n\r\n @for (pos of _thumbPositions(); track $index) {\r\n <span\r\n class=\"ls-slider__thumb\"\r\n [class.ls-slider__thumb--active]=\"\r\n _isDragging() && _activeThumbIndex() === $index\r\n \"\r\n [style.left]=\"pos + '%'\"\r\n [attr.role]=\"'slider'\"\r\n [attr.aria-valuenow]=\"_getThumbValue($index)\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-disabled]=\"disabled()\"\r\n [attr.tabindex]=\"disabled() ? -1 : 0\"\r\n (mousedown)=\"_onThumbMouseDown($event, $index)\"\r\n (touchstart)=\"_onThumbTouchStart($event, $index)\"\r\n (keydown)=\"_onKeyDown($event, $index)\">\r\n @if (\r\n valueLabelDisplay() === 'on' ||\r\n (valueLabelDisplay() === 'auto' &&\r\n _isDragging() &&\r\n _activeThumbIndex() === $index)\r\n ) {\r\n <span class=\"ls-slider__value-label\">\r\n {{ _getThumbValue($index) }}\r\n </span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class SliderComponent {\r\n private readonly _renderer = inject(Renderer2);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private readonly _elementRef = inject(ElementRef);\r\n\r\n readonly value = model<number | number[]>(0);\r\n readonly defaultValue = input<number | number[]>();\r\n readonly min = input<number>(0);\r\n readonly max = input<number>(100);\r\n readonly step = input<number | null>(1);\r\n readonly marks = input<boolean | SliderMark[]>(false);\r\n readonly color = input<SliderColor>('primary');\r\n readonly size = input<SliderSize>('medium');\r\n readonly orientation = input<'horizontal'>('horizontal');\r\n readonly disabled = input<boolean>(false);\r\n readonly valueLabelDisplay =\r\n input<SliderValueLabelDisplay>('auto');\r\n\r\n readonly onChange = output<number | number[]>();\r\n\r\n private readonly _railRef =\r\n viewChild<ElementRef>('railRef');\r\n\r\n readonly _activeThumbIndex = signal<0 | 1>(0);\r\n readonly _isDragging = signal<boolean>(false);\r\n\r\n private _cleanupMouseMove: (() => void) | null = null;\r\n private _cleanupMouseUp: (() => void) | null = null;\r\n private _cleanupTouchMove: (() => void) | null = null;\r\n private _cleanupTouchEnd: (() => void) | null = null;\r\n private _cachedRect: DOMRect | null = null;\r\n\r\n readonly _isRange = computed(() =>\r\n Array.isArray(this.value()),\r\n );\r\n\r\n readonly _values = computed<[number, number]>(() => {\r\n const v = this.value();\r\n if (Array.isArray(v)) return [v[0], v[1]];\r\n return [this.min(), v];\r\n });\r\n\r\n readonly _normalizedMarks = computed<SliderMark[]>(\r\n () => {\r\n const m = this.marks();\r\n if (m === false) return [];\r\n if (Array.isArray(m)) return m;\r\n const marks: SliderMark[] = [];\r\n const s = this.step() ?? 1;\r\n for (\r\n let v = this.min();\r\n v <= this.max();\r\n v += s\r\n ) {\r\n marks.push({ value: v });\r\n }\r\n return marks;\r\n },\r\n );\r\n\r\n readonly _trackFillStyle = computed(() => {\r\n const [v0, v1] = this._values();\r\n const range = this.max() - this.min();\r\n if (range <= 0)\r\n return { left: '0%', width: '0%' };\r\n const left =\r\n ((v0 - this.min()) / range) * 100;\r\n const width = ((v1 - v0) / range) * 100;\r\n if (this._isRange()) {\r\n return {\r\n left: `${left}%`,\r\n width: `${width}%`,\r\n };\r\n }\r\n return {\r\n left: '0%',\r\n width: `${left + width}%`,\r\n };\r\n });\r\n\r\n readonly _thumbPositions = computed<number[]>(\r\n () => {\r\n const [v0, v1] = this._values();\r\n const range = this.max() - this.min();\r\n if (range <= 0)\r\n return this._isRange() ? [0, 0] : [0];\r\n if (this._isRange()) {\r\n return [\r\n ((v0 - this.min()) / range) * 100,\r\n ((v1 - this.min()) / range) * 100,\r\n ];\r\n }\r\n return [((v1 - this.min()) / range) * 100];\r\n },\r\n );\r\n\r\n readonly _containerClasses = computed(() => {\r\n const classes = ['ls-slider'];\r\n classes.push(`ls-slider--${this.color()}`);\r\n classes.push(`ls-slider--${this.size()}`);\r\n if (this.disabled())\r\n classes.push('ls-slider--disabled');\r\n if (this._isDragging())\r\n classes.push('ls-slider--active');\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(\r\n () => {\r\n const dv = this.defaultValue();\r\n if (dv !== undefined && this.value() === 0) {\r\n this.value.set(dv);\r\n }\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n this._destroyRef.onDestroy(() => {\r\n this._removeGlobalListeners();\r\n });\r\n }\r\n\r\n _isMarkActive(markValue: number): boolean {\r\n const [v0, v1] = this._values();\r\n if (this._isRange()) {\r\n return markValue >= v0 && markValue <= v1;\r\n }\r\n return markValue <= v1;\r\n }\r\n\r\n _getMarkPosition(markValue: number): number {\r\n const range = this.max() - this.min();\r\n if (range <= 0) return 0;\r\n return (\r\n ((markValue - this.min()) / range) * 100\r\n );\r\n }\r\n\r\n _getThumbValue(thumbIndex: number): number {\r\n const v = this.value();\r\n if (Array.isArray(v)) {\r\n return v[thumbIndex];\r\n }\r\n return v;\r\n }\r\n\r\n _onRailMouseDown(event: MouseEvent): void {\r\n if (this.disabled()) return;\r\n event.preventDefault();\r\n this._startDrag(event.clientX);\r\n }\r\n\r\n _onThumbMouseDown(\r\n event: MouseEvent,\r\n thumbIndex: number,\r\n ): void {\r\n if (this.disabled()) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._activeThumbIndex.set(\r\n thumbIndex as 0 | 1,\r\n );\r\n this._startMouseDrag(event.clientX);\r\n }\r\n\r\n _onRailTouchStart(event: TouchEvent): void {\r\n if (this.disabled()) return;\r\n if (event.touches.length === 0) return;\r\n event.preventDefault();\r\n this._startTouchDrag(\r\n event.touches[0].clientX,\r\n );\r\n }\r\n\r\n _onThumbTouchStart(\r\n event: TouchEvent,\r\n thumbIndex: number,\r\n ): void {\r\n if (this.disabled()) return;\r\n if (event.touches.length === 0) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._activeThumbIndex.set(\r\n thumbIndex as 0 | 1,\r\n );\r\n this._startTouchDrag(\r\n event.touches[0].clientX,\r\n );\r\n }\r\n\r\n _onKeyDown(\r\n event: KeyboardEvent,\r\n thumbIndex: number,\r\n ): void {\r\n if (this.disabled()) return;\r\n const s = this.step() ?? 1;\r\n let handled = false;\r\n\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n this._adjustThumbValue(thumbIndex, s);\r\n handled = true;\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n this._adjustThumbValue(thumbIndex, -s);\r\n handled = true;\r\n break;\r\n case 'Home':\r\n this._setThumbValue(\r\n thumbIndex,\r\n this.min(),\r\n );\r\n handled = true;\r\n break;\r\n case 'End':\r\n this._setThumbValue(\r\n thumbIndex,\r\n this.max(),\r\n );\r\n handled = true;\r\n break;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.onChange.emit(this.value());\r\n }\r\n }\r\n\r\n private _startDrag(clientX: number): void {\r\n this._cacheRect();\r\n if (this._isRange() && this._cachedRect) {\r\n const clickValue = this._positionToValue(\r\n clientX,\r\n this._cachedRect,\r\n );\r\n const [v0, v1] = this._values();\r\n const dist0 = Math.abs(clickValue - v0);\r\n const dist1 = Math.abs(clickValue - v1);\r\n this._activeThumbIndex.set(\r\n dist0 <= dist1 ? 0 : 1,\r\n );\r\n }\r\n this._startMouseDrag(clientX);\r\n }\r\n\r\n private _startMouseDrag(clientX: number): void {\r\n this._cacheRect();\r\n this._isDragging.set(true);\r\n this._updateValueFromPosition(clientX);\r\n\r\n this._cleanupMouseMove =\r\n this._renderer.listen(\r\n 'window',\r\n 'mousemove',\r\n (e: MouseEvent) => {\r\n this._updateValueFromPosition(\r\n e.clientX,\r\n );\r\n },\r\n );\r\n\r\n this._cleanupMouseUp = this._renderer.listen(\r\n 'window',\r\n 'mouseup',\r\n () => {\r\n this._endDrag();\r\n },\r\n );\r\n }\r\n\r\n private _startTouchDrag(clientX: number): void {\r\n this._cacheRect();\r\n if (this._isRange() && this._cachedRect) {\r\n const clickValue = this._positionToValue(\r\n clientX,\r\n this._cachedRect,\r\n );\r\n const [v0, v1] = this._values();\r\n const dist0 = Math.abs(clickValue - v0);\r\n const dist1 = Math.abs(clickValue - v1);\r\n this._activeThumbIndex.set(\r\n dist0 <= dist1 ? 0 : 1,\r\n );\r\n }\r\n this._isDragging.set(true);\r\n this._updateValueFromPosition(clientX);\r\n\r\n this._cleanupTouchMove =\r\n this._renderer.listen(\r\n 'window',\r\n 'touchmove',\r\n (e: TouchEvent) => {\r\n if (e.touches.length > 0) {\r\n this._updateValueFromPosition(\r\n e.touches[0].clientX,\r\n );\r\n }\r\n },\r\n );\r\n\r\n this._cleanupTouchEnd =\r\n this._renderer.listen(\r\n 'window',\r\n 'touchend',\r\n () => {\r\n this._endDrag();\r\n },\r\n );\r\n }\r\n\r\n private _endDrag(): void {\r\n this._isDragging.set(false);\r\n this._removeGlobalListeners();\r\n this._cachedRect = null;\r\n this.onChange.emit(this.value());\r\n }\r\n\r\n private _updateValueFromPosition(\r\n clientX: number,\r\n ): void {\r\n if (!this._cachedRect) return;\r\n const newValue = this._positionToValue(\r\n clientX,\r\n this._cachedRect,\r\n );\r\n const idx = this._activeThumbIndex();\r\n\r\n if (this._isRange()) {\r\n const current = this.value() as number[];\r\n const updated = [...current];\r\n updated[idx] = newValue;\r\n if (idx === 0 && updated[0] > updated[1]) {\r\n updated[0] = updated[1];\r\n }\r\n if (idx === 1 && updated[1] < updated[0]) {\r\n updated[1] = updated[0];\r\n }\r\n this.value.set(updated);\r\n } else {\r\n this.value.set(newValue);\r\n }\r\n }\r\n\r\n private _adjustThumbValue(\r\n thumbIndex: number,\r\n delta: number,\r\n ): void {\r\n if (this._isRange()) {\r\n const current = this.value() as number[];\r\n const updated = [...current];\r\n updated[thumbIndex] = this._quantize(\r\n updated[thumbIndex] + delta,\r\n );\r\n if (\r\n thumbIndex === 0 &&\r\n updated[0] > updated[1]\r\n ) {\r\n updated[0] = updated[1];\r\n }\r\n if (\r\n thumbIndex === 1 &&\r\n updated[1] < updated[0]\r\n ) {\r\n updated[1] = updated[0];\r\n }\r\n this.value.set(updated);\r\n } else {\r\n this.value.set(\r\n this._quantize(\r\n (this.value() as number) + delta,\r\n ),\r\n );\r\n }\r\n }\r\n\r\n private _setThumbValue(\r\n thumbIndex: number,\r\n newValue: number,\r\n ): void {\r\n if (this._isRange()) {\r\n const current = this.value() as number[];\r\n const updated = [...current];\r\n updated[thumbIndex] =\r\n this._quantize(newValue);\r\n if (\r\n thumbIndex === 0 &&\r\n updated[0] > updated[1]\r\n ) {\r\n updated[0] = updated[1];\r\n }\r\n if (\r\n thumbIndex === 1 &&\r\n updated[1] < updated[0]\r\n ) {\r\n updated[1] = updated[0];\r\n }\r\n this.value.set(updated);\r\n } else {\r\n this.value.set(this._quantize(newValue));\r\n }\r\n }\r\n\r\n private _positionToValue(\r\n clientX: number,\r\n rect: DOMRect,\r\n ): number {\r\n const percent = Math.max(\r\n 0,\r\n Math.min(\r\n 1,\r\n (clientX - rect.left) / rect.width,\r\n ),\r\n );\r\n return this._quantize(\r\n this.min() +\r\n percent * (this.max() - this.min()),\r\n );\r\n }\r\n\r\n private _quantize(raw: number): number {\r\n const s = this.step();\r\n if (s === null)\r\n return Math.min(\r\n this.max(),\r\n Math.max(this.min(), raw),\r\n );\r\n return Math.min(\r\n this.max(),\r\n Math.max(\r\n this.min(),\r\n this.min() +\r\n Math.round((raw - this.min()) / s) * s,\r\n ),\r\n );\r\n }\r\n\r\n private _cacheRect(): void {\r\n const railEl = this._railRef();\r\n if (railEl) {\r\n this._cachedRect =\r\n railEl.nativeElement.getBoundingClientRect();\r\n }\r\n }\r\n\r\n private _removeGlobalListeners(): void {\r\n this._cleanupMouseMove?.();\r\n this._cleanupMouseMove = null;\r\n this._cleanupMouseUp?.();\r\n this._cleanupMouseUp = null;\r\n this._cleanupTouchMove?.();\r\n this._cleanupTouchMove = null;\r\n this._cleanupTouchEnd?.();\r\n this._cleanupTouchEnd = null;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type SwitchColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type SwitchSize = 'small' | 'medium';\r\n\r\nexport type SwitchVariant = 'solid' | 'outlined';\r\n\r\nexport type SwitchLabelPlacement =\r\n | 'start'\r\n | 'end'\r\n | 'top'\r\n | 'bottom';\r\n\r\nconst CHECK_SVG =\r\n '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">' +\r\n '<path d=\"M3.5 6L5.5 8L8.5 4\" stroke=\"currentColor\" ' +\r\n 'stroke-width=\"2\" stroke-linecap=\"round\" ' +\r\n 'stroke-linejoin=\"round\"/></svg>';\r\n\r\nconst CLOSE_SVG =\r\n '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">' +\r\n '<path d=\"M3.5 3.5L8.5 8.5M8.5 3.5L3.5 8.5\" ' +\r\n 'stroke=\"currentColor\" stroke-width=\"2\" ' +\r\n 'stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-switch',\r\n standalone: true,\r\n styleUrls: ['./switch.styles.css'],\r\n template: `\r\n <label [class]=\"switchClasses()\">\r\n <button\r\n type=\"button\"\r\n role=\"switch\"\r\n class=\"switch-track\"\r\n [attr.aria-checked]=\"_isChecked()\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onToggle()\"\r\n (keydown.space)=\"onToggle(); $event.preventDefault()\"\r\n (keydown.enter)=\"onToggle(); $event.preventDefault()\">\r\n <span class=\"switch-thumb\">\r\n @if (icon()) {\r\n <span\r\n class=\"switch-icon\"\r\n [innerHTML]=\"currentIcon()\"\r\n ></span>\r\n }\r\n </span>\r\n </button>\r\n <span class=\"switch-label\">\r\n <ng-content />\r\n </span>\r\n </label>\r\n `,\r\n})\r\nexport class SwitchComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n public readonly checked = input<boolean>(false);\r\n public readonly defaultChecked = input<boolean>(false);\r\n public readonly color = input<SwitchColor>('primary');\r\n public readonly size = input<SwitchSize>('medium');\r\n public readonly disabled = input<boolean>(false);\r\n public readonly icon = input<boolean>(false);\r\n public readonly variant = input<SwitchVariant>('solid');\r\n public readonly labelPlacement =\r\n input<SwitchLabelPlacement>('end');\r\n\r\n public readonly changed = output<boolean>();\r\n\r\n protected readonly _isChecked = signal(false);\r\n\r\n private _isFirstSync = true;\r\n\r\n private readonly _syncChecked = effect(() => {\r\n const isChecked = this.checked();\r\n if (this._isFirstSync) {\r\n this._isFirstSync = false;\r\n this._isChecked.set(\r\n isChecked || this.defaultChecked()\r\n );\r\n } else {\r\n this._isChecked.set(isChecked);\r\n }\r\n });\r\n\r\n protected readonly switchClasses = computed(() => {\r\n const s = this.size() === 'small' ? 'sm' : 'md';\r\n const parts = [\r\n 'switch',\r\n `switch-${s}`,\r\n `switch-color-${this.color()}`,\r\n `switch-${this.variant()}`,\r\n `switch-label-${this.labelPlacement()}`,\r\n ];\r\n\r\n if (this._isChecked()) {\r\n parts.push('switch-checked');\r\n }\r\n if (this.disabled()) {\r\n parts.push('switch-disabled');\r\n }\r\n\r\n return parts.join(' ');\r\n });\r\n\r\n protected readonly currentIcon = computed<SafeHtml>(\r\n () => {\r\n const svg = this._isChecked()\r\n ? CHECK_SVG\r\n : CLOSE_SVG;\r\n return this._sanitizer.bypassSecurityTrustHtml(\r\n svg\r\n );\r\n }\r\n );\r\n\r\n onToggle(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n const isNext = !this._isChecked();\r\n this._isChecked.set(isNext);\r\n this.changed.emit(isNext);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\n\r\nexport type LinkVariant =\r\n | 'h1'\r\n | 'h2'\r\n | 'h3'\r\n | 'h4'\r\n | 'h5'\r\n | 'h6'\r\n | 'body1'\r\n | 'body2'\r\n | 'subtitle1'\r\n | 'subtitle2'\r\n | 'overline'\r\n | 'caption'\r\n | 'button'\r\n | 'inherit';\r\n\r\nexport type LinkAlign =\r\n | 'center'\r\n | 'inherit'\r\n | 'justify'\r\n | 'left'\r\n | 'right';\r\n\r\nexport type LinkColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type LinkUnderline = 'always' | 'hover' | 'none';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-link',\r\n standalone: true,\r\n styleUrls: ['./link.styles.css'],\r\n template: `\r\n <a\r\n [attr.href]=\"href() || null\"\r\n [attr.rel]=\"safeRel() || null\"\r\n [attr.target]=\"target() || null\"\r\n [class]=\"linkClasses()\"\r\n >\r\n <ng-content />\r\n </a>\r\n `,\r\n})\r\nexport class LinkComponent {\r\n readonly variant = input<LinkVariant>('inherit');\r\n readonly align = input<LinkAlign>('inherit');\r\n readonly color = input<LinkColor>('primary');\r\n readonly href = input<string>('');\r\n readonly underline = input<LinkUnderline>('always');\r\n readonly target = input<string>('');\r\n readonly rel = input<string>('');\r\n\r\n protected readonly linkClasses = computed(() => {\r\n const v = this.variant();\r\n const c = this.color();\r\n const a = this.align();\r\n const u = this.underline();\r\n return `link text text-${v} link-color-${c} text-align-${a} link-underline-${u}`;\r\n });\r\n\r\n protected readonly safeRel = computed(() => {\r\n const t = this.target();\r\n const r = this.rel();\r\n\r\n if (t !== '_blank') {\r\n return r;\r\n }\r\n\r\n if (!r) {\r\n return 'noopener';\r\n }\r\n\r\n const lower = r.toLowerCase();\r\n if (lower.includes('noopener') || lower.includes('noreferrer')) {\r\n return r;\r\n }\r\n\r\n return `${r} noopener`;\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n computed,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nexport type TextVariant =\r\n | 'h1'\r\n | 'h2'\r\n | 'h3'\r\n | 'h4'\r\n | 'h5'\r\n | 'h6'\r\n | 'body1'\r\n | 'body2'\r\n | 'subtitle1'\r\n | 'subtitle2'\r\n | 'caption'\r\n | 'overline'\r\n | 'button'\r\n | 'inherit';\r\n\r\nexport type TextColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'dark';\r\nexport type TextAlign = 'center' | 'inherit' | 'justify' | 'left' | 'right';\r\n\r\n@Component({\r\n selector: 'ls-text',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n styleUrls: ['./text.styles.css'],\r\n template: `\r\n <ng-template #content>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n\r\n @switch (variant()) {\r\n @case ('h1') {\r\n <h1 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h1>\r\n }\r\n @case ('h2') {\r\n <h2 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h2>\r\n }\r\n @case ('h3') {\r\n <h3 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h3>\r\n }\r\n @case ('h4') {\r\n <h4 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h4>\r\n }\r\n @case ('h5') {\r\n <h5 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h5>\r\n }\r\n @case ('h6') {\r\n <h6 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h6>\r\n }\r\n @case ('body1') {\r\n <p [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </p>\r\n }\r\n @case ('body2') {\r\n <p [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </p>\r\n }\r\n @case ('subtitle1') {\r\n <h6 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h6>\r\n }\r\n @case ('subtitle2') {\r\n <h6 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h6>\r\n }\r\n @case ('caption') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @case ('overline') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @case ('button') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @case ('inherit') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @default {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n }\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextComponent {\r\n readonly variant = input<TextVariant>('h1');\r\n readonly color = input<TextColor>('inherit');\r\n readonly align = input<TextAlign>('inherit');\r\n\r\n protected readonly textClasses = computed(() => {\r\n return `text text-${this.variant()} text-color-${this.color()} text-align-${this.align()}`;\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type TagVariant = 'filled' | 'outlined' | 'soft' | 'inverted';\r\nexport type TagColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-tag',\r\n standalone: true,\r\n styleUrls: ['./tag.styles.css'],\r\n template: `\r\n <span [class]=\"tagClasses\">\r\n @if (startIcon()) {\r\n <span\r\n class=\"tag-icon tag-icon--start\"\r\n [innerHTML]=\"sanitizedStartIcon\"></span>\r\n }\r\n <ng-content />\r\n @if (endIcon()) {\r\n <span\r\n class=\"tag-icon tag-icon--end\"\r\n [innerHTML]=\"sanitizedEndIcon\"></span>\r\n }\r\n </span>\r\n `,\r\n})\r\nexport class TagComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly variant = input<TagVariant>('filled');\r\n readonly color = input<TagColor>('primary');\r\n readonly startIcon = input<string>();\r\n readonly endIcon = input<string>();\r\n\r\n get sanitizedStartIcon(): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(\r\n this.startIcon() ?? ''\r\n );\r\n }\r\n\r\n get sanitizedEndIcon(): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(\r\n this.endIcon() ?? ''\r\n );\r\n }\r\n\r\n get tagClasses(): string {\r\n return `tag tag-${this.variant()}-${this.color()}`;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\n\r\nexport type BadgeSeverity =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'warning'\r\n | 'error'\r\n | 'info';\r\nexport type BadgeVariant = 'solid' | 'outlined' | 'dot';\r\nexport type BadgePosition =\r\n | 'top-right'\r\n | 'top-left'\r\n | 'bottom-right'\r\n | 'bottom-left';\r\nexport type BadgeOverlap = 'circular' | 'rectangular';\r\n\r\n@Component({\r\n selector: 'ls-badge',\r\n standalone: true,\r\n template: `\r\n <div class=\"badge-wrapper\">\r\n <ng-content />\r\n @if (!isHidden()) {\r\n <span\r\n [class]=\"badgeClasses()\"\r\n role=\"status\"\r\n [attr.aria-label]=\"ariaLabelText()\">\r\n @if (variant() !== 'dot') {\r\n {{ formattedContent() }}\r\n }\r\n </span>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./badge.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BadgeComponent {\r\n readonly badgeContent =\r\n input<string | number | undefined>(undefined);\r\n readonly max = input<number>(99);\r\n readonly severity = input<BadgeSeverity>('error');\r\n readonly variant = input<BadgeVariant>('solid');\r\n readonly badgePosition =\r\n input<BadgePosition>('top-right');\r\n readonly overlap = input<BadgeOverlap>('rectangular');\r\n readonly isHidden = input<boolean>(false);\r\n\r\n readonly formattedContent = computed(() => {\r\n const raw = this.badgeContent();\r\n if (raw === undefined || raw === null) return '';\r\n if (typeof raw === 'number') {\r\n return raw > this.max()\r\n ? `${this.max()}+`\r\n : String(raw);\r\n }\r\n return String(raw);\r\n });\r\n\r\n readonly badgeClasses = computed(() => {\r\n const classes = ['badge'];\r\n classes.push(`badge-${this.severity()}`);\r\n classes.push(`badge-${this.variant()}`);\r\n classes.push(`badge-${this.badgePosition()}`);\r\n classes.push(`badge-overlap-${this.overlap()}`);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly ariaLabelText = computed(() => {\r\n if (this.variant() === 'dot') {\r\n return 'status indicator';\r\n }\r\n const formatted = this.formattedContent();\r\n return formatted || 'badge';\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport type ChipVariant = 'filled' | 'outlined';\r\nexport type ChipColor =\r\n | 'default'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type ChipSize = 'small' | 'medium';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-chip',\r\n standalone: true,\r\n styleUrls: ['./chip.styles.css'],\r\n template: `\r\n <span\r\n [class]=\"chipClasses()\"\r\n [attr.role]=\"clickable() ? 'button' : null\"\r\n [attr.tabindex]=\"clickable() && !disabled() ? 0 : null\"\r\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\r\n (click)=\"handleClick($event)\"\r\n (keydown)=\"handleKeydown($event)\">\r\n\r\n @if (avatar()) {\r\n <img\r\n class=\"chip-avatar\"\r\n [src]=\"avatar()\"\r\n [alt]=\"label()\"\r\n aria-hidden=\"true\" />\r\n } @else if (icon()) {\r\n <span\r\n class=\"chip-icon\"\r\n [innerHTML]=\"sanitizedIcon()\"\r\n aria-hidden=\"true\"></span>\r\n }\r\n\r\n <span class=\"chip-label\">{{ label() }}</span>\r\n\r\n @if (deleteIcon() && !disabled()) {\r\n <button\r\n class=\"chip-delete\"\r\n aria-label=\"Remove\"\r\n tabindex=\"-1\"\r\n (click)=\"handleDelete($event)\">\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"currentColor\"\r\n class=\"chip-delete-svg\">\r\n <path\r\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" />\r\n </svg>\r\n </button>\r\n }\r\n </span>\r\n `,\r\n})\r\nexport class ChipComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly label = input<string>('');\r\n readonly variant = input<ChipVariant>('filled');\r\n readonly color = input<ChipColor>('default');\r\n readonly size = input<ChipSize>('medium');\r\n readonly icon = input<string | undefined>(undefined);\r\n readonly avatar = input<string | undefined>(undefined);\r\n readonly deleteIcon = input<boolean>(false);\r\n readonly disabled = input<boolean>(false);\r\n readonly clickable = input<boolean>(false);\r\n\r\n readonly onClick = output<void>();\r\n readonly onDelete = output<void>();\r\n\r\n readonly sanitizedIcon = computed(() =>\r\n this._sanitizer.bypassSecurityTrustHtml(this.icon() ?? ''),\r\n );\r\n\r\n readonly chipClasses = computed(() => {\r\n const classes = ['chip'];\r\n classes.push(`chip-${this.variant()}`);\r\n classes.push(`chip-${this.color()}`);\r\n classes.push(`chip-${this.size()}`);\r\n if (this.clickable()) classes.push('chip-clickable');\r\n if (this.disabled()) classes.push('chip-disabled');\r\n return classes.join(' ');\r\n });\r\n\r\n handleClick(event: MouseEvent) {\r\n if (this.clickable() && !this.disabled()) {\r\n this.onClick.emit();\r\n }\r\n }\r\n\r\n handleDelete(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.onDelete.emit();\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent) {\r\n if (event.key === 'Enter') {\r\n this.handleClick(event as unknown as MouseEvent);\r\n }\r\n if (\r\n (event.key === 'Delete' || event.key === 'Backspace') &&\r\n this.deleteIcon()\r\n ) {\r\n this.handleDelete(event as unknown as MouseEvent);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\n\r\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';\r\nexport type TooltipBackground =\r\n | 'primary'\r\n | 'success'\r\n | 'info'\r\n | 'danger'\r\n | 'warning'\r\n | 'secondary'\r\n | 'dark';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-tooltip',\r\n standalone: true,\r\n styleUrls: ['./tooltip.styles.css'],\r\n template: `\r\n <span\r\n class=\"ls-tooltip-trigger\"\r\n [class.ls-tooltip-disabled]=\"disabled()\"\r\n [attr.aria-describedby]=\"disabled() ? null : _tooltipId\"\r\n (mouseenter)=\"show()\"\r\n (mouseleave)=\"hide()\"\r\n (focus)=\"show()\"\r\n (blur)=\"hide()\">\r\n <ng-content />\r\n @if (_isVisible() && !disabled()) {\r\n <span\r\n [id]=\"_tooltipId\"\r\n role=\"tooltip\"\r\n [attr.aria-hidden]=\"!_isVisible()\"\r\n [class]=\"tooltipClasses\">\r\n {{ content() }}\r\n <span class=\"tooltip-arrow\"></span>\r\n </span>\r\n }\r\n </span>\r\n `,\r\n})\r\nexport class TooltipComponent {\r\n readonly content = input.required<string>();\r\n readonly placement = input<TooltipPlacement>('top');\r\n readonly backgroundClass = input<TooltipBackground>('dark');\r\n readonly disabled = input<boolean>(false);\r\n\r\n protected readonly _isVisible = signal(false);\r\n protected readonly _tooltipId = `ls-tooltip-${nextId++}`;\r\n\r\n get tooltipClasses(): string {\r\n return [\r\n 'tooltip-box',\r\n `tooltip-${this.placement()}`,\r\n `tooltip-bg-${this.backgroundClass()}`,\r\n ].join(' ');\r\n }\r\n\r\n show() {\r\n this._isVisible.set(true);\r\n }\r\n\r\n hide() {\r\n this._isVisible.set(false);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { TooltipComponent } from '../../overlay/tooltip';\r\n\r\nexport type AvatarVariant = 'circular' | 'rounded' | 'square';\r\nexport type AvatarColor =\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type AvatarSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgTemplateOutlet, TooltipComponent],\r\n selector: 'ls-avatar',\r\n standalone: true,\r\n styleUrls: ['./avatar.styles.css'],\r\n template: `\r\n @if (hasTooltip()) {\r\n <ls-tooltip [content]=\"tooltip()\">\r\n <ng-container *ngTemplateOutlet=\"avatarTpl\" />\r\n </ls-tooltip>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"avatarTpl\" />\r\n }\r\n\r\n <ng-template #avatarTpl>\r\n @if (isImageMode()) {\r\n <img\r\n [src]=\"src()\"\r\n [alt]=\"alt()\"\r\n [class]=\"containerClasses()\" />\r\n } @else if (isTextMode()) {\r\n <span\r\n role=\"img\"\r\n [attr.aria-label]=\"text()\"\r\n [class]=\"textClasses()\">\r\n {{ text() }}\r\n </span>\r\n } @else {\r\n <span\r\n role=\"img\"\r\n aria-label=\"avatar\"\r\n [class]=\"fallbackClasses()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"currentColor\"\r\n class=\"avatar-icon\">\r\n <path\r\n d=\"M12 12c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5\r\n 5 2.24 5 5 5zm0 2c-3.33 0-10 1.67-10\r\n 5v2h20v-2c0-3.33-6.67-5-10-5z\" />\r\n </svg>\r\n </span>\r\n }\r\n </ng-template>\r\n `,\r\n})\r\nexport class AvatarComponent {\r\n readonly alt = input<string>('');\r\n readonly color = input<AvatarColor>('primary');\r\n readonly size = input<AvatarSize>('medium');\r\n readonly src = input<string>('');\r\n readonly text = input<string>('');\r\n readonly tooltip = input<string>('');\r\n readonly variant = input<AvatarVariant>('circular');\r\n\r\n protected readonly containerClasses = computed(\r\n () =>\r\n `avatar avatar-${this.size()} avatar-${this.variant()}`\r\n );\r\n\r\n protected readonly fallbackClasses = computed(\r\n () =>\r\n `avatar avatar-${this.size()} avatar-${this.variant()} avatar-fallback`\r\n );\r\n\r\n protected readonly hasTooltip = computed(\r\n () => !!this.tooltip()\r\n );\r\n\r\n protected readonly isImageMode = computed(\r\n () => !!this.src()\r\n );\r\n\r\n protected readonly isTextMode = computed(\r\n () => !this.src() && !!this.text()\r\n );\r\n\r\n protected readonly textClasses = computed(\r\n () =>\r\n `avatar avatar-${this.size()} avatar-${this.variant()} avatar-color-${this.color()}`\r\n );\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewEncapsulation,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\nimport { AvatarComponent } from '../avatar';\r\nimport type { AvatarColor, AvatarSize, AvatarVariant } from '../avatar';\r\n\r\nexport interface AvatarData {\r\n alt?: string;\r\n src?: string;\r\n variant?: AvatarVariant;\r\n text?: string;\r\n color?: AvatarColor;\r\n tooltip?: string;\r\n size?: AvatarSize;\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [AvatarComponent],\r\n selector: 'ls-avatar-group',\r\n standalone: true,\r\n styleUrls: ['./avatar-group.styles.css'],\r\n template: `\r\n <div class=\"avatar-group\" role=\"group\" aria-label=\"Avatar group\">\r\n @for (avatar of visibleAvatars(); track $index) {\r\n <div\r\n class=\"avatar-group-item\"\r\n [style.z-index]=\"visibleAvatars().length - $index\">\r\n <ls-avatar\r\n [src]=\"avatar.src ?? ''\"\r\n [alt]=\"avatar.alt ?? ''\"\r\n [variant]=\"avatar.variant ?? groupVariant()\"\r\n [text]=\"avatar.text ?? ''\"\r\n [color]=\"avatar.color ?? 'primary'\"\r\n [tooltip]=\"avatar.tooltip ?? ''\"\r\n [size]=\"avatar.size ?? groupSize()\" />\r\n </div>\r\n }\r\n @if (hasOverflow()) {\r\n <div class=\"avatar-group-item\" [style.z-index]=\"0\">\r\n <ls-avatar\r\n [text]=\"overflowText()\"\r\n [variant]=\"groupVariant()\"\r\n [size]=\"groupSize()\"\r\n color=\"secondary\" />\r\n </div>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class AvatarGroupComponent {\r\n readonly avatars = input<AvatarData[]>([]);\r\n readonly maxAvatarGroup = input<number>(0);\r\n\r\n protected readonly groupSize = computed<AvatarSize>(\r\n () => this.avatars()[0]?.size ?? 'medium'\r\n );\r\n\r\n protected readonly groupVariant = computed<AvatarVariant>(\r\n () => this.avatars()[0]?.variant ?? 'circular'\r\n );\r\n\r\n protected readonly visibleAvatars = computed(() => {\r\n const max = this.maxAvatarGroup();\r\n const all = this.avatars();\r\n if (max > 0 && all.length > max) {\r\n return all.slice(0, max);\r\n }\r\n return all;\r\n });\r\n\r\n protected readonly overflowCount = computed(() => {\r\n const max = this.maxAvatarGroup();\r\n const all = this.avatars();\r\n if (max > 0 && all.length > max) {\r\n return all.length - max;\r\n }\r\n return 0;\r\n });\r\n\r\n protected readonly hasOverflow = computed(() => this.overflowCount() > 0);\r\n\r\n protected readonly overflowText = computed(() => '+' + this.overflowCount());\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\n\r\nexport type LogoSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-logo',\r\n standalone: true,\r\n styleUrls: ['./logo.styles.css'],\r\n template: `\r\n @if (hasHref()) {\r\n <a [attr.href]=\"href()\" class=\"logo-link\">\r\n <img [src]=\"src()\" [class]=\"imgClasses()\" alt=\"Logo\" />\r\n </a>\r\n } @else {\r\n <img [src]=\"src()\" [class]=\"imgClasses()\" alt=\"Logo\" />\r\n }\r\n `,\r\n})\r\nexport class LogoComponent {\r\n readonly href = input<string>('');\r\n readonly size = input<LogoSize>('medium');\r\n readonly src = input<string>('');\r\n\r\n protected readonly hasHref = computed(() => !!this.href());\r\n\r\n protected readonly imgClasses = computed(\r\n () => `logo logo-${this.size()}`,\r\n );\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\nexport type ProgressBarVariant =\r\n | 'determinate'\r\n | 'stripe'\r\n | 'animated'\r\n | 'indeterminate';\r\nexport type ProgressBarColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type ProgressBarSize =\r\n | 'small'\r\n | 'medium'\r\n | 'large'\r\n | 'extra-large';\r\nexport type ProgressBarLabelPosition = 'inside' | 'right';\r\n\r\n@Component({\r\n selector: 'ls-progress-bar',\r\n standalone: true,\r\n template: `\r\n <div class=\"progress-bar-wrapper\">\r\n <div\r\n [class]=\"trackClasses()\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"variant() === 'indeterminate' ? null : clampedValue()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [attr.aria-label]=\"labelText()\">\r\n\r\n <div\r\n [class]=\"indicatorClasses()\"\r\n [style.width]=\"indicatorWidth()\">\r\n </div>\r\n\r\n @if (showLabel() && labelPosition() === 'inside' && variant() !== 'indeterminate') {\r\n <span\r\n [class]=\"labelClasses()\"\r\n [style.left.%]=\"clampedValue()\">\r\n {{ labelText() }}\r\n </span>\r\n }\r\n </div>\r\n\r\n @if (showLabel() && labelPosition() === 'right' && variant() !== 'indeterminate') {\r\n <span [class]=\"labelClasses()\">\r\n {{ labelText() }}\r\n </span>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./progress-bar.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProgressBarComponent {\r\n readonly variant =\r\n input<ProgressBarVariant>('indeterminate');\r\n readonly color =\r\n input<ProgressBarColor>('primary');\r\n readonly value = input<number>(0);\r\n readonly showLabel = input<boolean>(false);\r\n readonly labelPosition =\r\n input<ProgressBarLabelPosition>('inside');\r\n readonly size = input<ProgressBarSize>('medium');\r\n\r\n readonly onFinished = output<void>();\r\n\r\n private readonly _sizeClassMap: Record<\r\n ProgressBarSize,\r\n string\r\n > = {\r\n small: 'progress-bar-sm',\r\n medium: 'progress-bar-md',\r\n large: 'progress-bar-lg',\r\n 'extra-large': 'progress-bar-xl',\r\n };\r\n\r\n readonly clampedValue = computed(() =>\r\n Math.min(100, Math.max(0, this.value()))\r\n );\r\n\r\n readonly trackClasses = computed(() => {\r\n const classes = ['progress-bar-track'];\r\n classes.push(this._sizeClassMap[this.size()]);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorClasses = computed(() => {\r\n const classes = ['progress-bar-indicator'];\r\n classes.push(`progress-bar-${this.color()}`);\r\n const v = this.variant();\r\n if (v === 'stripe') {\r\n classes.push('progress-bar-stripe');\r\n } else if (v === 'animated') {\r\n classes.push('progress-bar-animated');\r\n } else if (v === 'indeterminate') {\r\n classes.push('progress-bar-indeterminate');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorWidth = computed(() => {\r\n if (this.variant() === 'indeterminate') {\r\n return '100%';\r\n }\r\n return `${this.clampedValue()}%`;\r\n });\r\n\r\n readonly labelText = computed(\r\n () => `${this.clampedValue()}%`\r\n );\r\n\r\n readonly labelClasses = computed(() => {\r\n const classes = ['progress-bar-label'];\r\n if (this.labelPosition() === 'inside') {\r\n classes.push('progress-bar-label-inside');\r\n if (this.clampedValue() < 15) {\r\n classes.push('progress-bar-label-dark');\r\n } else {\r\n classes.push('progress-bar-label-light');\r\n }\r\n } else {\r\n classes.push('progress-bar-label-right');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (\r\n this.variant() !== 'indeterminate' &&\r\n this.value() >= 100\r\n ) {\r\n this.onFinished.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\nexport type LoaderVariant =\r\n | 'determinate'\r\n | 'indeterminate'\r\n | 'buffer';\r\nexport type LoaderColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type LoaderSize = 'small' | 'medium' | 'large';\r\n\r\nconst RADIUS = 20;\r\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\r\n\r\n@Component({\r\n selector: 'ls-loader',\r\n standalone: true,\r\n template: `\r\n <svg\r\n [class]=\"svgClasses()\"\r\n [attr.width]=\"svgDiameter()\"\r\n [attr.height]=\"svgDiameter()\"\r\n viewBox=\"0 0 50 50\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"\r\n variant() === 'determinate' ? value() : null\r\n \"\r\n [attr.aria-valuemin]=\"\r\n variant() === 'determinate' ? 0 : null\r\n \"\r\n [attr.aria-valuemax]=\"\r\n variant() === 'determinate' ? 100 : null\r\n \">\r\n <circle\r\n class=\"loader-track\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\" />\r\n @if (variant() === 'buffer') {\r\n <circle\r\n [class]=\"bufferClasses()\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\"\r\n [attr.stroke-dasharray]=\"circumference\"\r\n [attr.stroke-dashoffset]=\"bufferDashOffset()\" />\r\n }\r\n <circle\r\n [class]=\"indicatorClasses()\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\"\r\n [attr.stroke-dasharray]=\"circumference\"\r\n [attr.stroke-dashoffset]=\"indicatorDashOffset()\" />\r\n </svg>\r\n `,\r\n styleUrls: ['./loader.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoaderComponent {\r\n readonly variant = input<LoaderVariant>('indeterminate');\r\n readonly color = input<LoaderColor>('primary');\r\n readonly value = input<number>(0);\r\n readonly size = input<LoaderSize>('medium');\r\n\r\n readonly onFinished = output<void>();\r\n\r\n readonly circumference = CIRCUMFERENCE;\r\n\r\n private readonly _diameterMap: Record<LoaderSize, number> =\r\n {\r\n small: 16,\r\n medium: 32,\r\n large: 48,\r\n };\r\n\r\n private readonly _sizeClassMap: Record<\r\n LoaderSize,\r\n string\r\n > = {\r\n small: 'loader-sm',\r\n medium: 'loader-md',\r\n large: 'loader-lg',\r\n };\r\n\r\n readonly svgDiameter = computed(\r\n () => this._diameterMap[this.size()]\r\n );\r\n\r\n readonly svgClasses = computed(() => {\r\n const classes = ['loader-svg'];\r\n classes.push(this._sizeClassMap[this.size()]);\r\n if (this.variant() === 'indeterminate') {\r\n classes.push('loader-indeterminate');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorClasses = computed(() => {\r\n const classes = ['loader-indicator'];\r\n classes.push(`loader-${this.variant()}`);\r\n classes.push(`loader-${this.color()}`);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly bufferClasses = computed(\r\n () => `loader-buffer loader-${this.color()}`\r\n );\r\n\r\n readonly indicatorDashOffset = computed(() => {\r\n const v = this.variant();\r\n if (v === 'determinate' || v === 'buffer') {\r\n const clamped = Math.min(\r\n 100,\r\n Math.max(0, this.value())\r\n );\r\n return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;\r\n }\r\n return 0;\r\n });\r\n\r\n readonly bufferDashOffset = computed(() => {\r\n if (this.variant() === 'buffer') {\r\n const clamped = Math.min(\r\n 100,\r\n Math.max(0, this.value()) + 20\r\n );\r\n return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;\r\n }\r\n return CIRCUMFERENCE;\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (\r\n this.variant() === 'determinate' &&\r\n this.value() >= 100\r\n ) {\r\n this.onFinished.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport type AlertSeverity =\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'success'\r\n | 'primary'\r\n | 'secondary';\r\n\r\nexport type AlertVariant = 'default' | 'filled' | 'outlined';\r\n\r\nconst SEVERITY_ICON_MAP: Record<AlertSeverity, string> = {\r\n success: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"/></svg>`,\r\n error: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>`,\r\n warning: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"/></svg>`,\r\n info: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n primary: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n secondary: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n};\r\n\r\nconst CLOSE_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"18\" height=\"18\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>`;\r\n\r\n@Component({\r\n selector: 'ls-alert',\r\n standalone: true,\r\n template: `\r\n <div\r\n [class]=\"alertClasses()\"\r\n [style]=\"colorStyle()\"\r\n role=\"alert\"\r\n [attr.aria-live]=\"ariaLive()\">\r\n @if (icon()) {\r\n <span class=\"alert-icon\" [innerHTML]=\"sanitizedIcon()\"></span>\r\n }\r\n <div class=\"alert-content\">\r\n @if (alertTitle()) {\r\n <div class=\"alert-title\">{{ alertTitle() }}</div>\r\n }\r\n @if (message()) {\r\n <div class=\"alert-message\">{{ message() }}</div>\r\n }\r\n </div>\r\n @if (closable()) {\r\n <button\r\n class=\"alert-close\"\r\n (click)=\"onClose.emit()\"\r\n [innerHTML]=\"sanitizedCloseIcon\"\r\n aria-label=\"Close\"></button>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./alert.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AlertComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly severity = input<AlertSeverity>('info');\r\n readonly variant = input<AlertVariant>('default');\r\n readonly closable = input<boolean>(false);\r\n readonly icon = input<boolean>(true);\r\n readonly iconMapping = input<string>();\r\n readonly color = input<string>();\r\n readonly alertTitle = input<string>();\r\n readonly message = input<string>();\r\n\r\n readonly onClose = output<void>();\r\n\r\n readonly alertClasses = computed(() => {\r\n const classes = ['alert', `alert-${this.variant()}-${this.severity()}`];\r\n if (this.closable()) {\r\n classes.push('alert-closable');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly ariaLive = computed(() => {\r\n const s = this.severity();\r\n return s === 'error' || s === 'warning' ? 'assertive' : 'polite';\r\n });\r\n\r\n readonly sanitizedIcon = computed(() => {\r\n const svg = this.iconMapping() || SEVERITY_ICON_MAP[this.severity()];\r\n return this._sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n\r\n readonly sanitizedCloseIcon =\r\n this._sanitizer.bypassSecurityTrustHtml(CLOSE_ICON);\r\n\r\n readonly colorStyle = computed(() => {\r\n const c = this.color();\r\n if (!c) return '';\r\n return `--alert-custom-color: ${c};`;\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n HostListener,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n/**\r\n * Defines an origin point on an element used for menu positioning.\r\n *\r\n * Combines a vertical and horizontal anchor designation. Used by both\r\n * `anchorOrigin` (point on the trigger element) and `transformOrigin`\r\n * (point on the menu panel) to compute the final panel placement.\r\n */\r\nexport interface MenuOriginPoint {\r\n vertical: 'top' | 'center' | 'bottom';\r\n horizontal: 'left' | 'center' | 'right';\r\n}\r\n\r\n/**\r\n * Renders an anchored floating menu panel attached to a trigger element.\r\n *\r\n * Supports both **controlled** and **directive-driven** open modes:\r\n * - **Controlled**: bind `[(open)]` and respond to `opened`/`closed` outputs.\r\n * - **Directive-driven**: apply `lsMenuTriggerFor` to any host element;\r\n * the directive calls `setAnchorEl()` and `toggle()` automatically.\r\n *\r\n * Panel position is derived from the anchor element's bounding rect combined\r\n * with `anchorOrigin` (attachment point on the trigger) and `transformOrigin`\r\n * (attachment point on the panel). Position is recomputed each time the\r\n * panel opens via a `setTimeout(0)` deferral to ensure the panel is measured.\r\n *\r\n * When `disablePortal` is `false` (default), the panel uses `position: fixed`\r\n * for viewport-relative placement. When `true`, it uses `position: absolute`.\r\n *\r\n * Keyboard: `Escape` closes the panel; `ArrowDown`/`ArrowUp` move focus\r\n * between enabled `[role=\"menuitem\"]` elements inside the panel.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Controlled -->\r\n * <ls-menu [(open)]=\"isOpen\" [anchorEl]=\"triggerEl\">\r\n * <ls-menu-item (itemClick)=\"onEdit()\">Edit</ls-menu-item>\r\n * </ls-menu>\r\n *\r\n * <!-- Directive-driven -->\r\n * <button [lsMenuTriggerFor]=\"myMenu\">Open</button>\r\n * <ls-menu #myMenu>\r\n * <ls-menu-item>Delete</ls-menu-item>\r\n * </ls-menu>\r\n * ```\r\n */\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-menu',\r\n standalone: true,\r\n styleUrls: ['./menu.styles.css'],\r\n template: `\r\n @if (open() || _isAnimating()) {\r\n <div class=\"menu-backdrop\" (click)=\"onBackdropClick($event)\"></div>\r\n <div\r\n #panelRef\r\n class=\"menu-panel\"\r\n [class.menu-panel-inline]=\"disablePortal()\"\r\n [class.menu-enter]=\"open() && _isAnimating()\"\r\n [class.menu-leave]=\"!open() && _isAnimating()\"\r\n role=\"menu\"\r\n tabindex=\"-1\"\r\n (click)=\"onPanelClick($event)\"\r\n (animationend)=\"onAnimationEnd()\">\r\n <ng-content />\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class MenuComponent {\r\n private readonly _document = inject(DOCUMENT);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /** Controls the visibility of the menu panel. Supports two-way binding. */\r\n readonly open = model<boolean>(false);\r\n\r\n /**\r\n * Element used to position the menu panel.\r\n *\r\n * Accepts a native DOM element, an `ElementRef`, or any Angular component\r\n * that exposes a `nativeElement: HTMLElement` property (e.g. `ls-button`).\r\n * In templates, pass a template reference variable directly:\r\n * `[anchorEl]=\"btn\"` where `#btn` is on any element or component.\r\n *\r\n * When using `lsMenuTriggerFor`, this is set automatically by the directive\r\n * via `setAnchorEl()`. When using controlled mode, bind directly.\r\n *\r\n * @default null\r\n */\r\n readonly anchorEl = input<\r\n HTMLElement | ElementRef<HTMLElement> | { nativeElement: HTMLElement } | null\r\n >(null);\r\n\r\n /**\r\n * Defines the attachment point on the anchor element.\r\n *\r\n * Combined with `transformOrigin` to compute the panel's `top`/`left`\r\n * position via `getBoundingClientRect()`.\r\n *\r\n * @default { vertical: 'bottom', horizontal: 'left' }\r\n */\r\n readonly anchorOrigin = input<MenuOriginPoint>({\r\n vertical: 'bottom',\r\n horizontal: 'left',\r\n });\r\n\r\n /**\r\n * Defines the attachment point on the menu panel surface.\r\n *\r\n * The panel is translated so this point aligns with `anchorOrigin`.\r\n *\r\n * @default { vertical: 'top', horizontal: 'left' }\r\n */\r\n readonly transformOrigin = input<MenuOriginPoint>({\r\n vertical: 'top',\r\n horizontal: 'left',\r\n });\r\n\r\n /**\r\n * When `false` (default), the panel uses `position: fixed` for\r\n * viewport-relative placement. When `true`, uses `position: absolute`\r\n * and renders relative to the nearest positioned ancestor.\r\n *\r\n * @default false\r\n */\r\n readonly disablePortal = input<boolean>(false);\r\n\r\n /**\r\n * When `true`, the panel closes automatically after the user activates\r\n * a `ls-menu-item` (i.e., a `[role=\"menuitem\"]` element) inside it.\r\n *\r\n * @default true\r\n */\r\n readonly closeOnClick = input<boolean>(true);\r\n\r\n /**\r\n * Emits when the panel's opening animation completes.\r\n * Does NOT emit when `open` is set programmatically without animation.\r\n */\r\n readonly opened = output<void>();\r\n\r\n /**\r\n * Emits when the panel's closing animation completes and the panel\r\n * is fully hidden. In controlled mode, the host can use this to update\r\n * state after the transition finishes.\r\n */\r\n readonly closed = output<void>();\r\n\r\n /**\r\n * Emits when the user clicks the transparent backdrop behind the panel.\r\n * The menu closes automatically after this output emits.\r\n */\r\n readonly backdropClick = output<MouseEvent>();\r\n\r\n private readonly _panelRef = viewChild<ElementRef<HTMLElement>>('panelRef');\r\n\r\n protected readonly _isAnimating = signal(false);\r\n\r\n private _wasOpen = false;\r\n private _previouslyFocused: Element | null = null;\r\n private _savedBodyOverflow = '';\r\n private _savedBodyPaddingRight = '';\r\n private readonly _resolvedAnchorEl = signal<HTMLElement | null>(null);\r\n private readonly _repositionHandler = () => this._computeAndApplyPosition();\r\n\r\n constructor() {\r\n // Manages animation state, scroll lock, focus, and repositioning listeners\r\n // when the panel opens or closes.\r\n effect(() => {\r\n const isOpen = this.open();\r\n untracked(() => {\r\n if (isOpen) {\r\n this._isAnimating.set(true);\r\n this._previouslyFocused = this._document.activeElement;\r\n this._savedBodyOverflow = this._document.body.style.overflow;\r\n this._savedBodyPaddingRight = this._document.body.style.paddingRight;\r\n\r\n const scrollbarWidth = this._getScrollbarWidth();\r\n\r\n if (scrollbarWidth > 0) {\r\n this._document.body.style.paddingRight = `${scrollbarWidth}px`;\r\n }\r\n\r\n this._document.body.style.overflow = 'hidden';\r\n setTimeout(() => this._panelRef()?.nativeElement.focus(), 0);\r\n window.addEventListener('resize', this._repositionHandler);\r\n window.addEventListener('scroll', this._repositionHandler, true);\r\n this._wasOpen = true;\r\n } else if (this._wasOpen) {\r\n this._isAnimating.set(true);\r\n window.removeEventListener('resize', this._repositionHandler);\r\n window.removeEventListener('scroll', this._repositionHandler, true);\r\n this._wasOpen = false;\r\n }\r\n });\r\n });\r\n\r\n // Computes and applies panel position whenever the panel enters the DOM\r\n // or any positioning input changes. Using a separate effect (rather than\r\n // setTimeout) guarantees that Angular has already updated the viewChild\r\n // signal before this runs, so _panelRef() is always non-null here.\r\n effect(() => {\r\n const panel = this._panelRef()?.nativeElement;\r\n if (!panel) return;\r\n this._computeAndApplyPosition();\r\n });\r\n\r\n this._destroyRef.onDestroy(() => {\r\n window.removeEventListener('resize', this._repositionHandler);\r\n window.removeEventListener('scroll', this._repositionHandler, true);\r\n if (this._wasOpen) {\r\n this._document.body.style.overflow = this._savedBodyOverflow;\r\n this._document.body.style.paddingRight = this._savedBodyPaddingRight;\r\n (this._previouslyFocused as HTMLElement)?.focus?.();\r\n }\r\n });\r\n }\r\n\r\n /** Toggles the panel between open and closed. */\r\n toggle(): void {\r\n this.open.set(!this.open());\r\n }\r\n\r\n /**\r\n * Sets the anchor element used for panel positioning.\r\n * Called automatically by `MenuTriggerDirective`.\r\n */\r\n setAnchorEl(el: HTMLElement | null): void {\r\n this._resolvedAnchorEl.set(el);\r\n }\r\n\r\n /** Closes the panel without waiting for a user interaction. */\r\n requestClose(): void {\r\n this.open.set(false);\r\n }\r\n\r\n protected onBackdropClick(event: MouseEvent): void {\r\n this.backdropClick.emit(event);\r\n this.open.set(false);\r\n }\r\n\r\n protected onPanelClick(event: MouseEvent): void {\r\n if (!this.closeOnClick()) return;\r\n const target = event.target as HTMLElement;\r\n if (target.closest('[role=\"menuitem\"]') !== null) {\r\n this.open.set(false);\r\n }\r\n }\r\n\r\n protected onAnimationEnd(): void {\r\n this._isAnimating.set(false);\r\n if (this.open()) {\r\n this.opened.emit();\r\n } else {\r\n this._document.body.style.overflow = this._savedBodyOverflow;\r\n this._document.body.style.paddingRight = this._savedBodyPaddingRight;\r\n this.closed.emit();\r\n (this._previouslyFocused as HTMLElement)?.focus?.();\r\n this._previouslyFocused = null;\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n protected onEscape(): void {\r\n if (this.open()) {\r\n this.open.set(false);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.arrowdown', ['$event'])\r\n protected onArrowDown(event: Event): void {\r\n if (!this.open()) return;\r\n event.preventDefault();\r\n this._moveFocus(1);\r\n }\r\n\r\n @HostListener('document:keydown.arrowup', ['$event'])\r\n protected onArrowUp(event: Event): void {\r\n if (!this.open()) return;\r\n event.preventDefault();\r\n this._moveFocus(-1);\r\n }\r\n\r\n private _computeAndApplyPosition(): void {\r\n const rawAnchor = this.anchorEl() ?? this._resolvedAnchorEl();\r\n const panel = this._panelRef()?.nativeElement;\r\n if (!rawAnchor || !panel) return;\r\n\r\n const anchorEl = this._toHTMLElement(rawAnchor);\r\n if (!anchorEl) return;\r\n\r\n const anchorRect = anchorEl.getBoundingClientRect();\r\n const panelRect = panel.getBoundingClientRect();\r\n const ao = this.anchorOrigin();\r\n const to = this.transformOrigin();\r\n\r\n const anchorX =\r\n anchorRect.left +\r\n (ao.horizontal === 'center'\r\n ? anchorRect.width / 2\r\n : ao.horizontal === 'right'\r\n ? anchorRect.width\r\n : 0);\r\n\r\n const anchorY =\r\n anchorRect.top +\r\n (ao.vertical === 'center'\r\n ? anchorRect.height / 2\r\n : ao.vertical === 'bottom'\r\n ? anchorRect.height\r\n : 0);\r\n\r\n const transformX =\r\n to.horizontal === 'center'\r\n ? panelRect.width / 2\r\n : to.horizontal === 'right'\r\n ? panelRect.width\r\n : 0;\r\n\r\n const transformY =\r\n to.vertical === 'center'\r\n ? panelRect.height / 2\r\n : to.vertical === 'bottom'\r\n ? panelRect.height\r\n : 0;\r\n\r\n panel.style.setProperty('--menu-top', `${anchorY - transformY}px`);\r\n panel.style.setProperty('--menu-left', `${anchorX - transformX}px`);\r\n }\r\n\r\n /**\r\n * Resolves any supported anchor value to a plain `HTMLElement`.\r\n *\r\n * Handles: `HTMLElement`, `ElementRef<HTMLElement>`, and objects that expose\r\n * a `nativeElement: HTMLElement` property (e.g. `ls-button` component refs).\r\n */\r\n private _toHTMLElement(anchor: unknown): HTMLElement | null {\r\n if (!anchor) return null;\r\n if (anchor instanceof HTMLElement) return anchor;\r\n if (\r\n typeof anchor === 'object' &&\r\n anchor !== null &&\r\n 'nativeElement' in anchor\r\n ) {\r\n const el = (anchor as { nativeElement: unknown }).nativeElement;\r\n return el instanceof HTMLElement ? el : null;\r\n }\r\n return null;\r\n }\r\n\r\n private _moveFocus(direction: 1 | -1): void {\r\n const panel = this._panelRef()?.nativeElement;\r\n if (!panel) return;\r\n\r\n const items = Array.from(\r\n panel.querySelectorAll<HTMLElement>(\r\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])'\r\n )\r\n );\r\n if (items.length === 0) return;\r\n\r\n const currentIndex = items.indexOf(\r\n this._document.activeElement as HTMLElement\r\n );\r\n const nextIndex =\r\n currentIndex === -1\r\n ? direction === 1\r\n ? 0\r\n : items.length - 1\r\n : (currentIndex + direction + items.length) % items.length;\r\n\r\n items[nextIndex]?.focus();\r\n }\r\n\r\n private _getScrollbarWidth(): number {\r\n return window.innerWidth - this._document.documentElement.clientWidth;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Interactive item rendered inside an `ls-menu` panel.\r\n *\r\n * Renders a `<button role=\"menuitem\">` that projects its label via\r\n * `<ng-content>`. Visual density, gutters, and a bottom divider are\r\n * configurable via inputs. When `disabled` is `true`, the item is not\r\n * interactive and the `itemClick` output will not emit.\r\n *\r\n * @example\r\n * ```html\r\n * <ls-menu-item [dense]=\"true\" (itemClick)=\"onEdit($event)\">\r\n * Edit\r\n * </ls-menu-item>\r\n * ```\r\n */\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-menu-item',\r\n standalone: true,\r\n styleUrls: ['./menu.styles.css'],\r\n template: `\r\n <button\r\n type=\"button\"\r\n [class]=\"_itemClasses()\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\r\n role=\"menuitem\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content />\r\n </button>\r\n `,\r\n})\r\nexport class MenuItemComponent {\r\n /**\r\n * Reduces the vertical padding of the item for compact layouts.\r\n *\r\n * @default false\r\n */\r\n readonly dense = input<boolean>(false);\r\n\r\n /**\r\n * Removes left and right padding when `true`.\r\n *\r\n * @default false\r\n */\r\n readonly disableGutters = input<boolean>(false);\r\n\r\n /**\r\n * Adds a 1px border at the bottom of the item to act as a visual divider.\r\n *\r\n * @default false\r\n */\r\n readonly divider = input<boolean>(false);\r\n\r\n /**\r\n * Prevents interaction. Applies disabled styling, sets `aria-disabled=\"true\"`,\r\n * and suppresses the `itemClick` output.\r\n *\r\n * @default false\r\n */\r\n readonly disabled = input<boolean>(false);\r\n\r\n /**\r\n * Emits the originating `MouseEvent` when the user activates the item.\r\n * Does NOT emit when `disabled` is `true`.\r\n */\r\n readonly itemClick = output<MouseEvent>();\r\n\r\n protected readonly _itemClasses = computed(() => {\r\n const classes = ['menu-item'];\r\n if (this.dense()) classes.push('menu-item-dense');\r\n if (this.disableGutters()) classes.push('menu-item-no-gutters');\r\n if (this.divider()) classes.push('menu-item-divider');\r\n if (this.disabled()) classes.push('menu-item-disabled');\r\n return classes.join(' ');\r\n });\r\n\r\n protected handleClick(event: MouseEvent): void {\r\n if (this.disabled()) return;\r\n this.itemClick.emit(event);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport { MenuComponent } from './menu.component';\r\n\r\n/**\r\n * Connects any host element to a `MenuComponent` instance, enabling\r\n * click-to-toggle behavior without manual open-state management.\r\n *\r\n * Sets `anchorEl` on the linked `MenuComponent` to the host element\r\n * before toggling visibility, so the panel is correctly positioned\r\n * relative to the trigger. Also applies `aria-haspopup=\"menu\"` to the\r\n * host for accessibility.\r\n *\r\n * @example\r\n * ```html\r\n * <button type=\"button\" [lsMenuTriggerFor]=\"myMenu\">Options</button>\r\n * <ls-menu #myMenu>\r\n * <ls-menu-item>Delete</ls-menu-item>\r\n * </ls-menu>\r\n * ```\r\n */\r\n@Directive({\r\n host: { 'aria-haspopup': 'menu' },\r\n selector: '[lsMenuTriggerFor]',\r\n standalone: true,\r\n})\r\nexport class MenuTriggerDirective {\r\n /**\r\n * The `MenuComponent` instance this directive controls.\r\n * Assign a template reference variable of `ls-menu`.\r\n */\r\n readonly lsMenuTriggerFor = input.required<MenuComponent>();\r\n\r\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\r\n\r\n @HostListener('click')\r\n protected onClick(): void {\r\n const menu = this.lsMenuTriggerFor();\r\n menu.setAnchorEl(this._resolveAnchorElement());\r\n menu.toggle();\r\n }\r\n\r\n /**\r\n * Resolves the first ancestor element that has a real layout box.\r\n *\r\n * Angular component hosts commonly use `:host { display: contents }`,\r\n * which means the element itself has no bounding box and\r\n * `getBoundingClientRect()` returns all zeros. This method walks down\r\n * through `display: contents` wrappers until it reaches the first child\r\n * that participates in layout, so the menu panel is positioned relative\r\n * to the visible trigger element rather than a phantom box.\r\n */\r\n private _resolveAnchorElement(): HTMLElement {\r\n let el = this._elementRef.nativeElement as HTMLElement;\r\n while (el.firstElementChild && getComputedStyle(el).display === 'contents') {\r\n el = el.firstElementChild as HTMLElement;\r\n }\r\n return el;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'modal-actions' },\r\n imports: [],\r\n selector: 'ls-modal-actions',\r\n standalone: true,\r\n template: `<ng-content />`,\r\n})\r\nexport class ModalActionsComponent {}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nlet _titleIdCounter = 0;\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'modal-title', '[id]': 'id' },\r\n imports: [],\r\n selector: 'ls-modal-title',\r\n standalone: true,\r\n template: `<ng-content />`,\r\n})\r\nexport class ModalTitleComponent {\r\n public readonly id = `ls-modal-title-${++_titleIdCounter}`;\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalStackService {\r\n private readonly _stack = signal<string[]>([]);\r\n\r\n push(id: string): void {\r\n this._stack.update(stack => [...stack, id]);\r\n }\r\n\r\n pop(id: string): void {\r\n this._stack.update(stack => stack.filter(s => s !== id));\r\n }\r\n\r\n isTop(id: string): boolean {\r\n const stack = this._stack();\r\n return stack.length > 0 && stack[stack.length - 1] === id;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n OnDestroy,\r\n computed,\r\n contentChild,\r\n effect,\r\n inject,\r\n input,\r\n output,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { IconComponent } from '../../icon/icon.component';\r\nimport { ModalTitleComponent } from './modal-title.component';\r\nimport { ModalStackService } from './modal.service';\r\n\r\nlet _modalIdCounter = 0;\r\n\r\nexport type ModalMaxWidth = 'sm' | 'md' | 'lg' | 'xl' | 'full';\r\nexport type ModalScroll = 'dialog' | 'body';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [IconComponent],\r\n selector: 'ls-modal',\r\n standalone: true,\r\n styleUrls: ['./modal.styles.css'],\r\n template: `\r\n @if (open()) {\r\n <div [class]=\"overlayClasses()\" (click)=\"onBackdropClick()\">\r\n <div\r\n #panel\r\n [attr.aria-labelledby]=\"labelledById()\"\r\n [attr.aria-modal]=\"true\"\r\n [class]=\"panelClasses()\"\r\n role=\"dialog\"\r\n tabindex=\"-1\"\r\n (click)=\"$event.stopPropagation()\">\r\n @if (showCloseButton()) {\r\n <button\r\n aria-label=\"Close\"\r\n class=\"modal-close-btn\"\r\n type=\"button\"\r\n (click)=\"onCloseButtonClick()\">\r\n <ls-icon name=\"x\" />\r\n </button>\r\n }\r\n <ng-content />\r\n </div>\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class ModalComponent implements OnDestroy {\r\n readonly open = input<boolean>(false);\r\n readonly disableBackdropClose = input<boolean>(false);\r\n readonly fullScreen = input<boolean>(false);\r\n readonly fullWidth = input<boolean>(false);\r\n readonly maxWidth = input<ModalMaxWidth>('md');\r\n readonly scroll = input<ModalScroll>('dialog');\r\n readonly showCloseButton = input<boolean>(true);\r\n readonly closed = output<void>();\r\n\r\n private readonly _modalStackService = inject(ModalStackService);\r\n private readonly _titleComponent = contentChild(ModalTitleComponent);\r\n private readonly _panel = viewChild<ElementRef<HTMLElement>>('panel');\r\n private readonly _id = `ls-modal-${++_modalIdCounter}`;\r\n private _previouslyFocused: Element | null = null;\r\n\r\n protected readonly labelledById = computed(() => {\r\n const title = this._titleComponent();\r\n return title ? title.id : null;\r\n });\r\n\r\n protected readonly overlayClasses = computed(() => {\r\n const classes = ['modal-overlay'];\r\n if (this.scroll() === 'body') classes.push('modal-overlay-body');\r\n return classes.join(' ');\r\n });\r\n\r\n protected readonly panelClasses = computed(() => {\r\n const classes = [\r\n 'modal-panel',\r\n `modal-max-${this.maxWidth()}`,\r\n `modal-scroll-${this.scroll()}`,\r\n ];\r\n if (this.fullScreen()) classes.push('modal-full-screen');\r\n if (this.fullWidth()) classes.push('modal-full-width');\r\n if (this.showCloseButton()) classes.push('modal-has-close-btn');\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.open()) {\r\n this._previouslyFocused = document.activeElement;\r\n this._modalStackService.push(this._id);\r\n setTimeout(() => {\r\n untracked(() => this._panel()?.nativeElement.focus());\r\n }, 0);\r\n } else {\r\n this._modalStackService.pop(this._id);\r\n (this._previouslyFocused as HTMLElement)?.focus?.();\r\n this._previouslyFocused = null;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.open()) {\r\n this._modalStackService.pop(this._id);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n protected onEscape(): void {\r\n if (this.open() && this._modalStackService.isTop(this._id)) {\r\n this.closed.emit();\r\n }\r\n }\r\n\r\n protected onBackdropClick(): void {\r\n if (!this.disableBackdropClose()) {\r\n this.closed.emit();\r\n }\r\n }\r\n\r\n protected onCloseButtonClick(): void {\r\n this.closed.emit();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'modal-content' },\r\n imports: [],\r\n selector: 'ls-modal-content',\r\n standalone: true,\r\n template: `<ng-content />`,\r\n})\r\nexport class ModalContentComponent {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n Renderer2,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nexport type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-popover',\r\n standalone: true,\r\n styleUrls: ['./popover.styles.css'],\r\n template: `\r\n @if (isOpen() || _isAnimating()) {\r\n <div\r\n [class]=\"_panelClasses()\"\r\n [class.popover-enter]=\"isOpen() && _isAnimating()\"\r\n [class.popover-exit]=\"!isOpen() && _isAnimating()\"\r\n (animationend)=\"_onAnimationEnd()\"\r\n (mouseenter)=\"_onPanelMouseEnter()\"\r\n (mouseleave)=\"_onPanelMouseLeave()\"\r\n role=\"dialog\"\r\n aria-modal=\"false\"\r\n #panelRef>\r\n @if (showArrow()) {\r\n <span [class]=\"_arrowClasses()\"></span>\r\n }\r\n <ng-content />\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class PopoverComponent {\r\n private readonly _renderer = inject(Renderer2);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private readonly _document = inject(DOCUMENT);\r\n private readonly _elementRef = inject(ElementRef);\r\n private _cleanupScroll: (() => void) | null = null;\r\n\r\n readonly placement = input<PopoverPlacement>('bottom');\r\n readonly showArrow = input<boolean>(true);\r\n readonly offset = input<number>(8);\r\n readonly autoFlip = input<boolean>(true);\r\n readonly trigger = input<HTMLElement | undefined>(undefined);\r\n\r\n readonly isOpen = model<boolean>(false);\r\n\r\n readonly onOpened = output<void>();\r\n readonly onHidden = output<void>();\r\n\r\n private readonly _panelRef = viewChild<ElementRef>('panelRef');\r\n\r\n readonly _currentPlacement = signal<PopoverPlacement>('bottom');\r\n readonly _isAnimating = signal(false);\r\n\r\n private _cleanupClickOutside: (() => void) | null = null;\r\n private _cleanupEscape: (() => void) | null = null;\r\n private _hoverBridgeTimeout: ReturnType<typeof setTimeout> | null =\r\n null;\r\n private _wasOpen = false;\r\n\r\n readonly _panelClasses = computed(() =>\r\n ['popover-panel', `popover-${this._currentPlacement()}`].join(' '),\r\n );\r\n\r\n readonly _arrowClasses = computed(\r\n () =>\r\n `popover-arrow popover-arrow-${this._currentPlacement()}`,\r\n );\r\n\r\n constructor() {\r\n effect(() => {\r\n const isOpen = this.isOpen();\r\n\r\n untracked(() => {\r\n if (isOpen) {\r\n this._currentPlacement.set(this.placement());\r\n this._isAnimating.set(true);\r\n this._setupListeners();\r\n setTimeout(() => {\r\n if (this.isOpen()) {\r\n this._computePosition();\r\n }\r\n }, 0);\r\n this._wasOpen = true;\r\n } else if (this._wasOpen) {\r\n this._isAnimating.set(true);\r\n this._wasOpen = false;\r\n } else {\r\n this._removeListeners();\r\n }\r\n });\r\n });\r\n\r\n this._destroyRef.onDestroy(() => {\r\n this._removeListeners();\r\n if (this._hoverBridgeTimeout) {\r\n clearTimeout(this._hoverBridgeTimeout);\r\n }\r\n });\r\n }\r\n\r\n open(): void {\r\n this.isOpen.set(true);\r\n }\r\n\r\n close(): void {\r\n this.isOpen.set(false);\r\n }\r\n\r\n toggle(): void {\r\n if (this.isOpen()) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n _onAnimationEnd(): void {\r\n this._isAnimating.set(false);\r\n if (this.isOpen()) {\r\n this.onOpened.emit();\r\n } else {\r\n this._removeListeners();\r\n this.onHidden.emit();\r\n }\r\n }\r\n\r\n _onPanelMouseEnter(): void {\r\n if (this._hoverBridgeTimeout) {\r\n clearTimeout(this._hoverBridgeTimeout);\r\n this._hoverBridgeTimeout = null;\r\n }\r\n }\r\n\r\n _onPanelMouseLeave(): void {\r\n this._hoverBridgeTimeout = setTimeout(\r\n () => this.close(),\r\n 100,\r\n );\r\n }\r\n\r\n private _computePosition(): void {\r\n const anchor =\r\n this.trigger() ??\r\n this._elementRef.nativeElement.parentElement;\r\n const panel = this._panelRef()?.nativeElement;\r\n\r\n if (!anchor || !panel) return;\r\n\r\n const anchorRect = anchor.getBoundingClientRect();\r\n const panelRect = panel.getBoundingClientRect();\r\n const offset = this.offset();\r\n\r\n let placement = this._currentPlacement();\r\n if (this.autoFlip()) {\r\n placement = this._getFlippedPlacement(\r\n placement,\r\n anchorRect,\r\n panelRect,\r\n offset,\r\n );\r\n this._currentPlacement.set(placement);\r\n }\r\n\r\n let top = 0;\r\n let left = 0;\r\n\r\n switch (placement) {\r\n case 'top':\r\n top = anchorRect.top - panelRect.height - offset;\r\n left =\r\n anchorRect.left +\r\n (anchorRect.width - panelRect.width) / 2;\r\n break;\r\n case 'bottom':\r\n top = anchorRect.bottom + offset;\r\n left =\r\n anchorRect.left +\r\n (anchorRect.width - panelRect.width) / 2;\r\n break;\r\n case 'left':\r\n top =\r\n anchorRect.top +\r\n (anchorRect.height - panelRect.height) / 2;\r\n left = anchorRect.left - panelRect.width - offset;\r\n break;\r\n case 'right':\r\n top =\r\n anchorRect.top +\r\n (anchorRect.height - panelRect.height) / 2;\r\n left = anchorRect.right + offset;\r\n break;\r\n }\r\n\r\n panel.style.setProperty('--popover-top', `${top}px`);\r\n panel.style.setProperty('--popover-left', `${left}px`);\r\n }\r\n\r\n private _getFlippedPlacement(\r\n placement: PopoverPlacement,\r\n anchorRect: DOMRect,\r\n panelRect: DOMRect,\r\n offset: number,\r\n ): PopoverPlacement {\r\n const viewportWidth =\r\n this._document.defaultView?.innerWidth ?? 0;\r\n const viewportHeight =\r\n this._document.defaultView?.innerHeight ?? 0;\r\n\r\n const opposites: Record<\r\n PopoverPlacement,\r\n PopoverPlacement\r\n > = {\r\n top: 'bottom',\r\n bottom: 'top',\r\n left: 'right',\r\n right: 'left',\r\n };\r\n\r\n switch (placement) {\r\n case 'top':\r\n if (anchorRect.top - panelRect.height - offset < 0) {\r\n return opposites[placement];\r\n }\r\n break;\r\n case 'bottom':\r\n if (\r\n anchorRect.bottom + panelRect.height + offset >\r\n viewportHeight\r\n ) {\r\n return opposites[placement];\r\n }\r\n break;\r\n case 'left':\r\n if (anchorRect.left - panelRect.width - offset < 0) {\r\n return opposites[placement];\r\n }\r\n break;\r\n case 'right':\r\n if (\r\n anchorRect.right + panelRect.width + offset >\r\n viewportWidth\r\n ) {\r\n return opposites[placement];\r\n }\r\n break;\r\n }\r\n\r\n return placement;\r\n }\r\n\r\n private _setupListeners(): void {\r\n this._removeListeners();\r\n\r\n this._cleanupClickOutside = this._renderer.listen(\r\n this._document,\r\n 'click',\r\n (event: MouseEvent) => {\r\n const anchor =\r\n this.trigger() ??\r\n this._elementRef.nativeElement.parentElement;\r\n const panel = this._panelRef()?.nativeElement;\r\n const target = event.target as Node;\r\n\r\n if (\r\n panel &&\r\n !panel.contains(target) &&\r\n anchor &&\r\n !anchor.contains(target)\r\n ) {\r\n this.close();\r\n }\r\n },\r\n );\r\n\r\n this._cleanupEscape = this._renderer.listen(\r\n this._document,\r\n 'keydown',\r\n (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n },\r\n );\r\n\r\n this._cleanupScroll = this._renderer.listen(\r\n 'window',\r\n 'scroll',\r\n () => {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n },\r\n { capture: true }\r\n );\r\n }\r\n\r\n private _removeListeners(): void {\r\n if (this._cleanupClickOutside) {\r\n this._cleanupClickOutside();\r\n this._cleanupClickOutside = null;\r\n }\r\n if (this._cleanupEscape) {\r\n this._cleanupEscape();\r\n this._cleanupEscape = null;\r\n }\r\n if (this._cleanupScroll) {\r\n this._cleanupScroll();\r\n this._cleanupScroll = null;\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n OnInit,\r\n computed,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { IconComponent } from '../../icon/icon.component';\r\n\r\n/** Controls the visual rendering style of page number items and nav buttons. */\r\nexport type PaginationVariant = 'text' | 'outlined' | 'solid';\r\n\r\n/**\r\n * Applies the design-token color to the active page item and hover states.\r\n *\r\n * - `'primary'` — Brand primary color.\r\n * - `'secondary'` — Brand secondary color.\r\n * - `'default'` — Neutral gray, no brand color applied.\r\n */\r\nexport type PaginationColor = 'primary' | 'secondary' | 'default';\r\n\r\n/** Determines the border-radius style applied uniformly to all page buttons. */\r\nexport type PaginationShape = 'circular' | 'rounded';\r\n\r\n/**\r\n * Controls the physical dimensions (height, font size, padding) of all\r\n * buttons in the pagination bar.\r\n */\r\nexport type PaginationSize = 'small' | 'medium' | 'large';\r\n\r\n/**\r\n * Renders an accessible pagination bar for navigating a paged data set.\r\n *\r\n * Supports both **controlled** and **uncontrolled** modes:\r\n * - **Controlled**: provide the `page` input and update it in response to\r\n * the `pageChange` output. The component reflects the external value.\r\n * - **Uncontrolled**: omit `page`. The component manages its own active\r\n * page via an internal signal, initialized from `defaultPage`.\r\n *\r\n * When the total page count exceeds 5, a 5-item sliding window is rendered\r\n * centered on the active page. Navigation buttons are rendered inside a\r\n * `<nav aria-label=\"pagination\">` landmark. Each button receives\r\n * `aria-current=\"page\"` (active) or `aria-disabled=\"true\"` (boundary/disabled)\r\n * as appropriate.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Uncontrolled -->\r\n * <ls-pagination [count]=\"20\" (pageChange)=\"onPage($event)\" />\r\n *\r\n * <!-- Controlled -->\r\n * <ls-pagination\r\n * [count]=\"20\"\r\n * [page]=\"currentPage\"\r\n * (pageChange)=\"currentPage = $event\" />\r\n * ```\r\n */\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [IconComponent],\r\n selector: 'ls-pagination',\r\n standalone: true,\r\n styleUrls: ['./pagination.styles.css'],\r\n template: `\r\n <nav aria-label=\"pagination\">\r\n <ul class=\"pg-list\">\r\n @if (showFirstButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"first\"\r\n [class]=\"navClasses(isFirstPage())\"\r\n [disabled]=\"isFirstPage() || disabled()\"\r\n [attr.aria-disabled]=\"\r\n isFirstPage() || disabled() ? 'true' : null\r\n \"\r\n (click)=\"goToPage(1)\">\r\n <ls-icon class=\"pg-icon-left\" name=\"carets-down\" />\r\n </button>\r\n </li>\r\n }\r\n @if (!hidePrevButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"prev\"\r\n [class]=\"navClasses(isFirstPage())\"\r\n [disabled]=\"isFirstPage() || disabled()\"\r\n [attr.aria-disabled]=\"\r\n isFirstPage() || disabled() ? 'true' : null\r\n \"\r\n (click)=\"goToPage(activePage() - 1)\">\r\n <ls-icon class=\"pg-icon-left\" name=\"caret-down\" />\r\n </button>\r\n </li>\r\n }\r\n @for (n of pages(); track $index) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n [class]=\"pageItemClasses(n)\"\r\n [attr.aria-current]=\"n === activePage() ? 'page' : null\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\r\n (click)=\"goToPage(n)\">\r\n {{ n }}\r\n </button>\r\n </li>\r\n }\r\n @if (!hideNextButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"next\"\r\n [class]=\"navClasses(isLastPage())\"\r\n [disabled]=\"isLastPage() || disabled()\"\r\n [attr.aria-disabled]=\"\r\n isLastPage() || disabled() ? 'true' : null\r\n \"\r\n (click)=\"goToPage(activePage() + 1)\">\r\n <ls-icon class=\"pg-icon-right\" name=\"caret-down\" />\r\n </button>\r\n </li>\r\n }\r\n @if (showLastButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"last\"\r\n [class]=\"navClasses(isLastPage())\"\r\n [disabled]=\"isLastPage() || disabled()\"\r\n [attr.aria-disabled]=\"\r\n isLastPage() || disabled() ? 'true' : null\r\n \"\r\n (click)=\"goToPage(count())\">\r\n <ls-icon class=\"pg-icon-right\" name=\"carets-down\" />\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n `,\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n /**\r\n * Total number of pages in the data set.\r\n *\r\n * Must be a positive integer ≥ 1. Determines both the upper boundary for\r\n * navigation and the page window calculation.\r\n *\r\n * @default 1\r\n */\r\n readonly count = input<number>(1);\r\n\r\n /**\r\n * Active page index in controlled mode (1-based).\r\n *\r\n * When provided, the component reflects this value and does not maintain\r\n * internal page state. The host is responsible for updating this input in\r\n * response to `pageChange` emissions. Pass `undefined` to switch to\r\n * uncontrolled mode.\r\n *\r\n * @default undefined\r\n */\r\n readonly page = input<number | undefined>(undefined);\r\n\r\n /**\r\n * Initial active page used in uncontrolled mode (1-based).\r\n *\r\n * Consumed once on `ngOnInit`. Has no effect when `page` is provided.\r\n *\r\n * @default 1\r\n */\r\n readonly defaultPage = input<number>(1);\r\n\r\n /**\r\n * Color token applied to the active page item and button hover states.\r\n *\r\n * @default 'primary'\r\n */\r\n readonly color = input<PaginationColor>('primary');\r\n\r\n /**\r\n * Visual rendering style of page number items and navigation buttons.\r\n *\r\n * @default 'outlined'\r\n */\r\n readonly variant = input<PaginationVariant>('outlined');\r\n\r\n /**\r\n * Border-radius style applied uniformly to all buttons in the bar.\r\n *\r\n * @default 'rounded'\r\n */\r\n readonly shape = input<PaginationShape>('rounded');\r\n\r\n /**\r\n * Physical dimensions (height, font size, padding) of all buttons.\r\n *\r\n * @default 'medium'\r\n */\r\n readonly size = input<PaginationSize>('medium');\r\n\r\n /**\r\n * Disables all buttons in the pagination bar.\r\n *\r\n * When `true`, every button receives `disabled` and\r\n * `aria-disabled=\"true\"`. The `pageChange` output will not emit.\r\n *\r\n * @default false\r\n */\r\n readonly disabled = input<boolean>(false);\r\n\r\n /**\r\n * Renders a \"go to first page\" button before the previous-page button.\r\n *\r\n * The button is automatically disabled and receives `aria-disabled=\"true\"`\r\n * when the active page is already the first page.\r\n *\r\n * @default false\r\n */\r\n readonly showFirstButton = input<boolean>(false);\r\n\r\n /**\r\n * Renders a \"go to last page\" button after the next-page button.\r\n *\r\n * The button is automatically disabled and receives `aria-disabled=\"true\"`\r\n * when the active page is already the last page.\r\n *\r\n * @default false\r\n */\r\n readonly showLastButton = input<boolean>(false);\r\n\r\n /**\r\n * Hides the previous-page navigation button.\r\n *\r\n * @default false\r\n */\r\n readonly hidePrevButton = input<boolean>(false);\r\n\r\n /**\r\n * Hides the next-page navigation button.\r\n *\r\n * @default false\r\n */\r\n readonly hideNextButton = input<boolean>(false);\r\n\r\n /**\r\n * Emits the target page number (1-based) when the user activates any\r\n * page item or navigation button.\r\n *\r\n * Does NOT emit when `disabled` is `true` or when the user clicks a\r\n * boundary button that is already at its limit (first/last page).\r\n * In controlled mode, the host must update the `page` input in response\r\n * to this event to reflect the navigation in the UI.\r\n */\r\n readonly pageChange = output<number>();\r\n\r\n private readonly _internalPage = signal<number>(1);\r\n\r\n protected readonly activePage = computed(\r\n () => this.page() ?? this._internalPage()\r\n );\r\n protected readonly pages = computed(() => {\r\n const total = this.count();\r\n const current = this.activePage();\r\n if (total <= 5) {\r\n return Array.from({ length: total }, (_, i) => i + 1);\r\n }\r\n const start = Math.max(1, Math.min(current - 2, total - 4));\r\n return Array.from({ length: 5 }, (_, i) => start + i);\r\n });\r\n protected readonly isFirstPage = computed(() => this.activePage() === 1);\r\n protected readonly isLastPage = computed(\r\n () => this.activePage() === this.count()\r\n );\r\n\r\n private readonly _baseClasses = computed(() => {\r\n const size = this.size();\r\n const sizeClass =\r\n size === 'small'\r\n ? 'pg-item-sm'\r\n : size === 'large'\r\n ? 'pg-item-lg'\r\n : 'pg-item-md';\r\n const shapeClass =\r\n this.shape() === 'circular' ? 'pg-item-circular' : 'pg-item-rounded';\r\n return [\r\n 'pg-item',\r\n `pg-item-${this.variant()}-${this.color()}`,\r\n sizeClass,\r\n shapeClass,\r\n ].join(' ');\r\n });\r\n\r\n ngOnInit(): void {\r\n this._internalPage.set(this.defaultPage());\r\n }\r\n\r\n protected pageItemClasses(n: number): string {\r\n const base = this._baseClasses();\r\n return n === this.activePage() ? `${base} pg-item-active` : base;\r\n }\r\n\r\n protected navClasses(isAtBoundary: boolean): string {\r\n const classes = `${this._baseClasses()} pg-nav-btn`;\r\n return isAtBoundary || this.disabled()\r\n ? `${classes} pg-item-disabled`\r\n : classes;\r\n }\r\n\r\n protected goToPage(n: number): void {\r\n if (this.disabled() || n < 1 || n > this.count()) return;\r\n if (this.page() === undefined) {\r\n this._internalPage.set(n);\r\n }\r\n this.pageChange.emit(n);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { IconComponent } from '../../icon';\r\n\r\nexport interface BreadcrumbItem {\r\n label: string;\r\n url?: string;\r\n icon?: string;\r\n}\r\n\r\nexport type BreadcrumbVariant = 'default' | 'arrowed' | 'dotted';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgTemplateOutlet, IconComponent],\r\n selector: 'ls-breadcrumb',\r\n standalone: true,\r\n styleUrls: ['./breadcrumb.styles.css'],\r\n template: `\r\n <nav aria-label=\"Breadcrumb\" [style]=\"_colorStyle()\">\r\n <ol [class]=\"_classes()\">\r\n @for (item of items(); track item.label; let isLast = $last) {\r\n <li class=\"ls-breadcrumb-item\" [class.ls-breadcrumb-item--active]=\"isLast\">\r\n\r\n @if (item.icon) {\r\n <ls-icon\r\n [name]=\"$any(item.icon)\"\r\n iconClass=\"ls-breadcrumb-icon\" />\r\n }\r\n\r\n @if (isLast) {\r\n <span aria-current=\"page\">{{ item.label }}</span>\r\n } @else if (item.url) {\r\n <a [href]=\"item.url\">{{ item.label }}</a>\r\n } @else {\r\n <span>{{ item.label }}</span>\r\n }\r\n </li>\r\n\r\n @if (!isLast && variant() !== 'arrowed') {\r\n <li class=\"ls-breadcrumb-separator\" aria-hidden=\"true\">\r\n @if (_isTemplateSeparator()) {\r\n <ng-container *ngTemplateOutlet=\"$any(separator())\" />\r\n } @else {\r\n {{ separator() }}\r\n }\r\n </li>\r\n }\r\n }\r\n </ol>\r\n </nav>\r\n `,\r\n})\r\nexport class BreadcrumbComponent {\r\n readonly items = input.required<BreadcrumbItem[]>();\r\n readonly variant = input<BreadcrumbVariant>('default');\r\n readonly separator = input<string | TemplateRef<unknown>>('/');\r\n readonly color = input<string>('gray'); // El nuevo input de color\r\n\r\n // Lógica para el color dinámico\r\n protected readonly _colorStyle = computed(() => {\r\n const c = this.color();\r\n const value = c === 'primary' ? 'var(--ls-color-primary)' :\r\n c === 'secondary' ? 'var(--ls-color-secondary)' : c;\r\n return { '--ls-breadcrumb-main-color': value };\r\n });\r\n\r\n protected readonly _classes = computed(() => {\r\n return `ls-breadcrumb ls-breadcrumb--${this.variant()}`;\r\n });\r\n\r\n protected readonly _isTemplateSeparator = computed(() => {\r\n return this.separator() instanceof TemplateRef;\r\n });\r\n}\r\n","// @lumston/ds-angular — public API surface\r\nexport * from './icon';\r\nexport * from './dropdown';\r\nexport * from './inputs/button';\r\nexport * from './inputs/checkbox';\r\nexport * from './inputs/icon-button';\r\nexport * from './inputs/radio-button';\r\nexport * from './inputs/slider';\r\nexport * from './inputs/switch';\r\nexport * from './typography';\r\nexport * from './data-display';\r\nexport * from './media';\r\nexport * from './feedback';\r\nexport * from './overlay';\r\nexport * from './navigation';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lumston-ds-angular.mjs","sources":["../../../../libs/ds-angular/src/icon/icon.registry.ts","../../../../libs/ds-angular/src/icon/icon.component.ts","../../../../libs/ds-angular/src/dropdown/dropdown.component.ts","../../../../libs/ds-angular/src/dropdown/dropdown-content.directive.ts","../../../../libs/ds-angular/src/inputs/button/button.component.ts","../../../../libs/ds-angular/src/inputs/checkbox/checkbox.component.ts","../../../../libs/ds-angular/src/inputs/icon-button/icon-button.component.ts","../../../../libs/ds-angular/src/inputs/radio-button/radio-button.component.ts","../../../../libs/ds-angular/src/inputs/slider/slider.component.ts","../../../../libs/ds-angular/src/inputs/switch/switch.component.ts","../../../../libs/ds-angular/src/typography/link/link.component.ts","../../../../libs/ds-angular/src/typography/text/text.component.ts","../../../../libs/ds-angular/src/typography/tag/tag.component.ts","../../../../libs/ds-angular/src/data-display/badge/badge.component.ts","../../../../libs/ds-angular/src/data-display/chip/chip.component.ts","../../../../libs/ds-angular/src/overlay/tooltip/tooltip.component.ts","../../../../libs/ds-angular/src/media/avatar/avatar.component.ts","../../../../libs/ds-angular/src/media/avatar-group/avatar-group.component.ts","../../../../libs/ds-angular/src/media/logo/logo.component.ts","../../../../libs/ds-angular/src/feedback/progress-bar/progress-bar.component.ts","../../../../libs/ds-angular/src/feedback/loader/loader.component.ts","../../../../libs/ds-angular/src/feedback/alert/alert.component.ts","../../../../libs/ds-angular/src/overlay/menu/menu.component.ts","../../../../libs/ds-angular/src/overlay/menu/menu-item.component.ts","../../../../libs/ds-angular/src/overlay/menu/menu-trigger.directive.ts","../../../../libs/ds-angular/src/overlay/modal/modal-actions.component.ts","../../../../libs/ds-angular/src/overlay/modal/modal-title.component.ts","../../../../libs/ds-angular/src/overlay/modal/modal.service.ts","../../../../libs/ds-angular/src/overlay/modal/modal.component.ts","../../../../libs/ds-angular/src/overlay/modal/modal-content.component.ts","../../../../libs/ds-angular/src/overlay/popover/popover.component.ts","../../../../libs/ds-angular/src/navigation/pagination/pagination.component.ts","../../../../libs/ds-angular/src/navigation/breadcrumb/breadcrumb.component.ts","../../../../libs/ds-angular/src/public-api.ts","../../../../libs/ds-angular/src/lumston-ds-angular.ts"],"sourcesContent":["import { IconName } from './icon.types';\r\n\r\n/**\r\n * SVG icon registry.\r\n * Maps icon names to raw SVG strings.\r\n */\r\nexport const ICON_REGISTRY: Record<IconName, string> = {\r\n // UI Icons\r\n 'caret-down': `<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>`,\r\n\r\n 'carets-down': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M19 11L12 17L5 11\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path opacity=\"0.5\" d=\"M19 7L12 13L5 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>`,\r\n\r\n 'laptop': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M3 9C3 6.17157 3 4.75736 3.87868 3.87868C4.75736 3 6.17157 3 9 3H15C17.8284 3 19.2426 3 20.1213 3.87868C21 4.75736 21 6.17157 21 9V14C21 15.8856 21 16.8284 20.4142 17.4142C19.8284 18 18.8856 18 17 18H7C5.11438 18 4.17157 18 3.58579 17.4142C3 16.8284 3 15.8856 3 14V9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path opacity=\"0.5\" d=\"M22 21H2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M15 15H9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'menu': `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M20 7L4 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M20 12L4 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M20 17L4 17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'minus': `<svg width=\"16\" height=\"20\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\r\n </svg>`,\r\n\r\n 'moon': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M21.0672 11.8568L20.4253 11.469L21.0672 11.8568ZM12.1432 2.93276L11.7553 2.29085V2.29085L12.1432 2.93276ZM21.25 12C21.25 17.1086 17.1086 21.25 12 21.25V22.75C17.9371 22.75 22.75 17.9371 22.75 12H21.25ZM12 21.25C6.89137 21.25 2.75 17.1086 2.75 12H1.25C1.25 17.9371 6.06294 22.75 12 22.75V21.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75V1.25C6.06294 1.25 1.25 6.06294 1.25 12H2.75ZM15.5 14.25C12.3244 14.25 9.75 11.6756 9.75 8.5H8.25C8.25 12.5041 11.4959 15.75 15.5 15.75V14.25ZM20.4253 11.469C19.4172 13.1373 17.5882 14.25 15.5 14.25V15.75C18.1349 15.75 20.4407 14.3439 21.7092 12.2447L20.4253 11.469ZM9.75 8.5C9.75 6.41182 10.8627 4.5828 12.531 3.57467L11.7553 2.29085C9.65609 3.5593 8.25 5.86509 8.25 8.5H9.75ZM12 2.75C11.9115 2.75 11.8077 2.71008 11.7324 2.63168C11.6686 2.56527 11.6538 2.50244 11.6503 2.47703C11.6461 2.44587 11.6482 2.35557 11.7553 2.29085L12.531 3.57467C13.0342 3.27065 13.196 2.71398 13.1368 2.27627C13.0754 1.82126 12.7166 1.25 12 1.25V2.75ZM21.7092 12.2447C21.6444 12.3518 21.5541 12.3539 21.523 12.3497C21.4976 12.3462 21.4347 12.3314 21.3683 12.2676C21.2899 12.1923 21.25 12.0885 21.25 12H22.75C22.75 11.2834 22.1787 10.9246 21.7237 10.8632C21.286 10.804 20.7293 10.9658 20.4253 11.469L21.7092 12.2447Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'search': `<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"11.5\" cy=\"11.5\" r=\"9.5\" stroke=\"currentColor\" stroke-width=\"1.5\" opacity=\"0.5\" />\r\n <path d=\"M18.5 18.5L22 22\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'settings': `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path opacity=\"0.5\" d=\"M13.7654 2.15224C13.3978 2 12.9319 2 12 2C11.0681 2 10.6022 2 10.2346 2.15224C9.74457 2.35523 9.35522 2.74458 9.15223 3.23463C9.05957 3.45834 9.0233 3.7185 9.00911 4.09799C8.98826 4.65568 8.70226 5.17189 8.21894 5.45093C7.73564 5.72996 7.14559 5.71954 6.65219 5.45876C6.31645 5.2813 6.07301 5.18262 5.83294 5.15102C5.30704 5.08178 4.77518 5.22429 4.35436 5.5472C4.03874 5.78938 3.80577 6.1929 3.33983 6.99993C2.87389 7.80697 2.64092 8.21048 2.58899 8.60491C2.51976 9.1308 2.66227 9.66266 2.98518 10.0835C3.13256 10.2756 3.3397 10.437 3.66119 10.639C4.1338 10.936 4.43789 11.4419 4.43786 12C4.43783 12.5581 4.13375 13.0639 3.66118 13.3608C3.33965 13.5629 3.13248 13.7244 2.98508 13.9165C2.66217 14.3373 2.51966 14.8691 2.5889 15.395C2.64082 15.7894 2.87379 16.193 3.33973 17C3.80568 17.807 4.03865 18.2106 4.35426 18.4527C4.77508 18.7756 5.30694 18.9181 5.83284 18.8489C6.07289 18.8173 6.31632 18.7186 6.65204 18.5412C7.14547 18.2804 7.73556 18.27 8.2189 18.549C8.70224 18.8281 8.98826 19.3443 9.00911 19.9021C9.02331 20.2815 9.05957 20.5417 9.15223 20.7654C9.35522 21.2554 9.74457 21.6448 10.2346 21.8478C10.6022 22 11.0681 22 12 22C12.9319 22 13.3978 22 13.7654 21.8478C14.2554 21.6448 14.6448 21.2554 14.8477 20.7654C14.9404 20.5417 14.9767 20.2815 14.9909 19.902C15.0117 19.3443 15.2977 18.8281 15.781 18.549C16.2643 18.2699 16.8544 18.2804 17.3479 18.5412C17.6836 18.7186 17.927 18.8172 18.167 18.8488C18.6929 18.9181 19.2248 18.7756 19.6456 18.4527C19.9612 18.2105 20.1942 17.807 20.6601 16.9999C21.1261 16.1929 21.3591 15.7894 21.411 15.395C21.4802 14.8691 21.3377 14.3372 21.0148 13.9164C20.8674 13.7243 20.6602 13.5628 20.3387 13.3608C19.8662 13.0639 19.5621 12.558 19.5621 11.9999C19.5621 11.4418 19.8662 10.9361 20.3387 10.6392C20.6603 10.4371 20.8675 10.2757 21.0149 10.0835C21.3378 9.66273 21.4803 9.13087 21.4111 8.60497C21.3592 8.21055 21.1262 7.80703 20.6602 7C20.1943 6.19297 19.9613 5.78945 19.6457 5.54727C19.2249 5.22436 18.693 5.08185 18.1671 5.15109C17.9271 5.18269 17.6837 5.28136 17.3479 5.4588C16.8545 5.71959 16.2644 5.73002 15.7811 5.45096C15.2977 5.17191 15.0117 4.65566 14.9909 4.09794C14.9767 3.71848 14.9404 3.45833 14.8477 3.23463C14.6448 2.74458 14.2554 2.35523 13.7654 2.15224Z\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n </svg>`,\r\n\r\n 'sun': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"12\" cy=\"12\" r=\"5\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path d=\"M12 2V4\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M12 20V22\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M4 12L2 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path d=\"M22 12L20 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M19.7778 4.22266L17.5558 6.25424\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M4.22217 4.22266L6.44418 6.25424\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M6.44434 17.5557L4.22211 19.7779\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n <path opacity=\"0.5\" d=\"M19.7778 19.7773L17.5558 17.5551\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n 'x': `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\r\n </svg>`,\r\n\r\n 'x-circle': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle opacity=\"0.5\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"1.5\" />\r\n <path d=\"M14.5 9.50002L9.5 14.5M9.49998 9.5L14.5 14.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\r\n </svg>`,\r\n\r\n // Menu Icons\r\n 'menu-apps': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g opacity=\"0.5\">\r\n <path d=\"M14 2.75C15.9068 2.75 17.2615 2.75159 18.2892 2.88976C19.2952 3.02503 19.8749 3.27869 20.2981 3.7019C20.7213 4.12511 20.975 4.70476 21.1102 5.71085C21.2484 6.73851 21.25 8.09318 21.25 10C21.25 10.4142 21.5858 10.75 22 10.75C22.4142 10.75 22.75 10.4142 22.75 10V9.94359C22.75 8.10583 22.75 6.65019 22.5969 5.51098C22.4392 4.33856 22.1071 3.38961 21.3588 2.64124C20.6104 1.89288 19.6614 1.56076 18.489 1.40314C17.3498 1.24997 15.8942 1.24998 14.0564 1.25H14C13.5858 1.25 13.25 1.58579 13.25 2C13.25 2.41421 13.5858 2.75 14 2.75Z\" fill=\"currentColor\" />\r\n <path d=\"M9.94358 1.25H10C10.4142 1.25 10.75 1.58579 10.75 2C10.75 2.41421 10.4142 2.75 10 2.75C8.09318 2.75 6.73851 2.75159 5.71085 2.88976C4.70476 3.02503 4.12511 3.27869 3.7019 3.7019C3.27869 4.12511 3.02503 4.70476 2.88976 5.71085C2.75159 6.73851 2.75 8.09318 2.75 10C2.75 10.4142 2.41421 10.75 2 10.75C1.58579 10.75 1.25 10.4142 1.25 10V9.94358C1.24998 8.10583 1.24997 6.65019 1.40314 5.51098C1.56076 4.33856 1.89288 3.38961 2.64124 2.64124C3.38961 1.89288 4.33856 1.56076 5.51098 1.40314C6.65019 1.24997 8.10583 1.24998 9.94358 1.25Z\" fill=\"currentColor\" />\r\n <path d=\"M22 13.25C22.4142 13.25 22.75 13.5858 22.75 14V14.0564C22.75 15.8942 22.75 17.3498 22.5969 18.489C22.4392 19.6614 22.1071 20.6104 21.3588 21.3588C20.6104 22.1071 19.6614 22.4392 18.489 22.5969C17.3498 22.75 15.8942 22.75 14.0564 22.75H14C13.5858 22.75 13.25 22.4142 13.25 22C13.25 21.5858 13.5858 21.25 14 21.25C15.9068 21.25 17.2615 21.2484 18.2892 21.1102C19.2952 20.975 19.8749 20.7213 20.2981 20.2981C20.7213 19.8749 20.975 19.2952 21.1102 18.2892C21.2484 17.2615 21.25 15.9068 21.25 14C21.25 13.5858 21.5858 13.25 22 13.25Z\" fill=\"currentColor\" />\r\n <path d=\"M2.75 14C2.75 13.5858 2.41421 13.25 2 13.25C1.58579 13.25 1.25 13.5858 1.25 14V14.0564C1.24998 15.8942 1.24997 17.3498 1.40314 18.489C1.56076 19.6614 1.89288 20.6104 2.64124 21.3588C3.38961 22.1071 4.33856 22.4392 5.51098 22.5969C6.65019 22.75 8.10583 22.75 9.94359 22.75H10C10.4142 22.75 10.75 22.4142 10.75 22C10.75 21.5858 10.4142 21.25 10 21.25C8.09318 21.25 6.73851 21.2484 5.71085 21.1102C4.70476 20.975 4.12511 20.7213 3.7019 20.2981C3.27869 19.8749 3.02503 19.2952 2.88976 18.2892C2.75159 17.2615 2.75 15.9068 2.75 14Z\" fill=\"currentColor\" />\r\n </g>\r\n <path d=\"M5.52721 5.52721C5 6.05442 5 6.90294 5 8.6C5 9.73137 5 10.2971 5.35147 10.6485C5.70294 11 6.26863 11 7.4 11H8.6C9.73137 11 10.2971 11 10.6485 10.6485C11 10.2971 11 9.73137 11 8.6V7.4C11 6.26863 11 5.70294 10.6485 5.35147C10.2971 5 9.73137 5 8.6 5C6.90294 5 6.05442 5 5.52721 5.52721Z\" fill=\"currentColor\" />\r\n <path d=\"M5.52721 18.4728C5 17.9456 5 17.0971 5 15.4C5 14.2686 5 13.7029 5.35147 13.3515C5.70294 13 6.26863 13 7.4 13H8.6C9.73137 13 10.2971 13 10.6485 13.3515C11 13.7029 11 14.2686 11 15.4V16.6C11 17.7314 11 18.2971 10.6485 18.6485C10.2971 19 9.73138 19 8.60002 19C6.90298 19 6.05441 19 5.52721 18.4728Z\" fill=\"currentColor\" />\r\n <path d=\"M13 7.4C13 6.26863 13 5.70294 13.3515 5.35147C13.7029 5 14.2686 5 15.4 5C17.0971 5 17.9456 5 18.4728 5.52721C19 6.05442 19 6.90294 19 8.6C19 9.73137 19 10.2971 18.6485 10.6485C18.2971 11 17.7314 11 16.6 11H15.4C14.2686 11 13.7029 11 13.3515 10.6485C13 10.2971 13 9.73137 13 8.6V7.4Z\" fill=\"currentColor\" />\r\n <path d=\"M13.3515 18.6485C13 18.2971 13 17.7314 13 16.6V15.4C13 14.2686 13 13.7029 13.3515 13.3515C13.7029 13 14.2686 13 15.4 13H16.6C17.7314 13 18.2971 13 18.6485 13.3515C19 13.7029 19 14.2686 19 15.4C19 17.097 19 17.9456 18.4728 18.4728C17.9456 19 17.0971 19 15.4 19C14.2687 19 13.7029 19 13.3515 18.6485Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-components': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.42229 20.6181C10.1779 21.5395 11.0557 22.0001 12 22.0001V12.0001L2.63802 7.07275C2.62423 7.09491 2.6107 7.11727 2.5974 7.13986C2 8.15436 2 9.41678 2 11.9416V12.0586C2 14.5834 2 15.8459 2.5974 16.8604C3.19479 17.8749 4.27063 18.4395 6.42229 19.5686L8.42229 20.6181Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.7\" d=\"M17.5774 4.43152L15.5774 3.38197C13.8218 2.46066 12.944 2 11.9997 2C11.0554 2 10.1776 2.46066 8.42197 3.38197L6.42197 4.43152C4.31821 5.53552 3.24291 6.09982 2.6377 7.07264L11.9997 12L21.3617 7.07264C20.7564 6.09982 19.6811 5.53552 17.5774 4.43152Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.5\" d=\"M21.4026 7.13986C21.3893 7.11727 21.3758 7.09491 21.362 7.07275L12 12.0001V22.0001C12.9443 22.0001 13.8221 21.5395 15.5777 20.6181L17.5777 19.5686C19.7294 18.4395 20.8052 17.8749 21.4026 16.8604C22 15.8459 22 14.5834 22 12.0586V11.9416C22 9.41678 22 8.15436 21.4026 7.13986Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-dashboard': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M2 12.2039C2 9.91549 2 8.77128 2.5192 7.82274C3.0384 6.87421 3.98695 6.28551 5.88403 5.10813L7.88403 3.86687C9.88939 2.62229 10.8921 2 12 2C13.1079 2 14.1106 2.62229 16.116 3.86687L18.116 5.10812C20.0131 6.28551 20.9616 6.87421 21.4808 7.82274C22 8.77128 22 9.91549 22 12.2039V13.725C22 17.6258 22 19.5763 20.8284 20.7881C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.7881C2 19.5763 2 17.6258 2 13.725V12.2039Z\" fill=\"currentColor\" />\r\n <path d=\"M9 17.25C8.58579 17.25 8.25 17.5858 8.25 18C8.25 18.4142 8.58579 18.75 9 18.75H15C15.4142 18.75 15.75 18.4142 15.75 18C15.75 17.5858 15.4142 17.25 15 17.25H9Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-datatables': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M4.97883 9.68508C2.99294 8.89073 2 8.49355 2 8C2 7.50645 2.99294 7.10927 4.97883 6.31492L7.7873 5.19153C9.77318 4.39718 10.7661 4 12 4C13.2339 4 14.2268 4.39718 16.2127 5.19153L19.0212 6.31492C21.0071 7.10927 22 7.50645 22 8C22 8.49355 21.0071 8.89073 19.0212 9.68508L16.2127 10.8085C14.2268 11.6028 13.2339 12 12 12C10.7661 12 9.77318 11.6028 7.7873 10.8085L4.97883 9.68508Z\" fill=\"currentColor\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 8C2 8.49355 2.99294 8.89073 4.97883 9.68508L7.7873 10.8085C9.77318 11.6028 10.7661 12 12 12C13.2339 12 14.2268 11.6028 16.2127 10.8085L19.0212 9.68508C21.0071 8.89073 22 8.49355 22 8C22 7.50645 21.0071 7.10927 19.0212 6.31492L16.2127 5.19153C14.2268 4.39718 13.2339 4 12 4C10.7661 4 9.77318 4.39718 7.7873 5.19153L4.97883 6.31492C2.99294 7.10927 2 7.50645 2 8Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.7\" d=\"M5.76613 10L4.97883 10.3149C2.99294 11.1093 2 11.5065 2 12C2 12.4935 2.99294 12.8907 4.97883 13.6851L7.7873 14.8085C9.77318 15.6028 10.7661 16 12 16C13.2339 16 14.2268 15.6028 16.2127 14.8085L19.0212 13.6851C21.0071 12.8907 22 12.4935 22 12C22 11.5065 21.0071 11.1093 19.0212 10.3149L18.2339 10L16.2127 10.8085C14.2268 11.6028 13.2339 12 12 12C10.7661 12 9.77318 11.6028 7.7873 10.8085L5.76613 10Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.4\" d=\"M5.76613 14L4.97883 14.3149C2.99294 15.1093 2 15.5065 2 16C2 16.4935 2.99294 16.8907 4.97883 17.6851L7.7873 18.8085C9.77318 19.6028 10.7661 20 12 20C13.2339 20 14.2268 19.6028 16.2127 18.8085L19.0212 17.6851C21.0071 16.8907 22 16.4935 22 16C22 15.5065 21.0071 15.1093 19.0212 14.3149L18.2339 14L16.2127 14.8085C14.2268 15.6028 13.2339 16 12 16C10.7661 16 9.77318 15.6028 7.7873 14.8085L5.76613 14Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-documentation': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4.69434V18.6943C4 20.3512 5.34315 21.6943 7 21.6943H17C18.6569 21.6943 20 20.3512 20 18.6943V8.69434C20 7.03748 18.6569 5.69434 17 5.69434H5C4.44772 5.69434 4 5.24662 4 4.69434ZM7.25 11.6943C7.25 11.2801 7.58579 10.9443 8 10.9443H16C16.4142 10.9443 16.75 11.2801 16.75 11.6943C16.75 12.1085 16.4142 12.4443 16 12.4443H8C7.58579 12.4443 7.25 12.1085 7.25 11.6943ZM7.25 15.1943C7.25 14.7801 7.58579 14.4443 8 14.4443H13.5C13.9142 14.4443 14.25 14.7801 14.25 15.1943C14.25 15.6085 13.9142 15.9443 13.5 15.9443H8C7.58579 15.9443 7.25 15.6085 7.25 15.1943Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.5\" d=\"M18 4.00038V5.86504C17.6872 5.75449 17.3506 5.69434 17 5.69434H5C4.44772 5.69434 4 5.24662 4 4.69434V4.62329C4 4.09027 4.39193 3.63837 4.91959 3.56299L15.7172 2.02048C16.922 1.84835 18 2.78328 18 4.00038Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-elements': `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.73167 5.77133L5.66953 9.91436C4.3848 11.6526 3.74244 12.5217 4.09639 13.205C4.10225 13.2164 4.10829 13.2276 4.1145 13.2387C4.48945 13.9117 5.59888 13.9117 7.81775 13.9117C9.05079 13.9117 9.6673 13.9117 10.054 14.2754L10.074 14.2946L13.946 9.72466L13.926 9.70541C13.5474 9.33386 13.5474 8.74151 13.5474 7.55682V7.24712C13.5474 3.96249 13.5474 2.32018 12.6241 2.03721C11.7007 1.75425 10.711 3.09327 8.73167 5.77133Z\" fill=\"currentColor\" />\r\n <path opacity=\"0.5\" d=\"M10.4527 16.4432L10.4527 16.7528C10.4527 20.0374 10.4527 21.6798 11.376 21.9627C12.2994 22.2457 13.2891 20.9067 15.2685 18.2286L18.3306 14.0856C19.6154 12.3474 20.2577 11.4783 19.9038 10.7949C19.8979 10.7836 19.8919 10.7724 19.8857 10.7613C19.5107 10.0883 18.4013 10.0883 16.1824 10.0883C14.9494 10.0883 14.3329 10.0883 13.9462 9.72461L10.0742 14.2946C10.4528 14.6661 10.4527 15.2585 10.4527 16.4432Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-forms': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M3 10C3 6.22876 3 4.34315 4.17157 3.17157C5.34315 2 7.22876 2 11 2H13C16.7712 2 18.6569 2 19.8284 3.17157C21 4.34315 21 6.22876 21 10V14C21 17.7712 21 19.6569 19.8284 20.8284C18.6569 22 16.7712 22 13 22H11C7.22876 22 5.34315 22 4.17157 20.8284C3 19.6569 3 17.7712 3 14V10Z\" fill=\"currentColor\" />\r\n <path d=\"M16.5189 16.5013C16.6939 16.3648 16.8526 16.2061 17.1701 15.8886L21.1275 11.9312C21.2231 11.8356 21.1793 11.6708 21.0515 11.6264C20.5844 11.4644 19.9767 11.1601 19.4083 10.5917C18.8399 10.0233 18.5356 9.41561 18.3736 8.94849C18.3292 8.82066 18.1644 8.77687 18.0688 8.87254L14.1114 12.8299C13.7939 13.1474 13.6352 13.3061 13.4987 13.4811C13.3377 13.6876 13.1996 13.9109 13.087 14.1473C12.9915 14.3476 12.9205 14.5606 12.7786 14.9865L12.5951 15.5368L12.3034 16.4118L12.0299 17.2323C11.9601 17.4419 12.0146 17.6729 12.1708 17.8292C12.3271 17.9854 12.5581 18.0399 12.7677 17.9701L13.5882 17.6966L14.4632 17.4049L15.0135 17.2214L15.0136 17.2214C15.4394 17.0795 15.6524 17.0085 15.8527 16.913C16.0891 16.8004 16.3124 16.6623 16.5189 16.5013Z\" fill=\"currentColor\" />\r\n <path d=\"M22.3665 10.6922C23.2112 9.84754 23.2112 8.47812 22.3665 7.63348C21.5219 6.78884 20.1525 6.78884 19.3078 7.63348L19.1806 7.76071C19.0578 7.88348 19.0022 8.05496 19.0329 8.22586C19.0522 8.33336 19.0879 8.49053 19.153 8.67807C19.2831 9.05314 19.5288 9.54549 19.9917 10.0083C20.4545 10.4712 20.9469 10.7169 21.3219 10.847C21.5095 10.9121 21.6666 10.9478 21.7741 10.9671C21.945 10.9978 22.1165 10.9422 22.2393 10.8194L22.3665 10.6922Z\" fill=\"currentColor\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.25 9C7.25 8.58579 7.58579 8.25 8 8.25H14.5C14.9142 8.25 15.25 8.58579 15.25 9C15.25 9.41421 14.9142 9.75 14.5 9.75H8C7.58579 9.75 7.25 9.41421 7.25 9ZM7.25 13C7.25 12.5858 7.58579 12.25 8 12.25H11C11.4142 12.25 11.75 12.5858 11.75 13C11.75 13.4142 11.4142 13.75 11 13.75H8C7.58579 13.75 7.25 13.4142 7.25 13ZM7.25 17C7.25 16.5858 7.58579 16.25 8 16.25H9.5C9.91421 16.25 10.25 16.5858 10.25 17C10.25 17.4142 9.91421 17.75 9.5 17.75H8C7.58579 17.75 7.25 17.4142 7.25 17Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-more': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\" fill=\"currentColor\" />\r\n <path d=\"M12.75 9C12.75 8.58579 12.4142 8.25 12 8.25C11.5858 8.25 11.25 8.58579 11.25 9L11.25 11.25H9C8.58579 11.25 8.25 11.5858 8.25 12C8.25 12.4142 8.58579 12.75 9 12.75H11.25V15C11.25 15.4142 11.5858 15.75 12 15.75C12.4142 15.75 12.75 15.4142 12.75 15L12.75 12.75H15C15.4142 12.75 15.75 12.4142 15.75 12C15.75 11.5858 15.4142 11.25 15 11.25H12.75V9Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-pages': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V10C2 6.22876 2 4.34315 3.17157 3.17157C4.34315 2 6.23869 2 10.0298 2C10.6358 2 11.1214 2 11.53 2.01666C11.5166 2.09659 11.5095 2.17813 11.5092 2.26057L11.5 5.09497C11.4999 6.19207 11.4998 7.16164 11.6049 7.94316C11.7188 8.79028 11.9803 9.63726 12.6716 10.3285C13.3628 11.0198 14.2098 11.2813 15.0569 11.3952C15.8385 11.5003 16.808 11.5002 17.9051 11.5001L18 11.5001H21.9574C22 12.0344 22 12.6901 22 13.5629V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22Z\" fill=\"currentColor\" />\r\n <path d=\"M6 13.75C5.58579 13.75 5.25 14.0858 5.25 14.5C5.25 14.9142 5.58579 15.25 6 15.25H14C14.4142 15.25 14.75 14.9142 14.75 14.5C14.75 14.0858 14.4142 13.75 14 13.75H6Z\" fill=\"currentColor\" />\r\n <path d=\"M6 17.25C5.58579 17.25 5.25 17.5858 5.25 18C5.25 18.4142 5.58579 18.75 6 18.75H11.5C11.9142 18.75 12.25 18.4142 12.25 18C12.25 17.5858 11.9142 17.25 11.5 17.25H6Z\" fill=\"currentColor\" />\r\n <path d=\"M11.5092 2.2601L11.5 5.0945C11.4999 6.1916 11.4998 7.16117 11.6049 7.94269C11.7188 8.78981 11.9803 9.6368 12.6716 10.3281C13.3629 11.0193 14.2098 11.2808 15.057 11.3947C15.8385 11.4998 16.808 11.4997 17.9051 11.4996L21.9574 11.4996C21.9698 11.6552 21.9786 11.821 21.9848 11.9995H22C22 11.732 22 11.5983 21.9901 11.4408C21.9335 10.5463 21.5617 9.52125 21.0315 8.79853C20.9382 8.6713 20.8743 8.59493 20.7467 8.44218C19.9542 7.49359 18.911 6.31193 18 5.49953C17.1892 4.77645 16.0787 3.98536 15.1101 3.3385C14.2781 2.78275 13.862 2.50487 13.2915 2.29834C13.1403 2.24359 12.9408 2.18311 12.7846 2.14466C12.4006 2.05013 12.0268 2.01725 11.5 2.00586L11.5092 2.2601Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n\r\n 'menu-scrumboard': `<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.5\" d=\"M21 15.9983V9.99826C21 7.16983 21 5.75562 20.1213 4.87694C19.3529 4.10856 18.175 4.01211 16 4H8C5.82497 4.01211 4.64706 4.10856 3.87868 4.87694C3 5.75562 3 7.16983 3 9.99826V15.9983C3 18.8267 3 20.2409 3.87868 21.1196C4.75736 21.9983 6.17157 21.9983 9 21.9983H15C17.8284 21.9983 19.2426 21.9983 20.1213 21.1196C21 20.2409 21 18.8267 21 15.9983Z\" fill=\"currentColor\" />\r\n <path d=\"M8 3.5C8 2.67157 8.67157 2 9.5 2H14.5C15.3284 2 16 2.67157 16 3.5V4.5C16 5.32843 15.3284 6 14.5 6H9.5C8.67157 6 8 5.32843 8 4.5V3.5Z\" fill=\"currentColor\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 9.25C12.4142 9.25 12.75 9.58579 12.75 10V12.25L15 12.25C15.4142 12.25 15.75 12.5858 15.75 13C15.75 13.4142 15.4142 13.75 15 13.75L12.75 13.75L12.75 16C12.75 16.4142 12.4142 16.75 12 16.75C11.5858 16.75 11.25 16.4142 11.25 16L11.25 13.75H9C8.58579 13.75 8.25 13.4142 8.25 13C8.25 12.5858 8.58579 12.25 9 12.25L11.25 12.25L11.25 10C11.25 9.58579 11.5858 9.25 12 9.25Z\" fill=\"currentColor\" />\r\n </svg>`,\r\n};\r\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ICON_REGISTRY } from './icon.registry';\r\nimport { IconName } from './icon.types';\r\n\r\n@Component({\r\n selector: 'ls-icon',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `<span [innerHTML]=\"svgHtml()\" [class]=\"iconClass()\"></span>`,\r\n styleUrls: ['./icon.component.css'],\r\n})\r\nexport class IconComponent {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n readonly name = input.required<IconName>();\r\n readonly iconClass = input<string>('');\r\n\r\n protected readonly svgHtml = computed(() => {\r\n const iconName = this.name();\r\n const svg = ICON_REGISTRY[iconName];\r\n if (!svg) {\r\n console.warn(`Icon \"${iconName}\" not found in registry`);\r\n return '';\r\n }\r\n return this.sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n}\r\n","import { Component, ElementRef, HostListener, Input, ViewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n imports: [CommonModule],\r\n selector: 'ls-dropdown',\r\n template: `\r\n <div class=\"dropdown\" #dropdown>\r\n <div (click)=\"toggle()\">\r\n <ng-content select=\"[dropdownButton]\"></ng-content>\r\n </div>\r\n @if (isOpen || isAnimating) {\r\n <div class=\"dropdown-content\"\r\n [ngClass]=\"[contentClass, isOpen ? 'toggle-enter' : 'toggle-leave']\"\r\n (animationend)=\"onAnimationEnd()\">\r\n <ng-content select=\"[dropdownContent]\"></ng-content>\r\n </div>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./dropdown.component.css']\r\n})\r\nexport class DropdownComponent {\r\n @Input() contentClass: string = '';\r\n @ViewChild('dropdown') dropdown!: ElementRef;\r\n isOpen = false;\r\n isAnimating = false;\r\n\r\n toggle() {\r\n if (this.isOpen) {\r\n this.isAnimating = true;\r\n this.isOpen = false;\r\n } else {\r\n this.isOpen = true;\r\n }\r\n }\r\n\r\n close() {\r\n if (this.isOpen) {\r\n this.isAnimating = true;\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n onAnimationEnd() {\r\n this.isAnimating = false;\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (this.dropdown && !this.dropdown.nativeElement.contains(event.target)) {\r\n this.close();\r\n }\r\n }\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[lsDropdownContent]', standalone: true })\r\nexport class LsDropdownContentDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type ButtonVariant = 'contained' | 'outline' | 'text';\r\nexport type ButtonColor =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'dark';\r\nexport type ButtonSize = 'small' | 'medium' | 'large';\r\nexport type ButtonLoadingIndicator = 'spinner' | (string & {});\r\nexport type ButtonLoadingPosition = 'center' | 'start' | 'end';\r\n\r\n@Component({\r\n selector: 'ls-button',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n template: `\r\n <button\r\n [type]=\"type()\"\r\n [disabled]=\"disabled() || loading()\"\r\n [class]=\"buttonClasses\"\r\n (click)=\"onClick($event)\">\r\n <ng-template #spinner>\r\n <svg class=\"btn-spinner\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <circle\r\n class=\"btn-spinner-circle\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\" />\r\n <path\r\n class=\"btn-spinner-path\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\r\n </svg>\r\n </ng-template>\r\n\r\n @if (showStartIcon) {\r\n <span\r\n class=\"btn-icon btn-icon--start\"\r\n [class]=\"iconSizeClass\"\r\n [innerHTML]=\"sanitizedStartIcon\"></span>\r\n }\r\n\r\n @if (loading() && isCustomText) {\r\n <span class=\"btn-loading-overlay\">\r\n {{ loadingIndicator() }}\r\n </span>\r\n }\r\n\r\n @if (loading() && !isCustomText && loadingPosition() === 'start') {\r\n <span class=\"btn-loading-inline btn-loading-inline--start\">\r\n <ng-container *ngTemplateOutlet=\"spinner\" />\r\n </span>\r\n }\r\n\r\n @if (loading() && !isCustomText && loadingPosition() === 'center') {\r\n <span class=\"btn-loading-overlay\">\r\n <ng-container *ngTemplateOutlet=\"spinner\" />\r\n </span>\r\n }\r\n\r\n <span\r\n [class]=\"\r\n loading() && (isCustomText || loadingPosition() === 'center')\r\n ? 'btn-content--hidden'\r\n : ''\r\n \">\r\n <ng-content />\r\n </span>\r\n\r\n @if (loading() && !isCustomText && loadingPosition() === 'end') {\r\n <span class=\"btn-loading-inline btn-loading-inline--end\">\r\n <ng-container *ngTemplateOutlet=\"spinner\" />\r\n </span>\r\n }\r\n @if (showEndIcon) {\r\n <span\r\n class=\"btn-icon btn-icon--end\"\r\n [class]=\"iconSizeClass\"\r\n [innerHTML]=\"sanitizedEndIcon\"></span>\r\n }\r\n </button>\r\n `,\r\n styleUrls: ['./button.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n /** Host element of this component. Pass directly as `anchorEl` to overlay components like `ls-menu`. */\r\n readonly nativeElement: HTMLElement = this._elementRef.nativeElement;\r\n\r\n readonly variant = input<ButtonVariant>('contained');\r\n readonly color = input<ButtonColor>('primary');\r\n readonly size = input<ButtonSize>('medium');\r\n readonly type = input<'button' | 'submit' | 'reset'>('button');\r\n readonly disabled = input<boolean>(false);\r\n readonly fullWidth = input<boolean>(false);\r\n readonly startIcon = input<string>();\r\n readonly endIcon = input<string>();\r\n readonly loading = input<boolean>(false);\r\n readonly loadingIndicator = input<ButtonLoadingIndicator>('spinner');\r\n readonly loadingPosition = input<ButtonLoadingPosition>('center');\r\n readonly rounded = input<boolean>(false);\r\n\r\n readonly clicked = output<MouseEvent>();\r\n\r\n get isCustomText(): boolean {\r\n return this.loadingIndicator() !== 'spinner';\r\n }\r\n\r\n get iconSizeClass(): string {\r\n switch (this.size()) {\r\n case 'small':\r\n return 'btn-icon--sm';\r\n case 'large':\r\n return 'btn-icon--lg';\r\n default:\r\n return 'btn-icon--md';\r\n }\r\n }\r\n\r\n get showStartIcon(): boolean {\r\n if (!this.startIcon()) return false;\r\n if (!this.loading()) return true;\r\n return this.loadingPosition() === 'end' && !this.isCustomText;\r\n }\r\n\r\n get showEndIcon(): boolean {\r\n if (!this.endIcon()) return false;\r\n if (!this.loading()) return true;\r\n return this.loadingPosition() === 'start' && !this.isCustomText;\r\n }\r\n\r\n get sanitizedStartIcon(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.startIcon() ?? '');\r\n }\r\n\r\n get sanitizedEndIcon(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.endIcon() ?? '');\r\n }\r\n\r\n get buttonClasses(): string {\r\n const classes = ['btn'];\r\n\r\n const variant = this.variant();\r\n const color = this.color();\r\n\r\n // Variant + color mapping\r\n if (variant === 'contained') {\r\n classes.push(`btn-${color}`);\r\n }\r\n\r\n if (variant === 'outline') {\r\n classes.push(`btn-outline-${color}`);\r\n }\r\n\r\n if (variant === 'text') {\r\n classes.push(`btn-text-${color}`);\r\n }\r\n\r\n // Size\r\n switch (this.size()) {\r\n case 'small':\r\n classes.push('btn-sm');\r\n break;\r\n case 'large':\r\n classes.push('btn-lg');\r\n break;\r\n default:\r\n classes.push('btn-md');\r\n }\r\n\r\n if (this.fullWidth()) {\r\n classes.push('btn-full-width');\r\n }\r\n\r\n if (this.rounded()) {\r\n classes.push('btn-rounded');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled() && !this.loading()) {\r\n this.clicked.emit(event);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type CheckboxColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type CheckboxSize = 'small' | 'medium';\r\n\r\nexport type CheckboxLabelPlacement =\r\n | 'start'\r\n | 'end'\r\n | 'top'\r\n | 'bottom';\r\n\r\nconst INDETERMINATE_SVG =\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">' +\r\n '<path d=\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-2 10H7v-2h10v2z\"/>' +\r\n '</svg>';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-checkbox',\r\n standalone: true,\r\n styleUrls: ['./checkbox.component.css'],\r\n template: `\r\n <label [class]=\"checkboxClasses()\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-input\"\r\n [checked]=\"_isChecked()\"\r\n [disabled]=\"disabled()\"\r\n [indeterminate]=\"indeterminate()\"\r\n (change)=\"onToggle()\"\r\n />\r\n <span\r\n class=\"checkbox-icon\"\r\n [innerHTML]=\"currentIcon()\"\r\n ></span>\r\n <span class=\"checkbox-label\">\r\n <ng-content />\r\n </span>\r\n </label>\r\n `,\r\n})\r\nexport class CheckboxComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly icon = input.required<string>();\r\n readonly checkedIcon = input.required<string>();\r\n readonly checked = input<boolean>(false);\r\n readonly defaultChecked = input<boolean>(false);\r\n readonly color = input<CheckboxColor>('primary');\r\n readonly size = input<CheckboxSize>('medium');\r\n readonly disabled = input<boolean>(false);\r\n readonly indeterminate = input<boolean>(false);\r\n readonly labelPlacement =\r\n input<CheckboxLabelPlacement>('end');\r\n\r\n readonly changed = output<boolean>();\r\n\r\n protected readonly _isChecked = signal(false);\r\n\r\n private _isFirstSync = true;\r\n\r\n private readonly _syncChecked = effect(() => {\r\n const checked = this.checked();\r\n if (this._isFirstSync) {\r\n this._isFirstSync = false;\r\n this._isChecked.set(checked || this.defaultChecked());\r\n } else {\r\n this._isChecked.set(checked);\r\n }\r\n });\r\n\r\n protected readonly checkboxClasses = computed(() => {\r\n const s = this.size() === 'small' ? 'sm' : 'md';\r\n const parts = [\r\n 'checkbox',\r\n `checkbox-${s}`,\r\n `checkbox-color-${this.color()}`,\r\n `checkbox-label-${this.labelPlacement()}`,\r\n ];\r\n\r\n if (this._isChecked()) {\r\n parts.push('checkbox-checked');\r\n }\r\n if (this.disabled()) {\r\n parts.push('checkbox-disabled');\r\n }\r\n if (this.indeterminate()) {\r\n parts.push('checkbox-indeterminate');\r\n }\r\n\r\n return parts.join(' ');\r\n });\r\n\r\n protected readonly currentIcon = computed<SafeHtml>(() => {\r\n let svg: string;\r\n\r\n if (this.indeterminate()) {\r\n svg = INDETERMINATE_SVG;\r\n } else if (this._isChecked()) {\r\n svg = this.checkedIcon();\r\n } else {\r\n svg = this.icon();\r\n }\r\n\r\n return this._sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n\r\n onToggle(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n const next = !this._isChecked();\r\n this._isChecked.set(next);\r\n this.changed.emit(next);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type IconButtonColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'dark';\r\nexport type IconButtonSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n selector: 'ls-icon-button',\r\n standalone: true,\r\n template: `\r\n <button\r\n [type]=\"type()\"\r\n [disabled]=\"disabled() || loading()\"\r\n [class]=\"buttonClasses\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.aria-busy]=\"loading() || null\"\r\n (click)=\"onClick($event)\">\r\n @if (loading()) {\r\n <svg class=\"icon-btn-spinner\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <circle\r\n class=\"icon-btn-spinner-circle\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\" />\r\n <path\r\n class=\"icon-btn-spinner-path\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\" />\r\n </svg>\r\n } @else {\r\n <span class=\"icon-btn-icon\" [innerHTML]=\"sanitizedIcon\"></span>\r\n }\r\n </button>\r\n `,\r\n styleUrls: ['./icon-button.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconButtonComponent {\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n readonly icon = input.required<string>();\r\n readonly ariaLabel = input.required<string>();\r\n readonly color = input<IconButtonColor>('primary');\r\n readonly size = input<IconButtonSize>('medium');\r\n readonly type = input<'button' | 'submit' | 'reset'>('button');\r\n readonly disabled = input<boolean>(false);\r\n readonly loading = input<boolean>(false);\r\n\r\n readonly clicked = output<MouseEvent>();\r\n\r\n get sanitizedIcon(): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.icon());\r\n }\r\n\r\n get buttonClasses(): string {\r\n const classes = ['icon-btn'];\r\n\r\n classes.push(`icon-btn-${this.color()}`);\r\n\r\n switch (this.size()) {\r\n case 'small':\r\n classes.push('icon-btn-sm');\r\n break;\r\n case 'large':\r\n classes.push('icon-btn-lg');\r\n break;\r\n default:\r\n classes.push('icon-btn-md');\r\n }\r\n\r\n return classes.join(' ');\r\n }\r\n\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled() && !this.loading()) {\r\n this.clicked.emit(event);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n forwardRef,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport type RadioButtonColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type RadioButtonSize = 'small' | 'medium';\r\n\r\nexport type RadioButtonLabelPlacement =\r\n | 'start'\r\n | 'end'\r\n | 'top'\r\n | 'bottom';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n selector: 'ls-radio-button',\r\n standalone: true,\r\n styleUrls: ['./radio-button.component.css'],\r\n template: `\r\n <label [class]=\"radioClasses()\">\r\n <button\r\n type=\"button\"\r\n role=\"radio\"\r\n class=\"radio-indicator\"\r\n [attr.aria-checked]=\"_isChecked()\"\r\n [disabled]=\"isEffectivelyDisabled()\"\r\n (click)=\"onToggle()\"\r\n (keydown.space)=\"onToggle(); $event.preventDefault()\"\r\n (keydown.enter)=\"onToggle(); $event.preventDefault()\">\r\n </button>\r\n <span class=\"radio-label\">\r\n <ng-content />\r\n </span>\r\n </label>\r\n `,\r\n})\r\nexport class RadioButtonComponent\r\n implements ControlValueAccessor\r\n{\r\n public readonly checked = input<boolean>(false);\r\n public readonly color = input<RadioButtonColor>('primary');\r\n public readonly size = input<RadioButtonSize>('medium');\r\n public readonly disabled = input<boolean>(false);\r\n public readonly labelPlacement =\r\n input<RadioButtonLabelPlacement>('end');\r\n\r\n public readonly changed = output<boolean>();\r\n\r\n protected readonly _isChecked = signal(false);\r\n protected readonly _isDisabledByCva = signal(false);\r\n\r\n private _onChange: (val: boolean) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n\r\n private readonly _syncChecked = effect(() => {\r\n this._isChecked.set(this.checked());\r\n });\r\n\r\n protected readonly radioClasses = computed(() => {\r\n const s = this.size() === 'small' ? 'sm' : 'md';\r\n const parts = [\r\n 'radio',\r\n `radio-${s}`,\r\n `radio-color-${this.color()}`,\r\n `radio-label-${this.labelPlacement()}`,\r\n ];\r\n\r\n if (this._isChecked()) {\r\n parts.push('radio-checked');\r\n }\r\n if (this.isEffectivelyDisabled()) {\r\n parts.push('radio-disabled');\r\n }\r\n\r\n return parts.join(' ');\r\n });\r\n\r\n protected readonly isEffectivelyDisabled = computed(\r\n () => this.disabled() || this._isDisabledByCva()\r\n );\r\n\r\n onToggle(): void {\r\n if (this.isEffectivelyDisabled()) {\r\n return;\r\n }\r\n\r\n const isNext = !this._isChecked();\r\n this._isChecked.set(isNext);\r\n this.changed.emit(isNext);\r\n this._onChange(isNext);\r\n this._onTouched();\r\n }\r\n\r\n writeValue(value: boolean): void {\r\n this._isChecked.set(!!value);\r\n }\r\n\r\n registerOnChange(fn: (val: boolean) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._isDisabledByCva.set(isDisabled);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n Renderer2,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nexport type SliderColor =\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type SliderSize = 'small' | 'medium';\r\nexport type SliderValueLabelDisplay = 'auto' | 'off' | 'on';\r\nexport interface SliderMark {\r\n value: number;\r\n label?: string;\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-slider',\r\n standalone: true,\r\n styleUrls: ['./slider.component.css'],\r\n template: `\r\n <div\r\n [class]=\"_containerClasses()\"\r\n (mousedown)=\"_onRailMouseDown($event)\"\r\n (touchstart)=\"_onRailTouchStart($event)\"\r\n #railRef>\r\n <div class=\"ls-slider__rail\"></div>\r\n\r\n <div\r\n class=\"ls-slider__track\"\r\n [style.left]=\"_trackFillStyle().left\"\r\n [style.width]=\"_trackFillStyle().width\">\r\n </div>\r\n\r\n @for (mark of _normalizedMarks(); track mark.value) {\r\n <span\r\n class=\"ls-slider__mark\"\r\n [class.ls-slider__mark--active]=\"\r\n _isMarkActive(mark.value)\r\n \"\r\n [style.left]=\"_getMarkPosition(mark.value) + '%'\">\r\n </span>\r\n @if (mark.label) {\r\n <span\r\n class=\"ls-slider__mark-label\"\r\n [style.left]=\"\r\n _getMarkPosition(mark.value) + '%'\r\n \">\r\n {{ mark.label }}\r\n </span>\r\n }\r\n }\r\n\r\n @for (pos of _thumbPositions(); track $index) {\r\n <span\r\n class=\"ls-slider__thumb\"\r\n [class.ls-slider__thumb--active]=\"\r\n _isDragging() && _activeThumbIndex() === $index\r\n \"\r\n [style.left]=\"pos + '%'\"\r\n [attr.role]=\"'slider'\"\r\n [attr.aria-valuenow]=\"_getThumbValue($index)\"\r\n [attr.aria-valuemin]=\"min()\"\r\n [attr.aria-valuemax]=\"max()\"\r\n [attr.aria-disabled]=\"disabled()\"\r\n [attr.tabindex]=\"disabled() ? -1 : 0\"\r\n (mousedown)=\"_onThumbMouseDown($event, $index)\"\r\n (touchstart)=\"_onThumbTouchStart($event, $index)\"\r\n (keydown)=\"_onKeyDown($event, $index)\">\r\n @if (\r\n valueLabelDisplay() === 'on' ||\r\n (valueLabelDisplay() === 'auto' &&\r\n _isDragging() &&\r\n _activeThumbIndex() === $index)\r\n ) {\r\n <span class=\"ls-slider__value-label\">\r\n {{ _getThumbValue($index) }}\r\n </span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class SliderComponent {\r\n private readonly _renderer = inject(Renderer2);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private readonly _elementRef = inject(ElementRef);\r\n\r\n readonly value = model<number | number[]>(0);\r\n readonly defaultValue = input<number | number[]>();\r\n readonly min = input<number>(0);\r\n readonly max = input<number>(100);\r\n readonly step = input<number | null>(1);\r\n readonly marks = input<boolean | SliderMark[]>(false);\r\n readonly color = input<SliderColor>('primary');\r\n readonly size = input<SliderSize>('medium');\r\n readonly orientation = input<'horizontal'>('horizontal');\r\n readonly disabled = input<boolean>(false);\r\n readonly valueLabelDisplay =\r\n input<SliderValueLabelDisplay>('auto');\r\n\r\n readonly onChange = output<number | number[]>();\r\n\r\n private readonly _railRef =\r\n viewChild<ElementRef>('railRef');\r\n\r\n readonly _activeThumbIndex = signal<0 | 1>(0);\r\n readonly _isDragging = signal<boolean>(false);\r\n\r\n private _cleanupMouseMove: (() => void) | null = null;\r\n private _cleanupMouseUp: (() => void) | null = null;\r\n private _cleanupTouchMove: (() => void) | null = null;\r\n private _cleanupTouchEnd: (() => void) | null = null;\r\n private _cachedRect: DOMRect | null = null;\r\n\r\n readonly _isRange = computed(() =>\r\n Array.isArray(this.value()),\r\n );\r\n\r\n readonly _values = computed<[number, number]>(() => {\r\n const v = this.value();\r\n if (Array.isArray(v)) return [v[0], v[1]];\r\n return [this.min(), v];\r\n });\r\n\r\n readonly _normalizedMarks = computed<SliderMark[]>(\r\n () => {\r\n const m = this.marks();\r\n if (m === false) return [];\r\n if (Array.isArray(m)) return m;\r\n const marks: SliderMark[] = [];\r\n const s = this.step() ?? 1;\r\n for (\r\n let v = this.min();\r\n v <= this.max();\r\n v += s\r\n ) {\r\n marks.push({ value: v });\r\n }\r\n return marks;\r\n },\r\n );\r\n\r\n readonly _trackFillStyle = computed(() => {\r\n const [v0, v1] = this._values();\r\n const range = this.max() - this.min();\r\n if (range <= 0)\r\n return { left: '0%', width: '0%' };\r\n const left =\r\n ((v0 - this.min()) / range) * 100;\r\n const width = ((v1 - v0) / range) * 100;\r\n if (this._isRange()) {\r\n return {\r\n left: `${left}%`,\r\n width: `${width}%`,\r\n };\r\n }\r\n return {\r\n left: '0%',\r\n width: `${left + width}%`,\r\n };\r\n });\r\n\r\n readonly _thumbPositions = computed<number[]>(\r\n () => {\r\n const [v0, v1] = this._values();\r\n const range = this.max() - this.min();\r\n if (range <= 0)\r\n return this._isRange() ? [0, 0] : [0];\r\n if (this._isRange()) {\r\n return [\r\n ((v0 - this.min()) / range) * 100,\r\n ((v1 - this.min()) / range) * 100,\r\n ];\r\n }\r\n return [((v1 - this.min()) / range) * 100];\r\n },\r\n );\r\n\r\n readonly _containerClasses = computed(() => {\r\n const classes = ['ls-slider'];\r\n classes.push(`ls-slider--${this.color()}`);\r\n classes.push(`ls-slider--${this.size()}`);\r\n if (this.disabled())\r\n classes.push('ls-slider--disabled');\r\n if (this._isDragging())\r\n classes.push('ls-slider--active');\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(\r\n () => {\r\n const dv = this.defaultValue();\r\n if (dv !== undefined && this.value() === 0) {\r\n this.value.set(dv);\r\n }\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n this._destroyRef.onDestroy(() => {\r\n this._removeGlobalListeners();\r\n });\r\n }\r\n\r\n _isMarkActive(markValue: number): boolean {\r\n const [v0, v1] = this._values();\r\n if (this._isRange()) {\r\n return markValue >= v0 && markValue <= v1;\r\n }\r\n return markValue <= v1;\r\n }\r\n\r\n _getMarkPosition(markValue: number): number {\r\n const range = this.max() - this.min();\r\n if (range <= 0) return 0;\r\n return (\r\n ((markValue - this.min()) / range) * 100\r\n );\r\n }\r\n\r\n _getThumbValue(thumbIndex: number): number {\r\n const v = this.value();\r\n if (Array.isArray(v)) {\r\n return v[thumbIndex];\r\n }\r\n return v;\r\n }\r\n\r\n _onRailMouseDown(event: MouseEvent): void {\r\n if (this.disabled()) return;\r\n event.preventDefault();\r\n this._startDrag(event.clientX);\r\n }\r\n\r\n _onThumbMouseDown(\r\n event: MouseEvent,\r\n thumbIndex: number,\r\n ): void {\r\n if (this.disabled()) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._activeThumbIndex.set(\r\n thumbIndex as 0 | 1,\r\n );\r\n this._startMouseDrag(event.clientX);\r\n }\r\n\r\n _onRailTouchStart(event: TouchEvent): void {\r\n if (this.disabled()) return;\r\n if (event.touches.length === 0) return;\r\n event.preventDefault();\r\n this._startTouchDrag(\r\n event.touches[0].clientX,\r\n );\r\n }\r\n\r\n _onThumbTouchStart(\r\n event: TouchEvent,\r\n thumbIndex: number,\r\n ): void {\r\n if (this.disabled()) return;\r\n if (event.touches.length === 0) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._activeThumbIndex.set(\r\n thumbIndex as 0 | 1,\r\n );\r\n this._startTouchDrag(\r\n event.touches[0].clientX,\r\n );\r\n }\r\n\r\n _onKeyDown(\r\n event: KeyboardEvent,\r\n thumbIndex: number,\r\n ): void {\r\n if (this.disabled()) return;\r\n const s = this.step() ?? 1;\r\n let handled = false;\r\n\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n this._adjustThumbValue(thumbIndex, s);\r\n handled = true;\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n this._adjustThumbValue(thumbIndex, -s);\r\n handled = true;\r\n break;\r\n case 'Home':\r\n this._setThumbValue(\r\n thumbIndex,\r\n this.min(),\r\n );\r\n handled = true;\r\n break;\r\n case 'End':\r\n this._setThumbValue(\r\n thumbIndex,\r\n this.max(),\r\n );\r\n handled = true;\r\n break;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.onChange.emit(this.value());\r\n }\r\n }\r\n\r\n private _startDrag(clientX: number): void {\r\n this._cacheRect();\r\n if (this._isRange() && this._cachedRect) {\r\n const clickValue = this._positionToValue(\r\n clientX,\r\n this._cachedRect,\r\n );\r\n const [v0, v1] = this._values();\r\n const dist0 = Math.abs(clickValue - v0);\r\n const dist1 = Math.abs(clickValue - v1);\r\n this._activeThumbIndex.set(\r\n dist0 <= dist1 ? 0 : 1,\r\n );\r\n }\r\n this._startMouseDrag(clientX);\r\n }\r\n\r\n private _startMouseDrag(clientX: number): void {\r\n this._cacheRect();\r\n this._isDragging.set(true);\r\n this._updateValueFromPosition(clientX);\r\n\r\n this._cleanupMouseMove =\r\n this._renderer.listen(\r\n 'window',\r\n 'mousemove',\r\n (e: MouseEvent) => {\r\n this._updateValueFromPosition(\r\n e.clientX,\r\n );\r\n },\r\n );\r\n\r\n this._cleanupMouseUp = this._renderer.listen(\r\n 'window',\r\n 'mouseup',\r\n () => {\r\n this._endDrag();\r\n },\r\n );\r\n }\r\n\r\n private _startTouchDrag(clientX: number): void {\r\n this._cacheRect();\r\n if (this._isRange() && this._cachedRect) {\r\n const clickValue = this._positionToValue(\r\n clientX,\r\n this._cachedRect,\r\n );\r\n const [v0, v1] = this._values();\r\n const dist0 = Math.abs(clickValue - v0);\r\n const dist1 = Math.abs(clickValue - v1);\r\n this._activeThumbIndex.set(\r\n dist0 <= dist1 ? 0 : 1,\r\n );\r\n }\r\n this._isDragging.set(true);\r\n this._updateValueFromPosition(clientX);\r\n\r\n this._cleanupTouchMove =\r\n this._renderer.listen(\r\n 'window',\r\n 'touchmove',\r\n (e: TouchEvent) => {\r\n if (e.touches.length > 0) {\r\n this._updateValueFromPosition(\r\n e.touches[0].clientX,\r\n );\r\n }\r\n },\r\n );\r\n\r\n this._cleanupTouchEnd =\r\n this._renderer.listen(\r\n 'window',\r\n 'touchend',\r\n () => {\r\n this._endDrag();\r\n },\r\n );\r\n }\r\n\r\n private _endDrag(): void {\r\n this._isDragging.set(false);\r\n this._removeGlobalListeners();\r\n this._cachedRect = null;\r\n this.onChange.emit(this.value());\r\n }\r\n\r\n private _updateValueFromPosition(\r\n clientX: number,\r\n ): void {\r\n if (!this._cachedRect) return;\r\n const newValue = this._positionToValue(\r\n clientX,\r\n this._cachedRect,\r\n );\r\n const idx = this._activeThumbIndex();\r\n\r\n if (this._isRange()) {\r\n const current = this.value() as number[];\r\n const updated = [...current];\r\n updated[idx] = newValue;\r\n if (idx === 0 && updated[0] > updated[1]) {\r\n updated[0] = updated[1];\r\n }\r\n if (idx === 1 && updated[1] < updated[0]) {\r\n updated[1] = updated[0];\r\n }\r\n this.value.set(updated);\r\n } else {\r\n this.value.set(newValue);\r\n }\r\n }\r\n\r\n private _adjustThumbValue(\r\n thumbIndex: number,\r\n delta: number,\r\n ): void {\r\n if (this._isRange()) {\r\n const current = this.value() as number[];\r\n const updated = [...current];\r\n updated[thumbIndex] = this._quantize(\r\n updated[thumbIndex] + delta,\r\n );\r\n if (\r\n thumbIndex === 0 &&\r\n updated[0] > updated[1]\r\n ) {\r\n updated[0] = updated[1];\r\n }\r\n if (\r\n thumbIndex === 1 &&\r\n updated[1] < updated[0]\r\n ) {\r\n updated[1] = updated[0];\r\n }\r\n this.value.set(updated);\r\n } else {\r\n this.value.set(\r\n this._quantize(\r\n (this.value() as number) + delta,\r\n ),\r\n );\r\n }\r\n }\r\n\r\n private _setThumbValue(\r\n thumbIndex: number,\r\n newValue: number,\r\n ): void {\r\n if (this._isRange()) {\r\n const current = this.value() as number[];\r\n const updated = [...current];\r\n updated[thumbIndex] =\r\n this._quantize(newValue);\r\n if (\r\n thumbIndex === 0 &&\r\n updated[0] > updated[1]\r\n ) {\r\n updated[0] = updated[1];\r\n }\r\n if (\r\n thumbIndex === 1 &&\r\n updated[1] < updated[0]\r\n ) {\r\n updated[1] = updated[0];\r\n }\r\n this.value.set(updated);\r\n } else {\r\n this.value.set(this._quantize(newValue));\r\n }\r\n }\r\n\r\n private _positionToValue(\r\n clientX: number,\r\n rect: DOMRect,\r\n ): number {\r\n const percent = Math.max(\r\n 0,\r\n Math.min(\r\n 1,\r\n (clientX - rect.left) / rect.width,\r\n ),\r\n );\r\n return this._quantize(\r\n this.min() +\r\n percent * (this.max() - this.min()),\r\n );\r\n }\r\n\r\n private _quantize(raw: number): number {\r\n const s = this.step();\r\n if (s === null)\r\n return Math.min(\r\n this.max(),\r\n Math.max(this.min(), raw),\r\n );\r\n return Math.min(\r\n this.max(),\r\n Math.max(\r\n this.min(),\r\n this.min() +\r\n Math.round((raw - this.min()) / s) * s,\r\n ),\r\n );\r\n }\r\n\r\n private _cacheRect(): void {\r\n const railEl = this._railRef();\r\n if (railEl) {\r\n this._cachedRect =\r\n railEl.nativeElement.getBoundingClientRect();\r\n }\r\n }\r\n\r\n private _removeGlobalListeners(): void {\r\n this._cleanupMouseMove?.();\r\n this._cleanupMouseMove = null;\r\n this._cleanupMouseUp?.();\r\n this._cleanupMouseUp = null;\r\n this._cleanupTouchMove?.();\r\n this._cleanupTouchMove = null;\r\n this._cleanupTouchEnd?.();\r\n this._cleanupTouchEnd = null;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type SwitchColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type SwitchSize = 'small' | 'medium';\r\n\r\nexport type SwitchVariant = 'solid' | 'outlined';\r\n\r\nexport type SwitchLabelPlacement =\r\n | 'start'\r\n | 'end'\r\n | 'top'\r\n | 'bottom';\r\n\r\nconst CHECK_SVG =\r\n '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">' +\r\n '<path d=\"M3.5 6L5.5 8L8.5 4\" stroke=\"currentColor\" ' +\r\n 'stroke-width=\"2\" stroke-linecap=\"round\" ' +\r\n 'stroke-linejoin=\"round\"/></svg>';\r\n\r\nconst CLOSE_SVG =\r\n '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">' +\r\n '<path d=\"M3.5 3.5L8.5 8.5M8.5 3.5L3.5 8.5\" ' +\r\n 'stroke=\"currentColor\" stroke-width=\"2\" ' +\r\n 'stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-switch',\r\n standalone: true,\r\n styleUrls: ['./switch.component.css'],\r\n template: `\r\n <label [class]=\"switchClasses()\">\r\n <button\r\n type=\"button\"\r\n role=\"switch\"\r\n class=\"switch-track\"\r\n [attr.aria-checked]=\"_isChecked()\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onToggle()\"\r\n (keydown.space)=\"onToggle(); $event.preventDefault()\"\r\n (keydown.enter)=\"onToggle(); $event.preventDefault()\">\r\n <span class=\"switch-thumb\">\r\n @if (icon()) {\r\n <span\r\n class=\"switch-icon\"\r\n [innerHTML]=\"currentIcon()\"\r\n ></span>\r\n }\r\n </span>\r\n </button>\r\n <span class=\"switch-label\">\r\n <ng-content />\r\n </span>\r\n </label>\r\n `,\r\n})\r\nexport class SwitchComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n public readonly checked = input<boolean>(false);\r\n public readonly defaultChecked = input<boolean>(false);\r\n public readonly color = input<SwitchColor>('primary');\r\n public readonly size = input<SwitchSize>('medium');\r\n public readonly disabled = input<boolean>(false);\r\n public readonly icon = input<boolean>(false);\r\n public readonly variant = input<SwitchVariant>('solid');\r\n public readonly labelPlacement =\r\n input<SwitchLabelPlacement>('end');\r\n\r\n public readonly changed = output<boolean>();\r\n\r\n protected readonly _isChecked = signal(false);\r\n\r\n private _isFirstSync = true;\r\n\r\n private readonly _syncChecked = effect(() => {\r\n const isChecked = this.checked();\r\n if (this._isFirstSync) {\r\n this._isFirstSync = false;\r\n this._isChecked.set(\r\n isChecked || this.defaultChecked()\r\n );\r\n } else {\r\n this._isChecked.set(isChecked);\r\n }\r\n });\r\n\r\n protected readonly switchClasses = computed(() => {\r\n const s = this.size() === 'small' ? 'sm' : 'md';\r\n const parts = [\r\n 'switch',\r\n `switch-${s}`,\r\n `switch-color-${this.color()}`,\r\n `switch-${this.variant()}`,\r\n `switch-label-${this.labelPlacement()}`,\r\n ];\r\n\r\n if (this._isChecked()) {\r\n parts.push('switch-checked');\r\n }\r\n if (this.disabled()) {\r\n parts.push('switch-disabled');\r\n }\r\n\r\n return parts.join(' ');\r\n });\r\n\r\n protected readonly currentIcon = computed<SafeHtml>(\r\n () => {\r\n const svg = this._isChecked()\r\n ? CHECK_SVG\r\n : CLOSE_SVG;\r\n return this._sanitizer.bypassSecurityTrustHtml(\r\n svg\r\n );\r\n }\r\n );\r\n\r\n onToggle(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n const isNext = !this._isChecked();\r\n this._isChecked.set(isNext);\r\n this.changed.emit(isNext);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\n\r\nexport type LinkVariant =\r\n | 'h1'\r\n | 'h2'\r\n | 'h3'\r\n | 'h4'\r\n | 'h5'\r\n | 'h6'\r\n | 'body1'\r\n | 'body2'\r\n | 'subtitle1'\r\n | 'subtitle2'\r\n | 'overline'\r\n | 'caption'\r\n | 'button'\r\n | 'inherit';\r\n\r\nexport type LinkAlign =\r\n | 'center'\r\n | 'inherit'\r\n | 'justify'\r\n | 'left'\r\n | 'right';\r\n\r\nexport type LinkColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\nexport type LinkUnderline = 'always' | 'hover' | 'none';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-link',\r\n standalone: true,\r\n styleUrls: ['./link.component.css'],\r\n template: `\r\n <a\r\n [attr.href]=\"href() || null\"\r\n [attr.rel]=\"safeRel() || null\"\r\n [attr.target]=\"target() || null\"\r\n [class]=\"linkClasses()\"\r\n >\r\n <ng-content />\r\n </a>\r\n `,\r\n})\r\nexport class LinkComponent {\r\n readonly variant = input<LinkVariant>('inherit');\r\n readonly align = input<LinkAlign>('inherit');\r\n readonly color = input<LinkColor>('primary');\r\n readonly href = input<string>('');\r\n readonly underline = input<LinkUnderline>('always');\r\n readonly target = input<string>('');\r\n readonly rel = input<string>('');\r\n\r\n protected readonly linkClasses = computed(() => {\r\n const v = this.variant();\r\n const c = this.color();\r\n const a = this.align();\r\n const u = this.underline();\r\n return `link text text-${v} link-color-${c} text-align-${a} link-underline-${u}`;\r\n });\r\n\r\n protected readonly safeRel = computed(() => {\r\n const t = this.target();\r\n const r = this.rel();\r\n\r\n if (t !== '_blank') {\r\n return r;\r\n }\r\n\r\n if (!r) {\r\n return 'noopener';\r\n }\r\n\r\n const lower = r.toLowerCase();\r\n if (lower.includes('noopener') || lower.includes('noreferrer')) {\r\n return r;\r\n }\r\n\r\n return `${r} noopener`;\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n computed,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nexport type TextVariant =\r\n | 'h1'\r\n | 'h2'\r\n | 'h3'\r\n | 'h4'\r\n | 'h5'\r\n | 'h6'\r\n | 'body1'\r\n | 'body2'\r\n | 'subtitle1'\r\n | 'subtitle2'\r\n | 'caption'\r\n | 'overline'\r\n | 'button'\r\n | 'inherit';\r\n\r\nexport type TextColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'dark';\r\nexport type TextAlign = 'center' | 'inherit' | 'justify' | 'left' | 'right';\r\n\r\n@Component({\r\n selector: 'ls-text',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n styleUrls: ['./text.component.css'],\r\n template: `\r\n <ng-template #content>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n\r\n @switch (variant()) {\r\n @case ('h1') {\r\n <h1 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h1>\r\n }\r\n @case ('h2') {\r\n <h2 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h2>\r\n }\r\n @case ('h3') {\r\n <h3 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h3>\r\n }\r\n @case ('h4') {\r\n <h4 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h4>\r\n }\r\n @case ('h5') {\r\n <h5 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h5>\r\n }\r\n @case ('h6') {\r\n <h6 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h6>\r\n }\r\n @case ('body1') {\r\n <p [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </p>\r\n }\r\n @case ('body2') {\r\n <p [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </p>\r\n }\r\n @case ('subtitle1') {\r\n <h6 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h6>\r\n }\r\n @case ('subtitle2') {\r\n <h6 [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </h6>\r\n }\r\n @case ('caption') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @case ('overline') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @case ('button') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @case ('inherit') {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n @default {\r\n <span [class]=\"textClasses()\">\r\n <ng-container *ngTemplateOutlet=\"content\" />\r\n </span>\r\n }\r\n }\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextComponent {\r\n readonly variant = input<TextVariant>('h1');\r\n readonly color = input<TextColor>('inherit');\r\n readonly align = input<TextAlign>('inherit');\r\n\r\n protected readonly textClasses = computed(() => {\r\n return `text text-${this.variant()} text-color-${this.color()} text-align-${this.align()}`;\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nexport type TagVariant = 'filled' | 'outlined' | 'soft' | 'inverted';\r\nexport type TagColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'error'\r\n | 'info'\r\n | 'warning';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-tag',\r\n standalone: true,\r\n styleUrls: ['./tag.component.css'],\r\n template: `\r\n <span [class]=\"tagClasses\">\r\n @if (startIcon()) {\r\n <span\r\n class=\"tag-icon tag-icon--start\"\r\n [innerHTML]=\"sanitizedStartIcon\"></span>\r\n }\r\n <ng-content />\r\n @if (endIcon()) {\r\n <span\r\n class=\"tag-icon tag-icon--end\"\r\n [innerHTML]=\"sanitizedEndIcon\"></span>\r\n }\r\n </span>\r\n `,\r\n})\r\nexport class TagComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly variant = input<TagVariant>('filled');\r\n readonly color = input<TagColor>('primary');\r\n readonly startIcon = input<string>();\r\n readonly endIcon = input<string>();\r\n\r\n get sanitizedStartIcon(): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(\r\n this.startIcon() ?? ''\r\n );\r\n }\r\n\r\n get sanitizedEndIcon(): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(\r\n this.endIcon() ?? ''\r\n );\r\n }\r\n\r\n get tagClasses(): string {\r\n return `tag tag-${this.variant()}-${this.color()}`;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\n\r\nexport type BadgeSeverity =\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'warning'\r\n | 'error'\r\n | 'info';\r\nexport type BadgeVariant = 'solid' | 'outlined' | 'dot';\r\nexport type BadgePosition =\r\n | 'top-right'\r\n | 'top-left'\r\n | 'bottom-right'\r\n | 'bottom-left';\r\nexport type BadgeOverlap = 'circular' | 'rectangular';\r\n\r\n@Component({\r\n selector: 'ls-badge',\r\n standalone: true,\r\n template: `\r\n <div class=\"badge-wrapper\">\r\n <ng-content />\r\n @if (!isHidden()) {\r\n <span\r\n [class]=\"badgeClasses()\"\r\n role=\"status\"\r\n [attr.aria-label]=\"ariaLabelText()\">\r\n @if (variant() !== 'dot') {\r\n {{ formattedContent() }}\r\n }\r\n </span>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./badge.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BadgeComponent {\r\n readonly badgeContent =\r\n input<string | number | undefined>(undefined);\r\n readonly max = input<number>(99);\r\n readonly severity = input<BadgeSeverity>('error');\r\n readonly variant = input<BadgeVariant>('solid');\r\n readonly badgePosition =\r\n input<BadgePosition>('top-right');\r\n readonly overlap = input<BadgeOverlap>('rectangular');\r\n readonly isHidden = input<boolean>(false);\r\n\r\n readonly formattedContent = computed(() => {\r\n const raw = this.badgeContent();\r\n if (raw === undefined || raw === null) return '';\r\n if (typeof raw === 'number') {\r\n return raw > this.max()\r\n ? `${this.max()}+`\r\n : String(raw);\r\n }\r\n return String(raw);\r\n });\r\n\r\n readonly badgeClasses = computed(() => {\r\n const classes = ['badge'];\r\n classes.push(`badge-${this.severity()}`);\r\n classes.push(`badge-${this.variant()}`);\r\n classes.push(`badge-${this.badgePosition()}`);\r\n classes.push(`badge-overlap-${this.overlap()}`);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly ariaLabelText = computed(() => {\r\n if (this.variant() === 'dot') {\r\n return 'status indicator';\r\n }\r\n const formatted = this.formattedContent();\r\n return formatted || 'badge';\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport type ChipVariant = 'filled' | 'outlined';\r\nexport type ChipColor =\r\n | 'default'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type ChipSize = 'small' | 'medium';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-chip',\r\n standalone: true,\r\n styleUrls: ['./chip.component.css'],\r\n template: `\r\n <span\r\n [class]=\"chipClasses()\"\r\n [attr.role]=\"clickable() ? 'button' : null\"\r\n [attr.tabindex]=\"clickable() && !disabled() ? 0 : null\"\r\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\r\n (click)=\"handleClick($event)\"\r\n (keydown)=\"handleKeydown($event)\">\r\n\r\n @if (avatar()) {\r\n <img\r\n class=\"chip-avatar\"\r\n [src]=\"avatar()\"\r\n [alt]=\"label()\"\r\n aria-hidden=\"true\" />\r\n } @else if (icon()) {\r\n <span\r\n class=\"chip-icon\"\r\n [innerHTML]=\"sanitizedIcon()\"\r\n aria-hidden=\"true\"></span>\r\n }\r\n\r\n <span class=\"chip-label\">{{ label() }}</span>\r\n\r\n @if (deleteIcon() && !disabled()) {\r\n <button\r\n class=\"chip-delete\"\r\n aria-label=\"Remove\"\r\n tabindex=\"-1\"\r\n (click)=\"handleDelete($event)\">\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"currentColor\"\r\n class=\"chip-delete-svg\">\r\n <path\r\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" />\r\n </svg>\r\n </button>\r\n }\r\n </span>\r\n `,\r\n})\r\nexport class ChipComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly label = input<string>('');\r\n readonly variant = input<ChipVariant>('filled');\r\n readonly color = input<ChipColor>('default');\r\n readonly size = input<ChipSize>('medium');\r\n readonly icon = input<string | undefined>(undefined);\r\n readonly avatar = input<string | undefined>(undefined);\r\n readonly deleteIcon = input<boolean>(false);\r\n readonly disabled = input<boolean>(false);\r\n readonly clickable = input<boolean>(false);\r\n\r\n readonly onClick = output<void>();\r\n readonly onDelete = output<void>();\r\n\r\n readonly sanitizedIcon = computed(() =>\r\n this._sanitizer.bypassSecurityTrustHtml(this.icon() ?? ''),\r\n );\r\n\r\n readonly chipClasses = computed(() => {\r\n const classes = ['chip'];\r\n classes.push(`chip-${this.variant()}`);\r\n classes.push(`chip-${this.color()}`);\r\n classes.push(`chip-${this.size()}`);\r\n if (this.clickable()) classes.push('chip-clickable');\r\n if (this.disabled()) classes.push('chip-disabled');\r\n return classes.join(' ');\r\n });\r\n\r\n handleClick(event: MouseEvent) {\r\n if (this.clickable() && !this.disabled()) {\r\n this.onClick.emit();\r\n }\r\n }\r\n\r\n handleDelete(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.onDelete.emit();\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent) {\r\n if (event.key === 'Enter') {\r\n this.handleClick(event as unknown as MouseEvent);\r\n }\r\n if (\r\n (event.key === 'Delete' || event.key === 'Backspace') &&\r\n this.deleteIcon()\r\n ) {\r\n this.handleDelete(event as unknown as MouseEvent);\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\n\r\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';\r\nexport type TooltipBackground =\r\n | 'primary'\r\n | 'success'\r\n | 'info'\r\n | 'danger'\r\n | 'warning'\r\n | 'secondary'\r\n | 'dark';\r\n\r\nlet nextId = 0;\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-tooltip',\r\n standalone: true,\r\n styleUrls: ['./tooltip.component.css'],\r\n template: `\r\n <span\r\n class=\"ls-tooltip-trigger\"\r\n [class.ls-tooltip-disabled]=\"disabled()\"\r\n [attr.aria-describedby]=\"disabled() ? null : _tooltipId\"\r\n (mouseenter)=\"show()\"\r\n (mouseleave)=\"hide()\"\r\n (focus)=\"show()\"\r\n (blur)=\"hide()\">\r\n <ng-content />\r\n @if (_isVisible() && !disabled()) {\r\n <span\r\n [id]=\"_tooltipId\"\r\n role=\"tooltip\"\r\n [attr.aria-hidden]=\"!_isVisible()\"\r\n [class]=\"tooltipClasses\">\r\n {{ content() }}\r\n <span class=\"tooltip-arrow\"></span>\r\n </span>\r\n }\r\n </span>\r\n `,\r\n})\r\nexport class TooltipComponent {\r\n readonly content = input.required<string>();\r\n readonly placement = input<TooltipPlacement>('top');\r\n readonly backgroundClass = input<TooltipBackground>('dark');\r\n readonly disabled = input<boolean>(false);\r\n\r\n protected readonly _isVisible = signal(false);\r\n protected readonly _tooltipId = `ls-tooltip-${nextId++}`;\r\n\r\n get tooltipClasses(): string {\r\n return [\r\n 'tooltip-box',\r\n `tooltip-${this.placement()}`,\r\n `tooltip-bg-${this.backgroundClass()}`,\r\n ].join(' ');\r\n }\r\n\r\n show() {\r\n this._isVisible.set(true);\r\n }\r\n\r\n hide() {\r\n this._isVisible.set(false);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { TooltipComponent } from '../../overlay/tooltip';\r\n\r\nexport type AvatarVariant = 'circular' | 'rounded' | 'square';\r\nexport type AvatarColor =\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type AvatarSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgTemplateOutlet, TooltipComponent],\r\n selector: 'ls-avatar',\r\n standalone: true,\r\n styleUrls: ['./avatar.component.css'],\r\n template: `\r\n @if (hasTooltip()) {\r\n <ls-tooltip [content]=\"tooltip()\">\r\n <ng-container *ngTemplateOutlet=\"avatarTpl\" />\r\n </ls-tooltip>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"avatarTpl\" />\r\n }\r\n\r\n <ng-template #avatarTpl>\r\n @if (isImageMode()) {\r\n <img\r\n [src]=\"src()\"\r\n [alt]=\"alt()\"\r\n [class]=\"containerClasses()\" />\r\n } @else if (isTextMode()) {\r\n <span\r\n role=\"img\"\r\n [attr.aria-label]=\"text()\"\r\n [class]=\"textClasses()\">\r\n {{ text() }}\r\n </span>\r\n } @else {\r\n <span\r\n role=\"img\"\r\n aria-label=\"avatar\"\r\n [class]=\"fallbackClasses()\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"currentColor\"\r\n class=\"avatar-icon\">\r\n <path\r\n d=\"M12 12c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5\r\n 5 2.24 5 5 5zm0 2c-3.33 0-10 1.67-10\r\n 5v2h20v-2c0-3.33-6.67-5-10-5z\" />\r\n </svg>\r\n </span>\r\n }\r\n </ng-template>\r\n `,\r\n})\r\nexport class AvatarComponent {\r\n readonly alt = input<string>('');\r\n readonly color = input<AvatarColor>('primary');\r\n readonly size = input<AvatarSize>('medium');\r\n readonly src = input<string>('');\r\n readonly text = input<string>('');\r\n readonly tooltip = input<string>('');\r\n readonly variant = input<AvatarVariant>('circular');\r\n\r\n protected readonly containerClasses = computed(\r\n () =>\r\n `avatar avatar-${this.size()} avatar-${this.variant()}`\r\n );\r\n\r\n protected readonly fallbackClasses = computed(\r\n () =>\r\n `avatar avatar-${this.size()} avatar-${this.variant()} avatar-fallback`\r\n );\r\n\r\n protected readonly hasTooltip = computed(\r\n () => !!this.tooltip()\r\n );\r\n\r\n protected readonly isImageMode = computed(\r\n () => !!this.src()\r\n );\r\n\r\n protected readonly isTextMode = computed(\r\n () => !this.src() && !!this.text()\r\n );\r\n\r\n protected readonly textClasses = computed(\r\n () =>\r\n `avatar avatar-${this.size()} avatar-${this.variant()} avatar-color-${this.color()}`\r\n );\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ViewEncapsulation,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\nimport { AvatarComponent } from '../avatar';\r\nimport type { AvatarColor, AvatarSize, AvatarVariant } from '../avatar';\r\n\r\nexport interface AvatarData {\r\n alt?: string;\r\n src?: string;\r\n variant?: AvatarVariant;\r\n text?: string;\r\n color?: AvatarColor;\r\n tooltip?: string;\r\n size?: AvatarSize;\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [AvatarComponent],\r\n selector: 'ls-avatar-group',\r\n standalone: true,\r\n styleUrls: ['./avatar-group.component.css'],\r\n template: `\r\n <div class=\"avatar-group\" role=\"group\" aria-label=\"Avatar group\">\r\n @for (avatar of visibleAvatars(); track $index) {\r\n <div\r\n class=\"avatar-group-item\"\r\n [style.z-index]=\"visibleAvatars().length - $index\">\r\n <ls-avatar\r\n [src]=\"avatar.src ?? ''\"\r\n [alt]=\"avatar.alt ?? ''\"\r\n [variant]=\"avatar.variant ?? groupVariant()\"\r\n [text]=\"avatar.text ?? ''\"\r\n [color]=\"avatar.color ?? 'primary'\"\r\n [tooltip]=\"avatar.tooltip ?? ''\"\r\n [size]=\"avatar.size ?? groupSize()\" />\r\n </div>\r\n }\r\n @if (hasOverflow()) {\r\n <div class=\"avatar-group-item\" [style.z-index]=\"0\">\r\n <ls-avatar\r\n [text]=\"overflowText()\"\r\n [variant]=\"groupVariant()\"\r\n [size]=\"groupSize()\"\r\n color=\"secondary\" />\r\n </div>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class AvatarGroupComponent {\r\n readonly avatars = input<AvatarData[]>([]);\r\n readonly maxAvatarGroup = input<number>(0);\r\n\r\n protected readonly groupSize = computed<AvatarSize>(\r\n () => this.avatars()[0]?.size ?? 'medium'\r\n );\r\n\r\n protected readonly groupVariant = computed<AvatarVariant>(\r\n () => this.avatars()[0]?.variant ?? 'circular'\r\n );\r\n\r\n protected readonly visibleAvatars = computed(() => {\r\n const max = this.maxAvatarGroup();\r\n const all = this.avatars();\r\n if (max > 0 && all.length > max) {\r\n return all.slice(0, max);\r\n }\r\n return all;\r\n });\r\n\r\n protected readonly overflowCount = computed(() => {\r\n const max = this.maxAvatarGroup();\r\n const all = this.avatars();\r\n if (max > 0 && all.length > max) {\r\n return all.length - max;\r\n }\r\n return 0;\r\n });\r\n\r\n protected readonly hasOverflow = computed(() => this.overflowCount() > 0);\r\n\r\n protected readonly overflowText = computed(() => '+' + this.overflowCount());\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n} from '@angular/core';\r\n\r\nexport type LogoSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-logo',\r\n standalone: true,\r\n styleUrls: ['./logo.component.css'],\r\n template: `\r\n @if (hasHref()) {\r\n <a [attr.href]=\"href()\" class=\"logo-link\">\r\n <img [src]=\"src()\" [class]=\"imgClasses()\" alt=\"Logo\" />\r\n </a>\r\n } @else {\r\n <img [src]=\"src()\" [class]=\"imgClasses()\" alt=\"Logo\" />\r\n }\r\n `,\r\n})\r\nexport class LogoComponent {\r\n readonly href = input<string>('');\r\n readonly size = input<LogoSize>('medium');\r\n readonly src = input<string>('');\r\n\r\n protected readonly hasHref = computed(() => !!this.href());\r\n\r\n protected readonly imgClasses = computed(\r\n () => `logo logo-${this.size()}`,\r\n );\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\nexport type ProgressBarVariant =\r\n | 'determinate'\r\n | 'stripe'\r\n | 'animated'\r\n | 'indeterminate';\r\nexport type ProgressBarColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type ProgressBarSize =\r\n | 'small'\r\n | 'medium'\r\n | 'large'\r\n | 'extra-large';\r\nexport type ProgressBarLabelPosition = 'inside' | 'right';\r\n\r\n@Component({\r\n selector: 'ls-progress-bar',\r\n standalone: true,\r\n template: `\r\n <div class=\"progress-bar-wrapper\">\r\n <div\r\n [class]=\"trackClasses()\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"variant() === 'indeterminate' ? null : clampedValue()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [attr.aria-label]=\"labelText()\">\r\n\r\n <div\r\n [class]=\"indicatorClasses()\"\r\n [style.width]=\"indicatorWidth()\">\r\n </div>\r\n\r\n @if (showLabel() && labelPosition() === 'inside' && variant() !== 'indeterminate') {\r\n <span\r\n [class]=\"labelClasses()\"\r\n [style.left.%]=\"clampedValue()\">\r\n {{ labelText() }}\r\n </span>\r\n }\r\n </div>\r\n\r\n @if (showLabel() && labelPosition() === 'right' && variant() !== 'indeterminate') {\r\n <span [class]=\"labelClasses()\">\r\n {{ labelText() }}\r\n </span>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./progress-bar.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProgressBarComponent {\r\n readonly variant =\r\n input<ProgressBarVariant>('indeterminate');\r\n readonly color =\r\n input<ProgressBarColor>('primary');\r\n readonly value = input<number>(0);\r\n readonly showLabel = input<boolean>(false);\r\n readonly labelPosition =\r\n input<ProgressBarLabelPosition>('inside');\r\n readonly size = input<ProgressBarSize>('medium');\r\n\r\n readonly onFinished = output<void>();\r\n\r\n private readonly _sizeClassMap: Record<\r\n ProgressBarSize,\r\n string\r\n > = {\r\n small: 'progress-bar-sm',\r\n medium: 'progress-bar-md',\r\n large: 'progress-bar-lg',\r\n 'extra-large': 'progress-bar-xl',\r\n };\r\n\r\n readonly clampedValue = computed(() =>\r\n Math.min(100, Math.max(0, this.value()))\r\n );\r\n\r\n readonly trackClasses = computed(() => {\r\n const classes = ['progress-bar-track'];\r\n classes.push(this._sizeClassMap[this.size()]);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorClasses = computed(() => {\r\n const classes = ['progress-bar-indicator'];\r\n classes.push(`progress-bar-${this.color()}`);\r\n const v = this.variant();\r\n if (v === 'stripe') {\r\n classes.push('progress-bar-stripe');\r\n } else if (v === 'animated') {\r\n classes.push('progress-bar-animated');\r\n } else if (v === 'indeterminate') {\r\n classes.push('progress-bar-indeterminate');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorWidth = computed(() => {\r\n if (this.variant() === 'indeterminate') {\r\n return '100%';\r\n }\r\n return `${this.clampedValue()}%`;\r\n });\r\n\r\n readonly labelText = computed(\r\n () => `${this.clampedValue()}%`\r\n );\r\n\r\n readonly labelClasses = computed(() => {\r\n const classes = ['progress-bar-label'];\r\n if (this.labelPosition() === 'inside') {\r\n classes.push('progress-bar-label-inside');\r\n if (this.clampedValue() < 15) {\r\n classes.push('progress-bar-label-dark');\r\n } else {\r\n classes.push('progress-bar-label-light');\r\n }\r\n } else {\r\n classes.push('progress-bar-label-right');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (\r\n this.variant() !== 'indeterminate' &&\r\n this.value() >= 100\r\n ) {\r\n this.onFinished.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\nexport type LoaderVariant =\r\n | 'determinate'\r\n | 'indeterminate'\r\n | 'buffer';\r\nexport type LoaderColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type LoaderSize = 'small' | 'medium' | 'large';\r\n\r\nconst RADIUS = 20;\r\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\r\n\r\n@Component({\r\n selector: 'ls-loader',\r\n standalone: true,\r\n template: `\r\n <svg\r\n [class]=\"svgClasses()\"\r\n [attr.width]=\"svgDiameter()\"\r\n [attr.height]=\"svgDiameter()\"\r\n viewBox=\"0 0 50 50\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"\r\n variant() === 'determinate' ? value() : null\r\n \"\r\n [attr.aria-valuemin]=\"\r\n variant() === 'determinate' ? 0 : null\r\n \"\r\n [attr.aria-valuemax]=\"\r\n variant() === 'determinate' ? 100 : null\r\n \">\r\n <circle\r\n class=\"loader-track\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\" />\r\n @if (variant() === 'buffer') {\r\n <circle\r\n [class]=\"bufferClasses()\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\"\r\n [attr.stroke-dasharray]=\"circumference\"\r\n [attr.stroke-dashoffset]=\"bufferDashOffset()\" />\r\n }\r\n <circle\r\n [class]=\"indicatorClasses()\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\"\r\n [attr.stroke-dasharray]=\"circumference\"\r\n [attr.stroke-dashoffset]=\"indicatorDashOffset()\" />\r\n </svg>\r\n `,\r\n styleUrls: ['./loader.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoaderComponent {\r\n readonly variant = input<LoaderVariant>('indeterminate');\r\n readonly color = input<LoaderColor>('primary');\r\n readonly value = input<number>(0);\r\n readonly size = input<LoaderSize>('medium');\r\n\r\n readonly onFinished = output<void>();\r\n\r\n readonly circumference = CIRCUMFERENCE;\r\n\r\n private readonly _diameterMap: Record<LoaderSize, number> =\r\n {\r\n small: 16,\r\n medium: 32,\r\n large: 48,\r\n };\r\n\r\n private readonly _sizeClassMap: Record<\r\n LoaderSize,\r\n string\r\n > = {\r\n small: 'loader-sm',\r\n medium: 'loader-md',\r\n large: 'loader-lg',\r\n };\r\n\r\n readonly svgDiameter = computed(\r\n () => this._diameterMap[this.size()]\r\n );\r\n\r\n readonly svgClasses = computed(() => {\r\n const classes = ['loader-svg'];\r\n classes.push(this._sizeClassMap[this.size()]);\r\n if (this.variant() === 'indeterminate') {\r\n classes.push('loader-indeterminate');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorClasses = computed(() => {\r\n const classes = ['loader-indicator'];\r\n classes.push(`loader-${this.variant()}`);\r\n classes.push(`loader-${this.color()}`);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly bufferClasses = computed(\r\n () => `loader-buffer loader-${this.color()}`\r\n );\r\n\r\n readonly indicatorDashOffset = computed(() => {\r\n const v = this.variant();\r\n if (v === 'determinate' || v === 'buffer') {\r\n const clamped = Math.min(\r\n 100,\r\n Math.max(0, this.value())\r\n );\r\n return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;\r\n }\r\n return 0;\r\n });\r\n\r\n readonly bufferDashOffset = computed(() => {\r\n if (this.variant() === 'buffer') {\r\n const clamped = Math.min(\r\n 100,\r\n Math.max(0, this.value()) + 20\r\n );\r\n return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;\r\n }\r\n return CIRCUMFERENCE;\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (\r\n this.variant() === 'determinate' &&\r\n this.value() >= 100\r\n ) {\r\n this.onFinished.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport type AlertSeverity =\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'success'\r\n | 'primary'\r\n | 'secondary';\r\n\r\nexport type AlertVariant = 'default' | 'filled' | 'outlined';\r\n\r\nconst SEVERITY_ICON_MAP: Record<AlertSeverity, string> = {\r\n success: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"/></svg>`,\r\n error: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>`,\r\n warning: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"/></svg>`,\r\n info: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n primary: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n secondary: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n};\r\n\r\nconst CLOSE_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"18\" height=\"18\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>`;\r\n\r\n@Component({\r\n selector: 'ls-alert',\r\n standalone: true,\r\n template: `\r\n <div\r\n [class]=\"alertClasses()\"\r\n [style]=\"colorStyle()\"\r\n role=\"alert\"\r\n [attr.aria-live]=\"ariaLive()\">\r\n @if (icon()) {\r\n <span class=\"alert-icon\" [innerHTML]=\"sanitizedIcon()\"></span>\r\n }\r\n <div class=\"alert-content\">\r\n @if (alertTitle()) {\r\n <div class=\"alert-title\">{{ alertTitle() }}</div>\r\n }\r\n @if (message()) {\r\n <div class=\"alert-message\">{{ message() }}</div>\r\n }\r\n </div>\r\n @if (closable()) {\r\n <button\r\n class=\"alert-close\"\r\n (click)=\"onClose.emit()\"\r\n [innerHTML]=\"sanitizedCloseIcon\"\r\n aria-label=\"Close\"></button>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./alert.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AlertComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly severity = input<AlertSeverity>('info');\r\n readonly variant = input<AlertVariant>('default');\r\n readonly closable = input<boolean>(false);\r\n readonly icon = input<boolean>(true);\r\n readonly iconMapping = input<string>();\r\n readonly color = input<string>();\r\n readonly alertTitle = input<string>();\r\n readonly message = input<string>();\r\n\r\n readonly onClose = output<void>();\r\n\r\n readonly alertClasses = computed(() => {\r\n const classes = ['alert', `alert-${this.variant()}-${this.severity()}`];\r\n if (this.closable()) {\r\n classes.push('alert-closable');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly ariaLive = computed(() => {\r\n const s = this.severity();\r\n return s === 'error' || s === 'warning' ? 'assertive' : 'polite';\r\n });\r\n\r\n readonly sanitizedIcon = computed(() => {\r\n const svg = this.iconMapping() || SEVERITY_ICON_MAP[this.severity()];\r\n return this._sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n\r\n readonly sanitizedCloseIcon =\r\n this._sanitizer.bypassSecurityTrustHtml(CLOSE_ICON);\r\n\r\n readonly colorStyle = computed(() => {\r\n const c = this.color();\r\n if (!c) return '';\r\n return `--alert-custom-color: ${c};`;\r\n });\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n HostListener,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n/**\r\n * Defines an origin point on an element used for menu positioning.\r\n *\r\n * Combines a vertical and horizontal anchor designation. Used by both\r\n * `anchorOrigin` (point on the trigger element) and `transformOrigin`\r\n * (point on the menu panel) to compute the final panel placement.\r\n */\r\nexport interface MenuOriginPoint {\r\n vertical: 'top' | 'center' | 'bottom';\r\n horizontal: 'left' | 'center' | 'right';\r\n}\r\n\r\n/**\r\n * Renders an anchored floating menu panel attached to a trigger element.\r\n *\r\n * Supports both **controlled** and **directive-driven** open modes:\r\n * - **Controlled**: bind `[(open)]` and respond to `opened`/`closed` outputs.\r\n * - **Directive-driven**: apply `lsMenuTriggerFor` to any host element;\r\n * the directive calls `setAnchorEl()` and `toggle()` automatically.\r\n *\r\n * Panel position is derived from the anchor element's bounding rect combined\r\n * with `anchorOrigin` (attachment point on the trigger) and `transformOrigin`\r\n * (attachment point on the panel). Position is recomputed each time the\r\n * panel opens via a `setTimeout(0)` deferral to ensure the panel is measured.\r\n *\r\n * When `disablePortal` is `false` (default), the panel uses `position: fixed`\r\n * for viewport-relative placement. When `true`, it uses `position: absolute`.\r\n *\r\n * Keyboard: `Escape` closes the panel; `ArrowDown`/`ArrowUp` move focus\r\n * between enabled `[role=\"menuitem\"]` elements inside the panel.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Controlled -->\r\n * <ls-menu [(open)]=\"isOpen\" [anchorEl]=\"triggerEl\">\r\n * <ls-menu-item (itemClick)=\"onEdit()\">Edit</ls-menu-item>\r\n * </ls-menu>\r\n *\r\n * <!-- Directive-driven -->\r\n * <button [lsMenuTriggerFor]=\"myMenu\">Open</button>\r\n * <ls-menu #myMenu>\r\n * <ls-menu-item>Delete</ls-menu-item>\r\n * </ls-menu>\r\n * ```\r\n */\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-menu',\r\n standalone: true,\r\n styleUrls: ['./menu.component.css'],\r\n template: `\r\n @if (open() || _isAnimating()) {\r\n <div class=\"menu-backdrop\" (click)=\"onBackdropClick($event)\"></div>\r\n <div\r\n #panelRef\r\n class=\"menu-panel\"\r\n [class.menu-panel-inline]=\"disablePortal()\"\r\n [class.menu-enter]=\"open() && _isAnimating()\"\r\n [class.menu-leave]=\"!open() && _isAnimating()\"\r\n role=\"menu\"\r\n tabindex=\"-1\"\r\n (click)=\"onPanelClick($event)\"\r\n (animationend)=\"onAnimationEnd()\">\r\n <ng-content />\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class MenuComponent {\r\n private readonly _document = inject(DOCUMENT);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /** Controls the visibility of the menu panel. Supports two-way binding. */\r\n readonly open = model<boolean>(false);\r\n\r\n /**\r\n * Element used to position the menu panel.\r\n *\r\n * Accepts a native DOM element, an `ElementRef`, or any Angular component\r\n * that exposes a `nativeElement: HTMLElement` property (e.g. `ls-button`).\r\n * In templates, pass a template reference variable directly:\r\n * `[anchorEl]=\"btn\"` where `#btn` is on any element or component.\r\n *\r\n * When using `lsMenuTriggerFor`, this is set automatically by the directive\r\n * via `setAnchorEl()`. When using controlled mode, bind directly.\r\n *\r\n * @default null\r\n */\r\n readonly anchorEl = input<\r\n HTMLElement | ElementRef<HTMLElement> | { nativeElement: HTMLElement } | null\r\n >(null);\r\n\r\n /**\r\n * Defines the attachment point on the anchor element.\r\n *\r\n * Combined with `transformOrigin` to compute the panel's `top`/`left`\r\n * position via `getBoundingClientRect()`.\r\n *\r\n * @default { vertical: 'bottom', horizontal: 'left' }\r\n */\r\n readonly anchorOrigin = input<MenuOriginPoint>({\r\n vertical: 'bottom',\r\n horizontal: 'left',\r\n });\r\n\r\n /**\r\n * Defines the attachment point on the menu panel surface.\r\n *\r\n * The panel is translated so this point aligns with `anchorOrigin`.\r\n *\r\n * @default { vertical: 'top', horizontal: 'left' }\r\n */\r\n readonly transformOrigin = input<MenuOriginPoint>({\r\n vertical: 'top',\r\n horizontal: 'left',\r\n });\r\n\r\n /**\r\n * When `false` (default), the panel uses `position: fixed` for\r\n * viewport-relative placement. When `true`, uses `position: absolute`\r\n * and renders relative to the nearest positioned ancestor.\r\n *\r\n * @default false\r\n */\r\n readonly disablePortal = input<boolean>(false);\r\n\r\n /**\r\n * When `true`, the panel closes automatically after the user activates\r\n * a `ls-menu-item` (i.e., a `[role=\"menuitem\"]` element) inside it.\r\n *\r\n * @default true\r\n */\r\n readonly closeOnClick = input<boolean>(true);\r\n\r\n /**\r\n * Emits when the panel's opening animation completes.\r\n * Does NOT emit when `open` is set programmatically without animation.\r\n */\r\n readonly opened = output<void>();\r\n\r\n /**\r\n * Emits when the panel's closing animation completes and the panel\r\n * is fully hidden. In controlled mode, the host can use this to update\r\n * state after the transition finishes.\r\n */\r\n readonly closed = output<void>();\r\n\r\n /**\r\n * Emits when the user clicks the transparent backdrop behind the panel.\r\n * The menu closes automatically after this output emits.\r\n */\r\n readonly backdropClick = output<MouseEvent>();\r\n\r\n private readonly _panelRef = viewChild<ElementRef<HTMLElement>>('panelRef');\r\n\r\n protected readonly _isAnimating = signal(false);\r\n\r\n private _wasOpen = false;\r\n private _previouslyFocused: Element | null = null;\r\n private _savedBodyOverflow = '';\r\n private _savedBodyPaddingRight = '';\r\n private readonly _resolvedAnchorEl = signal<HTMLElement | null>(null);\r\n private readonly _repositionHandler = () => this._computeAndApplyPosition();\r\n\r\n constructor() {\r\n // Manages animation state, scroll lock, focus, and repositioning listeners\r\n // when the panel opens or closes.\r\n effect(() => {\r\n const isOpen = this.open();\r\n untracked(() => {\r\n if (isOpen) {\r\n this._isAnimating.set(true);\r\n this._previouslyFocused = this._document.activeElement;\r\n this._savedBodyOverflow = this._document.body.style.overflow;\r\n this._savedBodyPaddingRight = this._document.body.style.paddingRight;\r\n\r\n const scrollbarWidth = this._getScrollbarWidth();\r\n\r\n if (scrollbarWidth > 0) {\r\n this._document.body.style.paddingRight = `${scrollbarWidth}px`;\r\n }\r\n\r\n this._document.body.style.overflow = 'hidden';\r\n setTimeout(() => this._panelRef()?.nativeElement.focus(), 0);\r\n window.addEventListener('resize', this._repositionHandler);\r\n window.addEventListener('scroll', this._repositionHandler, true);\r\n this._wasOpen = true;\r\n } else if (this._wasOpen) {\r\n this._isAnimating.set(true);\r\n window.removeEventListener('resize', this._repositionHandler);\r\n window.removeEventListener('scroll', this._repositionHandler, true);\r\n this._wasOpen = false;\r\n }\r\n });\r\n });\r\n\r\n // Computes and applies panel position whenever the panel enters the DOM\r\n // or any positioning input changes. Using a separate effect (rather than\r\n // setTimeout) guarantees that Angular has already updated the viewChild\r\n // signal before this runs, so _panelRef() is always non-null here.\r\n effect(() => {\r\n const panel = this._panelRef()?.nativeElement;\r\n if (!panel) return;\r\n this._computeAndApplyPosition();\r\n });\r\n\r\n this._destroyRef.onDestroy(() => {\r\n window.removeEventListener('resize', this._repositionHandler);\r\n window.removeEventListener('scroll', this._repositionHandler, true);\r\n if (this._wasOpen) {\r\n this._document.body.style.overflow = this._savedBodyOverflow;\r\n this._document.body.style.paddingRight = this._savedBodyPaddingRight;\r\n (this._previouslyFocused as HTMLElement)?.focus?.();\r\n }\r\n });\r\n }\r\n\r\n /** Toggles the panel between open and closed. */\r\n toggle(): void {\r\n this.open.set(!this.open());\r\n }\r\n\r\n /**\r\n * Sets the anchor element used for panel positioning.\r\n * Called automatically by `MenuTriggerDirective`.\r\n */\r\n setAnchorEl(el: HTMLElement | null): void {\r\n this._resolvedAnchorEl.set(el);\r\n }\r\n\r\n /** Closes the panel without waiting for a user interaction. */\r\n requestClose(): void {\r\n this.open.set(false);\r\n }\r\n\r\n protected onBackdropClick(event: MouseEvent): void {\r\n this.backdropClick.emit(event);\r\n this.open.set(false);\r\n }\r\n\r\n protected onPanelClick(event: MouseEvent): void {\r\n if (!this.closeOnClick()) return;\r\n const target = event.target as HTMLElement;\r\n if (target.closest('[role=\"menuitem\"]') !== null) {\r\n this.open.set(false);\r\n }\r\n }\r\n\r\n protected onAnimationEnd(): void {\r\n this._isAnimating.set(false);\r\n if (this.open()) {\r\n this.opened.emit();\r\n } else {\r\n this._document.body.style.overflow = this._savedBodyOverflow;\r\n this._document.body.style.paddingRight = this._savedBodyPaddingRight;\r\n this.closed.emit();\r\n (this._previouslyFocused as HTMLElement)?.focus?.();\r\n this._previouslyFocused = null;\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n protected onEscape(): void {\r\n if (this.open()) {\r\n this.open.set(false);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.arrowdown', ['$event'])\r\n protected onArrowDown(event: Event): void {\r\n if (!this.open()) return;\r\n event.preventDefault();\r\n this._moveFocus(1);\r\n }\r\n\r\n @HostListener('document:keydown.arrowup', ['$event'])\r\n protected onArrowUp(event: Event): void {\r\n if (!this.open()) return;\r\n event.preventDefault();\r\n this._moveFocus(-1);\r\n }\r\n\r\n private _computeAndApplyPosition(): void {\r\n const rawAnchor = this.anchorEl() ?? this._resolvedAnchorEl();\r\n const panel = this._panelRef()?.nativeElement;\r\n if (!rawAnchor || !panel) return;\r\n\r\n const anchorEl = this._toHTMLElement(rawAnchor);\r\n if (!anchorEl) return;\r\n\r\n const anchorRect = anchorEl.getBoundingClientRect();\r\n const panelRect = panel.getBoundingClientRect();\r\n const ao = this.anchorOrigin();\r\n const to = this.transformOrigin();\r\n\r\n const anchorX =\r\n anchorRect.left +\r\n (ao.horizontal === 'center'\r\n ? anchorRect.width / 2\r\n : ao.horizontal === 'right'\r\n ? anchorRect.width\r\n : 0);\r\n\r\n const anchorY =\r\n anchorRect.top +\r\n (ao.vertical === 'center'\r\n ? anchorRect.height / 2\r\n : ao.vertical === 'bottom'\r\n ? anchorRect.height\r\n : 0);\r\n\r\n const transformX =\r\n to.horizontal === 'center'\r\n ? panelRect.width / 2\r\n : to.horizontal === 'right'\r\n ? panelRect.width\r\n : 0;\r\n\r\n const transformY =\r\n to.vertical === 'center'\r\n ? panelRect.height / 2\r\n : to.vertical === 'bottom'\r\n ? panelRect.height\r\n : 0;\r\n\r\n panel.style.setProperty('--menu-top', `${anchorY - transformY}px`);\r\n panel.style.setProperty('--menu-left', `${anchorX - transformX}px`);\r\n }\r\n\r\n /**\r\n * Resolves any supported anchor value to a plain `HTMLElement`.\r\n *\r\n * Handles: `HTMLElement`, `ElementRef<HTMLElement>`, and objects that expose\r\n * a `nativeElement: HTMLElement` property (e.g. `ls-button` component refs).\r\n */\r\n private _toHTMLElement(anchor: unknown): HTMLElement | null {\r\n if (!anchor) return null;\r\n if (anchor instanceof HTMLElement) return anchor;\r\n if (\r\n typeof anchor === 'object' &&\r\n anchor !== null &&\r\n 'nativeElement' in anchor\r\n ) {\r\n const el = (anchor as { nativeElement: unknown }).nativeElement;\r\n return el instanceof HTMLElement ? el : null;\r\n }\r\n return null;\r\n }\r\n\r\n private _moveFocus(direction: 1 | -1): void {\r\n const panel = this._panelRef()?.nativeElement;\r\n if (!panel) return;\r\n\r\n const items = Array.from(\r\n panel.querySelectorAll<HTMLElement>(\r\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])'\r\n )\r\n );\r\n if (items.length === 0) return;\r\n\r\n const currentIndex = items.indexOf(\r\n this._document.activeElement as HTMLElement\r\n );\r\n const nextIndex =\r\n currentIndex === -1\r\n ? direction === 1\r\n ? 0\r\n : items.length - 1\r\n : (currentIndex + direction + items.length) % items.length;\r\n\r\n items[nextIndex]?.focus();\r\n }\r\n\r\n private _getScrollbarWidth(): number {\r\n return window.innerWidth - this._document.documentElement.clientWidth;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Interactive item rendered inside an `ls-menu` panel.\r\n *\r\n * Renders a `<button role=\"menuitem\">` that projects its label via\r\n * `<ng-content>`. Visual density, gutters, and a bottom divider are\r\n * configurable via inputs. When `disabled` is `true`, the item is not\r\n * interactive and the `itemClick` output will not emit.\r\n *\r\n * @example\r\n * ```html\r\n * <ls-menu-item [dense]=\"true\" (itemClick)=\"onEdit($event)\">\r\n * Edit\r\n * </ls-menu-item>\r\n * ```\r\n */\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-menu-item',\r\n standalone: true,\r\n styleUrls: ['./menu.component.css'],\r\n template: `\r\n <button\r\n type=\"button\"\r\n [class]=\"_itemClasses()\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\r\n role=\"menuitem\"\r\n (click)=\"handleClick($event)\">\r\n <ng-content />\r\n </button>\r\n `,\r\n})\r\nexport class MenuItemComponent {\r\n /**\r\n * Reduces the vertical padding of the item for compact layouts.\r\n *\r\n * @default false\r\n */\r\n readonly dense = input<boolean>(false);\r\n\r\n /**\r\n * Removes left and right padding when `true`.\r\n *\r\n * @default false\r\n */\r\n readonly disableGutters = input<boolean>(false);\r\n\r\n /**\r\n * Adds a 1px border at the bottom of the item to act as a visual divider.\r\n *\r\n * @default false\r\n */\r\n readonly divider = input<boolean>(false);\r\n\r\n /**\r\n * Prevents interaction. Applies disabled styling, sets `aria-disabled=\"true\"`,\r\n * and suppresses the `itemClick` output.\r\n *\r\n * @default false\r\n */\r\n readonly disabled = input<boolean>(false);\r\n\r\n /**\r\n * Emits the originating `MouseEvent` when the user activates the item.\r\n * Does NOT emit when `disabled` is `true`.\r\n */\r\n readonly itemClick = output<MouseEvent>();\r\n\r\n protected readonly _itemClasses = computed(() => {\r\n const classes = ['menu-item'];\r\n if (this.dense()) classes.push('menu-item-dense');\r\n if (this.disableGutters()) classes.push('menu-item-no-gutters');\r\n if (this.divider()) classes.push('menu-item-divider');\r\n if (this.disabled()) classes.push('menu-item-disabled');\r\n return classes.join(' ');\r\n });\r\n\r\n protected handleClick(event: MouseEvent): void {\r\n if (this.disabled()) return;\r\n this.itemClick.emit(event);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n} from '@angular/core';\r\nimport { MenuComponent } from './menu.component';\r\n\r\n/**\r\n * Connects any host element to a `MenuComponent` instance, enabling\r\n * click-to-toggle behavior without manual open-state management.\r\n *\r\n * Sets `anchorEl` on the linked `MenuComponent` to the host element\r\n * before toggling visibility, so the panel is correctly positioned\r\n * relative to the trigger. Also applies `aria-haspopup=\"menu\"` to the\r\n * host for accessibility.\r\n *\r\n * @example\r\n * ```html\r\n * <button type=\"button\" [lsMenuTriggerFor]=\"myMenu\">Options</button>\r\n * <ls-menu #myMenu>\r\n * <ls-menu-item>Delete</ls-menu-item>\r\n * </ls-menu>\r\n * ```\r\n */\r\n@Directive({\r\n host: { 'aria-haspopup': 'menu' },\r\n selector: '[lsMenuTriggerFor]',\r\n standalone: true,\r\n})\r\nexport class MenuTriggerDirective {\r\n /**\r\n * The `MenuComponent` instance this directive controls.\r\n * Assign a template reference variable of `ls-menu`.\r\n */\r\n readonly lsMenuTriggerFor = input.required<MenuComponent>();\r\n\r\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\r\n\r\n @HostListener('click')\r\n protected onClick(): void {\r\n const menu = this.lsMenuTriggerFor();\r\n menu.setAnchorEl(this._resolveAnchorElement());\r\n menu.toggle();\r\n }\r\n\r\n /**\r\n * Resolves the first ancestor element that has a real layout box.\r\n *\r\n * Angular component hosts commonly use `:host { display: contents }`,\r\n * which means the element itself has no bounding box and\r\n * `getBoundingClientRect()` returns all zeros. This method walks down\r\n * through `display: contents` wrappers until it reaches the first child\r\n * that participates in layout, so the menu panel is positioned relative\r\n * to the visible trigger element rather than a phantom box.\r\n */\r\n private _resolveAnchorElement(): HTMLElement {\r\n let el = this._elementRef.nativeElement as HTMLElement;\r\n while (el.firstElementChild && getComputedStyle(el).display === 'contents') {\r\n el = el.firstElementChild as HTMLElement;\r\n }\r\n return el;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'modal-actions' },\r\n imports: [],\r\n selector: 'ls-modal-actions',\r\n standalone: true,\r\n template: `<ng-content />`,\r\n})\r\nexport class ModalActionsComponent {}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nlet _titleIdCounter = 0;\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'modal-title', '[id]': 'id' },\r\n imports: [],\r\n selector: 'ls-modal-title',\r\n standalone: true,\r\n template: `<ng-content />`,\r\n})\r\nexport class ModalTitleComponent {\r\n public readonly id = `ls-modal-title-${++_titleIdCounter}`;\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalStackService {\r\n private readonly _stack = signal<string[]>([]);\r\n\r\n push(id: string): void {\r\n this._stack.update(stack => [...stack, id]);\r\n }\r\n\r\n pop(id: string): void {\r\n this._stack.update(stack => stack.filter(s => s !== id));\r\n }\r\n\r\n isTop(id: string): boolean {\r\n const stack = this._stack();\r\n return stack.length > 0 && stack[stack.length - 1] === id;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n OnDestroy,\r\n computed,\r\n contentChild,\r\n effect,\r\n inject,\r\n input,\r\n output,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { ModalTitleComponent } from './modal-title.component';\r\nimport { ModalStackService } from './modal.service';\r\n\r\nlet _modalIdCounter = 0;\r\n\r\nexport type ModalMaxWidth = 'sm' | 'md' | 'lg' | 'xl' | 'full';\r\nexport type ModalScroll = 'dialog' | 'body';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-modal',\r\n standalone: true,\r\n styleUrls: ['./modal.component.css'],\r\n template: `\r\n @if (open()) {\r\n <div [class]=\"overlayClasses()\" (click)=\"onBackdropClick()\">\r\n <div\r\n #panel\r\n [attr.aria-labelledby]=\"labelledById()\"\r\n [attr.aria-modal]=\"true\"\r\n [class]=\"panelClasses()\"\r\n role=\"dialog\"\r\n tabindex=\"-1\"\r\n (click)=\"$event.stopPropagation()\">\r\n @if (showCloseButton()) {\r\n <button\r\n aria-label=\"Close\"\r\n class=\"modal-close-btn\"\r\n type=\"button\"\r\n (click)=\"onCloseButtonClick()\">\r\n <i class=\"ls-icon ls-x ls-icon-sm\"></i>\r\n </button>\r\n }\r\n <ng-content />\r\n </div>\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class ModalComponent implements OnDestroy {\r\n readonly open = input<boolean>(false);\r\n readonly disableBackdropClose = input<boolean>(false);\r\n readonly fullScreen = input<boolean>(false);\r\n readonly fullWidth = input<boolean>(false);\r\n readonly maxWidth = input<ModalMaxWidth>('md');\r\n readonly scroll = input<ModalScroll>('dialog');\r\n readonly showCloseButton = input<boolean>(true);\r\n readonly closed = output<void>();\r\n\r\n private readonly _modalStackService = inject(ModalStackService);\r\n private readonly _titleComponent = contentChild(ModalTitleComponent);\r\n private readonly _panel = viewChild<ElementRef<HTMLElement>>('panel');\r\n private readonly _id = `ls-modal-${++_modalIdCounter}`;\r\n private _previouslyFocused: Element | null = null;\r\n\r\n protected readonly labelledById = computed(() => {\r\n const title = this._titleComponent();\r\n return title ? title.id : null;\r\n });\r\n\r\n protected readonly overlayClasses = computed(() => {\r\n const classes = ['modal-overlay'];\r\n if (this.scroll() === 'body') classes.push('modal-overlay-body');\r\n return classes.join(' ');\r\n });\r\n\r\n protected readonly panelClasses = computed(() => {\r\n const classes = [\r\n 'modal-panel',\r\n `modal-max-${this.maxWidth()}`,\r\n `modal-scroll-${this.scroll()}`,\r\n ];\r\n if (this.fullScreen()) classes.push('modal-full-screen');\r\n if (this.fullWidth()) classes.push('modal-full-width');\r\n if (this.showCloseButton()) classes.push('modal-has-close-btn');\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.open()) {\r\n this._previouslyFocused = document.activeElement;\r\n this._modalStackService.push(this._id);\r\n setTimeout(() => {\r\n untracked(() => this._panel()?.nativeElement.focus());\r\n }, 0);\r\n } else {\r\n this._modalStackService.pop(this._id);\r\n (this._previouslyFocused as HTMLElement)?.focus?.();\r\n this._previouslyFocused = null;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.open()) {\r\n this._modalStackService.pop(this._id);\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n protected onEscape(): void {\r\n if (this.open() && this._modalStackService.isTop(this._id)) {\r\n this.closed.emit();\r\n }\r\n }\r\n\r\n protected onBackdropClick(): void {\r\n if (!this.disableBackdropClose()) {\r\n this.closed.emit();\r\n }\r\n }\r\n\r\n protected onCloseButtonClick(): void {\r\n this.closed.emit();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'modal-content' },\r\n imports: [],\r\n selector: 'ls-modal-content',\r\n standalone: true,\r\n template: `<ng-content />`,\r\n})\r\nexport class ModalContentComponent {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n DestroyRef,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n Renderer2,\r\n signal,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nexport type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'ls-popover',\r\n standalone: true,\r\n styleUrls: ['./popover.component.css'],\r\n template: `\r\n @if (isOpen() || _isAnimating()) {\r\n <div\r\n [class]=\"_panelClasses()\"\r\n [class.popover-enter]=\"isOpen() && _isAnimating()\"\r\n [class.popover-exit]=\"!isOpen() && _isAnimating()\"\r\n (animationend)=\"_onAnimationEnd()\"\r\n (mouseenter)=\"_onPanelMouseEnter()\"\r\n (mouseleave)=\"_onPanelMouseLeave()\"\r\n role=\"dialog\"\r\n aria-modal=\"false\"\r\n #panelRef>\r\n @if (showArrow()) {\r\n <span [class]=\"_arrowClasses()\"></span>\r\n }\r\n <ng-content />\r\n </div>\r\n }\r\n `,\r\n})\r\nexport class PopoverComponent {\r\n private readonly _renderer = inject(Renderer2);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private readonly _document = inject(DOCUMENT);\r\n private readonly _elementRef = inject(ElementRef);\r\n private _cleanupScroll: (() => void) | null = null;\r\n\r\n readonly placement = input<PopoverPlacement>('bottom');\r\n readonly showArrow = input<boolean>(true);\r\n readonly offset = input<number>(8);\r\n readonly autoFlip = input<boolean>(true);\r\n readonly trigger = input<HTMLElement | undefined>(undefined);\r\n\r\n readonly isOpen = model<boolean>(false);\r\n\r\n readonly onOpened = output<void>();\r\n readonly onHidden = output<void>();\r\n\r\n private readonly _panelRef = viewChild<ElementRef>('panelRef');\r\n\r\n readonly _currentPlacement = signal<PopoverPlacement>('bottom');\r\n readonly _isAnimating = signal(false);\r\n\r\n private _cleanupClickOutside: (() => void) | null = null;\r\n private _cleanupEscape: (() => void) | null = null;\r\n private _hoverBridgeTimeout: ReturnType<typeof setTimeout> | null =\r\n null;\r\n private _wasOpen = false;\r\n\r\n readonly _panelClasses = computed(() =>\r\n ['popover-panel', `popover-${this._currentPlacement()}`].join(' '),\r\n );\r\n\r\n readonly _arrowClasses = computed(\r\n () =>\r\n `popover-arrow popover-arrow-${this._currentPlacement()}`,\r\n );\r\n\r\n constructor() {\r\n effect(() => {\r\n const isOpen = this.isOpen();\r\n\r\n untracked(() => {\r\n if (isOpen) {\r\n this._currentPlacement.set(this.placement());\r\n this._isAnimating.set(true);\r\n this._setupListeners();\r\n setTimeout(() => {\r\n if (this.isOpen()) {\r\n this._computePosition();\r\n }\r\n }, 0);\r\n this._wasOpen = true;\r\n } else if (this._wasOpen) {\r\n this._isAnimating.set(true);\r\n this._wasOpen = false;\r\n } else {\r\n this._removeListeners();\r\n }\r\n });\r\n });\r\n\r\n this._destroyRef.onDestroy(() => {\r\n this._removeListeners();\r\n if (this._hoverBridgeTimeout) {\r\n clearTimeout(this._hoverBridgeTimeout);\r\n }\r\n });\r\n }\r\n\r\n open(): void {\r\n this.isOpen.set(true);\r\n }\r\n\r\n close(): void {\r\n this.isOpen.set(false);\r\n }\r\n\r\n toggle(): void {\r\n if (this.isOpen()) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n _onAnimationEnd(): void {\r\n this._isAnimating.set(false);\r\n if (this.isOpen()) {\r\n this.onOpened.emit();\r\n } else {\r\n this._removeListeners();\r\n this.onHidden.emit();\r\n }\r\n }\r\n\r\n _onPanelMouseEnter(): void {\r\n if (this._hoverBridgeTimeout) {\r\n clearTimeout(this._hoverBridgeTimeout);\r\n this._hoverBridgeTimeout = null;\r\n }\r\n }\r\n\r\n _onPanelMouseLeave(): void {\r\n this._hoverBridgeTimeout = setTimeout(\r\n () => this.close(),\r\n 100,\r\n );\r\n }\r\n\r\n private _computePosition(): void {\r\n const anchor =\r\n this.trigger() ??\r\n this._elementRef.nativeElement.parentElement;\r\n const panel = this._panelRef()?.nativeElement;\r\n\r\n if (!anchor || !panel) return;\r\n\r\n const anchorRect = anchor.getBoundingClientRect();\r\n const panelRect = panel.getBoundingClientRect();\r\n const offset = this.offset();\r\n\r\n let placement = this._currentPlacement();\r\n if (this.autoFlip()) {\r\n placement = this._getFlippedPlacement(\r\n placement,\r\n anchorRect,\r\n panelRect,\r\n offset,\r\n );\r\n this._currentPlacement.set(placement);\r\n }\r\n\r\n let top = 0;\r\n let left = 0;\r\n\r\n switch (placement) {\r\n case 'top':\r\n top = anchorRect.top - panelRect.height - offset;\r\n left =\r\n anchorRect.left +\r\n (anchorRect.width - panelRect.width) / 2;\r\n break;\r\n case 'bottom':\r\n top = anchorRect.bottom + offset;\r\n left =\r\n anchorRect.left +\r\n (anchorRect.width - panelRect.width) / 2;\r\n break;\r\n case 'left':\r\n top =\r\n anchorRect.top +\r\n (anchorRect.height - panelRect.height) / 2;\r\n left = anchorRect.left - panelRect.width - offset;\r\n break;\r\n case 'right':\r\n top =\r\n anchorRect.top +\r\n (anchorRect.height - panelRect.height) / 2;\r\n left = anchorRect.right + offset;\r\n break;\r\n }\r\n\r\n panel.style.setProperty('--popover-top', `${top}px`);\r\n panel.style.setProperty('--popover-left', `${left}px`);\r\n }\r\n\r\n private _getFlippedPlacement(\r\n placement: PopoverPlacement,\r\n anchorRect: DOMRect,\r\n panelRect: DOMRect,\r\n offset: number,\r\n ): PopoverPlacement {\r\n const viewportWidth =\r\n this._document.defaultView?.innerWidth ?? 0;\r\n const viewportHeight =\r\n this._document.defaultView?.innerHeight ?? 0;\r\n\r\n const opposites: Record<\r\n PopoverPlacement,\r\n PopoverPlacement\r\n > = {\r\n top: 'bottom',\r\n bottom: 'top',\r\n left: 'right',\r\n right: 'left',\r\n };\r\n\r\n switch (placement) {\r\n case 'top':\r\n if (anchorRect.top - panelRect.height - offset < 0) {\r\n return opposites[placement];\r\n }\r\n break;\r\n case 'bottom':\r\n if (\r\n anchorRect.bottom + panelRect.height + offset >\r\n viewportHeight\r\n ) {\r\n return opposites[placement];\r\n }\r\n break;\r\n case 'left':\r\n if (anchorRect.left - panelRect.width - offset < 0) {\r\n return opposites[placement];\r\n }\r\n break;\r\n case 'right':\r\n if (\r\n anchorRect.right + panelRect.width + offset >\r\n viewportWidth\r\n ) {\r\n return opposites[placement];\r\n }\r\n break;\r\n }\r\n\r\n return placement;\r\n }\r\n\r\n private _setupListeners(): void {\r\n this._removeListeners();\r\n\r\n this._cleanupClickOutside = this._renderer.listen(\r\n this._document,\r\n 'click',\r\n (event: MouseEvent) => {\r\n const anchor =\r\n this.trigger() ??\r\n this._elementRef.nativeElement.parentElement;\r\n const panel = this._panelRef()?.nativeElement;\r\n const target = event.target as Node;\r\n\r\n if (\r\n panel &&\r\n !panel.contains(target) &&\r\n anchor &&\r\n !anchor.contains(target)\r\n ) {\r\n this.close();\r\n }\r\n },\r\n );\r\n\r\n this._cleanupEscape = this._renderer.listen(\r\n this._document,\r\n 'keydown',\r\n (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n this.close();\r\n }\r\n },\r\n );\r\n\r\n this._cleanupScroll = this._renderer.listen(\r\n 'window',\r\n 'scroll',\r\n () => {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n },\r\n { capture: true }\r\n );\r\n }\r\n\r\n private _removeListeners(): void {\r\n if (this._cleanupClickOutside) {\r\n this._cleanupClickOutside();\r\n this._cleanupClickOutside = null;\r\n }\r\n if (this._cleanupEscape) {\r\n this._cleanupEscape();\r\n this._cleanupEscape = null;\r\n }\r\n if (this._cleanupScroll) {\r\n this._cleanupScroll();\r\n this._cleanupScroll = null;\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n OnInit,\r\n computed,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\n\r\n/** Controls the visual rendering style of page number items and nav buttons. */\r\nexport type PaginationVariant = 'text' | 'outlined' | 'solid';\r\n\r\n/**\r\n * Applies the design-token color to the active page item and hover states.\r\n *\r\n * - `'primary'` — Brand primary color.\r\n * - `'secondary'` — Brand secondary color.\r\n * - `'default'` — Neutral gray, no brand color applied.\r\n */\r\nexport type PaginationColor = 'primary' | 'secondary' | 'default';\r\n\r\n/** Determines the border-radius style applied uniformly to all page buttons. */\r\nexport type PaginationShape = 'circular' | 'rounded';\r\n\r\n/**\r\n * Controls the physical dimensions (height, font size, padding) of all\r\n * buttons in the pagination bar.\r\n */\r\nexport type PaginationSize = 'small' | 'medium' | 'large';\r\n\r\n/**\r\n * Renders an accessible pagination bar for navigating a paged data set.\r\n *\r\n * Supports both **controlled** and **uncontrolled** modes:\r\n * - **Controlled**: provide the `page` input and update it in response to\r\n * the `pageChange` output. The component reflects the external value.\r\n * - **Uncontrolled**: omit `page`. The component manages its own active\r\n * page via an internal signal, initialized from `defaultPage`.\r\n *\r\n * When the total page count exceeds 5, a 5-item sliding window is rendered\r\n * centered on the active page. Navigation buttons are rendered inside a\r\n * `<nav aria-label=\"pagination\">` landmark. Each button receives\r\n * `aria-current=\"page\"` (active) or `aria-disabled=\"true\"` (boundary/disabled)\r\n * as appropriate.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Uncontrolled -->\r\n * <ls-pagination [count]=\"20\" (pageChange)=\"onPage($event)\" />\r\n *\r\n * <!-- Controlled -->\r\n * <ls-pagination\r\n * [count]=\"20\"\r\n * [page]=\"currentPage\"\r\n * (pageChange)=\"currentPage = $event\" />\r\n * ```\r\n */\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [],\r\n selector: 'ls-pagination',\r\n standalone: true,\r\n styleUrls: ['./pagination.component.css'],\r\n template: `\r\n <nav aria-label=\"pagination\">\r\n <ul class=\"pg-list\">\r\n @if (showFirstButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"first\"\r\n [class]=\"navClasses(isFirstPage())\"\r\n [disabled]=\"isFirstPage() || disabled()\"\r\n [attr.aria-disabled]=\"isFirstPage() || disabled() ? 'true' : null\"\r\n (click)=\"goToPage(1)\">\r\n <i class=\"ls-icon ls-chevron-left-double ls-icon-sm\"></i>\r\n </button>\r\n </li>\r\n }\r\n @if (!hidePrevButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"prev\"\r\n [class]=\"navClasses(isFirstPage())\"\r\n [disabled]=\"isFirstPage() || disabled()\"\r\n [attr.aria-disabled]=\"isFirstPage() || disabled() ? 'true' : null\"\r\n (click)=\"goToPage(activePage() - 1)\">\r\n <i class=\"ls-icon ls-chevron-left ls-icon-sm\"></i>\r\n </button>\r\n </li>\r\n }\r\n @for (n of pages(); track $index) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n [class]=\"pageItemClasses(n)\"\r\n [attr.aria-current]=\"n === activePage() ? 'page' : null\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\r\n (click)=\"goToPage(n)\">\r\n {{ n }}\r\n </button>\r\n </li>\r\n }\r\n @if (!hideNextButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"next\"\r\n [class]=\"navClasses(isLastPage())\"\r\n [disabled]=\"isLastPage() || disabled()\"\r\n [attr.aria-disabled]=\"isLastPage() || disabled() ? 'true' : null\"\r\n (click)=\"goToPage(activePage() + 1)\">\r\n <i class=\"ls-icon ls-chevron-right ls-icon-sm\"></i>\r\n </button>\r\n </li>\r\n }\r\n @if (showLastButton()) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n aria-label=\"last\"\r\n [class]=\"navClasses(isLastPage())\"\r\n [disabled]=\"isLastPage() || disabled()\"\r\n [attr.aria-disabled]=\"isLastPage() || disabled() ? 'true' : null\"\r\n (click)=\"goToPage(count())\">\r\n <i class=\"ls-icon ls-chevron-right-double ls-icon-sm\"></i>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n </nav>\r\n `,\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n /**\r\n * Total number of pages in the data set.\r\n *\r\n * Must be a positive integer ≥ 1. Determines both the upper boundary for\r\n * navigation and the page window calculation.\r\n *\r\n * @default 1\r\n */\r\n readonly count = input<number>(1);\r\n\r\n /**\r\n * Active page index in controlled mode (1-based).\r\n *\r\n * When provided, the component reflects this value and does not maintain\r\n * internal page state. The host is responsible for updating this input in\r\n * response to `pageChange` emissions. Pass `undefined` to switch to\r\n * uncontrolled mode.\r\n *\r\n * @default undefined\r\n */\r\n readonly page = input<number | undefined>(undefined);\r\n\r\n /**\r\n * Initial active page used in uncontrolled mode (1-based).\r\n *\r\n * Consumed once on `ngOnInit`. Has no effect when `page` is provided.\r\n *\r\n * @default 1\r\n */\r\n readonly defaultPage = input<number>(1);\r\n\r\n /**\r\n * Color token applied to the active page item and button hover states.\r\n *\r\n * @default 'primary'\r\n */\r\n readonly color = input<PaginationColor>('primary');\r\n\r\n /**\r\n * Visual rendering style of page number items and navigation buttons.\r\n *\r\n * @default 'outlined'\r\n */\r\n readonly variant = input<PaginationVariant>('outlined');\r\n\r\n /**\r\n * Border-radius style applied uniformly to all buttons in the bar.\r\n *\r\n * @default 'rounded'\r\n */\r\n readonly shape = input<PaginationShape>('rounded');\r\n\r\n /**\r\n * Physical dimensions (height, font size, padding) of all buttons.\r\n *\r\n * @default 'medium'\r\n */\r\n readonly size = input<PaginationSize>('medium');\r\n\r\n /**\r\n * Disables all buttons in the pagination bar.\r\n *\r\n * When `true`, every button receives `disabled` and\r\n * `aria-disabled=\"true\"`. The `pageChange` output will not emit.\r\n *\r\n * @default false\r\n */\r\n readonly disabled = input<boolean>(false);\r\n\r\n /**\r\n * Renders a \"go to first page\" button before the previous-page button.\r\n *\r\n * The button is automatically disabled and receives `aria-disabled=\"true\"`\r\n * when the active page is already the first page.\r\n *\r\n * @default false\r\n */\r\n readonly showFirstButton = input<boolean>(false);\r\n\r\n /**\r\n * Renders a \"go to last page\" button after the next-page button.\r\n *\r\n * The button is automatically disabled and receives `aria-disabled=\"true\"`\r\n * when the active page is already the last page.\r\n *\r\n * @default false\r\n */\r\n readonly showLastButton = input<boolean>(false);\r\n\r\n /**\r\n * Hides the previous-page navigation button.\r\n *\r\n * @default false\r\n */\r\n readonly hidePrevButton = input<boolean>(false);\r\n\r\n /**\r\n * Hides the next-page navigation button.\r\n *\r\n * @default false\r\n */\r\n readonly hideNextButton = input<boolean>(false);\r\n\r\n /**\r\n * Emits the target page number (1-based) when the user activates any\r\n * page item or navigation button.\r\n *\r\n * Does NOT emit when `disabled` is `true` or when the user clicks a\r\n * boundary button that is already at its limit (first/last page).\r\n * In controlled mode, the host must update the `page` input in response\r\n * to this event to reflect the navigation in the UI.\r\n */\r\n readonly pageChange = output<number>();\r\n\r\n private readonly _internalPage = signal<number>(1);\r\n\r\n protected readonly activePage = computed(\r\n () => this.page() ?? this._internalPage()\r\n );\r\n protected readonly pages = computed(() => {\r\n const total = this.count();\r\n const current = this.activePage();\r\n if (total <= 5) {\r\n return Array.from({ length: total }, (_, i) => i + 1);\r\n }\r\n const start = Math.max(1, Math.min(current - 2, total - 4));\r\n return Array.from({ length: 5 }, (_, i) => start + i);\r\n });\r\n protected readonly isFirstPage = computed(() => this.activePage() === 1);\r\n protected readonly isLastPage = computed(\r\n () => this.activePage() === this.count()\r\n );\r\n\r\n private readonly _baseClasses = computed(() => {\r\n const size = this.size();\r\n const sizeClass =\r\n size === 'small'\r\n ? 'pg-item-sm'\r\n : size === 'large'\r\n ? 'pg-item-lg'\r\n : 'pg-item-md';\r\n const shapeClass =\r\n this.shape() === 'circular' ? 'pg-item-circular' : 'pg-item-rounded';\r\n return [\r\n 'pg-item',\r\n `pg-item-${this.variant()}-${this.color()}`,\r\n sizeClass,\r\n shapeClass,\r\n ].join(' ');\r\n });\r\n\r\n ngOnInit(): void {\r\n this._internalPage.set(this.defaultPage());\r\n }\r\n\r\n protected pageItemClasses(n: number): string {\r\n const base = this._baseClasses();\r\n return n === this.activePage() ? `${base} pg-item-active` : base;\r\n }\r\n\r\n protected navClasses(isAtBoundary: boolean): string {\r\n const classes = `${this._baseClasses()} pg-nav-btn`;\r\n return isAtBoundary || this.disabled()\r\n ? `${classes} pg-item-disabled`\r\n : classes;\r\n }\r\n\r\n protected goToPage(n: number): void {\r\n if (this.disabled() || n < 1 || n > this.count()) return;\r\n if (this.page() === undefined) {\r\n this._internalPage.set(n);\r\n }\r\n this.pageChange.emit(n);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nexport interface BreadcrumbItem {\r\n label: string;\r\n url?: string;\r\n icon?: string;\r\n}\r\n\r\nexport type BreadcrumbVariant = 'default' | 'arrowed' | 'dotted';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgTemplateOutlet],\r\n selector: 'ls-breadcrumb',\r\n standalone: true,\r\n styleUrls: ['./breadcrumb.component.css'],\r\n template: `\r\n <nav aria-label=\"Breadcrumb\" [style]=\"_colorStyle()\">\r\n <ol [class]=\"_classes()\">\r\n @for (item of items(); track item.label; let isLast = $last) {\r\n <li\r\n class=\"ls-breadcrumb-item\"\r\n [class.ls-breadcrumb-item--active]=\"isLast\">\r\n @if (isLast) {\r\n <span aria-current=\"page\">\r\n @if (item.icon) {\r\n <i\r\n [class]=\"\r\n 'ls-icon ls-' + item.icon + ' ls-breadcrumb-icon'\r\n \"></i>\r\n }\r\n {{ item.label }}\r\n </span>\r\n } @else if (item.url) {\r\n <a [href]=\"item.url\">\r\n @if (item.icon) {\r\n <i\r\n [class]=\"\r\n 'ls-icon ls-' + item.icon + ' ls-breadcrumb-icon'\r\n \"></i>\r\n }\r\n {{ item.label }}\r\n </a>\r\n } @else {\r\n <span>\r\n @if (item.icon) {\r\n <i\r\n [class]=\"\r\n 'ls-icon ls-' + item.icon + ' ls-breadcrumb-icon'\r\n \"></i>\r\n }\r\n {{ item.label }}\r\n </span>\r\n }\r\n </li>\r\n\r\n @if (!isLast && variant() !== 'arrowed') {\r\n <li class=\"ls-breadcrumb-separator\" aria-hidden=\"true\">\r\n @if (_isTemplateSeparator()) {\r\n <ng-container *ngTemplateOutlet=\"$any(separator())\" />\r\n } @else {\r\n {{ separator() }}\r\n }\r\n </li>\r\n }\r\n }\r\n </ol>\r\n </nav>\r\n `,\r\n})\r\nexport class BreadcrumbComponent {\r\n readonly items = input.required<BreadcrumbItem[]>();\r\n readonly variant = input<BreadcrumbVariant>('default');\r\n readonly separator = input<string | TemplateRef<unknown>>('/');\r\n readonly color = input<string>('gray'); // El nuevo input de color\r\n\r\n // Lógica para el color dinámico\r\n protected readonly _colorStyle = computed(() => {\r\n const c = this.color();\r\n const value =\r\n c === 'primary'\r\n ? 'var(--ls-color-primary)'\r\n : c === 'secondary'\r\n ? 'var(--ls-color-secondary)'\r\n : c;\r\n return { '--ls-breadcrumb-main-color': value };\r\n });\r\n\r\n protected readonly _classes = computed(() => {\r\n return `ls-breadcrumb ls-breadcrumb--${this.variant()}`;\r\n });\r\n\r\n protected readonly _isTemplateSeparator = computed(() => {\r\n return this.separator() instanceof TemplateRef;\r\n });\r\n}\r\n","// @lumston/ds-angular — public API surface\r\nexport * from './icon';\r\nexport * from './dropdown';\r\nexport * from './inputs';\r\nexport * from './typography';\r\nexport * from './data-display';\r\nexport * from './media';\r\nexport * from './feedback';\r\nexport * from './overlay';\r\nexport * from './navigation';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}