@basis-ng/primitives 0.0.1-alpha.0
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.
- package/core/components/alert/alert.component.d.ts +20 -0
- package/core/components/attached-box/attached-box.component.d.ts +125 -0
- package/core/components/attached-box/types/alignment.type.d.ts +1 -0
- package/core/components/attached-box/types/direction.type.d.ts +1 -0
- package/core/components/attached-box/types/position.type.d.ts +1 -0
- package/core/components/badge/badge.component.d.ts +9 -0
- package/core/components/bottom-sheet/bottom-sheet.component.d.ts +60 -0
- package/core/components/button/button.component.d.ts +17 -0
- package/core/components/button-group/button-group.component.d.ts +9 -0
- package/core/components/checkbox/checkbox.component.d.ts +26 -0
- package/core/components/color-picker/color-picker.component.d.ts +61 -0
- package/core/components/icon/icon.component.d.ts +29 -0
- package/core/components/input/input.component.d.ts +78 -0
- package/core/components/input-group/input-group.component.d.ts +13 -0
- package/core/components/menu/menu.component.d.ts +14 -0
- package/core/components/menu/shared/components/menu-item/menu-item.component.d.ts +9 -0
- package/core/components/menu/shared/components/menu-item-checkbox/menu-item-checkbox.component.d.ts +9 -0
- package/core/components/menu/shared/components/menu-item-radio/menu-item-radio.component.d.ts +9 -0
- package/core/components/menu/shared/components/menu-label/menu-label.component.d.ts +8 -0
- package/core/components/menu/shared/directives/menu-trigger.directive.d.ts +14 -0
- package/core/components/range/range.component.d.ts +26 -0
- package/core/components/search/search.component.d.ts +121 -0
- package/core/components/select/select.component.d.ts +48 -0
- package/core/components/side-sheet/side-sheet.component.d.ts +46 -0
- package/core/components/spinner/spinner.component.d.ts +9 -0
- package/core/components/switch/switch.component.d.ts +35 -0
- package/core/components/table/components/row/components/row-item/row-item.component.d.ts +12 -0
- package/core/components/table/components/row/row.component.d.ts +9 -0
- package/core/components/table/table.component.d.ts +5 -0
- package/core/components/tabs/components/tab/tab.component.d.ts +25 -0
- package/core/components/tabs/tabs.component.d.ts +60 -0
- package/core/components/textarea/textarea.component.d.ts +48 -0
- package/core/components/tooltip/tooltip.component.d.ts +36 -0
- package/core/components/tree/shared/components/tree-node/tree-node.component.d.ts +43 -0
- package/core/components/tree/tree.component.d.ts +56 -0
- package/core/directives/in-viewport.directive.d.ts +13 -0
- package/core/services/in-viewport.service.d.ts +23 -0
- package/core/services/responsive.service.d.ts +47 -0
- package/core/services/theme.service.d.ts +44 -0
- package/fesm2022/basis-ng-primitives.mjs +2415 -0
- package/fesm2022/basis-ng-primitives.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +26 -0
- package/public-api.d.ts +40 -0
- package/shared/components/label/label.component.d.ts +34 -0
- package/shared/components/option/option.component.d.ts +10 -0
- package/shared/directives/lazy-content.directive.d.ts +7 -0
- package/shared/services/utils.service.d.ts +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basis-ng-primitives.mjs","sources":["../../../projects/lib/src/core/services/theme.service.ts","../../../projects/lib/src/core/components/spinner/spinner.component.ts","../../../projects/lib/src/core/components/spinner/spinner.component.html","../../../projects/lib/src/core/components/button/button.component.ts","../../../projects/lib/src/core/components/button/button.component.html","../../../projects/lib/src/core/components/button-group/button-group.component.ts","../../../projects/lib/src/shared/directives/lazy-content.directive.ts","../../../projects/lib/src/core/components/icon/icon.component.ts","../../../projects/lib/src/shared/services/utils.service.ts","../../../projects/lib/src/core/components/search/search.component.ts","../../../projects/lib/src/core/components/search/search.component.html","../../../projects/lib/src/core/components/input/input.component.ts","../../../projects/lib/src/core/components/select/select.component.ts","../../../projects/lib/src/shared/components/option/option.component.ts","../../../projects/lib/src/core/components/switch/switch.component.ts","../../../projects/lib/src/core/components/table/table.component.ts","../../../projects/lib/src/core/components/table/table.component.html","../../../projects/lib/src/core/components/table/components/row/row.component.ts","../../../projects/lib/src/core/components/table/components/row/row.component.html","../../../projects/lib/src/core/components/table/components/row/components/row-item/row-item.component.ts","../../../projects/lib/src/core/components/table/components/row/components/row-item/row-item.component.html","../../../projects/lib/src/core/components/tabs/components/tab/tab.component.ts","../../../projects/lib/src/core/components/tabs/components/tab/tab.component.html","../../../projects/lib/src/core/components/tabs/tabs.component.ts","../../../projects/lib/src/core/components/tabs/tabs.component.html","../../../projects/lib/src/core/services/in-viewport.service.ts","../../../projects/lib/src/core/directives/in-viewport.directive.ts","../../../projects/lib/src/core/components/side-sheet/side-sheet.component.ts","../../../projects/lib/src/core/components/side-sheet/side-sheet.component.html","../../../projects/lib/src/core/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/lib/src/core/components/bottom-sheet/bottom-sheet.component.html","../../../projects/lib/src/core/services/responsive.service.ts","../../../projects/lib/src/core/components/attached-box/attached-box.component.ts","../../../projects/lib/src/core/components/attached-box/attached-box.component.html","../../../projects/lib/src/shared/components/label/label.component.ts","../../../projects/lib/src/core/components/badge/badge.component.ts","../../../projects/lib/src/core/components/checkbox/checkbox.component.ts","../../../projects/lib/src/core/components/textarea/textarea.component.ts","../../../projects/lib/src/core/components/input-group/input-group.component.ts","../../../projects/lib/src/core/components/range/range.component.ts","../../../projects/lib/src/core/components/tooltip/tooltip.component.ts","../../../projects/lib/src/core/components/color-picker/color-picker.component.ts","../../../projects/lib/src/core/components/tree/shared/components/tree-node/tree-node.component.ts","../../../projects/lib/src/core/components/tree/shared/components/tree-node/tree-node.component.html","../../../projects/lib/src/core/components/tree/tree.component.ts","../../../projects/lib/src/core/components/menu/menu.component.ts","../../../projects/lib/src/core/components/menu/shared/components/menu-label/menu-label.component.ts","../../../projects/lib/src/core/components/menu/shared/components/menu-item/menu-item.component.ts","../../../projects/lib/src/core/components/menu/shared/components/menu-item-checkbox/menu-item-checkbox.component.ts","../../../projects/lib/src/core/components/menu/shared/components/menu-item-radio/menu-item-radio.component.ts","../../../projects/lib/src/core/components/menu/shared/directives/menu-trigger.directive.ts","../../../projects/lib/src/core/components/alert/alert.component.ts","../../../projects/lib/src/core/components/alert/alert.component.html","../../../projects/lib/src/public-api.ts","../../../projects/lib/src/basis-ng-primitives.ts"],"sourcesContent":["import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\r\nimport { signal } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ThemeService {\r\n /**\r\n * Signal representing the current theme.\r\n *\r\n * Possible values:\r\n * - `'light'`: Light theme.\r\n * - `'dark'`: Dark theme.\r\n * - `'auto'`: Automatically determine the theme.\r\n */\r\n readonly theme = signal<'light' | 'dark' | 'auto'>('auto');\r\n\r\n /**\r\n * Renderer2 instance for manipulating the DOM.\r\n * Used to set the `data-theme` attribute on the document root (`<html>`).\r\n */\r\n private renderer: Renderer2;\r\n\r\n /**\r\n * RendererFactory2 instance for creating Renderer2 instances.\r\n * Injected to create the renderer.\r\n */\r\n private rendererFactory = inject(RendererFactory2);\r\n\r\n constructor() {\r\n this.renderer = this.rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n /**\r\n * Applies the specified theme to the document root (`<html>`).\r\n *\r\n * @param theme - The theme to apply. Possible values:\r\n * - `'light'`: Apply the light theme.\r\n * - `'dark'`: Apply the dark theme.\r\n * - `'auto'`: Remove the theme attribute and let the system decide.\r\n */\r\n applyTheme(theme: 'light' | 'dark' | 'auto'): void {\r\n this.theme.set(theme);\r\n if (theme === 'auto') {\r\n this.removeTheme();\r\n return;\r\n }\r\n this.renderer.setAttribute(document.documentElement, 'data-theme', theme);\r\n }\r\n\r\n /**\r\n * Toggles the theme between `'light'` and `'dark'`.\r\n * If the current theme is `'light'`, it switches to `'dark'`, and vice versa.\r\n */\r\n toggleTheme(): void {\r\n this.applyTheme(this.theme() === 'light' ? 'dark' : 'light');\r\n }\r\n\r\n /**\r\n * Removes the `data-theme` attribute from the document body.\r\n * This is used when the theme is set to `'auto'`.\r\n */\r\n removeTheme(): void {\r\n this.renderer.removeAttribute(document.documentElement, 'data-theme');\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'r-spinner',\r\n imports: [NgStyle],\r\n templateUrl: './spinner.component.html',\r\n})\r\nexport class Spinner {\r\n readonly active = input<boolean>(true);\r\n readonly color = input<string>('var(--foreground)');\r\n readonly backgroundColor = input<string>('transparent');\r\n readonly size = input<number>(20);\r\n}\r\n","@if (active()) {\r\n <section [ngStyle]=\"{ background: backgroundColor() }\" class=\"background\">\r\n <svg\r\n [attr.height]=\"size()\"\r\n [attr.width]=\"size()\"\r\n preserveAspectRatio=\"xMidYMid\"\r\n style=\"\r\n shape-rendering: auto;\r\n display: block;\r\n background: rgba(122, 122, 122, 0);\r\n \"\r\n viewBox=\"0 0 100 100\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g>\r\n <g transform=\"rotate(0 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.9166666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(30 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.8333333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(60 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.75s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(90 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.6666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(120 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.5833333333333334s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(150 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.5s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(180 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.4166666666666667s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(210 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.3333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(240 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.25s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(270 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.16666666666666666s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(300 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"-0.08333333333333333s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g transform=\"rotate(330 50 50)\">\r\n <rect\r\n [attr.fill]=\"color()\"\r\n height=\"20\"\r\n rx=\"3\"\r\n ry=\"3.2800000000000002\"\r\n width=\"6\"\r\n x=\"47\"\r\n y=\"10\">\r\n <animate\r\n attributeName=\"opacity\"\r\n begin=\"0s\"\r\n dur=\"1s\"\r\n keyTimes=\"0;1\"\r\n repeatCount=\"indefinite\"\r\n values=\"1;0\" />\r\n </rect>\r\n </g>\r\n <g />\r\n </g>\r\n </svg>\r\n </section>\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { Spinner } from '../spinner/spinner.component';\r\n\r\n@Component({\r\n selector: 'button[r-button]',\r\n imports: [Spinner],\r\n templateUrl: './button.component.html',\r\n host: {\r\n '[class]': 'variant() + \" size-\" + size()',\r\n '[class.equal-padding]': 'equalPadding()',\r\n '[class.loading]': 'loading()',\r\n '[class.toggled]': 'isToggled()',\r\n },\r\n})\r\nexport class Button {\r\n /** The variant of the button. */\r\n readonly variant = input<'primary' | 'secondary' | 'ghost' | 'outlined'>(\r\n 'primary'\r\n );\r\n\r\n /** The size of the button. */\r\n readonly size = input<'small' | 'default'>('default');\r\n\r\n /** Whether is loading. */\r\n readonly loading = input(false);\r\n\r\n /** Whether the padding should be equal vertically and horizontally. */\r\n readonly equalPadding = input(false);\r\n\r\n /** Whether the button is toggleable. */\r\n readonly toggle = input(false);\r\n\r\n /** The value of the button when it is toggled. */\r\n readonly isToggled = input(false);\r\n}\r\n","@if (loading()) {\r\n <r-spinner\r\n [active]=\"loading()\"\r\n [size]=\"18\"\r\n [color]=\"\r\n variant() === 'primary'\r\n ? 'var(--primary-foreground)'\r\n : 'var(--secondary-foreground)'\r\n \" />\r\n}\r\n<ng-content />\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'r-button-group',\r\n template: `<ng-content />`,\r\n host: {\r\n class: 'button-group',\r\n '[class.spaced]': 'spaced()',\r\n },\r\n})\r\nexport class ButtonGroup {\r\n /**\r\n * Whether the buttons should be spaced.\r\n */\r\n readonly spaced = input<boolean>(false);\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[r-lazy]',\r\n standalone: true,\r\n})\r\nexport class LazyContentDirective {\r\n tpl = inject(TemplateRef);\r\n}\r\n","import { Component, computed, inject, input } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { createElement, icons } from 'lucide';\r\n\r\n@Component({\r\n selector: 'i[r-icon]',\r\n imports: [],\r\n template: ``,\r\n host: {\r\n '[innerHTML]': 'iconSvg()',\r\n },\r\n})\r\nexport class Icon {\r\n /**\r\n * The sanitizer service.\r\n */\r\n private sanitizer = inject(DomSanitizer);\r\n\r\n /**\r\n * The icon of the text field.\r\n */\r\n readonly icon = input.required<string>();\r\n\r\n /**\r\n * The size of the icon.\r\n */\r\n readonly size = input(24);\r\n\r\n /**\r\n * The stroke of the icon.\r\n */\r\n readonly strokeWidth = input(1.8);\r\n\r\n /**\r\n * The color of the icon.\r\n */\r\n readonly color = input<string>('var(--foreground, #798194)');\r\n\r\n /**\r\n * The svg of the icon.\r\n */\r\n readonly iconSvg = computed(() => {\r\n if (!(icons as any)[this.icon()]) {\r\n console.error(`Icon '${this.icon()}' not found in Lucide icons.`);\r\n return this.sanitizer.bypassSecurityTrustHtml('');\r\n }\r\n\r\n const iconSvg = createElement((icons as any)[this.icon()], {\r\n width: this.size(),\r\n height: this.size(),\r\n stroke: this.color(),\r\n 'stroke-width': this.strokeWidth(),\r\n });\r\n return this.sanitizer.bypassSecurityTrustHtml(iconSvg.outerHTML);\r\n });\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UtilsService {\r\n debounceTimer: any;\r\n\r\n /**\r\n * Debounce with optional delay\r\n * @param {any} func - The function to debounce\r\n * @param {any} delay - The delay in milliseconds\r\n */\r\n debounce(func: any, delay: any): void {\r\n clearTimeout(this.debounceTimer);\r\n this.debounceTimer = setTimeout(func, delay);\r\n }\r\n\r\n /**\r\n * Stop debounce\r\n */\r\n stopDebounce(): void {\r\n clearTimeout(this.debounceTimer);\r\n }\r\n}\r\n","import {\r\n Component,\r\n computed,\r\n contentChildren,\r\n effect,\r\n ElementRef,\r\n HostListener,\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\nimport { Icon } from '../icon/icon.component';\r\nimport { Option } from '../../../public-api';\r\nimport { UtilsService } from '../../../shared/services/utils.service';\r\n\r\n@Component({\r\n selector: 'r-search',\r\n imports: [Icon],\r\n templateUrl: './search.component.html',\r\n host: {\r\n '[style.max-width]': 'maxWidth()',\r\n '[class.invalid]': 'invalid()',\r\n '[class.disabled]': 'disabled()',\r\n '[class.label-up]':\r\n '(searchValue() || selectedValue() || placeholder() || focused()) && label()',\r\n '(keydown)': 'onKeyDown($event)',\r\n },\r\n})\r\nexport class Search {\r\n /**\r\n * The label associated with the search component.\r\n */\r\n readonly label = input<string>();\r\n\r\n /**\r\n * The maximum width of the search component.\r\n */\r\n readonly maxWidth = input('');\r\n\r\n /**\r\n * The placeholder of the text field.\r\n */\r\n readonly placeholder = input<string>('');\r\n\r\n /**\r\n * Indicates whether the search component is searching.\r\n */\r\n readonly searching = model<boolean>(false);\r\n\r\n /**\r\n * Indicates whether the search component is in an invalid state.\r\n */\r\n readonly invalid = model(false);\r\n\r\n /**\r\n * Indicates whether the search component is disabled.\r\n */\r\n readonly disabled = model(false);\r\n\r\n /**\r\n * The value of the selected option.\r\n */\r\n readonly selectedValue = model<string | null>(null);\r\n\r\n /**\r\n * The search value.\r\n */\r\n readonly searchValue = model<string>('');\r\n\r\n /**\r\n * Emits the value of the search component when the value changes.\r\n */\r\n searchChange = output<string>();\r\n\r\n /**\r\n * Emits when the search component is focused.\r\n */\r\n readonly focused = signal<boolean>(false);\r\n\r\n /**\r\n * Indicates whether the options dropdown is open.\r\n */\r\n readonly isOpen = signal(false);\r\n\r\n /**\r\n * The options available for selection.\r\n */\r\n readonly options = contentChildren(Option);\r\n\r\n /**\r\n * Indicates whether the search component has no options.\r\n */\r\n readonly noOptions = computed(\r\n () => !this.options() || this.options().length === 0\r\n );\r\n\r\n /**\r\n * Reference to the select element within the component\r\n * @private\r\n */\r\n private readonly select = viewChild<ElementRef>('select');\r\n\r\n /**\r\n * Reference to the renderer\r\n * @private\r\n */\r\n private readonly renderer = inject(Renderer2);\r\n\r\n /**\r\n * The icon name to display.\r\n */\r\n readonly selectIconName = computed(() => {\r\n return this.searching()\r\n ? 'LoaderCircle'\r\n : this.selectedValue()\r\n ? 'X'\r\n : 'ChevronDown';\r\n });\r\n\r\n /**\r\n * The icon size to display.\r\n */\r\n readonly selectIconSize = computed(() => {\r\n return this.searching() ? 17 : this.selectedValue() ? 18 : 20;\r\n });\r\n\r\n /**\r\n * The debounce time for the search input.\r\n */\r\n readonly debounceTime = input<number>(300);\r\n\r\n /**\r\n * Reference to the UtilsService\r\n * @private\r\n */\r\n private readonly utilsService = inject(UtilsService);\r\n\r\n /**\r\n * Initializes the search component.\r\n */\r\n constructor() {\r\n effect(() => this.renderOptions());\r\n }\r\n\r\n /**\r\n * Renders the options within the select element.\r\n * @private\r\n */\r\n private renderOptions(): void {\r\n const select = this.select()?.nativeElement;\r\n const options = this.options();\r\n\r\n if (!select || !options || options.length === 0) {\r\n return;\r\n }\r\n\r\n // Clear the existing options\r\n select.innerHTML = '';\r\n\r\n // Append the options to the select\r\n options.forEach(option => {\r\n this.renderer.appendChild(select, option.el.nativeElement);\r\n });\r\n }\r\n\r\n /**\r\n * Handles the change event of the input text.\r\n */\r\n onInputValueChange(event: any): void {\r\n this.searching.set(true);\r\n const value = event.target.value as string;\r\n this.searchValue.set(value);\r\n\r\n // Use the debounce method from UtilsService\r\n this.utilsService.debounce(() => {\r\n this.searchChange.emit(value);\r\n }, this.debounceTime());\r\n }\r\n\r\n /**\r\n * Resets the search component.\r\n */\r\n reset(): void {\r\n this.selectedValue.set(null);\r\n this.searchValue.set('');\r\n }\r\n\r\n /**\r\n * Handles the selection change event from the native select element.\r\n * @param event The selection change event.\r\n */\r\n onSelectValueChange(event: Event): void {\r\n const select = event.target as HTMLSelectElement;\r\n const value = select.value === 'null' ? null : select.value;\r\n\r\n this.selectedValue.set(value);\r\n this.isOpen.set(false);\r\n }\r\n\r\n /**\r\n * Handles click events outside the select component to close the options dropdown.\r\n * @param event The mouse click event.\r\n */\r\n @HostListener('document:click', ['$event'])\r\n protected onOutsideClick(event: MouseEvent): void {\r\n if (!this.select()!.nativeElement.contains(event.target)) {\r\n this.isOpen.set(false);\r\n }\r\n }\r\n\r\n /**\r\n * Handles keyboard events to open or close the options dropdown.\r\n * @param event The keyboard event.\r\n */\r\n onKeyDown(event: KeyboardEvent): void {\r\n if (event.key === 'Escape') {\r\n this.isOpen.set(false);\r\n }\r\n }\r\n\r\n /**\r\n * Handles the icon click event.\r\n */\r\n handleIconClick(): void {\r\n if (this.selectedValue()) {\r\n this.reset();\r\n }\r\n }\r\n}\r\n","<!-- Label -->\r\n@if (label()) {\r\n <label>\r\n {{ label() }}\r\n </label>\r\n}\r\n\r\n@if (!selectedValue()) {\r\n <section [class.large]=\"noOptions() && !searching()\">\r\n <!-- Input -->\r\n <input\r\n #input\r\n [value]=\"searchValue()\"\r\n [placeholder]=\"placeholder() || ''\"\r\n [disabled]=\"disabled()\"\r\n (focus)=\"focused.set(true)\"\r\n (blur)=\"focused.set(false)\"\r\n (input)=\"onInputValueChange($event)\" />\r\n\r\n <!-- Clear Button -->\r\n @if (searchValue() || selectedValue()) {\r\n <i\r\n r-icon\r\n icon=\"X\"\r\n [size]=\"18\"\r\n tabindex=\"0\"\r\n (click)=\"searchValue.set('')\"\r\n (keydown.enter)=\"searchValue.set('')\"\r\n (keydown.space)=\"searchValue.set('')\"\r\n [color]=\"\r\n invalid()\r\n ? 'var(--error-foreground, #c40000ab)'\r\n : ' var(--input-foreground, #798194)'\r\n \"></i>\r\n }\r\n </section>\r\n}\r\n\r\n<!-- Select -->\r\n<select\r\n #select\r\n [value]=\"selectedValue()\"\r\n (change)=\"onSelectValueChange($event)\"\r\n [class.no-options]=\"noOptions()\"\r\n (mousedown)=\"isOpen.set(true)\"\r\n [disabled]=\"disabled()\"></select>\r\n\r\nnooptions: {{ noOptions() }} searching: {{ searching() }}\r\n\r\n@if (!noOptions() || searching()) {\r\n <!-- Icon -->\r\n <div class=\"icon-wrapper\">\r\n <i\r\n r-icon\r\n [icon]=\"selectIconName()\"\r\n [class.open]=\"isOpen()\"\r\n [class.select-has-value]=\"selectedValue()\"\r\n (click)=\"handleIconClick()\"\r\n (keydown.enter)=\"handleIconClick()\"\r\n (keydown.space)=\"handleIconClick()\"\r\n tabindex=\"0\"\r\n [class.searching]=\"searching()\"\r\n [size]=\"selectIconSize()\"\r\n [color]=\"\r\n invalid()\r\n ? 'var(--error-foreground, #c40000ab)'\r\n : ' var(--input-foreground, #798194)'\r\n \"></i>\r\n </div>\r\n}\r\n\r\n<!-- Projected Options -->\r\n<ng-content />\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n computed,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'input[r-input]',\r\n template: ``,\r\n host: {\r\n '[type]': 'type()',\r\n '[placeholder]': 'placeholder() || \"\"',\r\n '[class.ng-invalid]': 'invalid()',\r\n '[class.disabled]': 'disabled()',\r\n '[style.max-width]': 'maxWidth()',\r\n '(input)': 'onInput($event)',\r\n '(focus)': 'focused.set(true)',\r\n '(blur)': 'onBlur($event)',\r\n },\r\n})\r\nexport class Input implements AfterViewInit {\r\n /**\r\n * The type of the input.\r\n */\r\n readonly type = input<'text' | 'number' | 'password' | 'email'>('text');\r\n\r\n /**\r\n * The placeholder text for the input.\r\n */\r\n readonly placeholder = input<string>('');\r\n\r\n /**\r\n * The value of the input.\r\n */\r\n readonly value = signal<string | number | null>(null);\r\n\r\n /**\r\n * Whether the input is invalid.\r\n */\r\n readonly invalid = model<boolean>(false);\r\n\r\n /**\r\n * Whether the input is disabled.\r\n */\r\n readonly disabled = model<boolean>(false);\r\n\r\n /**\r\n * The maximum width of the input.\r\n */\r\n readonly maxWidth = input<string>('');\r\n\r\n /**\r\n * The number of decimal places for number input.\r\n */\r\n readonly decimals = input<number>(2);\r\n\r\n /**\r\n * The type of number input (integer or decimal).\r\n */\r\n readonly numberType = input<'integer' | 'decimal'>('integer');\r\n\r\n /**\r\n * Whether the input type is number.\r\n */\r\n readonly isNumberType = computed(() => this.type() === 'number');\r\n\r\n /**\r\n * Whether the input is focused.\r\n */\r\n readonly focused = signal<boolean>(false);\r\n\r\n /**\r\n * Event emitted when the value changes.\r\n */\r\n valueChange = output<string | number | null>();\r\n\r\n /**\r\n * Reference to the input element.\r\n */\r\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\r\n\r\n /**\r\n * Reference to the ngModel directive.\r\n */\r\n private ngModel = inject(NgModel, { optional: true });\r\n\r\n /**\r\n * After the view has been initialized, set the value of the select.\r\n */\r\n ngAfterViewInit(): void {\r\n const value = this.el.nativeElement.value || this.ngModel?.model;\r\n this.value.set(this.isNumberType() ? this.formatNumber(value) : value);\r\n }\r\n\r\n /**\r\n * Handles the input event.\r\n * @param event The input event.\r\n */\r\n onInput(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n\r\n // If the input is not of number type, update the value and emit the value change event.\r\n if (!this.isNumberType()) {\r\n this.value.set(target.value);\r\n this.valueChange.emit(target.value);\r\n }\r\n }\r\n\r\n /**\r\n * The blur event handler.\r\n * @param event - The blur event.\r\n */\r\n onBlur(event: any): void {\r\n this.focused.set(false);\r\n\r\n // If the input is of number type, format the value and emit the value change event.\r\n if (this.isNumberType()) {\r\n const formattedValue = this.formatNumber(event.target.value);\r\n this.el.nativeElement.value = formattedValue || '';\r\n this.value.set(formattedValue);\r\n this.valueChange.emit(formattedValue);\r\n }\r\n }\r\n\r\n /**\r\n * Formats the number value.\r\n * @param value - The value to format.\r\n * @returns The formatted value.\r\n */\r\n formatNumber(value: string | null) {\r\n if (value) {\r\n const numericValue = Number(value);\r\n return this.numberType() === 'integer'\r\n ? Math.round(numericValue).toString()\r\n : numericValue.toFixed(this.decimals());\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n inject,\r\n model,\r\n output,\r\n Renderer2,\r\n signal,\r\n input,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'select[r-select]',\r\n template: ` <ng-content />`,\r\n host: {\r\n '[class.ng-invalid]': 'invalid()',\r\n '[class.disabled]': 'disabled()',\r\n '[style.max-width]': 'maxWidth()',\r\n '(change)': 'change($event.target.value)',\r\n },\r\n})\r\nexport class Select implements AfterViewInit {\r\n /**\r\n * The value of the input.\r\n */\r\n readonly value = signal<string | null>(null);\r\n\r\n /**\r\n * Whether the input is invalid.\r\n */\r\n readonly invalid = model<boolean>(false);\r\n\r\n /**\r\n * Whether the input is disabled.\r\n */\r\n readonly disabled = model<boolean>(false);\r\n\r\n /**\r\n * The maximum width of the input.\r\n */\r\n readonly maxWidth = input<string>('');\r\n\r\n /**\r\n * Event emitted when the value changes.\r\n */\r\n valueChange = output<string | null>();\r\n\r\n /**\r\n * Reference to the input element.\r\n */\r\n readonly el = inject<ElementRef<HTMLSelectElement>>(ElementRef);\r\n\r\n /**\r\n * Indicates whether the options dropdown is open.\r\n */\r\n readonly isOpen = signal(false);\r\n\r\n /**\r\n * Reference to the renderer\r\n * @private\r\n */\r\n readonly renderer = inject(Renderer2);\r\n\r\n /**\r\n * After the view has been initialized, set the value of the select.\r\n */\r\n ngAfterViewInit(): void {\r\n this.value.set(this.el.nativeElement.value);\r\n }\r\n\r\n /**\r\n * Handles the select change event.\r\n * @param value - The value of the select.\r\n */\r\n change(value: string): void {\r\n this.valueChange.emit(value);\r\n this.value.set(value);\r\n }\r\n}\r\n","import { Component, ElementRef, inject } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'option[r-option]',\r\n template: `<ng-content />`,\r\n})\r\nexport class Option {\r\n /**\r\n * Reference to the host element.\r\n */\r\n el = inject(ElementRef);\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[r-switch]',\r\n template: ``,\r\n host: {\r\n '[attr.role]': 'switch',\r\n '[attr.checked]': 'value()',\r\n '[attr.aria-checked]': 'value()',\r\n '(click)': 'toggleValue()',\r\n '[class]': 'size()',\r\n '(keydown.enter)': 'toggleValue()',\r\n '(keydown.arrowleft)': 'setValue(false)',\r\n '(keydown.arrowright)': 'setValue(true)',\r\n },\r\n})\r\nexport class Switch implements AfterViewInit {\r\n /**\r\n * Value of the switch.\r\n */\r\n readonly value = model<boolean>(false);\r\n\r\n /**\r\n * The size of the switch.\r\n */\r\n readonly size = input<'default' | 'large'>('default');\r\n\r\n /**\r\n * Reference to the switch element.\r\n */\r\n el = inject(ElementRef);\r\n\r\n /**\r\n * Event emitted when the value changes.\r\n */\r\n valueChange = output<boolean>();\r\n\r\n /**\r\n * Initializes the switch value after the view is initialized.\r\n */\r\n ngAfterViewInit() {\r\n this.value.set(this.el.nativeElement.checked);\r\n }\r\n\r\n /**\r\n * Toggles the value of the switch.\r\n */\r\n toggleValue() {\r\n const newValue = !this.value();\r\n this.value.set(newValue);\r\n this.valueChange.emit(newValue);\r\n }\r\n\r\n /**\r\n * Sets the value of the switch.\r\n * @param newValue - The new value to set.\r\n */\r\n setValue(newValue: boolean) {\r\n this.value.set(newValue);\r\n this.valueChange.emit(newValue);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'r-table',\r\n templateUrl: './table.component.html',\r\n})\r\nexport class Table {}\r\n","<ng-content select=\"[r-row-header]\" />\r\n<ng-content select=\"[r-row-subheader]\" />\r\n<div class=\"scroll-section\">\r\n <ng-content />\r\n</div>\r\n","import { Component, input } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'r-row',\r\n imports: [NgClass],\r\n templateUrl: './row.component.html',\r\n})\r\nexport class Row {\r\n readonly header = input<boolean>(false);\r\n readonly subheader = input<boolean>(false);\r\n readonly clickable = input<boolean>(false);\r\n readonly highlighted = input<boolean>(false);\r\n}\r\n","<div\r\n class=\"row-container\"\r\n [ngClass]=\"{\r\n clickable: clickable(),\r\n header: header(),\r\n subheader: subheader(),\r\n highlighted: highlighted(),\r\n }\">\r\n <ng-content />\r\n</div>\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'r-row-item',\r\n imports: [NgStyle],\r\n templateUrl: './row-item.component.html',\r\n})\r\nexport class RowItem {\r\n readonly widthPx = input<number>();\r\n readonly alignedLeft = input<boolean>(false);\r\n readonly isHeader = input<boolean>(false);\r\n readonly style = computed(() => {\r\n return {\r\n width: `${this.widthPx()}px`,\r\n justifyContent: this.alignedLeft() ? 'flex-start' : 'center',\r\n };\r\n });\r\n}\r\n","<div [ngStyle]=\"style()\" class=\"row-item-container\">\r\n <ng-content />\r\n</div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, input, output, signal } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'r-tab',\r\n imports: [NgClass],\r\n templateUrl: './tab.component.html',\r\n})\r\nexport class Tab {\r\n readonly value = input.required<string>();\r\n readonly disabled = input<boolean>(false);\r\n readonly selected = signal<boolean>(false);\r\n readonly highlighted = signal<boolean>(false);\r\n selectEmitter = output<Tab>();\r\n\r\n constructor(public el: ElementRef) {}\r\n\r\n /**\r\n * Emit the select event when the tab is selected.\r\n */\r\n onSelect(): void {\r\n this.selectEmitter.emit(this);\r\n }\r\n\r\n /**\r\n * Highlight the tab on mouse enter if it is not disabled and not in keyboard-active mode.\r\n */\r\n onMouseEnter() {\r\n if (\r\n !this.disabled() &&\r\n !this.el.nativeElement.parentElement.parentElement.classList.contains(\r\n 'keyboard-active'\r\n )\r\n ) {\r\n this.highlighted.set(true);\r\n }\r\n }\r\n\r\n /**\r\n * Remove the highlight from the tab on mouse leave if it is not disabled and not in keyboard-active mode.\r\n */\r\n onMouseLeave() {\r\n if (\r\n !this.disabled() &&\r\n !this.el.nativeElement.parentElement.parentElement.classList.contains(\r\n 'keyboard-active'\r\n )\r\n ) {\r\n this.highlighted.set(false);\r\n }\r\n }\r\n}\r\n","<span\r\n tabindex=\"0\"\r\n (click)=\"onSelect()\"\r\n (keydown.enter)=\"onSelect()\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n [ngClass]=\"{ selected: selected(), highlighted: highlighted() }\">\r\n <ng-content\r\n/></span>\r\n","import {\r\n Component,\r\n contentChildren,\r\n effect,\r\n HostListener,\r\n model,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { Tab } from './components/tab/tab.component';\r\n\r\n@Component({\r\n selector: 'r-tabs',\r\n templateUrl: './tabs.component.html',\r\n})\r\nexport class Tabs {\r\n readonly tabs = contentChildren(Tab);\r\n readonly selectedIndex = signal<number>(-1);\r\n readonly selectedValue = model<string | null>(null);\r\n readonly highlightedIndex = signal<number>(-1);\r\n changesEmitter = output<string>();\r\n lastSelectedValue: string | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n this.handleTabSelection();\r\n this.handleExternalSelectedValue();\r\n this.handleScrollToSelectedTab();\r\n });\r\n }\r\n\r\n /**\r\n * Handle the selection of a tab.\r\n */\r\n handleTabSelection(): void {\r\n this.tabs().forEach((tab, index) => {\r\n tab.selectEmitter.subscribe(tabEmitted => {\r\n this.selectTab(tabEmitted, index);\r\n this.highlightTab(index);\r\n this.handleTabStates();\r\n this.changesEmitter.emit(tab.value());\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Select a tab.\r\n * @param {Tab} tab - The tab to select.\r\n * @param {number} index - The index of the tab.\r\n */\r\n selectTab(tab: Tab, index: number): void {\r\n this.selectedValue.set(tab.value());\r\n this.lastSelectedValue = tab.value();\r\n this.selectedIndex.set(index);\r\n }\r\n\r\n /**\r\n * Highlight a tab.\r\n * @param {number} index - The index of the tab to highlight.\r\n */\r\n highlightTab(index: number) {\r\n this.highlightedIndex.set(index);\r\n }\r\n\r\n /**\r\n * Handle the states of the tabs.\r\n */\r\n handleTabStates(): void {\r\n this.tabs().forEach((tab, index) => {\r\n tab.selected.set(index === this.selectedIndex());\r\n tab.highlighted.set(index === this.highlightedIndex());\r\n });\r\n }\r\n\r\n /**\r\n * Handle the external selected value.\r\n */\r\n handleExternalSelectedValue(): void {\r\n if (this.lastSelectedValue !== this.selectedValue()) {\r\n const selectedOptionIndex = this.tabs().findIndex(\r\n tab => tab.value() === this.selectedValue()\r\n );\r\n if (selectedOptionIndex !== -1) {\r\n this.selectTab(this.tabs()[selectedOptionIndex], selectedOptionIndex);\r\n this.highlightTab(selectedOptionIndex);\r\n this.handleTabStates();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Scroll to the selected tab.\r\n */\r\n handleScrollToSelectedTab() {\r\n if (this.selectedIndex() !== -1) {\r\n this.scrollToTab(this.selectedIndex(), 'smooth');\r\n }\r\n }\r\n\r\n /**\r\n * Handle keyboard events for navigation and selection.\r\n * @param {KeyboardEvent} event - The keyboard event.\r\n */\r\n @HostListener('keydown', ['$event'])\r\n handleKeyboard(event: KeyboardEvent) {\r\n switch (event.key) {\r\n case 'ArrowRight':\r\n event.preventDefault();\r\n this.focusOption('next');\r\n break;\r\n case 'ArrowLeft':\r\n event.preventDefault();\r\n this.focusOption('previous');\r\n break;\r\n case 'Enter':\r\n event.preventDefault();\r\n this.selectFocusedTab();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Focus on the next or previous tab.\r\n * @param {'next' | 'previous'} direction - The direction to move the focus.\r\n */\r\n focusOption(direction: 'next' | 'previous') {\r\n let index = this.highlightedIndex();\r\n const increment = direction === 'next' ? 1 : -1;\r\n\r\n index += increment;\r\n while (\r\n index >= 0 &&\r\n index < this.tabs().length &&\r\n this.tabs()[index].disabled()\r\n ) {\r\n index += increment;\r\n }\r\n\r\n if (index >= 0 && index < this.tabs().length) {\r\n this.highlightTab(index);\r\n this.handleTabStates();\r\n this.scrollToTab(this.highlightedIndex(), 'smooth');\r\n }\r\n }\r\n\r\n /**\r\n * Select the currently focused tab.\r\n */\r\n selectFocusedTab() {\r\n this.selectTab(\r\n this.tabs()[this.highlightedIndex()],\r\n this.highlightedIndex()\r\n );\r\n this.handleTabStates();\r\n }\r\n\r\n /**\r\n * Scroll to a specific tab.\r\n * @param {number} index - The index of the tab to scroll to.\r\n * @param {string} behavior - The scroll behavior ('instant' or 'smooth').\r\n */\r\n scrollToTab(index: number, behavior: string): void {\r\n const tabsElements = this.tabs();\r\n if (tabsElements[index].el.nativeElement) {\r\n tabsElements[index].el.nativeElement.scrollIntoView({\r\n block: 'nearest',\r\n behavior: behavior,\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"tabs\" [tabIndex]=\"0\">\r\n <ng-content />\r\n</div>\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InViewportService {\r\n readonly elements = signal<Record<string, boolean>>({});\r\n observer!: IntersectionObserver;\r\n\r\n /**\r\n * Register an element to be tracked by the service.\r\n * @param {string} id - The id of the element to register.\r\n */\r\n registerElement(\r\n id: string,\r\n nativeElement: HTMLElement,\r\n initialVisibility: boolean\r\n ): void {\r\n if (!(id in this.elements())) {\r\n this.elements.set({ ...this.elements(), [id]: initialVisibility });\r\n\r\n // Create an IntersectionObserver to track the element's visibility.\r\n this.observer = new IntersectionObserver(entries => {\r\n entries.forEach(entry => {\r\n const isVisible = entry.isIntersecting;\r\n this.updateElementVisibility(id, isVisible);\r\n });\r\n });\r\n\r\n // Start observing the element.\r\n this.observer.observe(nativeElement);\r\n }\r\n }\r\n\r\n /**\r\n * Unregister an element from being tracked by the service.\r\n * @param {string} id - The id of the element to unregister.\r\n */\r\n unregisterElement(id: string): void {\r\n if (id in this.elements()) {\r\n delete this.elements()[id];\r\n this.observer.disconnect();\r\n }\r\n }\r\n\r\n /**\r\n * Update the visibility of an element.\r\n * @param {string} id - The id of the element to update.\r\n * @param {boolean} isVisible - The new visibility state of the element.\r\n */\r\n updateElementVisibility(id: string, isVisible: boolean): void {\r\n this.elements.set({ ...this.elements(), [id]: isVisible });\r\n }\r\n}\r\n","import { Directive, ElementRef, inject, input, OnDestroy } from '@angular/core';\r\nimport { afterNextRender } from '@angular/core'; // Importante\r\nimport { InViewportService } from '../services/in-viewport.service';\r\n\r\n@Directive({\r\n selector: '[r-in-viewport]',\r\n})\r\nexport class InViewportDirective implements OnDestroy {\r\n readonly inViewportId = input.required<string>();\r\n readonly inViewportInitialVisibility = input<boolean>(false);\r\n el = inject(ElementRef);\r\n inViewportService = inject(InViewportService);\r\n\r\n constructor() {\r\n afterNextRender({\r\n write: () => {\r\n this.inViewportService.registerElement(\r\n this.inViewportId(),\r\n this.el.nativeElement,\r\n this.inViewportInitialVisibility()\r\n );\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.inViewportService.unregisterElement(this.inViewportId());\r\n }\r\n}\r\n","import {\r\n Component,\r\n input,\r\n output,\r\n computed,\r\n model,\r\n inject,\r\n ElementRef,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n/**\r\n * A sliding sheet component that can be positioned on either side of the screen.\r\n * The sheet slides in from the left or right edge and includes an overlay backdrop.\r\n *\r\n * @selector r-side-sheet\r\n */\r\n@Component({\r\n selector: 'r-side-sheet',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './side-sheet.component.html',\r\n host: {\r\n '[class.left]': 'isLeft()',\r\n '[class.right]': '!isLeft()',\r\n '[class.open]': 'isOpen()',\r\n '[style.width]': 'width()',\r\n },\r\n})\r\nexport class SideSheet {\r\n /**\r\n * Indicates whether the side sheet is open.\r\n */\r\n readonly isOpen = model(false);\r\n\r\n /**\r\n * Specifies the side of the screen where the sheet is positioned.\r\n * Can be either 'left' or 'right'.\r\n */\r\n readonly side = input<'left' | 'right'>('right');\r\n\r\n /**\r\n * Specifies the width of the side sheet.\r\n */\r\n readonly width = input('300px');\r\n\r\n /**\r\n * Computes whether the side sheet is positioned on the left side.\r\n */\r\n readonly isLeft = computed(() => this.side() === 'left');\r\n\r\n /**\r\n * Computes whether the side sheet is positioned on the right side.\r\n */\r\n readonly isRight = computed(() => this.side() === 'right');\r\n\r\n /**\r\n * Event emitted when the side sheet is closed.\r\n */\r\n closeSheet = output<void>();\r\n\r\n /**\r\n * Reference to the host element of the side sheet.\r\n */\r\n private readonly el = inject(ElementRef);\r\n\r\n /**\r\n * Closes the side sheet when clicking outside of it.\r\n *\r\n * @param event - The click event.\r\n */\r\n @HostListener('document:click', ['$event'])\r\n closeOnOutsideClick(event: Event) {\r\n if (this.isOpen() && !this.el.nativeElement.contains(event.target)) {\r\n this.isOpen.set(false);\r\n }\r\n }\r\n}\r\n","<button class=\"close-button\" (click)=\"isOpen.set(false)\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"19\"\r\n height=\"19\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"0.094rem\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n class=\"lucide lucide-x\">\r\n <path d=\"M18 6 6 18\" />\r\n <path d=\"m6 6 12 12\" />\r\n </svg>\r\n</button>\r\n<ng-content />\r\n","import {\r\n Component,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n computed,\r\n inject,\r\n ElementRef,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'r-bottom-sheet',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './bottom-sheet.component.html',\r\n host: {\r\n '[style.height]': 'height()',\r\n '[class.dragging]': 'isDragging()',\r\n '[style.transform]': 'transform()',\r\n '[class.open]': 'isOpen()',\r\n },\r\n})\r\nexport class BottomSheet {\r\n /**\r\n * Indicates whether the bottom sheet is open.\r\n */\r\n readonly isOpen = model(false);\r\n\r\n /**\r\n * The height of the bottom sheet.\r\n */\r\n readonly height = input('30dvh');\r\n\r\n /**\r\n * Event emitted when the bottom sheet is closed.\r\n */\r\n closeSheet = output<void>();\r\n\r\n /**\r\n * Indicates whether a drag event is in progress.\r\n */\r\n private readonly isDragging = signal(false);\r\n\r\n /**\r\n * The starting Y position of the drag event.\r\n */\r\n readonly startY = signal(0);\r\n\r\n /**\r\n * The current Y translation of the bottom sheet in percentage.\r\n */\r\n private readonly translateY = signal(100);\r\n\r\n /**\r\n * The threshold for closing the bottom sheet, in percentage.\r\n */\r\n readonly closeThreshold = input(30);\r\n\r\n /**\r\n * The computed transform property for the bottom sheet.\r\n */\r\n readonly transform = computed(() =>\r\n this.isDragging()\r\n ? `translateY(${this.translateY()}%)`\r\n : this.isOpen()\r\n ? 'translateY(0%)'\r\n : 'translateY(100%)'\r\n );\r\n\r\n /**\r\n * The reference to the Bottom Sheet DOM element.\r\n */\r\n private readonly el = inject(ElementRef);\r\n\r\n /**\r\n * Closes the bottom sheet when clicking outside of it.\r\n * @param event The click event.\r\n */\r\n @HostListener('document:click', ['$event'])\r\n closeOnOutsideClick(event: Event) {\r\n if (this.isOpen() && !this.el.nativeElement.contains(event.target)) {\r\n this.isOpen.set(false);\r\n this.closeSheet.emit();\r\n }\r\n }\r\n\r\n /**\r\n * Starts the drag event for the bottom sheet.\r\n * @param event The pointer event that starts the drag.\r\n */\r\n startDrag(event: PointerEvent) {\r\n this.isDragging.set(true);\r\n this.startY.set(event.clientY);\r\n // Initialize translateY based on the current state:\r\n this.translateY.set(this.isOpen() ? 0 : 100);\r\n // Disable text selection for better UX\r\n document.body.style.userSelect = 'none';\r\n\r\n const move = (e: PointerEvent) => this.updateDrag(e.clientY);\r\n const end = () => {\r\n this.isDragging.set(false);\r\n this.snapToOpenOrClose();\r\n\r\n // Restore text selection\r\n document.body.style.userSelect = '';\r\n\r\n window.removeEventListener('pointermove', move);\r\n window.removeEventListener('pointerup', end);\r\n };\r\n\r\n window.addEventListener('pointermove', move, { passive: false });\r\n window.addEventListener('pointerup', end);\r\n }\r\n\r\n /**\r\n * Updates the drag position of the bottom sheet.\r\n * @param clientY The current Y position of the pointer.\r\n */\r\n updateDrag(clientY: number) {\r\n const deltaPx = clientY - this.startY();\r\n const sheetHeight = this.el.nativeElement.offsetHeight;\r\n // Convert the pixel delta to a percentage relative to the sheet height\r\n const deltaPercent = (deltaPx / sheetHeight) * 100;\r\n // If open, the initial position is 0%; if closed, it is 100%\r\n const newPos = Math.min(\r\n 100,\r\n Math.max(0, this.isOpen() ? 0 + deltaPercent : 100 + deltaPercent)\r\n );\r\n this.translateY.set(newPos);\r\n }\r\n\r\n /**\r\n * Snaps the bottom sheet to either open or closed state based on the drag position.\r\n */\r\n snapToOpenOrClose() {\r\n if (this.translateY() > this.closeThreshold()) {\r\n this.isOpen.set(false);\r\n } else {\r\n this.isOpen.set(true);\r\n }\r\n }\r\n}\r\n","<div class=\"drag-section\" (pointerdown)=\"startDrag($event)\">\r\n <div class=\"drag-indicator\"></div>\r\n</div>\r\n<ng-content />\r\n","import { Injectable, signal, computed, afterRenderEffect } from '@angular/core';\r\n\r\n/**\r\n * Interface that defines the breakpoints for different device types\r\n */\r\nexport interface DeviceBreakpoints {\r\n /** Maximum width for mobile devices in pixels */\r\n mobile: number;\r\n /** Maximum width for tablet devices in pixels */\r\n tablet: number;\r\n /** Maximum width for desktop devices in pixels */\r\n desktop: number;\r\n}\r\n\r\n/** Available device types */\r\nexport type DeviceType = 'mobile' | 'tablet' | 'desktop';\r\n\r\n/**\r\n * Service that handles responsive design functionality\r\n * Detects current device type based on window width and configurable breakpoints\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResponsiveService {\r\n /** Signal that holds the breakpoint configuration */\r\n private readonly breakpoints = signal<DeviceBreakpoints>({\r\n mobile: 576,\r\n tablet: 992,\r\n desktop: 1200,\r\n });\r\n\r\n /** Signal that holds the current window width */\r\n private readonly windowWidth = signal<number>(0);\r\n\r\n /**\r\n * Computed signal that returns the current device type based on window width\r\n * @returns The current device type ('mobile', 'tablet', or 'desktop')\r\n */\r\n readonly currentDevice = computed<DeviceType>(() => {\r\n const width = this.windowWidth();\r\n const breaks = this.breakpoints();\r\n\r\n if (width < breaks.mobile) {\r\n return 'mobile';\r\n }\r\n if (width < breaks.tablet) {\r\n return 'tablet';\r\n }\r\n return 'desktop';\r\n });\r\n\r\n constructor() {\r\n afterRenderEffect(() => {\r\n this.initializeWindowWidth();\r\n this.setupResizeListener();\r\n });\r\n }\r\n\r\n /**\r\n * Initializes the window width signal with the current window inner width\r\n * Only called in browser environment\r\n */\r\n private initializeWindowWidth(): void {\r\n this.windowWidth.set(window.innerWidth);\r\n }\r\n\r\n /**\r\n * Sets up the resize event listener to update window width\r\n * Only called in browser environment\r\n */\r\n private setupResizeListener(): void {\r\n window.addEventListener('resize', () => {\r\n this.windowWidth.set(window.innerWidth);\r\n });\r\n }\r\n\r\n /**\r\n * Updates the breakpoint configuration\r\n * @param newBreakpoints - Partial breakpoint configuration to update\r\n */\r\n updateBreakpoints(newBreakpoints: Partial<DeviceBreakpoints>): void {\r\n this.breakpoints.update(current => ({\r\n ...current,\r\n ...newBreakpoints,\r\n }));\r\n }\r\n}\r\n","import {\r\n Component,\r\n model,\r\n viewChild,\r\n ElementRef,\r\n linkedSignal,\r\n HostListener,\r\n computed,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { Position } from './types/position.type';\r\nimport { Direction } from './types/direction.type';\r\nimport { Alignment } from './types/alignment.type';\r\n\r\n@Component({\r\n selector: 'r-attached-box',\r\n templateUrl: './attached-box.component.html',\r\n host: {\r\n '[attr.tabindex]': '0',\r\n '(click)': 'type() === \"click\" ? handleMouseEvent($event) : null',\r\n '(keydown)': 'handleKeyboardEvent($event)',\r\n '(mouseenter)': 'type() === \"hover\" ? showContent() : null',\r\n '(mouseleave)': 'type() === \"hover\" ? hideContent() : null',\r\n },\r\n})\r\nexport class AttachedBox {\r\n /**\r\n * Input signal to define the interaction type: 'click' or 'hover'.\r\n * Default is 'click'.\r\n */\r\n readonly type = input<'click' | 'hover'>('click');\r\n\r\n /**\r\n * The trigger element that will be used to open the content.\r\n */\r\n readonly trigger = inject(ElementRef);\r\n\r\n /**\r\n * The content that will be displayed when the trigger is activated.\r\n */\r\n readonly content = viewChild<ElementRef>('content');\r\n\r\n /**\r\n * The position of the content relative to the trigger.\r\n * Example values: 'top-left', 'bottom-center', etc.\r\n */\r\n readonly position = model<Position>('right-top');\r\n\r\n /**\r\n * Signal indicating whether the content is visible or not.\r\n */\r\n readonly isContentVisible = signal<boolean>(false);\r\n\r\n /**\r\n * The gap (spacing) between the trigger and the content.\r\n */\r\n readonly gap = model<number>(10);\r\n\r\n /**\r\n * Signal that dynamically calculates and provides the adjusted position of the content.\r\n * This position is adjusted to prevent overflow and ensure optimal visibility.\r\n */\r\n readonly adjustedPosition = linkedSignal<Position>(() =>\r\n this.calculateAdjustedPosition()\r\n );\r\n\r\n /**\r\n * Signal that provides the animation parameters based on the adjusted\r\n * position of the content. These parameters are used to animate the content.\r\n */\r\n readonly animationParams = computed(() => {\r\n const position = this.adjustedPosition();\r\n const direction = position.split('-')[0];\r\n const isCenter = position.includes('center');\r\n const defaultParams = {\r\n duration: '0.15s',\r\n enterDelay: '0s',\r\n leaveDelay: '0.1s',\r\n scaleFrom: 0.99,\r\n scaleTo: 1,\r\n translateFrom: '',\r\n translateTo: '',\r\n };\r\n\r\n switch (direction) {\r\n case 'top':\r\n return {\r\n ...defaultParams,\r\n translateFrom: isCenter\r\n ? 'translate(-50%, 10px)'\r\n : 'translateY(10px)',\r\n translateTo: isCenter ? 'translate(-50%, 0)' : 'translateY(0)',\r\n };\r\n case 'bottom':\r\n return {\r\n ...defaultParams,\r\n translateFrom: isCenter\r\n ? 'translate(-50%, -10px)'\r\n : 'translateY(-10px)',\r\n translateTo: isCenter ? 'translate(-50%, 0)' : 'translateY(0)',\r\n };\r\n case 'left':\r\n return {\r\n ...defaultParams,\r\n translateFrom: isCenter\r\n ? 'translate(10px, -50%)'\r\n : 'translateX(10px)',\r\n translateTo: isCenter ? 'translate(0, -50%)' : 'translateX(0)',\r\n };\r\n case 'right':\r\n return {\r\n ...defaultParams,\r\n translateFrom: isCenter\r\n ? 'translate(-10px, -50%)'\r\n : 'translateX(-10px)',\r\n translateTo: isCenter ? 'translate(0, -50%)' : 'translateX(0)',\r\n };\r\n default:\r\n return defaultParams;\r\n }\r\n });\r\n\r\n /**\r\n * Recalculates and updates the content's adjusted position when the window is scrolled.\r\n * This ensures the content remains correctly positioned relative to the trigger even when scrolling.\r\n */\r\n @HostListener('window:scroll')\r\n @HostListener('window:resize')\r\n onWindowEvent(): void {\r\n this.adjustedPosition.set(this.calculateAdjustedPosition());\r\n }\r\n\r\n /**\r\n * Closes the content when a click event occurs outside both the trigger and content elements.\r\n * @param event The mouse event representing the click.\r\n */\r\n @HostListener('document:click', ['$event'])\r\n onClickOutside(event: MouseEvent): void {\r\n if (\r\n this.isContentVisible() &&\r\n this.isClickedOutsideContent(event) &&\r\n this.isClickedOutsideTrigger(event)\r\n ) {\r\n this.isContentVisible.set(false);\r\n }\r\n }\r\n\r\n /**\r\n * Determines if a click event occurred outside the trigger and content elements.\r\n * @param event The mouse event representing the click.\r\n * @returns True if the click was outside both the trigger and content elements, false otherwise.\r\n */\r\n isClickedOutsideContent(event: MouseEvent): boolean {\r\n const contentElement = this.content()?.nativeElement;\r\n if (!contentElement) {\r\n return false;\r\n }\r\n return !contentElement.contains(event.target as Node);\r\n }\r\n\r\n /**\r\n * Determines if a click event occurred outside the trigger element.\r\n * @param event The mouse event representing the click.\r\n * @returns True if the click was outside the trigger element, false otherwise.\r\n */\r\n isClickedOutsideTrigger(event: MouseEvent): boolean {\r\n const triggerElement = this.trigger?.nativeElement;\r\n if (!triggerElement) {\r\n return false;\r\n }\r\n return !triggerElement.contains(event.target as Node);\r\n }\r\n\r\n /**\r\n * Handles keyboard events for the component.\r\n * @param event The keyboard event to handle.\r\n */\r\n handleKeyboardEvent(event: KeyboardEvent): void {\r\n if (event.key === 'Escape' || event.key === 'Enter') {\r\n this.toggleContentVisibility();\r\n }\r\n }\r\n\r\n /**\r\n * Handles mouse events for the component.\r\n * @param event The mouse event to handle.\r\n */\r\n handleMouseEvent(event: MouseEvent): void {\r\n if (\r\n this.isClickedOutsideContent(event) &&\r\n !this.isClickedOutsideTrigger(event)\r\n ) {\r\n this.toggleContentVisibility();\r\n }\r\n }\r\n\r\n /**\r\n * Toggles the visibility of the content, switching between visible and hidden states.\r\n * This method is typically called in response to user interaction with the trigger element.\r\n */\r\n toggleContentVisibility(): void {\r\n this.isContentVisible.set(!this.isContentVisible());\r\n }\r\n\r\n /**\r\n * Shows the content (used for hover interaction).\r\n */\r\n showContent(): void {\r\n this.isContentVisible.set(true);\r\n }\r\n\r\n /**\r\n * Hides the content (used for hover interaction).\r\n */\r\n hideContent(): void {\r\n this.isContentVisible.set(false);\r\n }\r\n\r\n /**\r\n * Calculates the optimal adjusted position for the content relative to the trigger.\r\n * This method considers available space in the viewport to prevent content overflow\r\n * and ensures the content is fully visible to the user.\r\n * @returns The adjusted position as a Position type string (e.g., 'bottom-left').\r\n */\r\n private calculateAdjustedPosition(): Position {\r\n if (!this.trigger?.nativeElement || !this.content()?.nativeElement) {\r\n return this.position();\r\n }\r\n\r\n const triggerElement = this.trigger!.nativeElement;\r\n const contentElement = this.content()!.nativeElement;\r\n\r\n const triggerRect = triggerElement.getBoundingClientRect();\r\n const contentRect = contentElement.getBoundingClientRect();\r\n const extraMargin = this.gap();\r\n const [primary, secondary] = this.position().split('-') as [\r\n Direction,\r\n Alignment,\r\n ];\r\n\r\n const adjustedPrimary = this.adjustPrimaryDirection(\r\n primary,\r\n triggerRect,\r\n contentRect,\r\n extraMargin\r\n );\r\n const adjustedSecondary = this.adjustSecondaryAlignment(\r\n secondary,\r\n adjustedPrimary,\r\n triggerRect,\r\n contentRect\r\n );\r\n\r\n return `${adjustedPrimary}-${adjustedSecondary}` as Position;\r\n }\r\n\r\n /**\r\n * Adjusts the primary direction (top, bottom, left, right) of the content's position\r\n * based on available viewport space. This ensures the content does not overflow the screen\r\n * in the primary direction.\r\n * @param primary The initially desired primary direction.\r\n * @param triggerRect The bounding rectangle of the trigger element.\r\n * @param contentRect The bounding rectangle of the content element.\r\n * @param margin Extra margin to consider for spacing around the content.\r\n * @returns The adjusted primary direction.\r\n */\r\n private adjustPrimaryDirection(\r\n primary: Direction,\r\n triggerRect: DOMRect,\r\n contentRect: DOMRect,\r\n margin: number\r\n ): Direction {\r\n if (['top', 'bottom'].includes(primary)) {\r\n const neededSpace = contentRect.height + margin;\r\n const spaceBelow = window.innerHeight - triggerRect.bottom;\r\n const spaceAbove = triggerRect.top;\r\n\r\n if (\r\n primary === 'bottom' &&\r\n spaceBelow < neededSpace &&\r\n spaceAbove > spaceBelow\r\n ) {\r\n return 'top';\r\n }\r\n if (\r\n primary === 'top' &&\r\n spaceAbove < neededSpace &&\r\n spaceBelow > spaceAbove\r\n ) {\r\n return 'bottom';\r\n }\r\n } else {\r\n const neededSpace = contentRect.width + margin;\r\n const spaceRight = window.innerWidth - triggerRect.right;\r\n const spaceLeft = triggerRect.left;\r\n\r\n if (\r\n primary === 'right' &&\r\n spaceRight < neededSpace &&\r\n spaceLeft > spaceRight\r\n ) {\r\n return 'left';\r\n }\r\n if (\r\n primary === 'left' &&\r\n spaceLeft < neededSpace &&\r\n spaceRight > spaceLeft\r\n ) {\r\n return 'right';\r\n }\r\n }\r\n return primary;\r\n }\r\n\r\n /**\r\n * Adjusts the secondary alignment (left, right, center for top/bottom primary, top, bottom, center for left/right primary)\r\n * of the content's position to prevent horizontal or vertical overflow. This method ensures that\r\n * the content is fully visible within the viewport in the secondary dimension.\r\n * @param secondary The initially desired secondary alignment.\r\n * @param primary The already adjusted primary direction.\r\n * @param triggerRect The bounding rectangle of the trigger element.\r\n * @param contentRect The bounding rectangle of the content element.\r\n * @returns The adjusted secondary alignment.\r\n */\r\n private adjustSecondaryAlignment(\r\n secondary: Alignment,\r\n primary: Direction,\r\n triggerRect: DOMRect,\r\n contentRect: DOMRect\r\n ): Alignment {\r\n if (['top', 'bottom'].includes(primary)) {\r\n if (secondary === 'left') {\r\n const contentRightPos = triggerRect.left + contentRect.width;\r\n if (contentRightPos > window.innerWidth) {\r\n return 'right';\r\n }\r\n } else if (secondary === 'right') {\r\n const contentLeftPos = triggerRect.right - contentRect.width;\r\n if (contentLeftPos < 0) {\r\n return 'left';\r\n }\r\n } else if (secondary === 'center') {\r\n const triggerCenter = triggerRect.left + triggerRect.width / 2;\r\n const contentLeftPos = triggerCenter - contentRect.width / 2;\r\n const contentRightPos = contentLeftPos + contentRect.width;\r\n\r\n if (contentLeftPos < 0) {\r\n return 'left';\r\n } else if (contentRightPos > window.innerWidth) {\r\n return 'right';\r\n }\r\n }\r\n } else if (['left', 'right'].includes(primary)) {\r\n if (secondary === 'top') {\r\n const contentBottomPos = triggerRect.top + contentRect.height;\r\n if (contentBottomPos > window.innerHeight) {\r\n return 'bottom';\r\n }\r\n } else if (secondary === 'bottom') {\r\n const contentTopPos = triggerRect.bottom - contentRect.height;\r\n if (contentTopPos < 0) {\r\n return 'top';\r\n }\r\n } else if (secondary === 'center') {\r\n const triggerCenter = triggerRect.top + triggerRect.height / 2;\r\n const contentTopPos = triggerCenter - contentRect.height / 2;\r\n const contentBottomPos = contentTopPos + contentRect.height;\r\n\r\n if (contentTopPos < 0) {\r\n return 'top';\r\n } else if (contentBottomPos > window.innerHeight) {\r\n return 'bottom';\r\n }\r\n }\r\n }\r\n return secondary;\r\n }\r\n}\r\n","<ng-content select=\"[r-attached-box-trigger]\" />\r\n<div\r\n #content\r\n class=\"r-attached-box-content\"\r\n [class]=\"adjustedPosition()\"\r\n [class.visible]=\"isContentVisible()\"\r\n [style.--gap.px]=\"gap()\"\r\n [style.--duration]=\"animationParams().duration\"\r\n [style.--enter-delay]=\"animationParams().enterDelay\"\r\n [style.--leave-delay]=\"animationParams().leaveDelay\"\r\n [style.--scale-from]=\"animationParams().scaleFrom\"\r\n [style.--scale-to]=\"animationParams().scaleTo\"\r\n [style.--translate-from]=\"animationParams().translateFrom\"\r\n [style.--translate-to]=\"animationParams().translateTo\">\r\n <ng-content select=\"[r-attached-box-content]\" />\r\n</div>\r\n","import { Component, computed, contentChild } from '@angular/core';\r\nimport { Select, Input, Switch, Checkbox, Textarea } from '../../../public-api';\r\n\r\n@Component({\r\n selector: 'r-label',\r\n imports: [],\r\n template: `<ng-content />`,\r\n host: {\r\n '[class.up]': 'labelUp()',\r\n '[style.max-width]': 'maxWidth()',\r\n '[class.is-switch]': 'switch()',\r\n '[class.is-checkbox]': 'checkbox()',\r\n '[class.is-textarea]': 'textarea()',\r\n },\r\n})\r\nexport class Label {\r\n /**\r\n * The input element.\r\n */\r\n readonly input = contentChild(Input);\r\n\r\n /**\r\n * The select element.\r\n */\r\n readonly select = contentChild(Select);\r\n\r\n /**\r\n * The switch element.\r\n */\r\n readonly switch = contentChild(Switch);\r\n\r\n /**\r\n * The checkbox element.\r\n */\r\n readonly checkbox = contentChild(Checkbox);\r\n\r\n /**\r\n * The textarea element.\r\n */\r\n readonly textarea = contentChild(Textarea);\r\n\r\n /**\r\n * Whether the label should be up.\r\n */\r\n readonly labelUp = computed(() => {\r\n const input = this.input();\r\n const select = this.select();\r\n const textarea = this.textarea();\r\n\r\n return (\r\n input?.focused() ||\r\n input?.value() ||\r\n input?.placeholder() ||\r\n select?.value() ||\r\n textarea?.focused() ||\r\n textarea?.value() ||\r\n textarea?.placeholder()\r\n );\r\n });\r\n\r\n /**\r\n * The label width.\r\n */\r\n readonly maxWidth = computed(() => {\r\n const input = this.input();\r\n const textarea = this.textarea();\r\n return input?.maxWidth() || this.select()?.maxWidth() || textarea?.cols();\r\n });\r\n}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'span[r-badge]',\r\n template: `<ng-content />`,\r\n host: {\r\n '[class]': 'variant() + \" size-\" + size()',\r\n },\r\n})\r\nexport class Badge {\r\n /** The variant of the badge. */\r\n readonly variant = input<'primary' | 'secondary' | 'ghost' | 'outlined'>(\r\n 'primary'\r\n );\r\n\r\n /** The size of the badge. */\r\n readonly size = input<'small' | 'default'>('default');\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n inject,\r\n model,\r\n output,\r\n AfterViewInit,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[r-checkbox]',\r\n template: ``,\r\n host: {\r\n '[attr.role]': 'checkbox',\r\n '[attr.checked]': 'value()',\r\n '[attr.aria-checked]': 'value()',\r\n '(click)': 'toggleValue()',\r\n '(keydown.enter)': 'toggleValue()',\r\n '(keydown.space)': 'toggleValue()',\r\n },\r\n})\r\nexport class Checkbox implements AfterViewInit {\r\n /**\r\n * Value of the checkbox.\r\n */\r\n readonly value = model<boolean>(false);\r\n\r\n /**\r\n * Reference to the checkbox element.\r\n */\r\n el = inject(ElementRef);\r\n\r\n /**\r\n * Event emitted when the value changes.\r\n */\r\n valueChange = output<boolean>();\r\n\r\n /**\r\n * Initializes the checkbox value after the view is initialized.\r\n */\r\n ngAfterViewInit() {\r\n this.value.set(this.el.nativeElement.checked);\r\n }\r\n\r\n /**\r\n * Toggles the value of the checkbox.\r\n */\r\n toggleValue() {\r\n const newValue = !this.value();\r\n this.value.set(newValue);\r\n this.valueChange.emit(newValue);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'textarea[r-textarea]',\r\n template: ``,\r\n host: {\r\n '[placeholder]': 'placeholder() || \"\"',\r\n '[rows]': 'rows()',\r\n '[cols]': 'cols()',\r\n '[class.ng-invalid]': 'invalid()',\r\n '[class.disabled]': 'disabled()',\r\n '(input)': 'onInput($event)',\r\n '(focus)': 'focused.set(true)',\r\n '(blur)': 'focused.set(false)',\r\n },\r\n})\r\nexport class Textarea {\r\n /**\r\n * The placeholder text for the textarea.\r\n */\r\n readonly placeholder = input<string>('');\r\n\r\n /**\r\n * The value of the textarea.\r\n */\r\n readonly value = signal<string | null>(null);\r\n\r\n /**\r\n * The number of rows for the textarea.\r\n */\r\n readonly rows = input<number>(3);\r\n\r\n /**\r\n * The number of columns for the textarea.\r\n */\r\n readonly cols = input<number>(30);\r\n\r\n /**\r\n * Whether the textarea is invalid.\r\n */\r\n readonly invalid = model<boolean>(false);\r\n\r\n /**\r\n * Whether the textarea is disabled.\r\n */\r\n readonly disabled = model<boolean>(false);\r\n\r\n /**\r\n * Whether the textarea is focused.\r\n * This will be used by the Label component.\r\n */\r\n readonly focused = signal<boolean>(false);\r\n\r\n /**\r\n * Event emitted when the value changes.\r\n */\r\n valueChange = output<string | null>();\r\n\r\n /**\r\n * Reference to the textarea element.\r\n */\r\n readonly el = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\r\n\r\n /**\r\n * Handles the input event.\r\n * @param event The input event.\r\n */\r\n onInput(event: Event): void {\r\n const target = event.target as HTMLTextAreaElement;\r\n this.value.set(target.value);\r\n this.valueChange.emit(target.value);\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'r-input-group',\r\n template: `<ng-content />`,\r\n host: {\r\n '[class.bordered]': 'bordered()',\r\n '[style.max-width]': 'maxWidth()',\r\n },\r\n})\r\nexport class InputGroup {\r\n /**\r\n * Whether the input group elements are separated by a border.\r\n */\r\n readonly bordered = input<boolean>(true);\r\n\r\n /**\r\n * The maximum width of the input.\r\n */\r\n readonly maxWidth = input<string>('');\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n inject,\r\n model,\r\n input,\r\n AfterViewInit,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'input[r-range]',\r\n template: ``,\r\n host: {\r\n '[attr.value]': 'value()',\r\n '[style.max-width]': 'maxWidth()',\r\n '(input)': 'onInput($event)',\r\n },\r\n})\r\nexport class Range implements AfterViewInit {\r\n /**\r\n * Current value of the range.\r\n */\r\n readonly value = model<string>('0');\r\n\r\n /**\r\n * Maximum width of the range slider.\r\n */\r\n readonly maxWidth = input<string>('100%');\r\n\r\n /**\r\n * Reference to the range element.\r\n */\r\n el = inject(ElementRef);\r\n\r\n /**\r\n * Initializes the range value after the view is initialized.\r\n */\r\n ngAfterViewInit() {\r\n this.value.set(this.el.nativeElement.value);\r\n }\r\n\r\n /**\r\n * Handles the input event to update the value.\r\n */\r\n onInput(event: Event) {\r\n this.value.set((event.target as HTMLInputElement).value);\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { AttachedBox } from '../attached-box/attached-box.component';\r\nimport { Position } from '../attached-box/types/position.type';\r\n\r\n/**\r\n * TooltipComponent is a reusable UI component that displays a tooltip\r\n * with customizable position, gap, variant, and size.\r\n */\r\n@Component({\r\n selector: 'r-tooltip',\r\n template: `\r\n <r-attached-box [type]=\"'hover'\" [position]=\"position()\" [gap]=\"gap()\">\r\n <ng-content r-attached-box-trigger />\r\n <div\r\n r-attached-box-content\r\n class=\"r-tooltip-content\"\r\n [class]=\"variant() + ' size-' + size()\">\r\n <ng-content select=\"[r-tooltip-content]\" />\r\n </div>\r\n </r-attached-box>\r\n `,\r\n standalone: true,\r\n imports: [AttachedBox],\r\n})\r\nexport class TooltipComponent {\r\n /**\r\n * The position of the tooltip relative to its trigger element.\r\n * Defaults to 'top-center'.\r\n */\r\n readonly position = input<Position>('top-center');\r\n\r\n /**\r\n * The gap (in pixels) between the tooltip and its trigger element.\r\n * Defaults to 8.\r\n */\r\n readonly gap = input(8);\r\n\r\n /**\r\n * The visual variant of the tooltip. Options include:\r\n * - 'primary'\r\n * - 'secondary'\r\n * - 'ghost'\r\n * - 'outlined'\r\n * Defaults to 'primary'.\r\n */\r\n readonly variant = input<'primary' | 'secondary' | 'ghost' | 'outlined'>(\r\n 'primary'\r\n );\r\n\r\n /**\r\n * The size of the tooltip. Options include:\r\n * - 'small'\r\n * - 'default'\r\n * Defaults to 'default'.\r\n */\r\n readonly size = input<'small' | 'default'>('default');\r\n}\r\n","import {\r\n Component,\r\n computed,\r\n contentChild,\r\n input,\r\n signal,\r\n AfterViewInit,\r\n inject,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgModel } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'input[r-color-picker]',\r\n imports: [],\r\n template: ``,\r\n host: {\r\n '[class.focused]': 'focused()',\r\n '[style.max-width]': 'maxWidth()',\r\n '[style.--value]': 'valueWithSingleQuotes()',\r\n '[style.--text-color]': 'textColor()',\r\n '[class.show-color]': 'showColor()',\r\n '(focus)': 'focused.set(true)',\r\n '(blur)': 'focused.set(false)',\r\n '(input)': 'value.set($event.target.value)',\r\n },\r\n})\r\nexport class ColorPicker implements AfterViewInit {\r\n /**\r\n * Specifies the maximum width of the input.\r\n */\r\n readonly maxWidth = input('');\r\n\r\n /**\r\n * Represents the value of the input.\r\n */\r\n readonly value = signal<string>('#ffffff');\r\n\r\n /**\r\n * Computed signal for the text color with single quotes.\r\n */\r\n readonly valueWithSingleQuotes = computed(() => {\r\n return `'${this.value()}'`;\r\n });\r\n\r\n /**\r\n * A computed signal that dynamically calculates the text color based on the resolved value.\r\n */\r\n readonly textColor = computed(() => {\r\n const backgroundColor = this.resolveColor(this.value());\r\n const hex = backgroundColor.replace('#', '');\r\n const r = parseInt(hex.substring(0, 2), 16);\r\n const g = parseInt(hex.substring(2, 4), 16);\r\n const b = parseInt(hex.substring(4, 6), 16);\r\n\r\n const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b;\r\n return luminance > 128 ? '#000000' : '#FFFFFF';\r\n });\r\n\r\n /**\r\n * Indicates whether the input is focused.\r\n */\r\n readonly focused = signal<boolean>(false);\r\n\r\n /**\r\n * A reference to the `NgModel` directive.\r\n */\r\n private readonly ngModel = contentChild<NgModel>(NgModel);\r\n\r\n /**\r\n * Indicates whether to show the color value.\r\n */\r\n readonly showColor = input<boolean>(true);\r\n\r\n /**\r\n * A reference to the native element.\r\n */\r\n el = inject(ElementRef);\r\n\r\n /**\r\n * A reference to the control container.\r\n */\r\n private controlContainer = inject(ControlContainer, { optional: true });\r\n\r\n /**\r\n * Lifecycle hook that is called after the view has been initialized.\r\n * Sets the initial value of the picker and attaches event listeners.\r\n */\r\n ngAfterViewInit(): void {\r\n const formControl = this.controlContainer?.control?.get(\r\n this.el.nativeElement.getAttribute('formControlName')\r\n );\r\n\r\n // Inicializa el valor del signal\r\n this.value.set(\r\n this.el?.nativeElement.value || this.ngModel()?.value || '#000000'\r\n );\r\n\r\n // Suscríbete a los cambios del FormControl\r\n formControl?.valueChanges.subscribe((newValue: string) => {\r\n this.value.set(newValue || '#000000');\r\n });\r\n }\r\n\r\n /**\r\n * Resolves a color value, handling cases like `transparent` or `color-mix`.\r\n * @param value The input color value.\r\n * @returns A valid hexadecimal color.\r\n */\r\n resolveColor(value: string): string {\r\n // Handle `color-mix` values\r\n const colorMixMatch = value.match(\r\n /color-mix\\(in srgb, (#[0-9a-fA-F]{6}), (#[0-9a-fA-F]{6}) (\\d+)%\\)/\r\n );\r\n if (colorMixMatch) {\r\n const [, color1, color2, percentage] = colorMixMatch;\r\n return this.calculateColorMix(\r\n color1,\r\n color2,\r\n parseInt(percentage, 10) / 100\r\n );\r\n }\r\n\r\n // Handle `transparent` values\r\n if (value === 'transparent') {\r\n return '#ffffff'; // Default to white for transparency\r\n }\r\n\r\n return value; // Return the original value if no special cases\r\n }\r\n\r\n /**\r\n * Calculates the result of a `color-mix` operation.\r\n * @param color1 The first color in hexadecimal format.\r\n * @param color2 The second color in hexadecimal format.\r\n * @param percentage The mix percentage for the second color.\r\n * @returns The resulting mixed color in hexadecimal format.\r\n */\r\n calculateColorMix(\r\n color1: string,\r\n color2: string,\r\n percentage: number\r\n ): string {\r\n const hexToRgb = (hex: string) => {\r\n const bigint = parseInt(hex.replace('#', ''), 16);\r\n return {\r\n r: (bigint >> 16) & 255,\r\n g: (bigint >> 8) & 255,\r\n b: bigint & 255,\r\n };\r\n };\r\n\r\n const rgbToHex = (r: number, g: number, b: number) =>\r\n `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;\r\n\r\n const rgb1 = hexToRgb(color1);\r\n const rgb2 = hexToRgb(color2);\r\n\r\n const r = Math.round(rgb1.r * (1 - percentage) + rgb2.r * percentage);\r\n const g = Math.round(rgb1.g * (1 - percentage) + rgb2.g * percentage);\r\n const b = Math.round(rgb1.b * (1 - percentage) + rgb2.b * percentage);\r\n\r\n return rgbToHex(r, g, b);\r\n }\r\n}\r\n","import { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\r\nimport {\r\n Component,\r\n contentChild,\r\n inject,\r\n model,\r\n OnInit,\r\n output,\r\n} from '@angular/core';\r\nimport { Tree } from '../../../tree.component';\r\nimport { Icon } from '../../../../icon/icon.component';\r\n\r\n/**\r\n * Represents a tree node component that can be extended, collapsed,\r\n * and optionally supports drag-and-drop functionality.\r\n */\r\n@Component({\r\n selector: 'r-tree-node',\r\n imports: [Icon, CdkDragHandle],\r\n templateUrl: './tree-node.component.html',\r\n hostDirectives: [\r\n {\r\n directive: CdkDrag,\r\n inputs: ['cdkDragDisabled: disabled'],\r\n },\r\n ],\r\n})\r\nexport class TreeNode implements OnInit {\r\n /**\r\n * Indicates whether the node is extended (expanded).\r\n */\r\n readonly extended = model(false);\r\n\r\n /**\r\n * Reference to the `CdkDrag` directive for drag-and-drop functionality.\r\n */\r\n protected node = inject(CdkDrag);\r\n\r\n /**\r\n * Reference to a nested `Tree` component, if present.\r\n */\r\n readonly nestedTree = contentChild(Tree);\r\n\r\n /**\r\n * Emits an event when the node is closed.\r\n */\r\n closeEmitter = output<void>();\r\n\r\n /**\r\n * Lifecycle hook that is called after the component is initialized.\r\n */\r\n ngOnInit(): void {\r\n this.node.lockAxis = 'y';\r\n }\r\n\r\n /**\r\n * Updates the disabled state of the node.\r\n * @param disabled - Whether the node should be disabled.\r\n */\r\n handleNodeDisability(disabled: boolean): void {\r\n this.node.disabled = disabled;\r\n }\r\n\r\n /**\r\n * Toggles the extended (expanded) state of the node.\r\n * Emits a close event if the node is collapsed and contains a nested tree.\r\n */\r\n handleExtension(): void {\r\n const isExtended = this.extended();\r\n this.extended.set(!isExtended);\r\n\r\n if (isExtended && this.nestedTree()) {\r\n this.closeEmitter.emit();\r\n }\r\n }\r\n}\r\n","<section>\r\n @if (!node.disabled) {\r\n <i r-icon icon=\"GripVertical\" [size]=\"15\" cdkDragHandle></i>\r\n }\r\n <div\r\n class=\"projected-content\"\r\n (click)=\"nestedTree() && handleExtension()\"\r\n (keydown.enter)=\"nestedTree() && handleExtension()\"\r\n (keydown.space)=\"nestedTree() && handleExtension()\"\r\n role=\"button\"\r\n tabindex=\"0\">\r\n <ng-content />\r\n </div>\r\n @if (nestedTree()) {\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\">\r\n <path d=\"m6 9 6 6 6-6\" />\r\n </svg>\r\n }\r\n</section>\r\n@if (nestedTree() && extended()) {\r\n <div class=\"nested\">\r\n <ng-content select=\"r-tree\" />\r\n </div>\r\n}\r\n","import {\r\n CdkDragDrop,\r\n CdkDropList,\r\n CdkDropListGroup,\r\n} from '@angular/cdk/drag-drop';\r\nimport {\r\n Component,\r\n contentChildren,\r\n effect,\r\n inject,\r\n input,\r\n OnInit,\r\n output,\r\n} from '@angular/core';\r\nimport { TreeNode } from './shared/components/tree-node/tree-node.component';\r\n\r\n/**\r\n * Represents a tree component that supports drag-and-drop functionality\r\n * and manages nested tree nodes.\r\n */\r\n@Component({\r\n selector: 'r-tree',\r\n template: `<ng-content />`,\r\n host: {\r\n '(cdkDropListDropped)': 'dropEmitter.emit($event)',\r\n '[style.max-width]': 'maxWidth()',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: CdkDropList,\r\n inputs: ['id', 'cdkDropListConnectedTo: connectedTo'],\r\n outputs: ['cdkDropListDropped'],\r\n },\r\n CdkDropListGroup,\r\n ],\r\n})\r\nexport class Tree implements OnInit {\r\n /**\r\n * The ID of the tree component.\r\n */\r\n readonly maxWidth = input<string>('100%');\r\n /**\r\n * Determines whether the tree is draggable.\r\n */\r\n readonly draggable = input(false);\r\n\r\n /**\r\n * Reference to the `CdkDropList` directive used for drag-and-drop.\r\n */\r\n private tree = inject(CdkDropList);\r\n\r\n /**\r\n * Collection of nested `TreeNode` components.\r\n */\r\n private readonly nestedNodes = contentChildren(TreeNode);\r\n\r\n /**\r\n * Determines whether to close nodes recursively.\r\n */\r\n readonly closeRecursively = input(false);\r\n\r\n /**\r\n * Emits an event when a drop occurs in the tree.\r\n */\r\n dropEmitter = output<CdkDragDrop<string[]>>();\r\n\r\n /**\r\n * Initializes the `Tree` component and sets up reactive effects.\r\n */\r\n constructor() {\r\n effect(() => {\r\n this.handleTreeDisability();\r\n });\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called after the component is initialized.\r\n */\r\n ngOnInit(): void {\r\n if (this.closeRecursively()) this.handleCloseRecursively();\r\n }\r\n\r\n /**\r\n * Updates the disabled state of the tree and its nested nodes.\r\n */\r\n private handleTreeDisability(): void {\r\n const isDisabled = !this.draggable();\r\n this.tree.disabled = isDisabled;\r\n\r\n this.nestedNodes().forEach(node => {\r\n node.handleNodeDisability(isDisabled);\r\n });\r\n }\r\n\r\n /**\r\n * Sets up recursive closing behavior for nested nodes.\r\n */\r\n handleCloseRecursively(): void {\r\n this.nestedNodes().forEach(node => {\r\n node.closeEmitter.subscribe(() => {\r\n this.closeNestedNodes();\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Closes all nested nodes recursively.\r\n */\r\n closeNestedNodes(): void {\r\n this.nestedNodes().forEach(node => {\r\n node.extended.set(false);\r\n node.nestedTree()?.closeNestedNodes();\r\n });\r\n }\r\n}\r\n","import { CdkMenu } from '@angular/cdk/menu';\r\nimport { Component, input } from '@angular/core';\r\n\r\n/**\r\n * Represents a menu component that can optionally float.\r\n */\r\n@Component({\r\n selector: 'r-menu',\r\n imports: [],\r\n template: `<ng-content />`,\r\n host: {\r\n '[class.floating]': 'floating()',\r\n },\r\n hostDirectives: [CdkMenu],\r\n})\r\nexport class Menu {\r\n /**\r\n * Determines whether the menu is floating.\r\n * @default false\r\n */\r\n readonly floating = input(false);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Represents a label for a menu.\r\n */\r\n@Component({\r\n selector: 'r-menu-label',\r\n imports: [],\r\n template: `<ng-content />`,\r\n})\r\nexport class MenuLabel {}\r\n","import { CdkMenuItem } from '@angular/cdk/menu';\r\nimport { Component } from '@angular/core';\r\n\r\n/**\r\n * Represents a menu item with support for typeahead and disabled states.\r\n */\r\n@Component({\r\n selector: 'r-menu-item',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [\r\n {\r\n directive: CdkMenuItem,\r\n inputs: [\r\n 'cdkMenuItemDisabled: disabled',\r\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\r\n ],\r\n outputs: ['cdkMenuItemTriggered: triggered'],\r\n },\r\n ],\r\n})\r\nexport class MenuItemComponent {}\r\n","import { CdkMenuItemCheckbox } from '@angular/cdk/menu';\r\nimport { Component } from '@angular/core';\r\n\r\n/**\r\n * Represents a checkbox menu item.\r\n */\r\n@Component({\r\n selector: 'r-menu-item-checkbox',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [\r\n {\r\n directive: CdkMenuItemCheckbox,\r\n inputs: [\r\n 'cdkMenuItemDisabled: disabled',\r\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\r\n 'cdkMenuItemChecked: active',\r\n ],\r\n outputs: ['cdkMenuItemTriggered: triggered'],\r\n },\r\n ],\r\n})\r\nexport class MenuItemCheckboxComponent {}\r\n","import { CdkMenuItemRadio } from '@angular/cdk/menu';\r\nimport { Component } from '@angular/core';\r\n\r\n/**\r\n * Represents a radio menu item.\r\n */\r\n@Component({\r\n selector: 'r-menu-item-radio',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [\r\n {\r\n directive: CdkMenuItemRadio,\r\n inputs: [\r\n 'cdkMenuItemDisabled: disabled',\r\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\r\n 'cdkMenuItemChecked: active',\r\n ],\r\n outputs: ['cdkMenuItemTriggered: triggered'],\r\n },\r\n ],\r\n})\r\nexport class MenuItemRadioComponent {}\r\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\r\nimport { Directive, inject, input, OnInit } from '@angular/core';\r\nimport { Position } from '../../../attached-box/types/position.type';\r\nimport { ConnectedPosition } from '@angular/cdk/overlay';\r\n\r\n@Directive({\r\n selector: '[menuTriggerFor]',\r\n hostDirectives: [\r\n {\r\n directive: CdkMenuTrigger,\r\n inputs: ['cdkMenuTriggerFor: menuTriggerFor'],\r\n },\r\n ],\r\n})\r\nexport class MenuTrigger implements OnInit {\r\n trigger = inject(CdkMenuTrigger);\r\n readonly menuTriggerPosition = input<Position>('right-top');\r\n readonly submenu = input(false);\r\n\r\n ngOnInit(): void {\r\n this.setPosition();\r\n }\r\n\r\n setPosition(): void {\r\n const positionMap: Record<Position, ConnectedPosition> = {\r\n 'top-left': {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: !this.submenu() ? -5 : undefined,\r\n },\r\n 'top-center': {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: !this.submenu() ? -5 : undefined,\r\n },\r\n 'top-right': {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n offsetY: !this.submenu() ? -5 : undefined,\r\n },\r\n 'bottom-left': {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: !this.submenu() ? 5 : undefined,\r\n },\r\n 'bottom-center': {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: !this.submenu() ? 5 : undefined,\r\n },\r\n 'bottom-right': {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetY: !this.submenu() ? 5 : undefined,\r\n },\r\n 'left-top': {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetX: !this.submenu() ? -5 : undefined,\r\n },\r\n 'left-center': {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: !this.submenu() ? -5 : undefined,\r\n },\r\n 'left-bottom': {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n offsetX: !this.submenu() ? -5 : undefined,\r\n },\r\n 'right-top': {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetX: !this.submenu() ? 5 : undefined,\r\n },\r\n 'right-center': {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: !this.submenu() ? 5 : undefined,\r\n },\r\n 'right-bottom': {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetX: !this.submenu() ? 5 : undefined,\r\n },\r\n };\r\n\r\n const connectedPosition = positionMap[this.menuTriggerPosition()];\r\n this.trigger.menuPosition = [connectedPosition];\r\n }\r\n}\r\n","import { Component, computed, input, output } from '@angular/core';\r\nimport { Icon } from '../icon/icon.component';\r\n\r\n@Component({\r\n selector: 'r-alert',\r\n templateUrl: './alert.component.html',\r\n imports: [Icon],\r\n host: {\r\n '[class]': 'type()',\r\n '[style.max-width]': 'maxWidth()',\r\n },\r\n})\r\nexport class Alert {\r\n /** The type of the alert. */\r\n readonly type = input<'success' | 'error' | 'warning' | 'info'>('info');\r\n\r\n /** The title of the alert. */\r\n readonly title = input<string | null>(null);\r\n\r\n /** The icon of the alert. */\r\n readonly icon = input<string | null>(null);\r\n\r\n /** Whether the alert is dismissible. */\r\n readonly dismissible = input(false);\r\n\r\n /** Event emitted when the alert is dismissed. */\r\n readonly dismissed = output<void>();\r\n\r\n /** The maximum width of the alert. */\r\n readonly maxWidth = input<string | null>(null);\r\n\r\n /** The color foreground of the alert. */\r\n readonly colorForeground = computed(() => {\r\n return this.type() === 'info'\r\n ? 'var(--secondary-foreground)'\r\n : `var(--${this.type()}-foreground)`;\r\n });\r\n\r\n dismiss(): void {\r\n this.dismissed.emit();\r\n }\r\n}\r\n","@if (icon()) {\r\n <div class=\"icon\">\r\n <i r-icon [icon]=\"icon()!\" [size]=\"20\" [color]=\"colorForeground()\"></i>\r\n </div>\r\n}\r\n<div class=\"content\">\r\n @if (title()) {\r\n <div class=\"title\">\r\n {{ title() }}\r\n </div>\r\n }\r\n\r\n <div class=\"body\">\r\n <ng-content />\r\n </div>\r\n</div>\r\n@if (dismissible()) {\r\n <button class=\"close-btn\" (click)=\"dismiss()\">\r\n <i r-icon icon=\"X\" [size]=\"20\" [color]=\"colorForeground()\"></i>\r\n </button>\r\n}\r\n","/*\r\n * Public API Surface of basis-ng\r\n */\r\n\r\n/* Theme Service */\r\nexport * from './core/services/theme.service';\r\n\r\n/* Button */\r\nexport * from './core/components/button/button.component';\r\nexport * from './core/components/button-group/button-group.component';\r\n\r\n/* Directives */\r\nexport * from './shared/directives/lazy-content.directive';\r\n\r\n/* Search */\r\nexport * from './core/components/search/search.component';\r\n\r\n/* Input */\r\nexport * from './core/components/input/input.component';\r\n\r\n/* Select */\r\nexport * from './core/components/select/select.component';\r\n\r\n/* Option */\r\nexport * from './shared/components/option/option.component';\r\n\r\n/* Spinner */\r\nexport * from './core/components/spinner/spinner.component';\r\n\r\n/* Switch */\r\nexport * from './core/components/switch/switch.component';\r\n\r\n/* Table */\r\nexport * from './core/components/table/table.component';\r\nexport * from './core/components/table/components/row/row.component';\r\nexport * from './core/components/table/components/row/components/row-item/row-item.component';\r\n\r\n/* Tabs */\r\nexport * from './core/components/tabs/tabs.component';\r\nexport * from './core/components/tabs/components/tab/tab.component';\r\n\r\n/* InViewport */\r\nexport * from './core/directives/in-viewport.directive';\r\nexport * from './core/services/in-viewport.service';\r\n\r\n/* Side Sheet */\r\nexport * from './core/components/side-sheet/side-sheet.component';\r\n\r\n/* Bottom Sheet */\r\nexport * from './core/components/bottom-sheet/bottom-sheet.component';\r\n\r\n/* Responsive */\r\nexport * from './core/services/responsive.service';\r\n\r\n/* Attached Box */\r\nexport * from './core/components/attached-box/attached-box.component';\r\n\r\n/* Icon */\r\nexport * from './core/components/icon/icon.component';\r\n\r\n/* Label */\r\nexport * from './shared/components/label/label.component';\r\n\r\n/* Badge */\r\nexport * from './core/components/badge/badge.component';\r\n\r\n/* Checkbox */\r\nexport * from './core/components/checkbox/checkbox.component';\r\n\r\n/* Textarea */\r\nexport * from './core/components/textarea/textarea.component';\r\n\r\n/* Input Group */\r\nexport * from './core/components/input-group/input-group.component';\r\n\r\n/* Range */\r\nexport * from './core/components/range/range.component';\r\n\r\n/* Badge */\r\nexport * from './core/components/badge/badge.component';\r\n\r\n/* Tooltip */\r\nexport * from './core/components/tooltip/tooltip.component';\r\n\r\n/* Color Picker */\r\nexport * from './core/components/color-picker/color-picker.component';\r\n\r\n/* Tree */\r\nexport * from './core/components/tree/tree.component';\r\nexport * from './core/components/tree/shared/components/tree-node/tree-node.component';\r\n\r\n/* Menu */\r\nexport * from './core/components/menu/menu.component';\r\nexport * from './core/components/menu/shared/components/menu-label/menu-label.component';\r\nexport * from './core/components/menu/shared/components/menu-item/menu-item.component';\r\nexport * from './core/components/menu/shared/components/menu-item-checkbox/menu-item-checkbox.component';\r\nexport * from './core/components/menu/shared/components/menu-item-radio/menu-item-radio.component';\r\nexport * from './core/components/menu/shared/directives/menu-trigger.directive';\r\n\r\n/* Alert */\r\nexport * from './core/components/alert/alert.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
package/index.d.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@basis-ng/primitives",
|
|
3
|
+
"version": "0.0.1-alpha.0",
|
|
4
|
+
"description": "basis-ng components, animations, directives and services for Angular",
|
|
5
|
+
"peerDependencies": {
|
|
6
|
+
"@angular/common": "^19.2.0",
|
|
7
|
+
"@angular/core": "^19.2.0"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"author": "molmos",
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"module": "fesm2022/basis-ng-primitives.mjs",
|
|
16
|
+
"typings": "index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
"./package.json": {
|
|
19
|
+
"default": "./package.json"
|
|
20
|
+
},
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./index.d.ts",
|
|
23
|
+
"default": "./fesm2022/basis-ng-primitives.mjs"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export * from './core/services/theme.service';
|
|
2
|
+
export * from './core/components/button/button.component';
|
|
3
|
+
export * from './core/components/button-group/button-group.component';
|
|
4
|
+
export * from './shared/directives/lazy-content.directive';
|
|
5
|
+
export * from './core/components/search/search.component';
|
|
6
|
+
export * from './core/components/input/input.component';
|
|
7
|
+
export * from './core/components/select/select.component';
|
|
8
|
+
export * from './shared/components/option/option.component';
|
|
9
|
+
export * from './core/components/spinner/spinner.component';
|
|
10
|
+
export * from './core/components/switch/switch.component';
|
|
11
|
+
export * from './core/components/table/table.component';
|
|
12
|
+
export * from './core/components/table/components/row/row.component';
|
|
13
|
+
export * from './core/components/table/components/row/components/row-item/row-item.component';
|
|
14
|
+
export * from './core/components/tabs/tabs.component';
|
|
15
|
+
export * from './core/components/tabs/components/tab/tab.component';
|
|
16
|
+
export * from './core/directives/in-viewport.directive';
|
|
17
|
+
export * from './core/services/in-viewport.service';
|
|
18
|
+
export * from './core/components/side-sheet/side-sheet.component';
|
|
19
|
+
export * from './core/components/bottom-sheet/bottom-sheet.component';
|
|
20
|
+
export * from './core/services/responsive.service';
|
|
21
|
+
export * from './core/components/attached-box/attached-box.component';
|
|
22
|
+
export * from './core/components/icon/icon.component';
|
|
23
|
+
export * from './shared/components/label/label.component';
|
|
24
|
+
export * from './core/components/badge/badge.component';
|
|
25
|
+
export * from './core/components/checkbox/checkbox.component';
|
|
26
|
+
export * from './core/components/textarea/textarea.component';
|
|
27
|
+
export * from './core/components/input-group/input-group.component';
|
|
28
|
+
export * from './core/components/range/range.component';
|
|
29
|
+
export * from './core/components/badge/badge.component';
|
|
30
|
+
export * from './core/components/tooltip/tooltip.component';
|
|
31
|
+
export * from './core/components/color-picker/color-picker.component';
|
|
32
|
+
export * from './core/components/tree/tree.component';
|
|
33
|
+
export * from './core/components/tree/shared/components/tree-node/tree-node.component';
|
|
34
|
+
export * from './core/components/menu/menu.component';
|
|
35
|
+
export * from './core/components/menu/shared/components/menu-label/menu-label.component';
|
|
36
|
+
export * from './core/components/menu/shared/components/menu-item/menu-item.component';
|
|
37
|
+
export * from './core/components/menu/shared/components/menu-item-checkbox/menu-item-checkbox.component';
|
|
38
|
+
export * from './core/components/menu/shared/components/menu-item-radio/menu-item-radio.component';
|
|
39
|
+
export * from './core/components/menu/shared/directives/menu-trigger.directive';
|
|
40
|
+
export * from './core/components/alert/alert.component';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Select, Input, Switch, Checkbox, Textarea } from '../../../public-api';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class Label {
|
|
4
|
+
/**
|
|
5
|
+
* The input element.
|
|
6
|
+
*/
|
|
7
|
+
readonly input: import("@angular/core").Signal<Input | undefined>;
|
|
8
|
+
/**
|
|
9
|
+
* The select element.
|
|
10
|
+
*/
|
|
11
|
+
readonly select: import("@angular/core").Signal<Select | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* The switch element.
|
|
14
|
+
*/
|
|
15
|
+
readonly switch: import("@angular/core").Signal<Switch | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* The checkbox element.
|
|
18
|
+
*/
|
|
19
|
+
readonly checkbox: import("@angular/core").Signal<Checkbox | undefined>;
|
|
20
|
+
/**
|
|
21
|
+
* The textarea element.
|
|
22
|
+
*/
|
|
23
|
+
readonly textarea: import("@angular/core").Signal<Textarea | undefined>;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the label should be up.
|
|
26
|
+
*/
|
|
27
|
+
readonly labelUp: import("@angular/core").Signal<string | number | true | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* The label width.
|
|
30
|
+
*/
|
|
31
|
+
readonly maxWidth: import("@angular/core").Signal<string | number | undefined>;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Label, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Label, "r-label", never, {}, {}, ["input", "select", "switch", "checkbox", "textarea"], ["*"], true, never>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class Option {
|
|
4
|
+
/**
|
|
5
|
+
* Reference to the host element.
|
|
6
|
+
*/
|
|
7
|
+
el: ElementRef<any>;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Option, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Option, "option[r-option]", never, {}, {}, never, ["*"], true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class LazyContentDirective {
|
|
4
|
+
tpl: TemplateRef<any>;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LazyContentDirective, never>;
|
|
6
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LazyContentDirective, "[r-lazy]", never, {}, {}, never, never, true, never>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class UtilsService {
|
|
3
|
+
debounceTimer: any;
|
|
4
|
+
/**
|
|
5
|
+
* Debounce with optional delay
|
|
6
|
+
* @param {any} func - The function to debounce
|
|
7
|
+
* @param {any} delay - The delay in milliseconds
|
|
8
|
+
*/
|
|
9
|
+
debounce(func: any, delay: any): void;
|
|
10
|
+
/**
|
|
11
|
+
* Stop debounce
|
|
12
|
+
*/
|
|
13
|
+
stopDebounce(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UtilsService, never>;
|
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UtilsService>;
|
|
16
|
+
}
|