@m1z23r/ngx-ui 1.1.29 → 1.1.31

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": "@m1z23r/ngx-ui",
3
- "version": "1.1.29",
3
+ "version": "1.1.31",
4
4
  "description": "A modern Angular UI component library with themeable components and responsive layout system",
5
5
  "license": "MIT",
6
6
  "author": "m1z23r",
@@ -452,6 +452,13 @@ interface DynamicTab<TData = unknown, TResult = unknown> {
452
452
  closable: boolean;
453
453
  tabRef: TabRef<TResult>;
454
454
  }
455
+ /**
456
+ * Controls how inactive tab panels are handled.
457
+ * - `'conditional'` (default): Inactive panels are removed from the DOM (destroyed/recreated on switch).
458
+ * - `'persistent'`: All panels stay in the DOM, inactive ones are hidden via CSS `display: none`.
459
+ * Use this to preserve component state across tab switches.
460
+ */
461
+ type TabRenderMode = 'conditional' | 'persistent';
455
462
 
456
463
  /**
457
464
  * Service for managing dynamic tabs.
@@ -1174,6 +1181,8 @@ declare class TabComponent {
1174
1181
  private readonly iconDirective;
1175
1182
  /** @internal */
1176
1183
  readonly _index: _angular_core.WritableSignal<number>;
1184
+ /** @internal */
1185
+ readonly _renderMode: _angular_core.WritableSignal<TabRenderMode>;
1177
1186
  private _parent;
1178
1187
  readonly iconTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
1179
1188
  protected readonly isActive: _angular_core.Signal<boolean>;
@@ -1189,6 +1198,7 @@ declare class TabsComponent {
1189
1198
  readonly variant: _angular_core.InputSignal<TabsVariant>;
1190
1199
  readonly size: _angular_core.InputSignal<TabsSize>;
1191
1200
  readonly ariaLabel: _angular_core.InputSignal<string>;
1201
+ readonly renderMode: _angular_core.InputSignal<TabRenderMode>;
1192
1202
  readonly activeTab: _angular_core.ModelSignal<string | number>;
1193
1203
  readonly tabs: _angular_core.Signal<readonly TabComponent[]>;
1194
1204
  private readonly tabList;
@@ -1204,7 +1214,7 @@ declare class TabsComponent {
1204
1214
  /** @internal */
1205
1215
  _isTabActive(tab: TabComponent, index: number): boolean;
1206
1216
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
1207
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ui-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; }, ["tabs"], ["*"], true, never>;
1217
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ui-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "renderMode": { "alias": "renderMode"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; }, ["tabs"], ["*"], true, never>;
1208
1218
  }
1209
1219
 
