@tekus/design-system 5.35.0 → 5.37.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.
Files changed (40) hide show
  1. package/fesm2022/tekus-design-system-components-carousel.mjs +32 -7
  2. package/fesm2022/tekus-design-system-components-carousel.mjs.map +1 -1
  3. package/fesm2022/tekus-design-system-components-color-picker.mjs +203 -29
  4. package/fesm2022/tekus-design-system-components-color-picker.mjs.map +1 -1
  5. package/fesm2022/tekus-design-system-components-grid-container.mjs +181 -0
  6. package/fesm2022/tekus-design-system-components-grid-container.mjs.map +1 -0
  7. package/fesm2022/tekus-design-system-components-header.mjs +29 -0
  8. package/fesm2022/tekus-design-system-components-header.mjs.map +1 -0
  9. package/fesm2022/tekus-design-system-components-modal.mjs +49 -29
  10. package/fesm2022/tekus-design-system-components-modal.mjs.map +1 -1
  11. package/fesm2022/tekus-design-system-components-process-steps.mjs +24 -3
  12. package/fesm2022/tekus-design-system-components-process-steps.mjs.map +1 -1
  13. package/fesm2022/tekus-design-system-components-section.mjs +63 -0
  14. package/fesm2022/tekus-design-system-components-section.mjs.map +1 -0
  15. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs +20 -6
  16. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs.map +1 -1
  17. package/fesm2022/tekus-design-system-components-tree-table.mjs +94 -0
  18. package/fesm2022/tekus-design-system-components-tree-table.mjs.map +1 -0
  19. package/fesm2022/tekus-design-system-components-uploader.mjs +1256 -0
  20. package/fesm2022/tekus-design-system-components-uploader.mjs.map +1 -0
  21. package/fesm2022/tekus-design-system-core-types.mjs +22 -7
  22. package/fesm2022/tekus-design-system-core-types.mjs.map +1 -1
  23. package/fesm2022/tekus-design-system-core.mjs +22 -7
  24. package/fesm2022/tekus-design-system-core.mjs.map +1 -1
  25. package/fesm2022/tekus-design-system-directives-gird-item.mjs +1 -1
  26. package/fesm2022/tekus-design-system-directives-gird-item.mjs.map +1 -1
  27. package/package.json +21 -1
  28. package/types/tekus-design-system-components-carousel.d.ts +6 -2
  29. package/types/tekus-design-system-components-color-picker.d.ts +75 -12
  30. package/types/tekus-design-system-components-grid-container.d.ts +123 -0
  31. package/types/tekus-design-system-components-header.d.ts +33 -0
  32. package/types/tekus-design-system-components-modal.d.ts +30 -12
  33. package/types/tekus-design-system-components-process-steps.d.ts +16 -1
  34. package/types/tekus-design-system-components-section.d.ts +45 -0
  35. package/types/tekus-design-system-components-sidebar-layout.d.ts +11 -1
  36. package/types/tekus-design-system-components-tree-table.d.ts +62 -0
  37. package/types/tekus-design-system-components-uploader.d.ts +524 -0
  38. package/types/tekus-design-system-core-types.d.ts +7 -7
  39. package/types/tekus-design-system-core.d.ts +7 -7
  40. package/types/tekus-design-system-directives-gird-item.d.ts +1 -1
