@basis-ng/primitives 0.0.1-alpha.13 → 0.0.1-alpha.130
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/fesm2022/basis-ng-primitives.mjs +3467 -2224
- package/fesm2022/basis-ng-primitives.mjs.map +1 -1
- package/package.json +13 -5
- package/types/basis-ng-primitives.d.ts +1765 -0
- package/core/components/alert/alert.component.d.ts +0 -20
- package/core/components/attached-box/attached-box.component.d.ts +0 -125
- package/core/components/attached-box/types/alignment.type.d.ts +0 -1
- package/core/components/attached-box/types/direction.type.d.ts +0 -1
- package/core/components/badge/badge.component.d.ts +0 -9
- package/core/components/bottom-sheet/bottom-sheet.component.d.ts +0 -60
- package/core/components/button/button.component.d.ts +0 -22
- package/core/components/button-group/button-group.component.d.ts +0 -9
- package/core/components/checkbox/checkbox.component.d.ts +0 -26
- package/core/components/color-picker/color-picker.component.d.ts +0 -61
- package/core/components/combobox/combobox.component.d.ts +0 -122
- package/core/components/command/command-options.component.d.ts +0 -58
- package/core/components/command/command.component.d.ts +0 -35
- package/core/components/icon/icon.component.d.ts +0 -29
- package/core/components/input/input.component.d.ts +0 -78
- package/core/components/input-group/input-group.component.d.ts +0 -13
- package/core/components/menu/menu.component.d.ts +0 -9
- package/core/components/menu/shared/components/menu-item/menu-item.component.d.ts +0 -9
- package/core/components/menu/shared/components/menu-item-checkbox/menu-item-checkbox.component.d.ts +0 -9
- package/core/components/menu/shared/components/menu-item-radio/menu-item-radio.component.d.ts +0 -9
- package/core/components/menu/shared/components/menu-label/menu-label.component.d.ts +0 -8
- package/core/components/menu/shared/directives/menu-trigger.directive.d.ts +0 -14
- package/core/components/range/range.component.d.ts +0 -26
- package/core/components/select/select-options.component.d.ts +0 -52
- package/core/components/select/select.component.d.ts +0 -122
- package/core/components/side-sheet/side-sheet.component.d.ts +0 -46
- package/core/components/spinner/spinner.component.d.ts +0 -9
- package/core/components/switch/switch.component.d.ts +0 -35
- package/core/components/table/components/row/components/row-item/row-item.component.d.ts +0 -12
- package/core/components/table/components/row/row.component.d.ts +0 -9
- package/core/components/table/table.component.d.ts +0 -5
- package/core/components/tabs/components/tab/tab.component.d.ts +0 -25
- package/core/components/tabs/tabs.component.d.ts +0 -60
- package/core/components/textarea/textarea.component.d.ts +0 -48
- package/core/components/tooltip/tooltip.component.d.ts +0 -36
- package/core/components/tree/shared/components/tree-node/tree-node.component.d.ts +0 -43
- package/core/components/tree/tree.component.d.ts +0 -56
- package/core/directives/in-viewport.directive.d.ts +0 -13
- package/core/services/in-viewport.service.d.ts +0 -23
- package/core/services/responsive.service.d.ts +0 -47
- package/core/services/theme.service.d.ts +0 -44
- package/index.d.ts +0 -5
- package/public-api.d.ts +0 -44
- package/shared/components/label.component.d.ts +0 -30
- package/shared/components/option.component.d.ts +0 -22
- package/shared/directives/lazy-content.directive.d.ts +0 -7
- package/shared/types/position.type.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basis-ng-primitives.mjs","sources":["../../../projects/primitives/src/core/services/theme.service.ts","../../../projects/primitives/src/core/components/spinner/spinner.component.ts","../../../projects/primitives/src/core/components/spinner/spinner.component.html","../../../projects/primitives/src/core/components/button/button.component.ts","../../../projects/primitives/src/core/components/button/button.component.html","../../../projects/primitives/src/core/components/button-group/button-group.component.ts","../../../projects/primitives/src/shared/directives/lazy-content.directive.ts","../../../projects/primitives/src/core/components/input/input.component.ts","../../../projects/primitives/src/shared/components/option.component.ts","../../../projects/primitives/src/core/components/select/select-options.component.ts","../../../projects/primitives/src/core/components/icon/icon.component.ts","../../../projects/primitives/src/core/components/select/select.component.ts","../../../projects/primitives/src/core/components/switch/switch.component.ts","../../../projects/primitives/src/core/components/table/table.component.ts","../../../projects/primitives/src/core/components/table/table.component.html","../../../projects/primitives/src/core/components/table/components/row/row.component.ts","../../../projects/primitives/src/core/components/table/components/row/row.component.html","../../../projects/primitives/src/core/components/table/components/row/components/row-item/row-item.component.ts","../../../projects/primitives/src/core/components/table/components/row/components/row-item/row-item.component.html","../../../projects/primitives/src/core/components/tabs/components/tab/tab.component.ts","../../../projects/primitives/src/core/components/tabs/components/tab/tab.component.html","../../../projects/primitives/src/core/components/tabs/tabs.component.ts","../../../projects/primitives/src/core/components/tabs/tabs.component.html","../../../projects/primitives/src/core/services/in-viewport.service.ts","../../../projects/primitives/src/core/directives/in-viewport.directive.ts","../../../projects/primitives/src/core/components/side-sheet/side-sheet.component.ts","../../../projects/primitives/src/core/components/side-sheet/side-sheet.component.html","../../../projects/primitives/src/core/components/bottom-sheet/bottom-sheet.component.ts","../../../projects/primitives/src/core/components/bottom-sheet/bottom-sheet.component.html","../../../projects/primitives/src/core/services/responsive.service.ts","../../../projects/primitives/src/core/components/attached-box/attached-box.component.ts","../../../projects/primitives/src/core/components/attached-box/attached-box.component.html","../../../projects/primitives/src/shared/components/label.component.ts","../../../projects/primitives/src/core/components/badge/badge.component.ts","../../../projects/primitives/src/core/components/checkbox/checkbox.component.ts","../../../projects/primitives/src/core/components/textarea/textarea.component.ts","../../../projects/primitives/src/core/components/input-group/input-group.component.ts","../../../projects/primitives/src/core/components/range/range.component.ts","../../../projects/primitives/src/core/components/tooltip/tooltip.component.ts","../../../projects/primitives/src/core/components/color-picker/color-picker.component.ts","../../../projects/primitives/src/core/components/tree/shared/components/tree-node/tree-node.component.ts","../../../projects/primitives/src/core/components/tree/shared/components/tree-node/tree-node.component.html","../../../projects/primitives/src/core/components/tree/tree.component.ts","../../../projects/primitives/src/core/components/menu/menu.component.ts","../../../projects/primitives/src/core/components/menu/shared/components/menu-label/menu-label.component.ts","../../../projects/primitives/src/core/components/menu/shared/components/menu-item/menu-item.component.ts","../../../projects/primitives/src/core/components/menu/shared/components/menu-item-checkbox/menu-item-checkbox.component.ts","../../../projects/primitives/src/core/components/menu/shared/components/menu-item-radio/menu-item-radio.component.ts","../../../projects/primitives/src/core/components/menu/shared/directives/menu-trigger.directive.ts","../../../projects/primitives/src/core/components/alert/alert.component.ts","../../../projects/primitives/src/core/components/alert/alert.component.html","../../../projects/primitives/src/core/components/command/command-options.component.ts","../../../projects/primitives/src/core/components/command/command.component.ts","../../../projects/primitives/src/core/components/combobox/combobox.component.ts","../../../projects/primitives/src/public-api.ts","../../../projects/primitives/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: 'b-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, ElementRef, inject, input } from '@angular/core';\r\nimport { Spinner } from '../spinner/spinner.component';\r\n\r\n@Component({\r\n selector: 'button[b-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 '[class.active]': 'activeEnabled()',\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 /** Whether the button active animation is enabled. */\r\n readonly activeEnabled = input(true);\r\n\r\n /** The element reference of the button. */\r\n el = inject(ElementRef);\r\n}\r\n","@if (loading()) {\r\n <b-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: 'b-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: '[b-lazy]',\r\n standalone: true,\r\n})\r\nexport class LazyContentDirective {\r\n tpl = inject(TemplateRef);\r\n}\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[b-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 { CdkOption } from '@angular/cdk/listbox';\r\nimport { Component, ElementRef, inject } from '@angular/core';\r\n\r\n/**\r\n * Component representing an individual option in a select or combobox.\r\n * This component integrates with Angular CDK Option to manage the option's state and behavior.\r\n */\r\n@Component({\r\n selector: 'li[b-option]',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [\r\n {\r\n directive: CdkOption,\r\n inputs: ['cdkOption: value'],\r\n },\r\n ],\r\n})\r\nexport class OptionComponent {\r\n /**\r\n * The `ElementRef` of the option.\r\n * This provides direct access to the DOM element of the option.\r\n */\r\n el = inject(ElementRef);\r\n\r\n /**\r\n * The `CdkOption` instance associated with this option.\r\n * This provides methods and properties for managing the option's state, such as selection and value.\r\n */\r\n cdkOption = inject(CdkOption);\r\n}\r\n","import { CdkListbox } from '@angular/cdk/listbox';\r\nimport {\r\n Component,\r\n contentChildren,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { OptionComponent } from '../../../shared/components/option.component';\r\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\r\n\r\n/**\r\n * Component representing the list of options in a select.\r\n * This component integrates with Angular CDK Listbox to manage options and their selection.\r\n */\r\n@Component({\r\n selector: 'ul[b-select-options]',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [\r\n {\r\n directive: CdkListbox,\r\n inputs: ['cdkListboxValue'],\r\n outputs: ['cdkListboxValueChange'],\r\n },\r\n {\r\n directive: CdkTrapFocus,\r\n inputs: ['cdkTrapFocusAutoCapture'],\r\n },\r\n ],\r\n host: {\r\n '[cdkListboxValue]': 'value()',\r\n '(cdkListboxValueChange)': 'handleValueChange($event.value)',\r\n '[style.max-height]': 'maxHeight()',\r\n '[cdkTrapFocusAutoCapture]': 'true',\r\n },\r\n})\r\nexport class SelectOptionsComponent {\r\n /**\r\n * Signal representing the selected values in the listbox.\r\n * This is an array of strings corresponding to the selected option values.\r\n */\r\n readonly value = signal<string[]>([]);\r\n\r\n /**\r\n * Event emitter triggered when the dropdown should close.\r\n * This is used to notify the parent component to close the dropdown.\r\n */\r\n closeEmitter = output();\r\n\r\n /**\r\n * Reference to the host element of the component.\r\n * This provides access to the DOM element of the options list.\r\n */\r\n el = inject(ElementRef);\r\n\r\n /**\r\n * Input for setting the maximum height of the dropdown.\r\n * Defaults to '300px'. This controls the vertical size of the dropdown.\r\n */\r\n readonly maxHeight = input<string>('300px');\r\n\r\n /**\r\n * Reference to the CDK Listbox directive.\r\n * This is used to manage the options and their selection state.\r\n */\r\n listBox = inject(CdkListbox);\r\n\r\n /**\r\n * Reference to the list of options in the dropdown.\r\n * This is a collection of `OptionComponent` instances representing the available options.\r\n */\r\n readonly options = contentChildren(OptionComponent);\r\n\r\n /**\r\n * Handles changes to the selected value in the listbox.\r\n * This method updates the `value` signal, emits the `closeEmitter` event,\r\n * and ensures the parent component is notified of the selection change.\r\n *\r\n * @param value - The new array of selected values.\r\n */\r\n handleValueChange(value: string[]) {\r\n this.value.set(value);\r\n this.closeEmitter.emit();\r\n }\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[b-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 { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport {\r\n Component,\r\n computed,\r\n contentChild,\r\n input,\r\n linkedSignal,\r\n model,\r\n OnInit,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { SelectOptionsComponent } from './select-options.component';\r\nimport { Button } from '../button/button.component';\r\nimport { Icon } from '../icon/icon.component';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { forwardRef } from '@angular/core';\r\n\r\n/**\r\n * Component representing a custom select dropdown.\r\n * This component provides a button to toggle the dropdown and displays the selected option(s).\r\n */\r\n@Component({\r\n selector: 'b-select',\r\n imports: [Button, Icon, CdkConnectedOverlay, CdkOverlayOrigin],\r\n template: ` <button\r\n b-button\r\n variant=\"outlined\"\r\n (click)=\"isOpen() ? close() : this.isOpen.set(true)\"\r\n (keydown.arrowUp)=\"!isOpen() && this.isOpen.set(true)\"\r\n (keydown.arrowDown)=\"!isOpen() && this.isOpen.set(true)\"\r\n cdkOverlayOrigin\r\n [activeEnabled]=\"false\"\r\n #trigger=\"cdkOverlayOrigin\">\r\n {{ content() }}\r\n <i b-icon icon=\"ChevronDown\" [size]=\"20\"></i>\r\n </button>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayWidth]=\"buttonWidth()\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayPositions]=\"[\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -5,\r\n },\r\n ]\"\r\n (backdropClick)=\"close()\"\r\n (detach)=\"close()\">\r\n <ng-content />\r\n </ng-template>`,\r\n host: {\r\n '[style.max-width]': 'maxWidth()',\r\n '[class.disabled]': 'disabled()',\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements OnInit, ControlValueAccessor {\r\n /**\r\n * Placeholder text displayed when no option is selected.\r\n * Defaults to 'Select an option'.\r\n */\r\n readonly placeholder = input<string>('Select an option');\r\n\r\n /**\r\n * Signal indicating whether the dropdown is currently open.\r\n */\r\n readonly isOpen = signal(false);\r\n\r\n /**\r\n * Reference to the button element used to toggle the dropdown.\r\n * This is used for managing focus and interactions.\r\n */\r\n readonly button = viewChild(Button);\r\n\r\n /**\r\n * Reference to the content component of the dropdown.\r\n * This contains the list of selectable options.\r\n */\r\n readonly optionsList = contentChild(SelectOptionsComponent);\r\n\r\n /**\r\n * Computed signal representing the selected values from the dropdown.\r\n * This is linked to the value of the `OptionsListComponent`.\r\n */\r\n readonly value = linkedSignal(() => this.optionsList()?.value());\r\n\r\n /**\r\n * Input for setting the maximum width of the dropdown.\r\n * Defaults to '100%'.\r\n */\r\n readonly maxWidth = input('100%');\r\n\r\n /**\r\n * Computed signal for the width of the button element.\r\n * This is used to set the width of the dropdown overlay.\r\n */\r\n readonly buttonWidth = computed(\r\n () => this.button()?.el.nativeElement.offsetWidth\r\n );\r\n\r\n /**\r\n * Model indicating whether the select component is disabled.\r\n * When disabled, the dropdown cannot be opened or interacted with.\r\n */\r\n readonly disabled = model(false);\r\n\r\n /**\r\n * Computed signal representing the options available in the dropdown.\r\n * This retrieves the options from the `OptionsListComponent`.\r\n */\r\n readonly options = computed(() => this.optionsList()?.options());\r\n\r\n /**\r\n * Computed signal representing the content of the selected option(s).\r\n * If no option is selected, it returns the placeholder text.\r\n */\r\n readonly content = computed(() => {\r\n const selected = this.value();\r\n if (selected && selected.length > 0) {\r\n return this.options()?.reduce((acc, option) => {\r\n if (selected.includes(option.cdkOption.value)) {\r\n return acc\r\n ? acc + ', ' + option.el.nativeElement.innerText\r\n : option.el.nativeElement.innerText;\r\n }\r\n return acc;\r\n }, '');\r\n } else {\r\n return this.placeholder();\r\n }\r\n });\r\n\r\n /**\r\n * Signal representing the delay before closing the dropdown.\r\n * This is used to provide a smooth transition when closing the dropdown.\r\n */\r\n readonly closeDelay = signal(150);\r\n\r\n /**\r\n * Reference to the CdkConnectedOverlay directive.\r\n * This is used to manage the positioning and visibility of the dropdown overlay.\r\n */\r\n readonly cdkConnectedOverlay = viewChild(CdkConnectedOverlay);\r\n\r\n /**\r\n * Lifecycle hook that is called after the component is initialized.\r\n * It sets up the necessary subscriptions for handling value changes.\r\n */\r\n ngOnInit(): void {\r\n this.handleSelectedValueChange();\r\n }\r\n\r\n /**\r\n * Subscribes to the `closeEmitter` of the `OptionsListComponent` to handle\r\n * changes to the selected value. This ensures the dropdown closes and the\r\n * value is propagated to Angular Forms.\r\n */\r\n handleSelectedValueChange() {\r\n this.optionsList()?.closeEmitter.subscribe(() => {\r\n this.onChange(this.value()!); // Notify Angular Forms about the change\r\n this.onTouched(); // Mark the component as touched\r\n this.close(); // Close the dropdown\r\n });\r\n }\r\n\r\n /**\r\n * Closes the dropdown with a transition effect and refocuses the button.\r\n * This method sets the `isOpen` signal to `false` after a delay and removes\r\n * the transition class from the overlay panel.\r\n */\r\n close() {\r\n this.cdkConnectedOverlay()?.overlayRef.addPanelClass(\r\n 'cdk-overlay-pane-closing'\r\n );\r\n\r\n setTimeout(() => {\r\n this.isOpen.set(false);\r\n this.cdkConnectedOverlay()?.overlayRef.removePanelClass(\r\n 'cdk-overlay-pane-closing'\r\n );\r\n this.button()?.el.nativeElement.focus();\r\n }, this.closeDelay());\r\n }\r\n\r\n // Control Value Accessor methods\r\n\r\n /**\r\n * Callback function to propagate changes to the model.\r\n * This is called whenever the value changes.\r\n */\r\n private onChange: (value: string[]) => void = () => undefined;\r\n\r\n /**\r\n * Callback function to mark the component as touched.\r\n * This is called when the component loses focus.\r\n */\r\n private onTouched: () => void = () => undefined;\r\n\r\n /**\r\n * Writes a new value to the component.\r\n * This method is called by Angular Forms to update the value of the select component.\r\n * @param value - The new value to set.\r\n */\r\n writeValue(value: string[]): void {\r\n if (value) {\r\n value.forEach(value => {\r\n this.optionsList()?.listBox?.selectValue(value);\r\n });\r\n this.value.set(value);\r\n }\r\n }\r\n\r\n /**\r\n * Registers a callback function to be called when the value changes.\r\n * @param fn - The callback function.\r\n */\r\n registerOnChange(fn: (value: string[]) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n /**\r\n * Registers a callback function to be called when the component is touched.\r\n * @param fn - The callback function.\r\n */\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * Sets the disabled state of the component.\r\n * This method is called by Angular Forms to enable or disable the component.\r\n * @param isDisabled - A boolean indicating whether the component should be disabled.\r\n */\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\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[b-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: 'b-table',\r\n templateUrl: './table.component.html',\r\n})\r\nexport class Table {}\r\n","<ng-content select=\"[b-row-header]\" />\r\n<ng-content select=\"[b-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: 'b-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: 'b-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: 'b-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: 'b-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: '[b-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 b-side-sheet\r\n */\r\n@Component({\r\n selector: 'b-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: 'b-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 { Direction } from './types/direction.type';\r\nimport { Alignment } from './types/alignment.type';\r\nimport { Position } from '../../../shared/types/position.type';\r\n\r\n@Component({\r\n selector: 'b-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=\"[b-attached-box-trigger]\" />\r\n<div\r\n #content\r\n class=\"b-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=\"[b-attached-box-content]\" />\r\n</div>\r\n","import { Component, computed, contentChild } from '@angular/core';\r\nimport { Checkbox, Input, Switch, Textarea } from '../../public-api';\r\n\r\n@Component({\r\n selector: 'b-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 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 textarea = this.textarea();\r\n\r\n return (\r\n input?.focused() ||\r\n input?.value() ||\r\n input?.placeholder() ||\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() || textarea?.cols();\r\n });\r\n}\r\n","import { Component, input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'span[b-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[b-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[b-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: 'b-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[b-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 '../../../shared/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: 'b-tooltip',\r\n template: `\r\n <b-attached-box [type]=\"'hover'\" [position]=\"position()\" [gap]=\"gap()\">\r\n <ng-content b-attached-box-trigger />\r\n <div\r\n b-attached-box-content\r\n class=\"b-tooltip-content\"\r\n [class]=\"variant() + ' size-' + size()\">\r\n <ng-content select=\"[b-tooltip-content]\" />\r\n </div>\r\n </b-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[b-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: 'b-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 b-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=\"b-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: 'b-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 } 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: 'b-menu',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [CdkMenu],\r\n})\r\nexport class Menu {}\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: 'b-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: 'b-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: 'b-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: 'b-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 { ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { Position } from '../../../../../shared/types/position.type';\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: 'b-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 b-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 b-icon icon=\"X\" [size]=\"20\" [color]=\"colorForeground()\"></i>\r\n </button>\r\n}\r\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { CdkListbox, CdkOption } from '@angular/cdk/listbox';\r\nimport {\r\n Component,\r\n computed,\r\n contentChildren,\r\n inject,\r\n OnInit,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Component representing a list of command options.\r\n * It uses Angular CDK's listbox and option utilities for accessibility and keyboard navigation.\r\n */\r\n@Component({\r\n selector: 'ul[b-command-options]',\r\n imports: [],\r\n template: `<ng-content />`,\r\n hostDirectives: [CdkListbox],\r\n})\r\nexport class CommandOptionsComponent implements OnInit {\r\n /**\r\n * Collection of child options within the listbox.\r\n */\r\n readonly options = contentChildren(CdkOption);\r\n\r\n /**\r\n * Key manager for handling keyboard navigation and active descendant management.\r\n */\r\n readonly listKeyManager = computed(() =>\r\n new ActiveDescendantKeyManager(this.options())\r\n .withWrap()\r\n .withVerticalOrientation()\r\n );\r\n\r\n /**\r\n * Signal representing the currently selected values.\r\n */\r\n readonly value = signal<string[]>([]);\r\n\r\n /**\r\n * Signal representing the currently highlighted option.\r\n */\r\n readonly highlightedOption = signal('1');\r\n\r\n /**\r\n * Reference to the injected CDK Listbox instance.\r\n */\r\n cdkListbox = inject(CdkListbox);\r\n\r\n /**\r\n * Emitter for closing the command options.\r\n */\r\n closeEmitter = output();\r\n\r\n /**\r\n * Lifecycle hook that initializes the component.\r\n * Enables the use of active descendant for the listbox.\r\n */\r\n ngOnInit(): void {\r\n this.cdkListbox.useActiveDescendant = true;\r\n }\r\n\r\n /**\r\n * Selects the currently active option and updates the listbox value.\r\n */\r\n selectOption(): void {\r\n this.value.set(this.listKeyManager().activeItem?.value ?? []);\r\n this.cdkListbox.value = this.value();\r\n this.closeEmitter.emit();\r\n }\r\n\r\n /**\r\n * Moves the active item to the next option and updates the highlighted option.\r\n */\r\n nextOption(): void {\r\n this.listKeyManager().setNextItemActive();\r\n this.highlightedOption.set(this.listKeyManager().activeItem?.value ?? '');\r\n this.updateHighlightedOption();\r\n }\r\n\r\n /**\r\n * Moves the active item to the previous option and updates the highlighted option.\r\n */\r\n previousOption(): void {\r\n this.listKeyManager().setPreviousItemActive();\r\n this.highlightedOption.set(this.listKeyManager().activeItem?.value ?? '');\r\n this.updateHighlightedOption();\r\n }\r\n\r\n /**\r\n * Updates the CSS class of options to reflect the currently highlighted option.\r\n */\r\n updateHighlightedOption(): void {\r\n this.options().forEach(option => {\r\n if (option.value === this.highlightedOption()) {\r\n option.element.classList.add('cdk-option-highlighted');\r\n } else {\r\n option.element.classList.remove('cdk-option-highlighted');\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, computed, contentChild, input } from '@angular/core';\r\nimport { Input } from '../input/input.component';\r\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\r\nimport { CommandOptionsComponent } from './command-options.component';\r\n\r\n/**\r\n * Component representing a command input with associated options.\r\n * It provides keyboard navigation and focus trapping for accessibility.\r\n */\r\n@Component({\r\n selector: 'b-command',\r\n imports: [Input, CdkTrapFocus],\r\n template: `<input\r\n type=\"text\"\r\n b-input\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n #trappedInput\r\n (keydown.arrowDown)=\"commandOptions()?.nextOption()\"\r\n (keydown.arrowUp)=\"commandOptions()?.previousOption()\"\r\n (keydown.enter)=\"commandOptions()?.selectOption()\"\r\n (blur)=\"trappedInput.el.nativeElement.focus()\" />\r\n <ng-content />`,\r\n host: {\r\n '[style.maxWidth]': 'maxWidth()',\r\n '[style.maxHeight]': 'maxHeight()',\r\n },\r\n})\r\nexport class CommandComponent {\r\n /**\r\n * Reference to the child `CommandOptionsComponent` if present.\r\n * Used to interact with the options for navigation and selection.\r\n */\r\n readonly commandOptions = contentChild(CommandOptionsComponent);\r\n\r\n /**\r\n * Input representing the maximum width of the component.\r\n * This can be used to control the visual appearance of the command component.\r\n */\r\n readonly maxWidth = input('100%');\r\n\r\n /**\r\n * Input representing the maximum height of the component.\r\n * This can be used to control the visual appearance of the command component.\r\n */\r\n readonly maxHeight = input('300px');\r\n\r\n /**\r\n * Computed signal representing the selected value from the command options.\r\n * This is linked to the value of the `CommandOptionsComponent`.\r\n */\r\n readonly value = computed(() => this.commandOptions()?.value());\r\n\r\n /**\r\n * Computed signal representing the options available in the command options.\r\n * This is linked to the options of the `CommandOptionsComponent`.\r\n */\r\n readonly options = computed(() => this.commandOptions()?.options());\r\n}\r\n","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport {\r\n Component,\r\n computed,\r\n contentChild,\r\n input,\r\n linkedSignal,\r\n model,\r\n OnInit,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { Button } from '../button/button.component';\r\nimport { Icon } from '../icon/icon.component';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { forwardRef } from '@angular/core';\r\nimport { CommandComponent } from '../command/command.component';\r\n\r\n/**\r\n * Component representing a combobox dropdown.\r\n * This component provides a button to toggle the dropdown and displays the selected option(s) with an input field.\r\n */\r\n@Component({\r\n selector: 'b-combobox',\r\n imports: [Button, Icon, CdkConnectedOverlay, CdkOverlayOrigin],\r\n template: ` <button\r\n b-button\r\n variant=\"outlined\"\r\n (click)=\"isOpen() ? close() : this.isOpen.set(true)\"\r\n (keydown.arrowUp)=\"!isOpen() && this.isOpen.set(true)\"\r\n (keydown.arrowDown)=\"!isOpen() && this.isOpen.set(true)\"\r\n cdkOverlayOrigin\r\n [activeEnabled]=\"false\"\r\n #trigger=\"cdkOverlayOrigin\">\r\n {{ content() }}\r\n <i b-icon icon=\"ChevronDown\" [size]=\"20\"></i>\r\n </button>\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayWidth]=\"buttonWidth()\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayPositions]=\"[\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -5,\r\n },\r\n ]\"\r\n (backdropClick)=\"close()\"\r\n (detach)=\"close()\">\r\n <ng-content />\r\n </ng-template>`,\r\n host: {\r\n '[style.max-width]': 'maxWidth()',\r\n '[class.disabled]': 'disabled()',\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ComboboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ComboboxComponent implements OnInit, ControlValueAccessor {\r\n /**\r\n * Placeholder text displayed when no option is selected.\r\n * Defaults to 'Select an option'.\r\n */\r\n readonly placeholder = input<string>('Select an option');\r\n\r\n /**\r\n * Signal indicating whether the dropdown is currently open.\r\n */\r\n readonly isOpen = signal(false);\r\n\r\n /**\r\n * Reference to the button element used to toggle the dropdown.\r\n * This is used for managing focus and interactions.\r\n */\r\n readonly button = viewChild(Button);\r\n\r\n /**\r\n * Reference to the content component of the dropdown.\r\n * This contains the list of selectable options.\r\n */\r\n readonly command = contentChild(CommandComponent);\r\n\r\n /**\r\n * Computed signal representing the selected values from the dropdown.\r\n * This is linked to the value of the `CommandComponent`.\r\n */\r\n readonly value = linkedSignal(() => this.command()?.value());\r\n\r\n /**\r\n * Input for setting the maximum width of the dropdown.\r\n * Defaults to '100%'.\r\n */\r\n readonly maxWidth = input('100%');\r\n\r\n /**\r\n * Computed signal for the width of the button element.\r\n * This is used to set the width of the dropdown overlay.\r\n */\r\n readonly buttonWidth = computed(\r\n () => this.button()?.el.nativeElement.offsetWidth\r\n );\r\n\r\n /**\r\n * Model indicating whether the combobox component is disabled.\r\n * When disabled, the dropdown cannot be opened or interacted with.\r\n */\r\n readonly disabled = model(false);\r\n\r\n /**\r\n * Computed signal representing the options available in the dropdown.\r\n * This retrieves the options from the `CommandComponent`.\r\n */\r\n readonly options = computed(() => this.command()?.options());\r\n\r\n /**\r\n * Computed signal representing the content of the selected option(s).\r\n * If no option is selected, it returns the placeholder text.\r\n */\r\n readonly content = computed(() => {\r\n const selected = this.value();\r\n if (selected && selected.length > 0) {\r\n return this.options()?.reduce((acc, option) => {\r\n if (selected.includes(option.value)) {\r\n return acc ? acc + ', ' + option.getLabel() : option.getLabel();\r\n }\r\n return acc;\r\n }, '');\r\n } else {\r\n return this.placeholder();\r\n }\r\n });\r\n\r\n /**\r\n * Signal representing the delay before closing the dropdown.\r\n * This is used to provide a smooth transition when closing the dropdown.\r\n */\r\n readonly closeDelay = signal(150);\r\n\r\n /**\r\n * Reference to the CdkConnectedOverlay directive.\r\n * This is used to manage the positioning and visibility of the dropdown overlay.\r\n */\r\n readonly cdkConnectedOverlay = viewChild(CdkConnectedOverlay);\r\n\r\n /**\r\n * Lifecycle hook that is called after the component is initialized.\r\n * It sets up the necessary subscriptions for handling value changes.\r\n */\r\n ngOnInit(): void {\r\n this.handleSelectedValueChange();\r\n }\r\n\r\n /**\r\n * Subscribes to the `closeEmitter` of the `CommandComponent` to handle\r\n * changes to the selected value. This ensures the dropdown closes and the\r\n * value is propagated to Angular Forms.\r\n */\r\n handleSelectedValueChange() {\r\n this.command()\r\n ?.commandOptions()\r\n ?.closeEmitter.subscribe(() => {\r\n this.onChange(this.value()!); // Notify Angular Forms about the change\r\n this.onTouched(); // Mark the component as touched\r\n this.close(); // Close the dropdown\r\n });\r\n }\r\n\r\n /**\r\n * Closes the dropdown with a transition effect and refocuses the button.\r\n * This method sets the `isOpen` signal to `false` after a delay and removes\r\n * the transition class from the overlay panel.\r\n */\r\n close() {\r\n this.cdkConnectedOverlay()?.overlayRef.addPanelClass(\r\n 'cdk-overlay-pane-closing'\r\n );\r\n\r\n setTimeout(() => {\r\n this.isOpen.set(false);\r\n this.cdkConnectedOverlay()?.overlayRef.removePanelClass(\r\n 'cdk-overlay-pane-closing'\r\n );\r\n this.button()?.el.nativeElement.focus();\r\n }, this.closeDelay());\r\n }\r\n\r\n // Control Value Accessor methods\r\n\r\n /**\r\n * Callback function to propagate changes to the model.\r\n * This is called whenever the value changes.\r\n */\r\n private onChange: (value: string[]) => void = () => undefined;\r\n\r\n /**\r\n * Callback function to mark the component as touched.\r\n * This is called when the component loses focus.\r\n */\r\n private onTouched: () => void = () => undefined;\r\n\r\n /**\r\n * Writes a new value to the component.\r\n * This method is called by Angular Forms to update the value of the combobox component.\r\n * @param value - The new value to set.\r\n */\r\n writeValue(value: string[]): void {\r\n if (value) {\r\n value.forEach(value => {\r\n this.command()?.commandOptions()?.cdkListbox?.selectValue(value);\r\n });\r\n this.value.set(value);\r\n }\r\n }\r\n\r\n /**\r\n * Registers a callback function to be called when the value changes.\r\n * @param fn - The callback function.\r\n */\r\n registerOnChange(fn: (value: string[]) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n /**\r\n * Registers a callback function to be called when the component is touched.\r\n * @param fn - The callback function.\r\n */\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * Sets the disabled state of the component.\r\n * This method is called by Angular Forms to enable or disable the component.\r\n * @param isDisabled - A boolean indicating whether the component should be disabled.\r\n */\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\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/* Input */\r\nexport * from './core/components/input/input.component';\r\n\r\n/* Select */\r\nexport * from './core/components/select/select.component';\r\nexport * from './core/components/select/select-options.component';\r\nexport * from './shared/components/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.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\r\n/* Types */\r\n\r\n/* Position */\r\nexport * from './shared/types/position.type';\r\n\r\n/* Command */\r\nexport * from './core/components/command/command.component';\r\nexport * from './core/components/command/command-options.component';\r\n\r\n/* Combobox */\r\nexport * from './core/components/combobox/combobox.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basis-ng-primitives.mjs","sources":["../../../libs/primitives/src/components/alert/alert.ts","../../../libs/primitives/src/components/badge/badge.ts","../../../libs/primitives/src/components/button-group/button-group.ts","../../../libs/primitives/src/components/button/button.ts","../../../libs/primitives/src/components/calendar/calendar.ts","../../../libs/primitives/src/components/card/card.ts","../../../libs/primitives/src/components/card/card-content.ts","../../../libs/primitives/src/components/card/card-description.ts","../../../libs/primitives/src/components/card/card-footer.ts","../../../libs/primitives/src/components/card/card-header.ts","../../../libs/primitives/src/components/card/card-title.ts","../../../libs/primitives/src/components/checkbox/checkbox.ts","../../../libs/primitives/src/components/command/command-options.component.ts","../../../libs/primitives/src/services/utils.ts","../../../libs/primitives/src/components/input/input.ts","../../../libs/primitives/src/components/command/command.component.ts","../../../libs/primitives/src/services/dialog-manager.ts","../../../libs/primitives/src/components/dialog/dialog-content.ts","../../../libs/primitives/src/components/drawer/drawer.component.ts","../../../libs/primitives/src/components/input-group/input-group.ts","../../../libs/primitives/src/components/menu/menu.ts","../../../libs/primitives/src/components/menu/menu-group.ts","../../../libs/primitives/src/components/menu/menu-item.ts","../../../libs/primitives/src/components/menu/menu-item-checkbox.ts","../../../libs/primitives/src/components/menu/menu-item-radio.ts","../../../libs/primitives/src/components/menu/menu-label.ts","../../../libs/primitives/src/components/menu/menu-trigger.ts","../../../libs/primitives/src/components/option/option.component.ts","../../../libs/primitives/src/components/otp/otp.ts","../../../libs/primitives/src/directives/overlay-v2/overlay.ts","../../../libs/primitives/src/components/popover/popover.ts","../../../libs/primitives/src/directives/overlay-v2/overlay-trigger.ts","../../../libs/primitives/src/components/popover/popover-trigger.ts","../../../libs/primitives/src/components/range/range.ts","../../../libs/primitives/src/directives/connected-overlay.ts","../../../libs/primitives/src/components/select/select-content.ts","../../../libs/primitives/src/components/select/select-trigger.ts","../../../libs/primitives/src/components/select/select-value.ts","../../../libs/primitives/src/components/select/select.ts","../../../libs/primitives/src/components/select/select-filter.ts","../../../libs/primitives/src/components/sheet/sheet.ts","../../../libs/primitives/src/components/spinner/spinner.ts","../../../libs/primitives/src/components/switch/switch.ts","../../../libs/primitives/src/components/tabs/tabs.ts","../../../libs/primitives/src/components/tabs/tab.ts","../../../libs/primitives/src/components/textarea-group/textarea-group.ts","../../../libs/primitives/src/components/textarea/textarea.ts","../../../libs/primitives/src/components/tooltip/tooltip.ts","../../../libs/primitives/src/components/tooltip/tooltip-content.ts","../../../libs/primitives/src/components/tooltip/tooltip-trigger.ts","../../../libs/primitives/src/components/tree/tree-node.ts","../../../libs/primitives/src/components/tree/tree.ts","../../../libs/primitives/src/directives/dialog.ts","../../../libs/primitives/src/directives/overlay-origin.ts","../../../libs/primitives/src/services/translation-manager.ts","../../../libs/primitives/src/pipes/translate.pipe.ts","../../../libs/primitives/src/services/responsive-manager.ts","../../../libs/primitives/src/services/theme-manager.ts","../../../libs/primitives/src/public-api.ts","../../../libs/primitives/src/basis-ng-primitives.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\n\n/**\n * Displays an alert with optional title, icon and a dismiss button.\n */\n@Component({\n selector: 'b-alert',\n template: `\n @if (icon()) {\n <div class=\"icon\">\n <ng-icon [name]=\"icon()!\" size=\"20\" color=\"currentColor\" />\n </div>\n }\n <div class=\"content\">\n @if (title()) {\n <div class=\"title\">{{ title() }}</div>\n }\n <div class=\"body\">\n <ng-content />\n </div>\n </div>\n @if (dismissible()) {\n <button class=\"close-btn\" (click)=\"dismiss()\" aria-label=\"Close\">\n <ng-icon name=\"lucideX\" size=\"16\" color=\"currentColor\" />\n </button>\n }\n `,\n imports: [NgIcon],\n providers: [provideIcons({ lucideX })],\n})\nexport class Alert {\n /**\n * Alert title text. Rendered when provided.\n */\n readonly title = input<string | null>(null);\n\n /**\n * Icon name to display to the left of the content.\n */\n readonly icon = input<string | null>(null);\n\n /**\n * Whether the alert shows a dismiss button.\n */\n readonly dismissible = input(false);\n\n /**\n * Emitted when the alert is dismissed.\n */\n readonly dismissed = output<void>();\n\n /**\n * Emit the dismissed event.\n */\n dismiss(): void {\n this.dismissed.emit();\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * A minimal badge component that projects inline content inside a span.\n */\n@Component({\n selector: 'span[b-badge]',\n template: ` <ng-content /> `,\n})\nexport class Badge {}\n","import { Component, input } from '@angular/core';\n\n/**\n * Groups buttons and optionally adds spacing between them.\n */\n@Component({\n selector: 'b-button-group',\n template: ` <ng-content /> `,\n host: {\n class: 'button-group',\n '[class.spaced]': 'spaced()',\n },\n})\nexport class ButtonGroup {\n /**\n * Whether to add spacing between grouped buttons.\n */\n readonly spaced = input<boolean>(false);\n}\n","import { Component, ElementRef, inject } from '@angular/core';\n\n/**\n * A lightweight attribute button component that projects content into a native button.\n */\n@Component({\n selector: 'button[b-button]',\n imports: [],\n template: ` <ng-content /> `,\n})\nexport class Button {\n /**\n * Reference to the host button element.\n */\n el = inject(ElementRef);\n}\n","import { Grid, GridCell, GridCellWidget, GridRow } from '@angular/aria/grid';\nimport { Component, computed, input, model, output, signal, viewChildren } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\n\n/**\n * A minimal calendar component that displays a month grid and emits selected dates.\n * Selector and CSS follow the project's conventions.\n */\n@Component({\n selector: 'b-calendar',\n imports: [Grid, GridRow, GridCell, GridCellWidget],\n host: {\n class: 'b-calendar',\n role: 'application',\n },\n template: `\n <header class=\"b-calendar-header\">\n <button type=\"button\" class=\"b-calendar-nav\" (click)=\"prevMonth()\">‹</button>\n <button\n type=\"button\"\n class=\"b-calendar-title\"\n (click)=\"onHeaderClick()\"\n aria-label=\"Toggle month/year view\"\n >\n @if (viewMode() === 'day') {\n {{ monthLabel() }} {{ year() }}\n } @else if (viewMode() === 'month') {\n {{ year() }}\n } @else {\n {{ yearsGrid()[0] }} - {{ yearsGrid()[yearsGrid().length - 1] }}\n }\n </button>\n <button type=\"button\" class=\"b-calendar-nav\" (click)=\"nextMonth()\">›</button>\n </header>\n\n @switch (viewMode()) {\n @case ('day') {\n <table class=\"b-calendar-table\" ngGrid (keydown)=\"onKeyDown($event)\">\n <thead>\n <tr>\n @for (d of visibleWeekdays(); track d) {\n <th scope=\"col\" class=\"b-calendar-weekday\">{{ d }}</th>\n }\n </tr>\n </thead>\n\n <tbody>\n @for (row of dayRows(); track row[0]!.date.toDateString()) {\n <tr ngGridRow>\n @for (cell of row; track cell.date.toDateString()) {\n <td ngGridCell>\n <button\n type=\"button\"\n class=\"b-calendar-cell\"\n ngGridCellWidget\n [class.b-active]=\"isSelected(cell.date)\"\n [attr.aria-pressed]=\"isSelected(cell.date) ? 'true' : null\"\n [attr.aria-current]=\"isSelected(cell.date) ? 'date' : null\"\n [attr.data-day]=\"cell.date.getDate()\"\n (click)=\"selectDate(cell.date)\"\n [attr.data-outside]=\"cell.outside ? '' : null\"\n >\n {{ cell.date.getDate() }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n @case ('month') {\n <table\n class=\"b-calendar-table b-calendar-grid--months\"\n ngGrid\n (keydown)=\"onKeyDown($event)\"\n >\n <tbody>\n @for (row of monthRows(); track row[0]!) {\n <tr ngGridRow>\n @for (m of row; track m) {\n <td ngGridCell>\n <button\n type=\"button\"\n class=\"b-calendar-cell\"\n ngGridCellWidget\n (click)=\"selectMonth(monthsLabels().indexOf(m))\"\n >\n {{ m }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n @case ('year') {\n <table class=\"b-calendar-table b-calendar-grid--years\" ngGrid (keydown)=\"onKeyDown($event)\">\n <tbody>\n @for (row of yearRows(); track row[0]!) {\n <tr ngGridRow>\n @for (y of row; track y) {\n <td ngGridCell>\n <button\n type=\"button\"\n class=\"b-calendar-cell\"\n ngGridCellWidget\n (click)=\"selectYear(y)\"\n >\n {{ y }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n }\n `,\n})\nexport class Calendar implements FormValueControl<Date | null> {\n readonly today = new Date();\n readonly month = signal<number>(this.today.getMonth());\n readonly year = signal<number>(this.today.getFullYear());\n readonly value = model<Date | null>(null);\n readonly valueChange = output<Date | null>();\n readonly dateSelected = output<Date>();\n readonly weekdays = input<string[]>(['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']);\n readonly weekStart = input<number>(0);\n\n /** Weekday labels rotated according to `weekStart` */\n visibleWeekdays = computed(() => {\n const w = this.weekdays();\n const start = ((this.weekStart() % 7) + 7) % 7; // normalize\n if (!w || w.length !== 7) return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n return w.slice(start).concat(w.slice(0, start));\n });\n readonly viewMode = signal<'day' | 'month' | 'year'>('day');\n\n monthLabel = computed(() => {\n return this.monthsLabels()[this.month()];\n });\n\n /** Input to override month labels (12 entries). Defaults to English short names. */\n readonly months = input<string[]>([\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ]);\n\n /** Final months array used in template: prefers `months` input when provided */\n monthsLabels = computed(() => {\n const custom = this.months();\n if (custom && custom.length === 12) return custom as string[];\n // fallback to English short names if input is invalid\n return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n });\n\n private readonly _cellWidgets = viewChildren(GridCellWidget);\n\n readonly dayRows = computed(() => {\n const cells = this.calendarGrid();\n const rows: { date: Date; outside: boolean }[][] = [];\n for (let r = 0; r < 6; r++) {\n rows.push(cells.slice(r * 7, r * 7 + 7));\n }\n return rows;\n });\n\n readonly dayRowIndexes = computed(() => [0, 1, 2, 3, 4, 5]);\n\n readonly monthRows = computed(() => {\n const m = this.monthsLabels();\n const rows: string[][] = [];\n for (let r = 0; r < 4; r++) rows.push(m.slice(r * 3, r * 3 + 3));\n return rows;\n });\n\n readonly monthRowIndexes = computed(() => [0, 1, 2, 3]);\n\n readonly yearRows = computed(() => {\n const y = this.yearsGrid();\n const rows: number[][] = [];\n for (let r = 0; r < 4; r++) rows.push(y.slice(r * 3, r * 3 + 3));\n return rows;\n });\n\n readonly yearRowIndexes = computed(() => [0, 1, 2, 3]);\n\n /** Grid of years for year selection (12 years centered around current year) */\n yearsGrid = computed(() => {\n const center = this.year();\n const start = center - 6;\n const years: number[] = [];\n for (let i = 0; i < 12; i++) years.push(start + i);\n return years;\n });\n\n // Build a simple 6x7 grid (weeks x weekdays)\n calendarGrid = computed(() => {\n const y = this.year();\n const m = this.month();\n const firstOfMonth = new Date(y, m, 1);\n\n // JS getDay: 0..6 (Sun..Sat). startOffset is number of days from `weekStart` to firstOfMonth\n const startOffset = (firstOfMonth.getDay() - this.weekStart() + 7) % 7;\n\n const cells: { date: Date; outside: boolean }[] = [];\n // Start from the Monday of the first week\n const startDate = new Date(y, m, 1 - startOffset);\n for (let i = 0; i < 42; i++) {\n const d = new Date(startDate);\n d.setDate(startDate.getDate() + i);\n cells.push({ date: d, outside: d.getMonth() !== m });\n }\n return cells;\n });\n\n prevMonth(): void {\n const mode = this.viewMode();\n if (mode === 'day') {\n const m = this.month();\n const y = this.year();\n if (m === 0) {\n this.month.set(11);\n this.year.set(y - 1);\n } else {\n this.month.set(m - 1);\n }\n return;\n }\n\n if (mode === 'month') {\n // when viewing months, previous should decrement the year\n this.year.set(this.year() - 1);\n return;\n }\n\n // year view: shift the years grid back by 12 years\n this.year.set(this.year() - 12);\n }\n\n nextMonth(): void {\n const mode = this.viewMode();\n if (mode === 'day') {\n const m = this.month();\n const y = this.year();\n if (m === 11) {\n this.month.set(0);\n this.year.set(y + 1);\n } else {\n this.month.set(m + 1);\n }\n return;\n }\n\n if (mode === 'month') {\n // when viewing months, next should increment the year\n this.year.set(this.year() + 1);\n return;\n }\n\n // year view: shift the years grid forward by 12 years\n this.year.set(this.year() + 12);\n }\n\n onHeaderClick(): void {\n const mode = this.viewMode();\n if (mode === 'day') {\n this.viewMode.set('month');\n } else if (mode === 'month') {\n this.viewMode.set('year');\n } else {\n // if already in year view, go back to day view\n this.viewMode.set('day');\n }\n }\n\n selectMonth(m: number): void {\n // when selecting a month, set the month and go to day view\n this.month.set(m);\n this.viewMode.set('day');\n this.focusSelectedAfterNavigation();\n }\n\n selectYear(y: number): void {\n // when selecting a year, set it and switch to month view\n this.year.set(y);\n this.viewMode.set('month');\n this.focusSelectedAfterNavigation();\n }\n\n selectDate(d: Date): void {\n // If the clicked date belongs to a different month/year, navigate there\n if (d.getFullYear() !== this.year() || d.getMonth() !== this.month()) {\n this.year.set(d.getFullYear());\n this.month.set(d.getMonth());\n }\n\n const current = this.value();\n if (\n current &&\n current.getFullYear() === d.getFullYear() &&\n current.getMonth() === d.getMonth() &&\n current.getDate() === d.getDate()\n ) {\n // clicking the already-selected date toggles it off\n this.value.set(null);\n this.valueChange.emit(null);\n // do not emit dateSelected when deselecting\n this.focusSelectedAfterNavigation();\n return;\n }\n\n this.value.set(d);\n this.valueChange.emit(d);\n this.dateSelected.emit(d);\n this.focusSelectedAfterNavigation();\n }\n\n // keyboard helpers for ngGrid\n onKeyDown(event: KeyboardEvent): void {\n const target = event.target as HTMLElement | null;\n if (!target) return;\n\n // Only handle keyboard navigation in day view here\n if (this.viewMode() !== 'day') return;\n\n // Map arrow keys to cell index deltas\n const key = event.key;\n if (key !== 'ArrowLeft' && key !== 'ArrowRight' && key !== 'ArrowUp' && key !== 'ArrowDown')\n return;\n\n event.preventDefault();\n\n const widgets = this._cellWidgets();\n // find currently focused widget index\n const focusedEl = target.closest('button');\n let focusedIndex = widgets.findIndex((w) => w.element === focusedEl);\n if (focusedIndex === -1) {\n // fallback: try to match by day number and current month/year\n const dayAttr =\n target.getAttribute('data-day') || target.closest('[data-day]')?.getAttribute('data-day');\n const dayNum = dayAttr ? Number(dayAttr) : NaN;\n if (!isNaN(dayNum)) {\n const cells = this.calendarGrid();\n focusedIndex = cells.findIndex(\n (c) =>\n c.date.getDate() === dayNum &&\n c.date.getMonth() === this.month() &&\n c.date.getFullYear() === this.year(),\n );\n }\n }\n if (focusedIndex === -1) return;\n\n const cells = this.calendarGrid();\n\n // compute row/col for focusedIndex (6 rows x 7 cols)\n const cols = 7;\n const row = Math.floor(focusedIndex / cols);\n const col = focusedIndex % cols;\n\n // left/right: move by 1 cell preserving natural wrap behavior\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n const idx = Math.max(\n 0,\n Math.min(cells.length - 1, focusedIndex + (key === 'ArrowLeft' ? -1 : 1)),\n );\n this.focusCell(idx);\n return;\n }\n\n // up/down: move by one row preserving column\n const targetRow = Math.max(0, Math.min(5, row + (key === 'ArrowUp' ? -1 : 1)));\n let candidateIndex = targetRow * cols + col;\n candidateIndex = Math.max(0, Math.min(cells.length - 1, candidateIndex));\n\n const candidate = cells[candidateIndex];\n if (!candidate) return;\n\n const candidateMonth = candidate.date.getMonth();\n const candidateYear = candidate.date.getFullYear();\n\n if (candidateMonth !== this.month() || candidateYear !== this.year()) {\n // Move to candidate's month/year and focus the cell in the same column if possible\n const desiredCol = col;\n this.year.set(candidateYear);\n this.month.set(candidateMonth);\n setTimeout(() => {\n const newCells = this.calendarGrid();\n // Prefer same date number in desired column; otherwise fallback to same column first row\n const matchIndex = newCells.findIndex(\n (c, i) => i % cols === desiredCol && c.date.getDate() === candidate.date.getDate(),\n );\n if (matchIndex >= 0) {\n this._cellWidgets()[matchIndex]?.element.focus();\n return;\n }\n const fallback = newCells.findIndex((_, i) => i % cols === desiredCol);\n if (fallback >= 0) this._cellWidgets()[fallback]?.element.focus();\n });\n return;\n }\n\n // same month -> focus candidate\n this._cellWidgets()[candidateIndex]?.element.focus();\n }\n\n /** Centralized focus logic for cell widgets */\n private focusCell(index: number): void {\n const cells = this.calendarGrid();\n const candidate = cells[index];\n if (!candidate) return;\n const candidateMonth = candidate.date.getMonth();\n const candidateYear = candidate.date.getFullYear();\n if (candidateMonth !== this.month() || candidateYear !== this.year()) {\n this.year.set(candidateYear);\n this.month.set(candidateMonth);\n setTimeout(() => {\n const newCells = this.calendarGrid();\n const targetIndex = newCells.findIndex(\n (c) =>\n c.date.getFullYear() === candidateYear &&\n c.date.getMonth() === candidateMonth &&\n c.date.getDate() === candidate.date.getDate(),\n );\n if (targetIndex >= 0) this._cellWidgets()[targetIndex]?.element.focus();\n });\n return;\n }\n this._cellWidgets()[index]?.element.focus();\n }\n\n /** Focus the currently selected date cell after navigation/selection changes */\n private focusSelectedAfterNavigation(): void {\n setTimeout(() => {\n const v = this.value();\n if (!v) return;\n const cells = this.calendarGrid();\n const idx = cells.findIndex(\n (c) =>\n c.date.getFullYear() === v.getFullYear() &&\n c.date.getMonth() === v.getMonth() &&\n c.date.getDate() === v.getDate(),\n );\n if (idx >= 0) this._cellWidgets()[idx]?.element.focus();\n });\n }\n\n isSelected(date: Date): boolean {\n const v = this.value();\n if (!v) return false;\n return (\n v.getFullYear() === date.getFullYear() &&\n v.getMonth() === date.getMonth() &&\n v.getDate() === date.getDate()\n );\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * A simple card container for grouping related content.\n */\n@Component({\n selector: 'b-card',\n template: ` <ng-content /> `,\n})\nexport class Card {}\n","import { Component } from '@angular/core';\n\n/**\n * Container for the main content of a card.\n */\n@Component({\n selector: 'b-card-content',\n template: ` <ng-content /> `,\n})\nexport class CardContent {}\n","import { Component } from '@angular/core';\n\n/**\n * Small descriptive text for a card, typically shown below the title.\n */\n@Component({\n selector: 'b-card-description',\n template: ` <ng-content /> `,\n})\nexport class CardDescription {}\n","import { Component } from '@angular/core';\n\n/**\n * Footer area for a card, commonly used for actions or meta content.\n */\n@Component({\n selector: 'b-card-footer',\n template: ` <ng-content /> `,\n})\nexport class CardFooter {}\n","import { Component } from '@angular/core';\n\n/**\n * Header section for a card, usually contains the title or leading content.\n */\n@Component({\n selector: 'b-card-header',\n template: ` <ng-content /> `,\n})\nexport class CardHeader {}\n","import { Component } from '@angular/core';\n\n/**\n * Title element for a card.\n */\n@Component({\n selector: 'b-card-title',\n template: ` <ng-content /> `,\n})\nexport class CardTitle {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Custom checkbox control synced with the host input element.\n */\n@Component({\n selector: 'button[b-checkbox]',\n template: `\n <span class=\"b-checkbox-indicator\" aria-hidden=\"true\">\n @if (value()) {\n <svg\n width=\"9\"\n height=\"9\"\n viewBox=\"0 0 9 9\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z\"\n />\n </svg>\n }\n </span>\n `,\n host: {\n type: '\"button\"',\n '[attr.role]': '\"checkbox\"',\n '[attr.aria-checked]': 'value()',\n '[attr.data-state]': 'value() ? \"checked\" : \"unchecked\"',\n '[attr.aria-disabled]': 'isDisabled()',\n '[disabled]': 'isDisabled()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : null',\n '[class.b-size-sm]': 'size() === \"sm\"',\n '[class.b-size-md]': 'size() === \"md\"',\n '[class.b-size-lg]': 'size() === \"lg\"',\n '(click)': 'onToggle()',\n '(keydown.space)': 'suppressSpace($event)',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Checkbox implements FormValueControl<boolean> {\n /**\n * Current value of the checkbox.\n */\n readonly value = model<boolean>(false);\n\n /**\n * Emitted when the value changes.\n */\n readonly valueChange = output<boolean>();\n\n /**\n * Visual size of the checkbox.\n */\n readonly size = model<'sm' | 'md' | 'lg'>('md');\n\n /**\n * Disabled flag coming from template bindings.\n */\n readonly disabledBinding = input(false, { transform: booleanAttribute });\n\n /**\n * Disabled flag controlled by Angular forms APIs.\n */\n private readonly disabledFromControl = signal(false);\n\n /**\n * Combined disabled state exposed to the template bindings.\n */\n readonly isDisabled = computed(() => this.disabledBinding() || this.disabledFromControl());\n\n /**\n * Toggle the checkbox when the user clicks on it.\n */\n onToggle(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const newValue = !this.value();\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n\n /**\n * Prevent the page from scrolling when pressing the space key.\n */\n suppressSpace(event: Event): void {\n if (!this.isDisabled()) {\n event.preventDefault();\n }\n }\n\n /**\n * Toggle disabled state on the checkbox.\n * @param isDisabled - Whether the control is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabledFromControl.set(isDisabled);\n }\n\n /**\n * Update the current value (FormValueControl API).\n * @param value - New boolean value to apply.\n */\n setValue(value: boolean): void {\n this.value.set(value);\n this.valueChange.emit(value);\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { CdkListbox, CdkOption, ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport {\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n OnInit,\n output,\n signal,\n} from '@angular/core';\n\n/**\n * Presents a list of selectable command options and manages keyboard navigation.\n */\n@Component({\n selector: 'ul[b-command-options]',\n imports: [],\n template: `\n <ng-content />\n @if (options().length === 0) {\n <div class=\"no-options-message\">\n {{ noOptionsMessage() }}\n </div>\n }\n `,\n hostDirectives: [\n {\n directive: CdkListbox,\n inputs: ['cdkListboxValue', 'cdkListboxMultiple: multiple'],\n outputs: ['cdkListboxValueChange'],\n },\n ],\n host: {\n '(cdkListboxValueChange)': 'handleValueChange($event)',\n '(keydown.enter)': 'onEnter()',\n },\n})\nexport class CommandOptionsComponent implements OnInit {\n /**\n * Query list of option children.\n */\n readonly options = contentChildren(CdkOption);\n\n /**\n * Keyboard manager for option navigation.\n */\n readonly listKeyManager = computed(() =>\n new ActiveDescendantKeyManager(this.options()).withWrap().withVerticalOrientation(),\n );\n\n /**\n * Currently selected values.\n */\n readonly value = signal<string[]>([]);\n\n /**\n * Value of the currently highlighted option.\n */\n readonly highlightedOption = signal('1');\n\n /**\n * Message shown when there are no options.\n */\n readonly noOptionsMessage = input<string>('');\n\n cdkListbox = inject(CdkListbox);\n\n /**\n * Emitted when the options list should be closed (single-select or explicit clear).\n */\n closeEmitter = output();\n\n /**\n * Whether multiple options can be selected.\n */\n readonly multiple = input<boolean>(false);\n\n ngOnInit(): void {\n this.cdkListbox.multiple = this.multiple();\n this.cdkListbox.useActiveDescendant = true;\n }\n\n constructor() {\n effect(() => (this.cdkListbox.value = this.value()));\n }\n\n /**\n * Select the provided value(s) or the currently active option.\n * @param value - Optional array of values to select.\n */\n selectOption(value?: string[]): void {\n const selectValue = value ? value : (this.listKeyManager().activeItem?.value ?? []);\n // If the selectValue is an empty array or contains only an empty string, clear the selection\n if (selectValue.length === 1 && selectValue[0] === '') {\n this.value.set([]);\n this.cdkListbox.value = [];\n this.closeEmitter.emit();\n return;\n }\n this.value.set(selectValue);\n this.cdkListbox.value = this.value();\n this.closeEmitter.emit();\n }\n\n /**\n * Move highlight to the next option.\n */\n nextOption(): void {\n this.listKeyManager().setNextItemActive();\n this.highlightedOption.set(this.listKeyManager().activeItem?.value ?? '');\n this.updateHighlightedOption();\n }\n\n /**\n * Move highlight to the previous option.\n */\n previousOption(): void {\n this.listKeyManager().setPreviousItemActive();\n this.highlightedOption.set(this.listKeyManager().activeItem?.value ?? '');\n this.updateHighlightedOption();\n }\n\n /**\n * Update DOM classes for the highlighted option.\n */\n updateHighlightedOption(): void {\n this.options().forEach((option) => {\n if (option.value === this.highlightedOption()) {\n option.element.classList.add('cdk-option-highlighted');\n } else {\n option.element.classList.remove('cdk-option-highlighted');\n }\n });\n }\n\n /**\n * Handle external value changes from the cdk listbox.\n * @param value - New array of selected values.\n */\n handleValueChange(event: ListboxValueChangeEvent<unknown>) {\n const value = event.value as string[];\n // If the value is an empty array or contains a single empty string, clear the selection.\n if (value.length === 1 && value[0] === '') {\n this.value.set([]);\n if (!this.multiple()) {\n this.closeEmitter.emit();\n }\n return;\n }\n this.value.set(value);\n if (!this.multiple()) {\n this.closeEmitter.emit();\n }\n }\n\n /**\n * Called on Enter key; closes the list for single-select.\n */\n onEnter() {\n if (!this.multiple()) {\n this.closeEmitter.emit();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Utility service for common operations.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class Utils {\n private debounceTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\n /**\n * Executes a function after a delay, canceling any previous calls with the same key.\n *\n * @param key - Unique key to identify the debounce timer.\n * @param func - The function to debounce.\n * @param delay - The delay in milliseconds before executing the function.\n */\n debounce(key: string, func: () => void, delay: number): void {\n clearTimeout(this.debounceTimers.get(key));\n this.debounceTimers.set(key, setTimeout(func, delay));\n }\n\n /**\n * Cancels the debounce timer for a specific key.\n *\n * @param key - Unique key to identify the debounce timer.\n */\n stopDebounce(key: string): void {\n clearTimeout(this.debounceTimers.get(key));\n this.debounceTimers.delete(key);\n }\n\n /**\n * Generates a simple UUID.\n *\n * @returns A string representing a UUID.\n */\n generateUUID(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0; // Random integer between 0 and 15\n const v = c === 'x' ? r : (r & 0x3) | 0x8; // Version 4 UUID\n return v.toString(16);\n });\n }\n}\n","import { AfterViewInit, Component, computed, ElementRef, inject, input } from '@angular/core';\n\n/**\n * Enhanced native input with optional numeric formatting and integrations.\n */\n@Component({\n selector: 'input[b-input]',\n template: ``,\n host: {\n '[type]': 'type()',\n '[attr.data-invalid]': 'invalid() ? \"\" : null',\n '(input)': 'onInput($event)',\n '(blur)': 'onBlur($event)',\n },\n exportAs: 'bInput',\n})\nexport class Input implements AfterViewInit {\n /**\n * Input type.\n */\n readonly type = input<'text' | 'number' | 'password' | 'email'>('text');\n\n /**\n * Number of decimals when formatting decimal numbers.\n */\n readonly decimals = input<number>(2);\n\n /**\n * Whether number formatting uses integer or decimal logic.\n */\n readonly numberType = input<'integer' | 'decimal'>('integer');\n\n /**\n * Whether the input is in an invalid state.\n */\n readonly invalid = input<boolean>(false);\n\n /**\n * Computed signal indicating if the current type is numeric.\n */\n readonly isNumberType = computed(() => this.type() === 'number');\n\n /**\n * Host input element.\n */\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n ngAfterViewInit(): void {\n const value = this.el.nativeElement.value;\n if (this.isNumberType()) {\n const formattedValue = this.formatNumber(value) || '';\n this.setValue(formattedValue);\n }\n }\n\n /**\n * Set the native input value.\n * @param value - String value to set on the element.\n */\n setValue(value: string): void {\n this.el.nativeElement.value = value;\n }\n\n /**\n * Handle native input events.\n * @param event - Input event.\n */\n onInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n\n // If the input is not of number type, update the value and emit the value change event.\n if (!this.isNumberType()) {\n this.setValue(target.value);\n }\n }\n\n /**\n * Handle blur events and format numeric values when applicable.\n * @param event - Focus event.\n */\n onBlur(event: FocusEvent): void {\n // If the input is of number type, format the value and emit the value change event.\n if (this.isNumberType()) {\n const target = event.target as HTMLInputElement;\n const formattedValue = this.formatNumber(target.value);\n this.setValue(formattedValue || '');\n }\n }\n\n /**\n * Format a numeric string according to the current numberType and decimals.\n * @param value - Raw input string.\n * @returns Formatted string or null when input is empty.\n */\n formatNumber(value: string | null) {\n if (value) {\n const numericValue = Number(value);\n return this.numberType() === 'integer'\n ? Math.round(numericValue).toString()\n : numericValue.toFixed(this.decimals());\n } else {\n return null;\n }\n }\n\n /**\n * Programmatically blur and format numeric value if applicable.\n */\n blur(): void {\n if (this.isNumberType()) {\n const value = this.el.nativeElement.value;\n const formattedValue = this.formatNumber(value);\n this.setValue(formattedValue || '');\n }\n }\n}\n","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport {\n Component,\n computed,\n contentChild,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\nimport { Utils } from '../../services/utils';\nimport { Input } from '../input/input';\nimport { CommandOptionsComponent } from './command-options.component';\n\n/**\n * Input with integrated command options and keyboard handling.\n */\n@Component({\n selector: 'b-command',\n imports: [Input, CdkTrapFocus],\n template: `\n <input\n type=\"text\"\n b-input\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"isDesktop()\"\n #trappedInput\n (keydown.arrowDown)=\"commandOptions()?.nextOption()\"\n (keydown.arrowUp)=\"commandOptions()?.previousOption()\"\n (keydown.enter)=\"commandOptions()?.selectOption()\"\n (blur)=\"isDesktop() && trappedInput.el.nativeElement.focus()\"\n (input)=\"onInput($event)\"\n />\n <ng-content />\n `,\n host: {\n '[style.maxHeight]': 'maxHeight()',\n },\n})\nexport class CommandComponent implements OnDestroy {\n /**\n * Child CommandOptionsComponent instance.\n */\n readonly commandOptions = contentChild(CommandOptionsComponent);\n\n /**\n * Maximum height for the command list.\n */\n readonly maxHeight = input('300px');\n\n /**\n * Computed selected value from the command options.\n */\n readonly value = computed(() => this.commandOptions()?.value());\n\n /**\n * Computed available options from the child component.\n */\n readonly options = computed(() => this.commandOptions()?.options());\n\n /**\n * Breakpoint observer for responsive behavior.\n */\n breakpointObserver = inject(BreakpointObserver);\n\n /**\n * Signal that indicates whether the viewport is desktop-sized.\n */\n readonly isDesktop = signal(!this.breakpointObserver.isMatched(Breakpoints.Handset));\n\n /**\n * Element reference to the host component.\n */\n el = inject(ElementRef);\n\n /**\n * Emitted when the input value changes.\n */\n readonly inputValueChange = output<string>();\n\n /**\n * Debounce delay in milliseconds for input events.\n */\n readonly debounce = input(0);\n\n /**\n * Utility functions for common tasks.\n */\n private utils = inject(Utils);\n\n /**\n * Key for debouncing input events.\n */\n private readonly debounceKey = 'command-input';\n\n /**\n * Handle native input events and emit debounced value.\n * @param event - Native input event.\n */\n onInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n const debounceMs = this.debounce();\n if (debounceMs && debounceMs > 0) {\n this.utils.debounce(this.debounceKey, () => this.inputValueChange.emit(value), debounceMs);\n } else {\n this.inputValueChange.emit(value);\n }\n }\n\n ngOnDestroy() {\n this.utils.stopDebounce(this.debounceKey);\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { inject, Injectable, TemplateRef } from '@angular/core';\nimport { DialogContent } from '../components/dialog/dialog-content';\nimport { Utils } from './utils';\n\n/**\n * Represents the template and configuration registered for a dialog instance.\n */\nexport interface DialogData {\n /** Template reference rendered inside the dialog. */\n template: TemplateRef<unknown>;\n /** Configuration applied when opening the dialog. */\n config: DialogConfig;\n}\n\n/**\n * Configuration options that control dialog behavior and interaction.\n */\nexport interface DialogConfig {\n /** Whether a backdrop is displayed behind the dialog. */\n hasBackdrop: boolean;\n /** Whether focus is restored to the previously focused element after close. */\n restoreFocus: boolean;\n /** Delay in milliseconds before the dialog finishes closing. */\n closeDelay: number;\n /** Whether clicking the backdrop should request dialog closure. */\n closeOnBackdropClick: boolean;\n /** Whether pressing the Escape key should request dialog closure. */\n closeOnEscapeKey: boolean;\n}\n\n/**\n * Provides registration and lifecycle control for application dialogs.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogManager {\n /** Angular CDK dialog service used to manage overlay instances. */\n private readonly dialog = inject(Dialog);\n\n /** Utility service used for debounced close behavior. */\n private readonly utils = inject(Utils);\n\n /** Registry mapping dialog identifiers to their data. */\n private readonly dialogs = new Map<string, DialogData>();\n\n /**\n * Registers a dialog definition under a unique identifier, overwriting any existing entry.\n *\n * @param id - Unique identifier for the dialog.\n * @param data - Template and configuration to register.\n */\n registerDialog(id: string, data: DialogData): void {\n if (this.dialogs.has(id)) {\n console.warn(`[DialogManager] Dialog with id \"${id}\" is already registered. Overwriting.`);\n }\n this.dialogs.set(id, data);\n }\n\n /**\n * Removes a previously registered dialog definition.\n *\n * @param id - Identifier of the dialog to remove.\n */\n removeDialog(id: string): void {\n this.dialogs.delete(id);\n }\n\n /**\n * Opens a dialog using its registered template and configuration.\n *\n * @param id - Identifier of the dialog to open.\n * @throws Error - When no dialog is registered with the provided identifier.\n */\n openDialog(id: string): void {\n const dialogData = this.dialogs.get(id);\n if (!dialogData) {\n throw new Error(\n `[DialogManager] Dialog with id \"${id}\" not found. Ensure the bDialog directive is applied correctly.`,\n );\n }\n this.dialog.open(dialogData.template, {\n id: id,\n disableClose: true,\n restoreFocus: dialogData.config.restoreFocus,\n backdropClass: 'b-dialog-content-backdrop',\n container: DialogContent,\n data: dialogData.config,\n });\n }\n\n /**\n * Closes a dialog by identifier applying any configured close delay.\n *\n * @param id - Identifier of the dialog to close.\n */\n closeDialog(id: string): void {\n const config = this.dialogs.get(id)?.config;\n if (!config) {\n console.warn(\n `[DialogManager] Attempted to close dialog with id \"${id}\", but no open dialog with that id was found.`,\n );\n return;\n }\n const dialogRef = this.dialog.getDialogById(id);\n if (dialogRef) {\n const container = dialogRef.containerInstance as DialogContent;\n if (container && container.leaving) {\n container.leaving.set(true);\n }\n this.utils.debounce(\n 'close-dialog-' + id,\n () => {\n dialogRef.close();\n if (container && container.leaving) {\n container.leaving.set(false);\n }\n },\n config.closeDelay,\n );\n } else {\n console.warn(\n `[DialogManager] Attempted to close dialog with id \"${id}\", but no open dialog with that id was found.`,\n );\n }\n }\n\n /**\n * Closes all currently open dialogs immediately.\n */\n closeAllDialogs(): void {\n this.dialog.closeAll();\n }\n}\n","import { CdkDialogContainer, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { DialogConfig, DialogManager } from '../../services/dialog-manager';\n\n/**\n * Internal dialog container that wires backdrop and escape-key behavior.\n */\n@Component({\n selector: 'b-dialog-content',\n template: ` <ng-template cdkPortalOutlet /> `,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n host: {\n '[class.leaving]': 'leaving()',\n },\n})\nexport class DialogContent extends CdkDialogContainer implements OnInit {\n dialogRef = inject(DialogRef);\n dialogManager = inject(DialogManager);\n\n /**\n * Signal used to animate or flag leaving state.\n */\n readonly leaving = signal(false);\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.handleDialogEvents();\n }\n\n /**\n * Attach backdrop and keyboard handlers based on dialog config.\n */\n handleDialogEvents(): void {\n const data = this._config?.data as DialogConfig | undefined;\n\n if (!data) {\n return;\n }\n\n this.handleBackdropClose(data);\n this.handleEscapeKeyClose(data);\n }\n\n /**\n * Close dialog on backdrop click when configured.\n * @param data - Dialog configuration.\n */\n handleBackdropClose(data: DialogConfig): void {\n if (data.closeOnBackdropClick) {\n this.dialogRef.backdropClick.subscribe((): void => {\n this.dialogManager.closeDialog(this.dialogRef.id);\n });\n }\n }\n\n /**\n * Close dialog on Escape key when configured.\n * @param data - Dialog configuration.\n */\n handleEscapeKeyClose(data: DialogConfig): void {\n if (data.closeOnEscapeKey) {\n this.dialogRef.keydownEvents.subscribe((event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.dialogManager.closeDialog(this.dialogRef.id);\n }\n });\n }\n }\n}\n","import {\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\n\n/**\n * A draggable bottom sheet drawer with open/close and drag-to-dismiss behavior.\n */\n@Component({\n selector: 'b-drawer',\n standalone: true,\n imports: [],\n template: `\n <div class=\"drag-section\" (pointerdown)=\"startDrag($event)\">\n <div class=\"drag-indicator\"></div>\n </div>\n <div class=\"drawer-content\" (click)=\"$event.stopPropagation()\">\n <ng-content />\n </div>\n `,\n host: {\n '[class.dragging]': 'isDragging()',\n '[class.open]': 'isOpen()',\n '[style.transform]': 'transform()',\n },\n})\nexport class Drawer {\n /**\n * Model indicating whether the drawer is open.\n */\n readonly isOpen = model(false);\n\n /**\n * Emitted when the sheet is closed.\n */\n closeSheet = output<void>();\n\n /**\n * Signal used to animate or flag dragging state.\n */\n readonly isDragging = signal(false);\n\n /**\n * Starting Y position of the pointer when drag begins.\n */\n readonly startY = signal(0);\n\n /**\n * Current vertical translation of the drawer.\n */\n private readonly translateY = signal(100);\n\n /**\n * Vertical drag threshold (percentage) to trigger close on release.\n */\n readonly closeThreshold = input(30);\n\n /**\n * Computed CSS transform for the drawer based on drag/open state.\n */\n readonly transform = computed(() =>\n this.isDragging()\n ? `translateY(${this.translateY()}%)`\n : this.isOpen()\n ? 'translateY(0%)'\n : 'translateY(100%)',\n );\n\n /**\n * Element reference to the host component.\n */\n private readonly el = inject(ElementRef);\n\n /**\n * Close the drawer when clicking outside of it.\n * The stopPropagation in the drawer-content prevents clicks inside from closing it.\n * @param event - Click event.\n */\n @HostListener('document:click', ['$event'])\n closeOnOutsideClick(event: Event) {\n if (!this.isOpen()) return;\n\n const target = event.target as HTMLElement;\n\n // Check if click is inside the drawer\n if (this.el.nativeElement.contains(target)) {\n return;\n }\n\n // Check if click is inside a CDK overlay (select dropdown, dialogs, etc.)\n if (target.closest('.cdk-overlay-container')) {\n return;\n }\n\n // Close the drawer\n this.isOpen.set(false);\n this.closeSheet.emit();\n }\n\n /**\n * Begin tracking pointer movement for drag-to-dismiss.\n * @param event - Pointer down event.\n */\n startDrag(event: PointerEvent): void {\n this.isDragging.set(true);\n this.startY.set(event.clientY);\n // Initialize translateY based on the current state:\n this.translateY.set(this.isOpen() ? 0 : 100);\n // Disable text selection for better UX\n document.body.style.userSelect = 'none';\n\n const move = (e: PointerEvent) => this.updateDrag(e.clientY);\n const end = () => {\n this.isDragging.set(false);\n this.snapToOpenOrClose();\n\n // Restore text selection\n document.body.style.userSelect = '';\n\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', end);\n };\n\n window.addEventListener('pointermove', move, { passive: false });\n window.addEventListener('pointerup', end);\n }\n\n /**\n * Update drawer position during drag.\n * @param clientY - Current pointer Y position.\n */\n updateDrag(clientY: number): void {\n const deltaPx = clientY - this.startY();\n const sheetHeight = this.el.nativeElement.offsetHeight;\n // Convert the pixel delta to a percentage relative to the sheet height\n const deltaPercent = (deltaPx / sheetHeight) * 100;\n // If open, the initial position is 0%; if closed, it is 100%\n const newPos = Math.min(\n 100,\n Math.max(0, this.isOpen() ? 0 + deltaPercent : 100 + deltaPercent),\n );\n this.translateY.set(newPos);\n } /**\n * Snap the drawer to open or closed based on threshold.\n */\n snapToOpenOrClose(): void {\n if (this.translateY() > this.closeThreshold()) {\n this.isOpen.set(false);\n } else {\n this.isOpen.set(true);\n }\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * Wrapper for grouping input-related elements.\n */\n@Component({\n selector: 'b-input-group',\n template: ` <ng-content /> `,\n})\nexport class InputGroup {}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n/**\n * Root menu container that applies CDK menu behavior.\n */\n@Component({\n selector: 'b-menu',\n template: ` <ng-content /> `,\n hostDirectives: [CdkMenu],\n})\nexport class Menu {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n/**\n * Menu group wrapper that applies CDK menu group behavior.\n */\n@Component({\n selector: 'b-menu-group',\n template: ` <ng-content /> `,\n hostDirectives: [CdkMenuGroup],\n})\nexport class MenuGroup {}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n/**\n * Menu item wrapper that forwards behavior to the CDK menu item.\n */\n@Component({\n selector: 'button[b-menu-item]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkMenuItem,\n inputs: ['cdkMenuItemDisabled: disabled', 'cdkMenuitemTypeaheadLabel: typeaheadLabel'],\n outputs: ['cdkMenuItemTriggered: triggered'],\n },\n ],\n})\nexport class MenuItem {}\n","import { CdkMenuItemCheckbox } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n/**\n * Menu item checkbox that connects to the CDK menu checkbox behavior.\n */\n@Component({\n selector: 'button[b-menu-item-checkbox]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkMenuItemCheckbox,\n inputs: [\n 'cdkMenuItemDisabled: disabled',\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\n 'cdkMenuItemChecked: active',\n ],\n outputs: ['cdkMenuItemTriggered: triggered'],\n },\n ],\n})\nexport class MenuItemCheckbox {}\n","import { CdkMenuItemRadio } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\n\n/**\n * Menu radio item that integrates CDK menu radio behavior.\n */\n@Component({\n selector: 'button[b-menu-item-radio]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkMenuItemRadio,\n inputs: [\n 'cdkMenuItemDisabled: disabled',\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\n 'cdkMenuItemChecked: active',\n ],\n outputs: ['cdkMenuItemTriggered: triggered'],\n },\n ],\n})\nexport class MenuItemRadio {}\n","import { Component } from '@angular/core';\n\n/**\n * Label element used inside menus to group or describe items.\n */\n@Component({\n selector: 'b-menu-label',\n template: ` <ng-content /> `,\n})\nexport class MenuLabel {}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Directive, inject, input, OnInit } from '@angular/core';\nimport { Position } from '../../types/position.type';\n\n/**\n * Directive to add menu trigger behavior to an element.\n */\n@Directive({\n selector: '[menuTriggerFor]',\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: menuTriggerFor'],\n },\n ],\n})\nexport class MenuTriggerDirective implements OnInit {\n /**\n * Injected CdkMenuTrigger instance to control menu behavior.\n */\n trigger = inject(CdkMenuTrigger);\n\n /**\n * Position of the menu relative to the trigger element.\n */\n readonly menuTriggerPosition = input<Position | Position[]>('right-top');\n\n /**\n * Whether the trigger is for a submenu.\n */\n readonly submenu = input(false);\n\n ngOnInit(): void {\n this.setPosition();\n }\n\n /**\n * Sets the menu position based on the provided input.\n * Supports both single and multiple positions.\n * If it's a submenu, offsets are not applied.\n */\n setPosition(): void {\n const positionMap: Record<Position, ConnectedPosition> = {\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: !this.submenu() ? -5 : undefined,\n },\n 'top-center': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: !this.submenu() ? -5 : undefined,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: !this.submenu() ? -5 : undefined,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: !this.submenu() ? 5 : undefined,\n },\n 'bottom-center': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: !this.submenu() ? 5 : undefined,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: !this.submenu() ? 5 : undefined,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: !this.submenu() ? -5 : undefined,\n },\n 'left-center': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: !this.submenu() ? -5 : undefined,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: !this.submenu() ? -5 : undefined,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: !this.submenu() ? 5 : undefined,\n },\n 'right-center': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: !this.submenu() ? 5 : undefined,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: !this.submenu() ? 5 : undefined,\n },\n };\n\n const pos = this.menuTriggerPosition();\n if (Array.isArray(pos)) {\n this.trigger.menuPosition = pos.map((p) => positionMap[p]);\n } else {\n this.trigger.menuPosition = [positionMap[pos]];\n }\n }\n}\n","import { CdkOption } from '@angular/cdk/listbox';\nimport { Component, ElementRef, inject } from '@angular/core';\n\n/**\n * Component representing an individual option in a select or combobox.\n * This component integrates with Angular CDK Option to manage the option's state and behavior.\n */\n@Component({\n selector: 'li[b-option]',\n imports: [],\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkOption,\n inputs: ['cdkOption: value', 'cdkOptionDisabled: disabled'],\n },\n ],\n})\nexport class Option {\n /**\n * The `ElementRef` of the option.\n * This provides direct access to the DOM element of the option.\n */\n el = inject(ElementRef);\n\n /**\n * The `CdkOption` instance associated with this option.\n * This provides methods and properties for managing the option's state, such as selection and value.\n */\n cdkOption = inject(CdkOption);\n}\n","import {\n AfterContentInit,\n Component,\n computed,\n contentChildren,\n ElementRef,\n input,\n model,\n output,\n} from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\n\n/**\n * OTP (One-Time Password) input component that manages multiple digit inputs.\n */\n@Component({\n selector: 'b-otp',\n template: ` <ng-content /> `,\n host: {\n '[attr.data-invalid]': 'invalid() && dirty() ? \"\" : null',\n },\n})\nexport class Otp implements AfterContentInit, FormValueControl<string> {\n /**\n * Number of digit inputs.\n */\n readonly length = computed(() => this.digitInputs().length);\n\n /**\n * Current OTP value.\n */\n readonly value = model<string>('');\n\n /**\n * Emitted when the OTP value changes.\n */\n readonly valueChange = output<string>();\n\n /**\n * Whether the OTP input is invalid.\n */\n invalid = input<boolean>(false);\n\n /**\n * Whether the OTP input has been modified.\n */\n dirty = input<boolean>(false);\n\n /**\n * Query list of digit input directives.\n */\n readonly digitInputs = contentChildren(OtpDigitDirective);\n\n /**\n * Internal storage for digit values.\n */\n private values: string[] = [];\n\n /**\n * Whether the OTP inputs are disabled.\n */\n readonly disabled = model(false);\n\n /**\n * Lifecycle hook invoked after content initialization.\n */\n ngAfterContentInit(): void {\n this.digitInputs().forEach((input, idx) => {\n const el = input.el.nativeElement;\n el.disabled = this.disabled();\n el.addEventListener('input', (event: Event) => {\n this.onInput(event, idx);\n });\n el.addEventListener('keydown', (event: KeyboardEvent) => {\n this.onKeyDown(event, idx);\n });\n el.addEventListener('paste', (event: ClipboardEvent) => {\n this.onPaste(event);\n });\n });\n this.resetValues();\n }\n\n /**\n * Callback invoked when the OTP value changes.\n */\n private onInput(event: Event, idx: number) {\n const input = event.target as HTMLInputElement;\n const val = input.value;\n this.values[idx] = val;\n if (val && idx < this.length() - 1) {\n this.focusDigit(idx + 1);\n }\n this.emitValue();\n }\n\n /**\n * Callback invoked on keydown events for navigation and deletion.\n */\n private onKeyDown(event: KeyboardEvent, idx: number) {\n const input = event.target as HTMLInputElement;\n if (event.key === 'Backspace') {\n if (!input.value && idx > 0) {\n this.focusDigit(idx - 1);\n }\n this.values[idx] = '';\n this.emitValue();\n } else if (event.key === 'ArrowLeft' && idx > 0) {\n this.focusDigit(idx - 1);\n } else if (event.key === 'ArrowRight' && idx < this.length() - 1) {\n this.focusDigit(idx + 1);\n }\n }\n\n /**\n * Callback invoked on paste events to fill multiple digits.\n */\n private onPaste(event: ClipboardEvent) {\n event.preventDefault();\n const paste = event.clipboardData?.getData('text') ?? '';\n const chars = paste.slice(0, this.length()).split('');\n chars.forEach((c, i) => {\n this.values[i] = c;\n const input = this.digitInputs()[i];\n if (input) {\n input.el.nativeElement.value = c;\n }\n });\n this.emitValue();\n this.focusDigit(chars.length - 1);\n }\n\n /**\n * Focus the digit input at the specified index.\n * @param idx - Index of the digit input to focus.\n */\n private focusDigit(idx: number) {\n const input = this.digitInputs()[idx];\n if (input) {\n input.el.nativeElement.focus();\n }\n }\n\n /**\n * Emit the current OTP value to all listeners.\n */\n private emitValue() {\n const otp = this.values.join('');\n this.value.set(otp);\n this.valueChange.emit(otp);\n }\n\n /**\n * Reset the OTP input values.\n */\n private resetValues() {\n this.values = Array(this.length()).fill('');\n this.digitInputs().forEach((input) => {\n input.el.nativeElement.value = '';\n });\n }\n\n /**\n * Set the disabled state of the OTP inputs.\n * @param isDisabled - Whether inputs should be disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n this.digitInputs().forEach((input) => {\n input.el.nativeElement.disabled = isDisabled;\n });\n }\n\n /**\n * Update the current OTP value (FormValueControl API).\n * @param value - New otp string to apply.\n */\n setValue(value: string): void {\n this.value.set(value);\n this.valueChange.emit(value);\n // Update individual digit inputs to reflect new value\n const chars = value.split('');\n this.digitInputs().forEach((inputRef, idx) => {\n const char = chars[idx] ?? '';\n inputRef.el.nativeElement.value = char;\n this.values[idx] = char;\n });\n }\n}\n\nimport { Directive, inject } from '@angular/core';\n\n@Directive({\n selector: 'input[b-otp-digit]',\n host: {\n maxlength: '1',\n },\n})\nexport class OtpDigitDirective {\n /**\n * Host input element for the OTP digit.\n */\n el = inject(ElementRef<HTMLInputElement>);\n}\n","import {\n CdkConnectedOverlay,\n ConnectedPosition,\n ConnectionPositionPair,\n ScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { computed, Directive, effect, inject, input, linkedSignal, model } from '@angular/core';\nimport { Position } from '../../types/position.type';\nimport { OverlayTrigger } from './overlay-trigger';\n\n/**\n * Directive that wires an Angular CDK connected overlay to a trigger and exposes\n * reactive signals for positions and scroll strategy.\n */\n@Directive({\n selector: '[bOverlay]',\n hostDirectives: [\n {\n directive: CdkConnectedOverlay,\n inputs: [\n 'cdkConnectedOverlayBackdropClass: backdropClass',\n 'cdkConnectedOverlayDisposeOnNavigation: disposeOnNavigation',\n 'cdkConnectedOverlayFlexibleDimensions: flexibleDimensions',\n 'cdkConnectedOverlayGrowAfterOpen: growAfterOpen',\n 'cdkConnectedOverlayHasBackdrop: hasBackdrop',\n 'cdkConnectedOverlayHeight: height',\n 'cdkConnectedOverlayLockPosition: lockPosition',\n 'cdkConnectedOverlayMinHeight: minHeight',\n 'cdkConnectedOverlayMinWidth: minWidth',\n 'cdkConnectedOverlayOffsetX: offsetX',\n 'cdkConnectedOverlayOffsetY: offsetY',\n 'cdkConnectedOverlayOrigin: trigger',\n 'cdkConnectedOverlayPanelClass: panelClass',\n 'cdkConnectedOverlayPositionStrategy: positionStrategy',\n 'cdkConnectedOverlayPush: push',\n 'cdkConnectedOverlayTransformOriginOn: transformOriginSelector',\n 'cdkConnectedOverlayViewportMargin: viewportMargin',\n 'cdkConnectedOverlayWidth: width',\n ],\n outputs: [\n 'attach: attach',\n 'detach: detach',\n 'overlayKeydown: overlayKeydown',\n 'overlayOutsideClick: overlayOutsideClick',\n 'positionChange: positionChange',\n ],\n },\n ],\n host: {\n '(positionChange)': 'setPositionPair($event)',\n '(detach)': 'deactivateTrigger()',\n '(overlayOutsideClick)': 'closeIfClickedOutside()',\n '(overlayKeydown)': 'closeOnEscape($event)',\n },\n})\nexport class Overlay {\n /**\n * Reference to the CDK connected overlay instance.\n */\n cdkConnectedOverlay = inject(CdkConnectedOverlay);\n\n /**\n * Options for scroll handling provided by the CDK.\n */\n scrollStrategyOptions = inject(ScrollStrategyOptions);\n\n /**\n * The overlay trigger object (signal) that controls the overlay origin and active state.\n */\n trigger = input<OverlayTrigger>();\n\n /**\n * Whether the overlay is open.\n */\n open = computed(() => this.trigger()?.active() || false);\n\n /** Preferred overlay positions in priority order.\n\n * @defaultValue ['bottom-center', 'top-center']\n */\n positions = input<Position[]>(['bottom-center', 'top-center']);\n\n /** Whether clicking outside closes the overlay.\n\n * @defaultValue true\n */\n closeOnClickOutside = model(true);\n\n /** Whether pressing Escape closes the overlay.\n\n * @defaultValue true\n */\n closeOnTypeEscape = model(true);\n\n /**\n * Whether to focus the trigger element when the overlay closes.\n *\n * @defaultValue true\n */\n readonly focusTriggerOnClose = model(true);\n\n /** Scroll strategy for the overlay.\n\n * @defaultValue 'reposition'\n */\n scrollStrategy = model<'close' | 'reposition' | 'block'>('reposition');\n\n /**\n * Computed array of CDK ConnectedPosition values derived from `positions`.\n */\n connectedPositions = computed<ConnectedPosition[]>(() =>\n this.positions().map((position) => positionsMap[position]),\n );\n\n /**\n * Linked signal that holds the currently active ConnectionPositionPair.\n */\n connectedPositionPair = linkedSignal<ConnectionPositionPair>(() => this.connectedPositions()[0]);\n\n /**\n * Computed overlay direction string derived from the active connection pair (e.g. 'top', 'bottom').\n */\n direction = computed(() => {\n const pair = this.connectedPositionPair();\n\n return Object.entries(positionsMap)\n .find(\n ([, position]) =>\n position.originX === pair.originX &&\n position.originY === pair.originY &&\n position.overlayX === pair.overlayX &&\n position.overlayY === pair.overlayY,\n )?.[0]\n .split('-')[0];\n });\n\n /**\n * Flag to indicate if el overlay ya fue abierto al menos una vez.\n */\n private hasBeenOpened = false;\n\n constructor() {\n effect(() => {\n this.handleAttach();\n this.setScrollStrategy();\n this.setPositions();\n });\n }\n\n /**\n * Attach or detach the overlay based on the `open` signal.\n * Also manages focus on the trigger element when closing.\n */\n handleAttach(): void {\n if (this.open()) {\n this.cdkConnectedOverlay.attachOverlay();\n this.hasBeenOpened = true;\n } else {\n this.cdkConnectedOverlay.detachOverlay();\n\n // Only focus the trigger if the overlay has been opened at least once\n if (this.hasBeenOpened && this.focusTriggerOnClose()) {\n this.trigger()?.el.nativeElement.focus();\n }\n }\n }\n\n /**\n * Set the active connection pair when the CDK overlay reports a position change.\n *\n * @param event - The position change event containing the new connection pair.\n */\n setPositionPair(event: { connectionPair: ConnectionPositionPair }): void {\n this.connectedPositionPair.set(event.connectionPair);\n }\n\n /**\n * Deactivate the overlay trigger when the overlay detaches.\n */\n deactivateTrigger(): void {\n this.trigger()?.active?.set(false);\n }\n\n /**\n * Close the overlay if a click occurs outside and `closeOnClickOutside` is enabled.\n */\n closeIfClickedOutside(): void {\n console.log('clicked outside');\n if (this.closeOnClickOutside()) {\n this.trigger()?.active?.set(false);\n }\n }\n\n /**\n * Close the overlay when the Escape key is pressed and `closeOnTypeEscape` is enabled.\n *\n * @param event - The keyboard event emitted by the overlay.\n */\n closeOnEscape(event: KeyboardEvent): void {\n if (this.closeOnTypeEscape() && event.key === 'Escape') {\n this.trigger()?.active?.set(false);\n }\n }\n\n /**\n * Apply the selected scroll strategy to the CDK connected overlay.\n */\n setScrollStrategy(): void {\n switch (this.scrollStrategy()) {\n case 'close':\n this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.close();\n break;\n case 'reposition':\n this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.reposition();\n break;\n case 'block':\n this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.block();\n break;\n }\n }\n\n /**\n * Update the overlay's available positions from the computed `connectedPositions`.\n */\n setPositions(): void {\n this.cdkConnectedOverlay.positions = this.connectedPositions();\n }\n}\n\n/** Map of semantic positions to CDK ConnectedPosition configuration objects. */\nconst positionsMap: Record<Position, ConnectedPosition> = {\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n 'top-center': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n 'bottom-center': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -4,\n offsetY: 0,\n },\n 'left-center': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -4,\n offsetY: 0,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -4,\n offsetY: 0,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 4,\n offsetY: 0,\n },\n 'right-center': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 4,\n offsetY: 0,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 4,\n offsetY: 0,\n },\n};\n","import { Directive } from '@angular/core';\nimport { Overlay } from '../../directives/overlay-v2/overlay';\n\n/**\n * Popover directive that configures an overlay for displaying popover content.\n * Popovers differ from tooltips in that they allow multi-line content and use\n * padding-based sizing (no fixed heights) and do not expose variant classes.\n */\n@Directive({\n selector: '[bPopover]',\n})\nexport class Popover extends Overlay {}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, inject, model } from '@angular/core';\n\n/**\n * Directive that marks an element as an overlay trigger and toggles its active state on click.\n */\n@Directive({\n selector: '[bOverlayTrigger]',\n hostDirectives: [CdkOverlayOrigin],\n exportAs: 'bOverlayTrigger',\n})\nexport class OverlayTrigger extends CdkOverlayOrigin {\n /**\n * Model that indicates whether the trigger is active.\n *\n * @defaultValue false\n */\n active = model(false);\n\n /**\n * Reference to the `ElementRef` of the host element.\n * This is used to access the native DOM element.\n */\n el = inject(ElementRef);\n}\n","import { Directive } from '@angular/core';\nimport { OverlayTrigger } from '../../directives/overlay-v2/overlay-trigger';\n\n/**\n * Trigger directive that emits activation events for popovers.\n * Exposes the same `trigger` and `el` properties expected by `ConnectedOverlay`.\n */\n@Directive({\n selector: '[bPopoverTrigger]',\n host: {\n '(click)': 'active.set(!active())',\n },\n exportAs: 'bPopoverTrigger',\n})\nexport class PopoverTrigger extends OverlayTrigger {}\n","import { Component, ElementRef, inject, model, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'input[b-range]',\n template: ``,\n host: {\n '[attr.value]': 'value()',\n '(input)': 'onInput($event)',\n },\n})\nexport class Range implements AfterViewInit {\n readonly value = model<string>('0');\n el = inject(ElementRef);\n\n ngAfterViewInit() {\n this.value.set(this.el.nativeElement.value);\n }\n\n onInput(event: Event) {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","import {\n CdkConnectedOverlay,\n ConnectedPosition,\n ConnectionPositionPair,\n Overlay,\n} from '@angular/cdk/overlay';\nimport {\n computed,\n Directive,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n} from '@angular/core';\nimport { Position } from '../types/position.type';\nimport { OverlayOrigin } from './overlay-origin';\n\n/**\n * Directive to manage overlay behavior and positioning.\n * Integrates with Angular CDK's `CdkConnectedOverlay` to provide\n * flexible overlay positioning and triggering mechanisms.\n */\n@Directive({\n selector: '[bConnectedOverlay]',\n hostDirectives: [\n {\n directive: CdkConnectedOverlay,\n inputs: [\n 'cdkConnectedOverlayWidth: width',\n 'cdkConnectedOverlayMinWidth: minWidth',\n 'cdkConnectedOverlayBackdropClass: customBackdropClass',\n 'cdkConnectedOverlayPanelClass: panelClass',\n ],\n outputs: [\n 'detach: detach',\n 'attach: attach',\n 'overlayOutsideClick: outsideClick',\n 'backdropClick: backdropClick',\n 'positionChange: positionChange',\n ],\n },\n ],\n host: {\n '(positionChange)': 'connectedPositionPair.set($event.connectionPair)',\n '(detach)': 'detachEmitter.emit()',\n '(attach)': 'attachEmitter.emit()',\n '(outsideClick)': 'outsideClickEmitter.emit()',\n '(backdropClick)': 'backdropClickEmitter.emit()',\n },\n})\nexport class ConnectedOverlay {\n /**\n * Controls whether the overlay is open.\n * @default false\n */\n readonly open = model(false);\n\n /**\n * The trigger directive that activates the overlay.\n * This input is required.\n */\n readonly trigger = input.required<OverlayOrigin>();\n\n /**\n * A computed map of positions to their corresponding `ConnectedPosition` configurations.\n */\n readonly positionsMap = computed<Record<Position, ConnectedPosition>>(() => ({\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n 'top-center': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: -4,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n 'bottom-center': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 4,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -4,\n offsetY: 0,\n },\n 'left-center': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -4,\n offsetY: 0,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -4,\n offsetY: 0,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 4,\n offsetY: 0,\n },\n 'right-center': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 4,\n offsetY: 0,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 4,\n offsetY: 0,\n },\n }));\n\n /**\n * List of positions for the overlay.\n * @default ['bottom-left']\n */\n readonly positions = input<Position[]>(['bottom-left']);\n\n /**\n * Controls whether the trigger element should be focused when the overlay is closed.\n * @default true\n */\n readonly focusTriggerOnClose = input(true);\n\n /**\n * Computed list of `ConnectedPosition` objects based on the `positions` input.\n */\n readonly connectedPositions = computed<ConnectedPosition[]>(() =>\n this.positions().map((position) => this.positionsMap()[position]),\n );\n\n /**\n * Signal to track the currently active `ConnectionPositionPair`.\n */\n readonly connectedPositionPair = linkedSignal<ConnectionPositionPair>(\n () => this.connectedPositions()[0],\n );\n\n /**\n * Injected instance of `CdkConnectedOverlay`.\n */\n cdkConnectedOverlay = inject(CdkConnectedOverlay);\n\n /**\n * Injected instance of `Overlay`.\n */\n overlay = inject(Overlay);\n\n /**\n * Computed direction of the overlay based on the active position pair.\n */\n readonly direction = computed(() => {\n const pair = this.connectedPositionPair();\n\n return Object.entries(this.positionsMap())\n .find(\n ([, position]) =>\n position.originX === pair.originX &&\n position.originY === pair.originY &&\n position.overlayX === pair.overlayX &&\n position.overlayY === pair.overlayY,\n )?.[0]\n .split('-')[0];\n });\n\n /**\n * Event emitter for overlay detach events.\n */\n detachEmitter = output<void>();\n\n /**\n * Event emitter for overlay attach events.\n */\n attachEmitter = output<void>();\n\n /**\n * Event emitter for overlay outside click events.\n */\n outsideClickEmitter = output<void>();\n\n /**\n * Event emitter for overlay backdrop click events.\n */\n backdropClickEmitter = output<void>();\n\n /**\n * Flag to indicate if el overlay ya fue abierto al menos una vez.\n */\n private hasBeenOpened = false;\n\n /**\n * Constructor to initialize the directive and set up reactive effects.\n */\n constructor() {\n effect(() => {\n this.handleOrigin();\n this.handleConnectedPositions();\n this.handleOpen();\n });\n }\n\n /**\n * Handles the origin of the overlay.\n * This method sets the `cdkConnectedOverlay.origin` to the trigger element.\n */\n handleOrigin(): void {\n this.cdkConnectedOverlay.origin = this.trigger().trigger;\n }\n\n /**\n * Handles the connected positions for the overlay.\n * This method updates the `cdkConnectedOverlay` positions based on the current state.\n */\n handleConnectedPositions(): void {\n this.cdkConnectedOverlay.positions = this.connectedPositions();\n }\n\n /**\n * Handles the opening and closing of the overlay based on the `open` input.\n * Determines whether to open or close the overlay and invokes the appropriate method.\n */\n handleOpen(): void {\n if (this.open()) {\n this.cdkConnectedOverlay.attachOverlay();\n this.hasBeenOpened = true;\n } else {\n this.cdkConnectedOverlay.detachOverlay();\n\n // Only focus the trigger if the overlay has been opened at least once\n if (this.hasBeenOpened && this.focusTriggerOnClose()) {\n this.trigger().el.nativeElement.focus();\n }\n }\n }\n\n /**\n * Toggles the open state of the overlay.\n * If the overlay is open, it will be closed, and vice versa.\n */\n toggleOverlay(): void {\n this.open.set(!this.open());\n }\n\n /**\n * Closes the overlay by setting the `open` state to false.\n */\n closeOverlay(): void {\n this.open.set(false);\n }\n\n /**\n * Opens the overlay by setting the `open` state to true.\n */\n openOverlay(): void {\n this.open.set(true);\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { CdkListbox, CdkOption, ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport {\n Component,\n computed,\n contentChildren,\n ElementRef,\n inject,\n model,\n OnInit,\n output,\n} from '@angular/core';\nimport { ConnectedOverlay } from '../../directives/connected-overlay';\n\n/**\n * Content container for select overlays that manages option navigation.\n */\n@Component({\n selector: 'ul[b-select-content]',\n imports: [],\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkListbox,\n inputs: ['cdkListboxMultiple: multiple'],\n outputs: ['cdkListboxValueChange'],\n },\n ],\n host: {\n '(cdkListboxValueChange)': 'emitValueChange($event)',\n '[animate.enter]': '\"b-select-content-entering-\" + this.direction()',\n '[animate.leave]': '\"b-select-content-leaving-\" + this.direction()',\n },\n})\nexport class SelectContent implements OnInit {\n /**\n * Reference to the host element.\n */\n el = inject(ElementRef);\n\n /**\n * Injected CDK listbox instance.\n */\n listBox = inject(CdkListbox);\n\n /**\n * Option nodes within the select content.\n */\n readonly options = contentChildren(CdkOption);\n\n /**\n * Key manager for handling option navigation.\n */\n readonly listKeyManager = computed(() =>\n new ActiveDescendantKeyManager(this.options()).withWrap().withVerticalOrientation(),\n );\n\n /**\n * Emits value changes from the listbox.\n */\n changeValueEmitter = output<string[]>();\n\n /**\n * Whether multiple selection is allowed.\n */\n readonly multiple = model<boolean>(false);\n\n /**\n * Injected connected overlay for positioning.\n */\n overlay = inject(ConnectedOverlay);\n\n /**\n * Computed overlay direction.\n */\n readonly direction = computed(() => this.overlay.direction());\n\n ngOnInit(): void {\n this.listBox.useActiveDescendant = true;\n }\n\n /**\n * Emits the value change event from the listbox.\n * @param event - The value change event from the listbox.\n */\n emitValueChange(event: ListboxValueChangeEvent<unknown>): void {\n this.changeValueEmitter.emit(event.value as string[]);\n }\n}\n","import { Component, ElementRef, inject, output, signal } from '@angular/core';\n\n/**\n * A button that acts as the trigger for a select dropdown.\n */\n@Component({\n selector: 'button[b-select-trigger]',\n template: `\n <ng-content />\n <svg\n [class.b-select-triggered]=\"triggered()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-chevron-down-icon lucide-chevron-down\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n `,\n host: {\n '(keydown.arrowUp)': 'buttonClicked.emit()',\n '(keydown.arrowDown)': 'buttonClicked.emit()',\n '(click)': 'buttonClicked.emit()',\n '[disabled]': 'disabled()',\n },\n styles: [\n `\n :host {\n .b-select-triggered {\n transform: rotate(180deg);\n }\n }\n `,\n ],\n})\nexport class SelectTrigger {\n /**\n * Host button element.\n */\n el = inject(ElementRef);\n\n /**\n * Emitted when the trigger is activated (click or key events).\n */\n buttonClicked = output<void>();\n\n /**\n * Whether the trigger is disabled.\n */\n readonly disabled = signal(false);\n\n /**\n * Whether the trigger has been activated to open the select.\n */\n triggered = signal(false);\n}\n","import { Component, ElementRef, inject, input, signal } from '@angular/core';\n\n/**\n * Displays the selected value or a placeholder in a select component.\n */\n@Component({\n selector: 'b-select-value',\n template: ` {{ content() || placeholder() }} `,\n})\nexport class SelectValue {\n /**\n * Host element reference.\n */\n el = inject(ElementRef);\n\n /**\n * Computed selected content to display.\n */\n readonly content = signal<string>('');\n\n /**\n * Placeholder shown when no selection exists.\n */\n readonly placeholder = input<string>('Select an option');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n effect,\n input,\n model,\n OnInit,\n output,\n} from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { ConnectedOverlay } from '../../directives/connected-overlay';\nimport { SelectContent } from './select-content';\nimport { SelectTrigger } from './select-trigger';\nimport { SelectValue } from './select-value';\n\n/**\n * Select component that wires trigger, content and value together using signals.\n */\n@Component({\n selector: 'b-select',\n template: ` <ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-invalid]': 'invalid() ? \"\" : null',\n },\n})\nexport class Select implements OnInit, FormValueControl<string[]> {\n /** Connected overlay instance used to show the dropdown. */\n readonly overlay = contentChild(ConnectedOverlay);\n\n /** Trigger that toggles the select overlay. */\n readonly selectTrigger = contentChild(SelectTrigger);\n\n /** Visual value display component. */\n readonly selectValue = contentChild(SelectValue);\n\n /** Content pane that contains options. */\n readonly selectContent = contentChild(SelectContent);\n\n /** Function to display the selected value(s). */\n readonly displayWith = input.required<(value: string[]) => string>();\n\n /** Whether the select is in an invalid state. */\n readonly invalid = input<boolean>(false);\n\n /** Current value array for the select. */\n readonly value = model<string[]>([]);\n\n /** Emitted when the value changes. */\n readonly valueChange = output<string[]>();\n\n constructor() {\n effect(() => this.updateDisplayedValue());\n effect(() => this.handleContentValueChanges());\n }\n\n ngOnInit(): void {\n this.setupTriggerEvents();\n this.setupOverlayEvents();\n }\n\n /**\n * Update the displayed value when value or displayWith changes.\n */\n private updateDisplayedValue(): void {\n const currentValue = this.value();\n const displayFn = this.displayWith();\n this.selectValue()?.content.set(displayFn(currentValue));\n }\n\n /**\n * Subscribe to content value changes (content is recreated each time overlay opens).\n */\n private handleContentValueChanges(): void {\n const content = this.selectContent();\n if (!content) return;\n\n content.changeValueEmitter.subscribe((value: string[]) => {\n this.value.set(value);\n this.valueChange.emit(value);\n if (!content.listBox.multiple) {\n this.overlay()?.closeOverlay();\n }\n });\n }\n\n /**\n * Wire trigger click to toggle overlay (trigger persists across lifecycle).\n */\n private setupTriggerEvents(): void {\n this.selectTrigger()?.buttonClicked.subscribe(() => {\n this.overlay()?.toggleOverlay();\n });\n }\n\n /**\n * Wire overlay events (overlay persists across lifecycle).\n */\n private setupOverlayEvents(): void {\n const overlay = this.overlay();\n if (!overlay) return;\n\n overlay.attachEmitter.subscribe(() => {\n this.selectTrigger()?.triggered.set(true);\n\n // Update select content width after DOM is rendered\n const selectContentEl = this.selectContent()?.el.nativeElement;\n const triggerEl = this.selectTrigger()?.el.nativeElement;\n if (selectContentEl && triggerEl) {\n selectContentEl.style.minWidth = `${triggerEl.offsetWidth}px`;\n }\n\n if (this.value().length === 0) {\n this.selectContent()?.el.nativeElement.focus();\n return;\n }\n\n this.value().forEach((val) => {\n this.selectContent()?.listBox?.selectValue(val);\n this.selectContent()\n ?.options()\n .find((opt) => opt.value === val)\n ?.focus();\n });\n });\n\n overlay.detachEmitter.subscribe(() => {\n overlay.closeOverlay();\n this.selectTrigger()?.triggered.set(false);\n });\n\n overlay.outsideClickEmitter.subscribe(() => {\n overlay.closeOverlay();\n });\n\n overlay.backdropClickEmitter.subscribe(() => {\n overlay.closeOverlay();\n });\n }\n\n /**\n * Toggle disabled state on the select trigger.\n * @param isDisabled - Whether the control is disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.selectTrigger()?.disabled.set(isDisabled);\n }\n\n /**\n * Update the current value.\n * @param value - New value array to apply.\n */\n setValue(value: string[]): void {\n this.value.set(value);\n this.valueChange.emit(value);\n }\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n/**\n * Directive to automatically focus the select filter input when it is initialized.\n */\n@Directive({\n selector: '[bSelectFilter]',\n host: {\n '(blur)': 'el.nativeElement.focus()',\n },\n})\nexport class SelectFilter implements OnInit {\n /**\n * Element reference used to focus the filter input.\n */\n el = inject(ElementRef);\n\n ngOnInit(): void {\n this.el.nativeElement.focus();\n }\n}\n","import {\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\n\n/**\n * Slide-in sheet panel used for side or bottom panels with optional backdrop.\n */\n@Component({\n selector: 'b-sheet',\n standalone: true,\n imports: [],\n template: `\n <button class=\"close-button\" (click)=\"isOpen.set(false)\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"0.094rem\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"lucide lucide-x\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n <ng-content />\n `,\n host: {\n '[class.left]': 'side() === \"left\"',\n '[class.right]': 'side() === \"right\"',\n '[class.open]': 'isOpen()',\n },\n})\nexport class Sheet {\n /**\n * Whether the sheet is open. Can be two-way bound.\n */\n readonly isOpen = model(false);\n\n /**\n * Side of the sheet panel.\n */\n readonly side = input<'left' | 'right'>('right');\n\n /**\n * Whether the sheet is positioned on the right side.\n */\n readonly isRight = computed(() => this.side() === 'right');\n\n /**\n * Emitted when the sheet is closed.\n */\n closeSheet = output<void>();\n\n /**\n * Reference to the host element.\n */\n private readonly el = inject(ElementRef);\n\n /**\n * Closes the sheet when clicking outside of it.\n */\n @HostListener('document:click', ['$event'])\n closeOnOutsideClick(event: Event): void {\n if (this.isOpen() && !this.el.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n }\n }\n}\n","import { Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideLoader, lucideLoaderCircle } from '@ng-icons/lucide';\n\n/**\n * A spinner component to indicate loading states.\n */\n@Component({\n selector: 'b-spinner',\n imports: [NgIcon],\n providers: [provideIcons({ lucideLoader, lucideLoaderCircle })],\n template: `\n <ng-icon\n [name]=\"type() === 'bars' ? 'lucideLoader' : 'lucideLoaderCircle'\"\n color=\"currentColor\"\n [size]=\"sizeInPx() + 'px'\"\n />\n `,\n styles: [\n `\n :host {\n animation: b-spinner-rotate 1s linear infinite;\n }\n\n @keyframes b-spinner-rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n `,\n ],\n})\nexport class Spinner {\n /**\n * Size variant of the spinner.\n */\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n\n /**\n * Computed pixel size for the icon.\n */\n readonly sizeInPx = computed(() => {\n switch (this.size()) {\n case 'sm':\n return 16;\n case 'md':\n return 20;\n case 'lg':\n return 28;\n default:\n return 20;\n }\n });\n readonly type = input<'bars' | 'circle'>('bars');\n}\n","import { AfterViewInit, Component, ElementRef, inject, output, signal } from '@angular/core';\n\n/**\n * A switch component that toggles between on and off states.\n */\n@Component({\n selector: 'input[b-switch]',\n template: ``,\n host: {\n '[attr.role]': '\"switch\"',\n '[attr.checked]': 'value()',\n '[attr.aria-checked]': 'value()',\n '(click)': 'toggleValue()',\n '(keydown.enter)': 'toggleValue()',\n '(keydown.arrowleft)': 'setValue(false)',\n '(keydown.arrowright)': 'setValue(true)',\n },\n})\nexport class SwitchComponent implements AfterViewInit {\n /**\n * Current boolean state of the switch.\n */\n readonly value = signal<boolean>(false);\n\n /**\n * Output emitted when the switch value changes.\n */\n readonly valueChange = output<boolean>();\n\n /**\n * Host input element.\n */\n el = inject(ElementRef);\n\n ngAfterViewInit(): void {\n this.value.set(this.el.nativeElement.checked);\n }\n\n /**\n * Toggles the switch value.\n */\n toggleValue(): void {\n const newValue = !this.value();\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n\n /**\n * Sets the switch to a specific value.\n * @param newValue The new boolean value to set.\n */\n setValue(newValue: boolean): void {\n this.value.set(newValue);\n this.valueChange.emit(newValue);\n }\n}\n","import { Component, computed, contentChildren, effect, model, output } from '@angular/core';\nimport { Tab } from './tab';\n\n/**\n * Tabs container that manages keyboard navigation and active tab state.\n */\n@Component({\n selector: 'b-tabs',\n imports: [],\n template: ` <ng-content /> `,\n host: {\n '[attr.role]': '\"tablist\"',\n '(keydown.arrowLeft)': 'previousTab()',\n '(keydown.arrowRight)': 'nextTab()',\n },\n})\nexport class Tabs {\n /**\n * Current selected tab value(s).\n */\n readonly value = model<string[]>([]);\n\n /**\n * Output emitted when the tab selection changes.\n */\n readonly valueChange = output<string[]>();\n\n /**\n * Query list of Tab child components.\n */\n readonly tabs = contentChildren(Tab);\n\n /**\n * Computed index of currently active tab.\n */\n readonly activeIndex = computed(() => {\n const currentValue = this.value()[0];\n return this.tabs().findIndex((tab) => tab.value() === currentValue);\n });\n\n constructor() {\n // Sync tab selection with child tabs\n effect(() => {\n const selectedValues = this.value();\n this.tabs().forEach((tab) => {\n tab.setSelected(selectedValues.includes(tab.value()));\n });\n });\n }\n\n /**\n * Move highlight to the previous tab.\n */\n previousTab() {\n const currentIndex = this.activeIndex();\n const tabs = this.tabs();\n if (tabs.length === 0) return;\n\n const newIndex = currentIndex <= 0 ? tabs.length - 1 : currentIndex - 1;\n this.selectTab(tabs[newIndex].value());\n }\n\n /**\n * Move highlight to the next tab.\n */\n nextTab() {\n const currentIndex = this.activeIndex();\n const tabs = this.tabs();\n if (tabs.length === 0) return;\n\n const newIndex = currentIndex >= tabs.length - 1 ? 0 : currentIndex + 1;\n this.selectTab(tabs[newIndex].value());\n }\n\n /**\n * Select a tab by its value.\n */\n selectTab(tabValue: string) {\n this.value.set([tabValue]);\n this.valueChange.emit([tabValue]);\n }\n}\n","import { Component, computed, effect, ElementRef, inject, input, signal } from '@angular/core';\nimport { Tabs } from './tabs';\n\n/**\n * A single tab within a tabs list.\n */\n@Component({\n selector: 'b-tab',\n imports: [],\n template: ` <ng-content /> `,\n host: {\n '[attr.role]': '\"tab\"',\n '[attr.aria-selected]': 'isSelected()',\n '[attr.tabindex]': 'isSelected() ? 0 : -1',\n '(click)': 'onClick()',\n },\n})\nexport class Tab {\n /**\n * Parent tabs container.\n */\n private tabs = inject(Tabs);\n\n /**\n * Host element reference.\n */\n private el = inject(ElementRef);\n\n /**\n * Unique value identifying this tab.\n */\n readonly value = input.required<string>();\n\n /**\n * Internal signal tracking selection state.\n */\n private readonly selected = signal(false);\n\n /**\n * Whether this tab is currently selected.\n */\n readonly isSelected = computed(() => this.selected());\n\n constructor() {\n // Focus this tab when it becomes selected\n effect(() => {\n if (this.isSelected()) {\n this.el.nativeElement.focus();\n }\n });\n }\n\n /**\n * Set the selected state of this tab.\n */\n setSelected(selected: boolean) {\n this.selected.set(selected);\n }\n\n /**\n * Handle click events to select this tab.\n */\n onClick() {\n this.tabs.selectTab(this.value());\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * Wrapper for grouping textarea-related elements vertically.\n */\n@Component({\n selector: 'b-textarea-group',\n template: ` <ng-content /> `,\n})\nexport class TextareaGroup {}\n","import { Component, input } from '@angular/core';\n\n/**\n * A styled textarea component.\n */\n@Component({\n selector: 'textarea[b-textarea]',\n template: ``,\n host: {\n '[attr.data-invalid]': 'invalid() ? \"\" : null',\n },\n})\nexport class Textarea {\n /**\n * Whether the textarea is in an invalid state.\n */\n readonly invalid = input<boolean>(false);\n}\n","import { Directive, OnInit } from '@angular/core';\nimport { Overlay } from '../../directives/overlay-v2/overlay';\n\n/**\n * Tooltip directive that configures an overlay for displaying tooltip content.\n */\n@Directive({\n selector: '[bTooltip]',\n})\nexport class Tooltip extends Overlay implements OnInit {\n ngOnInit() {\n this.setCloseOnTypeEscapeToFalse();\n }\n\n /**\n * Sets the closeOnTypeEscape property to false for tooltips.\n */\n private setCloseOnTypeEscapeToFalse(): void {\n this.closeOnTypeEscape.set(false);\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * Tooltip content that is displayed within a connected overlay.\n */\n@Component({\n selector: 'b-tooltip-content',\n template: ` <ng-content /> `,\n})\nexport class TooltipContent {}\n","import { Directive } from '@angular/core';\nimport { OverlayTrigger } from '../../directives/overlay-v2/overlay-trigger';\n\n/**\n * Trigger directive that emits activation events for tooltips.\n *\n * This directive now extends `OverlayOrigin` so it exposes the same\n * `trigger` and `el` properties expected by `ConnectedOverlay`.\n */\n@Directive({\n selector: '[bTooltipTrigger]',\n host: {\n '(mouseover)': 'active.set(true)',\n '(focus)': 'active.set(true)',\n '(mouseout)': 'active.set(false)',\n '(blur)': 'active.set(false)',\n },\n exportAs: 'bTooltipTrigger',\n})\nexport class TooltipTrigger extends OverlayTrigger {}\n","import { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { Component, contentChild, inject, model, OnInit, output } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideGripVertical } from '@ng-icons/lucide';\nimport { Tree } from './tree';\n\n/**\n * Individual node within a tree structure, supporting drag-and-drop and nested trees.\n */\n@Component({\n selector: 'b-tree-node',\n imports: [CdkDragHandle, NgIcon],\n template: `\n <section>\n @if (!node.disabled) {\n <ng-icon name=\"lucideGripVertical\" size=\"16\" color=\"currentColor\" cdkDragHandle />\n }\n <div\n class=\"projected-content\"\n (click)=\"nestedTree() && handleExtension()\"\n (keydown.enter)=\"nestedTree() && handleExtension()\"\n (keydown.space)=\"nestedTree() && handleExtension()\"\n role=\"button\"\n tabindex=\"0\"\n >\n <ng-content />\n </div>\n @if (nestedTree()) {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n }\n </section>\n @if (nestedTree() && extended()) {\n <div class=\"nested\">\n <ng-content select=\"b-tree\" />\n </div>\n }\n `,\n hostDirectives: [\n {\n directive: CdkDrag,\n inputs: ['cdkDragDisabled: disabled'],\n },\n ],\n providers: [\n provideIcons({\n lucideGripVertical,\n }),\n ],\n})\nexport class TreeNode implements OnInit {\n /**\n * Whether this node is expanded to show nested content.\n */\n readonly extended = model(false);\n\n /**\n * Injected CDK drag instance for this node.\n */\n protected node = inject(CdkDrag);\n\n /**\n * Child nested tree, if present.\n */\n readonly nestedTree = contentChild(Tree);\n\n /**\n * Emitted when a nested tree is closed.\n */\n closeEmitter = output<void>();\n\n ngOnInit(): void {\n this.node.lockAxis = 'y';\n }\n\n /**\n * Enable or disable the underlying CDK drag for this node.\n * @param disabled - Whether the node should be disabled.\n */\n handleNodeDisability(disabled: boolean): void {\n this.node.disabled = disabled;\n }\n\n /**\n * Toggle the node expansion and emit close events when collapsed.\n */\n handleExtension(): void {\n const isExtended = this.extended();\n this.extended.set(!isExtended);\n\n if (isExtended && this.nestedTree()) {\n this.closeEmitter.emit();\n }\n }\n}\n","import { CdkDragDrop, CdkDropList, CdkDropListGroup } from '@angular/cdk/drag-drop';\nimport { Component, contentChildren, effect, inject, input, OnInit, output } from '@angular/core';\nimport { TreeNode } from './tree-node';\n\n/**\n * Root container for a tree structure, enabling drag-and-drop and nested nodes.\n */\n@Component({\n selector: 'b-tree',\n template: ` <ng-content /> `,\n host: {\n '(cdkDropListDropped)': 'dropEmitter.emit($event)',\n },\n hostDirectives: [\n {\n directive: CdkDropList,\n inputs: ['id', 'cdkDropListConnectedTo: connectedTo'],\n outputs: ['cdkDropListDropped'],\n },\n CdkDropListGroup,\n ],\n})\nexport class Tree implements OnInit {\n /**\n * Whether nodes are draggable.\n */\n readonly draggable = input(false);\n\n /**\n * Injected CDK drop list instance for this tree.\n */\n private tree = inject(CdkDropList);\n\n /**\n * Nested TreeNode children.\n */\n private readonly nestedNodes = contentChildren(TreeNode);\n\n /**\n * Whether to close nested nodes recursively when closing a node.\n */\n readonly closeRecursively = input(false);\n\n /**\n * Emitted when a drag-drop operation finishes.\n */\n dropEmitter = output<CdkDragDrop<string[]>>();\n\n constructor() {\n effect(() => {\n this.handleTreeDisability();\n });\n }\n\n ngOnInit(): void {\n if (this.closeRecursively()) this.handleCloseRecursively();\n }\n\n /**\n * Watch draggable state and apply it to CDK drop list and nested nodes.\n */\n private handleTreeDisability(): void {\n const isDisabled = !this.draggable();\n this.tree.disabled = isDisabled;\n\n this.nestedNodes().forEach((node) => {\n node.handleNodeDisability(isDisabled);\n });\n }\n\n /**\n * Subscribe to nested node close events and close children recursively.\n */\n handleCloseRecursively(): void {\n this.nestedNodes().forEach((node) => {\n node.closeEmitter.subscribe(() => {\n this.closeNestedNodes();\n });\n });\n }\n\n /**\n * Close all nested nodes recursively.\n */\n closeNestedNodes(): void {\n this.nestedNodes().forEach((node) => {\n node.extended.set(false);\n node.nestedTree()?.closeNestedNodes();\n });\n }\n}\n","import {\n computed,\n Directive,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n TemplateRef,\n} from '@angular/core';\nimport { DialogData, DialogManager } from '../services/dialog-manager';\n\n/**\n * Directive that registers and controls a dialog template instance.\n *\n * Registers itself in the {@link DialogManager} on init and exposes open/close APIs.\n */\n@Directive({\n selector: '[bDialog]',\n exportAs: 'bDialog',\n host: {\n '(keydown.escape)': 'closeOnEscapeKey() ? close() : null',\n },\n})\nexport class Dialog implements OnInit, OnDestroy {\n /**\n * Unique dialog identifier bound from the `bDialog` attribute.\n */\n readonly id = input.required<string>({ alias: 'bDialog' });\n\n /**\n * Whether the dialog renders a backdrop element.\n *\n * @defaultValue true\n */\n readonly hasBackdrop = input<boolean>(true);\n\n /**\n * Closes the dialog when the user clicks on the backdrop.\n *\n * @defaultValue true\n */\n readonly closeOnBackdropClick = input<boolean>(true);\n\n /**\n * Closes the dialog when the Escape key is pressed while focused inside.\n *\n * @defaultValue true\n */\n readonly closeOnEscapeKey = input<boolean>(true);\n\n /**\n * Restores focus to the previously focused element after the dialog closes.\n *\n * @defaultValue true\n */\n readonly restoreFocus = input<boolean>(true);\n\n /**\n * Delay in milliseconds before the dialog is fully closed (useful for animations).\n *\n * @defaultValue 150\n */\n readonly closeDelay = input<number>(150);\n\n /**\n * Computed dialog data passed to the service containing template and configuration.\n */\n readonly data = computed<DialogData>(() => ({\n template: this.templateRef,\n config: {\n hasBackdrop: this.hasBackdrop(),\n restoreFocus: this.restoreFocus(),\n closeDelay: this.closeDelay(),\n closeOnBackdropClick: this.closeOnBackdropClick(),\n closeOnEscapeKey: this.closeOnEscapeKey(),\n },\n }));\n\n /**\n * Delay in milliseconds before opening the dialog (for entrance timing / animations).\n *\n * @defaultValue 0\n */\n readonly openDelay = input<number>(0);\n\n /**\n * Event emitted after the dialog has been programmatically or automatically closed.\n */\n readonly closed = output<void>();\n\n /**\n * Reference to the dialog service handling registration and state.\n */\n private readonly dialogManager = inject(DialogManager);\n\n /**\n * Template reference representing the dialog content projected when opened.\n */\n private readonly templateRef = inject(TemplateRef<unknown>);\n\n /**\n * Lifecycle hook that registers the dialog with the dialog service.\n */\n ngOnInit() {\n this.dialogManager.registerDialog(this.id(), this.data());\n }\n\n /**\n * Opens the dialog via the dialog service using its identifier.\n */\n open(): void {\n this.dialogManager.openDialog(this.id());\n }\n\n /**\n * Closes the dialog and emits the `closed` output.\n */\n close(): void {\n this.dialogManager.closeDialog(this.id());\n this.closed.emit();\n }\n\n /**\n * Lifecycle hook that removes the dialog from the dialog service registry.\n */\n ngOnDestroy(): void {\n this.dialogManager.removeDialog(this.id());\n }\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, inject } from '@angular/core';\n\n/**\n * Directive to mark an element as a trigger for an overlay.\n * Integrates with Angular CDK's `CdkOverlayOrigin` to provide\n * a reference point for overlay positioning.\n */\n@Directive({\n selector: '[bOverlayOrigin]',\n hostDirectives: [CdkOverlayOrigin],\n exportAs: 'bOverlayOrigin',\n})\nexport class OverlayOrigin {\n /**\n * Reference to the `CdkOverlayOrigin` instance.\n * Used as the origin point for overlay positioning.\n */\n trigger = inject(CdkOverlayOrigin);\n\n /**\n * Reference to the `ElementRef` of the host element.\n * This is used to access the native DOM element.\n */\n el = inject(ElementRef);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { computed, inject, Injectable, signal } from '@angular/core';\n\n/**\n * Dictionary type for translations.\n * Maps language codes to key-value pairs of translation strings.\n */\nexport type TranslationDictionary = Record<string, Record<string, string>>;\n\n/**\n * Service for managing translations and language switching.\n *\n * @remarks\n * - Loads language files via HTTP.\n * - Provides reactive signals for language and dictionary.\n * - Use `translate(key)` to get the translated string for the current language.\n *\n * @example\n * ```typescript\n * translationManager.setLanguage('es');\n * translationManager.translate('home.title');\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class TranslationManager {\n /** Current language code. */\n private readonly _language = signal<string>('en');\n\n /** Dictionary of translations. */\n private readonly _dictionary = signal<TranslationDictionary>({});\n\n /** Reactive signal for current language. */\n readonly language = computed(() => this._language());\n\n /** Reactive signal for current dictionary. */\n readonly dictionary = computed(() => this._dictionary());\n\n /** HttpClient for loading language files. */\n private http = inject(HttpClient);\n\n /**\n * Sets the current language and loads its dictionary.\n * @param lang - Language code (e.g., 'en', 'es').\n */\n setLanguage(lang: string): void {\n this._language.set(lang);\n this.loadLanguage(lang);\n }\n\n /**\n * Sets the translation dictionary directly.\n * @param dict - Translation dictionary object.\n */\n setDictionary(dict: TranslationDictionary): void {\n this._dictionary.set(dict);\n }\n\n /**\n * Translates a key using the current language.\n * @param key - Dot-separated translation key (e.g., 'home.title').\n * @returns Translated string or the key if not found.\n */\n translate(key: string): string {\n const lang = this._language();\n const dict = this._dictionary();\n const value = this.resolveKey(dict[lang], key);\n return value ?? key;\n }\n\n /**\n * Resolves a dot-separated key in an object.\n * @param obj - Object to resolve key in.\n * @param key - Dot-separated key string.\n * @returns Value or undefined if not found.\n */\n private resolveKey(obj: Record<string, unknown>, key: string): string | undefined {\n if (!obj) return undefined;\n return key\n .split('.')\n .reduce(\n (acc: unknown, part: string) =>\n acc && typeof acc === 'object' && acc !== null && part in acc\n ? (acc as Record<string, unknown>)[part]\n : undefined,\n obj as unknown,\n ) as string | undefined;\n }\n\n /**\n * Loads a language file via HTTP and updates the dictionary.\n * @param lang - Language code to load.\n */\n loadLanguage(lang: string): void {\n this.http.get<Record<string, string>>(`/lang/${lang}.json`).subscribe({\n next: (translations) => {\n const dict = { ...this._dictionary() };\n dict[lang] = translations;\n this._dictionary.set(dict);\n },\n error: () => {\n // If loading fails, do not update the dictionary\n },\n });\n }\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform, inject } from '@angular/core';\nimport { TranslationManager } from '../services/translation-manager';\n\n/**\n * Pipe to translate keys using the TranslationManager service.\n */\n@Pipe({\n name: 'translate',\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform {\n /** TranslationManager instance for handling translations */\n private translationManager = inject(TranslationManager);\n\n /** ChangeDetectorRef to trigger change detection on language change */\n private cdr = inject(ChangeDetectorRef);\n\n /** Last language used to detect changes */\n private lastLang: string | undefined;\n\n /**\n * Transforms a translation key into the corresponding translated string.\n * @param key - The translation key to be translated.\n * @returns The translated string.\n */\n transform(key: string): string {\n const lang = this.translationManager.language();\n if (lang !== this.lastLang) {\n this.lastLang = lang;\n this.cdr.markForCheck();\n }\n return this.translationManager.translate(key);\n }\n}\n","import { afterRenderEffect, computed, Injectable, signal } from '@angular/core';\n\n/**\n * Interface that defines the breakpoints for different device types\n */\nexport interface DeviceBreakpoints {\n /** Maximum width for mobile devices in pixels */\n mobile: number;\n /** Maximum width for tablet devices in pixels */\n tablet: number;\n /** Maximum width for desktop devices in pixels */\n desktop: number;\n}\n\n/** Available device types */\nexport type DeviceType = 'mobile' | 'tablet' | 'desktop';\n\n/**\n * Service that handles responsive design functionality\n * Detects current device type based on window width and configurable breakpoints\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ResponsiveManager {\n /** Signal that holds the breakpoint configuration */\n private readonly breakpoints = signal<DeviceBreakpoints>({\n mobile: 640,\n tablet: 1024,\n desktop: 1280,\n });\n\n /** Signal that holds the current window width */\n private readonly windowWidth = signal<number>(0);\n\n /**\n * Computed signal that returns the current device type based on window width\n * @returns The current device type ('mobile', 'tablet', or 'desktop')\n */\n readonly currentDevice = computed<DeviceType>(() => {\n const width = this.windowWidth();\n const breaks = this.breakpoints();\n\n if (width < breaks.mobile) {\n return 'mobile';\n }\n if (width < breaks.tablet) {\n return 'tablet';\n }\n return 'desktop';\n });\n\n constructor() {\n afterRenderEffect(() => {\n this.initializeWindowWidth();\n this.setupResizeListener();\n });\n }\n\n /**\n * Initializes the window width signal with the current window inner width\n * Only called in browser environment\n */\n private initializeWindowWidth(): void {\n this.windowWidth.set(window.innerWidth);\n }\n\n /**\n * Sets up the resize event listener to update window width\n * Only called in browser environment\n */\n private setupResizeListener(): void {\n window.addEventListener('resize', () => {\n this.windowWidth.set(window.innerWidth);\n });\n }\n\n /**\n * Updates the breakpoint configuration\n * @param newBreakpoints - Partial breakpoint configuration to update\n */\n updateBreakpoints(newBreakpoints: Partial<DeviceBreakpoints>): void {\n this.breakpoints.update((current) => ({\n ...current,\n ...newBreakpoints,\n }));\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n inject,\n Injectable,\n PLATFORM_ID,\n Renderer2,\n RendererFactory2,\n signal,\n} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeManager {\n /**\n * Signal representing the current theme.\n *\n * Possible values:\n * - `'light'`: Light theme.\n * - `'dark'`: Dark theme.\n * - `'auto'`: Automatically determine the theme.\n */\n readonly theme = signal<'light' | 'dark' | 'auto'>('auto');\n\n /**\n * Renderer2 instance for manipulating the DOM.\n * Used to set the `data-theme` attribute on the document root (`<html>`).\n */\n private renderer: Renderer2;\n\n /**\n * RendererFactory2 instance for creating Renderer2 instances.\n * Injected to create the renderer.\n */\n private rendererFactory = inject(RendererFactory2);\n\n /**\n * PLATFORM_ID token to identify the platform.\n */\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Flag indicating whether the application is running in a browser.\n */\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n /**\n * Applies the specified theme to the document root (`<html>`).\n *\n * @param theme - The theme to apply. Possible values:\n * - `'light'`: Apply the light theme.\n * - `'dark'`: Apply the dark theme.\n * - `'auto'`: Remove the theme attribute and let the system decide.\n */\n applyTheme(theme: 'light' | 'dark' | 'auto'): void {\n this.theme.set(theme);\n if (theme === 'auto') {\n this.removeTheme();\n return;\n }\n if (this.isBrowser) {\n // Safe DOM access only in browser\n this.renderer.setAttribute(document.documentElement, 'data-theme', theme);\n }\n }\n\n /**\n * Toggles the theme between `'light'` and `'dark'`.\n * If the current theme is `'light'`, it switches to `'dark'`, and vice versa.\n */\n toggleTheme(): void {\n this.applyTheme(this.theme() === 'light' ? 'dark' : 'light');\n }\n\n /**\n * Removes the `data-theme` attribute from the document body.\n * This is used when the theme is set to `'auto'`.\n */\n removeTheme(): void {\n if (this.isBrowser) {\n this.renderer.removeAttribute(document.documentElement, 'data-theme');\n }\n }\n}\n","/*\n * Public API Surface of primitives\n */\n\nexport * from './components/alert/alert';\nexport * from './components/badge/badge';\nexport * from './components/button-group/button-group';\nexport * from './components/button/button';\nexport * from './components/calendar/calendar';\nexport * from './components/card/card';\nexport * from './components/card/card-content';\nexport * from './components/card/card-description';\nexport * from './components/card/card-footer';\nexport * from './components/card/card-header';\nexport * from './components/card/card-title';\nexport * from './components/checkbox/checkbox';\nexport * from './components/command/command-options.component';\nexport * from './components/command/command.component';\nexport * from './components/dialog/dialog-content';\nexport * from './components/drawer/drawer.component';\nexport * from './components/input-group/input-group';\nexport * from './components/input/input';\nexport * from './components/menu/menu';\nexport * from './components/menu/menu-group';\nexport * from './components/menu/menu-item';\nexport * from './components/menu/menu-item-checkbox';\nexport * from './components/menu/menu-item-radio';\nexport * from './components/menu/menu-label';\nexport * from './components/menu/menu-trigger';\nexport * from './components/option/option.component';\nexport * from './components/otp/otp';\nexport * from './components/popover/popover';\nexport * from './components/popover/popover-trigger';\nexport * from './components/range/range';\nexport * from './components/select/select';\nexport * from './components/select/select-content';\nexport * from './components/select/select-filter';\nexport * from './components/select/select-trigger';\nexport * from './components/select/select-value';\nexport * from './components/sheet/sheet';\nexport * from './components/spinner/spinner';\nexport * from './components/switch/switch';\nexport * from './components/tabs/tab';\nexport * from './components/tabs/tabs';\nexport * from './components/textarea-group/textarea-group';\nexport * from './components/textarea/textarea';\nexport * from './components/tooltip/tooltip';\nexport * from './components/tooltip/tooltip-content';\nexport * from './components/tooltip/tooltip-trigger';\nexport * from './components/tree/tree';\nexport * from './components/tree/tree-node';\nexport * from './directives/connected-overlay';\nexport * from './directives/dialog';\nexport * from './directives/overlay-origin';\nexport * from './directives/overlay-v2/overlay';\nexport * from './directives/overlay-v2/overlay-trigger';\nexport * from './pipes/translate.pipe';\nexport * from './services/dialog-manager';\nexport * from './services/responsive-manager';\nexport * from './services/theme-manager';\nexport * from './services/translation-manager';\nexport * from './services/utils';\nexport * from './types/alignment.type';\nexport * from './types/direction.type';\nexport * from './types/position.type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Dialog","i1","Overlay"],"mappings":"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"}
|