angular-tailwind-components 1.1.3 → 1.2.0

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.1.3",
3
+ "version": "1.2.0",
4
4
  "files": [
5
5
  "fesm2022",
6
6
  "types",
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, AfterViewInit, ElementRef, OnInit, Type, InjectionToken } from '@angular/core';
2
+ import { OnDestroy, ElementRef, AfterViewInit, OnInit, Type, InjectionToken } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
 
5
5
  /** Common types used across all components */
@@ -141,6 +141,170 @@ declare class TailwindInput extends TailwindComponent implements ControlValueAcc
141
141
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindInput, "tailwind-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "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; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
142
142
  }
143
143
 
144
+ declare class TailwindTextarea extends TailwindComponent implements ControlValueAccessor {
145
+ /** Label text */
146
+ readonly label: _angular_core.InputSignal<string>;
147
+ /** Placeholder text */
148
+ readonly placeholder: _angular_core.InputSignal<string>;
149
+ /** Visible row count */
150
+ readonly rows: _angular_core.InputSignal<number>;
151
+ /** Optional maximum width in columns */
152
+ readonly cols: _angular_core.InputSignal<number | undefined>;
153
+ /** Maximum character length (HTML maxlength) */
154
+ readonly maxlength: _angular_core.InputSignal<number | undefined>;
155
+ /** Resize behavior */
156
+ readonly resize: _angular_core.InputSignal<"vertical" | "none" | "both" | "horizontal">;
157
+ /** Size variant */
158
+ readonly size: _angular_core.InputSignal<TailwindSize>;
159
+ /** Whether the textarea is readonly */
160
+ readonly readonly: _angular_core.InputSignal<boolean>;
161
+ /** Helper text shown below field */
162
+ readonly helperText: _angular_core.InputSignal<string>;
163
+ /** Error text shown when hasError is true */
164
+ readonly errorText: _angular_core.InputSignal<string>;
165
+ /** Whether the textarea is in error state */
166
+ readonly hasError: _angular_core.InputSignal<boolean>;
167
+ /** Two-way bound value */
168
+ readonly value: _angular_core.ModelSignal<string>;
169
+ /** Internal disabled state */
170
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
171
+ /** Computed textarea classes */
172
+ readonly textareaClasses: _angular_core.Signal<string>;
173
+ private onChange;
174
+ private onTouched;
175
+ writeValue(value: string): void;
176
+ registerOnChange(fn: (value: string) => void): void;
177
+ registerOnTouched(fn: () => void): void;
178
+ setDisabledState(disabled: boolean): void;
179
+ onInputChange(event: Event): void;
180
+ onBlur(): void;
181
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindTextarea, never>;
182
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindTextarea, "tailwind-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "cols": { "alias": "cols"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "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; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
183
+ }
184
+
185
+ declare class TailwindUpload extends TailwindComponent implements ControlValueAccessor {
186
+ private static nextId;
187
+ private readonly fallbackFileId;
188
+ readonly fileInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
189
+ /** Visual layout: compact button or drop zone */
190
+ readonly variant: _angular_core.InputSignal<"button" | "area">;
191
+ /** Field label */
192
+ readonly label: _angular_core.InputSignal<string>;
193
+ /** Button label when `variant` is `button` */
194
+ readonly buttonLabel: _angular_core.InputSignal<string>;
195
+ /** Drop zone title when `variant` is `area` */
196
+ readonly areaTitle: _angular_core.InputSignal<string>;
197
+ /** Drop zone hint when `variant` is `area` */
198
+ readonly areaHint: _angular_core.InputSignal<string>;
199
+ /** Accepted MIME types / extensions (native `accept`) */
200
+ readonly accept: _angular_core.InputSignal<string | undefined>;
201
+ /** Allow multiple files */
202
+ readonly multiple: _angular_core.InputSignal<boolean>;
203
+ /** Max size per file (bytes); if any file exceeds it, selection is rejected */
204
+ readonly maxFileSizeBytes: _angular_core.InputSignal<number | undefined>;
205
+ /** Button / control size */
206
+ readonly size: _angular_core.InputSignal<TailwindSize>;
207
+ /** Show a clear control when there is a value */
208
+ readonly showClear: _angular_core.InputSignal<boolean>;
209
+ /** Label for the clear action (i18n) */
210
+ readonly clearText: _angular_core.InputSignal<string>;
211
+ readonly helperText: _angular_core.InputSignal<string>;
212
+ readonly errorText: _angular_core.InputSignal<string>;
213
+ readonly hasError: _angular_core.InputSignal<boolean>;
214
+ /** Data URL (`data:<mime>;base64,...`) — forms / `[(value)]`; with `multiple`, only the first file is stored here */
215
+ readonly value: _angular_core.ModelSignal<string>;
216
+ /** Raw files after a successful selection */
217
+ readonly filesSelected: _angular_core.OutputEmitterRef<File[]>;
218
+ /** Human-readable validation message when selection is rejected */
219
+ readonly validationError: _angular_core.OutputEmitterRef<string>;
220
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
221
+ readonly isDragOver: _angular_core.WritableSignal<boolean>;
222
+ readonly selectedNames: _angular_core.WritableSignal<string[]>;
223
+ private dragDepth;
224
+ private onChange;
225
+ private onTouched;
226
+ readonly fileInputId: _angular_core.Signal<string>;
227
+ readonly areaClasses: _angular_core.Signal<string>;
228
+ writeValue(obj: string | null): void;
229
+ registerOnChange(fn: (value: string) => void): void;
230
+ registerOnTouched(fn: () => void): void;
231
+ setDisabledState(disabled: boolean): void;
232
+ triggerPicker(event?: Event): void;
233
+ onKeydownArea(event: KeyboardEvent): void;
234
+ onDragEnter(event: DragEvent): void;
235
+ onDragLeave(event: DragEvent): void;
236
+ onDragOver(event: DragEvent): void;
237
+ onDrop(event: DragEvent): void;
238
+ onNativeChange(event: Event): void;
239
+ clear(event?: Event): void;
240
+ blurHost(): void;
241
+ private validate;
242
+ private handleFiles;
243
+ private readAsDataUrl;
244
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindUpload, never>;
245
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindUpload, "tailwind-upload", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "areaTitle": { "alias": "areaTitle"; "required": false; "isSignal": true; }; "areaHint": { "alias": "areaHint"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFileSizeBytes": { "alias": "maxFileSizeBytes"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "clearText": { "alias": "clearText"; "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; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "filesSelected": "filesSelected"; "validationError": "validationError"; }, never, never, true, never>;
246
+ }
247
+
248
+ declare class TailwindInputOtp extends TailwindComponent implements ControlValueAccessor {
249
+ /** Label text */
250
+ readonly label: _angular_core.InputSignal<string>;
251
+ /** Number of character slots */
252
+ readonly length: _angular_core.InputSignal<number>;
253
+ /** Allow only digits */
254
+ readonly integerOnly: _angular_core.InputSignal<boolean>;
255
+ /** Mask digits (password bullets) */
256
+ readonly mask: _angular_core.InputSignal<boolean>;
257
+ /** Size variant */
258
+ readonly size: _angular_core.InputSignal<TailwindSize>;
259
+ /** Slots are read-only (navigation still allowed) */
260
+ readonly readonly: _angular_core.InputSignal<boolean>;
261
+ /** Helper text shown below */
262
+ readonly helperText: _angular_core.InputSignal<string>;
263
+ /** Error text when hasError is true */
264
+ readonly errorText: _angular_core.InputSignal<string>;
265
+ /** Error state styling */
266
+ readonly hasError: _angular_core.InputSignal<boolean>;
267
+ /** Accessible label for the group (used when label is empty) */
268
+ readonly ariaLabel: _angular_core.InputSignal<string>;
269
+ /** Separator string; empty hides */
270
+ readonly separator: _angular_core.InputSignal<string>;
271
+ /** 0-based slot index after which the separator is rendered */
272
+ readonly separatorAfterIndex: _angular_core.InputSignal<number | null>;
273
+ /** Hint for browsers / SMS autofill (first slot only) */
274
+ readonly autocomplete: _angular_core.InputSignal<string>;
275
+ /** Two-way bound full code string */
276
+ readonly value: _angular_core.ModelSignal<string>;
277
+ /** Emitted when all slots are filled */
278
+ readonly completed: _angular_core.OutputEmitterRef<string>;
279
+ readonly isDisabled: _angular_core.WritableSignal<boolean>;
280
+ readonly slotIndexes: _angular_core.Signal<number[]>;
281
+ readonly otpInputs: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
282
+ readonly cellClasses: _angular_core.Signal<string>;
283
+ readonly groupAriaLabel: _angular_core.Signal<string>;
284
+ private onChange;
285
+ private onTouched;
286
+ writeValue(value: string): void;
287
+ registerOnChange(fn: (value: string) => void): void;
288
+ registerOnTouched(fn: () => void): void;
289
+ setDisabledState(disabled: boolean): void;
290
+ maxSlots(): number;
291
+ digitAt(index: number): string;
292
+ showSeparatorAfter(index: number): boolean;
293
+ inputType(): string;
294
+ inputMode(): 'numeric' | 'text';
295
+ autocompleteForSlot(index: number): string | null;
296
+ cellId(index: number): string;
297
+ onSlotFocus(index: number): void;
298
+ onInput(event: Event, index: number): void;
299
+ onPaste(event: ClipboardEvent, index: number): void;
300
+ onKeydown(event: KeyboardEvent, index: number): void;
301
+ private commit;
302
+ private normalizeIncoming;
303
+ private focusSlot;
304
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TailwindInputOtp, never>;
305
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TailwindInputOtp, "tailwind-input-otp", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "integerOnly": { "alias": "integerOnly"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "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; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "separatorAfterIndex": { "alias": "separatorAfterIndex"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "completed": "completed"; }, never, never, true, never>;
306
+ }
307
+
144
308
  declare class TailwindCheckbox extends TailwindComponent implements ControlValueAccessor {
145
309
  /** Label text */
146
310
  readonly label: _angular_core.InputSignal<string>;
@@ -178,7 +342,7 @@ declare class TailwindRadioGroup<T = unknown> extends TailwindComponent implemen
178
342
  /** Size variant */
179
343
  readonly size: _angular_core.InputSignal<TailwindSize>;
180
344
  /** Layout orientation */
181
- readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
345
+ readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
182
346
  /** Currently selected value */
183
347
  readonly value: _angular_core.ModelSignal<T | null>;
184
348
  /** Internal disabled state */
@@ -365,7 +529,7 @@ declare class TailwindSpinner extends TailwindComponent {
365
529
  /** Aria label for accessibility */
366
530
  readonly ariaLabel: _angular_core.InputSignal<string>;
367
531
  /** Layout orientation */
368
- readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
532
+ readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
369
533
  readonly containerClasses: _angular_core.Signal<string>;
370
534
  readonly spinnerClasses: _angular_core.Signal<string>;
371
535
  readonly labelClasses: _angular_core.Signal<string>;
@@ -896,7 +1060,7 @@ declare class TailwindToolbar extends TailwindComponent {
896
1060
  /** Applies a stronger drop shadow. */
897
1061
  readonly elevated: _angular_core.InputSignal<boolean>;
898
1062
  /** `horizontal` for a top app bar; `vertical` for a side rail (logo → menu → end). */
899
- readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
1063
+ readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
900
1064
  /** Navigation / actions rendered between logo and end slots. */
901
1065
  readonly menu: _angular_core.InputSignal<TailwindMenuItem[]>;
902
1066
  /** Emitted when a non-disabled, non-divider menu entry is activated. */
@@ -912,7 +1076,7 @@ declare class TailwindToolbar extends TailwindComponent {
912
1076
 
913
1077
  declare class TailwindDivider extends TailwindComponent {
914
1078
  /** Rule direction */
915
- readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
1079
+ readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
916
1080
  /** Adds horizontal margin to the rule (horizontal orientation only). */
917
1081
  readonly inset: _angular_core.InputSignal<boolean>;
918
1082
  /** Border style for the rule */
@@ -979,7 +1143,7 @@ declare class TailwindSlider extends TailwindComponent implements ControlValueAc
979
1143
  /** Two-thumb range mode */
980
1144
  readonly range: _angular_core.InputSignal<boolean>;
981
1145
  /** Layout */
982
- readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
1146
+ readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
983
1147
  /** Tick marks at each step */
984
1148
  readonly showTicks: _angular_core.InputSignal<boolean>;
985
1149
  /** Control size */
@@ -1051,5 +1215,5 @@ declare class TailwindModalRef<R = any> {
1051
1215
  _getResult(): R | undefined;
1052
1216
  }
1053
1217
 
1054
- export { TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TAILWIND_SOLAR_ICON_NAMES, TailwindAccordion, TailwindAccordionItem, TailwindAlert, TailwindBadge, TailwindBreadcrumb, TailwindButton, TailwindCard, TailwindCheckbox, TailwindDatePicker, TailwindDateTimePicker, TailwindDivider, TailwindDrawer, TailwindIcon, TailwindInput, TailwindMenu, TailwindMessage, TailwindMeter, TailwindModal, TailwindModalRef, TailwindModalService, TailwindNotification, TailwindPagination, TailwindProgressBar, TailwindRadioGroup, TailwindSelect, TailwindSkeleton, TailwindSlider, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTag, TailwindTimePicker, TailwindTitle, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective };
1218
+ export { TAILWIND_COMPONENTS_SIZE, TAILWIND_DATETIME_LANGUAGE, TAILWIND_ICON_SIZE, TAILWIND_MODAL_DATA, TAILWIND_SOLAR_ICON_NAMES, 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, TailwindSpinner, TailwindStep, TailwindStepper, TailwindTab, TailwindTabGroup, TailwindTable, TailwindTag, TailwindTextarea, TailwindTimePicker, TailwindTitle, TailwindToast, TailwindToastService, TailwindToggle, TailwindToolbar, TailwindTooltip, TailwindTooltipDirective, TailwindUpload };
1055
1219
  export type { Pagination, TailwindBreadcrumbItem, TailwindButtonKind, TailwindColor, TailwindIconSize, TailwindMenuItem, TailwindMeterSegment, TailwindModalConfig, TailwindOption, TailwindOptionGroup, TailwindPosition, TailwindSeverity, TailwindShape, TailwindSize, TailwindSliderValue, TailwindSolarIcon, TailwindTableColumn, TailwindTitleTag, TailwindToastConfig, TailwindToastItem };