@basis-ng/primitives 0.0.1-alpha.113 → 0.0.1-alpha.115
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.
|
@@ -1945,15 +1945,6 @@ const positionsMap = {
|
|
|
1945
1945
|
* padding-based sizing (no fixed heights) and do not expose variant classes.
|
|
1946
1946
|
*/
|
|
1947
1947
|
class Popover extends Overlay {
|
|
1948
|
-
ngOnInit() {
|
|
1949
|
-
this.setScrollStrategyToClose();
|
|
1950
|
-
}
|
|
1951
|
-
/**
|
|
1952
|
-
* Sets the scroll strategy to close the popover when scrolling occurs.
|
|
1953
|
-
*/
|
|
1954
|
-
setScrollStrategyToClose() {
|
|
1955
|
-
this.scrollStrategy.set('close');
|
|
1956
|
-
}
|
|
1957
1948
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Popover, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
1958
1949
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: Popover, isStandalone: true, selector: "[bPopover]", usesInheritance: true, ngImport: i0 });
|
|
1959
1950
|
}
|
|
@@ -1964,40 +1955,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
1964
1955
|
}]
|
|
1965
1956
|
}] });
|
|
1966
1957
|
|
|
1967
|
-
/**
|
|
1968
|
-
* Popover content that is displayed within a connected overlay.
|
|
1969
|
-
* Unlike tooltip content, popover content uses padding and flexible height
|
|
1970
|
-
* so it can contain multiple lines of text and larger blocks.
|
|
1971
|
-
*/
|
|
1972
|
-
class PopoverContent {
|
|
1973
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1974
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: PopoverContent, isStandalone: true, selector: "b-popover-content", ngImport: i0, template: ` <ng-content /> `, isInline: true });
|
|
1975
|
-
}
|
|
1976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverContent, decorators: [{
|
|
1977
|
-
type: Component,
|
|
1978
|
-
args: [{
|
|
1979
|
-
selector: 'b-popover-content',
|
|
1980
|
-
template: ` <ng-content /> `,
|
|
1981
|
-
}]
|
|
1982
|
-
}] });
|
|
1983
|
-
|
|
1984
1958
|
/**
|
|
1985
1959
|
* Directive that marks an element as an overlay trigger and toggles its active state on click.
|
|
1986
1960
|
*/
|
|
1987
1961
|
class OverlayTrigger extends CdkOverlayOrigin {
|
|
1988
1962
|
/**
|
|
1989
|
-
*
|
|
1963
|
+
* Model that indicates whether the trigger is active.
|
|
1990
1964
|
*
|
|
1991
1965
|
* @defaultValue false
|
|
1992
1966
|
*/
|
|
1993
|
-
active =
|
|
1967
|
+
active = model(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
1994
1968
|
/**
|
|
1995
1969
|
* Reference to the `ElementRef` of the host element.
|
|
1996
1970
|
* This is used to access the native DOM element.
|
|
1997
1971
|
*/
|
|
1998
1972
|
el = inject(ElementRef);
|
|
1999
1973
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2000
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
1974
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.6", type: OverlayTrigger, isStandalone: true, selector: "[bOverlayTrigger]", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, exportAs: ["bOverlayTrigger"], usesInheritance: true, hostDirectives: [{ directive: i1$2.CdkOverlayOrigin }], ngImport: i0 });
|
|
2001
1975
|
}
|
|
2002
1976
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, decorators: [{
|
|
2003
1977
|
type: Directive,
|
|
@@ -2006,7 +1980,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
2006
1980
|
hostDirectives: [CdkOverlayOrigin],
|
|
2007
1981
|
exportAs: 'bOverlayTrigger',
|
|
2008
1982
|
}]
|
|
2009
|
-
}] });
|
|
1983
|
+
}], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }, { type: i0.Output, args: ["activeChange"] }] } });
|
|
2010
1984
|
|
|
2011
1985
|
/**
|
|
2012
1986
|
* Trigger directive that emits activation events for popovers.
|
|
@@ -3686,5 +3660,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
3686
3660
|
* Generated bundle index. Do not edit.
|
|
3687
3661
|
*/
|
|
3688
3662
|
|
|
3689
|
-
export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Popover,
|
|
3663
|
+
export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Popover, PopoverTrigger, Range, ResponsiveManager, Select, SelectContent, SelectFilter, SelectTrigger, SelectValue, Sheet, Spinner, SwitchComponent, Tab, Tabs, Textarea, TextareaGroup, ThemeManager, Tooltip, TooltipContent, TooltipTrigger, TranslatePipe, TranslationManager, Tree, TreeNode, Utils };
|
|
3690
3664
|
//# sourceMappingURL=basis-ng-primitives.mjs.map
|
|
@@ -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/components/popover/popover-content.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/tab.ts","../../../libs/primitives/src/components/tabs/tabs.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 forwardRef,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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 (checked()) {\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]': 'checked()',\n '[attr.data-state]': 'checked() ? \"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 '(blur)': 'markTouched()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Checkbox),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Checkbox implements ControlValueAccessor {\n /**\n * Internal checked state for the checkbox.\n */\n private readonly internalValue = signal(false);\n\n /**\n * Public checked state exposed to the template bindings.\n */\n readonly checked = computed(() => this.internalValue());\n\n /**\n * Public two-way binding output emitted on user interaction.\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 * Internal change handler for the checkbox.\n */\n private onChange: (value: boolean) => void = () => undefined;\n\n /**\n * Internal touched handler for the checkbox.\n */\n private onTouched: () => void = () => undefined;\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 next = !this.checked();\n this.setChecked(next, true);\n this.markTouched();\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 * Mark the control as touched.\n */\n markTouched(): void {\n this.onTouched();\n }\n\n /**\n * Write the value to the internal form control.\n * @param value - New value to write.\n */\n writeValue(value: boolean | null): void {\n this.internalValue.set(!!value);\n }\n\n /**\n * Register a change handler for the checkbox.\n * @param fn - Change callback.\n */\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register a touched handler for the checkbox.\n * @param fn - Touched callback.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\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 * Set the checked state internally and emit change events if needed.\n * @param value - New checked value.\n * @param emitChange - Whether to emit change events.\n */\n private setChecked(value: boolean, emitChange: boolean): void {\n const normalized = !!value;\n\n if (this.internalValue() !== normalized) {\n this.internalValue.set(normalized);\n }\n\n if (emitChange) {\n this.onChange(normalized);\n this.valueChange.emit(normalized);\n }\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';\nimport { NgModel } from '@angular/forms';\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 '(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 * 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 /**\n * Optional NgModel integration for template-driven forms.\n */\n private ngModel = inject(NgModel, { optional: true });\n\n ngAfterViewInit(): void {\n const value = this.el.nativeElement.value || this.ngModel?.model;\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 { CommonModule } from '@angular/common';\nimport {\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: [CommonModule],\n template: `\n <div class=\"drag-section\" (pointerdown)=\"startDrag($event)\">\n <div class=\"drag-indicator\"></div>\n </div>\n <ng-content />\n `,\n host: {\n '[class.dragging]': 'isDragging()',\n '[style.transform]': 'transform()',\n '[class.open]': 'isOpen()',\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 * @param event - Click event.\n */\n @HostListener('document:click', ['$event'])\n closeOnOutsideClick(event: Event) {\n if (this.isOpen() && !this.el.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n this.closeSheet.emit();\n }\n }\n\n /**\n * Begin tracking pointer movement for drag-to-dismiss.\n * @param event - Pointer down event.\n */\n startDrag(event: PointerEvent) {\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) {\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\n /**\n * Snap the drawer to open or closed based on threshold.\n */\n snapToOpenOrClose() {\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 forwardRef,\n model,\n output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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 providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Otp),\n multi: true,\n },\n ],\n})\nexport class Otp implements AfterContentInit, ControlValueAccessor {\n /**\n * Number of digit inputs.\n */\n readonly length = computed(() => this.digitInputs().length);\n\n /**\n * Emitted when the OTP value changes.\n */\n readonly otpChange = output<string>();\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 /**\n * Callback invoked when the OTP value changes.\n */\n private onChange: (value: string) => void = () => undefined;\n\n /**\n * Callback invoked when the control is touched.\n */\n private onTouched: () => void = () => undefined;\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.otpChange.emit(otp);\n this.onChange(otp);\n this.onTouched();\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 // ControlValueAccessor implementation\n\n /**\n * Write a value to the OTP inputs.\n * @param value - New OTP string to display.\n */\n writeValue(value: string): void {\n this.values = Array(this.length()).fill('');\n if (value) {\n value\n .slice(0, this.length())\n .split('')\n .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 } else {\n this.resetValues();\n }\n }\n\n /**\n * Register callback invoked when the OTP value changes.\n * @param fn - Callback receiving the OTP string.\n */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register callback invoked when the control is touched.\n * @param fn - Touched callback.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\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\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, OnInit } 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 implements OnInit {\n ngOnInit(): void {\n this.setScrollStrategyToClose();\n }\n\n /**\n * Sets the scroll strategy to close the popover when scrolling occurs.\n */\n private setScrollStrategyToClose(): void {\n this.scrollStrategy.set('close');\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * Popover content that is displayed within a connected overlay.\n * Unlike tooltip content, popover content uses padding and flexible height\n * so it can contain multiple lines of text and larger blocks.\n */\n@Component({\n selector: 'b-popover-content',\n template: ` <ng-content /> `,\n})\nexport class PopoverContent {}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, inject, signal } 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 * Signal that holds whether the overlay trigger is active.\n *\n * @defaultValue false\n */\n active = signal(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 { Component, contentChild, effect, forwardRef, input, OnInit, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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 and implements ControlValueAccessor.\n */\n@Component({\n selector: 'b-select',\n template: ` <ng-content /> `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Select),\n multi: true,\n },\n ],\n})\nexport class Select implements ControlValueAccessor, OnInit {\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>(SelectTrigger);\n\n /** Visual value display component. */\n readonly selectValue = contentChild<SelectValue>(SelectValue);\n\n /** Content pane that contains options. */\n readonly selectContent = contentChild<SelectContent>(SelectContent);\n\n /** Function to display the selected value(s). */\n readonly displayWith = input.required<(value: string[]) => string>();\n\n /** Current value array for the select. */\n readonly value = signal<string[]>([]);\n\n constructor() {\n effect(() => {\n this.handleValueChanges();\n this.handleSelectContentWidth();\n });\n }\n\n /**\n * Subscribe to content value changes and update the form value.\n */\n handleValueChanges(): void {\n this.selectContent()?.changeValueEmitter.subscribe((value: string[]) => {\n this.onChange(value);\n if (!this.selectContent()?.listBox.multiple) {\n this.overlay()?.closeOverlay();\n }\n this.onTouched();\n });\n }\n\n /**\n * Ensure the select content width matches the trigger width when opened.\n */\n handleSelectContentWidth(): void {\n const selectContentEl = this.selectContent()?.el.nativeElement;\n if (selectContentEl) {\n selectContentEl.style.minWidth = `${this.selectTrigger()?.el.nativeElement.offsetWidth}px`;\n }\n }\n\n /**\n * Initialize event wiring for trigger and overlay events.\n */\n ngOnInit(): void {\n this.handleTriggerClicks();\n this.handleOverlayAttached();\n this.handleOverlayDetached();\n this.handleOverlayOutsideClick();\n this.handleOverlayBackdropClick();\n }\n\n /**\n * Wire trigger click to toggle overlay.\n */\n handleTriggerClicks(): void {\n this.selectTrigger()!.buttonClicked.subscribe(() => {\n this.overlay()?.toggleOverlay();\n });\n }\n\n /**\n * Focus selected option when overlay attaches.\n */\n handleOverlayAttached(): void {\n this.overlay()?.attachEmitter.subscribe(() => {\n this.selectTrigger()?.triggered.set(true);\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\n // Focus the selected option\n this.selectContent()\n ?.options()\n .find((opt) => opt.value === val)\n ?.focus();\n });\n });\n }\n\n /**\n * Close overlay when detached.\n */\n handleOverlayDetached(): void {\n this.overlay()?.detachEmitter.subscribe(() => {\n this.overlay()?.closeOverlay();\n this.selectTrigger()?.triggered.set(false);\n });\n }\n\n /**\n * Close overlay when an outside click occurs.\n */\n handleOverlayOutsideClick(): void {\n this.overlay()?.outsideClickEmitter.subscribe(() => {\n this.overlay()?.closeOverlay();\n });\n }\n\n /**\n * Close overlay when backdrop is clicked.\n */\n handleOverlayBackdropClick(): void {\n this.overlay()?.backdropClickEmitter.subscribe(() => {\n this.overlay()?.closeOverlay();\n });\n }\n\n // Control value accessor methods\n\n /**\n * Write a new value to the element.\n * @param value - New value array to set.\n */\n writeValue(value: string[]): void {\n this.setValue(value);\n }\n\n private onChange: (value: string[]) => void = () => undefined;\n\n /**\n * Register a callback to be fired when the value changes.\n * @param fn - Callback that receives the new value.\n */\n registerOnChange(fn: (value: string[]) => void): void {\n this.onChange = (val: string[]) => {\n fn(val);\n this.setValue(val);\n };\n }\n\n private onTouched: () => void = () => undefined;\n\n /**\n * Register a callback to be fired when the control is touched.\n * @param fn - Touch callback.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\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 and displayed content.\n * @param value - New value array to apply.\n */\n setValue(value: string[]): void {\n this.value.set(value);\n this.selectValue()?.content.set(this.displayWith()(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 { CommonModule } from '@angular/common';\nimport {\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: [CommonModule],\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 * Host input element.\n */\n el = inject(ElementRef);\n\n /**\n * Emitted when the value changes.\n */\n valueChange = output<boolean>();\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 { CdkOption } from '@angular/cdk/listbox';\nimport { Component, inject } from '@angular/core';\n\n/**\n * A single tab within a tabs list.\n */\n@Component({\n selector: 'b-tab',\n imports: [],\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkOption,\n inputs: ['cdkOption: value'],\n },\n ],\n})\nexport class Tab {\n /**\n * Underlying CDK option instance used by the tabs list.\n */\n cdkOption = inject(CdkOption);\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { CdkListbox } from '@angular/cdk/listbox';\nimport { Component, computed, contentChildren, inject, OnInit } 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 hostDirectives: [CdkListbox],\n host: {\n '(keydown.arrowLeft)': 'previousTab()',\n '(keydown.arrowUp)': 'previousTab()',\n '(keydown.arrowRight)': 'nextTab()',\n '(keydown.arrowDown)': 'nextTab()',\n },\n})\nexport class Tabs implements OnInit {\n /**\n * Injected CDK listbox used for accessibility behavior.\n */\n cdkListbox = inject(CdkListbox);\n\n /**\n * Query list of Tab child components.\n */\n readonly tabs = contentChildren(Tab);\n\n /**\n * Computed array of underlying CDK options for navigation.\n */\n readonly cdkOptions = computed(() => this.tabs().map((tab) => tab.cdkOption));\n\n /**\n * Keyboard manager that handles arrow navigation between tabs.\n */\n readonly listKeyManager = computed(() =>\n new ActiveDescendantKeyManager(this.cdkOptions()).withWrap().withHorizontalOrientation('ltr'),\n );\n\n /**\n * Move highlight to the previous tab.\n */\n previousTab() {\n this.listKeyManager().setPreviousItemActive();\n }\n\n /**\n * Move highlight to the next tab.\n */\n nextTab() {\n this.listKeyManager().setNextItemActive();\n }\n\n /**\n * Initialize CDK listbox behaviors on component init.\n */\n ngOnInit(): void {\n this.cdkListbox.useActiveDescendant = true;\n this.cdkListbox.orientation = 'horizontal';\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 } from '@angular/core';\n\n/**\n * A styled textarea component.\n */\n@Component({\n selector: 'textarea[b-textarea]',\n template: ``,\n})\nexport class Textarea {}\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-content';\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/tab.ts","../../../libs/primitives/src/components/tabs/tabs.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 forwardRef,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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 (checked()) {\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]': 'checked()',\n '[attr.data-state]': 'checked() ? \"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 '(blur)': 'markTouched()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Checkbox),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Checkbox implements ControlValueAccessor {\n /**\n * Internal checked state for the checkbox.\n */\n private readonly internalValue = signal(false);\n\n /**\n * Public checked state exposed to the template bindings.\n */\n readonly checked = computed(() => this.internalValue());\n\n /**\n * Public two-way binding output emitted on user interaction.\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 * Internal change handler for the checkbox.\n */\n private onChange: (value: boolean) => void = () => undefined;\n\n /**\n * Internal touched handler for the checkbox.\n */\n private onTouched: () => void = () => undefined;\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 next = !this.checked();\n this.setChecked(next, true);\n this.markTouched();\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 * Mark the control as touched.\n */\n markTouched(): void {\n this.onTouched();\n }\n\n /**\n * Write the value to the internal form control.\n * @param value - New value to write.\n */\n writeValue(value: boolean | null): void {\n this.internalValue.set(!!value);\n }\n\n /**\n * Register a change handler for the checkbox.\n * @param fn - Change callback.\n */\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register a touched handler for the checkbox.\n * @param fn - Touched callback.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\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 * Set the checked state internally and emit change events if needed.\n * @param value - New checked value.\n * @param emitChange - Whether to emit change events.\n */\n private setChecked(value: boolean, emitChange: boolean): void {\n const normalized = !!value;\n\n if (this.internalValue() !== normalized) {\n this.internalValue.set(normalized);\n }\n\n if (emitChange) {\n this.onChange(normalized);\n this.valueChange.emit(normalized);\n }\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';\nimport { NgModel } from '@angular/forms';\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 '(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 * 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 /**\n * Optional NgModel integration for template-driven forms.\n */\n private ngModel = inject(NgModel, { optional: true });\n\n ngAfterViewInit(): void {\n const value = this.el.nativeElement.value || this.ngModel?.model;\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 { CommonModule } from '@angular/common';\nimport {\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: [CommonModule],\n template: `\n <div class=\"drag-section\" (pointerdown)=\"startDrag($event)\">\n <div class=\"drag-indicator\"></div>\n </div>\n <ng-content />\n `,\n host: {\n '[class.dragging]': 'isDragging()',\n '[style.transform]': 'transform()',\n '[class.open]': 'isOpen()',\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 * @param event - Click event.\n */\n @HostListener('document:click', ['$event'])\n closeOnOutsideClick(event: Event) {\n if (this.isOpen() && !this.el.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n this.closeSheet.emit();\n }\n }\n\n /**\n * Begin tracking pointer movement for drag-to-dismiss.\n * @param event - Pointer down event.\n */\n startDrag(event: PointerEvent) {\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) {\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\n /**\n * Snap the drawer to open or closed based on threshold.\n */\n snapToOpenOrClose() {\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 forwardRef,\n model,\n output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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 providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Otp),\n multi: true,\n },\n ],\n})\nexport class Otp implements AfterContentInit, ControlValueAccessor {\n /**\n * Number of digit inputs.\n */\n readonly length = computed(() => this.digitInputs().length);\n\n /**\n * Emitted when the OTP value changes.\n */\n readonly otpChange = output<string>();\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 /**\n * Callback invoked when the OTP value changes.\n */\n private onChange: (value: string) => void = () => undefined;\n\n /**\n * Callback invoked when the control is touched.\n */\n private onTouched: () => void = () => undefined;\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.otpChange.emit(otp);\n this.onChange(otp);\n this.onTouched();\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 // ControlValueAccessor implementation\n\n /**\n * Write a value to the OTP inputs.\n * @param value - New OTP string to display.\n */\n writeValue(value: string): void {\n this.values = Array(this.length()).fill('');\n if (value) {\n value\n .slice(0, this.length())\n .split('')\n .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 } else {\n this.resetValues();\n }\n }\n\n /**\n * Register callback invoked when the OTP value changes.\n * @param fn - Callback receiving the OTP string.\n */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n /**\n * Register callback invoked when the control is touched.\n * @param fn - Touched callback.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\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\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 { Component, contentChild, effect, forwardRef, input, OnInit, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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 and implements ControlValueAccessor.\n */\n@Component({\n selector: 'b-select',\n template: ` <ng-content /> `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Select),\n multi: true,\n },\n ],\n})\nexport class Select implements ControlValueAccessor, OnInit {\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>(SelectTrigger);\n\n /** Visual value display component. */\n readonly selectValue = contentChild<SelectValue>(SelectValue);\n\n /** Content pane that contains options. */\n readonly selectContent = contentChild<SelectContent>(SelectContent);\n\n /** Function to display the selected value(s). */\n readonly displayWith = input.required<(value: string[]) => string>();\n\n /** Current value array for the select. */\n readonly value = signal<string[]>([]);\n\n constructor() {\n effect(() => {\n this.handleValueChanges();\n this.handleSelectContentWidth();\n });\n }\n\n /**\n * Subscribe to content value changes and update the form value.\n */\n handleValueChanges(): void {\n this.selectContent()?.changeValueEmitter.subscribe((value: string[]) => {\n this.onChange(value);\n if (!this.selectContent()?.listBox.multiple) {\n this.overlay()?.closeOverlay();\n }\n this.onTouched();\n });\n }\n\n /**\n * Ensure the select content width matches the trigger width when opened.\n */\n handleSelectContentWidth(): void {\n const selectContentEl = this.selectContent()?.el.nativeElement;\n if (selectContentEl) {\n selectContentEl.style.minWidth = `${this.selectTrigger()?.el.nativeElement.offsetWidth}px`;\n }\n }\n\n /**\n * Initialize event wiring for trigger and overlay events.\n */\n ngOnInit(): void {\n this.handleTriggerClicks();\n this.handleOverlayAttached();\n this.handleOverlayDetached();\n this.handleOverlayOutsideClick();\n this.handleOverlayBackdropClick();\n }\n\n /**\n * Wire trigger click to toggle overlay.\n */\n handleTriggerClicks(): void {\n this.selectTrigger()!.buttonClicked.subscribe(() => {\n this.overlay()?.toggleOverlay();\n });\n }\n\n /**\n * Focus selected option when overlay attaches.\n */\n handleOverlayAttached(): void {\n this.overlay()?.attachEmitter.subscribe(() => {\n this.selectTrigger()?.triggered.set(true);\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\n // Focus the selected option\n this.selectContent()\n ?.options()\n .find((opt) => opt.value === val)\n ?.focus();\n });\n });\n }\n\n /**\n * Close overlay when detached.\n */\n handleOverlayDetached(): void {\n this.overlay()?.detachEmitter.subscribe(() => {\n this.overlay()?.closeOverlay();\n this.selectTrigger()?.triggered.set(false);\n });\n }\n\n /**\n * Close overlay when an outside click occurs.\n */\n handleOverlayOutsideClick(): void {\n this.overlay()?.outsideClickEmitter.subscribe(() => {\n this.overlay()?.closeOverlay();\n });\n }\n\n /**\n * Close overlay when backdrop is clicked.\n */\n handleOverlayBackdropClick(): void {\n this.overlay()?.backdropClickEmitter.subscribe(() => {\n this.overlay()?.closeOverlay();\n });\n }\n\n // Control value accessor methods\n\n /**\n * Write a new value to the element.\n * @param value - New value array to set.\n */\n writeValue(value: string[]): void {\n this.setValue(value);\n }\n\n private onChange: (value: string[]) => void = () => undefined;\n\n /**\n * Register a callback to be fired when the value changes.\n * @param fn - Callback that receives the new value.\n */\n registerOnChange(fn: (value: string[]) => void): void {\n this.onChange = (val: string[]) => {\n fn(val);\n this.setValue(val);\n };\n }\n\n private onTouched: () => void = () => undefined;\n\n /**\n * Register a callback to be fired when the control is touched.\n * @param fn - Touch callback.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\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 and displayed content.\n * @param value - New value array to apply.\n */\n setValue(value: string[]): void {\n this.value.set(value);\n this.selectValue()?.content.set(this.displayWith()(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 { CommonModule } from '@angular/common';\nimport {\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: [CommonModule],\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 * Host input element.\n */\n el = inject(ElementRef);\n\n /**\n * Emitted when the value changes.\n */\n valueChange = output<boolean>();\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 { CdkOption } from '@angular/cdk/listbox';\nimport { Component, inject } from '@angular/core';\n\n/**\n * A single tab within a tabs list.\n */\n@Component({\n selector: 'b-tab',\n imports: [],\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: CdkOption,\n inputs: ['cdkOption: value'],\n },\n ],\n})\nexport class Tab {\n /**\n * Underlying CDK option instance used by the tabs list.\n */\n cdkOption = inject(CdkOption);\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { CdkListbox } from '@angular/cdk/listbox';\nimport { Component, computed, contentChildren, inject, OnInit } 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 hostDirectives: [CdkListbox],\n host: {\n '(keydown.arrowLeft)': 'previousTab()',\n '(keydown.arrowUp)': 'previousTab()',\n '(keydown.arrowRight)': 'nextTab()',\n '(keydown.arrowDown)': 'nextTab()',\n },\n})\nexport class Tabs implements OnInit {\n /**\n * Injected CDK listbox used for accessibility behavior.\n */\n cdkListbox = inject(CdkListbox);\n\n /**\n * Query list of Tab child components.\n */\n readonly tabs = contentChildren(Tab);\n\n /**\n * Computed array of underlying CDK options for navigation.\n */\n readonly cdkOptions = computed(() => this.tabs().map((tab) => tab.cdkOption));\n\n /**\n * Keyboard manager that handles arrow navigation between tabs.\n */\n readonly listKeyManager = computed(() =>\n new ActiveDescendantKeyManager(this.cdkOptions()).withWrap().withHorizontalOrientation('ltr'),\n );\n\n /**\n * Move highlight to the previous tab.\n */\n previousTab() {\n this.listKeyManager().setPreviousItemActive();\n }\n\n /**\n * Move highlight to the next tab.\n */\n nextTab() {\n this.listKeyManager().setNextItemActive();\n }\n\n /**\n * Initialize CDK listbox behaviors on component init.\n */\n ngOnInit(): void {\n this.cdkListbox.useActiveDescendant = true;\n this.cdkListbox.orientation = 'horizontal';\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 } from '@angular/core';\n\n/**\n * A styled textarea component.\n */\n@Component({\n selector: 'textarea[b-textarea]',\n template: ``,\n})\nexport class Textarea {}\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/index.d.ts
CHANGED
|
@@ -737,18 +737,18 @@ declare class OtpDigitDirective {
|
|
|
737
737
|
*/
|
|
738
738
|
declare class OverlayTrigger extends CdkOverlayOrigin {
|
|
739
739
|
/**
|
|
740
|
-
*
|
|
740
|
+
* Model that indicates whether the trigger is active.
|
|
741
741
|
*
|
|
742
742
|
* @defaultValue false
|
|
743
743
|
*/
|
|
744
|
-
active: i0.
|
|
744
|
+
active: i0.ModelSignal<boolean>;
|
|
745
745
|
/**
|
|
746
746
|
* Reference to the `ElementRef` of the host element.
|
|
747
747
|
* This is used to access the native DOM element.
|
|
748
748
|
*/
|
|
749
749
|
el: ElementRef<any>;
|
|
750
750
|
static ɵfac: i0.ɵɵFactoryDeclaration<OverlayTrigger, never>;
|
|
751
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<OverlayTrigger, "[bOverlayTrigger]", ["bOverlayTrigger"], {}, {}, never, never, true, [{ directive: typeof i1$2.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
|
|
751
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<OverlayTrigger, "[bOverlayTrigger]", ["bOverlayTrigger"], { "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; }, never, never, true, [{ directive: typeof i1$2.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
|
|
752
752
|
}
|
|
753
753
|
|
|
754
754
|
/**
|
|
@@ -859,26 +859,11 @@ declare class Overlay {
|
|
|
859
859
|
* Popovers differ from tooltips in that they allow multi-line content and use
|
|
860
860
|
* padding-based sizing (no fixed heights) and do not expose variant classes.
|
|
861
861
|
*/
|
|
862
|
-
declare class Popover extends Overlay
|
|
863
|
-
ngOnInit(): void;
|
|
864
|
-
/**
|
|
865
|
-
* Sets the scroll strategy to close the popover when scrolling occurs.
|
|
866
|
-
*/
|
|
867
|
-
private setScrollStrategyToClose;
|
|
862
|
+
declare class Popover extends Overlay {
|
|
868
863
|
static ɵfac: i0.ɵɵFactoryDeclaration<Popover, never>;
|
|
869
864
|
static ɵdir: i0.ɵɵDirectiveDeclaration<Popover, "[bPopover]", never, {}, {}, never, never, true, never>;
|
|
870
865
|
}
|
|
871
866
|
|
|
872
|
-
/**
|
|
873
|
-
* Popover content that is displayed within a connected overlay.
|
|
874
|
-
* Unlike tooltip content, popover content uses padding and flexible height
|
|
875
|
-
* so it can contain multiple lines of text and larger blocks.
|
|
876
|
-
*/
|
|
877
|
-
declare class PopoverContent {
|
|
878
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PopoverContent, never>;
|
|
879
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PopoverContent, "b-popover-content", never, {}, {}, never, ["*"], true, never>;
|
|
880
|
-
}
|
|
881
|
-
|
|
882
867
|
/**
|
|
883
868
|
* Trigger directive that emits activation events for popovers.
|
|
884
869
|
* Exposes the same `trigger` and `el` properties expected by `ConnectedOverlay`.
|
|
@@ -1753,5 +1738,5 @@ type Alignment = 'left' | 'center' | 'right' | 'top' | 'bottom';
|
|
|
1753
1738
|
|
|
1754
1739
|
type Direction = 'top' | 'bottom' | 'left' | 'right';
|
|
1755
1740
|
|
|
1756
|
-
export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Popover,
|
|
1741
|
+
export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Popover, PopoverTrigger, Range, ResponsiveManager, Select, SelectContent, SelectFilter, SelectTrigger, SelectValue, Sheet, Spinner, SwitchComponent, Tab, Tabs, Textarea, TextareaGroup, ThemeManager, Tooltip, TooltipContent, TooltipTrigger, TranslatePipe, TranslationManager, Tree, TreeNode, Utils };
|
|
1757
1742
|
export type { Alignment, DeviceBreakpoints, DeviceType, DialogConfig, DialogData, Direction, Position, TranslationDictionary };
|
package/package.json
CHANGED