@latty-ds/tokens 0.4.0 → 0.6.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.
- package/dist/configure.js +11 -10
- package/dist/semantic.css +2 -2
- package/dist/tokens.js +1 -1
- package/dist/tokens.json +3 -4
- package/dist/types/public-types.d.ts +1 -3
- package/package.json +4 -4
package/dist/configure.js
CHANGED
|
@@ -78,18 +78,18 @@ var rampFromBase = (base, opts) => {
|
|
|
78
78
|
const out = {};
|
|
79
79
|
const h = (base.h % 360 + 360) % 360;
|
|
80
80
|
const cMax = clamp(base.c * chromaScale, 0, 0.5);
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
const
|
|
81
|
+
const l500 = L_BY_STEP[500];
|
|
82
|
+
const l50 = L_BY_STEP[50];
|
|
83
|
+
const l900 = L_BY_STEP[900];
|
|
84
84
|
for (const step of STEPS) {
|
|
85
85
|
const canonical = L_BY_STEP[step];
|
|
86
86
|
let lTarget;
|
|
87
|
-
if (canonical >=
|
|
88
|
-
const t2 = (canonical -
|
|
89
|
-
lTarget = lPivot + t2 * (
|
|
87
|
+
if (canonical >= l500) {
|
|
88
|
+
const t2 = (canonical - l500) / (l50 - l500);
|
|
89
|
+
lTarget = lPivot + t2 * (l50 - lPivot);
|
|
90
90
|
} else {
|
|
91
|
-
const t2 = (canonical -
|
|
92
|
-
lTarget = lPivot + t2 * (
|
|
91
|
+
const t2 = (canonical - l500) / (l900 - l500);
|
|
92
|
+
lTarget = lPivot + t2 * (l900 - lPivot);
|
|
93
93
|
}
|
|
94
94
|
lTarget = clamp(lTarget, 0, 1);
|
|
95
95
|
const t = STEPS.indexOf(step) / (STEPS.length - 1);
|
|
@@ -165,7 +165,7 @@ var buildTokens = (cfg) => {
|
|
|
165
165
|
let color = buildColorTokens(cfg);
|
|
166
166
|
color = addSystemColors(color);
|
|
167
167
|
const spacing = buildSpacing();
|
|
168
|
-
const border = { radius: DEFAULT_BORDER_RADIUS
|
|
168
|
+
const border = { radius: DEFAULT_BORDER_RADIUS };
|
|
169
169
|
const typography = { fontFamily: DEFAULT_FONT_FAMILY };
|
|
170
170
|
const elevation = buildElevation(color.neutral);
|
|
171
171
|
return { color, spacing, border, typography, elevation };
|
|
@@ -244,8 +244,8 @@ var buildLightSemanticTokens = (opts = {}) => {
|
|
|
244
244
|
for (const v of VARIANTS) {
|
|
245
245
|
map[`text-${v}`] = `color-${v}-700`;
|
|
246
246
|
map[`text-on-${v}`] = "color-white";
|
|
247
|
-
map[`text-on-warning`] = "color-warning-800";
|
|
248
247
|
}
|
|
248
|
+
map["text-on-warning"] = "color-warning-800";
|
|
249
249
|
if (opts.primary500) map["text-on-primary"] = accessibleTextOn(opts.primary500);
|
|
250
250
|
map["bg-default"] = "color-white";
|
|
251
251
|
map["bg-subtle"] = "color-neutral-50";
|
|
@@ -284,6 +284,7 @@ var buildDarkSemanticTokens = (opts = {}) => {
|
|
|
284
284
|
map[`text-${v}`] = `color-${v}-300`;
|
|
285
285
|
map[`text-on-${v}`] = "color-white";
|
|
286
286
|
}
|
|
287
|
+
map["text-on-warning"] = "color-warning-800";
|
|
287
288
|
if (opts.primary400) map["text-on-primary"] = accessibleTextOn(opts.primary400);
|
|
288
289
|
map["bg-default"] = "color-neutral-900";
|
|
289
290
|
map["bg-subtle"] = "color-neutral-800";
|
package/dist/semantic.css
CHANGED
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
--lt-text-on-primary: var(--lt-color-neutral-900);
|
|
139
139
|
--lt-text-on-secondary: var(--lt-color-white);
|
|
140
140
|
--lt-text-on-success: var(--lt-color-white);
|
|
141
|
-
--lt-text-on-warning: var(--lt-color-
|
|
141
|
+
--lt-text-on-warning: var(--lt-color-warning-800);
|
|
142
142
|
--lt-text-primary: var(--lt-color-primary-300);
|
|
143
143
|
--lt-text-secondary: var(--lt-color-secondary-300);
|
|
144
144
|
--lt-text-subtle: var(--lt-color-neutral-300);
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
--lt-text-on-primary: var(--lt-color-neutral-900);
|
|
213
213
|
--lt-text-on-secondary: var(--lt-color-white);
|
|
214
214
|
--lt-text-on-success: var(--lt-color-white);
|
|
215
|
-
--lt-text-on-warning: var(--lt-color-
|
|
215
|
+
--lt-text-on-warning: var(--lt-color-warning-800);
|
|
216
216
|
--lt-text-primary: var(--lt-color-primary-300);
|
|
217
217
|
--lt-text-secondary: var(--lt-color-secondary-300);
|
|
218
218
|
--lt-text-subtle: var(--lt-color-neutral-300);
|
package/dist/tokens.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const tokens = {"color":{"primary":{"50":"#f0e5df","100":"#ffd4b5","200":"#ffbb87","300":"#ffa860","400":"#ff9539","500":"#ff8200","600":"#d56400","700":"#963b00","800":"#5e3c25","900":"#3c1d05"},"primary-muted":{"50":"#e9e7e6","100":"#e8dfda","200":"#dfd1c8","300":"#dac8bd","400":"#d2beb2","500":"#c6b1a5","600":"#a08e82","700":"#6b5c53","800":"#50453e","900":"#2b2521"},"secondary":{"50":"#e5e7f1","100":"#cbd2ff","200":"#a3acf7","300":"#8a93f4","400":"#7076e5","500":"#5252c5","600":"#4544ad","700":"#333187","800":"#2e3254","900":"#202343"},"secondary-muted":{"50":"#e7e8e9","100":"#d5d7df","200":"#b4b7c4","300":"#a0a3b3","400":"#898c9e","500":"#6c6f81","600":"#5a5d6d","700":"#414351","800":"#363742","900":"#25262c"},"success":{"50":"#e1ebe2","100":"#beedc6","200":"#94e4a4","300":"#70df8b","400":"#4bd573","500":"#22c55e","600":"#00a244","700":"#006f22","800":"#2b4d32","900":"#0c2e16"},"success-muted":{"50":"#e7e8e7","100":"#dbe3dc","200":"#cad7cc","300":"#bfcfc1","400":"#b3c5b6","500":"#a5b8a8","600":"#839586","700":"#546256","800":"#404a41","900":"#222823"},"warning":{"50":"#ece7de","100":"#f5e0b5","200":"#f6d289","300":"#f9c962","400":"#f7bf3a","500":"#eeb308","600":"#c38e00","700":"#845a00","800":"#584720","900":"#332400"},"warning-muted":{"50":"#e8e8e6","100":"#e7e4dc","200":"#e2dcd0","300":"#ded7c8","400":"#dad1c0","500":"#d2c9b8","600":"#a9a090","700":"#6d6659","800":"#504c42","900":"#292621"},"error":{"50":"#f3e4e2","100":"#ffc8c1","200":"#ffa198","300":"#ff847b","400":"#ff6560","500":"#ef4444","600":"#cb2d31","700":"#950e18","800":"#5a312e","900":"#3f1917"},"error-muted":{"50":"#e9e7e7","100":"#e6dad8","200":"#d6c3c1","300":"#cdb4b2","400":"#bfa4a1","500":"#ab908d","600":"#8d7572","700":"#624e4c","800":"#4c3d3b","900":"#2d2423"},"info":{"50":"#e1e9ef","100":"#bce4fe","200":"#8fd2fd","300":"#6ac7ff","400":"#43b9fa","500":"#0ea5e9","600":"#0087c4","700":"#005c8d","800":"#1e465d","900":"#082a3c"},"info-muted":{"50":"#e7e8e9","100":"#d9e0e5","200":"#c5d0d7","300":"#b8c6cf","400":"#aab9c4","500":"#99a9b3","600":"#7a8993","700":"#4f5b63","800":"#3d464c","900":"#22272a"},"neutral":{"50":"#fafafa","100":"#f3f3f3","200":"#e4e4e4","300":"#cacaca","400":"#ababab","500":"#868686","600":"#696969","700":"#4d4d4d","800":"#333333","900":"#1b1b1b"},"white":"#FFFFFF","black":"#000000"},"spacing":{"px":{"0":"0px","1":"4px","2":"8px","3":"12px","4":"16px","5":"20px","6":"24px","7":"28px","8":"32px","9":"36px","10":"40px","11":"44px","12":"48px","13":"52px","14":"56px","15":"60px","16":"64px","17":"68px","18":"72px","19":"76px","20":"80px","21":"84px","22":"88px","23":"92px","24":"96px"},"rem":{"0":"0rem","1":"0.25rem","2":"0.5rem","3":"0.75rem","4":"1rem","5":"1.25rem","6":"1.5rem","7":"1.75rem","8":"2rem","9":"2.25rem","10":"2.5rem","11":"2.75rem","12":"3rem","13":"3.25rem","14":"3.5rem","15":"3.75rem","16":"4rem","17":"4.25rem","18":"4.5rem","19":"4.75rem","20":"5rem","21":"5.25rem","22":"5.5rem","23":"5.75rem","24":"6rem"}},"border":{"radius":"0.5rem"
|
|
1
|
+
export const tokens = {"color":{"primary":{"50":"#f0e5df","100":"#ffd4b5","200":"#ffbb87","300":"#ffa860","400":"#ff9539","500":"#ff8200","600":"#d56400","700":"#963b00","800":"#5e3c25","900":"#3c1d05"},"primary-muted":{"50":"#e9e7e6","100":"#e8dfda","200":"#dfd1c8","300":"#dac8bd","400":"#d2beb2","500":"#c6b1a5","600":"#a08e82","700":"#6b5c53","800":"#50453e","900":"#2b2521"},"secondary":{"50":"#e5e7f1","100":"#cbd2ff","200":"#a3acf7","300":"#8a93f4","400":"#7076e5","500":"#5252c5","600":"#4544ad","700":"#333187","800":"#2e3254","900":"#202343"},"secondary-muted":{"50":"#e7e8e9","100":"#d5d7df","200":"#b4b7c4","300":"#a0a3b3","400":"#898c9e","500":"#6c6f81","600":"#5a5d6d","700":"#414351","800":"#363742","900":"#25262c"},"success":{"50":"#e1ebe2","100":"#beedc6","200":"#94e4a4","300":"#70df8b","400":"#4bd573","500":"#22c55e","600":"#00a244","700":"#006f22","800":"#2b4d32","900":"#0c2e16"},"success-muted":{"50":"#e7e8e7","100":"#dbe3dc","200":"#cad7cc","300":"#bfcfc1","400":"#b3c5b6","500":"#a5b8a8","600":"#839586","700":"#546256","800":"#404a41","900":"#222823"},"warning":{"50":"#ece7de","100":"#f5e0b5","200":"#f6d289","300":"#f9c962","400":"#f7bf3a","500":"#eeb308","600":"#c38e00","700":"#845a00","800":"#584720","900":"#332400"},"warning-muted":{"50":"#e8e8e6","100":"#e7e4dc","200":"#e2dcd0","300":"#ded7c8","400":"#dad1c0","500":"#d2c9b8","600":"#a9a090","700":"#6d6659","800":"#504c42","900":"#292621"},"error":{"50":"#f3e4e2","100":"#ffc8c1","200":"#ffa198","300":"#ff847b","400":"#ff6560","500":"#ef4444","600":"#cb2d31","700":"#950e18","800":"#5a312e","900":"#3f1917"},"error-muted":{"50":"#e9e7e7","100":"#e6dad8","200":"#d6c3c1","300":"#cdb4b2","400":"#bfa4a1","500":"#ab908d","600":"#8d7572","700":"#624e4c","800":"#4c3d3b","900":"#2d2423"},"info":{"50":"#e1e9ef","100":"#bce4fe","200":"#8fd2fd","300":"#6ac7ff","400":"#43b9fa","500":"#0ea5e9","600":"#0087c4","700":"#005c8d","800":"#1e465d","900":"#082a3c"},"info-muted":{"50":"#e7e8e9","100":"#d9e0e5","200":"#c5d0d7","300":"#b8c6cf","400":"#aab9c4","500":"#99a9b3","600":"#7a8993","700":"#4f5b63","800":"#3d464c","900":"#22272a"},"neutral":{"50":"#fafafa","100":"#f3f3f3","200":"#e4e4e4","300":"#cacaca","400":"#ababab","500":"#868686","600":"#696969","700":"#4d4d4d","800":"#333333","900":"#1b1b1b"},"white":"#FFFFFF","black":"#000000"},"spacing":{"px":{"0":"0px","1":"4px","2":"8px","3":"12px","4":"16px","5":"20px","6":"24px","7":"28px","8":"32px","9":"36px","10":"40px","11":"44px","12":"48px","13":"52px","14":"56px","15":"60px","16":"64px","17":"68px","18":"72px","19":"76px","20":"80px","21":"84px","22":"88px","23":"92px","24":"96px"},"rem":{"0":"0rem","1":"0.25rem","2":"0.5rem","3":"0.75rem","4":"1rem","5":"1.25rem","6":"1.5rem","7":"1.75rem","8":"2rem","9":"2.25rem","10":"2.5rem","11":"2.75rem","12":"3rem","13":"3.25rem","14":"3.5rem","15":"3.75rem","16":"4rem","17":"4.25rem","18":"4.5rem","19":"4.75rem","20":"5rem","21":"5.25rem","22":"5.5rem","23":"5.75rem","24":"6rem"}},"border":{"radius":"0.5rem"},"typography":{"fontFamily":"\"Hanken Grotesk\", sans-serif"},"elevation":{"0":"none","1":"0 1px 3px 0 rgb(27 27 27 / 0.1), 0 1px 2px 0 rgb(27 27 27 / 0.06)","2":"0 4px 6px -1px rgb(27 27 27 / 0.1), 0 2px 4px -1px rgb(27 27 27 / 0.06)","3":"0 10px 15px -3px rgb(27 27 27 / 0.1), 0 4px 6px -2px rgb(27 27 27 / 0.05)","4":"0 20px 25px -5px rgb(27 27 27 / 0.1), 0 10px 10px -5px rgb(27 27 27 / 0.04)","5":"0 25px 50px -12px rgb(27 27 27 / 0.25)"},"semantic":{"text-default":"color-neutral-900","text-subtle":"color-neutral-600","text-muted":"color-neutral-400","text-disabled":"color-neutral-400","text-inverse":"color-white","text-neutral":"color-neutral-700","text-primary":"color-primary-700","text-on-primary":"color-neutral-900","text-secondary":"color-secondary-700","text-on-secondary":"color-white","text-success":"color-success-700","text-on-success":"color-white","text-warning":"color-warning-700","text-on-warning":"color-warning-800","text-error":"color-error-700","text-on-error":"color-white","text-info":"color-info-700","text-on-info":"color-white","bg-default":"color-white","bg-subtle":"color-neutral-50","bg-surface":"color-neutral-100","bg-overlay":"color-neutral-200","bg-inverse":"color-neutral-900","bg-neutral-subtle":"color-neutral-100","bg-primary":"color-primary-500","bg-primary-subtle":"color-primary-100","bg-secondary":"color-secondary-500","bg-secondary-subtle":"color-secondary-100","bg-success":"color-success-500","bg-success-subtle":"color-success-100","bg-warning":"color-warning-500","bg-warning-subtle":"color-warning-100","bg-error":"color-error-500","bg-error-subtle":"color-error-100","bg-info":"color-info-500","bg-info-subtle":"color-info-100","border-default":"color-neutral-200","border-strong":"color-neutral-400","border-subtle":"color-neutral-100","border-focus":"color-primary-200","border-primary":"color-primary-200","border-primary-strong":"color-primary-500","border-secondary":"color-secondary-200","border-secondary-strong":"color-secondary-500","border-success":"color-success-200","border-success-strong":"color-success-500","border-warning":"color-warning-200","border-warning-strong":"color-warning-500","border-error":"color-error-200","border-error-strong":"color-error-500","border-info":"color-info-200","border-info-strong":"color-info-500","interactive-primary-bg":"color-primary-500","interactive-primary-bg-hover":"color-primary-600","interactive-primary-bg-active":"color-primary-700","interactive-secondary-bg":"color-secondary-500","interactive-secondary-bg-hover":"color-secondary-600","interactive-secondary-bg-active":"color-secondary-700","interactive-success-bg":"color-success-500","interactive-success-bg-hover":"color-success-600","interactive-success-bg-active":"color-success-700","interactive-warning-bg":"color-warning-500","interactive-warning-bg-hover":"color-warning-600","interactive-warning-bg-active":"color-warning-700","interactive-error-bg":"color-error-500","interactive-error-bg-hover":"color-error-600","interactive-error-bg-active":"color-error-700","interactive-info-bg":"color-info-500","interactive-info-bg-hover":"color-info-600","interactive-info-bg-active":"color-info-700"},"semanticDark":{"text-default":"color-neutral-100","text-subtle":"color-neutral-300","text-muted":"color-neutral-500","text-disabled":"color-neutral-600","text-inverse":"color-neutral-900","text-neutral":"color-neutral-200","text-primary":"color-primary-300","text-on-primary":"color-neutral-900","text-secondary":"color-secondary-300","text-on-secondary":"color-white","text-success":"color-success-300","text-on-success":"color-white","text-warning":"color-warning-300","text-on-warning":"color-warning-800","text-error":"color-error-300","text-on-error":"color-white","text-info":"color-info-300","text-on-info":"color-white","bg-default":"color-neutral-900","bg-subtle":"color-neutral-800","bg-surface":"color-neutral-800","bg-overlay":"color-neutral-700","bg-inverse":"color-neutral-50","bg-neutral-subtle":"color-neutral-800","bg-primary":"color-primary-500","bg-primary-subtle":"color-primary-900","bg-secondary":"color-secondary-500","bg-secondary-subtle":"color-secondary-900","bg-success":"color-success-500","bg-success-subtle":"color-success-900","bg-warning":"color-warning-500","bg-warning-subtle":"color-warning-900","bg-error":"color-error-500","bg-error-subtle":"color-error-900","bg-info":"color-info-500","bg-info-subtle":"color-info-900","border-default":"color-neutral-700","border-strong":"color-neutral-500","border-subtle":"color-neutral-800","border-focus":"color-primary-400","border-primary":"color-primary-700","border-primary-strong":"color-primary-500","border-secondary":"color-secondary-700","border-secondary-strong":"color-secondary-500","border-success":"color-success-700","border-success-strong":"color-success-500","border-warning":"color-warning-700","border-warning-strong":"color-warning-500","border-error":"color-error-700","border-error-strong":"color-error-500","border-info":"color-info-700","border-info-strong":"color-info-500","interactive-primary-bg":"color-primary-400","interactive-primary-bg-hover":"color-primary-300","interactive-primary-bg-active":"color-primary-500","interactive-secondary-bg":"color-secondary-400","interactive-secondary-bg-hover":"color-secondary-300","interactive-secondary-bg-active":"color-secondary-500","interactive-success-bg":"color-success-400","interactive-success-bg-hover":"color-success-300","interactive-success-bg-active":"color-success-500","interactive-warning-bg":"color-warning-400","interactive-warning-bg-hover":"color-warning-300","interactive-warning-bg-active":"color-warning-500","interactive-error-bg":"color-error-400","interactive-error-bg-hover":"color-error-300","interactive-error-bg-active":"color-error-500","interactive-info-bg":"color-info-400","interactive-info-bg-hover":"color-info-300","interactive-info-bg-active":"color-info-500"}};
|
package/dist/tokens.json
CHANGED
|
@@ -216,8 +216,7 @@
|
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
218
|
"border": {
|
|
219
|
-
"radius": "0.5rem"
|
|
220
|
-
"square": false
|
|
219
|
+
"radius": "0.5rem"
|
|
221
220
|
},
|
|
222
221
|
"typography": {
|
|
223
222
|
"fontFamily": "\"Hanken Grotesk\", sans-serif"
|
|
@@ -239,12 +238,12 @@
|
|
|
239
238
|
"text-neutral": "color-neutral-700",
|
|
240
239
|
"text-primary": "color-primary-700",
|
|
241
240
|
"text-on-primary": "color-neutral-900",
|
|
242
|
-
"text-on-warning": "color-warning-800",
|
|
243
241
|
"text-secondary": "color-secondary-700",
|
|
244
242
|
"text-on-secondary": "color-white",
|
|
245
243
|
"text-success": "color-success-700",
|
|
246
244
|
"text-on-success": "color-white",
|
|
247
245
|
"text-warning": "color-warning-700",
|
|
246
|
+
"text-on-warning": "color-warning-800",
|
|
248
247
|
"text-error": "color-error-700",
|
|
249
248
|
"text-on-error": "color-white",
|
|
250
249
|
"text-info": "color-info-700",
|
|
@@ -316,7 +315,7 @@
|
|
|
316
315
|
"text-success": "color-success-300",
|
|
317
316
|
"text-on-success": "color-white",
|
|
318
317
|
"text-warning": "color-warning-300",
|
|
319
|
-
"text-on-warning": "color-
|
|
318
|
+
"text-on-warning": "color-warning-800",
|
|
320
319
|
"text-error": "color-error-300",
|
|
321
320
|
"text-on-error": "color-white",
|
|
322
321
|
"text-info": "color-info-300",
|
|
@@ -21,8 +21,7 @@ import type { ElevationTokens } from '../elevation/';
|
|
|
21
21
|
* px: { "0": "0px", "1": "4px", ... }
|
|
22
22
|
* },
|
|
23
23
|
* border: {
|
|
24
|
-
* radius: "0.375rem"
|
|
25
|
-
* square: false
|
|
24
|
+
* radius: "0.375rem"
|
|
26
25
|
* },
|
|
27
26
|
* typography: {
|
|
28
27
|
* fontFamily: "Hanken Grotesk, sans-serif"
|
|
@@ -40,7 +39,6 @@ export type Tokens = {
|
|
|
40
39
|
spacing: SpacingTokens;
|
|
41
40
|
border: {
|
|
42
41
|
radius: string;
|
|
43
|
-
square: false;
|
|
44
42
|
};
|
|
45
43
|
typography: {
|
|
46
44
|
fontFamily: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@latty-ds/tokens",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Design tokens for the Latty design system — generates CSS custom properties, JSON, and JavaScript exports from a single config file",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://github.com/penhold3r/latty-ds.git",
|
|
9
9
|
"directory": "packages/tokens"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://
|
|
11
|
+
"homepage": "https://latty-ds.com",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"design-system",
|
|
14
14
|
"design-tokens",
|
|
@@ -53,12 +53,12 @@
|
|
|
53
53
|
"clean": "rm -rf dist dist-scripts"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@latty-ds/utils": "0.
|
|
56
|
+
"@latty-ds/utils": "0.6.0",
|
|
57
57
|
"@types/culori": "^4.0.1",
|
|
58
58
|
"typescript": "^5.5.4"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"culori": "^4.0.2"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "5f2e9dbee20f32bc24117a40f8f2f65a4de07979"
|
|
64
64
|
}
|