angular-tailwind-components 1.7.1 → 1.8.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-tailwind-components",
3
- "version": "1.7.1",
3
+ "version": "1.8.1",
4
4
  "files": [
5
5
  "fesm2022",
6
6
  "types",
@@ -6,7 +6,7 @@ import { ControlValueAccessor } from '@angular/forms';
6
6
  /** Size variants for components */
7
7
  type TailwindSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8
8
  /** Color variants for buttons and interactive elements */
9
- type TailwindColor = 'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'info';
9
+ type TailwindColor = 'primary' | 'secondary' | 'danger' | 'success' | 'warning' | 'info' | 'transparent';
10
10
  /** Button kinds */
11
11
  type TailwindButtonKind = 'solid' | 'flat' | 'outlined' | 'ghost' | 'text';
12
12
  /** ARIA role for `TailwindButton` */
@@ -101,6 +101,7 @@ declare class TailwindSortHeaderDirective {
101
101
  readonly sortKey: _angular_core.InputSignal<string>;
102
102
  private readonly host;
103
103
  private readonly renderer;
104
+ private labelWrapper?;
104
105
  private readonly appRef;
105
106
  private readonly environmentInjector;
106
107
  private readonly injector;
@@ -113,6 +114,8 @@ declare class TailwindSortHeaderDirective {
113
114
  * for one frame; retry with `requestAnimationFrame` until `closest` succeeds.
114
115
  */
115
116
  private resolveTableAndAttach;
117
+ /** Keep `th` as `display: table-cell`; flex only on an inner wrapper (label + icon). */
118
+ private ensureLabelWrapper;
116
119
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindSortHeaderDirective, never>;
117
120
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TailwindSortHeaderDirective, "[tailwindSortHeader]", never, { "sortKey": { "alias": "sortKey"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
118
121
  }
@@ -131,7 +134,7 @@ declare class TailwindButton extends TailwindComponent {
131
134
  /** Visual color */
132
135
  readonly color: _angular_core.InputSignal<TailwindColor>;
133
136
  /**
134
- * Visual kind: `flat` = filled like `solid` without border or shadow;
137
+ * Visual kind: `flat` = filled like `solid` without border, shadow, or hover/active background change;
135
138
  * `ghost` = transparent with hover tint; `text` = text color only, no hover background.
136
139
  * Default from {@link TAILWIND_BUTTON_KIND} or `'solid'`.
137
140
  */
@@ -148,6 +151,8 @@ declare class TailwindButton extends TailwindComponent {
148
151
  readonly icon: _angular_core.InputSignal<string | undefined>;
149
152
  /** Icon placement when both icon and label are shown */
150
153
  readonly iconPosition: _angular_core.InputSignal<TailwindIconPosition>;
154
+ /** Accessible name for icon-only buttons */
155
+ readonly ariaLabel: _angular_core.InputSignal<string>;
151
156
  /** Emitted when the button is clicked (not disabled). */
152
157
  readonly onClick: _angular_core.OutputEmitterRef<MouseEvent>;
153
158
  readonly iconPixelSize: _angular_core.Signal<number>;
@@ -155,7 +160,7 @@ declare class TailwindButton extends TailwindComponent {
155
160
  readonly computedClasses: _angular_core.Signal<string>;
156
161
  handleClick(event: MouseEvent): void;
157
162
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindButton, never>;
158
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindButton, "tailwind-button", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "kind": { "alias": "kind"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
163
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindButton, "tailwind-button", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "kind": { "alias": "kind"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
159
164
  }
160
165
 
161
166
  declare class TailwindIcon extends TailwindComponent {
@@ -388,6 +393,7 @@ declare class TailwindCheckbox extends TailwindComponent implements ControlValue
388
393
  readonly isDisabled: _angular_core.WritableSignal<boolean>;
389
394
  /** Box size class based on size input */
390
395
  readonly boxSizeClass: _angular_core.Signal<string>;
396
+ readonly checkIconSize: _angular_core.Signal<number>;
391
397
  private onChange;
392
398
  private onTouched;
393
399
  writeValue(value: boolean): void;
@@ -489,6 +495,88 @@ declare class TailwindSelect<T = unknown> extends TailwindComponent implements C
489
495
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindSelect<any>, "tailwind-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
490
496
  }
491
497
 
498
+ /** Context passed to the `#item` ng-template. */
499
+ interface TailwindAutocompleteItemContext<T = unknown> {
500
+ $implicit: TailwindOption<T>;
501
+ option: TailwindOption<T>;
502
+ index: number;
503
+ selected: boolean;
504
+ active: boolean;
505
+ }
506
+ declare class TailwindAutocomplete<T = unknown> extends TailwindComponent implements ControlValueAccessor, OnDestroy {
507
+ private static nextId;
508
+ private readonly overlay;
509
+ private readonly vcr;
510
+ private readonly elRef;
511
+ private readonly cdr;
512
+ private readonly ngZone;
513
+ private readonly panelTemplate;
514
+ constructor();
515
+ private overlayRef;
516
+ private outsideSub;
517
+ private searchDebounceTimer;
518
+ private readonly instanceListboxId;
519
+ /** Label text */
520
+ readonly label: _angular_core.InputSignal<string>;
521
+ /** Placeholder text */
522
+ readonly placeholder: _angular_core.InputSignal<string>;
523
+ /** Available options */
524
+ readonly options: _angular_core.InputSignal<TailwindOption<T>[]>;
525
+ /** Size variant */
526
+ readonly size: _angular_core.InputSignal<TailwindSize>;
527
+ /** Helper text */
528
+ readonly helperText: _angular_core.InputSignal<string>;
529
+ /** Error text */
530
+ readonly errorText: _angular_core.InputSignal<string>;
531
+ /** Whether in error state */
532
+ readonly hasError: _angular_core.InputSignal<boolean>;
533
+ /** Filter options locally by label when typing */
534
+ readonly filterLocally: _angular_core.InputSignal<boolean>;
535
+ /** Minimum query length before opening panel and emitting onSearch */
536
+ readonly minSearchLength: _angular_core.InputSignal<number>;
537
+ /** Debounce delay (ms) for onSearch emission only */
538
+ readonly debounceMs: _angular_core.InputSignal<number>;
539
+ /** On blur, reset input to selected option label or clear invalid text */
540
+ readonly forceSelection: _angular_core.InputSignal<boolean>;
541
+ /** Selected value (form control) — set only when an option is chosen */
542
+ readonly value: _angular_core.ModelSignal<T | null>;
543
+ /** Emits the current search query (after debounce / minSearchLength) */
544
+ readonly onSearch: _angular_core.OutputEmitterRef<string>;
545
+ /** Custom option row template (`ng-template` with `#item`) */
546
+ readonly itemTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
547
+ /** Text shown in the input */
548
+ readonly searchQuery: _angular_core.WritableSignal<string>;
549
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
550
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
551
+ readonly activeIndex: _angular_core.WritableSignal<number>;
552
+ readonly listboxId: _angular_core.Signal<string>;
553
+ readonly selectedOption: _angular_core.Signal<TailwindOption<T> | null>;
554
+ readonly filteredOptions: _angular_core.Signal<TailwindOption<T>[]>;
555
+ readonly inputClasses: _angular_core.Signal<string>;
556
+ private onChange;
557
+ private onTouched;
558
+ writeValue(value: T | null | undefined): void;
559
+ registerOnChange(fn: (value: T | null) => void): void;
560
+ registerOnTouched(fn: () => void): void;
561
+ setDisabledState(disabled: boolean): void;
562
+ ngOnDestroy(): void;
563
+ isOptionSelected(option: TailwindOption<T>): boolean;
564
+ optionClasses(index: number, option: TailwindOption<T>): string;
565
+ itemContext(option: TailwindOption<T>, index: number): TailwindAutocompleteItemContext<T>;
566
+ onInputChange(event: Event): void;
567
+ onFocus(): void;
568
+ onBlur(): void;
569
+ private applyForceSelectionOnBlur;
570
+ selectOption(option: TailwindOption<T>): void;
571
+ onKeydown(event: KeyboardEvent): void;
572
+ private optionValueEquals;
573
+ private emitSearch;
574
+ private openPanel;
575
+ private closePanel;
576
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindAutocomplete<any>, never>;
577
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindAutocomplete<any>, "tailwind-autocomplete", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "filterLocally": { "alias": "filterLocally"; "required": false; "isSignal": true; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onSearch": "onSearch"; }, ["itemTemplate"], ["*"], true, never>;
578
+ }
579
+
492
580
  declare class TailwindToggle extends TailwindComponent implements ControlValueAccessor {
493
581
  /** Label text */
494
582
  readonly label: _angular_core.InputSignal<string>;
@@ -598,7 +686,8 @@ declare class TailwindSpinner extends TailwindComponent {
598
686
  /** Layout orientation */
599
687
  readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
600
688
  readonly containerClasses: _angular_core.Signal<string>;
601
- readonly spinnerClasses: _angular_core.Signal<string>;
689
+ readonly iconPixelSize: _angular_core.Signal<number>;
690
+ readonly iconClasses: _angular_core.Signal<string>;
602
691
  readonly labelClasses: _angular_core.Signal<string>;
603
692
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindSpinner, never>;
604
693
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindSpinner, "tailwind-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -1408,5 +1497,5 @@ declare class TailwindModalRef<R = any> {
1408
1497
  _getResult(): R | undefined;
1409
1498
  }
1410
1499
 
1411
- export { DEFAULT_PAGINATION_LENGTH_OPTIONS, TAILWIND_BUTTON_KIND, TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_HEROICON_NAMES, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TAILWIND_PAGINATION_SUMMARY, TW_TABLE_SORT_DIR_ATTR, TW_TABLE_SORT_KEY_ATTR, TailwindAccordion, TailwindAccordionItem, TailwindAlert, TailwindBadge, TailwindBreadcrumb, TailwindButton, TailwindCard, TailwindCheckbox, TailwindDatePicker, TailwindDateTimePicker, TailwindDivider, TailwindDrawer, TailwindIcon, TailwindInput, TailwindInputOtp, TailwindMenu, TailwindMessage, TailwindMeter, TailwindModal, TailwindModalRef, TailwindModalService, TailwindNotification, TailwindPagination, TailwindProgressBar, TailwindRadioGroup, TailwindSelect, TailwindSkeleton, TailwindSlider, TailwindSortHeaderDirective, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTableRowDirective, TailwindTableRowDirective as TailwindTableRowTemplateDirective, TailwindTag, TailwindTextarea, TailwindTimePicker, TailwindTitle, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective, TailwindUpload, buildTailwindThemeVariableEntries, defineTheme, provideTailwindComponents };
1412
- export type { Pagination, TailwindBreadcrumbItem, TailwindButtonKind, TailwindButtonRole, TailwindColor, TailwindComponentsConfig, TailwindDefineThemeColors, TailwindDefineThemeConfig, TailwindHeroicon, TailwindIconPosition, TailwindIconSize, TailwindMenuItem, TailwindMeterSegment, TailwindModalConfig, TailwindOption, TailwindOptionGroup, TailwindPosition, TailwindSeverity, TailwindShape, TailwindSize, TailwindSliderValue, TailwindTableSortHost, TailwindThemeColorShade, TailwindThemeSemantic, TailwindThemeSemanticPaletteObject, TailwindThemeSemanticShades, TailwindThemeSeverityColor, TailwindTitleTag, TailwindToastConfig, TailwindToastItem };
1500
+ export { DEFAULT_PAGINATION_LENGTH_OPTIONS, TAILWIND_BUTTON_KIND, TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_HEROICON_NAMES, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TAILWIND_PAGINATION_SUMMARY, TW_TABLE_SORT_DIR_ATTR, TW_TABLE_SORT_KEY_ATTR, TailwindAccordion, TailwindAccordionItem, TailwindAlert, TailwindAutocomplete, TailwindBadge, TailwindBreadcrumb, TailwindButton, TailwindCard, TailwindCheckbox, TailwindDatePicker, TailwindDateTimePicker, TailwindDivider, TailwindDrawer, TailwindIcon, TailwindInput, TailwindInputOtp, TailwindMenu, TailwindMessage, TailwindMeter, TailwindModal, TailwindModalRef, TailwindModalService, TailwindNotification, TailwindPagination, TailwindProgressBar, TailwindRadioGroup, TailwindSelect, TailwindSkeleton, TailwindSlider, TailwindSortHeaderDirective, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTableRowDirective, TailwindTableRowDirective as TailwindTableRowTemplateDirective, TailwindTag, TailwindTextarea, TailwindTimePicker, TailwindTitle, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective, TailwindUpload, buildTailwindThemeVariableEntries, defineTheme, provideTailwindComponents };
1501
+ export type { Pagination, TailwindAutocompleteItemContext, TailwindBreadcrumbItem, TailwindButtonKind, TailwindButtonRole, TailwindColor, TailwindComponentsConfig, TailwindDefineThemeColors, TailwindDefineThemeConfig, TailwindHeroicon, TailwindIconPosition, TailwindIconSize, TailwindMenuItem, TailwindMeterSegment, TailwindModalConfig, TailwindOption, TailwindOptionGroup, TailwindPosition, TailwindSeverity, TailwindShape, TailwindSize, TailwindSliderValue, TailwindTableSortHost, TailwindThemeColorShade, TailwindThemeSemantic, TailwindThemeSemanticPaletteObject, TailwindThemeSemanticShades, TailwindThemeSeverityColor, TailwindTitleTag, TailwindToastConfig, TailwindToastItem };