valtech-components 2.0.613 → 2.0.615
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +185 -0
- package/esm2022/lib/components/molecules/features-list/types.mjs +11 -0
- package/esm2022/lib/config/company-footer.config.mjs +106 -0
- package/esm2022/lib/config/index.mjs +5 -0
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/valtech-components.mjs +301 -1
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/molecules/features-list/features-list.component.d.ts +66 -0
- package/lib/components/molecules/features-list/types.d.ts +36 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/config/company-footer.config.d.ts +97 -0
- package/lib/config/index.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -39,7 +39,7 @@ export declare class RightsFooterComponent {
|
|
|
39
39
|
/**
|
|
40
40
|
* Computed helper for align prop in template.
|
|
41
41
|
*/
|
|
42
|
-
propsAlign: import("@angular/core").Signal<"
|
|
42
|
+
propsAlign: import("@angular/core").Signal<"center" | "left" | "right">;
|
|
43
43
|
/**
|
|
44
44
|
* Computed helper for color prop in template.
|
|
45
45
|
*/
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { FeatureItem, FeaturesListMetadata } from './types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* val-features-list
|
|
5
|
+
*
|
|
6
|
+
* A component to display a list of features with icons, titles, and descriptions.
|
|
7
|
+
* Supports i18n for all text content.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```html
|
|
11
|
+
* <val-features-list
|
|
12
|
+
* [props]="{
|
|
13
|
+
* features: [
|
|
14
|
+
* { icon: 'flash-outline', titleKey: 'feature1Title', descriptionKey: 'feature1Desc' },
|
|
15
|
+
* { icon: 'color-palette-outline', titleKey: 'feature2Title', descriptionKey: 'feature2Desc' }
|
|
16
|
+
* ],
|
|
17
|
+
* i18nNamespace: 'Features',
|
|
18
|
+
* iconColor: 'primary',
|
|
19
|
+
* mode: 'vertical'
|
|
20
|
+
* }"
|
|
21
|
+
* />
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @example With custom SVG icons
|
|
25
|
+
* ```html
|
|
26
|
+
* <val-features-list
|
|
27
|
+
* [props]="{
|
|
28
|
+
* features: [
|
|
29
|
+
* {
|
|
30
|
+
* icon: 'custom',
|
|
31
|
+
* svgPath: 'M13 2L3 14h9l-1 8 10-12h-9l1-8z',
|
|
32
|
+
* titleKey: 'Fast & Secure',
|
|
33
|
+
* descriptionKey: 'Modern authentication with OAuth and MFA'
|
|
34
|
+
* }
|
|
35
|
+
* ]
|
|
36
|
+
* }"
|
|
37
|
+
* />
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare class FeaturesListComponent {
|
|
41
|
+
private i18n;
|
|
42
|
+
/** Component configuration */
|
|
43
|
+
readonly props: import("@angular/core").InputSignal<FeaturesListMetadata>;
|
|
44
|
+
/** Merged configuration with defaults */
|
|
45
|
+
config: import("@angular/core").Signal<{
|
|
46
|
+
features: FeatureItem[];
|
|
47
|
+
i18nNamespace?: string;
|
|
48
|
+
iconColor: string;
|
|
49
|
+
iconSize: number;
|
|
50
|
+
mode: "vertical" | "horizontal";
|
|
51
|
+
gap: "small" | "medium" | "large";
|
|
52
|
+
alignment: "start" | "center";
|
|
53
|
+
}>;
|
|
54
|
+
/** Resolved icon color (handles Ionic colors and CSS colors) */
|
|
55
|
+
iconColorStyle: import("@angular/core").Signal<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Get translated title or return direct text
|
|
58
|
+
*/
|
|
59
|
+
getTitle(feature: FeatureItem): string;
|
|
60
|
+
/**
|
|
61
|
+
* Get translated description or return direct text
|
|
62
|
+
*/
|
|
63
|
+
getDescription(feature: FeatureItem): string;
|
|
64
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FeaturesListComponent, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FeaturesListComponent, "val-features-list", never, { "props": { "alias": "props"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
66
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature item configuration
|
|
3
|
+
*/
|
|
4
|
+
export interface FeatureItem {
|
|
5
|
+
/** Ionicon name or 'custom' for SVG path */
|
|
6
|
+
icon: string;
|
|
7
|
+
/** SVG path data (only used when icon is 'custom') */
|
|
8
|
+
svgPath?: string;
|
|
9
|
+
/** Title i18n key or direct text */
|
|
10
|
+
titleKey: string;
|
|
11
|
+
/** Description i18n key or direct text */
|
|
12
|
+
descriptionKey: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Features list component configuration
|
|
16
|
+
*/
|
|
17
|
+
export interface FeaturesListMetadata {
|
|
18
|
+
/** Array of features to display */
|
|
19
|
+
features: FeatureItem[];
|
|
20
|
+
/** i18n namespace for translations (if using keys) */
|
|
21
|
+
i18nNamespace?: string;
|
|
22
|
+
/** Icon color (Ionic color or CSS color) */
|
|
23
|
+
iconColor?: string;
|
|
24
|
+
/** Icon size in pixels */
|
|
25
|
+
iconSize?: number;
|
|
26
|
+
/** Layout mode: 'vertical' stacks features, 'horizontal' displays them in a row */
|
|
27
|
+
mode?: 'vertical' | 'horizontal';
|
|
28
|
+
/** Gap between features */
|
|
29
|
+
gap?: 'small' | 'medium' | 'large';
|
|
30
|
+
/** Alignment of features */
|
|
31
|
+
alignment?: 'start' | 'center';
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Default values for FeaturesListMetadata
|
|
35
|
+
*/
|
|
36
|
+
export declare const FEATURES_LIST_DEFAULTS: Required<Omit<FeaturesListMetadata, 'features' | 'i18nNamespace'>>;
|
|
@@ -57,7 +57,7 @@ export declare class ArticleComponent implements OnInit {
|
|
|
57
57
|
linkConfig?: import("valtech-components").LinkProcessorConfig;
|
|
58
58
|
allowPartialBold?: boolean;
|
|
59
59
|
authorColor?: import("@ionic/core").Color;
|
|
60
|
-
alignment?: "
|
|
60
|
+
alignment?: "center" | "left" | "right";
|
|
61
61
|
showQuoteMark?: boolean;
|
|
62
62
|
};
|
|
63
63
|
getHighlightTextProps(element: ArticleElement): {
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Company Footer Configuration
|
|
3
|
+
*
|
|
4
|
+
* This configuration is shared across all Valtech products:
|
|
5
|
+
* - ui-docs
|
|
6
|
+
* - showcase
|
|
7
|
+
* - myvaltech (company website)
|
|
8
|
+
*
|
|
9
|
+
* When links or social profiles change, update here and publish a new version.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Social media links for Valtech
|
|
13
|
+
*/
|
|
14
|
+
export declare const VALTECH_SOCIAL_LINKS: {
|
|
15
|
+
icon: string;
|
|
16
|
+
url: string;
|
|
17
|
+
name: string;
|
|
18
|
+
}[];
|
|
19
|
+
/**
|
|
20
|
+
* Footer logo configuration
|
|
21
|
+
* Uses CSS variables for theme-aware logo switching
|
|
22
|
+
*/
|
|
23
|
+
export declare const VALTECH_FOOTER_LOGO: {
|
|
24
|
+
logo: string;
|
|
25
|
+
logoDark: string;
|
|
26
|
+
logoAlt: string;
|
|
27
|
+
logoRoute: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Company link definition
|
|
31
|
+
*/
|
|
32
|
+
export interface CompanyLink {
|
|
33
|
+
/** i18n key for the link text */
|
|
34
|
+
key: string;
|
|
35
|
+
/** URL path or external URL */
|
|
36
|
+
url: string;
|
|
37
|
+
/** Whether the link opens in a new tab */
|
|
38
|
+
external?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Company links organized by section
|
|
42
|
+
*/
|
|
43
|
+
export declare const VALTECH_COMPANY_LINKS: {
|
|
44
|
+
legal: CompanyLink[];
|
|
45
|
+
support: CompanyLink[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* i18n keys for the footer (Layout namespace)
|
|
49
|
+
* These should be registered in each app's i18n config
|
|
50
|
+
*/
|
|
51
|
+
export declare const VALTECH_FOOTER_I18N: {
|
|
52
|
+
es: {
|
|
53
|
+
footerLeftTitle: string;
|
|
54
|
+
footerRightTitle: string;
|
|
55
|
+
aboutUs: string;
|
|
56
|
+
privacyPolicy: string;
|
|
57
|
+
termsConditions: string;
|
|
58
|
+
contactSupport: string;
|
|
59
|
+
faq: string;
|
|
60
|
+
feedback: string;
|
|
61
|
+
};
|
|
62
|
+
en: {
|
|
63
|
+
footerLeftTitle: string;
|
|
64
|
+
footerRightTitle: string;
|
|
65
|
+
aboutUs: string;
|
|
66
|
+
privacyPolicy: string;
|
|
67
|
+
termsConditions: string;
|
|
68
|
+
contactSupport: string;
|
|
69
|
+
faq: string;
|
|
70
|
+
feedback: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Default language selector configuration for footer
|
|
75
|
+
*/
|
|
76
|
+
export declare const VALTECH_LANGUAGE_SELECTOR: {
|
|
77
|
+
mode: "default";
|
|
78
|
+
showFlags: boolean;
|
|
79
|
+
showLabel: boolean;
|
|
80
|
+
fill: "outline";
|
|
81
|
+
size: "default";
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Helper to build footer links from company links config
|
|
85
|
+
* @param links - Array of company links
|
|
86
|
+
* @param t - Translation function (key: string) => string
|
|
87
|
+
* @returns Array of link objects ready for FooterLinksMetadata
|
|
88
|
+
*/
|
|
89
|
+
export declare function buildFooterLinks(links: CompanyLink[], t: (key: string) => string): Array<{
|
|
90
|
+
url: string;
|
|
91
|
+
text: string;
|
|
92
|
+
color: string;
|
|
93
|
+
token: string;
|
|
94
|
+
download: boolean;
|
|
95
|
+
hoverable: boolean;
|
|
96
|
+
target?: string;
|
|
97
|
+
}>;
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -153,6 +153,8 @@ export * from './lib/components/molecules/recap-card/recap-card.component';
|
|
|
153
153
|
export * from './lib/components/molecules/recap-card/types';
|
|
154
154
|
export * from './lib/components/molecules/testimonial-card/testimonial-card.component';
|
|
155
155
|
export * from './lib/components/molecules/testimonial-card/types';
|
|
156
|
+
export * from './lib/components/molecules/features-list/features-list.component';
|
|
157
|
+
export * from './lib/components/molecules/features-list/types';
|
|
156
158
|
export * from './lib/components/molecules/footer-links/footer-links.component';
|
|
157
159
|
export * from './lib/components/molecules/footer-links/types';
|
|
158
160
|
export * from './lib/components/molecules/links-accordion/links-accordion.component';
|
|
@@ -270,3 +272,4 @@ export * from './lib/shared/utils/dom';
|
|
|
270
272
|
export * from './lib/shared/utils/form-defaults';
|
|
271
273
|
export * from './lib/shared/utils/styles';
|
|
272
274
|
export * from './lib/shared/utils/text';
|
|
275
|
+
export * from './lib/config';
|