@tekus/design-system 5.26.0 → 5.28.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 (63) hide show
  1. package/assets/tokens/tk-foundations.json +167 -80
  2. package/fesm2022/tekus-design-system-components-badge.mjs +3 -1
  3. package/fesm2022/tekus-design-system-components-badge.mjs.map +1 -1
  4. package/fesm2022/tekus-design-system-components-bread-crumps.mjs +65 -0
  5. package/fesm2022/tekus-design-system-components-bread-crumps.mjs.map +1 -0
  6. package/fesm2022/tekus-design-system-components-button.mjs +2 -2
  7. package/fesm2022/tekus-design-system-components-button.mjs.map +1 -1
  8. package/fesm2022/tekus-design-system-components-card.mjs +9 -8
  9. package/fesm2022/tekus-design-system-components-card.mjs.map +1 -1
  10. package/fesm2022/tekus-design-system-components-date-picker.mjs +2 -2
  11. package/fesm2022/tekus-design-system-components-date-picker.mjs.map +1 -1
  12. package/fesm2022/tekus-design-system-components-drawer.mjs +2 -2
  13. package/fesm2022/tekus-design-system-components-drawer.mjs.map +1 -1
  14. package/fesm2022/tekus-design-system-components-dropdown.mjs +79 -0
  15. package/fesm2022/tekus-design-system-components-dropdown.mjs.map +1 -0
  16. package/fesm2022/tekus-design-system-components-fallback-view.mjs +2 -2
  17. package/fesm2022/tekus-design-system-components-fallback-view.mjs.map +1 -1
  18. package/fesm2022/tekus-design-system-components-input-number.mjs +2 -2
  19. package/fesm2022/tekus-design-system-components-input-number.mjs.map +1 -1
  20. package/fesm2022/tekus-design-system-components-input-text.mjs +2 -2
  21. package/fesm2022/tekus-design-system-components-input-text.mjs.map +1 -1
  22. package/fesm2022/tekus-design-system-components-menu.mjs +151 -0
  23. package/fesm2022/tekus-design-system-components-menu.mjs.map +1 -0
  24. package/fesm2022/tekus-design-system-components-message.mjs +82 -0
  25. package/fesm2022/tekus-design-system-components-message.mjs.map +1 -0
  26. package/fesm2022/tekus-design-system-components-modal.mjs +2 -2
  27. package/fesm2022/tekus-design-system-components-modal.mjs.map +1 -1
  28. package/fesm2022/tekus-design-system-components-multiselect.mjs +2 -2
  29. package/fesm2022/tekus-design-system-components-multiselect.mjs.map +1 -1
  30. package/fesm2022/tekus-design-system-components-pagination.mjs +2 -2
  31. package/fesm2022/tekus-design-system-components-pagination.mjs.map +1 -1
  32. package/fesm2022/tekus-design-system-components-panel-menu.mjs +54 -0
  33. package/fesm2022/tekus-design-system-components-panel-menu.mjs.map +1 -0
  34. package/fesm2022/tekus-design-system-components-panel.mjs +38 -5
  35. package/fesm2022/tekus-design-system-components-panel.mjs.map +1 -1
  36. package/fesm2022/tekus-design-system-components-select.mjs +2 -2
  37. package/fesm2022/tekus-design-system-components-select.mjs.map +1 -1
  38. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs +179 -0
  39. package/fesm2022/tekus-design-system-components-sidebar-layout.mjs.map +1 -0
  40. package/fesm2022/tekus-design-system-components-table.mjs +2 -2
  41. package/fesm2022/tekus-design-system-components-table.mjs.map +1 -1
  42. package/fesm2022/tekus-design-system-components-textarea.mjs +2 -2
  43. package/fesm2022/tekus-design-system-components-textarea.mjs.map +1 -1
  44. package/fesm2022/tekus-design-system-components-toggle.mjs +95 -0
  45. package/fesm2022/tekus-design-system-components-toggle.mjs.map +1 -0
  46. package/fesm2022/tekus-design-system-components-topbar.mjs +10 -3
  47. package/fesm2022/tekus-design-system-components-topbar.mjs.map +1 -1
  48. package/fesm2022/tekus-design-system-core-types.mjs +105 -13
  49. package/fesm2022/tekus-design-system-core-types.mjs.map +1 -1
  50. package/fesm2022/tekus-design-system-core.mjs +105 -13
  51. package/fesm2022/tekus-design-system-core.mjs.map +1 -1
  52. package/package.json +29 -1
  53. package/styles/variables.css +38 -25
  54. package/types/tekus-design-system-components-badge.d.ts +4 -3
  55. package/types/tekus-design-system-components-bread-crumps.d.ts +26 -0
  56. package/types/tekus-design-system-components-dropdown.d.ts +59 -0
  57. package/types/tekus-design-system-components-menu.d.ts +71 -0
  58. package/types/tekus-design-system-components-message.d.ts +50 -0
  59. package/types/tekus-design-system-components-panel-menu.d.ts +20 -0
  60. package/types/tekus-design-system-components-panel.d.ts +35 -2
  61. package/types/tekus-design-system-components-sidebar-layout.d.ts +96 -0
  62. package/types/tekus-design-system-components-toggle.d.ts +30 -0
  63. package/types/tekus-design-system-components-topbar.d.ts +8 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tekus/design-system",