@@ -56,19 +56,19 @@ declare class ModalComponent<T = unknown> implements OnDestroy {
56
56
  private readonly contentHost;
57
57
  private componentRef?;
58
58
  /** The dialog ref associated with this modal */
59
- dialogRef: _angular_core.InputSignal<TkDialogRef<ModalComponent<T>, unknown> | null>;
59
+ readonly dialogRef: _angular_core.InputSignal<TkDialogRef<ModalComponent<T>, unknown> | null>;
60
60
  /** The title displayed at the top of the modal */
61
- title: _angular_core.InputSignal<string>;
61
+ readonly title: _angular_core.InputSignal<string>;
62
62
  /** The main content of the modal. Can be a string or a Component Type. */
63
- content: _angular_core.InputSignal<string | Type<T> | null>;
63
+ readonly content: _angular_core.InputSignal<string | Type<T> | null>;
64
64
  /** Array of footer buttons with label, callback, and return value */
65
- footerButtons: _angular_core.ModelSignal<ModalFooterButton[]>;
65
+ readonly footerButtons: _angular_core.ModelSignal<ModalFooterButton[]>;
66
66
  /** Modal size: 'small', 'large', 'medium' or 'full' */
67
- size: _angular_core.InputSignal<ModalSizeType>;
67
+ readonly size: _angular_core.InputSignal<ModalSizeType>;
68
68
  /** Whether the modal can be closed by the user via close button */
69
- closable: _angular_core.InputSignal<boolean>;
69
+ readonly closable: _angular_core.InputSignal<boolean>;
70
70
  /** Whether clicking outside the modal mask closes the modal */
71
- closeOnOutsideClick: _angular_core.InputSignal<boolean>;
71
+ readonly closeOnOutsideClick: _angular_core.InputSignal<boolean>;
72
72
  /**
73
73
  * Optional data to be passed as inputs to the dynamic component.
74
74
  */
@@ -77,15 +77,15 @@ declare class ModalComponent<T = unknown> implements OnDestroy {
77
77
  * Optional interceptor called before the modal closes.
78
78
  * MUST be synchronous. Returns true to allow closing.
79
79
  */
80
- interceptor: _angular_core.InputSignal<TkCloseInterceptor | undefined>;
80
+ readonly interceptor: _angular_core.InputSignal<TkCloseInterceptor | undefined>;
81
81
  /** Computed: whether the content is a simple string */
82
- isContentString: _angular_core.Signal<boolean>;
82
+ readonly isContentString: _angular_core.Signal<boolean>;
83
83
  /** Computed: whether the modal has footer buttons to display */
84
- hasFooter: _angular_core.Signal<boolean>;
84
+ readonly hasFooter: _angular_core.Signal<boolean>;
85
85
  /** Whether the modal should be responsive on mobile screens */
86
- responsive: _angular_core.InputSignal<boolean>;
86
+ readonly responsive: _angular_core.InputSignal<boolean>;
87
87
  /** Visibility flag as Model Signal (allows two-way binding) */
88
- isOpened: _angular_core.ModelSignal<boolean>;
88
+ readonly isOpened: _angular_core.ModelSignal<boolean>;
89
89
  /** Whether the modal content has a scrollbar */
90
90
  hasScroll: boolean;
91
91
  /** Emits when the modal closes, passing the return value from footer buttons or null */
@@ -93,6 +93,15 @@ declare class ModalComponent<T = unknown> implements OnDestroy {
93
93
  private alreadyEmitted;
94
94
  private returnValueOnClose;
95
95
  constructor();
96
+ /**
97
+ * @summary Orchestrates the reactive dynamic lifecycle.
98
+ * @private
99
+ */
100
+ private registerContentLifecycleEffect;
101
+ /**
102
+ * @private
103
+ */
104
+ private registerDataSyncEffect;
96
105
  /** Computed: calculates modal max-width based on `size` */
97
106
  modalMaxWidth: _angular_core.Signal<"67.5rem" | "35rem" | "98vw" | "28.125rem">;
98
107
  ngOnDestroy(): void;
@@ -101,6 +110,10 @@ declare class ModalComponent<T = unknown> implements OnDestroy {
101
110
  * @private
102
111
  */
103
112
  private attachDynamicContent;
113
+ /**
114
+ * @private
115
+ */
116
+ private createContentInjector;
104
117
  /**
105
118
  * @summary Synchronizes incoming data record with the dynamic instance @Inputs.
106
119
  * @private
@@ -126,6 +139,11 @@ declare class ModalComponent<T = unknown> implements OnDestroy {
126
139
  * @param returnValue (Optional) Value to emit on close.
127
140
  */
128
141
  tryClose(returnValue?: unknown): void;
142
+ /**
143
+ * @summary Evaluates the optional close interceptor, then executes closure.
144
+ * @private
145
+ */
146
+ private resolveInterceptorAndClose;
129
147
  /**
130
148
  * Evaluates a boolean, Promise or Observable to check if closing is allowed.
131
149
  */
@@ -4,6 +4,8 @@ type StepState = 'waiting' | 'active' | 'done' | 'error' | 'warning';
4
4
  interface ProcessStep {
5
5
  label: string;
6
6
  state: StepState;
7
+ /** Optional secondary line shown below the label — e.g. "Errors detected — check notifications" for a failed step. */
8
+ description?: string;
7
9
  }
8
10
  /**
9
11
  * Overall result of the process:
@@ -19,6 +21,17 @@ declare class ProcessStepsComponent {
19
21
  readonly description: _angular_core.InputSignal<string | undefined>;
20
22
  readonly icon: _angular_core.InputSignal<string>;
21
23
  readonly status: _angular_core.InputSignal<ProcessStepsStatus>;
24
+ /** Whether to show the spinner + icon header while `status` is `progress`. */
25
+ readonly showIcon: _angular_core.InputSignal<boolean>;
26
+ /**
27
+ * Strips the panel down to just the step list: no padding, and no
28
+ * `title`/`description` header while `status` is `progress` — for hosts
29
+ * that provide their own framing (e.g. a card) and already show the file
30
+ * name elsewhere. The final result view (`success`/`error`/`warning`)
31
+ * still shows its own title/message, since that's the only place the
32
+ * outcome text is surfaced.
33
+ */
34
+ readonly compact: _angular_core.InputSignal<boolean>;
22
35
  /** Specific problems to list inside the result message box (ignored when `status` is `success`). */
23
36
  readonly errors: _angular_core.InputSignal<string[]>;
24
37
  /** Seconds until the countdown finishes; omit to disable it. */
@@ -47,10 +60,12 @@ declare class ProcessStepsComponent {
47
60
  readonly resultColor: _angular_core.Signal<"warning" | "success" | "danger">;
48
61
  /** Severity for the message box wrapping `description`/`errors` (success has no box). */
49
62
  readonly resultMessageSeverity: _angular_core.Signal<"error" | "warn">;
63
+ /** Severity for the compact terminal banner (`tk-message`) — unlike `resultMessageSeverity`, success gets its own box here. */
64
+ readonly bannerSeverity: _angular_core.Signal<"error" | "success" | "warn">;
50
65
  /** `countdownLabel` with `{seconds}` filled in, or `undefined` while the countdown is disabled. */
51
66
  readonly countdownText: _angular_core.Signal<string | undefined>;
52
67
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProcessStepsComponent, never>;
53
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProcessStepsComponent, "tk-process-steps", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "countdownSeconds": { "alias": "countdownSeconds"; "required": false; "isSignal": true; }; "countdownLabel": { "alias": "countdownLabel"; "required": false; "isSignal": true; }; }, { "countdownFinished": "countdownFinished"; }, never, never, true, never>;
68
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProcessStepsComponent, "tk-process-steps", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "countdownSeconds": { "alias": "countdownSeconds"; "required": false; "isSignal": true; }; "countdownLabel": { "alias": "countdownLabel"; "required": false; "isSignal": true; }; }, { "countdownFinished": "countdownFinished"; }, never, never, true, never>;
54
69
  }
55
70
 
56
71
  export { ProcessStepsComponent };
@@ -0,0 +1,45 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TagSeverity } from '@tekus/design-system/components/tag';
3
+
4
+ /**
5
+ * @component SectionComponent
6
+ * @description
7
+ * The Section component provides a structured, responsive layout block with an optional header and content area.
8
+ * It supports standard layouts, split layouts (two columns or two rows) with independent scrollable areas,
9
+ * and custom transclusion slots for headers, tags, and actions.
10
+ *
11
+ * @usage
12
+ * ```html
13
+ * <tk-section title="Licensing" tagText="Active" tagSeverity="success" icon="pi-cog">
14
+ * <div>Standard content area</div>
15
+ * </tk-section>
16
+ * ```
17
+ */
18
+ declare class SectionComponent {
19
+ /** The primary title of the section. Optional. If omitted, the header is not rendered. */
20
+ title: _angular_core.InputSignal<string | undefined>;
21
+ /** Optional fixed height for the section (e.g. '300px', '100%'). If content exceeds this height, it scrolls. */
22
+ height: _angular_core.InputSignal<string | undefined>;
23
+ /** Optional tag text displayed next to the title. */
24
+ tagText: _angular_core.InputSignal<string | undefined>;
25
+ /** Optional tag severity for color styling. Defaults to 'info'. */
26
+ tagSeverity: _angular_core.InputSignal<TagSeverity>;
27
+ /** Optional prefix icon class (e.g. 'pi-plus'). Shows a circular prefix icon in the header if set. */
28
+ icon: _angular_core.InputSignal<string | undefined>;
29
+ /** Additional info text for the right side of the main header */
30
+ infoText: _angular_core.InputSignal<string | undefined>;
31
+ /** Icon for the right side of the main header */
32
+ infoIcon: _angular_core.InputSignal<string | undefined>;
33
+ /** Severity color for the main header info text ('default', 'danger', etc.) */
34
+ infoSeverity: _angular_core.InputSignal<"success" | "info" | "danger" | "default" | "warning">;
35
+ /** If true, the section body is split into two panels (left/right or top/bottom). */
36
+ split: _angular_core.InputSignal<boolean>;
37
+ /** Layout direction for the split panels: 'row' (side-by-side) or 'column' (stacked). Defaults to 'row'. */
38
+ direction: _angular_core.InputSignal<"row" | "column">;
39
+ /** If true and split mode is enabled, each panel will scroll independently when content overflows. */
40
+ scrollable: _angular_core.InputSignal<boolean>;
41
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionComponent, never>;
42
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionComponent, "tk-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "tagText": { "alias": "tagText"; "required": false; "isSignal": true; }; "tagSeverity": { "alias": "tagSeverity"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "infoText": { "alias": "infoText"; "required": false; "isSignal": true; }; "infoIcon": { "alias": "infoIcon"; "required": false; "isSignal": true; }; "infoSeverity": { "alias": "infoSeverity"; "required": false; "isSignal": true; }; "split": { "alias": "split"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; }, {}, never, ["[headerIcon]", "[headerTag]", "[actions]", "*", "[left]", "[right]"], true, never>;
43
+ }
44
+
45
+ export { SectionComponent };
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnInit, OnDestroy } from '@angular/core';
3
+ import { TkHeaderAction } from '@tekus/design-system/components/header';
3
4
  import * as rxjs from 'rxjs';
