@tekus/design-system 5.34.0 → 5.36.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 (46) hide show
  1. package/fesm2022/tekus-design-system-components-action-group.mjs +1 -1
  2. package/fesm2022/tekus-design-system-components-action-group.mjs.map +1 -1
  3. package/fesm2022/tekus-design-system-components-button.mjs +24 -3
  4. package/fesm2022/tekus-design-system-components-button.mjs.map +1 -1
  5. package/fesm2022/tekus-design-system-components-card.mjs +1 -1
  6. package/fesm2022/tekus-design-system-components-card.mjs.map +1 -1
  7. package/fesm2022/tekus-design-system-components-carousel.mjs +234 -0
  8. package/fesm2022/tekus-design-system-components-carousel.mjs.map +1 -0
  9. package/fesm2022/tekus-design-system-components-color-picker.mjs +1 -1
  10. package/fesm2022/tekus-design-system-components-color-picker.mjs.map +1 -1
  11. package/fesm2022/tekus-design-system-components-drawer.mjs +1 -1
  12. package/fesm2022/tekus-design-system-components-drawer.mjs.map +1 -1
  13. package/fesm2022/tekus-design-system-components-dropdown.mjs +1 -1
  14. package/fesm2022/tekus-design-system-components-dropdown.mjs.map +1 -1
  15. package/fesm2022/tekus-design-system-components-fallback-view.mjs +1 -1
  16. package/fesm2022/tekus-design-system-components-fallback-view.mjs.map +1 -1
  17. package/fesm2022/tekus-design-system-components-header.mjs +29 -0
  18. package/fesm2022/tekus-design-system-components-header.mjs.map +1 -0
  19. package/fesm2022/tekus-design-system-components-icon.mjs +2 -2
  20. package/fesm2022/tekus-design-system-components-icon.mjs.map +1 -1
  21. package/fesm2022/tekus-design-system-components-modal.mjs +51 -31
  22. package/fesm2022/tekus-design-system-components-modal.mjs.map +1 -1
  23. package/fesm2022/tekus-design-system-components-process-steps.mjs +132 -0
  24. package/fesm2022/tekus-design-system-components-process-steps.mjs.map +1 -0
  25. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs +20 -6
  26. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs.map +1 -1
  27. package/fesm2022/tekus-design-system-components-stepper.mjs +1 -1
  28. package/fesm2022/tekus-design-system-components-stepper.mjs.map +1 -1
  29. package/fesm2022/tekus-design-system-components-table.mjs +1 -1
  30. package/fesm2022/tekus-design-system-components-table.mjs.map +1 -1
  31. package/fesm2022/tekus-design-system-components-toast.mjs +1 -1
  32. package/fesm2022/tekus-design-system-components-toast.mjs.map +1 -1
  33. package/fesm2022/tekus-design-system-components-toolbar.mjs +1 -1
  34. package/fesm2022/tekus-design-system-components-toolbar.mjs.map +1 -1
  35. package/fesm2022/tekus-design-system-components-topbar.mjs +1 -1
  36. package/fesm2022/tekus-design-system-components-topbar.mjs.map +1 -1
  37. package/fesm2022/tekus-design-system-components-uploader.mjs +1256 -0
  38. package/fesm2022/tekus-design-system-components-uploader.mjs.map +1 -0
  39. package/package.json +17 -1
  40. package/types/tekus-design-system-components-button.d.ts +20 -1
  41. package/types/tekus-design-system-components-carousel.d.ts +200 -0
  42. package/types/tekus-design-system-components-header.d.ts +33 -0
  43. package/types/tekus-design-system-components-modal.d.ts +31 -13
  44. package/types/tekus-design-system-components-process-steps.d.ts +72 -0
  45. package/types/tekus-design-system-components-sidebar-layout.d.ts +11 -1
  46. package/types/tekus-design-system-components-uploader.d.ts +524 -0
@@ -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,14 +93,27 @@ 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
- modalMaxWidth: _angular_core.Signal<"67.5rem" | "35rem" | "98vw" | "25rem">;
106
+ modalMaxWidth: _angular_core.Signal<"67.5rem" | "35rem" | "98vw" | "28.125rem">;
98
107
  ngOnDestroy(): void;
99
108
  /**
100
109
  * @summary Orchestrates dynamic rendering and destruction based on visibility.
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
  */
@@ -0,0 +1,72 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type StepState = 'waiting' | 'active' | 'done' | 'error' | 'warning';
4
+ interface ProcessStep {
5
+ label: string;
6
+ state: StepState;
7
+ /** Optional secondary line shown below the label — e.g. "Errors detected — check notifications" for a failed step. */
8
+ description?: string;
9
+ }
10
+ /**
11
+ * Overall result of the process:
12
+ * - `progress`: shows the spinner header and the step list.
13
+ * - `success` | `error` | `warning`: replaces the progress view with a
14
+ * final result message (used once polling finishes).
15
+ */
16
+ type ProcessStepsStatus = 'progress' | 'success' | 'error' | 'warning';
17
+
18
+ declare class ProcessStepsComponent {
19
+ readonly steps: _angular_core.InputSignal<ProcessStep[]>;
20
+ readonly title: _angular_core.InputSignal<string>;
21
+ readonly description: _angular_core.InputSignal<string | undefined>;
22
+ readonly icon: _angular_core.InputSignal<string>;
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>;
35
+ /** Specific problems to list inside the result message box (ignored when `status` is `success`). */
36
+ readonly errors: _angular_core.InputSignal<string[]>;
37
+ /** Seconds until the countdown finishes; omit to disable it. */
38
+ readonly countdownSeconds: _angular_core.InputSignal<number | undefined>;
39
+ /**
40
+ * Countdown text; `{seconds}` is replaced with the seconds left. Defaults to a "closing"
41
+ * message, but the countdown isn't only for closing — override it to match what
42
+ * `(countdownFinished)` actually does.
43
+ */
44
+ readonly countdownLabel: _angular_core.InputSignal<string>;
45
+ /** Emitted once when the countdown reaches zero — the consumer decides what happens next (close a modal, show a toast, etc.). */
46
+ readonly countdownFinished: _angular_core.OutputEmitterRef<void>;
47
+ /** Seconds left in the countdown, or `undefined` while it's disabled. */
48
+ readonly remainingSeconds: _angular_core.WritableSignal<number | undefined>;
49
+ constructor();
50
+ /** Starts (or disables) the countdown whenever `status`/`countdownSeconds` change. */
51
+ private runCountdown;
52
+ /** Decrements `remainingSeconds` by one and emits `countdownFinished` once it bottoms out. */
53
+ private tickCountdown;
54
+ /**
55
+ * Accessible suffix announced per step since state is otherwise
56
+ * conveyed only through color/icon.
57
+ */
58
+ stepStatusLabel(state: StepState): string;
59
+ readonly resultIcon: _angular_core.Signal<string>;
60
+ readonly resultColor: _angular_core.Signal<"warning" | "success" | "danger">;
61
+ /** Severity for the message box wrapping `description`/`errors` (success has no box). */
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">;
65
+ /** `countdownLabel` with `{seconds}` filled in, or `undefined` while the countdown is disabled. */
66
+ readonly countdownText: _angular_core.Signal<string | undefined>;
67
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProcessStepsComponent, 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>;
69
+ }
70
+
71
+ export { ProcessStepsComponent };
72
+ export type { ProcessStep, ProcessStepsStatus, StepState };
@@ -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 {