@gestio/gds 0.0.1
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/README.md +72 -0
- package/bundles/gestio-gds.umd.js +962 -0
- package/bundles/gestio-gds.umd.js.map +1 -0
- package/bundles/gestio-gds.umd.min.js +16 -0
- package/bundles/gestio-gds.umd.min.js.map +1 -0
- package/esm2015/gestio-gds.js +5 -0
- package/esm2015/lib/gds-button/gds-button.component.js +20 -0
- package/esm2015/lib/gds-button/gds-button.module.js +15 -0
- package/esm2015/lib/gds-input/gds-input.component.js +68 -0
- package/esm2015/lib/gds-input/gds-input.module.js +15 -0
- package/esm2015/lib/gds-label/gds-label.component.js +36 -0
- package/esm2015/lib/gds-label/gds-label.module.js +15 -0
- package/esm2015/lib/gds-selectbox/gds-selectbox.component.js +175 -0
- package/esm2015/lib/gds-selectbox/gds-selectbox.module.js +16 -0
- package/esm2015/lib/gds-textbox/gds-textbox.component.js +94 -0
- package/esm2015/lib/gds-textbox/gds-textbox.module.js +16 -0
- package/esm2015/lib/gds.component.js +19 -0
- package/esm2015/lib/gds.module.js +27 -0
- package/esm2015/lib/tokens/colors.js +201 -0
- package/esm2015/lib/tokens/typography.js +31 -0
- package/esm2015/public-api.js +18 -0
- package/esm5/gestio-gds.js +5 -0
- package/esm5/lib/gds-button/gds-button.component.js +21 -0
- package/esm5/lib/gds-button/gds-button.module.js +18 -0
- package/esm5/lib/gds-input/gds-input.component.js +69 -0
- package/esm5/lib/gds-input/gds-input.module.js +18 -0
- package/esm5/lib/gds-label/gds-label.component.js +37 -0
- package/esm5/lib/gds-label/gds-label.module.js +18 -0
- package/esm5/lib/gds-selectbox/gds-selectbox.component.js +180 -0
- package/esm5/lib/gds-selectbox/gds-selectbox.module.js +19 -0
- package/esm5/lib/gds-textbox/gds-textbox.component.js +96 -0
- package/esm5/lib/gds-textbox/gds-textbox.module.js +19 -0
- package/esm5/lib/gds.component.js +17 -0
- package/esm5/lib/gds.module.js +30 -0
- package/esm5/lib/tokens/colors.js +185 -0
- package/esm5/lib/tokens/typography.js +31 -0
- package/esm5/public-api.js +18 -0
- package/fesm2015/gestio-gds.js +704 -0
- package/fesm2015/gestio-gds.js.map +1 -0
- package/fesm5/gestio-gds.js +713 -0
- package/fesm5/gestio-gds.js.map +1 -0
- package/gestio-gds.d.ts +4 -0
- package/gestio-gds.metadata.json +1 -0
- package/lib/gds-button/gds-button.component.d.ts +6 -0
- package/lib/gds-button/gds-button.module.d.ts +2 -0
- package/lib/gds-input/gds-input.component.d.ts +17 -0
- package/lib/gds-input/gds-input.module.d.ts +2 -0
- package/lib/gds-label/gds-label.component.d.ts +8 -0
- package/lib/gds-label/gds-label.module.d.ts +2 -0
- package/lib/gds-selectbox/gds-selectbox.component.d.ts +40 -0
- package/lib/gds-selectbox/gds-selectbox.module.d.ts +2 -0
- package/lib/gds-textbox/gds-textbox.component.d.ts +23 -0
- package/lib/gds-textbox/gds-textbox.module.d.ts +2 -0
- package/lib/gds.component.d.ts +5 -0
- package/lib/gds.module.d.ts +2 -0
- package/lib/tokens/colors.d.ts +17 -0
- package/lib/tokens/typography.d.ts +21 -0
- package/package.json +21 -0
- package/public-api.d.ts +14 -0
- package/src/lib/styles/tokens/colors.css +170 -0
- package/src/lib/styles/tokens/elevation.css +13 -0
- package/src/lib/styles/tokens/index.css +6 -0
- package/src/lib/styles/tokens/radius.css +0 -0
- package/src/lib/styles/tokens/semantic/colors.css +35 -0
- package/src/lib/styles/tokens/spacing.css +0 -0
- package/src/lib/styles/tokens/typography.css +115 -0
- package/src/lib/styles/utilities/line-counter.scss +29 -0
- package/src/lib/styles.scss +5 -0
- package/src/lib/tokens/colors.ts +216 -0
- package/src/lib/tokens/elevation.ts +13 -0
- package/src/lib/tokens/typography.ts +33 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--gds-font-primary: "Plus Jakarta Sans", sans-serif;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
* {
|
|
8
|
+
font-family: var(--gds-font-primary);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.gds-heading-3xl {
|
|
12
|
+
font-weight: 600;
|
|
13
|
+
font-size: 2.25rem;
|
|
14
|
+
line-height: 1.25;
|
|
15
|
+
letter-spacing: 0.2px;
|
|
16
|
+
color: var(--text-foreground);
|
|
17
|
+
text-wrap: balance;
|
|
18
|
+
|
|
19
|
+
@media (min-width: 768px) {
|
|
20
|
+
font-size: 3.75rem;
|
|
21
|
+
line-height: 4rem;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.gds-heading-2xl {
|
|
26
|
+
font-weight: 600;
|
|
27
|
+
font-size: 1.875rem;
|
|
28
|
+
line-height: 1.25;
|
|
29
|
+
letter-spacing: 0.2px;
|
|
30
|
+
color: var(--text-foreground);
|
|
31
|
+
text-wrap: balance;
|
|
32
|
+
|
|
33
|
+
@media (min-width: 768px) {
|
|
34
|
+
font-size: 3rem;
|
|
35
|
+
line-height: 4rem;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.gds-heading-xl {
|
|
40
|
+
font-weight: 600;
|
|
41
|
+
font-size: 1.875rem;
|
|
42
|
+
line-height: 1.25;
|
|
43
|
+
letter-spacing: 0.1px;
|
|
44
|
+
color: var(--text-foreground);
|
|
45
|
+
text-wrap: balance;
|
|
46
|
+
|
|
47
|
+
@media (min-width: 768px) {
|
|
48
|
+
font-size: 2.5rem;
|
|
49
|
+
line-height: 3rem;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.gds-heading-lg {
|
|
54
|
+
font-weight: 600;
|
|
55
|
+
font-size: 1.5rem;
|
|
56
|
+
line-height: 1.25;
|
|
57
|
+
letter-spacing: 0.1px;
|
|
58
|
+
color: var(--text-foreground);
|
|
59
|
+
text-wrap: balance;
|
|
60
|
+
|
|
61
|
+
@media (min-width: 768px) {
|
|
62
|
+
font-size: 2rem;
|
|
63
|
+
line-height: 2.75rem;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.gds-heading-md {
|
|
68
|
+
font-weight: 600;
|
|
69
|
+
font-size: 1.25rem;
|
|
70
|
+
line-height: 1.25;
|
|
71
|
+
letter-spacing: normal;
|
|
72
|
+
color: var(--text-foreground);
|
|
73
|
+
text-wrap: balance;
|
|
74
|
+
|
|
75
|
+
@media (min-width: 768px) {
|
|
76
|
+
font-size: 1.75rem;
|
|
77
|
+
line-height: 2.5rem;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.gds-heading-sm {
|
|
82
|
+
font-weight: 600;
|
|
83
|
+
font-size: 1.125rem;
|
|
84
|
+
line-height: 1.25;
|
|
85
|
+
letter-spacing: 0.1px;
|
|
86
|
+
color: var(--text-foreground);
|
|
87
|
+
text-wrap: balance;
|
|
88
|
+
|
|
89
|
+
@media (min-width: 768px) {
|
|
90
|
+
font-size: 1.5rem;
|
|
91
|
+
line-height: 2.25rem;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.gds-heading-xs {
|
|
96
|
+
font-weight: 600;
|
|
97
|
+
font-size: 1rem;
|
|
98
|
+
line-height: 1.25;
|
|
99
|
+
letter-spacing: normal;
|
|
100
|
+
color: var(--text-foreground);
|
|
101
|
+
text-wrap: balance;
|
|
102
|
+
|
|
103
|
+
@media (min-width: 768px) {
|
|
104
|
+
font-size: 1.25rem;
|
|
105
|
+
line-height: 2.125rem;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.gds-subheading {
|
|
110
|
+
margin-top: 1rem;
|
|
111
|
+
margin-bottom: 2rem;
|
|
112
|
+
font-size: 1.125rem;
|
|
113
|
+
color: var(--gds-neutral-400);
|
|
114
|
+
text-wrap: balance;
|
|
115
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.line {
|
|
2
|
+
counter-increment: line;
|
|
3
|
+
position: relative;
|
|
4
|
+
padding-left: 2.5rem; // pl-10
|
|
5
|
+
|
|
6
|
+
&::before {
|
|
7
|
+
content: counter(line);
|
|
8
|
+
position: absolute;
|
|
9
|
+
inset-block: 0;
|
|
10
|
+
left: 0;
|
|
11
|
+
|
|
12
|
+
width: 1.5rem;
|
|
13
|
+
margin-right: 1.5rem;
|
|
14
|
+
|
|
15
|
+
text-align: right;
|
|
16
|
+
font-size: 0.75rem; // text-xs
|
|
17
|
+
opacity: 0.35;
|
|
18
|
+
|
|
19
|
+
transition: opacity 0.2s ease;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&:hover::before {
|
|
23
|
+
opacity: 1;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&:first-of-type {
|
|
27
|
+
counter-set: line var(--counter-start);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
// BASE COLORS
|
|
2
|
+
export const BASE_COLORS = ['gestio-dark', 'gestio-light'];
|
|
3
|
+
|
|
4
|
+
// PRIMARY COLORS
|
|
5
|
+
export const PRIMARY_COLORS = [
|
|
6
|
+
'primary',
|
|
7
|
+
'gestio-primary',
|
|
8
|
+
'gestio-primary-hover',
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
// SECONDARY COLORS
|
|
12
|
+
export const SECONDARY_COLORS = ['gestio-secondary'];
|
|
13
|
+
|
|
14
|
+
// TERTIARY COLORS
|
|
15
|
+
export const TERTIARY_COLORS = ['gestio-tertiary'];
|
|
16
|
+
|
|
17
|
+
// BRAND COLORS
|
|
18
|
+
export const BRAND_COLORS = [
|
|
19
|
+
'gestio-brand-25',
|
|
20
|
+
'gestio-brand-50',
|
|
21
|
+
'gestio-brand-100',
|
|
22
|
+
'gestio-brand-200',
|
|
23
|
+
'gestio-brand-300',
|
|
24
|
+
'gestio-brand-400',
|
|
25
|
+
'gestio-brand-500',
|
|
26
|
+
'gestio-brand-600',
|
|
27
|
+
'gestio-brand-700',
|
|
28
|
+
'gestio-brand-800',
|
|
29
|
+
'gestio-brand-900',
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
// NEUTRAL COLORS
|
|
33
|
+
export const NEUTRAL_COLORS = [
|
|
34
|
+
'gestio-neutral-25',
|
|
35
|
+
'gestio-neutral-50',
|
|
36
|
+
'gestio-neutral-100',
|
|
37
|
+
'gestio-neutral-200',
|
|
38
|
+
'gestio-neutral-300',
|
|
39
|
+
'gestio-neutral-400',
|
|
40
|
+
'gestio-neutral-500',
|
|
41
|
+
'gestio-neutral-600',
|
|
42
|
+
'gestio-neutral-700',
|
|
43
|
+
'gestio-neutral-800',
|
|
44
|
+
'gestio-neutral-900',
|
|
45
|
+
'gestio-neutral-1000',
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
// GREEN COLORS
|
|
49
|
+
export const GREEN_COLORS = [
|
|
50
|
+
'gestio-green-25',
|
|
51
|
+
'gestio-green-50',
|
|
52
|
+
'gestio-green-100',
|
|
53
|
+
'gestio-green-200',
|
|
54
|
+
'gestio-green-300',
|
|
55
|
+
'gestio-green-400',
|
|
56
|
+
'gestio-green-500',
|
|
57
|
+
'gestio-green-600',
|
|
58
|
+
'gestio-green-700',
|
|
59
|
+
'gestio-green-800',
|
|
60
|
+
'gestio-green-900',
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
// RED COLORS
|
|
64
|
+
export const RED_COLORS = [
|
|
65
|
+
'gestio-red-25',
|
|
66
|
+
'gestio-red-50',
|
|
67
|
+
'gestio-red-100',
|
|
68
|
+
'gestio-red-200',
|
|
69
|
+
'gestio-red-300',
|
|
70
|
+
'gestio-red-400',
|
|
71
|
+
'gestio-red-500',
|
|
72
|
+
'gestio-red-600',
|
|
73
|
+
'gestio-red-700',
|
|
74
|
+
'gestio-red-800',
|
|
75
|
+
'gestio-red-900',
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
// BLUE COLORS
|
|
79
|
+
export const BLUE_COLORS = [
|
|
80
|
+
'gestio-blue-25',
|
|
81
|
+
'gestio-blue-50',
|
|
82
|
+
'gestio-blue-100',
|
|
83
|
+
'gestio-blue-200',
|
|
84
|
+
'gestio-blue-300',
|
|
85
|
+
'gestio-blue-400',
|
|
86
|
+
'gestio-blue-500',
|
|
87
|
+
'gestio-blue-600',
|
|
88
|
+
'gestio-blue-700',
|
|
89
|
+
'gestio-blue-800',
|
|
90
|
+
'gestio-blue-900',
|
|
91
|
+
];
|
|
92
|
+
|
|
93
|
+
// AMBER COLORS
|
|
94
|
+
export const AMBER_COLORS = [
|
|
95
|
+
'gestio-amber-25',
|
|
96
|
+
'gestio-amber-50',
|
|
97
|
+
'gestio-amber-100',
|
|
98
|
+
'gestio-amber-200',
|
|
99
|
+
'gestio-amber-300',
|
|
100
|
+
'gestio-amber-400',
|
|
101
|
+
'gestio-amber-500',
|
|
102
|
+
'gestio-amber-600',
|
|
103
|
+
'gestio-amber-700',
|
|
104
|
+
'gestio-amber-800',
|
|
105
|
+
'gestio-amber-900',
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
// TEAL COLORS
|
|
109
|
+
export const TEAL_COLORS = [
|
|
110
|
+
'gestio-teal-25',
|
|
111
|
+
'gestio-teal-50',
|
|
112
|
+
'gestio-teal-100',
|
|
113
|
+
'gestio-teal-200',
|
|
114
|
+
'gestio-teal-300',
|
|
115
|
+
'gestio-teal-400',
|
|
116
|
+
'gestio-teal-500',
|
|
117
|
+
'gestio-teal-600',
|
|
118
|
+
'gestio-teal-700',
|
|
119
|
+
'gestio-teal-800',
|
|
120
|
+
'gestio-teal-900',
|
|
121
|
+
];
|
|
122
|
+
|
|
123
|
+
// PURPLE COLORS
|
|
124
|
+
export const PURPLE_COLORS = [
|
|
125
|
+
'gestio-purple-25',
|
|
126
|
+
'gestio-purple-50',
|
|
127
|
+
'gestio-purple-100',
|
|
128
|
+
'gestio-purple-200',
|
|
129
|
+
'gestio-purple-300',
|
|
130
|
+
'gestio-purple-400',
|
|
131
|
+
'gestio-purple-500',
|
|
132
|
+
'gestio-purple-600',
|
|
133
|
+
'gestio-purple-700',
|
|
134
|
+
'gestio-purple-800',
|
|
135
|
+
'gestio-purple-900',
|
|
136
|
+
];
|
|
137
|
+
|
|
138
|
+
// EMERALD COLORS
|
|
139
|
+
export const EMERALD_COLORS = [
|
|
140
|
+
'gestio-emerald-25',
|
|
141
|
+
'gestio-emerald-50',
|
|
142
|
+
'gestio-emerald-100',
|
|
143
|
+
'gestio-emerald-200',
|
|
144
|
+
'gestio-emerald-300',
|
|
145
|
+
'gestio-emerald-400',
|
|
146
|
+
'gestio-emerald-500',
|
|
147
|
+
'gestio-emerald-600',
|
|
148
|
+
'gestio-emerald-700',
|
|
149
|
+
'gestio-emerald-800',
|
|
150
|
+
'gestio-emerald-900',
|
|
151
|
+
];
|
|
152
|
+
|
|
153
|
+
// MAGENTA COLORS
|
|
154
|
+
export const MAGENTA_COLORS = [
|
|
155
|
+
'gestio-magenta-25',
|
|
156
|
+
'gestio-magenta-50',
|
|
157
|
+
'gestio-magenta-100',
|
|
158
|
+
'gestio-magenta-200',
|
|
159
|
+
'gestio-magenta-300',
|
|
160
|
+
'gestio-magenta-400',
|
|
161
|
+
'gestio-magenta-500',
|
|
162
|
+
'gestio-magenta-600',
|
|
163
|
+
'gestio-magenta-700',
|
|
164
|
+
'gestio-magenta-800',
|
|
165
|
+
'gestio-magenta-900',
|
|
166
|
+
];
|
|
167
|
+
|
|
168
|
+
// YELLOW COLORS
|
|
169
|
+
export const YELLOW_COLORS = [
|
|
170
|
+
'gestio-yellow-25',
|
|
171
|
+
'gestio-yellow-50',
|
|
172
|
+
'gestio-yellow-100',
|
|
173
|
+
'gestio-yellow-200',
|
|
174
|
+
'gestio-yellow-300',
|
|
175
|
+
'gestio-yellow-400',
|
|
176
|
+
'gestio-yellow-500',
|
|
177
|
+
'gestio-yellow-600',
|
|
178
|
+
'gestio-yellow-700',
|
|
179
|
+
'gestio-yellow-800',
|
|
180
|
+
'gestio-yellow-900',
|
|
181
|
+
];
|
|
182
|
+
|
|
183
|
+
// LIME COLORS
|
|
184
|
+
export const LIME_COLORS = [
|
|
185
|
+
'gestio-lime-25',
|
|
186
|
+
'gestio-lime-50',
|
|
187
|
+
'gestio-lime-100',
|
|
188
|
+
'gestio-lime-200',
|
|
189
|
+
'gestio-lime-300',
|
|
190
|
+
'gestio-lime-400',
|
|
191
|
+
'gestio-lime-500',
|
|
192
|
+
'gestio-lime-600',
|
|
193
|
+
'gestio-lime-700',
|
|
194
|
+
'gestio-lime-800',
|
|
195
|
+
'gestio-lime-900',
|
|
196
|
+
];
|
|
197
|
+
|
|
198
|
+
// ALL COLORS
|
|
199
|
+
export const ALL_COLORS = [
|
|
200
|
+
...BASE_COLORS,
|
|
201
|
+
...PRIMARY_COLORS,
|
|
202
|
+
...SECONDARY_COLORS,
|
|
203
|
+
...TERTIARY_COLORS,
|
|
204
|
+
...BRAND_COLORS,
|
|
205
|
+
...NEUTRAL_COLORS,
|
|
206
|
+
...GREEN_COLORS,
|
|
207
|
+
...RED_COLORS,
|
|
208
|
+
...BLUE_COLORS,
|
|
209
|
+
...AMBER_COLORS,
|
|
210
|
+
...TEAL_COLORS,
|
|
211
|
+
...PURPLE_COLORS,
|
|
212
|
+
...EMERALD_COLORS,
|
|
213
|
+
...MAGENTA_COLORS,
|
|
214
|
+
...YELLOW_COLORS,
|
|
215
|
+
...LIME_COLORS,
|
|
216
|
+
];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const ELEVATION_TOKENS = [
|
|
2
|
+
'shadow-gds-small',
|
|
3
|
+
'shadow-gds-medium',
|
|
4
|
+
'shadow-gds-large',
|
|
5
|
+
'shadow-gds-x-large',
|
|
6
|
+
];
|
|
7
|
+
|
|
8
|
+
export const ELEVATION_DESCRIPTIONS = {
|
|
9
|
+
'shadow-gds-small': 'Small elevation for subtle depth',
|
|
10
|
+
'shadow-gds-medium': 'Medium elevation for cards and surfaces',
|
|
11
|
+
'shadow-gds-large': 'Large elevation for modals and overlays',
|
|
12
|
+
'shadow-gds-x-large': 'X-Large elevation for major UI elements',
|
|
13
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export const TYPOGRAPHY_TOKENS = [
|
|
2
|
+
'gds-heading-3xl',
|
|
3
|
+
'gds-heading-2xl',
|
|
4
|
+
'gds-heading-xl',
|
|
5
|
+
'gds-heading-lg',
|
|
6
|
+
'gds-heading-md',
|
|
7
|
+
'gds-heading-sm',
|
|
8
|
+
'gds-heading-xs',
|
|
9
|
+
'gds-subheading',
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
export const TYPOGRAPHY_DESCRIPTIONS = {
|
|
13
|
+
'gds-heading-3xl': 'Largest heading for hero sections and major page titles',
|
|
14
|
+
'gds-heading-2xl': 'Secondary large heading for section dividers',
|
|
15
|
+
'gds-heading-xl': 'Large heading for important content blocks',
|
|
16
|
+
'gds-heading-lg': 'Medium heading for subsections',
|
|
17
|
+
'gds-heading-md': 'Standard heading for content areas',
|
|
18
|
+
'gds-heading-sm': 'Small heading for cards and components',
|
|
19
|
+
'gds-heading-xs': 'Smallest heading for micro components',
|
|
20
|
+
'gds-subheading': 'Supporting text for headings and descriptions',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const TYPOGRAPHY_EXAMPLES = {
|
|
24
|
+
'gds-heading-3xl': 'Design System',
|
|
25
|
+
'gds-heading-2xl': 'Foundation',
|
|
26
|
+
'gds-heading-xl': 'Typography',
|
|
27
|
+
'gds-heading-lg': 'Heading Large',
|
|
28
|
+
'gds-heading-md': 'Heading Medium',
|
|
29
|
+
'gds-heading-sm': 'Heading Small',
|
|
30
|
+
'gds-heading-xs': 'Heading XS',
|
|
31
|
+
'gds-subheading':
|
|
32
|
+
'Supporting text that provides additional context and helps establish hierarchy',
|
|
33
|
+
};
|