@phcdevworks/spectre-tokens 3.5.0 → 4.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phcdevworks/spectre-tokens",
3
- "version": "3.5.0",
3
+ "version": "4.1.0",
4
4
  "description": "@phcdevworks/spectre-tokens is the design-token package of the Spectre system. It provides a complete, UI-ready token surface for downstream Spectre packages and compatible applications.",
5
5
  "keywords": [
6
6
  "phcdevworks",
@@ -10,8 +10,6 @@
10
10
  "tokens",
11
11
  "css-variables",
12
12
  "css-custom-properties",
13
- "tailwindcss",
14
- "tailwind-theme",
15
13
  "theming",
16
14
  "ui-design",
17
15
  "typescript",
@@ -37,7 +35,7 @@
37
35
  "node": "^22.12.0 || >=24.0.0"
38
36
  },
39
37
  "type": "module",
40
- "packageManager": "npm@12.0.1",
38
+ "packageManager": "npm@12.0.2",
41
39
  "main": "./dist/index.cjs",
42
40
  "module": "./dist/index.js",
43
41
  "types": "./dist/index.d.ts",
@@ -59,10 +57,11 @@
59
57
  "scripts": {
60
58
  "generate": "tsx scripts/generate-types.ts",
61
59
  "prebuild": "npm run generate",
62
- "build": "npm run build:ts && npm run build:css && npm run build:design",
60
+ "build": "npm run build:ts && npm run build:css && npm run build:design && npm run build:docs",
63
61
  "build:ts": "tsup --config tsup.config.ts",
64
62
  "build:css": "tsx scripts/build-css.ts",
65
63
  "build:design": "tsx scripts/build-dtcg.ts",
64
+ "build:docs": "tsx scripts/build-token-reference.ts",
66
65
  "check:manifest": "tsx scripts/check-contract-manifest.ts",
67
66
  "check:docs": "tsx scripts/check-doc-contract.ts",
68
67
  "check:version-sync": "npm run check:docs",
@@ -73,7 +72,7 @@
73
72
  "check:regression": "tsx scripts/check-tokens-regression.ts",
74
73
  "check:exports": "tsx scripts/check-public-exports.ts",
75
74
  "check:css": "tsx scripts/check-css-contract.ts",
76
- "check:tailwind": "tsx scripts/check-tailwind-contract.ts",
75
+ "check:typography-refs": "tsx scripts/check-typography-references.ts",
77
76
  "check:parity": "tsx scripts/check-output-parity.ts",
78
77
  "check:dtcg": "tsx scripts/check-dtcg-conformance.ts",
79
78
  "check:dtcg-roundtrip": "tsx scripts/check-dtcg-style-dictionary.ts",
@@ -86,7 +85,7 @@
86
85
  "release:propose": "tsx scripts/propose-version.ts",
87
86
  "lint": "eslint .",
88
87
  "format": "prettier --write .",
89
- "check": "npm run build && npm run check:manifest && npm run check:structure && npm run check:locked && npm run check:contrast && npm run check:regression && npm run check:docs && npm run check:exports && npm run check:css && npm run check:tailwind && npm run check:parity && npm run check:dtcg && npm run check:dtcg-roundtrip && npm run check:consumer && npm run check:integration && npm run check:ecosystem && npm run check:classification && npm run check:deprecation && npm run check:dist && npm run lint",
88
+ "check": "npm run build && npm run check:manifest && npm run check:structure && npm run check:locked && npm run check:contrast && npm run check:regression && npm run check:docs && npm run check:exports && npm run check:css && npm run check:typography-refs && npm run check:parity && npm run check:dtcg && npm run check:dtcg-roundtrip && npm run check:consumer && npm run check:integration && npm run check:ecosystem && npm run check:classification && npm run check:deprecation && npm run check:dist && npm run lint",
90
89
  "check:all": "npm run check",
91
90
  "test:unit": "vitest run",
92
91
  "test": "npm run test:unit && npm run check",
@@ -100,20 +99,20 @@
100
99
  },