3
3
  "description": "Tekus design system library",
4
- "version": "5.26.0",
4
+ "version": "5.28.0",
5
5
  "license": "UNLICENSED",
6
6
  "peerDependencies": {
7
7
  "@angular/core": "^21.0.0",
@@ -48,6 +48,10 @@
48
48
  "types": "./types/tekus-design-system-components-badge.d.ts",
49
49
  "default": "./fesm2022/tekus-design-system-components-badge.mjs"
50
50
  },
51
+ "./components/bread-crumps": {
52
+ "types": "./types/tekus-design-system-components-bread-crumps.d.ts",
53
+ "default": "./fesm2022/tekus-design-system-components-bread-crumps.mjs"
54
+ },
51
55
  "./components/button": {
52
56
  "types": "./types/tekus-design-system-components-button.d.ts",
53
57
  "default": "./fesm2022/tekus-design-system-components-button.mjs"
@@ -72,6 +76,10 @@
72
76
  "types": "./types/tekus-design-system-components-drawer.d.ts",
73
77
  "default": "./fesm2022/tekus-design-system-components-drawer.mjs"
74
78
  },
79
+ "./components/dropdown": {
80
+ "types": "./types/tekus-design-system-components-dropdown.d.ts",
81
+ "default": "./fesm2022/tekus-design-system-components-dropdown.mjs"
82
+ },
75
83
  "./components/fallback-view": {
76
84
  "types": "./types/tekus-design-system-components-fallback-view.d.ts",
77
85
  "default": "./fesm2022/tekus-design-system-components-fallback-view.mjs"
@@ -88,6 +96,14 @@
88
96
  "types": "./types/tekus-design-system-components-input-text.d.ts",
89
97
  "default": "./fesm2022/tekus-design-system-components-input-text.mjs"
90
98
  },
99
+ "./components/menu": {
100
+ "types": "./types/tekus-design-system-components-menu.d.ts",
101
+ "default": "./fesm2022/tekus-design-system-components-menu.mjs"
102
+ },
103
+ "./components/message": {
104
+ "types": "./types/tekus-design-system-components-message.d.ts",
105
+ "default": "./fesm2022/tekus-design-system-components-message.mjs"
106
+ },
91
107
  "./components/modal": {
92
108
  "types": "./types/tekus-design-system-components-modal.d.ts",
93
109
  "default": "./fesm2022/tekus-design-system-components-modal.mjs"
@@ -104,6 +120,10 @@
104
120
  "types": "./types/tekus-design-system-components-panel.d.ts",
105
121
  "default": "./fesm2022/tekus-design-system-components-panel.mjs"
106
122
  },
123
+ "./components/panel-menu": {
124
+ "types": "./types/tekus-design-system-components-panel-menu.d.ts",
125
+ "default": "./fesm2022/tekus-design-system-components-panel-menu.mjs"
126
+ },
107
127
  "./components/progress-bar": {
108
128
  "types": "./types/tekus-design-system-components-progress-bar.d.ts",
109
129
  "default": "./fesm2022/tekus-design-system-components-progress-bar.mjs"
@@ -116,6 +136,10 @@
116
136
  "types": "./types/tekus-design-system-components-select.d.ts",
117
137
  "default": "./fesm2022/tekus-design-system-components-select.mjs"
118
138
  },