1210
1220
  declare class TabIconDirective {
@@ -1227,6 +1237,7 @@ declare class DynamicTabsComponent {
1227
1237
  readonly variant: _angular_core.InputSignal<DynamicTabsVariant>;
1228
1238
  readonly size: _angular_core.InputSignal<DynamicTabsSize>;
1229
1239
  readonly ariaLabel: _angular_core.InputSignal<string>;
1240
+ readonly renderMode: _angular_core.InputSignal<TabRenderMode>;
1230
1241
  private readonly tabList;
1231
1242
  protected readonly indicatorLeft: _angular_core.WritableSignal<number>;
1232
1243
  protected readonly indicatorWidth: _angular_core.WritableSignal<number>;
@@ -1242,7 +1253,7 @@ declare class DynamicTabsComponent {
1242
1253
  private focusTab;
1243
1254
  private updateIndicator;
1244
1255
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicTabsComponent, never>;
1245
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicTabsComponent, "ui-dynamic-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1256
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicTabsComponent, "ui-dynamic-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "renderMode": { "alias": "renderMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1246
1257
  }
1247
1258
 
1248
1259
  declare class AccordionItemComponent {
@@ -1906,5 +1917,88 @@ declare class TreeNodeComponent {
1906
1917
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeNodeComponent, "ui-tree-node", never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "indent": { "alias": "indent"; "required": false; "isSignal": true; }; }, { "nodeClick": "nodeClick"; "nodeExpand": "nodeExpand"; "nodeCollapse": "nodeCollapse"; }, never, never, true, never>;
1907
1918
  }
1908
1919
 
1909
- export { AccordionComponent, AccordionHeaderDirective, AccordionItemComponent, AlertComponent, BadgeComponent, ButtonComponent, CardComponent, CellTemplateDirective, CellValuePipe, CheckboxComponent, ChipInputComponent, ChipTemplateDirective, CircularProgressComponent, ContentComponent, ContextMenuDirective, DIALOG_DATA, DIALOG_REF, DatepickerComponent, DatetimepickerComponent, DialogRef, DialogService, DropdownComponent, DropdownDividerComponent, DropdownItemComponent, DropdownTriggerDirective, DynamicTabsComponent, FileChooserComponent, FilePreviewPipe, FileSizePipe, FooterComponent, InputComponent, LOADABLE, LoadingDirective, LoadingService, ModalComponent, NavbarComponent, OptionComponent, OptionTemplateDirective, PaginationComponent, ProgressComponent, RadioComponent, RadioGroupComponent, SelectComponent, ShellComponent, SidebarComponent, SidebarService, SidebarToggleComponent, SliderComponent, SpinnerComponent, SplitComponent, SplitPaneComponent, SwitchComponent, TAB_DATA, TAB_REF, TREE_HOST, TabActivePipe, TabComponent, TabIconDirective, TabRef, TableComponent, TabsComponent, TabsService, TextareaComponent, TimepickerComponent, ToastRef, ToastService, TooltipDirective, TreeComponent, TreeNodeComponent, Validators };
1910
- export type { AccordionVariant, AlertVariant, BadgeSize, BadgeVariant, ButtonColor, ButtonSize, ButtonVariant, CardPadding, CardVariant, CheckboxSize, ChipInputSize, ChipInputVariant, ChipTemplateContext, CircularProgressSize, CircularProgressVariant, DateRange, DatepickerSize, DatepickerVariant, DatepickerView, DatetimepickerSize, DatetimepickerVariant, DatetimepickerView, DialogConfig, DropdownAlign, DropdownPosition, DynamicTabConfig, DynamicTabsSize, DynamicTabsVariant, FileChooserSize, FileChooserVariant, InputType, Loadable, ModalSize, OptionTemplateContext, PaginationSize, ProgressSize, ProgressVariant, RadioGroupOrientation, RadioGroupSize, RadioGroupVariant, SelectSize, SelectVariant, ShellVariant, SliderSize, SortDirection, SortState, SpinnerSize, SpinnerVariant, SplitGutterSize, SplitOrientation, SplitSizeChange, SwitchSize, TableColumn, TabsSize, TabsVariant, TextareaResize, TimeFormat, TimeValue, TimepickerSize, TimepickerVariant, ToastConfig, ToastPosition, ToastVariant, TooltipPosition, TreeDropPosition, TreeNode, TreeNodeDropEvent, ValidationError, ValidationState, ValidatorFn };
1920
+ interface TemplateVariable {
1921
+ key: string;
1922
+ value: string;
1923
+ }
1924
+ type VariableState = 'resolved' | 'unset' | 'unknown';
1925
+ /** Context provided to variable popover templates */
1926
+ interface VariablePopoverContext {
1927
+ /** The variable key (same as `key`) */
1928
+ $implicit: string;
1929
+ /** The variable key */
1930
+ key: string;
1931
+ /** Current value from the variables array, or empty string if unknown */
1932
+ value: string;
1933
+ /** State of the variable: 'resolved', 'unset', or 'unknown' */
1934
+ state: VariableState;
1935
+ /** Close the popover */
1936
+ close: () => void;
1937
+ }
1938
+ /** Directive to mark a custom variable popover template */
1939
+ declare class VariablePopoverDirective {
1940
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VariablePopoverDirective, never>;
1941
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<VariablePopoverDirective, "ng-template[uiVariablePopover]", never, {}, {}, never, never, true, never>;
1942
+ }
1943
+ declare class TemplateInputComponent implements OnDestroy {
1944
+ private readonly renderer;
1945
+ readonly label: _angular_core.InputSignal<string>;
1946
+ readonly placeholder: _angular_core.InputSignal<string>;
1947
+ readonly hint: _angular_core.InputSignal<string>;
1948
+ readonly error: _angular_core.InputSignal<string>;
1949
+ readonly disabled: _angular_core.InputSignal<boolean>;
1950
+ readonly readonly: _angular_core.InputSignal<boolean>;
1951
+ readonly required: _angular_core.InputSignal<boolean>;
1952
+ readonly id: _angular_core.InputSignal<string>;
1953
+ /** The template string value. Two-way bindable. */
1954
+ readonly value: _angular_core.ModelSignal<string>;
1955
+ /**
1956
+ * Known variables with their values. Two-way bindable.
1957
+ *
1958
+ * The component detects `{{key}}` patterns in the value and resolves state:
1959
+ * - Key found with a truthy value → 'resolved' (green)
1960
+ * - Key found with empty/falsy value → 'unset' (amber)
1961
+ * - Key NOT found in array → 'unknown' (red)
1962
+ */
1963
+ readonly variables: _angular_core.ModelSignal<TemplateVariable[]>;
1964
+ /** Emits the variable key on hover, or null when hover ends. */
1965
+ readonly variableHover: _angular_core.OutputEmitterRef<string | null>;
1966
+ /** Custom popover template for variables. Receives VariablePopoverContext. */
1967
+ readonly popoverTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1968
+ private static nextId;
1969
+ private readonly generatedId;
1970
+ protected readonly inputId: _angular_core.Signal<string>;
1971
+ protected readonly mirrorRef: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1972
+ protected readonly inputRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
1973
+ protected readonly popoverVisible: _angular_core.WritableSignal<boolean>;
1974
+ protected readonly popoverTop: _angular_core.WritableSignal<number>;
1975
+ protected readonly popoverLeft: _angular_core.WritableSignal<number>;
1976
+ protected readonly popoverText: _angular_core.WritableSignal<string>;
1977
+ protected readonly popoverVarKey: _angular_core.WritableSignal<string>;
1978
+ protected readonly popoverContext: _angular_core.Signal<VariablePopoverContext>;
1979
+ private hoveredVar;
1980
+ private hideTimer;
1981
+ constructor(renderer: Renderer2);
1982
+ protected readonly highlightedHtml: _angular_core.Signal<string>;
1983
+ protected syncScroll(): void;
1984
+ protected onInput(): void;
1985
+ protected onKeyDown(): void;
1986
+ protected onMouseMove(event: MouseEvent): void;
1987
+ protected onContainerMouseLeave(): void;
1988
+ protected onPopoverMouseEnter(): void;
1989
+ protected onPopoverMouseLeave(): void;
1990
+ private resolveVarState;
1991
+ private showPopover;
1992
+ private closePopover;
1993
+ private scheduleHide;
1994
+ private cancelHide;
1995
+ private escapeHtml;
1996
+ private static readonly STYLE_CONTENT;
1997
+ private injectStyles;
1998
+ ngOnDestroy(): void;
1999
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TemplateInputComponent, never>;
2000
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TemplateInputComponent, "ui-template-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "variables": { "alias": "variables"; "required": true; "isSignal": true; }; }, { "value": "valueChange"; "variables": "variablesChange"; "variableHover": "variableHover"; }, ["popoverTemplate"], never, true, never>;
2001
+ }
2002
+
2003
+ export { AccordionComponent, AccordionHeaderDirective, AccordionItemComponent, AlertComponent, BadgeComponent, ButtonComponent, CardComponent, CellTemplateDirective, CellValuePipe, CheckboxComponent, ChipInputComponent, ChipTemplateDirective, CircularProgressComponent, ContentComponent, ContextMenuDirective, DIALOG_DATA, DIALOG_REF, DatepickerComponent, DatetimepickerComponent, DialogRef, DialogService, DropdownComponent, DropdownDividerComponent, DropdownItemComponent, DropdownTriggerDirective, DynamicTabsComponent, FileChooserComponent, FilePreviewPipe, FileSizePipe, FooterComponent, InputComponent, LOADABLE, LoadingDirective, LoadingService, ModalComponent, NavbarComponent, OptionComponent, OptionTemplateDirective, PaginationComponent, ProgressComponent, RadioComponent, RadioGroupComponent, SelectComponent, ShellComponent, SidebarComponent, SidebarService, SidebarToggleComponent, SliderComponent, SpinnerComponent, SplitComponent, SplitPaneComponent, SwitchComponent, TAB_DATA, TAB_REF, TREE_HOST, TabActivePipe, TabComponent, TabIconDirective, TabRef, TableComponent, TabsComponent, TabsService, TemplateInputComponent, TextareaComponent, TimepickerComponent, ToastRef, ToastService, TooltipDirective, TreeComponent, TreeNodeComponent, Validators, VariablePopoverDirective };
2004
+ export type { AccordionVariant, AlertVariant, BadgeSize, BadgeVariant, ButtonColor, ButtonSize, ButtonVariant, CardPadding, CardVariant, CheckboxSize, ChipInputSize, ChipInputVariant, ChipTemplateContext, CircularProgressSize, CircularProgressVariant, DateRange, DatepickerSize, DatepickerVariant, DatepickerView, DatetimepickerSize, DatetimepickerVariant, DatetimepickerView, DialogConfig, DropdownAlign, DropdownPosition, DynamicTabConfig, DynamicTabsSize, DynamicTabsVariant, FileChooserSize, FileChooserVariant, InputType, Loadable, ModalSize, OptionTemplateContext, PaginationSize, ProgressSize, ProgressVariant, RadioGroupOrientation, RadioGroupSize, RadioGroupVariant, SelectSize, SelectVariant, ShellVariant, SliderSize, SortDirection, SortState, SpinnerSize, SpinnerVariant, SplitGutterSize, SplitOrientation, SplitSizeChange, SwitchSize, TabRenderMode, TableColumn, TabsSize, TabsVariant, TemplateVariable, TextareaResize, TimeFormat, TimeValue, TimepickerSize, TimepickerVariant, ToastConfig, ToastPosition, ToastVariant, TooltipPosition, TreeDropPosition, TreeNode, TreeNodeDropEvent, ValidationError, ValidationState, ValidatorFn, VariablePopoverContext, VariableState };