101
100
  "devDependencies": {
102
101
  "@phcdevworks/spectre-manifest": "^1.1.0",
103
- "@types/node": "^26.1.1",
104
- "@typescript-eslint/eslint-plugin": "^8.65.0",
105
- "@typescript-eslint/parser": "^8.65.0",
102
+ "@types/node": "^26.1.2",
103
+ "@typescript-eslint/eslint-plugin": "^8.66.0",
104
+ "@typescript-eslint/parser": "^8.66.0",
106
105
  "@typescript/native": "npm:typescript@^7.0.2",
107
106
  "colord": "^2.9.3",
108
- "eslint": "^10.7.0",
107
+ "eslint": "^10.8.0",
109
108
  "jiti": "^2.7.0",
110
- "prettier": "^3.9.5",
109
+ "prettier": "^3.9.6",
111
110
  "style-dictionary": "^5.5.0",
112
111
  "ts-node": "^10.9.2",
113
112
  "tsup": "^8.5.1",
114
- "tsx": "^4.23.1",
113
+ "tsx": "^4.23.5",
115
114
  "typescript": "npm:@typescript/typescript6@^6.0.2",
116
- "typescript-eslint": "^8.65.0",
115
+ "typescript-eslint": "^8.66.0",
117
116
  "vitest": "^4.1.10"
118
117
  },
119
118
  "overrides": {
@@ -97,6 +97,346 @@
97
97
  "info": "{colors.info.600}"
98
98
  },
99
99
  "white": "#ffffff",