139
+ "./components/sidebar-layout": {
140
+ "types": "./types/tekus-design-system-components-sidebar-layout.d.ts",
141
+ "default": "./fesm2022/tekus-design-system-components-sidebar-layout.mjs"
142
+ },
119
143
  "./components/status-bar": {
120
144
  "types": "./types/tekus-design-system-components-status-bar.d.ts",
121
145
  "default": "./fesm2022/tekus-design-system-components-status-bar.mjs"
@@ -140,6 +164,10 @@
140
164
  "types": "./types/tekus-design-system-components-toast.d.ts",
141
165
  "default": "./fesm2022/tekus-design-system-components-toast.mjs"
142
166
  },
167
+ "./components/toggle": {
168
+ "types": "./types/tekus-design-system-components-toggle.d.ts",
169
+ "default": "./fesm2022/tekus-design-system-components-toggle.mjs"
170
+ },
143
171
  "./components/toolbar": {
144
172
  "types": "./types/tekus-design-system-components-toolbar.d.ts",
145
173
  "default": "./fesm2022/tekus-design-system-components-toolbar.mjs"
@@ -23,6 +23,17 @@
23
23
  --tk-color-base-surface-900: #222324;
24
24
  --tk-color-base-surface-950: #191a1b;
25
25
  --tk-color-base-surface-1000: #000000;
26
+ --tk-color-base-accent-50: #edfcf9;
27
+ --tk-color-base-accent-100: #d4f7f0;
28
+ --tk-color-base-accent-200: #acecdf;
29
+ --tk-color-base-accent-300: #8ee1d0;
30
+ --tk-color-base-accent-400: #7dd8c6;
31
+ --tk-color-base-accent-500: #6ad0bc;
32
+ --tk-color-base-accent-600: #3bc4a9;
33
+ --tk-color-base-accent-700: #2b9c85;
34
+ --tk-color-base-accent-800: #1d7261;
35
+ --tk-color-base-accent-900: #114a3f;
36
+ --tk-color-base-accent-950: #0a2e27;
26
37
  --tk-color-base-red-50: #feede8;
27
38
  --tk-color-base-red-100: #ffddd4;
28
39
  --tk-color-base-red-200: #fbc2b4;
@@ -82,16 +93,21 @@
82
93
  --tk-color-background-soft: var(--tk-color-base-surface-100);
83
94
  --tk-color-background-medium: var(--tk-color-base-surface-300);
84
95
  --tk-color-background-inverse: var(--tk-color-base-surface-950);
96
+ --tk-color-background-strong: var(--tk-color-base-surface-500);
97
+ --tk-color-background-bold: var(--tk-color-base-surface-700);
85
98
  --tk-color-text-default: var(--tk-color-base-surface-950);
86
99
  --tk-color-text-muted: var(--tk-color-base-surface-500);
87
- --tk-color-text-inverted: #ffffff;
88
- --tk-color-text-inverse: var(--tk-color-base-surface-0);
89
100
  --tk-color-text-subtle: var(--tk-color-base-surface-600);
90
101
  --tk-color-text-surface: var(--tk-color-base-surface-400);
102
+ --tk-color-text-inverse: var(--tk-color-base-surface-0);
103
+ --tk-color-text-inverted: var(--tk-color-base-surface-0);
91
104
  --tk-color-transparent: #ffffff00;
92
- --tk-color-accent-default: var(--tk-color-base-primary-500);
93
- --tk-color-accent-muted: var(--tk-color-base-primary-100);
94
- --tk-color-accent-strong: var(--tk-color-base-primary-700);
105
+ --tk-color-primary-default: var(--tk-color-base-primary-500);
106
+ --tk-color-primary-muted: var(--tk-color-base-primary-100);
107
+ --tk-color-primary-strong: var(--tk-color-base-primary-700);
108
+ --tk-color-accent-default: var(--tk-color-base-accent-500);
109
+ --tk-color-accent-muted: var(--tk-color-base-accent-100);
110
+ --tk-color-accent-strong: var(--tk-color-base-accent-700);
95
111
  --tk-color-feedback-danger-default: var(--tk-color-base-red-500);
96
112
  --tk-color-feedback-danger-muted: var(--tk-color-base-red-100);
97
113
  --tk-color-feedback-danger-strong: var(--tk-color-base-red-700);
@@ -105,6 +121,9 @@
105
121
  --tk-color-feedback-info-muted: var(--tk-color-base-sky-100);
106
122
  --tk-color-feedback-info-strong: var(--tk-color-base-sky-700);
107
123
  --tk-color-border-default: var(--tk-color-base-surface-400);
124
+ --tk-color-border-subtle: var(--tk-color-base-surface-200);
125
+ --tk-color-border-strong: var(--tk-color-base-surface-600);
126
+ --tk-color-border-focus: var(--tk-color-primary-default);
108
127
  --tk-spacing-base-0: 0rem;
109
128
  --tk-spacing-base-25: 0.25rem;
110
129
  --tk-spacing-base-50: 0.5rem;
@@ -118,23 +137,16 @@
118
137
  --tk-spacing-base-400: 4rem;
119
138
  --tk-spacing-base-500: 5rem;
120
139
  --tk-spacing-base-600: 6rem;
121
- --tk-spacing-base-700: 2rem;
122
140
  --tk-spacing-base-800: 8rem;
123
- --tk-spacing-base-900: 3rem;
124
- --tk-spacing-paddingX-none: var(--tk-spacing-base-0);
125
- --tk-spacing-paddingX-xs: var(--tk-spacing-base-25);
126
- --tk-spacing-paddingX-s: var(--tk-spacing-base-50);
127
- --tk-spacing-paddingX-m: var(--tk-spacing-base-100);
128
- --tk-spacing-paddingX-l: var(--tk-spacing-base-125);
129
- --tk-spacing-paddingX-xl: var(--tk-spacing-base-150);
130
- --tk-spacing-paddingY-none: var(--tk-spacing-base-0);
131
- --tk-spacing-paddingY-xs: var(--tk-spacing-base-25);
132
- --tk-spacing-paddingY-s: var(--tk-spacing-base-50);
133
- --tk-spacing-paddingY-m: var(--tk-spacing-base-100);
134
- --tk-spacing-paddingY-l: var(--tk-spacing-base-125);
135
- --tk-spacing-paddingY-xl: var(--tk-spacing-base-150);
141
+ --tk-spacing-padding-none: var(--tk-spacing-base-0);
142
+ --tk-spacing-padding-xs: var(--tk-spacing-base-25);
143
+ --tk-spacing-padding-s: var(--tk-spacing-base-50);
144
+ --tk-spacing-padding-m: var(--tk-spacing-base-100);
145
+ --tk-spacing-padding-l: var(--tk-spacing-base-125);
146
+ --tk-spacing-padding-xl: var(--tk-spacing-base-150);
136
147
  --tk-spacing-gap-none: var(--tk-spacing-base-0);
137
- --tk-spacing-gap-s: var(--tk-spacing-base-25);
148
+ --tk-spacing-gap-xs: var(--tk-spacing-base-25);
149
+ --tk-spacing-gap-s: var(--tk-spacing-base-50);
138
150
  --tk-spacing-gap-m: var(--tk-spacing-base-100);
139
151
  --tk-spacing-gap-l: var(--tk-spacing-base-150);
140
152
  --tk-spacing-gap-xl: var(--tk-spacing-base-250);
@@ -151,15 +163,15 @@
151
163
  --tk-font-size-base-175: 1.75rem;
152
164
  --tk-font-size-base-200: 2rem;
153
165
  --tk-font-size-base-250: 2.5rem;
154
- --tk-font-size-paragraph-m: var(--tk-font-size-base-100);
155
166
  --tk-font-size-paragraph-s: var(--tk-font-size-base-88);
167
+ --tk-font-size-paragraph-m: var(--tk-font-size-base-100);
156
168
  --tk-font-size-paragraph-l: var(--tk-font-size-base-113);
157
- --tk-font-size-headers-l: var(--tk-font-size-base-200);
158
- --tk-font-size-headers-m: var(--tk-font-size-base-150);
159
169
  --tk-font-size-headers-s: var(--tk-font-size-base-113);
170
+ --tk-font-size-headers-m: var(--tk-font-size-base-150);
171
+ --tk-font-size-headers-l: var(--tk-font-size-base-200);
160
172
  --tk-font-size-headers-xl: var(--tk-font-size-base-250);
161
- --tk-font-size-legal-m: var(--tk-font-size-base-75);
162
173
  --tk-font-size-legal-s: var(--tk-font-size-base-63);
174
+ --tk-font-size-legal-m: var(--tk-font-size-base-75);
163
175
  --tk-size-base-0: 0rem;
164
176
  --tk-size-base-50: 0.5rem;
165
177
  --tk-size-base-100: 1rem;
@@ -172,9 +184,10 @@
172
184
  --tk-size-base-4000: 40rem;
173
185
  --tk-size-base-4500: 45rem;
174
186
  --tk-size-base-6400: 64rem;
175
- --tk-borderRadius-m: 1rem;
176
187
  --tk-borderRadius-null: 0rem;
188
+ --tk-borderRadius-xs: 0.25rem;
177
189
  --tk-borderRadius-s: 0.5rem;
190
+ --tk-borderRadius-m: 1rem;
178
191
  --tk-borderRadius-l: 1.5rem;
179
192
  --tk-borderRadius-full: 62.4375rem;
180
193
  }
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
 