4
5
  import { MenuItem } from 'primeng/api';
5
6
 
@@ -18,6 +19,10 @@ declare class SidebarLayoutComponent implements OnInit, OnDestroy {
18
19
  * If provided, it overrides the service state.
19
20
  */
20
21
  isCollapsed: i0.InputSignal<boolean | undefined>;
22
+ /**
23
+ * Actions rendered in the right zone of the header via tk-header.
24
+ */
25
+ headerActions: i0.InputSignal<TkHeaderAction[]>;
21
26
  /**
22
27
  * Emitted when the collapsed state changes.
23
28
  */
@@ -37,6 +42,11 @@ declare class SidebarLayoutComponent implements OnInit, OnDestroy {
37
42
  * Determines if the sidebar is currently collapsed.
38
43
  */
39
44
  get displayCollapsed(): boolean;
45
+ /**
46
+ * Returns the left actions for tk-header: includes the toggle button
47
+ * only when the sidebar is collapsed or in tablet/mobile mode.
48
+ */
49
+ get headerLeftActions(): TkHeaderAction[];
40
50
  /**
41
51
  * Toggles the sidebar state.
42
52
  */
@@ -55,7 +65,7 @@ declare class SidebarLayoutComponent implements OnInit, OnDestroy {
55
65
  */
56
66
  handleBackdropClick(): void;
57
67
  static ɵfac: i0.ɵɵFactoryDeclaration<SidebarLayoutComponent, never>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<SidebarLayoutComponent, "tk-sidebar-layout", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; }, { "collapsedChange": "collapsedChange"; }, never, ["[sidebar-content]", "[header-actions]", "*"], true, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarLayoutComponent, "tk-sidebar-layout", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; }, { "collapsedChange": "collapsedChange"; }, never, ["[sidebar-content]", "*"], true, never>;
59
69
  }