100
- "black": "#000000"
100
+ "black": "#000000",
101
+ "palette": {
102
+ "red": {
103
+ "50": "#fef2f2",
104
+ "100": "#ffe2e2",
105
+ "200": "#ffc9c9",
106
+ "300": "#ffa2a2",
107
+ "400": "#ff6467",
108
+ "500": "#fb2c36",
109
+ "600": "#e7000b",
110
+ "700": "#c10007",
111
+ "800": "#9f0712",
112
+ "900": "#82181a",
113
+ "950": "#460809"
114
+ },
115
+ "orange": {
116
+ "50": "#fff7ed",
117
+ "100": "#ffedd4",
118
+ "200": "#ffd6a7",
119
+ "300": "#ffb86a",
120
+ "400": "#ff8904",
121
+ "500": "#ff6900",
122
+ "600": "#f54900",
123
+ "700": "#ca3500",
124
+ "800": "#9f2d00",
125
+ "900": "#7e2a0c",
126
+ "950": "#441306"
127
+ },
128
+ "amber": {
129
+ "50": "#fffbeb",
130
+ "100": "#fef3c6",
131
+ "200": "#fee685",
132
+ "300": "#ffd230",
133
+ "400": "#ffb900",
134
+ "500": "#fe9a00",
135
+ "600": "#e17100",
136
+ "700": "#bb4d00",
137
+ "800": "#973c00",
138
+ "900": "#7b3306",
139
+ "950": "#461901"
140
+ },
141
+ "yellow": {
142
+ "50": "#fefce8",
143
+ "100": "#fef9c2",
144
+ "200": "#fff085",
145
+ "300": "#ffdf20",
146
+ "400": "#fdc700",
147
+ "500": "#f0b100",
148
+ "600": "#d08700",
149
+ "700": "#a65f00",
150
+ "800": "#894b00",
151
+ "900": "#733e0a",
152
+ "950": "#432004"
153
+ },
154
+ "lime": {
155
+ "50": "#f7fee7",
156
+ "100": "#ecfcca",
157
+ "200": "#d8f999",
158
+ "300": "#bbf451",
159
+ "400": "#9ae600",
160
+ "500": "#7ccf00",
161
+ "600": "#5ea500",
162
+ "700": "#497d00",
163
+ "800": "#3c6300",
164
+ "900": "#35530e",
165
+ "950": "#192e03"
166
+ },
167
+ "green": {
168
+ "50": "#f0fdf4",
169
+ "100": "#dcfce7",
170
+ "200": "#b9f8cf",
171
+ "300": "#7bf1a8",
172
+ "400": "#05df72",
173
+ "500": "#00c950",
174
+ "600": "#00a63e",
175
+ "700": "#008236",
176
+ "800": "#016630",
177
+ "900": "#0d542b",
178
+ "950": "#032e15"
179
+ },
180
+ "emerald": {
181
+ "50": "#ecfdf5",
182
+ "100": "#d0fae5",
183
+ "200": "#a4f4cf",
184
+ "300": "#5ee9b5",
185
+ "400": "#00d492",
186
+ "500": "#00bc7d",
187
+ "600": "#009966",
188
+ "700": "#007a55",
189
+ "800": "#006045",
190
+ "900": "#004f3b",
191
+ "950": "#002c22"
192
+ },
193
+ "teal": {
194
+ "50": "#f0fdfa",
195
+ "100": "#cbfbf1",
196
+ "200": "#96f7e4",
197
+ "300": "#46ecd5",
198
+ "400": "#00d5be",
199
+ "500": "#00bba7",
200
+ "600": "#009689",
201
+ "700": "#00786f",
202
+ "800": "#005f5a",
203
+ "900": "#0b4f4a",
204
+ "950": "#022f2e"
205
+ },
206
+ "cyan": {
207
+ "50": "#ecfeff",
208
+ "100": "#cefafe",
209
+ "200": "#a2f4fd",
210
+ "300": "#53eafd",
211
+ "400": "#00d3f2",
212
+ "500": "#00b8db",
213
+ "600": "#0092b8",
214
+ "700": "#007595",
215
+ "800": "#005f78",
216
+ "900": "#104e64",
217
+ "950": "#053345"
218
+ },
219
+ "sky": {
220
+ "50": "#f0f9ff",
221
+ "100": "#dff2fe",
222
+ "200": "#b8e6fe",
223
+ "300": "#74d4ff",
224
+ "400": "#00bcff",
225
+ "500": "#00a6f4",
226
+ "600": "#0084d1",
227
+ "700": "#0069a8",
228
+ "800": "#00598a",
229
+ "900": "#024a70",
230
+ "950": "#052f4a"
231
+ },
232
+ "blue": {
233
+ "50": "#eff6ff",
234
+ "100": "#dbeafe",
235
+ "200": "#bedbff",
236
+ "300": "#8ec5ff",
237
+ "400": "#51a2ff",
238
+ "500": "#2b7fff",
239
+ "600": "#155dfc",
240
+ "700": "#1447e6",
241
+ "800": "#193cb8",
242
+ "900": "#1c398e",
243
+ "950": "#162456"
244
+ },
245
+ "indigo": {
246
+ "50": "#eef2ff",
247
+ "100": "#e0e7ff",
248
+ "200": "#c6d2ff",
249
+ "300": "#a3b3ff",
250
+ "400": "#7c86ff",
251
+ "500": "#615fff",
252
+ "600": "#4f39f6",
253
+ "700": "#432dd7",
254
+ "800": "#372aac",
255
+ "900": "#312c85",
256
+ "950": "#1e1a4d"
257
+ },
258
+ "violet": {
259
+ "50": "#f5f3ff",
260
+ "100": "#ede9fe",
261
+ "200": "#ddd6ff",
262
+ "300": "#c4b4ff",
263
+ "400": "#a684ff",
264
+ "500": "#8e51ff",
265
+ "600": "#7f22fe",
266
+ "700": "#7008e7",
267
+ "800": "#5d0ec0",
268
+ "900": "#4d179a",
269
+ "950": "#2f0d68"
270
+ },
271
+ "purple": {
272
+ "50": "#faf5ff",
273
+ "100": "#f3e8ff",
274
+ "200": "#e9d4ff",
275
+ "300": "#dab2ff",
276
+ "400": "#c27aff",
277
+ "500": "#ad46ff",
278
+ "600": "#9810fa",
279
+ "700": "#8200db",
280
+ "800": "#6e11b0",
281
+ "900": "#59168b",
282
+ "950": "#3c0366"
283
+ },
284
+ "fuchsia": {
285
+ "50": "#fdf4ff",
286
+ "100": "#fae8ff",
287
+ "200": "#f6cfff",
288
+ "300": "#f4a8ff",
289
+ "400": "#ed6aff",
290
+ "500": "#e12afb",
291
+ "600": "#c800de",
292
+ "700": "#a800b7",
293
+ "800": "#8a0194",
294
+ "900": "#721378",
295
+ "950": "#4b004f"
296
+ },
297
+ "pink": {
298
+ "50": "#fdf2f8",
299
+ "100": "#fce7f3",
300
+ "200": "#fccee8",
301
+ "300": "#fda5d5",
302
+ "400": "#fb64b6",
303
+ "500": "#f6339a",
304
+ "600": "#e60076",
305
+ "700": "#c6005c",
306
+ "800": "#a3004c",
307
+ "900": "#861043",
308
+ "950": "#510424"
309
+ },
310
+ "rose": {
311
+ "50": "#fff1f2",
312
+ "100": "#ffe4e6",
313
+ "200": "#ffccd3",
314
+ "300": "#ffa1ad",
315
+ "400": "#ff637e",
316
+ "500": "#ff2056",
317
+ "600": "#ec003f",
318
+ "700": "#c70036",
319
+ "800": "#a50036",
320
+ "900": "#8b0836",
321
+ "950": "#4d0218"
322
+ },
323
+ "slate": {
324
+ "50": "#f8fafc",
325
+ "100": "#f1f5f9",
326
+ "200": "#e2e8f0",
327
+ "300": "#cad5e2",
328
+ "400": "#90a1b9",
329
+ "500": "#62748e",
330
+ "600": "#45556c",
331
+ "700": "#314158",
332
+ "800": "#1d293d",
333
+ "900": "#0f172b",
334
+ "950": "#020618"
335
+ },
336
+ "gray": {
337
+ "50": "#f9fafb",
338
+ "100": "#f3f4f6",
339
+ "200": "#e5e7eb",
340
+ "300": "#d1d5dc",
341
+ "400": "#99a1af",
342
+ "500": "#6a7282",
343
+ "600": "#4a5565",
344
+ "700": "#364153",
345
+ "800": "#1e2939",
346
+ "900": "#101828",
347
+ "950": "#030712"
348
+ },
349
+ "zinc": {
350
+ "50": "#fafafa",
351
+ "100": "#f4f4f5",
352
+ "200": "#e4e4e7",
353
+ "300": "#d4d4d8",
354
+ "400": "#9f9fa9",
355
+ "500": "#71717b",
356
+ "600": "#52525c",
357
+ "700": "#3f3f46",
358
+ "800": "#27272a",
359
+ "900": "#18181b",
360
+ "950": "#09090b"
361
+ },
362
+ "neutral": {
363
+ "50": "#fafafa",
364
+ "100": "#f5f5f5",
365
+ "200": "#e5e5e5",
366
+ "300": "#d4d4d4",
367
+ "400": "#a1a1a1",
368
+ "500": "#737373",
369
+ "600": "#525252",
370
+ "700": "#404040",
371
+ "800": "#262626",
372
+ "900": "#171717",
373
+ "950": "#0a0a0a"
374
+ },
375
+ "stone": {
376
+ "50": "#fafaf9",
377
+ "100": "#f5f5f4",
378
+ "200": "#e7e5e4",
379
+ "300": "#d6d3d1",
380
+ "400": "#a6a09b",
381
+ "500": "#79716b",
382
+ "600": "#57534d",
383
+ "700": "#44403b",
384
+ "800": "#292524",
385
+ "900": "#1c1917",
386
+ "950": "#0c0a09"
387
+ },
388
+ "mauve": {
389
+ "50": "#fafafa",
390
+ "100": "#f3f1f3",
391
+ "200": "#e7e4e7",
392
+ "300": "#d7d0d7",
393
+ "400": "#a89ea9",
394
+ "500": "#79697b",
395
+ "600": "#594c5b",
396
+ "700": "#463947",
397
+ "800": "#2a212c",
398
+ "900": "#1d161e",
399
+ "950": "#0c090c"
400
+ },
401
+ "olive": {
402
+ "50": "#fbfbf9",
403
+ "100": "#f4f4f0",
404
+ "200": "#e8e8e3",
405
+ "300": "#d8d8d0",
406
+ "400": "#abab9c",
407
+ "500": "#7c7c67",
408
+ "600": "#5b5b4b",
409
+ "700": "#474739",
410
+ "800": "#2b2b22",
411
+ "900": "#1d1d16",
412
+ "950": "#0c0c09"
413
+ },
414
+ "mist": {
415
+ "50": "#f9fbfb",
416
+ "100": "#f1f3f3",
417
+ "200": "#e3e7e8",
418
+ "300": "#d0d6d8",
419
+ "400": "#9ca8ab",
420
+ "500": "#67787c",
421
+ "600": "#4b585b",
422
+ "700": "#394447",
423
+ "800": "#22292b",
424
+ "900": "#161b1d",
425
+ "950": "#090b0c"
426
+ },
427
+ "taupe": {
428
+ "50": "#fbfaf9",
429
+ "100": "#f3f1f1",
430
+ "200": "#e8e4e3",
431
+ "300": "#d8d2d0",
432
+ "400": "#aba09c",
433
+ "500": "#7c6d67",
434
+ "600": "#5b4f4b",
435
+ "700": "#473c39",
436
+ "800": "#2b2422",
437
+ "900": "#1d1816",
438
+ "950": "#0c0a09"
439
+ }
440
+ }
101
441
  }
