shirkasoft-ui-components 1.2.0 → 1.3.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 (79) hide show
  1. package/fesm2022/shirkasoft-ui-components-breadcrumb.mjs +199 -0
  2. package/fesm2022/shirkasoft-ui-components-breadcrumb.mjs.map +1 -0
  3. package/fesm2022/shirkasoft-ui-components-button.mjs +148 -0
  4. package/fesm2022/shirkasoft-ui-components-button.mjs.map +1 -0
  5. package/fesm2022/shirkasoft-ui-components-chart.mjs +153 -0
  6. package/fesm2022/shirkasoft-ui-components-chart.mjs.map +1 -0
  7. package/fesm2022/shirkasoft-ui-components-confirm-dialog.mjs +143 -0
  8. package/fesm2022/shirkasoft-ui-components-confirm-dialog.mjs.map +1 -0
  9. package/fesm2022/shirkasoft-ui-components-date-picker.mjs +638 -0
  10. package/fesm2022/shirkasoft-ui-components-date-picker.mjs.map +1 -0
  11. package/fesm2022/shirkasoft-ui-components-fieldset.mjs +94 -0
  12. package/fesm2022/shirkasoft-ui-components-fieldset.mjs.map +1 -0
  13. package/fesm2022/shirkasoft-ui-components-file-upload.mjs +242 -0
  14. package/fesm2022/shirkasoft-ui-components-file-upload.mjs.map +1 -0
  15. package/fesm2022/shirkasoft-ui-components-knob.mjs +269 -0
  16. package/fesm2022/shirkasoft-ui-components-knob.mjs.map +1 -0
  17. package/fesm2022/shirkasoft-ui-components-loading.mjs +255 -0
  18. package/fesm2022/shirkasoft-ui-components-loading.mjs.map +1 -0
  19. package/fesm2022/shirkasoft-ui-components-modal.mjs +290 -0
  20. package/fesm2022/shirkasoft-ui-components-modal.mjs.map +1 -0
  21. package/fesm2022/shirkasoft-ui-components-notification.mjs +143 -0
  22. package/fesm2022/shirkasoft-ui-components-notification.mjs.map +1 -0
  23. package/fesm2022/shirkasoft-ui-components-price-input.mjs +64 -0
  24. package/fesm2022/shirkasoft-ui-components-price-input.mjs.map +1 -0
  25. package/fesm2022/shirkasoft-ui-components-rail-sidebar.mjs +205 -0
  26. package/fesm2022/shirkasoft-ui-components-rail-sidebar.mjs.map +1 -0
  27. package/fesm2022/shirkasoft-ui-components-select.mjs +737 -0
  28. package/fesm2022/shirkasoft-ui-components-select.mjs.map +1 -0
  29. package/fesm2022/shirkasoft-ui-components-sidebar.mjs +185 -0
  30. package/fesm2022/shirkasoft-ui-components-sidebar.mjs.map +1 -0
  31. package/fesm2022/shirkasoft-ui-components-skeleton.mjs +74 -0
  32. package/fesm2022/shirkasoft-ui-components-skeleton.mjs.map +1 -0
  33. package/fesm2022/shirkasoft-ui-components-table.mjs +689 -0
  34. package/fesm2022/shirkasoft-ui-components-table.mjs.map +1 -0
  35. package/fesm2022/shirkasoft-ui-components-tabs.mjs +249 -0
  36. package/fesm2022/shirkasoft-ui-components-tabs.mjs.map +1 -0
  37. package/fesm2022/shirkasoft-ui-components-tag.mjs +70 -0
  38. package/fesm2022/shirkasoft-ui-components-tag.mjs.map +1 -0
  39. package/fesm2022/shirkasoft-ui-components-text-field.mjs +370 -0
  40. package/fesm2022/shirkasoft-ui-components-text-field.mjs.map +1 -0
  41. package/fesm2022/shirkasoft-ui-components-timeline.mjs +222 -0
  42. package/fesm2022/shirkasoft-ui-components-timeline.mjs.map +1 -0
  43. package/fesm2022/shirkasoft-ui-components-toggle.mjs +186 -0
  44. package/fesm2022/shirkasoft-ui-components-toggle.mjs.map +1 -0
  45. package/fesm2022/shirkasoft-ui-components-tooltip.mjs +169 -0
  46. package/fesm2022/shirkasoft-ui-components-tooltip.mjs.map +1 -0
  47. package/fesm2022/shirkasoft-ui-components-utils.mjs +64 -0
  48. package/fesm2022/shirkasoft-ui-components-utils.mjs.map +1 -0
  49. package/fesm2022/shirkasoft-ui-components-wizard.mjs +167 -0
  50. package/fesm2022/shirkasoft-ui-components-wizard.mjs.map +1 -0
  51. package/fesm2022/shirkasoft-ui-components.mjs +0 -5729
  52. package/fesm2022/shirkasoft-ui-components.mjs.map +1 -1
  53. package/package.json +101 -1
  54. package/types/shirkasoft-ui-components-breadcrumb.d.ts +68 -0
  55. package/types/shirkasoft-ui-components-button.d.ts +59 -0
  56. package/types/shirkasoft-ui-components-chart.d.ts +65 -0
  57. package/types/shirkasoft-ui-components-confirm-dialog.d.ts +88 -0
  58. package/types/shirkasoft-ui-components-date-picker.d.ts +200 -0
  59. package/types/shirkasoft-ui-components-fieldset.d.ts +72 -0
  60. package/types/shirkasoft-ui-components-file-upload.d.ts +87 -0
  61. package/types/shirkasoft-ui-components-knob.d.ts +69 -0
  62. package/types/shirkasoft-ui-components-loading.d.ts +94 -0
  63. package/types/shirkasoft-ui-components-modal.d.ts +139 -0
  64. package/types/shirkasoft-ui-components-notification.d.ts +82 -0
  65. package/types/shirkasoft-ui-components-price-input.d.ts +41 -0
  66. package/types/shirkasoft-ui-components-rail-sidebar.d.ts +121 -0
  67. package/types/shirkasoft-ui-components-select.d.ts +182 -0
  68. package/types/shirkasoft-ui-components-sidebar.d.ts +106 -0
  69. package/types/shirkasoft-ui-components-skeleton.d.ts +36 -0
  70. package/types/shirkasoft-ui-components-table.d.ts +293 -0
  71. package/types/shirkasoft-ui-components-tabs.d.ts +102 -0
  72. package/types/shirkasoft-ui-components-tag.d.ts +31 -0
  73. package/types/shirkasoft-ui-components-text-field.d.ts +120 -0
  74. package/types/shirkasoft-ui-components-timeline.d.ts +178 -0
  75. package/types/shirkasoft-ui-components-toggle.d.ts +48 -0
  76. package/types/shirkasoft-ui-components-tooltip.d.ts +47 -0
  77. package/types/shirkasoft-ui-components-utils.d.ts +9 -0
  78. package/types/shirkasoft-ui-components-wizard.d.ts +101 -0
  79. package/types/shirkasoft-ui-components.d.ts +1 -2333