3
- type BadgeSeverity = 'secondary' | 'primary' | 'contrast';
3
+ type BadgeSeverity = 'secondary' | 'primary' | 'contrast' | 'danger';
4
4
  /**
5
5
  * @component BadgeComponent
6
6
  * @description
@@ -9,13 +9,14 @@ type BadgeSeverity = 'secondary' | 'primary' | 'contrast';
9
9
  *
10
10
  * This component supports:
11
11
  * - `value`: The text content to be displayed in the badge
12
- * - `severity`: The color scheme of the badge. Options: `'primary' | 'secondary' | 'contrast'`
12
+ * - `severity`: The color scheme of the badge. Options: `'primary' | 'secondary' | 'contrast' | 'danger'`
13
13
  * - Automatically maps severity values to PrimeNG's badge styles
14
14
  *
15
15
  * @usage
16
16
  * ### Basic Usage
17
17
  * ```html
18
18
  * <tk-badge value="5" severity="primary"></tk-badge>
19
+ * ```
19
20
  * */
20
21
  declare class BadgeComponent {
21
22
  /** The text content to be displayed in the badge. */
@@ -29,7 +30,7 @@ declare class BadgeComponent {
29
30
  * Computed property that maps the custom `BadgeSeverity` to the underlying PrimeNG `severity`.
30
31
  * Returns `undefined` for 'primary' as it uses the default style, and maps others accordingly.
31
32
  */
32
- primeSeverity: _angular_core.Signal<"secondary" | "contrast" | "success">;
33
+ primeSeverity: _angular_core.Signal<"secondary" | "contrast" | "danger" | "success">;
33
34
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
34
35
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "tk-badge", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
35
36
  }
@@ -0,0 +1,26 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface BreadCrumpItem {
4
+ label: string;
5
+ url?: string;
6
+ }
7
+
8
+ declare class BreadCrumpsComponent {
9
+ private readonly router;
10
+ /** Optional manual items. If provided, route listening is ignored. */
11
+ items: _angular_core.InputSignal<BreadCrumpItem[] | null>;
12
+ /** Size of the breadcrumbs title. Can be 'small' (24px) or 'large' (32px). Default is 'small'. */
13
+ size: _angular_core.InputSignal<"small" | "large">;
14
+ /** If true, only the current (last) item will be displayed. */
15
+ onlyCurrent: _angular_core.InputSignal<boolean>;
16
+ /** Signal that updates on every successful navigation */
17
+ private readonly navigationEnd;
18
+ /** Computed list of breadcrumbs derived from the current route state */
19
+ routeItems: _angular_core.Signal<BreadCrumpItem[]>;
20
+ private buildBreadcrumbs;
21
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadCrumpsComponent, never>;
22
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadCrumpsComponent, "tk-bread-crumps", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "onlyCurrent": { "alias": "onlyCurrent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
23
+ }
24
+
25
+ export { BreadCrumpsComponent };
26
+ export type { BreadCrumpItem };
@@ -0,0 +1,59 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Popover } from 'primeng/popover';
3
+ import { MenuItem } from 'primeng/api';
4
+ import { TooltipPosition } from '@tekus/design-system/components/tooltip';
5
+
6
+ /**
7
+ * @component DropdownComponent
8
+ * @description
9
+ * A dropdown component that acts as a context menu or "more options" button.
10
+ * It uses a `tk-button` as a trigger, a PrimeNG `p-popover` for the overlay,
11
+ * and a `tk-menu` for the list of options.
12
+ *
13
+ * @usage
14
+ * ```html
15
+ * <tk-dropdown [model]="items"></tk-dropdown>
16
+ * ```
17
+ */
18
+ declare class DropdownComponent {
19
+ /**
20
+ * Reference to the PrimeNG Popover component instance.
21
+ */
22
+ popover: _angular_core.Signal<Popover | undefined>;
23
+ /**
24
+ * An array of menu items to display.
25
+ */
26
+ model: _angular_core.InputSignal<MenuItem[]>;
27
+ /**
28
+ * Icon for the trigger button.
29
+ * @default 'ellipsis-vertical'
30
+ */
31
+ icon: _angular_core.InputSignal<string>;
32
+ /**
33
+ * Size of the trigger button.
34
+ * @default undefined
35
+ */
36
+ size: _angular_core.InputSignal<"small" | "large" | undefined>;
37
+ /**
38
+ * Optional tooltip text for the trigger button.
39
+ */
40
+ tooltip: _angular_core.InputSignal<string | undefined>;
41
+ /**
42
+ * Position of the tooltip.
43
+ * @default 'top'
44
+ */
45
+ tooltipPosition: _angular_core.InputSignal<TooltipPosition>;
46
+ /**
47
+ * Toggles the popover visibility.
48
+ * @param event The event that triggered the toggle.
49
+ */
50
+ toggle(event: Event): void;
51
+ /**
52
+ * Closes the popover when an item is clicked.
53
+ */
54
+ onItemClick(): void;
55
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
56
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "tk-dropdown", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
57
+ }
58
+
59
+ export { DropdownComponent };
@@ -0,0 +1,71 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Menu } from 'primeng/menu';
3
+ import { MenuItem } from 'primeng/api';
4
+
5
+ declare class MenuComponent {
6
+ /**
7
+ * Reference to the PrimeNG Menu component instance.
8
+ */
9
+ pMenu: _angular_core.Signal<Menu | undefined>;
10
+ /**
11
+ * An array of menu items to display.
12
+ */
13
+ model: _angular_core.InputSignal<MenuItem[]>;
14
+ /**
15
+ * Whether the menu is a popup.
16
+ */
17
+ popup: _angular_core.InputSignal<boolean>;
18
+ /**
19
+ * Target element to attach the overlay.
20
+ */
21
+ appendTo: _angular_core.InputSignal<string | HTMLElement | undefined>;
22
+ /**
23
+ * The visual variant of the menu.
24
+ * 'default' (light background) or 'inverse' (dark background).
25
+ */
26
+ variant: _angular_core.InputSignal<"default" | "inverse">;
27
+ /**
28
+ * Additional style class for the menu.
29
+ */
30
+ styleClass: _angular_core.InputSignal<string>;
31
+ /**
32
+ * Event emitted when a menu item is clicked.
33
+ */
34
+ itemClick: _angular_core.OutputEmitterRef<{
35
+ event: Event;
36
+ item: MenuItem;
37
+ }>;
38
+ /**
39
+ * Set of expanded item labels or IDs.
40
+ */
41
+ expandedItems: _angular_core.WritableSignal<Set<string>>;
42
+ /**
43
+ * Currently selected item ID or label.
44
+ */
45
+ selectedId: _angular_core.WritableSignal<string | null>;
46
+ /**
47
+ * Computed visible model for PrimeNG menu.
48
+ * It flattens the input model to support interactive sub-menus in a flat list.
49
+ */
50
+ visibleModel: _angular_core.Signal<MenuItem[]>;
51
+ /**
52
+ * Handles the click event on a menu item.
53
+ */
54
+ handleItemClick(event: Event, item: MenuItem): void;
55
+ /**
56
+ * Checks if an item is currently selected.
57
+ */
58
+ isSelected(item: MenuItem): boolean;
59
+ /**
60
+ * Checks if an item is currently expanded.
61
+ */
62
+ isExpanded(item: MenuItem): boolean;
63
+ /**
64
+ * Toggles the menu visibility for popup mode.
65
+ */
66
+ toggle(event: Event): void;
67
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuComponent, never>;
68
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuComponent, "tk-menu", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "popup": { "alias": "popup"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
69
+ }
70
+
71
+ export { MenuComponent };
@@ -0,0 +1,50 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * @component MessageComponent
5
+ * @description
6
+ * Custom notification banner component that wraps PrimeNG p-message.
7
+ * Supports info, warn, error, and success severities with design system tokens.
8
+ *
9
+ * @usage
10
+ * ```html
11
+ * <tk-message severity="info" [closable]="true">
12
+ * Este es un mensaje informativo con un <a href="#">enlace</a>.
13
+ * </tk-message>
14
+ * ```
15
+ */
16
+ declare class MessageComponent {
17
+ /**
18
+ * Severity of the message.
19
+ * Options: 'info' | 'success' | 'warn' | 'error'
20
+ */
21
+ severity: _angular_core.InputSignal<"info" | "success" | "warn" | "error">;
22
+ /**
23
+ * Whether the message can be closed by the user.
24
+ */
25
+ closable: _angular_core.InputSignal<boolean>;
26
+ /**
27
+ * Event emitted when the message is closed.
28
+ */
29
+ closed: _angular_core.OutputEmitterRef<void>;
30
+ /**
31
+ * Internal state to manage visibility.
32
+ */
33
+ visible: _angular_core.WritableSignal<boolean>;
34
+ /**
35
+ * Maps severity to the corresponding design system icon.
36
+ */
37
+ iconName: _angular_core.Signal<"circle-check" | "circle-xmark" | "triangle-exclamation" | "circle-info">;
38
+ /**
39
+ * Maps severity to the corresponding design system icon style.
40
+ */
41
+ iconStyle: _angular_core.Signal<"regular" | "solid">;
42
+ /**
43
+ * Closes the message.
44
+ */
45
+ close(): void;
46
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageComponent, never>;
47
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MessageComponent, "tk-message", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
48
+ }
49
+
50
+ export { MessageComponent };
@@ -0,0 +1,20 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { MenuItem } from 'primeng/api';
3
+
4
+ declare class PanelMenuComponent {
5
+ model: _angular_core.InputSignal<MenuItem[]>;
6
+ variant: _angular_core.InputSignal<"default" | "inverse">;
7
+ multiple: _angular_core.InputSignal<boolean>;
8
+ styleClass: _angular_core.InputSignal<string>;
9
+ itemClick: _angular_core.OutputEmitterRef<{
10
+ event: Event;
11
+ item: MenuItem;
12
+ }>;
13
+ selectedItem: _angular_core.WritableSignal<MenuItem | null>;
14
+ onItemClick(event: Event, item: MenuItem): void;
15
+ isSelected(item: MenuItem): boolean;
16
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelMenuComponent, never>;
17
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PanelMenuComponent, "tk-panel-menu", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
18
+ }
19
+
20
+ export { PanelMenuComponent };
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { BadgeSeverity } from '@tekus/design-system/components/badge';
2
3
 
3
4
  /**
4
5
  * @component PanelComponent
@@ -28,6 +29,38 @@ declare class PanelComponent {
28
29
  * @default undefined
29
30
  */
30
31
  header: _angular_core.InputSignal<string | undefined>;
32
+ /**
33
+ * @property {string | number} badge
34
+ * @description
35
+ * Optional badge value to display in the header.
36
+ *
37
+ * @default undefined
38
+ */
39
+ badge: _angular_core.InputSignal<string | number | undefined>;
40
+ /**
41
+ * @property {BadgeSeverity} badgeSeverity
42
+ * @description
43
+ * Severity of the badge.
44
+ *
45
+ * @default 'danger'
46
+ */
47
+ badgeSeverity: _angular_core.InputSignal<BadgeSeverity>;
48
+ /**
49
+ * @property {string} helpIcon
50
+ * @description
51
+ * The name of the icon to display for information/help.
52
+ *
53
+ * @default 'circle-question'
54
+ */
55
+ helpIcon: _angular_core.InputSignal<string>;
56
+ /**
57
+ * @property {string} helpText
58
+ * @description
59
+ * Optional help text to display as a tooltip on a help icon in the header.
60
+ *
61
+ * @default undefined
62
+ */
63
+ helpText: _angular_core.InputSignal<string | undefined>;
31
64
  /**
32
65
  * @property {boolean} toggleable
33
66
  * @description
@@ -68,10 +101,10 @@ declare class PanelComponent {
68
101
  * @param event - The toggle event from PrimeNG panel
69
102
  */
70
103
  handleToggle(event: {
71
- collapsed: boolean | undefined;
104
+ collapsed?: boolean;
72
105
  }): void;
73
106
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PanelComponent, never>;
74
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PanelComponent, "tk-panel", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "toggled": "toggled"; }, never, ["*"], true, never>;
107
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PanelComponent, "tk-panel", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeSeverity": { "alias": "badgeSeverity"; "required": false; "isSignal": true; }; "helpIcon": { "alias": "helpIcon"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "toggled": "toggled"; }, never, ["*"], true, never>;
75
108
  }
