@egose/shadcn-theme-ng 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/fesm2022/autocomplete.mjs +26 -7
- package/autocomplete/fesm2022/autocomplete.mjs.map +1 -1
- package/autocomplete/index.d.ts +5 -1
- package/badge/fesm2022/badge.mjs +17 -26
- package/badge/fesm2022/badge.mjs.map +1 -1
- package/badge/index.d.ts +9 -9
- package/basic-alert/fesm2022/basic-alert.mjs +15 -23
- package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
- package/basic-alert/index.d.ts +7 -7
- package/button/fesm2022/button.mjs +41 -61
- package/button/fesm2022/button.mjs.map +1 -1
- package/button/index.d.ts +19 -19
- package/exports.json +1 -1
- package/form-searchable-multiselect/README.md +64 -0
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +124 -0
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -0
- package/form-searchable-multiselect/index.d.ts +28 -0
- package/package.json +9 -1
- package/searchable-multiselect/README.md +64 -0
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +221 -0
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -0
- package/searchable-multiselect/index.d.ts +50 -0
|
@@ -14,7 +14,7 @@ import { BrnDialog } from '@spartan-ng/brain/dialog';
|
|
|
14
14
|
|
|
15
15
|
class HlmAutocompleteEmpty {
|
|
16
16
|
userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
|
|
17
|
-
_computedClass = computed(() => hlm('tw:py-
|
|
17
|
+
_computedClass = computed(() => hlm('tw:py-2 tw:text-center tw:text-sm', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
18
18
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
19
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteEmpty, isStandalone: true, selector: "[hlmAutocompleteEmpty]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
|
|
20
20
|
}
|
|
@@ -58,7 +58,7 @@ class HlmAutocompleteItem {
|
|
|
58
58
|
/** The user defined class */
|
|
59
59
|
userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
|
|
60
60
|
/** The styles to apply */
|
|
61
|
-
_computedClass = computed(() => hlm('tw:data-[selected]:bg-accent tw:data-[selected
|
|
61
|
+
_computedClass = computed(() => hlm('tw:data-[selected]:bg-accent tw:data-[selected]:text-accent-foreground tw:[&>ng-icon]:text-muted-foreground tw:outline-hidden tw:relative tw:flex tw:w-full tw:cursor-default tw:select-none tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:data-[disabled]:pointer-events-none tw:data-[hidden]:hidden tw:data-[disabled]:opacity-50 tw:[&>ng-icon]:pointer-events-none tw:[&>ng-icon]:shrink-0 tw:[&>ng-icon]:text-base', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
62
62
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
63
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteItem, isStandalone: true, selector: "button[hlm-autocomplete-item]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAutocompleteItem, inputs: ["value", "value", "disabled", "disabled", "id", "id"], outputs: ["selected", "selected"] }], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
64
64
|
}
|
|
@@ -111,7 +111,7 @@ class HlmAutocompleteSearch {
|
|
|
111
111
|
/** The user defined class */
|
|
112
112
|
userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
|
|
113
113
|
/** The styles to apply */
|
|
114
|
-
_computedClass = computed(() => hlm('tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/
|
|
114
|
+
_computedClass = computed(() => hlm('tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/10 tw:flex tw:h-9 tw:min-w-0 tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-3 tw:focus-within:ring-[3px] tw:[&>_ng-icon]:flex-none tw:[&>_ng-icon]:opacity-50', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
115
115
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocompleteSearch, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
116
116
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmAutocompleteSearch, isStandalone: true, selector: "hlm-autocomplete-search", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [provideHlmIconConfig({ size: 'sm' })], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
117
117
|
}
|
|
@@ -203,6 +203,7 @@ class HlmAutocomplete {
|
|
|
203
203
|
_brnPopover = viewChild.required(BrnPopover);
|
|
204
204
|
_inputRef = viewChild.required('input', { read: ElementRef });
|
|
205
205
|
_elementRef = inject((ElementRef));
|
|
206
|
+
onSelect = input(...(ngDevMode ? [undefined, { debugName: "onSelect" }] : []));
|
|
206
207
|
/** The user defined class */
|
|
207
208
|
userClass = input('', ...(ngDevMode ? [{ debugName: "userClass", alias: 'class' }] : [{ alias: 'class' }]));
|
|
208
209
|
_computedClass = computed(() => hlm('tw:block tw:w-full', this.userClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
@@ -253,6 +254,9 @@ class HlmAutocomplete {
|
|
|
253
254
|
this._brnPopover().close();
|
|
254
255
|
}
|
|
255
256
|
}
|
|
257
|
+
_click() {
|
|
258
|
+
this._toggleOptions();
|
|
259
|
+
}
|
|
256
260
|
_openPopover() {
|
|
257
261
|
if (this._search() || this.filteredOptions().length > 0) {
|
|
258
262
|
// only open if there's a search term or options to show
|
|
@@ -286,9 +290,22 @@ class HlmAutocomplete {
|
|
|
286
290
|
this._onChange?.(option);
|
|
287
291
|
this.valueChange.emit(option);
|
|
288
292
|
const searchValue = this.transformValueToSearch()(option);
|
|
289
|
-
this.
|
|
290
|
-
|
|
291
|
-
|
|
293
|
+
if (this.onSelect()) {
|
|
294
|
+
this.onSelect()?.(searchValue);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
this._search.set(searchValue);
|
|
298
|
+
this.searchChange.emit(searchValue);
|
|
299
|
+
this._setPopoverState('closed');
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
clearText() {
|
|
303
|
+
this._inputRef().nativeElement.value = '';
|
|
304
|
+
this._search.set('');
|
|
305
|
+
this.searchChange.emit('');
|
|
306
|
+
}
|
|
307
|
+
setPopoverState(state) {
|
|
308
|
+
this._setPopoverState(state);
|
|
292
309
|
}
|
|
293
310
|
/** CONTROL VALUE ACCESSOR */
|
|
294
311
|
writeValue(value) {
|
|
@@ -304,7 +321,7 @@ class HlmAutocomplete {
|
|
|
304
321
|
this._disabled.set(isDisabled);
|
|
305
322
|
}
|
|
306
323
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
307
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmAutocomplete, isStandalone: true, selector: "hlm-autocomplete", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, autocompleteListClass: { classPropertyName: "autocompleteListClass", publicName: "autocompleteListClass", isSignal: true, isRequired: false, transformFunction: null }, autocompleteEmptyClass: { classPropertyName: "autocompleteEmptyClass", publicName: "autocompleteEmptyClass", isSignal: true, isRequired: false, transformFunction: null }, filteredOptions: { classPropertyName: "filteredOptions", publicName: "filteredOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, transformValueToSearch: { classPropertyName: "transformValueToSearch", publicName: "transformValueToSearch", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderText: { classPropertyName: "searchPlaceholderText", publicName: "searchPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelToggleButton: { classPropertyName: "ariaLabelToggleButton", publicName: "ariaLabelToggleButton", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", searchChange: "searchChange" }, host: { properties: { "class": "_computedClass()" } }, providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })], viewQueries: [{ propertyName: "_brnPopover", first: true, predicate: BrnPopover, descendants: true, isSignal: true }, { propertyName: "_inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
|
|
324
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: HlmAutocomplete, isStandalone: true, selector: "hlm-autocomplete", inputs: { onSelect: { classPropertyName: "onSelect", publicName: "onSelect", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, autocompleteListClass: { classPropertyName: "autocompleteListClass", publicName: "autocompleteListClass", isSignal: true, isRequired: false, transformFunction: null }, autocompleteEmptyClass: { classPropertyName: "autocompleteEmptyClass", publicName: "autocompleteEmptyClass", isSignal: true, isRequired: false, transformFunction: null }, filteredOptions: { classPropertyName: "filteredOptions", publicName: "filteredOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, transformValueToSearch: { classPropertyName: "transformValueToSearch", publicName: "transformValueToSearch", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholderText: { classPropertyName: "searchPlaceholderText", publicName: "searchPlaceholderText", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelToggleButton: { classPropertyName: "ariaLabelToggleButton", publicName: "ariaLabelToggleButton", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", searchChange: "searchChange" }, host: { properties: { "class": "_computedClass()" } }, providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })], viewQueries: [{ propertyName: "_brnPopover", first: true, predicate: BrnPopover, descendants: true, isSignal: true }, { propertyName: "_inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
|
|
308
325
|
<brn-popover
|
|
309
326
|
#popover
|
|
310
327
|
align="start"
|
|
@@ -327,6 +344,7 @@ class HlmAutocomplete {
|
|
|
327
344
|
[value]="_search()"
|
|
328
345
|
(input)="_onSearchChanged($event)"
|
|
329
346
|
(keydown.arrowDown)="_openPopover()"
|
|
347
|
+
(click)="_click()"
|
|
330
348
|
/>
|
|
331
349
|
|
|
332
350
|
<button
|
|
@@ -421,6 +439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
421
439
|
[value]="_search()"
|
|
422
440
|
(input)="_onSearchChanged($event)"
|
|
423
441
|
(keydown.arrowDown)="_openPopover()"
|
|
442
|
+
(click)="_click()"
|
|
424
443
|
/>
|
|
425
444
|
|
|
426
445
|
<button
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.mjs","sources":["../../../projects/autocomplete/src/lib/autocomplete-empty.ts","../../../projects/autocomplete/src/lib/autocomplete-group.ts","../../../projects/autocomplete/src/lib/autocomplete-item.ts","../../../projects/autocomplete/src/lib/autocomplete-list.ts","../../../projects/autocomplete/src/lib/autocomplete-search.ts","../../../projects/autocomplete/src/lib/autocomplete-search-input.ts","../../../projects/autocomplete/src/lib/autocomplete-trigger.ts","../../../projects/autocomplete/src/lib/autocomplete.token.ts","../../../projects/autocomplete/src/lib/autocomplete.ts","../../../projects/autocomplete/src/public-api.ts","../../../projects/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAutocompleteEmpty]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocompleteEmpty {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:py-6 tw:text-center tw:text-sm', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteGroup } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-group',\n template: '<ng-content />',\n hostDirectives: [\n {\n directive: BrnAutocompleteGroup,\n inputs: ['id'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteGroup {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:text-foreground tw:block tw:overflow-hidden tw:p-1', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteItem } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'button[hlm-autocomplete-item]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: BrnAutocompleteItem,\n inputs: ['value', 'disabled', 'id'],\n outputs: ['selected'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteItem {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:data-[selected]:bg-accent tw:data-[selected=true]:text-accent-foreground tw:[&>ng-icon]:text-muted-foreground tw:outline-hidden tw:relative tw:flex tw:w-full tw:cursor-default tw:select-none tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:data-[disabled]:pointer-events-none tw:data-[hidden]:hidden tw:data-[disabled]:opacity-50 tw:[&>ng-icon]:pointer-events-none tw:[&>ng-icon]:shrink-0 tw:[&>ng-icon]:text-base',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteList } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-list',\n template: '<ng-content />',\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [\n {\n directive: BrnAutocompleteList,\n inputs: ['id'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteList {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:block tw:max-h-60 tw:overflow-y-auto tw:overflow-x-hidden', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-autocomplete-search',\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n providers: [provideHlmIconConfig({ size: 'sm' })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearch {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/30 tw:flex tw:h-9 tw:min-w-0 tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-3 tw:focus-within:ring-[3px] tw:[&>_ng-icon]:flex-none tw:[&>_ng-icon]:opacity-50',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteSearchInput } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'input[hlm-autocomplete-search-input]',\n template: '',\n hostDirectives: [{ directive: BrnAutocompleteSearchInput, inputs: ['value'] }],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearchInput {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:placeholder:text-muted-foreground tw:flex tw:h-9 tw:w-full tw:bg-transparent tw:py-1 tw:text-base tw:outline-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:md:text-sm',\n this.userClass(),\n ),\n );\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n selector: '[hlmAutocompleteTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class HlmAutocompleteTrigger {\n private readonly _host = inject(ElementRef, { host: true });\n\n private readonly _brnDialog = inject(BrnDialog, { optional: true });\n\n /** Whether the trigger is disabled. */\n public readonly disabledTrigger = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n if (!this._brnDialog) return;\n\n this._brnDialog.mutableAttachTo.set(this._host.nativeElement);\n }\n\n open() {\n if (this.disabledTrigger()) return;\n\n this._brnDialog?.open();\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport type TransformValueToString<T> = (value: T) => string;\n\nexport interface HlmAutocompleteConfig<T> {\n transformValueToSearch: TransformValueToString<T>;\n}\n\nfunction getDefaultConfig<T>(): HlmAutocompleteConfig<T> {\n return {\n transformValueToSearch: (value: T) => (typeof value === 'string' ? value : String(value)),\n };\n}\n\nconst HlmAutocompleteConfigToken = new InjectionToken<HlmAutocompleteConfig<unknown>>('HlmAutocompleteConfig');\n\nexport function provideHlmAutocompleteConfig<T>(config: Partial<HlmAutocompleteConfig<T>>): ValueProvider {\n return { provide: HlmAutocompleteConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmAutocompleteConfig<T>(): HlmAutocompleteConfig<T> {\n return inject(HlmAutocompleteConfigToken, { optional: true }) ?? getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideSearch } from '@ng-icons/lucide';\nimport { BrnAutocomplete, BrnAutocompleteEmpty } from '@spartan-ng/brain/autocomplete';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent } from '@spartan-ng/brain/popover';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmAutocompleteEmpty } from './autocomplete-empty';\nimport { HlmAutocompleteGroup } from './autocomplete-group';\nimport { HlmAutocompleteItem } from './autocomplete-item';\nimport { HlmAutocompleteList } from './autocomplete-list';\nimport { HlmAutocompleteSearch } from './autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './autocomplete-trigger';\nimport { injectHlmAutocompleteConfig } from './autocomplete.token';\n\nexport const HLM_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmAutocomplete),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-autocomplete',\n imports: [\n NgTemplateOutlet,\n\n BrnPopover,\n BrnPopoverContent,\n HlmPopoverContent,\n\n BrnAutocomplete,\n BrnAutocompleteEmpty,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n\n NgIcon,\n HlmIcon,\n ],\n providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })],\n template: `\n <brn-popover\n #popover\n align=\"start\"\n autoFocus=\"first-heading\"\n sideOffset=\"5\"\n closeDelay=\"100\"\n [closeOnOutsidePointerEvents]=\"true\"\n >\n <div brnAutocomplete>\n <hlm-autocomplete-search hlmAutocompleteTrigger [disabledTrigger]=\"!_search()\">\n <ng-icon name=\"lucideSearch\" hlm />\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n hlm-autocomplete-search-input\n [id]=\"inputId()\"\n [placeholder]=\"searchPlaceholderText()\"\n [disabled]=\"_disabled()\"\n [value]=\"_search()\"\n (input)=\"_onSearchChanged($event)\"\n (keydown.arrowDown)=\"_openPopover()\"\n />\n\n <button\n class=\"tw:flex tw:items-center tw:justify-center tw:outline-none tw:disabled:cursor-not-allowed tw:[&>_ng-icon]:opacity-50\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabelToggleButton()\"\n [disabled]=\"_disabled()\"\n (click)=\"_toggleOptions()\"\n >\n <ng-icon name=\"lucideChevronDown\" hlm />\n </button>\n </hlm-autocomplete-search>\n\n <div\n *brnPopoverContent=\"let ctx\"\n hlmPopoverContent\n class=\"tw:p-0\"\n [style.width.px]=\"_elementRef.nativeElement.offsetWidth\"\n >\n <hlm-autocomplete-list\n [class]=\"_computedAutocompleteListClass()\"\n [class.hidden]=\"filteredOptions().length === 0\"\n >\n <hlm-autocomplete-group>\n @for (option of filteredOptions(); track option) {\n <button hlm-autocomplete-item [value]=\"option\" (selected)=\"_optionSelected(option)\">\n @if (optionTemplate(); as optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\" />\n } @else {\n {{ option }}\n }\n </button>\n }\n </hlm-autocomplete-group>\n </hlm-autocomplete-list>\n\n <div *brnAutocompleteEmpty hlmAutocompleteEmpty [class]=\"_computedAutocompleteEmptyClass()\">\n @if (loading()) {\n <ng-content select=\"[loading]\">{{ loadingText() }}</ng-content>\n } @else {\n <ng-content select=\"[empty]\">{{ emptyText() }}</ng-content>\n }\n </div>\n </div>\n </div>\n </brn-popover>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocomplete<T> implements ControlValueAccessor {\n private static _id = 0;\n private readonly _config = injectHlmAutocompleteConfig<T>();\n\n private readonly _brnPopover = viewChild.required(BrnPopover);\n private readonly _inputRef = viewChild.required('input', { read: ElementRef });\n\n protected readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:block tw:w-full', this.userClass()));\n\n /** Custom class for the autocomplete list. */\n public readonly autocompleteListClass = input<ClassValue>('');\n protected readonly _computedAutocompleteListClass = computed(() => hlm('', this.autocompleteListClass()));\n\n /** Custom class for the empty and loading state container. */\n public readonly autocompleteEmptyClass = input<ClassValue>('');\n protected readonly _computedAutocompleteEmptyClass = computed(() => hlm('', this.autocompleteEmptyClass()));\n\n /** The list of filtered options to display in the autocomplete. */\n public readonly filteredOptions = input<T[]>([]);\n\n /** The selected value. */\n public readonly value = input<T>();\n protected readonly _value = linkedSignal(() => this.value());\n\n /** The search query. */\n public readonly search = input<string>();\n protected readonly _search = linkedSignal(() => this.search() || '');\n\n /** Function to transform an option value to a search string. Defaults to identity function for strings. */\n public readonly transformValueToSearch = input<(value: T) => string>(this._config.transformValueToSearch);\n\n /** Optional template for rendering each option. */\n public readonly optionTemplate = input<TemplateRef<HlmAutocompleteOption<T>>>();\n\n /** Whether the autocomplete is in a loading state. */\n public readonly loading = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Placeholder text for the input field. */\n public readonly searchPlaceholderText = input('Select an option');\n\n /** Text to display when loading options. */\n public readonly loadingText = input('Loading options...');\n\n /** Text to display when no options are found. */\n public readonly emptyText = input('No options found');\n\n /** Aria label for the toggle button. */\n public readonly ariaLabelToggleButton = input<string>('Toggle options');\n\n /** The id of the input field. */\n public readonly inputId = input<string>(`hlm-autocomplete-input-${++HlmAutocomplete._id}`);\n\n /** Whether the autocomplete is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n protected readonly _disabled = linkedSignal(() => this.disabled());\n\n /** Emitted when the selected value changes. */\n public readonly valueChange = output<T | null>();\n\n /** Emitted when the search query changes. */\n public readonly searchChange = output<string>();\n\n protected _onChange?: ChangeFn<T | null>;\n protected _onTouched?: TouchFn;\n\n protected _setPopoverState(state: 'open' | 'closed') {\n if (state === 'open') {\n this._brnPopover().open();\n } else {\n this._brnPopover().close();\n }\n }\n\n protected _openPopover() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only open if there's a search term or options to show\n this._brnPopover().open();\n }\n }\n\n protected _toggleOptions() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only toggle if there's a search term or options to show\n const state = this._brnPopover().stateComputed();\n this._setPopoverState(state === 'open' ? 'closed' : 'open');\n }\n\n this._inputRef().nativeElement.focus();\n }\n\n protected _onSearchChanged(event: Event) {\n const input = event.target as HTMLInputElement;\n this._search.set(input.value);\n this.searchChange.emit(input.value);\n\n this._clearOption();\n\n if (this._brnPopover().stateComputed() !== 'open' && input.value.length > 0) {\n this._setPopoverState('open');\n }\n }\n\n protected _clearOption() {\n this._value.set(undefined);\n this._onChange?.(null);\n this.valueChange.emit(null);\n }\n\n protected _optionSelected(option: T) {\n this._value.set(option);\n this._onChange?.(option);\n this.valueChange.emit(option);\n\n const searchValue = this.transformValueToSearch()(option);\n\n this._search.set(searchValue);\n this.searchChange.emit(searchValue);\n\n this._setPopoverState('closed');\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: T | null): void {\n this._value.set(value ? value : undefined);\n }\n\n public registerOnChange(fn: ChangeFn<T | null>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n}\n\ninterface HlmAutocompleteOption<T> {\n $implicit: T;\n}\n","/*\n * Public API Surface of autocomplete\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmAutocomplete } from './lib/autocomplete';\nimport { HlmAutocompleteEmpty } from './lib/autocomplete-empty';\nimport { HlmAutocompleteGroup } from './lib/autocomplete-group';\nimport { HlmAutocompleteItem } from './lib/autocomplete-item';\nimport { HlmAutocompleteList } from './lib/autocomplete-list';\nimport { HlmAutocompleteSearch } from './lib/autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './lib/autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './lib/autocomplete-trigger';\n\nexport * from './lib/autocomplete';\nexport * from './lib/autocomplete-empty';\nexport * from './lib/autocomplete-group';\nexport * from './lib/autocomplete-item';\nexport * from './lib/autocomplete-list';\nexport * from './lib/autocomplete-search';\nexport * from './lib/autocomplete-search-input';\nexport * from './lib/autocomplete-trigger';\nexport * from './lib/autocomplete.token';\n\nexport const HlmAutocompleteImports = [\n HlmAutocomplete,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n] as const;\n\n@NgModule({\n imports: [...HlmAutocompleteImports],\n exports: [...HlmAutocompleteImports],\n})\nexport class HlmAutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autocomplete.mjs","sources":["../../../projects/autocomplete/src/lib/autocomplete-empty.ts","../../../projects/autocomplete/src/lib/autocomplete-group.ts","../../../projects/autocomplete/src/lib/autocomplete-item.ts","../../../projects/autocomplete/src/lib/autocomplete-list.ts","../../../projects/autocomplete/src/lib/autocomplete-search.ts","../../../projects/autocomplete/src/lib/autocomplete-search-input.ts","../../../projects/autocomplete/src/lib/autocomplete-trigger.ts","../../../projects/autocomplete/src/lib/autocomplete.token.ts","../../../projects/autocomplete/src/lib/autocomplete.ts","../../../projects/autocomplete/src/public-api.ts","../../../projects/autocomplete/src/autocomplete.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAutocompleteEmpty]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocompleteEmpty {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:py-2 tw:text-center tw:text-sm', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteGroup } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-group',\n template: '<ng-content />',\n hostDirectives: [\n {\n directive: BrnAutocompleteGroup,\n inputs: ['id'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteGroup {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:text-foreground tw:block tw:overflow-hidden tw:p-1', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteItem } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'button[hlm-autocomplete-item]',\n template: ` <ng-content /> `,\n hostDirectives: [\n {\n directive: BrnAutocompleteItem,\n inputs: ['value', 'disabled', 'id'],\n outputs: ['selected'],\n },\n ],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteItem {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:data-[selected]:bg-accent tw:data-[selected]:text-accent-foreground tw:[&>ng-icon]:text-muted-foreground tw:outline-hidden tw:relative tw:flex tw:w-full tw:cursor-default tw:select-none tw:items-center tw:gap-2 tw:rounded-sm tw:px-2 tw:py-1.5 tw:text-sm tw:data-[disabled]:pointer-events-none tw:data-[hidden]:hidden tw:data-[disabled]:opacity-50 tw:[&>ng-icon]:pointer-events-none tw:[&>ng-icon]:shrink-0 tw:[&>ng-icon]:text-base',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteList } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\n@Component({\n selector: 'hlm-autocomplete-list',\n template: '<ng-content />',\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [\n {\n directive: BrnAutocompleteList,\n inputs: ['id'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteList {\n /** The user defined class */\n public readonly userClass = input<string>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm('tw:block tw:max-h-60 tw:overflow-y-auto tw:overflow-x-hidden', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-autocomplete-search',\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n providers: [provideHlmIconConfig({ size: 'sm' })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearch {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:border-input tw:focus-within:border-ring tw:bg-background tw:focus-within:ring-ring/50 tw:shadow-xs tw:dark:bg-input/10 tw:flex tw:h-9 tw:min-w-0 tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-3 tw:focus-within:ring-[3px] tw:[&>_ng-icon]:flex-none tw:[&>_ng-icon]:opacity-50',\n this.userClass(),\n ),\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { BrnAutocompleteSearchInput } from '@spartan-ng/brain/autocomplete';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'input[hlm-autocomplete-search-input]',\n template: '',\n hostDirectives: [{ directive: BrnAutocompleteSearchInput, inputs: ['value'] }],\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmAutocompleteSearchInput {\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n /** The styles to apply */\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:placeholder:text-muted-foreground tw:flex tw:h-9 tw:w-full tw:bg-transparent tw:py-1 tw:text-base tw:outline-none tw:disabled:cursor-not-allowed tw:disabled:opacity-50 tw:md:text-sm',\n this.userClass(),\n ),\n );\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n selector: '[hlmAutocompleteTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class HlmAutocompleteTrigger {\n private readonly _host = inject(ElementRef, { host: true });\n\n private readonly _brnDialog = inject(BrnDialog, { optional: true });\n\n /** Whether the trigger is disabled. */\n public readonly disabledTrigger = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n constructor() {\n if (!this._brnDialog) return;\n\n this._brnDialog.mutableAttachTo.set(this._host.nativeElement);\n }\n\n open() {\n if (this.disabledTrigger()) return;\n\n this._brnDialog?.open();\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport type TransformValueToString<T> = (value: T) => string;\n\nexport interface HlmAutocompleteConfig<T> {\n transformValueToSearch: TransformValueToString<T>;\n}\n\nfunction getDefaultConfig<T>(): HlmAutocompleteConfig<T> {\n return {\n transformValueToSearch: (value: T) => (typeof value === 'string' ? value : String(value)),\n };\n}\n\nconst HlmAutocompleteConfigToken = new InjectionToken<HlmAutocompleteConfig<unknown>>('HlmAutocompleteConfig');\n\nexport function provideHlmAutocompleteConfig<T>(config: Partial<HlmAutocompleteConfig<T>>): ValueProvider {\n return { provide: HlmAutocompleteConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmAutocompleteConfig<T>(): HlmAutocompleteConfig<T> {\n return inject(HlmAutocompleteConfigToken, { optional: true }) ?? getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideSearch } from '@ng-icons/lucide';\nimport { BrnAutocomplete, BrnAutocompleteEmpty } from '@spartan-ng/brain/autocomplete';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent } from '@spartan-ng/brain/popover';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { HlmPopoverContent } from '@egose/shadcn-theme-ng/popover';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmAutocompleteEmpty } from './autocomplete-empty';\nimport { HlmAutocompleteGroup } from './autocomplete-group';\nimport { HlmAutocompleteItem } from './autocomplete-item';\nimport { HlmAutocompleteList } from './autocomplete-list';\nimport { HlmAutocompleteSearch } from './autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './autocomplete-trigger';\nimport { injectHlmAutocompleteConfig } from './autocomplete.token';\n\nexport const HLM_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmAutocomplete),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-autocomplete',\n imports: [\n NgTemplateOutlet,\n\n BrnPopover,\n BrnPopoverContent,\n HlmPopoverContent,\n\n BrnAutocomplete,\n BrnAutocompleteEmpty,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n\n NgIcon,\n HlmIcon,\n ],\n providers: [HLM_AUTOCOMPLETE_VALUE_ACCESSOR, provideIcons({ lucideSearch, lucideChevronDown })],\n template: `\n <brn-popover\n #popover\n align=\"start\"\n autoFocus=\"first-heading\"\n sideOffset=\"5\"\n closeDelay=\"100\"\n [closeOnOutsidePointerEvents]=\"true\"\n >\n <div brnAutocomplete>\n <hlm-autocomplete-search hlmAutocompleteTrigger [disabledTrigger]=\"!_search()\">\n <ng-icon name=\"lucideSearch\" hlm />\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n hlm-autocomplete-search-input\n [id]=\"inputId()\"\n [placeholder]=\"searchPlaceholderText()\"\n [disabled]=\"_disabled()\"\n [value]=\"_search()\"\n (input)=\"_onSearchChanged($event)\"\n (keydown.arrowDown)=\"_openPopover()\"\n (click)=\"_click()\"\n />\n\n <button\n class=\"tw:flex tw:items-center tw:justify-center tw:outline-none tw:disabled:cursor-not-allowed tw:[&>_ng-icon]:opacity-50\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabelToggleButton()\"\n [disabled]=\"_disabled()\"\n (click)=\"_toggleOptions()\"\n >\n <ng-icon name=\"lucideChevronDown\" hlm />\n </button>\n </hlm-autocomplete-search>\n\n <div\n *brnPopoverContent=\"let ctx\"\n hlmPopoverContent\n class=\"tw:p-0\"\n [style.width.px]=\"_elementRef.nativeElement.offsetWidth\"\n >\n <hlm-autocomplete-list\n [class]=\"_computedAutocompleteListClass()\"\n [class.hidden]=\"filteredOptions().length === 0\"\n >\n <hlm-autocomplete-group>\n @for (option of filteredOptions(); track option) {\n <button hlm-autocomplete-item [value]=\"option\" (selected)=\"_optionSelected(option)\">\n @if (optionTemplate(); as optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\" />\n } @else {\n {{ option }}\n }\n </button>\n }\n </hlm-autocomplete-group>\n </hlm-autocomplete-list>\n\n <div *brnAutocompleteEmpty hlmAutocompleteEmpty [class]=\"_computedAutocompleteEmptyClass()\">\n @if (loading()) {\n <ng-content select=\"[loading]\">{{ loadingText() }}</ng-content>\n } @else {\n <ng-content select=\"[empty]\">{{ emptyText() }}</ng-content>\n }\n </div>\n </div>\n </div>\n </brn-popover>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAutocomplete<T> implements ControlValueAccessor {\n private static _id = 0;\n private readonly _config = injectHlmAutocompleteConfig<T>();\n\n private readonly _brnPopover = viewChild.required(BrnPopover);\n private readonly _inputRef = viewChild.required('input', { read: ElementRef });\n\n protected readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n public readonly onSelect = input<(option: string) => void>();\n\n /** The user defined class */\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('tw:block tw:w-full', this.userClass()));\n\n /** Custom class for the autocomplete list. */\n public readonly autocompleteListClass = input<ClassValue>('');\n protected readonly _computedAutocompleteListClass = computed(() => hlm('', this.autocompleteListClass()));\n\n /** Custom class for the empty and loading state container. */\n public readonly autocompleteEmptyClass = input<ClassValue>('');\n protected readonly _computedAutocompleteEmptyClass = computed(() => hlm('', this.autocompleteEmptyClass()));\n\n /** The list of filtered options to display in the autocomplete. */\n public readonly filteredOptions = input<T[]>([]);\n\n /** The selected value. */\n public readonly value = input<T>();\n protected readonly _value = linkedSignal(() => this.value());\n\n /** The search query. */\n public readonly search = input<string>();\n protected readonly _search = linkedSignal(() => this.search() || '');\n\n /** Function to transform an option value to a search string. Defaults to identity function for strings. */\n public readonly transformValueToSearch = input<(value: T) => string>(this._config.transformValueToSearch);\n\n /** Optional template for rendering each option. */\n public readonly optionTemplate = input<TemplateRef<HlmAutocompleteOption<T>>>();\n\n /** Whether the autocomplete is in a loading state. */\n public readonly loading = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Placeholder text for the input field. */\n public readonly searchPlaceholderText = input('Select an option');\n\n /** Text to display when loading options. */\n public readonly loadingText = input('Loading options...');\n\n /** Text to display when no options are found. */\n public readonly emptyText = input('No options found');\n\n /** Aria label for the toggle button. */\n public readonly ariaLabelToggleButton = input<string>('Toggle options');\n\n /** The id of the input field. */\n public readonly inputId = input<string>(`hlm-autocomplete-input-${++HlmAutocomplete._id}`);\n\n /** Whether the autocomplete is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n protected readonly _disabled = linkedSignal(() => this.disabled());\n\n /** Emitted when the selected value changes. */\n public readonly valueChange = output<T | null>();\n\n /** Emitted when the search query changes. */\n public readonly searchChange = output<string>();\n\n protected _onChange?: ChangeFn<T | null>;\n protected _onTouched?: TouchFn;\n\n protected _setPopoverState(state: 'open' | 'closed') {\n if (state === 'open') {\n this._brnPopover().open();\n } else {\n this._brnPopover().close();\n }\n }\n\n protected _click() {\n this._toggleOptions();\n }\n\n protected _openPopover() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only open if there's a search term or options to show\n this._brnPopover().open();\n }\n }\n\n protected _toggleOptions() {\n if (this._search() || this.filteredOptions().length > 0) {\n // only toggle if there's a search term or options to show\n const state = this._brnPopover().stateComputed();\n this._setPopoverState(state === 'open' ? 'closed' : 'open');\n }\n\n this._inputRef().nativeElement.focus();\n }\n\n protected _onSearchChanged(event: Event) {\n const input = event.target as HTMLInputElement;\n this._search.set(input.value);\n this.searchChange.emit(input.value);\n\n this._clearOption();\n\n if (this._brnPopover().stateComputed() !== 'open' && input.value.length > 0) {\n this._setPopoverState('open');\n }\n }\n\n protected _clearOption() {\n this._value.set(undefined);\n this._onChange?.(null);\n this.valueChange.emit(null);\n }\n\n protected _optionSelected(option: T) {\n this._value.set(option);\n this._onChange?.(option);\n this.valueChange.emit(option);\n\n const searchValue = this.transformValueToSearch()(option);\n\n if (this.onSelect()) {\n this.onSelect()?.(searchValue);\n } else {\n this._search.set(searchValue);\n this.searchChange.emit(searchValue);\n\n this._setPopoverState('closed');\n }\n }\n\n public clearText(): void {\n this._inputRef().nativeElement.value = '';\n this._search.set('');\n this.searchChange.emit('');\n }\n\n public setPopoverState(state: 'open' | 'closed') {\n this._setPopoverState(state);\n }\n\n /** CONTROL VALUE ACCESSOR */\n public writeValue(value: T | null): void {\n this._value.set(value ? value : undefined);\n }\n\n public registerOnChange(fn: ChangeFn<T | null>): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n}\n\ninterface HlmAutocompleteOption<T> {\n $implicit: T;\n}\n","/*\n * Public API Surface of autocomplete\n */\n\nimport { NgModule } from '@angular/core';\nimport { HlmAutocomplete } from './lib/autocomplete';\nimport { HlmAutocompleteEmpty } from './lib/autocomplete-empty';\nimport { HlmAutocompleteGroup } from './lib/autocomplete-group';\nimport { HlmAutocompleteItem } from './lib/autocomplete-item';\nimport { HlmAutocompleteList } from './lib/autocomplete-list';\nimport { HlmAutocompleteSearch } from './lib/autocomplete-search';\nimport { HlmAutocompleteSearchInput } from './lib/autocomplete-search-input';\nimport { HlmAutocompleteTrigger } from './lib/autocomplete-trigger';\n\nexport * from './lib/autocomplete';\nexport * from './lib/autocomplete-empty';\nexport * from './lib/autocomplete-group';\nexport * from './lib/autocomplete-item';\nexport * from './lib/autocomplete-list';\nexport * from './lib/autocomplete-search';\nexport * from './lib/autocomplete-search-input';\nexport * from './lib/autocomplete-trigger';\nexport * from './lib/autocomplete.token';\n\nexport const HlmAutocompleteImports = [\n HlmAutocomplete,\n HlmAutocompleteEmpty,\n HlmAutocompleteGroup,\n HlmAutocompleteItem,\n HlmAutocompleteList,\n HlmAutocompleteSearch,\n HlmAutocompleteSearchInput,\n HlmAutocompleteTrigger,\n] as const;\n\n@NgModule({\n imports: [...HlmAutocompleteImports],\n exports: [...HlmAutocompleteImports],\n})\nexport class HlmAutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/autocomplete/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ declare class HlmAutocomplete<T> implements ControlValueAccessor {
|
|
|
17
17
|
private readonly _brnPopover;
|
|
18
18
|
private readonly _inputRef;
|
|
19
19
|
protected readonly _elementRef: ElementRef<any>;
|
|
20
|
+
readonly onSelect: _angular_core.InputSignal<((option: string) => void) | undefined>;
|
|
20
21
|
/** The user defined class */
|
|
21
22
|
readonly userClass: _angular_core.InputSignal<ClassValue>;
|
|
22
23
|
protected readonly _computedClass: _angular_core.Signal<string>;
|
|
@@ -60,18 +61,21 @@ declare class HlmAutocomplete<T> implements ControlValueAccessor {
|
|
|
60
61
|
protected _onChange?: ChangeFn<T | null>;
|
|
61
62
|
protected _onTouched?: TouchFn;
|
|
62
63
|
protected _setPopoverState(state: 'open' | 'closed'): void;
|
|
64
|
+
protected _click(): void;
|
|
63
65
|
protected _openPopover(): void;
|
|
64
66
|
protected _toggleOptions(): void;
|
|
65
67
|
protected _onSearchChanged(event: Event): void;
|
|
66
68
|
protected _clearOption(): void;
|
|
67
69
|
protected _optionSelected(option: T): void;
|
|
70
|
+
clearText(): void;
|
|
71
|
+
setPopoverState(state: 'open' | 'closed'): void;
|
|
68
72
|
/** CONTROL VALUE ACCESSOR */
|
|
69
73
|
writeValue(value: T | null): void;
|
|
70
74
|
registerOnChange(fn: ChangeFn<T | null>): void;
|
|
71
75
|
registerOnTouched(fn: TouchFn): void;
|
|
72
76
|
setDisabledState(isDisabled: boolean): void;
|
|
73
77
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmAutocomplete<any>, never>;
|
|
74
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocomplete<any>, "hlm-autocomplete", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "autocompleteListClass": { "alias": "autocompleteListClass"; "required": false; "isSignal": true; }; "autocompleteEmptyClass": { "alias": "autocompleteEmptyClass"; "required": false; "isSignal": true; }; "filteredOptions": { "alias": "filteredOptions"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "transformValueToSearch": { "alias": "transformValueToSearch"; "required": false; "isSignal": true; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "searchPlaceholderText": { "alias": "searchPlaceholderText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabelToggleButton": { "alias": "ariaLabelToggleButton"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; }, never, ["[loading]", "[empty]"], true, never>;
|
|
78
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmAutocomplete<any>, "hlm-autocomplete", never, { "onSelect": { "alias": "onSelect"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "autocompleteListClass": { "alias": "autocompleteListClass"; "required": false; "isSignal": true; }; "autocompleteEmptyClass": { "alias": "autocompleteEmptyClass"; "required": false; "isSignal": true; }; "filteredOptions": { "alias": "filteredOptions"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "transformValueToSearch": { "alias": "transformValueToSearch"; "required": false; "isSignal": true; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "searchPlaceholderText": { "alias": "searchPlaceholderText"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "ariaLabelToggleButton": { "alias": "ariaLabelToggleButton"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; }, never, ["[loading]", "[empty]"], true, never>;
|
|
75
79
|
}
|
|
76
80
|
interface HlmAutocompleteOption<T> {
|
|
77
81
|
$implicit: T;
|
package/badge/fesm2022/badge.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, computed,
|
|
2
|
+
import { input, signal, computed, Component } from '@angular/core';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { hlm } from '@egose/shadcn-theme-ng/utils';
|
|
5
5
|
|
|
6
|
-
/* Tailwind + CVA variant config */
|
|
7
6
|
const badgeVariants = cva([
|
|
8
7
|
'tw:inline-flex',
|
|
9
8
|
'tw:items-center',
|
|
@@ -49,25 +48,25 @@ const badgeVariants = cva([
|
|
|
49
48
|
},
|
|
50
49
|
});
|
|
51
50
|
class HlmBadge {
|
|
52
|
-
/** Props */
|
|
53
|
-
variant = 'primary';
|
|
54
|
-
size = 'default';
|
|
55
|
-
appearance = 'solid';
|
|
56
|
-
userClass = '';
|
|
51
|
+
/** Props as signal-based inputs */
|
|
52
|
+
variant = input('primary', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
53
|
+
size = input('default', ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
54
|
+
appearance = input('solid', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
|
|
55
|
+
userClass = input('', ...(ngDevMode ? [{ debugName: "userClass" }] : []));
|
|
57
56
|
_additionalClasses = signal('', ...(ngDevMode ? [{ debugName: "_additionalClasses" }] : []));
|
|
58
57
|
/** Computed badge class merging */
|
|
59
58
|
_computedClass = computed(() => {
|
|
60
|
-
const outlineClasses = this.appearance === 'outline' || this.appearance === 'outline-filled'
|
|
61
|
-
? [this.getOutlineClasses(this.variant)]
|
|
59
|
+
const outlineClasses = this.appearance() === 'outline' || this.appearance() === 'outline-filled'
|
|
60
|
+
? [this.getOutlineClasses(this.variant())]
|
|
62
61
|
: [];
|
|
63
|
-
if (this.appearance === 'outline-filled') {
|
|
64
|
-
outlineClasses.push(this.getOutlineFilledClasses(this.variant));
|
|
62
|
+
if (this.appearance() === 'outline-filled') {
|
|
63
|
+
outlineClasses.push(this.getOutlineFilledClasses(this.variant()));
|
|
65
64
|
}
|
|
66
65
|
return hlm(badgeVariants({
|
|
67
|
-
variant: this.variant,
|
|
68
|
-
size: this.size,
|
|
69
|
-
appearance: this.appearance,
|
|
70
|
-
className: this.userClass,
|
|
66
|
+
variant: this.variant(),
|
|
67
|
+
size: this.size(),
|
|
68
|
+
appearance: this.appearance(),
|
|
69
|
+
className: this.userClass(),
|
|
71
70
|
}), outlineClasses, this._additionalClasses());
|
|
72
71
|
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
73
72
|
setClass(classes) {
|
|
@@ -111,7 +110,7 @@ class HlmBadge {
|
|
|
111
110
|
return colors[variant];
|
|
112
111
|
}
|
|
113
112
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
113
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: HlmBadge, isStandalone: true, selector: "span[hlmBadge], a[hlmBadge]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "userClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
115
114
|
}
|
|
116
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HlmBadge, decorators: [{
|
|
117
116
|
type: Component,
|
|
@@ -122,17 +121,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
122
121
|
host: {
|
|
123
122
|
'[class]': '_computedClass()',
|
|
124
123
|
},
|
|
125
|
-
template:
|
|
124
|
+
template: `<ng-content></ng-content>`,
|
|
126
125
|
}]
|
|
127
|
-
}]
|
|
128
|
-
type: Input
|
|
129
|
-
}], size: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], appearance: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], userClass: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}] } });
|
|
126
|
+
}] });
|
|
136
127
|
|
|
137
128
|
/*
|
|
138
129
|
* Public API Surface of badge
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.mjs","sources":["../../../projects/badge/src/lib/badge.ts","../../../projects/badge/src/public-api.ts","../../../projects/badge/src/badge.ts"],"sourcesContent":["import { Component,
|
|
1
|
+
{"version":3,"file":"badge.mjs","sources":["../../../projects/badge/src/lib/badge.ts","../../../projects/badge/src/public-api.ts","../../../projects/badge/src/badge.ts"],"sourcesContent":["import { Component, computed, signal, input } from '@angular/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { type ClassValue } from 'clsx';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\n\nexport const badgeVariants = cva(\n [\n 'tw:inline-flex',\n 'tw:items-center',\n 'tw:rounded-sm',\n 'tw:font-medium',\n 'tw:whitespace-nowrap',\n 'tw:transition-colors',\n 'tw:focus-visible:outline-none',\n 'tw:focus-visible:ring-1',\n 'tw:focus-visible:ring-ring',\n ],\n {\n variants: {\n variant: {\n primary: 'tw:bg-primary tw:text-primary-foreground tw:hover:bg-primary/90',\n secondary: 'tw:bg-secondary tw:text-secondary-foreground tw:hover:bg-secondary/90',\n success: 'tw:bg-success tw:text-success-foreground tw:hover:bg-success/90',\n warning: 'tw:bg-warning tw:text-warning-foreground tw:hover:bg-warning/90',\n danger: 'tw:bg-danger tw:text-danger-foreground tw:hover:bg-danger/90',\n info: 'tw:bg-info tw:text-info-foreground tw:hover:bg-info/90',\n light: 'tw:bg-light tw:text-light-foreground tw:hover:bg-light/90',\n dark: 'tw:bg-dark tw:text-dark-foreground tw:hover:bg-dark/90',\n accent: 'tw:bg-accent tw:text-accent-foreground tw:hover:bg-accent/90',\n destructive: 'tw:bg-destructive tw:text-destructive-foreground tw:hover:bg-destructive/90',\n muted: 'tw:bg-muted tw:text-muted-foreground tw:hover:bg-muted/90',\n link: 'tw:text-primary tw:underline-offset-4 tw:hover:underline',\n ghost: 'tw:hover:bg-light tw:hover:text-light-foreground',\n },\n size: {\n sm: 'tw:h-5 tw:px-2 tw:text-xs',\n default: 'tw:h-6 tw:px-3 tw:text-sm',\n lg: 'tw:h-7 tw:px-4 tw:text-base',\n },\n appearance: {\n solid: '',\n outline: 'tw:bg-white tw:border',\n 'outline-filled': 'tw:bg-white tw:border',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n appearance: 'solid',\n },\n },\n);\n\nexport type BadgeVariants = VariantProps<typeof badgeVariants>;\nexport type BadgeVariantType = NonNullable<BadgeVariants['variant']>;\nexport type BadgeSizeType = NonNullable<BadgeVariants['size']>;\nexport type BadgeAppearanceType = NonNullable<BadgeVariants['appearance']>;\n\n@Component({\n selector: 'span[hlmBadge], a[hlmBadge]',\n standalone: true,\n imports: [],\n host: {\n '[class]': '_computedClass()',\n },\n template: `<ng-content></ng-content>`,\n})\nexport class HlmBadge {\n /** Props as signal-based inputs */\n variant = input<BadgeVariantType>('primary');\n size = input<BadgeSizeType>('default');\n appearance = input<BadgeAppearanceType>('solid');\n userClass = input<ClassValue>('');\n\n private readonly _additionalClasses = signal<ClassValue>('');\n\n /** Computed badge class merging */\n protected readonly _computedClass = computed(() => {\n const outlineClasses =\n this.appearance() === 'outline' || this.appearance() === 'outline-filled'\n ? [this.getOutlineClasses(this.variant())]\n : [];\n\n if (this.appearance() === 'outline-filled') {\n outlineClasses.push(this.getOutlineFilledClasses(this.variant()));\n }\n\n return hlm(\n badgeVariants({\n variant: this.variant(),\n size: this.size(),\n appearance: this.appearance(),\n className: this.userClass(),\n }),\n outlineClasses,\n this._additionalClasses(),\n );\n });\n\n setClass(classes: string): void {\n this._additionalClasses.set(classes);\n }\n\n /** Helper functions */\n private getOutlineClasses(variant: BadgeVariantType) {\n const colors: Record<BadgeVariantType, string> = {\n primary: 'tw:border-primary tw:text-primary tw:hover:bg-primary/10',\n secondary: 'tw:border-secondary tw:text-secondary tw:hover:bg-secondary/10',\n success: 'tw:border-success tw:text-success tw:hover:bg-success/10',\n warning: 'tw:border-warning tw:text-warning tw:hover:bg-warning/10',\n danger: 'tw:border-danger tw:text-danger tw:hover:bg-danger/10',\n info: 'tw:border-info tw:text-info tw:hover:bg-info/10',\n light: 'tw:border-light tw:text-light-foreground tw:hover:bg-light/10',\n dark: 'tw:border-dark tw:text-dark tw:hover:bg-dark/10',\n accent: 'tw:border-accent tw:text-accent tw:hover:bg-accent/10',\n destructive: 'tw:border-destructive tw:text-destructive tw:hover:bg-destructive/10',\n muted: 'tw:border-muted tw:text-muted-foreground tw:hover:bg-muted/10',\n link: 'tw:text-primary',\n ghost: 'tw:text-light-foreground',\n };\n return colors[variant];\n }\n\n private getOutlineFilledClasses(variant: BadgeVariantType) {\n const colors: Record<BadgeVariantType, string> = {\n primary: 'tw:hover:bg-primary tw:hover:text-primary-foreground',\n secondary: 'tw:hover:bg-secondary tw:hover:text-secondary-foreground',\n success: 'tw:hover:bg-success tw:hover:text-success-foreground',\n warning: 'tw:hover:bg-warning tw:hover:text-warning-foreground',\n danger: 'tw:hover:bg-danger tw:hover:text-danger-foreground',\n info: 'tw:hover:bg-info tw:hover:text-info-foreground',\n light: 'tw:hover:bg-light tw:hover:text-light-foreground',\n dark: 'tw:hover:bg-dark tw:hover:text-dark-foreground',\n accent: 'tw:hover:bg-accent tw:hover:text-accent-foreground',\n destructive: 'tw:hover:bg-destructive tw:hover:text-destructive-foreground',\n muted: 'tw:hover:bg-muted tw:hover:text-muted-foreground',\n link: 'tw:hover:underline',\n ghost: 'tw:hover:bg-light',\n };\n return colors[variant];\n }\n}\n","/*\n * Public API Surface of badge\n */\n\nexport * from './lib/badge';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/badge/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
2
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
import { ClassValue } from 'clsx';
|
|
@@ -13,20 +13,20 @@ type BadgeVariantType = NonNullable<BadgeVariants['variant']>;
|
|
|
13
13
|
type BadgeSizeType = NonNullable<BadgeVariants['size']>;
|
|
14
14
|
type BadgeAppearanceType = NonNullable<BadgeVariants['appearance']>;
|
|
15
15
|
declare class HlmBadge {
|
|
16
|
-
/** Props */
|
|
17
|
-
variant: BadgeVariantType
|
|
18
|
-
size: BadgeSizeType
|
|
19
|
-
appearance: BadgeAppearanceType
|
|
20
|
-
userClass: ClassValue
|
|
16
|
+
/** Props as signal-based inputs */
|
|
17
|
+
variant: _angular_core.InputSignal<BadgeVariantType>;
|
|
18
|
+
size: _angular_core.InputSignal<BadgeSizeType>;
|
|
19
|
+
appearance: _angular_core.InputSignal<BadgeAppearanceType>;
|
|
20
|
+
userClass: _angular_core.InputSignal<ClassValue>;
|
|
21
21
|
private readonly _additionalClasses;
|
|
22
22
|
/** Computed badge class merging */
|
|
23
|
-
protected readonly _computedClass:
|
|
23
|
+
protected readonly _computedClass: _angular_core.Signal<string>;
|
|
24
24
|
setClass(classes: string): void;
|
|
25
25
|
/** Helper functions */
|
|
26
26
|
private getOutlineClasses;
|
|
27
27
|
private getOutlineFilledClasses;
|
|
28
|
-
static ɵfac:
|
|
29
|
-
static ɵcmp:
|
|
28
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HlmBadge, never>;
|
|
29
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HlmBadge, "span[hlmBadge], a[hlmBadge]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "userClass": { "alias": "userClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export { HlmBadge, badgeVariants };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { input, Component } from '@angular/core';
|
|
3
3
|
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
4
4
|
import { lucideGhost, lucideLink, lucideZap, lucideThumbsUp, lucideStar, lucideBell, lucideCircleAlert, lucideBatteryWarning, lucideInfo, lucideCircleCheck } from '@ng-icons/lucide';
|
|
5
5
|
import { HlmAlert, HlmAlertIcon, HlmAlertTitle, HlmAlertDescription } from '@egose/shadcn-theme-ng/alert';
|
|
6
6
|
import { HlmIcon } from '@egose/shadcn-theme-ng/icon';
|
|
7
7
|
|
|
8
8
|
class EgBasicAlert {
|
|
9
|
-
variant = 'info';
|
|
10
|
-
appearance = 'solid';
|
|
11
|
-
title = '';
|
|
12
|
-
description = '';
|
|
9
|
+
variant = input('info', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
10
|
+
appearance = input('solid', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
|
|
11
|
+
title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
12
|
+
description = input('', ...(ngDevMode ? [{ debugName: "description" }] : []));
|
|
13
13
|
getIconName(variant) {
|
|
14
14
|
switch (variant) {
|
|
15
15
|
case 'success':
|
|
@@ -40,7 +40,7 @@ class EgBasicAlert {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EgBasicAlert, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.1", type: EgBasicAlert, isStandalone: true, selector: "eg-basic-alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
44
44
|
provideIcons({
|
|
45
45
|
lucideCircleCheck,
|
|
46
46
|
lucideInfo,
|
|
@@ -54,10 +54,10 @@ class EgBasicAlert {
|
|
|
54
54
|
lucideGhost,
|
|
55
55
|
}),
|
|
56
56
|
], ngImport: i0, template: `
|
|
57
|
-
<div hlmAlert [variant]="variant" [appearance]="appearance" class="">
|
|
58
|
-
<ng-icon hlm hlmAlertIcon [name]="getIconName(variant)" />
|
|
59
|
-
<h4 hlmAlertTitle class="tw:capitalize">{{ title }}</h4>
|
|
60
|
-
<p hlmAlertDescription>{{ description }}</p>
|
|
57
|
+
<div hlmAlert [variant]="variant()" [appearance]="appearance()" class="">
|
|
58
|
+
<ng-icon hlm hlmAlertIcon [name]="getIconName(variant())" />
|
|
59
|
+
<h4 hlmAlertTitle class="tw:capitalize">{{ title() }}</h4>
|
|
60
|
+
<p hlmAlertDescription>{{ description() }}</p>
|
|
61
61
|
</div>
|
|
62
62
|
`, isInline: true, dependencies: [{ kind: "directive", type: HlmAlert, selector: "[hlmAlert]", inputs: ["class", "variant", "appearance"] }, { kind: "directive", type: HlmAlertIcon, selector: "[hlmAlertIcon]" }, { kind: "directive", type: HlmAlertTitle, selector: "[hlmAlertTitle]", inputs: ["class"] }, { kind: "directive", type: HlmAlertDescription, selector: "[hlmAlertDesc],[hlmAlertDescription]", inputs: ["class"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }] });
|
|
63
63
|
}
|
|
@@ -82,22 +82,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
82
82
|
}),
|
|
83
83
|
],
|
|
84
84
|
template: `
|
|
85
|
-
<div hlmAlert [variant]="variant" [appearance]="appearance" class="">
|
|
86
|
-
<ng-icon hlm hlmAlertIcon [name]="getIconName(variant)" />
|
|
87
|
-
<h4 hlmAlertTitle class="tw:capitalize">{{ title }}</h4>
|
|
88
|
-
<p hlmAlertDescription>{{ description }}</p>
|
|
85
|
+
<div hlmAlert [variant]="variant()" [appearance]="appearance()" class="">
|
|
86
|
+
<ng-icon hlm hlmAlertIcon [name]="getIconName(variant())" />
|
|
87
|
+
<h4 hlmAlertTitle class="tw:capitalize">{{ title() }}</h4>
|
|
88
|
+
<p hlmAlertDescription>{{ description() }}</p>
|
|
89
89
|
</div>
|
|
90
90
|
`,
|
|
91
91
|
}]
|
|
92
|
-
}]
|
|
93
|
-
type: Input
|
|
94
|
-
}], appearance: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], title: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], description: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}] } });
|
|
92
|
+
}] });
|
|
101
93
|
|
|
102
94
|
/*
|
|
103
95
|
* Public API Surface of basic-alert
|