102
442
  }
@@ -1,64 +1,64 @@
1
1
  {
2
2
  "font": {
3
3
  "xs": {
4
- "size": "0.75rem",
5
- "lineHeight": "1.25rem",
6
- "weight": 400,
7
- "letterSpacing": "0.02em"
4
+ "size": "{typography.scale.xs.fontSize}",
5
+ "lineHeight": "{typography.scale.xs.lineHeight}",
6
+ "weight": "{typography.scale.xs.fontWeight}",
7
+ "letterSpacing": "{typography.scale.xs.letterSpacing}"
8
8
  },
9
9
  "sm": {
10
- "size": "0.875rem",
11
- "lineHeight": "1.5rem",
12
- "weight": 400,
13
- "letterSpacing": "0em"
10
+ "size": "{typography.scale.sm.fontSize}",
11
+ "lineHeight": "{typography.scale.sm.lineHeight}",
12
+ "weight": "{typography.scale.sm.fontWeight}",
13
+ "letterSpacing": "{typography.scale.sm.letterSpacing}"
14
14
  },
15
15
  "md": {
16
- "size": "1rem",
17
- "lineHeight": "1.75rem",
18
- "weight": 500,
19
- "letterSpacing": "0em"
16
+ "size": "{typography.scale.md.fontSize}",
17
+ "lineHeight": "{typography.scale.md.lineHeight}",
18
+ "weight": "{typography.scale.md.fontWeight}",
19
+ "letterSpacing": "{typography.scale.md.letterSpacing}"
20
20
  },
21
21
  "lg": {
22
- "size": "1.25rem",
23
- "lineHeight": "2rem",
24
- "weight": 600,
25
- "letterSpacing": "0em"
22
+ "size": "{typography.scale.lg.fontSize}",
23
+ "lineHeight": "{typography.scale.lg.lineHeight}",
24
+ "weight": "{typography.scale.lg.fontWeight}",
25
+ "letterSpacing": "{typography.scale.lg.letterSpacing}"
26
26
  },
27
27
  "xl": {
28
- "size": "1.5rem",
29
- "lineHeight": "2.125rem",
30
- "weight": 600,
31
- "letterSpacing": "0em"
28
+ "size": "{typography.scale.xl.fontSize}",
29
+ "lineHeight": "{typography.scale.xl.lineHeight}",
30
+ "weight": "{typography.scale.xl.fontWeight}",
31
+ "letterSpacing": "{typography.scale.xl.letterSpacing}"
32
32
  },
33
33
  "2xl": {
34
- "size": "1.875rem",
35
- "lineHeight": "2.5rem",
36
- "weight": 700,
37
- "letterSpacing": "0em"
34
+ "size": "{typography.scale.2xl.fontSize}",
35
+ "lineHeight": "{typography.scale.2xl.lineHeight}",
36
+ "weight": "{typography.scale.2xl.fontWeight}",
37
+ "letterSpacing": "{typography.scale.2xl.letterSpacing}"
38
38
  },
39
39
  "3xl": {
40
- "size": "2.25rem",
41
- "lineHeight": "2.75rem",
42
- "weight": 700,
43
- "letterSpacing": "0em"
40
+ "size": "{typography.scale.3xl.fontSize}",
41
+ "lineHeight": "{typography.scale.3xl.lineHeight}",
42
+ "weight": "{typography.scale.3xl.fontWeight}",
43
+ "letterSpacing": "{typography.scale.3xl.letterSpacing}"
44
44
  },
45
45
  "4xl": {
46
- "size": "3rem",
47
- "lineHeight": "3.5rem",
48
- "weight": 800,
49
- "letterSpacing": "0em"
46
+ "size": "{typography.scale.4xl.fontSize}",
47
+ "lineHeight": "{typography.scale.4xl.lineHeight}",
48
+ "weight": "{typography.scale.4xl.fontWeight}",
49
+ "letterSpacing": "{typography.scale.4xl.letterSpacing}"
50
50
  },
51
51
  "5xl": {
52
- "size": "3.75rem",
53
- "lineHeight": "4.25rem",
54
- "weight": 800,
55
- "letterSpacing": "0em"
52
+ "size": "{typography.scale.5xl.fontSize}",
53
+ "lineHeight": "{typography.scale.5xl.lineHeight}",
54
+ "weight": "{typography.scale.5xl.fontWeight}",
55
+ "letterSpacing": "{typography.scale.5xl.letterSpacing}"
56
56
  },
57
57
  "6xl": {
58
- "size": "4.5rem",
59
- "lineHeight": "5rem",
60
- "weight": 900,
61
- "letterSpacing": "0em"
58
+ "size": "{typography.scale.6xl.fontSize}",
59
+ "lineHeight": "{typography.scale.6xl.lineHeight}",
60
+ "weight": "{typography.scale.6xl.fontWeight}",
61
+ "letterSpacing": "{typography.scale.6xl.letterSpacing}"
62
62
  }
63
63
  },
64
64
  "typography": {
@@ -128,6 +128,57 @@
128
128
  "fontWeight": 900,
129
129
  "letterSpacing": "0em"
130
130
  }
131
+ },
132
+ "heading": {
133
+ "h1": {
134
+ "fontFamily": "{typography.families.sans}",
135
+ "fontSize": "{typography.scale.5xl.fontSize}",
136
+ "lineHeight": "{typography.scale.5xl.lineHeight}",
137
+ "fontWeight": 800,
138
+ "letterSpacing": "{typography.scale.5xl.letterSpacing}"
139
+ },
140
+ "h2": {
141
+ "fontFamily": "{typography.families.sans}",
142
+ "fontSize": "{typography.scale.4xl.fontSize}",
143
+ "lineHeight": "{typography.scale.4xl.lineHeight}",
144
+ "fontWeight": 700,
145
+ "letterSpacing": "{typography.scale.4xl.letterSpacing}"
146
+ },
147
+ "h3": {
148
+ "fontFamily": "{typography.families.sans}",
149
+ "fontSize": "{typography.scale.3xl.fontSize}",
150
+ "lineHeight": "{typography.scale.3xl.lineHeight}",
151
+ "fontWeight": 700,
152
+ "letterSpacing": "{typography.scale.3xl.letterSpacing}"
153
+ },
154
+ "h4": {
155
+ "fontFamily": "{typography.families.sans}",
156
+ "fontSize": "{typography.scale.2xl.fontSize}",
157
+ "lineHeight": "{typography.scale.2xl.lineHeight}",
158
+ "fontWeight": 600,
159
+ "letterSpacing": "{typography.scale.2xl.letterSpacing}"
160
+ },
161
+ "h5": {
162
+ "fontFamily": "{typography.families.sans}",
163
+ "fontSize": "{typography.scale.xl.fontSize}",
164
+ "lineHeight": "{typography.scale.xl.lineHeight}",
165
+ "fontWeight": 600,
166
+ "letterSpacing": "{typography.scale.xl.letterSpacing}"
167
+ },
168
+ "h6": {
169
+ "fontFamily": "{typography.families.sans}",
170
+ "fontSize": "{typography.scale.lg.fontSize}",
171
+ "lineHeight": "{typography.scale.lg.lineHeight}",
172
+ "fontWeight": 600,
173
+ "letterSpacing": "{typography.scale.lg.letterSpacing}"
174
+ }
175
+ },
176
+ "body": {
177
+ "fontFamily": "{typography.families.sans}",
178
+ "fontSize": "{typography.scale.md.fontSize}",
179
+ "lineHeight": "{typography.scale.md.lineHeight}",
180
+ "fontWeight": 400,
181
+ "letterSpacing": "{typography.scale.md.letterSpacing}"
131
182
  }
132
183
  }
133
184
  }