76
109
 
77
110
  export { PanelComponent };
@@ -0,0 +1,96 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnDestroy } from '@angular/core';
3
+ import * as rxjs from 'rxjs';
4
+ import { MenuItem } from 'primeng/api';
5
+
6
+ declare class SidebarLayoutComponent implements OnInit, OnDestroy {
7
+ private readonly sidebarService;
8
+ private readonly breakpointObserver;
9
+ private readonly cdr;
10
+ private readonly subscription;
11
+ /**
12
+ * Breakpoint constants
13
+ */
14
+ private readonly TABLET_BREAKPOINT;
15
+ private readonly MOBILE_BREAKPOINT;
16
+ /**
17
+ * Optional manual control of the collapsed state.
18
+ * If provided, it overrides the service state.
19
+ */
20
+ isCollapsed: i0.InputSignal<boolean | undefined>;
21
+ /**
22
+ * Emitted when the collapsed state changes.
23
+ */
24
+ collapsedChange: i0.OutputEmitterRef<boolean>;
25
+ /**
26
+ * Internal state of the sidebar.
27
+ */
28
+ collapsed: boolean;
29
+ /**
30
+ * Responsive states
31
+ */
32
+ isTablet: boolean;
33
+ isMobile: boolean;
34
+ ngOnInit(): void;
35
+ ngOnDestroy(): void;
36
+ /**
37
+ * Determines if the sidebar is currently collapsed.
38
+ */
39
+ get displayCollapsed(): boolean;
40
+ /**
41
+ * Toggles the sidebar state.
42
+ */
43
+ toggleSidebar(): void;
44
+ /**
45
+ * Closes the sidebar explicitly.
46
+ */
47
+ closeSidebar(): void;
48
+ /**
49
+ * Handles clicks in the sidebar content to auto-close on mobile.
50
+ * Using HostListener to avoid template accessibility linting on non-interactive aside.
51
+ */
52
+ handleSidebarContentClick(event: MouseEvent): void;
53
+ /**
54
+ * Handles backdrop clicks to close the drawer.
55
+ */
56
+ handleBackdropClick(): void;
57
+ 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>;
59
+ }
60
+
61
+ declare class SidebarService {
62
+ private readonly collapsedSubject;
63
+ /**
64
+ * Observable to track the collapsed state of the sidebar.
65
+ */
66
+ isCollapsed$: rxjs.Observable<boolean>;
67
+ /**
68
+ * Toggles the collapsed state of the sidebar.
69
+ */
70
+ toggle(): void;
71
+ /**
72
+ * Explicitly sets the collapsed state of the sidebar.
73
+ * @param value True to collapse, false to expand.
74
+ */
75
+ setCollapsed(value: boolean): void;
76
+ /**
77
+ * Gets the current collapsed state.
78
+ */
79
+ get isCollapsed(): boolean;
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarService, never>;
81
+ static ɵprov: i0.ɵɵInjectableDeclaration<SidebarService>;
82
+ }
83
+
84
+ /**
85
+ * NavItem extends PrimeNG's MenuItem to provide a consistent interface
86
+ * for the SidebarLayout navigation.
87
+ */
88
+ interface NavItem extends MenuItem {
89
+ label?: string;
90
+ icon?: string;
91
+ routerLink?: string;
92
+ items?: NavItem[];
93
+ }
94
+
95
+ export { SidebarLayoutComponent, SidebarService };
96
+ export type { NavItem };
@@ -0,0 +1,30 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl, FormControl } from '@angular/forms';
4
+
5
+ declare class ToggleComponent implements ControlValueAccessor, OnInit {
6
+ readonly ngControl: NgControl | null;
7
+ private readonly destroyRef;
8
+ constructor();
9
+ model: _angular_core.ModelSignal<boolean>;
10
+ label: _angular_core.InputSignal<string>;
11
+ name: _angular_core.InputSignal<string>;
12
+ inputId: _angular_core.InputSignal<string>;
13
+ control: _angular_core.InputSignal<FormControl<any>>;
14
+ errorMessage: _angular_core.InputSignal<string>;
15
+ disabled: _angular_core.ModelSignal<boolean>;
16
+ get effectiveControl(): FormControl;
17
+ onChange: (value: boolean) => void;
18
+ onTouched: () => void;
19
+ ngOnInit(): void;
20
+ writeValue(value: boolean): void;
21
+ registerOnChange(fn: (value: boolean) => void): void;
22
+ registerOnTouched(fn: () => void): void;
23
+ setDisabledState(isDisabled: boolean): void;
24
+ onModelChange(value: boolean): void;
25
+ onBlur(): void;
26
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
27
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "tk-toggle", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "disabled": "disabledChange"; }, never, never, true, never>;
28
+ }
29
+
30
+ export { ToggleComponent };