@basis-ng/primitives 0.0.1-alpha.124 → 0.0.1-alpha.126
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.
|
@@ -1403,10 +1403,14 @@ class Otp {
|
|
|
1403
1403
|
* Emitted when the OTP value changes.
|
|
1404
1404
|
*/
|
|
1405
1405
|
valueChange = output();
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1406
|
+
invalid = model(false, ...(ngDevMode ? [{ debugName: "invalid" }] : []));
|
|
1407
|
+
dirty = model(false, ...(ngDevMode ? [{ debugName: "dirty" }] : []));
|
|
1408
|
+
constructor() {
|
|
1409
|
+
effect(() => {
|
|
1410
|
+
console.log('OTP invalid state changed:', this.invalid());
|
|
1411
|
+
console.log('OTP dirty state changed:', this.dirty());
|
|
1412
|
+
});
|
|
1413
|
+
}
|
|
1410
1414
|
/**
|
|
1411
1415
|
* Query list of digit input directives.
|
|
1412
1416
|
*/
|
|
@@ -1533,7 +1537,7 @@ class Otp {
|
|
|
1533
1537
|
});
|
|
1534
1538
|
}
|
|
1535
1539
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: Otp, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1536
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.0", type: Otp, isStandalone: true, selector: "b-otp", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null },
|
|
1540
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.0", type: Otp, isStandalone: true, selector: "b-otp", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, dirty: { classPropertyName: "dirty", publicName: "dirty", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", valueChange: "valueChange", invalid: "invalidChange", dirty: "dirtyChange", disabled: "disabledChange" }, queries: [{ propertyName: "digitInputs", predicate: OtpDigitDirective, isSignal: true }], ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
1537
1541
|
}
|
|
1538
1542
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: Otp, decorators: [{
|
|
1539
1543
|
type: Component,
|
|
@@ -1541,10 +1545,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
|
|
|
1541
1545
|
selector: 'b-otp',
|
|
1542
1546
|
template: ` <ng-content /> `,
|
|
1543
1547
|
host: {
|
|
1544
|
-
|
|
1548
|
+
// '[attr.data-invalid]': 'invalid() && dirty() ? "" : null',
|
|
1545
1549
|
},
|
|
1546
1550
|
}]
|
|
1547
|
-
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], digitInputs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => OtpDigitDirective), { isSignal: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }] } });
|
|
1551
|
+
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }, { type: i0.Output, args: ["invalidChange"] }], dirty: [{ type: i0.Input, args: [{ isSignal: true, alias: "dirty", required: false }] }, { type: i0.Output, args: ["dirtyChange"] }], digitInputs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => OtpDigitDirective), { isSignal: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }] } });
|
|
1548
1552
|
class OtpDigitDirective {
|
|
1549
1553
|
/**
|
|
1550
1554
|
* Host input element for the OTP digit.
|
|
@@ -1 +1 @@
|
|
|
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/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 { 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() ? \"\" : 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 is in an invalid state.\n */\n readonly invalid = input<boolean>(false);\n\n /**\n * Query list of digit input directives.\n */\n readonly digitInputs = contentChildren(OtpDigitDirective);\n\n private values: string[] = [];\n\n /**\n * Whether the OTP inputs are disabled.\n */\n readonly disabled = model(false);\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/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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"}
|
|
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/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 { 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 effect,\n ElementRef,\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 invalid = model<boolean>(false);\n dirty = model<boolean>(false);\n\n constructor() {\n effect(() => {\n console.log('OTP invalid state changed:', this.invalid());\n console.log('OTP dirty state changed:', this.dirty());\n });\n }\n\n /**\n * Query list of digit input directives.\n */\n readonly digitInputs = contentChildren(OtpDigitDirective);\n\n private values: string[] = [];\n\n /**\n * Whether the OTP inputs are disabled.\n */\n readonly disabled = model(false);\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/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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"}
|
package/package.json
CHANGED
|
@@ -629,10 +629,9 @@ declare class Otp implements AfterContentInit, FormValueControl<string> {
|
|
|
629
629
|
* Emitted when the OTP value changes.
|
|
630
630
|
*/
|
|
631
631
|
readonly valueChange: _angular_core.OutputEmitterRef<string>;
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
632
|
+
invalid: _angular_core.ModelSignal<boolean>;
|
|
633
|
+
dirty: _angular_core.ModelSignal<boolean>;
|
|
634
|
+
constructor();
|
|
636
635
|
/**
|
|
637
636
|
* Query list of digit input directives.
|
|
638
637
|
*/
|
|
@@ -679,7 +678,7 @@ declare class Otp implements AfterContentInit, FormValueControl<string> {
|
|
|
679
678
|
*/
|
|
680
679
|
setValue(value: string): void;
|
|
681
680
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Otp, never>;
|
|
682
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Otp, "b-otp", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "valueChange": "valueChange"; "disabled": "disabledChange"; }, ["digitInputs"], ["*"], true, never>;
|
|
681
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Otp, "b-otp", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "valueChange": "valueChange"; "invalid": "invalidChange"; "dirty": "dirtyChange"; "disabled": "disabledChange"; }, ["digitInputs"], ["*"], true, never>;
|
|
683
682
|
}
|
|
684
683
|
declare class OtpDigitDirective {
|
|
685
684
|
/**
|