60
70
 
61
71
  declare class SidebarService {
@@ -0,0 +1,62 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { TreeNode } from 'primeng/api';
4
+
5
+ interface TkTreeNode<T = unknown> {
6
+ id: string | number;
7
+ label: string;
8
+ icon?: string;
9
+ iconStyle?: 'light' | 'regular' | 'solid';
10
+ expanded?: boolean;
11
+ children?: TkTreeNode<T>[];
12
+ data?: T;
13
+ }
14
+
15
+ declare class TreeTableComponent {
16
+ /**
17
+ * Hierarchical list of tree nodes to render.
18
+ */
19
+ data: _angular_core.InputSignal<TkTreeNode<unknown>[]>;
20
+ /**
21
+ * Custom template slot to render the icon on the left of each node label.
22
+ * Usage: `<ng-template #iconTemplate let-node>...</ng-template>`
23
+ */
24
+ readonly iconTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
25
+ /**
26
+ * Custom template slot to render center information/indicators.
27
+ * Usage: `<ng-template #centerTemplate let-node>...</ng-template>`
28
+ */
29
+ readonly centerTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
30
+ /**
31
+ * Custom template slot to render additional actions/content on the right of the row.
32
+ * Usage: `<ng-template #rightTemplate let-node>...</ng-template>`
33
+ */
34
+ readonly rightTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
35
+ /**
36
+ * Internal representation of the tree nodes mapped to PrimeNG's format.
37
+ */
38
+ readonly primeNodes: _angular_core.WritableSignal<TreeNode<any>[]>;
39
+ constructor();
40
+ private mapToPrimeNodes;
41
+ /**
42
+ * API Method: Recursively expands all nodes.
43
+ */
44
+ expandAll(): void;
45
+ /**
46
+ * API Method: Recursively collapses all nodes.
47
+ */
48
+ collapseAll(): void;
49
+ private toggleAllNodes;
50
+ /**
51
+ * Toggles the expansion state of a specific node.
52
+ */
53
+ toggleNode(rowNode: {
54
+ node: TreeNode;
55
+ level?: number;
56
+ }): void;
57
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeTableComponent, never>;
58
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeTableComponent, "tk-tree-table", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, ["iconTemplate", "centerTemplate", "rightTemplate"], never, true, never>;
59
+ }
60
+
61
+ export { TreeTableComponent };
62
+ export type { TkTreeNode };