@@ -0,0 +1,178 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * Shirkasoft UI Components.
5
+ * Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
6
+ * Belongs to Shirkasoft.
7
+ */
8
+ /** A chip shown under a sub item (time, pricing model, quantity, etc). */
9
+ interface TimelineMeta {
10
+ icon: string | any;
11
+ label?: string;
12
+ value: string;
13
+ }
14
+ /** A row inside a timeline item (e.g. an activity of a tour day). */
15
+ interface TimelineSubItem {
16
+ id: string | number;
17
+ title: string;
18
+ subtitle?: string;
19
+ /** Used to look up icon / color in `iconMap` and `iconColors`. */
20
+ type?: string;
21
+ /** Overrides the resolved icon (name or component). */
22
+ icon?: string | any;
23
+ /** Hex background for the icon box (fallback). */
24
+ color?: string;
25
+ /** Hex text color for the icon (fallback). */
26
+ colorText?: string;
27
+ /** Custom CSS classes for the icon box (takes precedence over inline colors). */
28
+ iconClass?: string;
29
+ optional?: boolean;
30
+ optionalLabel?: string;
31
+ meta?: TimelineMeta[];
32
+ price?: string | number;
33
+ }
34
+ /** A single event in the timeline (e.g. a tour day). */
35
+ interface TimelineItem {
36
+ id: string | number;
37
+ /** Text shown inside the marker (falls back to the auto index). */
38
+ markerText?: string | number;
39
+ title?: string;
40
+ subtitle?: string;
41
+ description?: string;
42
+ /** Small pill shown above the title (e.g. "Día 1"). */
43
+ badge?: string | number;
44
+ badgeIcon?: string | any;
45
+ /** CSS classes for the marker (falls back to the cycled gradient palette). */
46
+ color?: string;
47
+ subItems?: TimelineSubItem[];
48
+ }
49
+ /** A button rendered in the header. */
50
+ interface TimelineAction {
51
+ label: string;
52
+ icon: string | any;
53
+ onClick: () => void;
54
+ class?: string;
55
+ isVisible?: () => boolean;
56
+ isDisabled?: () => boolean;
57
+ }
58
+ /** An action rendered in the item card footer. */
59
+ interface TimelineItemAction {
60
+ label: string | ((item: TimelineItem) => string);
61
+ icon: string | any | ((item: TimelineItem) => string | any);
62
+ onClick: (item: TimelineItem) => void;
63
+ class?: string | ((item: TimelineItem) => string);
64
+ isVisible?: (item: TimelineItem) => boolean;
65
+ isDisabled?: (item: TimelineItem) => boolean;
66
+ }
67
+ /** An action rendered on hover over a sub item. */
68
+ interface TimelineSubItemAction {
69
+ label: string | ((item: TimelineItem, subItem: TimelineSubItem) => string);
70
+ icon: string | any | ((item: TimelineItem, subItem: TimelineSubItem) => string | any);
71
+ onClick: (item: TimelineItem, subItem: TimelineSubItem) => void;
72
+ isVisible?: (item: TimelineItem, subItem: TimelineSubItem) => boolean;
73
+ isDisabled?: (item: TimelineItem, subItem: TimelineSubItem) => boolean;
74
+ }
75
+ type TimelineAlignment = 'left' | 'alternate';
76
+ type TimelineMarkerSize = 'sm' | 'md' | 'lg';
77
+ declare const DEFAULT_MARKER_GRADIENTS: string[];
78
+ /** Supplier-type style palette used by the original wac-app timeline. */
79
+ declare const DEFAULT_SUPPLIER_ICON_COLORS: Record<string, {
80
+ bg: string;
81
+ text: string;
82
+ }>;
83
+ /** Maps a sub-item `type` to a lucide icon component. */
84
+ declare const DEFAULT_SUPPLIER_TYPE_ICONS: Record<string, any>;
85
+ declare class TimelineComponent {
86
+ protected getIcon: (name: any) => any;
87
+ /** Timeline data. */
88
+ items: _angular_core.InputSignal<TimelineItem[]>;
89
+ /** 'left' = line and markers on the left; 'alternate' = cards alternate around a centered line on lg+. */
90
+ alignment: _angular_core.InputSignal<TimelineAlignment>;
91
+ /** Shows/hides the vertical connector line. */
92
+ showLine: _angular_core.InputSignal<boolean>;
93
+ /** Marker diameter. */
94
+ markerSize: _angular_core.InputSignal<TimelineMarkerSize>;
95
+ /** Gradient classes cycled across markers when the item has no `color`. */
96
+ markerGradients: _angular_core.InputSignal<string[]>;
97
+ /** Shows the info column on the opposite side of the card (alternate mode, lg+). */
98
+ showOpposite: _angular_core.InputSignal<boolean>;
99
+ /** Shows the item description. */
100
+ showDescription: _angular_core.InputSignal<boolean>;
101
+ /** Shows meta chips inside sub items. */
102
+ showSubItemMeta: _angular_core.InputSignal<boolean>;
103
+ /** Shows the price of each sub item. */
104
+ showSubItemPrice: _angular_core.InputSignal<boolean>;
105
+ /** Auto-append "N {subItemCountLabel}" under the title when the item has no subtitle. */
106
+ showSubItemCount: _angular_core.InputSignal<boolean>;
107
+ subItemCountLabel: _angular_core.InputSignal<string>;
108
+ showHeader: _angular_core.InputSignal<boolean>;
109
+ headerTitle: _angular_core.InputSignal<string>;
110
+ /** Convenience "add" button in the header. */
111
+ showAddItem: _angular_core.InputSignal<boolean>;
112
+ addItemLabel: _angular_core.InputSignal<string>;
113
+ addItemIcon: _angular_core.InputSignal<string>;
114
+ addItemTooltip: _angular_core.InputSignal<string>;
115
+ headerActions: _angular_core.InputSignal<TimelineAction[]>;
116
+ /** Renders "+ Añadir sub-elemento" in each card footer. */
117
+ showAddSubItem: _angular_core.InputSignal<boolean>;
118
+ addSubItemLabel: _angular_core.InputSignal<string>;
119
+ addSubItemTooltip: _angular_core.InputSignal<string>;
120
+ itemActions: _angular_core.InputSignal<TimelineItemAction[]>;
121
+ subItemActions: _angular_core.InputSignal<TimelineSubItemAction[]>;
122
+ /** Maps a sub-item `type` to a lucide icon (name or component). */
123
+ iconMap: _angular_core.InputSignal<{
124
+ [type: string]: any;
125
+ }>;
126
+ /** Maps a sub-item `type` to its icon-box colors. */
127
+ iconColors: _angular_core.InputSignal<{
128
+ [type: string]: {
129
+ bg: string;
130
+ text: string;
131
+ };
132
+ }>;
133
+ /** Icon used when nothing matches. */
134
+ fallbackIcon: _angular_core.InputSignal<any>;
135
+ showEmptyState: _angular_core.InputSignal<boolean>;
136
+ emptyMessage: _angular_core.InputSignal<string>;
137
+ emptyIcon: _angular_core.InputSignal<any>;
138
+ editTooltip: _angular_core.InputSignal<string>;
139
+ deleteTooltip: _angular_core.InputSignal<string>;
140
+ optionalLabel: _angular_core.InputSignal<string>;
141
+ noSubItemsMessage: _angular_core.InputSignal<string>;
142
+ /** Custom content templates: keys 'marker', 'opposite', 'content', 'description', 'subItem', 'empty'. */
143
+ customTemplates: _angular_core.InputSignal<{
144
+ [key: string]: any;
145
+ }>;
146
+ addItem: _angular_core.OutputEmitterRef<void>;
147
+ addSubItem: _angular_core.OutputEmitterRef<TimelineItem>;
148
+ itemClick: _angular_core.OutputEmitterRef<TimelineItem>;
149
+ subItemClick: _angular_core.OutputEmitterRef<{
150
+ item: TimelineItem;
151
+ subItem: TimelineSubItem;
152
+ }>;
153
+ markerText(item: TimelineItem, index: number): string | number;
154
+ markerClass(item: TimelineItem, index: number): string;
155
+ markerColumnClass(): string;
156
+ alternateMarkerColumnClass(): string;
157
+ lineClass(): string;
158
+ subItemIconName(sub: TimelineSubItem): string;
159
+ subItemStyle(sub: TimelineSubItem): {
160
+ [key: string]: string;
161
+ } | undefined;
162
+ isHeaderActionVisible(action: TimelineAction): boolean;
163
+ isHeaderActionDisabled(action: TimelineAction): boolean;
164
+ getItemActionLabel(action: TimelineItemAction, item: TimelineItem): string;
165
+ getItemActionIconName(action: TimelineItemAction, item: TimelineItem): any;
166
+ getItemActionClass(action: TimelineItemAction, item: TimelineItem): string;
167
+ isItemActionVisible(action: TimelineItemAction, item: TimelineItem): boolean;
168
+ isItemActionDisabled(action: TimelineItemAction, item: TimelineItem): boolean;
169
+ getSubItemActionLabel(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): string;
170
+ getSubItemActionIconName(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): any;
171
+ isSubItemActionVisible(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): boolean;
172
+ isSubItemActionDisabled(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): boolean;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimelineComponent, never>;
174
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimelineComponent, "shk-timeline", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "showLine": { "alias": "showLine"; "required": false; "isSignal": true; }; "markerSize": { "alias": "markerSize"; "required": false; "isSignal": true; }; "markerGradients": { "alias": "markerGradients"; "required": false; "isSignal": true; }; "showOpposite": { "alias": "showOpposite"; "required": false; "isSignal": true; }; "showDescription": { "alias": "showDescription"; "required": false; "isSignal": true; }; "showSubItemMeta": { "alias": "showSubItemMeta"; "required": false; "isSignal": true; }; "showSubItemPrice": { "alias": "showSubItemPrice"; "required": false; "isSignal": true; }; "showSubItemCount": { "alias": "showSubItemCount"; "required": false; "isSignal": true; }; "subItemCountLabel": { "alias": "subItemCountLabel"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "showAddItem": { "alias": "showAddItem"; "required": false; "isSignal": true; }; "addItemLabel": { "alias": "addItemLabel"; "required": false; "isSignal": true; }; "addItemIcon": { "alias": "addItemIcon"; "required": false; "isSignal": true; }; "addItemTooltip": { "alias": "addItemTooltip"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "showAddSubItem": { "alias": "showAddSubItem"; "required": false; "isSignal": true; }; "addSubItemLabel": { "alias": "addSubItemLabel"; "required": false; "isSignal": true; }; "addSubItemTooltip": { "alias": "addSubItemTooltip"; "required": false; "isSignal": true; }; "itemActions": { "alias": "itemActions"; "required": false; "isSignal": true; }; "subItemActions": { "alias": "subItemActions"; "required": false; "isSignal": true; }; "iconMap": { "alias": "iconMap"; "required": false; "isSignal": true; }; "iconColors": { "alias": "iconColors"; "required": false; "isSignal": true; }; "fallbackIcon": { "alias": "fallbackIcon"; "required": false; "isSignal": true; }; "showEmptyState": { "alias": "showEmptyState"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "editTooltip": { "alias": "editTooltip"; "required": false; "isSignal": true; }; "deleteTooltip": { "alias": "deleteTooltip"; "required": false; "isSignal": true; }; "optionalLabel": { "alias": "optionalLabel"; "required": false; "isSignal": true; }; "noSubItemsMessage": { "alias": "noSubItemsMessage"; "required": false; "isSignal": true; }; "customTemplates": { "alias": "customTemplates"; "required": false; "isSignal": true; }; }, { "addItem": "addItem"; "addSubItem": "addSubItem"; "itemClick": "itemClick"; "subItemClick": "subItemClick"; }, never, never, true, never>;
175
+ }
176
+
177
+ export { DEFAULT_MARKER_GRADIENTS, DEFAULT_SUPPLIER_ICON_COLORS, DEFAULT_SUPPLIER_TYPE_ICONS, TimelineComponent };
178
+ export type { TimelineAction, TimelineAlignment, TimelineItem, TimelineItemAction, TimelineMarkerSize, TimelineMeta, TimelineSubItem, TimelineSubItemAction };
@@ -0,0 +1,48 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+
4
+ /**
5
+ * Shirkasoft UI Components.
6
+ * Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
7
+ * Belongs to Shirkasoft.
8
+ */
9
+ /**
10
+ * Switch / checkbox component that implements ControlValueAccessor so it can
11
+ * be used with reactive and template-driven forms.
12
+ */
13
+ declare class ToggleComponent implements ControlValueAccessor {
14
+ /** Text displayed next to the control. */
15
+ label: _angular_core.InputSignal<string>;
16
+ /** Visual style: 'toggle' (switch) or 'checkbox'. Defaults to 'toggle'. */
17
+ mode: _angular_core.InputSignal<"toggle" | "checkbox">;
18
+ /** Manually controlled checked state (supports one-way binding). */
19
+ checked: _angular_core.InputSignal<boolean | undefined>;
20
+ /** Emitted with the new value when the user toggles the control. */
21
+ checkedChange: _angular_core.OutputEmitterRef<boolean>;
22
+ /** Internal controlled/reactive value. */
23
+ _value: _angular_core.WritableSignal<boolean>;
24
+ /** Reactive disabled state. */
25
+ _disabled: _angular_core.WritableSignal<boolean>;
26
+ /** Callback notified with the new value on change (ControlValueAccessor). */
27
+ private onChange;
28
+ /** Callback notified when the control loses focus or is touched. */
29
+ private onTouched;
30
+ constructor();
31
+ /** Sets the value from the form control. */
32
+ writeValue(value: any): void;
33
+ /** Registers the callback invoked on value changes (ControlValueAccessor). */
34
+ registerOnChange(fn: any): void;
35
+ /** Registers the callback invoked when the control is touched. */
36
+ registerOnTouched(fn: any): void;
37
+ /** Reflects the disabled state of the form control. */
38
+ setDisabledState(isDisabled: boolean): void;
39
+ /**
40
+ * Inverts the current value (unless disabled), notifies the form control,
41
+ * marks the control as touched and emits `checkedChange`.
42
+ */
43
+ toggle(): void;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
45
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "shk-toggle", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
46
+ }
47
+
48
+ export { ToggleComponent };
@@ -0,0 +1,47 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy } from '@angular/core';
3
+
4
+ /**
5
+ * Shirkasoft UI Components.
6
+ * Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
7
+ * Belongs to Shirkasoft.
8
+ */
9
+ /**
10
+ * Tooltip rendered in `document.body` with `position: fixed`, so it always
11
+ * floats above any container (tables with `overflow: hidden`, modals, scroll
12
+ * wrappers, etc.) and never gets clipped or hidden behind its anchor element.
13
+ */
14
+ declare class TooltipComponent implements OnDestroy {
15
+ /** Content of the tooltip. */
16
+ readonly text: _angular_core.InputSignal<string>;
17
+ /** Preferred placement relative to the trigger. */
18
+ readonly position: _angular_core.InputSignal<"top" | "bottom" | "right">;
19
+ /** 'hover' shows on mouse enter; 'fixed' stays pinned to the content. */
20
+ readonly mode: _angular_core.InputSignal<"hover" | "fixed">;
21
+ /** Distance (px) between the tooltip and the trigger. */
22
+ readonly offset: _angular_core.InputSignal<number>;
23
+ private readonly host;
24
+ private readonly document;
25
+ /** The dynamically created tooltip element. */
26
+ private tooltipEl;
27
+ /** Unsubscribe callbacks for the scroll/resize listeners. */
28
+ private cleanup;
29
+ /** Shows the tooltip over the host trigger on mouseenter. */
30
+ onMouseEnter(): void;
31
+ /** Hides the tooltip on mouseleave. */
32
+ onMouseLeave(): void;
33
+ /** Creates and positions the tooltip element on `document.body`. */
34
+ private show;
35
+ /** Computes the tooltip position, clamped to the viewport. */
36
+ private computePosition;
37
+ /** Fades the tooltip out and removes it from the DOM. */
38
+ private hide;
39
+ /** Removes the tooltip and its listeners. */
40
+ private removeTooltip;
41
+ /** Cleans up the tooltip on component destroy. */
42
+ ngOnDestroy(): void;
43
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
44
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "shk-tooltip", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
45
+ }
46
+
47
+ export { TooltipComponent };
@@ -0,0 +1,9 @@
1
+ /** Maps the icon names used across the library to their Lucide component. */
2
+ declare const ICONS: Record<string, any>;
3
+ /**
4
+ * Resolves the icon passed to a component into a lucide component.
5
+ * Accepts a registered string name, an existing lucide component or a LucideIconData object.
6
+ */
7
+ declare function getIcon(icon?: any, fallback?: any): any;
8
+
9
+ export { ICONS, getIcon };
@@ -0,0 +1,101 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+
4
+ /** A step of the wizard shown in the stepper. */
5
+ interface WizardStep {
6
+ id: string | number;
7
+ label: string;
8
+ /** Optional lucide icon rendered inside the step circle. */
9
+ icon?: string;
10
+ /** Overrides the primary footer button label for this step. */
11
+ primaryLabel?: string;
12
+ /** Overrides the primary footer button icon for this step. */
13
+ primaryIcon?: string;
14
+ }
15
+ /** Declares a step's content template: <ng-template shkWizardStepContent="stepId">…</ng-template>. */
16
+ declare class ShkWizardStepContent {
17
+ templateRef: TemplateRef<unknown>;
18
+ stepId: _angular_core.InputSignal<string | number>;
19
+ constructor(templateRef: TemplateRef<unknown>);
20
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShkWizardStepContent, never>;
21
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShkWizardStepContent, "ng-template[shkWizardStepContent]", never, { "stepId": { "alias": "shkWizardStepContent"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
22
+ }
23
+ /**
24
+ * Shirkasoft UI Components.
25
+ * Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
26
+ * Belongs to Shirkasoft.
27
+ */
28
+ /**
29
+ * Multi-step wizard with a progress stepper, header, footer actions and
30
+ * content templates declared with `shkWizardStepContent`.
31
+ */
32
+ declare class WizardComponent {
33
+ protected getIcon: (name: any) => any;
34
+ /** Steps definition shown in the stepper and used to resolve step content. */
35
+ steps: _angular_core.InputSignal<WizardStep[]>;
36
+ /** Active step id. Two-way bindable with [(currentStep)]. Null resolves to the first step. */
37
+ currentStep: _angular_core.ModelSignal<string | number | null>;
38
+ /** Shows the sticky header (back button + title). */
39
+ showHeader: _angular_core.InputSignal<boolean>;
40
+ headerTitle: _angular_core.InputSignal<string>;
41
+ headerSubtitle: _angular_core.InputSignal<string>;
42
+ /** Shows the round back button in the header. */
43
+ showBackButton: _angular_core.InputSignal<boolean>;
44
+ backTooltip: _angular_core.InputSignal<string>;
45
+ /** Optional lucide icon shown before the title. */
46
+ headerIcon: _angular_core.InputSignal<string>;
47
+ /** Shows the progress stepper (hide it for edit mode, like wac-app does). */
48
+ showStepper: _angular_core.InputSignal<boolean>;
49
+ /** Lets the user click on previous steps to jump back. */
50
+ stepperClickable: _angular_core.InputSignal<boolean>;
51
+ showFooter: _angular_core.InputSignal<boolean>;
52
+ /** Shows a "Paso X / N" counter on the left of the footer. */
53
+ showStepCounter: _angular_core.InputSignal<boolean>;
54
+ stepCounterPrefix: _angular_core.InputSignal<string>;
55
+ /** Shows the Cancel button on the first step (instead of a back button). */
56
+ showCancel: _angular_core.InputSignal<boolean>;
57
+ /** Auto-advances to the next step on the primary button when it is not the last step. */
58
+ advanceOnNext: _angular_core.InputSignal<boolean>;
59
+ prevLabel: _angular_core.InputSignal<string>;
60
+ prevIcon: _angular_core.InputSignal<string>;
61
+ cancelLabel: _angular_core.InputSignal<string>;
62
+ cancelIcon: _angular_core.InputSignal<string>;
63
+ nextLabel: _angular_core.InputSignal<string>;
64
+ nextIcon: _angular_core.InputSignal<string>;
65
+ finishLabel: _angular_core.InputSignal<string>;
66
+ finishIcon: _angular_core.InputSignal<string>;
67
+ /** Overrides the primary footer button label for every step. */
68
+ primaryLabel: _angular_core.InputSignal<string | null>;
69
+ /** Overrides the primary footer button icon for every step. */
70
+ primaryIcon: _angular_core.InputSignal<string | null>;
71
+ /** Shows a loading spinner on the primary button and disables it. */
72
+ primaryLoading: _angular_core.InputSignal<boolean>;
73
+ /** Disables the primary footer button (e.g. while the step form is invalid). */
74
+ primaryDisabled: _angular_core.InputSignal<boolean>;
75
+ back: _angular_core.OutputEmitterRef<void>;
76
+ cancel: _angular_core.OutputEmitterRef<void>;
77
+ prev: _angular_core.OutputEmitterRef<void>;
78
+ next: _angular_core.OutputEmitterRef<void>;
79
+ finish: _angular_core.OutputEmitterRef<void>;
80
+ stepChange: _angular_core.OutputEmitterRef<{
81
+ step: WizardStep | null;
82
+ index: number;
83
+ }>;
84
+ readonly stepContents: _angular_core.Signal<readonly ShkWizardStepContent[]>;
85
+ currentIndex: _angular_core.Signal<number>;
86
+ currentStepObj: _angular_core.Signal<WizardStep>;
87
+ isFirstStep: _angular_core.Signal<boolean>;
88
+ isLastStep: _angular_core.Signal<boolean>;
89
+ primaryActionLabel: _angular_core.Signal<string>;
90
+ primaryActionIcon: _angular_core.Signal<string>;
91
+ getStepTemplate(id: string | number): TemplateRef<unknown> | undefined;
92
+ goTo(stepId: string | number): void;
93
+ onPrev(): void;
94
+ onNext(): void;
95
+ onPrimary(): void;
96
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WizardComponent, never>;
97
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WizardComponent, "shk-wizard", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "currentStep": { "alias": "currentStep"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "headerSubtitle": { "alias": "headerSubtitle"; "required": false; "isSignal": true; }; "showBackButton": { "alias": "showBackButton"; "required": false; "isSignal": true; }; "backTooltip": { "alias": "backTooltip"; "required": false; "isSignal": true; }; "headerIcon": { "alias": "headerIcon"; "required": false; "isSignal": true; }; "showStepper": { "alias": "showStepper"; "required": false; "isSignal": true; }; "stepperClickable": { "alias": "stepperClickable"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "showStepCounter": { "alias": "showStepCounter"; "required": false; "isSignal": true; }; "stepCounterPrefix": { "alias": "stepCounterPrefix"; "required": false; "isSignal": true; }; "showCancel": { "alias": "showCancel"; "required": false; "isSignal": true; }; "advanceOnNext": { "alias": "advanceOnNext"; "required": false; "isSignal": true; }; "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "prevIcon": { "alias": "prevIcon"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "cancelIcon": { "alias": "cancelIcon"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "nextIcon": { "alias": "nextIcon"; "required": false; "isSignal": true; }; "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; "finishIcon": { "alias": "finishIcon"; "required": false; "isSignal": true; }; "primaryLabel": { "alias": "primaryLabel"; "required": false; "isSignal": true; }; "primaryIcon": { "alias": "primaryIcon"; "required": false; "isSignal": true; }; "primaryLoading": { "alias": "primaryLoading"; "required": false; "isSignal": true; }; "primaryDisabled": { "alias": "primaryDisabled"; "required": false; "isSignal": true; }; }, { "currentStep": "currentStepChange"; "back": "back"; "cancel": "cancel"; "prev": "prev"; "next": "next"; "finish": "finish"; "stepChange": "stepChange"; }, ["stepContents"], ["[shkWizardHeaderActions]"], true, never>;
98
+ }
99
+
100
+ export { ShkWizardStepContent, WizardComponent };
101
+ export type { WizardStep };