@aws505/sheetsite 1.0.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 (57) hide show
  1. package/README.md +105 -0
  2. package/dist/components/index.js +1696 -0
  3. package/dist/components/index.js.map +1 -0
  4. package/dist/components/index.mjs +1630 -0
  5. package/dist/components/index.mjs.map +1 -0
  6. package/dist/config/index.js +1840 -0
  7. package/dist/config/index.js.map +1 -0
  8. package/dist/config/index.mjs +1793 -0
  9. package/dist/config/index.mjs.map +1 -0
  10. package/dist/data/index.js +1296 -0
  11. package/dist/data/index.js.map +1 -0
  12. package/dist/data/index.mjs +1220 -0
  13. package/dist/data/index.mjs.map +1 -0
  14. package/dist/index.js +5433 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/index.mjs +5285 -0
  17. package/dist/index.mjs.map +1 -0
  18. package/dist/seo/index.js +187 -0
  19. package/dist/seo/index.js.map +1 -0
  20. package/dist/seo/index.mjs +155 -0
  21. package/dist/seo/index.mjs.map +1 -0
  22. package/dist/theme/index.js +552 -0
  23. package/dist/theme/index.js.map +1 -0
  24. package/dist/theme/index.mjs +526 -0
  25. package/dist/theme/index.mjs.map +1 -0
  26. package/package.json +96 -0
  27. package/src/components/index.ts +41 -0
  28. package/src/components/layout/Footer.tsx +234 -0
  29. package/src/components/layout/Header.tsx +134 -0
  30. package/src/components/sections/FAQ.tsx +178 -0
  31. package/src/components/sections/Gallery.tsx +107 -0
  32. package/src/components/sections/Hero.tsx +202 -0
  33. package/src/components/sections/Hours.tsx +225 -0
  34. package/src/components/sections/Services.tsx +216 -0
  35. package/src/components/sections/Testimonials.tsx +184 -0
  36. package/src/components/ui/Button.tsx +158 -0
  37. package/src/components/ui/Card.tsx +162 -0
  38. package/src/components/ui/Icons.tsx +508 -0
  39. package/src/config/index.ts +207 -0
  40. package/src/config/presets/generic.ts +153 -0
  41. package/src/config/presets/home-kitchen.ts +154 -0
  42. package/src/config/presets/index.ts +708 -0
  43. package/src/config/presets/professional.ts +165 -0
  44. package/src/config/presets/repair.ts +160 -0
  45. package/src/config/presets/restaurant.ts +162 -0
  46. package/src/config/presets/salon.ts +178 -0
  47. package/src/config/presets/tailor.ts +159 -0
  48. package/src/config/types.ts +314 -0
  49. package/src/data/csv-parser.ts +154 -0
  50. package/src/data/defaults.ts +202 -0
  51. package/src/data/google-drive.ts +148 -0
  52. package/src/data/index.ts +535 -0
  53. package/src/data/sheets.ts +709 -0
  54. package/src/data/types.ts +379 -0
  55. package/src/seo/index.ts +272 -0
  56. package/src/theme/colors.ts +351 -0
  57. package/src/theme/index.ts +249 -0
@@ -0,0 +1,552 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __esm = (fn, res) => function __init() {
7
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+
23
+ // src/theme/colors.ts
24
+ var colors_exports = {};
25
+ __export(colors_exports, {
26
+ boldRed: () => boldRed,
27
+ coolBlue: () => coolBlue,
28
+ earthGreen: () => earthGreen,
29
+ elegantGold: () => elegantGold,
30
+ forestGreen: () => forestGreen,
31
+ freshTeal: () => freshTeal,
32
+ getColorPalette: () => getColorPalette,
33
+ slateGray: () => slateGray,
34
+ softPink: () => softPink,
35
+ themePalettes: () => themePalettes,
36
+ warmAmber: () => warmAmber,
37
+ warmBrown: () => warmBrown
38
+ });
39
+ function getColorPalette(preset) {
40
+ return themePalettes[preset] || themePalettes["cool-blue"];
41
+ }
42
+ var warmBrown, coolBlue, earthGreen, warmAmber, elegantGold, freshTeal, boldRed, softPink, slateGray, forestGreen, themePalettes;
43
+ var init_colors = __esm({
44
+ "src/theme/colors.ts"() {
45
+ "use strict";
46
+ warmBrown = {
47
+ primary: {
48
+ 50: "#faf8f6",
49
+ 100: "#f2ede8",
50
+ 200: "#e4d9ce",
51
+ 300: "#d3c0ad",
52
+ 400: "#bfa38a",
53
+ 500: "#a68a6d",
54
+ 600: "#8b7058",
55
+ 700: "#735c49",
56
+ 800: "#604d3f",
57
+ 900: "#514237",
58
+ 950: "#2b221c"
59
+ },
60
+ accent: {
61
+ 50: "#fef3f2",
62
+ 100: "#fee4e2",
63
+ 200: "#fecdca",
64
+ 300: "#fcaca5",
65
+ 400: "#f87d71",
66
+ 500: "#ef5544",
67
+ 600: "#dc3626",
68
+ 700: "#b92a1c",
69
+ 800: "#99261b",
70
+ 900: "#7f261d",
71
+ 950: "#450f0a"
72
+ }
73
+ };
74
+ coolBlue = {
75
+ primary: {
76
+ 50: "#f0f7ff",
77
+ 100: "#e0effe",
78
+ 200: "#b9dffd",
79
+ 300: "#7cc5fc",
80
+ 400: "#36a8f8",
81
+ 500: "#0c8de9",
82
+ 600: "#006fc7",
83
+ 700: "#0159a1",
84
+ 800: "#064c85",
85
+ 900: "#0b406e",
86
+ 950: "#072849"
87
+ },
88
+ accent: {
89
+ 50: "#f0fdf4",
90
+ 100: "#dcfce7",
91
+ 200: "#bbf7d0",
92
+ 300: "#86efac",
93
+ 400: "#4ade80",
94
+ 500: "#22c55e",
95
+ 600: "#16a34a",
96
+ 700: "#15803d",
97
+ 800: "#166534",
98
+ 900: "#14532d",
99
+ 950: "#052e16"
100
+ }
101
+ };
102
+ earthGreen = {
103
+ primary: {
104
+ 50: "#f4f9f4",
105
+ 100: "#e5f2e7",
106
+ 200: "#cce5d0",
107
+ 300: "#a3d0ac",
108
+ 400: "#72b381",
109
+ 500: "#4f9760",
110
+ 600: "#3d7a4c",
111
+ 700: "#33613f",
112
+ 800: "#2c4e35",
113
+ 900: "#26412e",
114
+ 950: "#112317"
115
+ },
116
+ accent: {
117
+ 50: "#fefce8",
118
+ 100: "#fef9c3",
119
+ 200: "#fef08a",
120
+ 300: "#fde047",
121
+ 400: "#facc15",
122
+ 500: "#eab308",
123
+ 600: "#ca8a04",
124
+ 700: "#a16207",
125
+ 800: "#854d0e",
126
+ 900: "#713f12",
127
+ 950: "#422006"
128
+ }
129
+ };
130
+ warmAmber = {
131
+ primary: {
132
+ 50: "#fffbeb",
133
+ 100: "#fef3c7",
134
+ 200: "#fde68a",
135
+ 300: "#fcd34d",
136
+ 400: "#fbbf24",
137
+ 500: "#f59e0b",
138
+ 600: "#d97706",
139
+ 700: "#b45309",
140
+ 800: "#92400e",
141
+ 900: "#78350f",
142
+ 950: "#451a03"
143
+ },
144
+ accent: {
145
+ 50: "#fef2f2",
146
+ 100: "#fee2e2",
147
+ 200: "#fecaca",
148
+ 300: "#fca5a5",
149
+ 400: "#f87171",
150
+ 500: "#ef4444",
151
+ 600: "#dc2626",
152
+ 700: "#b91c1c",
153
+ 800: "#991b1b",
154
+ 900: "#7f1d1d",
155
+ 950: "#450a0a"
156
+ }
157
+ };
158
+ elegantGold = {
159
+ primary: {
160
+ 50: "#fdfcf7",
161
+ 100: "#f9f5e7",
162
+ 200: "#f2e9cb",
163
+ 300: "#e8d7a5",
164
+ 400: "#dcc07a",
165
+ 500: "#cfaa58",
166
+ 600: "#c09548",
167
+ 700: "#a0783d",
168
+ 800: "#826037",
169
+ 900: "#6b4f31",
170
+ 950: "#3b2a19"
171
+ },
172
+ accent: {
173
+ 50: "#f8fafc",
174
+ 100: "#f1f5f9",
175
+ 200: "#e2e8f0",
176
+ 300: "#cbd5e1",
177
+ 400: "#94a3b8",
178
+ 500: "#64748b",
179
+ 600: "#475569",
180
+ 700: "#334155",
181
+ 800: "#1e293b",
182
+ 900: "#0f172a",
183
+ 950: "#020617"
184
+ }
185
+ };
186
+ freshTeal = {
187
+ primary: {
188
+ 50: "#f0fdfa",
189
+ 100: "#ccfbf1",
190
+ 200: "#99f6e4",
191
+ 300: "#5eead4",
192
+ 400: "#2dd4bf",
193
+ 500: "#14b8a6",
194
+ 600: "#0d9488",
195
+ 700: "#0f766e",
196
+ 800: "#115e59",
197
+ 900: "#134e4a",
198
+ 950: "#042f2e"
199
+ },
200
+ accent: {
201
+ 50: "#fdf4ff",
202
+ 100: "#fae8ff",
203
+ 200: "#f5d0fe",
204
+ 300: "#f0abfc",
205
+ 400: "#e879f9",
206
+ 500: "#d946ef",
207
+ 600: "#c026d3",
208
+ 700: "#a21caf",
209
+ 800: "#86198f",
210
+ 900: "#701a75",
211
+ 950: "#4a044e"
212
+ }
213
+ };
214
+ boldRed = {
215
+ primary: {
216
+ 50: "#fef2f2",
217
+ 100: "#fee2e2",
218
+ 200: "#fecaca",
219
+ 300: "#fca5a5",
220
+ 400: "#f87171",
221
+ 500: "#ef4444",
222
+ 600: "#dc2626",
223
+ 700: "#b91c1c",
224
+ 800: "#991b1b",
225
+ 900: "#7f1d1d",
226
+ 950: "#450a0a"
227
+ },
228
+ accent: {
229
+ 50: "#f8fafc",
230
+ 100: "#f1f5f9",
231
+ 200: "#e2e8f0",
232
+ 300: "#cbd5e1",
233
+ 400: "#94a3b8",
234
+ 500: "#64748b",
235
+ 600: "#475569",
236
+ 700: "#334155",
237
+ 800: "#1e293b",
238
+ 900: "#0f172a",
239
+ 950: "#020617"
240
+ }
241
+ };
242
+ softPink = {
243
+ primary: {
244
+ 50: "#fdf2f8",
245
+ 100: "#fce7f3",
246
+ 200: "#fbcfe8",
247
+ 300: "#f9a8d4",
248
+ 400: "#f472b6",
249
+ 500: "#ec4899",
250
+ 600: "#db2777",
251
+ 700: "#be185d",
252
+ 800: "#9d174d",
253
+ 900: "#831843",
254
+ 950: "#500724"
255
+ },
256
+ accent: {
257
+ 50: "#faf5ff",
258
+ 100: "#f3e8ff",
259
+ 200: "#e9d5ff",
260
+ 300: "#d8b4fe",
261
+ 400: "#c084fc",
262
+ 500: "#a855f7",
263
+ 600: "#9333ea",
264
+ 700: "#7e22ce",
265
+ 800: "#6b21a8",
266
+ 900: "#581c87",
267
+ 950: "#3b0764"
268
+ }
269
+ };
270
+ slateGray = {
271
+ primary: {
272
+ 50: "#f8fafc",
273
+ 100: "#f1f5f9",
274
+ 200: "#e2e8f0",
275
+ 300: "#cbd5e1",
276
+ 400: "#94a3b8",
277
+ 500: "#64748b",
278
+ 600: "#475569",
279
+ 700: "#334155",
280
+ 800: "#1e293b",
281
+ 900: "#0f172a",
282
+ 950: "#020617"
283
+ },
284
+ accent: {
285
+ 50: "#ecfeff",
286
+ 100: "#cffafe",
287
+ 200: "#a5f3fc",
288
+ 300: "#67e8f9",
289
+ 400: "#22d3ee",
290
+ 500: "#06b6d4",
291
+ 600: "#0891b2",
292
+ 700: "#0e7490",
293
+ 800: "#155e75",
294
+ 900: "#164e63",
295
+ 950: "#083344"
296
+ }
297
+ };
298
+ forestGreen = {
299
+ primary: {
300
+ 50: "#f0fdf4",
301
+ 100: "#dcfce7",
302
+ 200: "#bbf7d0",
303
+ 300: "#86efac",
304
+ 400: "#4ade80",
305
+ 500: "#22c55e",
306
+ 600: "#16a34a",
307
+ 700: "#15803d",
308
+ 800: "#166534",
309
+ 900: "#14532d",
310
+ 950: "#052e16"
311
+ },
312
+ accent: {
313
+ 50: "#fffbeb",
314
+ 100: "#fef3c7",
315
+ 200: "#fde68a",
316
+ 300: "#fcd34d",
317
+ 400: "#fbbf24",
318
+ 500: "#f59e0b",
319
+ 600: "#d97706",
320
+ 700: "#b45309",
321
+ 800: "#92400e",
322
+ 900: "#78350f",
323
+ 950: "#451a03"
324
+ }
325
+ };
326
+ themePalettes = {
327
+ "warm-brown": warmBrown,
328
+ "cool-blue": coolBlue,
329
+ "earth-green": earthGreen,
330
+ "warm-amber": warmAmber,
331
+ "elegant-gold": elegantGold,
332
+ "fresh-teal": freshTeal,
333
+ "bold-red": boldRed,
334
+ "soft-pink": softPink,
335
+ "slate-gray": slateGray,
336
+ "forest-green": forestGreen
337
+ };
338
+ }
339
+ });
340
+
341
+ // src/theme/index.ts
342
+ var theme_exports = {};
343
+ __export(theme_exports, {
344
+ boldRed: () => boldRed,
345
+ coolBlue: () => coolBlue,
346
+ earthGreen: () => earthGreen,
347
+ elegantGold: () => elegantGold,
348
+ fontPairings: () => fontPairings,
349
+ forestGreen: () => forestGreen,
350
+ freshTeal: () => freshTeal,
351
+ generateCSSVariables: () => generateCSSVariables,
352
+ generateCSSVariablesString: () => generateCSSVariablesString,
353
+ generateTailwindConfig: () => generateTailwindConfig,
354
+ generateTailwindTheme: () => generateTailwindTheme,
355
+ getAccentColor: () => getAccentColor,
356
+ getColorPalette: () => getColorPalette,
357
+ getPrimaryColor: () => getPrimaryColor,
358
+ recommendFontPairing: () => recommendFontPairing,
359
+ slateGray: () => slateGray,
360
+ softPink: () => softPink,
361
+ themePalettes: () => themePalettes,
362
+ warmAmber: () => warmAmber,
363
+ warmBrown: () => warmBrown
364
+ });
365
+ module.exports = __toCommonJS(theme_exports);
366
+ init_colors();
367
+ init_colors();
368
+ var fontPairings = {
369
+ classic: {
370
+ heading: "Playfair Display",
371
+ body: "Inter"
372
+ },
373
+ modern: {
374
+ heading: "Inter",
375
+ body: "Inter"
376
+ },
377
+ elegant: {
378
+ heading: "Cormorant Garamond",
379
+ body: "Lato"
380
+ },
381
+ friendly: {
382
+ heading: "Nunito",
383
+ body: "Open Sans"
384
+ },
385
+ professional: {
386
+ heading: "Merriweather",
387
+ body: "Source Sans Pro"
388
+ },
389
+ bold: {
390
+ heading: "Montserrat",
391
+ body: "Roboto"
392
+ }
393
+ };
394
+ function generateTailwindTheme(config) {
395
+ const { getColorPalette: getColorPalette2 } = (init_colors(), __toCommonJS(colors_exports));
396
+ const palette = config.preset ? getColorPalette2(config.preset) : null;
397
+ const colors = {
398
+ primary: {
399
+ ...palette?.primary || {},
400
+ ...config.colors?.primary || {}
401
+ },
402
+ accent: {
403
+ ...palette?.accent || {},
404
+ ...config.colors?.accent || {}
405
+ }
406
+ };
407
+ return {
408
+ colors,
409
+ fontFamily: config.fonts ? {
410
+ heading: [config.fonts.heading, "serif"],
411
+ body: [config.fonts.body, "sans-serif"],
412
+ ...config.fonts.accent ? { accent: [config.fonts.accent, "sans-serif"] } : {}
413
+ } : void 0,
414
+ borderRadius: config.borderRadius ? {
415
+ DEFAULT: getBorderRadiusValue(config.borderRadius)
416
+ } : void 0,
417
+ boxShadow: config.shadows ? {
418
+ DEFAULT: getShadowValue(config.shadows)
419
+ } : void 0
420
+ };
421
+ }
422
+ function generateTailwindConfig(config) {
423
+ const themeExtend = generateTailwindTheme(config);
424
+ return {
425
+ theme: {
426
+ extend: themeExtend
427
+ }
428
+ };
429
+ }
430
+ function generateCSSVariables(config) {
431
+ const { getColorPalette: getColorPalette2 } = (init_colors(), __toCommonJS(colors_exports));
432
+ const palette = config.preset ? getColorPalette2(config.preset) : null;
433
+ const variables = {};
434
+ if (palette) {
435
+ for (const [shade, color] of Object.entries(palette.primary)) {
436
+ variables[`--color-primary-${shade}`] = color;
437
+ }
438
+ for (const [shade, color] of Object.entries(palette.accent)) {
439
+ variables[`--color-accent-${shade}`] = color;
440
+ }
441
+ }
442
+ if (config.colors?.primary) {
443
+ for (const [shade, color] of Object.entries(config.colors.primary)) {
444
+ variables[`--color-primary-${shade}`] = color;
445
+ }
446
+ }
447
+ if (config.colors?.accent) {
448
+ for (const [shade, color] of Object.entries(config.colors.accent)) {
449
+ variables[`--color-accent-${shade}`] = color;
450
+ }
451
+ }
452
+ if (config.fonts) {
453
+ if (config.fonts.heading) {
454
+ variables["--font-heading"] = config.fonts.heading;
455
+ }
456
+ if (config.fonts.body) {
457
+ variables["--font-body"] = config.fonts.body;
458
+ }
459
+ if (config.fonts.accent) {
460
+ variables["--font-accent"] = config.fonts.accent;
461
+ }
462
+ }
463
+ return variables;
464
+ }
465
+ function generateCSSVariablesString(config) {
466
+ const variables = generateCSSVariables(config);
467
+ const lines = Object.entries(variables).map(([key, value]) => ` ${key}: ${value};`);
468
+ return `:root {
469
+ ${lines.join("\n")}
470
+ }`;
471
+ }
472
+ function getBorderRadiusValue(size) {
473
+ const values = {
474
+ none: "0",
475
+ sm: "0.125rem",
476
+ md: "0.375rem",
477
+ lg: "0.5rem",
478
+ xl: "0.75rem",
479
+ full: "9999px"
480
+ };
481
+ return values[size || "md"];
482
+ }
483
+ function getShadowValue(size) {
484
+ const values = {
485
+ none: "none",
486
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
487
+ md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
488
+ lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)"
489
+ };
490
+ return values[size || "md"];
491
+ }
492
+ function getPrimaryColor(config, shade = 600) {
493
+ const { getColorPalette: getColorPalette2 } = (init_colors(), __toCommonJS(colors_exports));
494
+ if (config.colors?.primary?.[shade]) {
495
+ return config.colors.primary[shade];
496
+ }
497
+ if (config.preset) {
498
+ const palette = getColorPalette2(config.preset);
499
+ return palette.primary[shade];
500
+ }
501
+ return "#0c8de9";
502
+ }
503
+ function getAccentColor(config, shade = 600) {
504
+ const { getColorPalette: getColorPalette2 } = (init_colors(), __toCommonJS(colors_exports));
505
+ if (config.colors?.accent?.[shade]) {
506
+ return config.colors.accent[shade];
507
+ }
508
+ if (config.preset) {
509
+ const palette = getColorPalette2(config.preset);
510
+ return palette.accent[shade];
511
+ }
512
+ return "#16a34a";
513
+ }
514
+ function recommendFontPairing(businessType) {
515
+ const recommendations = {
516
+ tailor: "classic",
517
+ restaurant: "elegant",
518
+ "home-kitchen": "friendly",
519
+ salon: "modern",
520
+ accountant: "professional",
521
+ lawyer: "professional",
522
+ "auto-repair": "bold",
523
+ "shoe-repair": "classic",
524
+ generic: "modern"
525
+ };
526
+ const pairingName = recommendations[businessType] || "modern";
527
+ return fontPairings[pairingName];
528
+ }
529
+ // Annotate the CommonJS export names for ESM import in node:
530
+ 0 && (module.exports = {
531
+ boldRed,
532
+ coolBlue,
533
+ earthGreen,
534
+ elegantGold,
535
+ fontPairings,
536
+ forestGreen,
537
+ freshTeal,
538
+ generateCSSVariables,
539
+ generateCSSVariablesString,
540
+ generateTailwindConfig,
541
+ generateTailwindTheme,
542
+ getAccentColor,
543
+ getColorPalette,
544
+ getPrimaryColor,
545
+ recommendFontPairing,
546
+ slateGray,
547
+ softPink,
548
+ themePalettes,
549
+ warmAmber,
550
+ warmBrown
551
+ });
552
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/theme/colors.ts","../../src/theme/index.ts"],"sourcesContent":["/**\n * Theme Color Palettes\n *\n * Pre-defined color palettes for different business types and styles.\n * Each palette follows Tailwind's color scale (50-950).\n */\n\nimport type { ColorPalette, ThemePreset } from '../config/types';\n\n/**\n * Warm Brown - Tailoring, leather, traditional crafts\n */\nexport const warmBrown: ColorPalette = {\n primary: {\n 50: '#faf8f6',\n 100: '#f2ede8',\n 200: '#e4d9ce',\n 300: '#d3c0ad',\n 400: '#bfa38a',\n 500: '#a68a6d',\n 600: '#8b7058',\n 700: '#735c49',\n 800: '#604d3f',\n 900: '#514237',\n 950: '#2b221c',\n },\n accent: {\n 50: '#fef3f2',\n 100: '#fee4e2',\n 200: '#fecdca',\n 300: '#fcaca5',\n 400: '#f87d71',\n 500: '#ef5544',\n 600: '#dc3626',\n 700: '#b92a1c',\n 800: '#99261b',\n 900: '#7f261d',\n 950: '#450f0a',\n },\n};\n\n/**\n * Cool Blue - Professional services, tech, trust\n */\nexport const coolBlue: ColorPalette = {\n primary: {\n 50: '#f0f7ff',\n 100: '#e0effe',\n 200: '#b9dffd',\n 300: '#7cc5fc',\n 400: '#36a8f8',\n 500: '#0c8de9',\n 600: '#006fc7',\n 700: '#0159a1',\n 800: '#064c85',\n 900: '#0b406e',\n 950: '#072849',\n },\n accent: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n 950: '#052e16',\n },\n};\n\n/**\n * Earth Green - Natural, organic, outdoor\n */\nexport const earthGreen: ColorPalette = {\n primary: {\n 50: '#f4f9f4',\n 100: '#e5f2e7',\n 200: '#cce5d0',\n 300: '#a3d0ac',\n 400: '#72b381',\n 500: '#4f9760',\n 600: '#3d7a4c',\n 700: '#33613f',\n 800: '#2c4e35',\n 900: '#26412e',\n 950: '#112317',\n },\n accent: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n 950: '#422006',\n },\n};\n\n/**\n * Warm Amber - Food, hospitality, warmth\n */\nexport const warmAmber: ColorPalette = {\n primary: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n 950: '#451a03',\n },\n accent: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n};\n\n/**\n * Elegant Gold - Luxury, formal, upscale\n */\nexport const elegantGold: ColorPalette = {\n primary: {\n 50: '#fdfcf7',\n 100: '#f9f5e7',\n 200: '#f2e9cb',\n 300: '#e8d7a5',\n 400: '#dcc07a',\n 500: '#cfaa58',\n 600: '#c09548',\n 700: '#a0783d',\n 800: '#826037',\n 900: '#6b4f31',\n 950: '#3b2a19',\n },\n accent: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617',\n },\n};\n\n/**\n * Fresh Teal - Modern, creative, spa\n */\nexport const freshTeal: ColorPalette = {\n primary: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n 950: '#042f2e',\n },\n accent: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n 950: '#4a044e',\n },\n};\n\n/**\n * Bold Red - Auto, sports, energy\n */\nexport const boldRed: ColorPalette = {\n primary: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n accent: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617',\n },\n};\n\n/**\n * Soft Pink - Beauty, feminine, delicate\n */\nexport const softPink: ColorPalette = {\n primary: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n 950: '#500724',\n },\n accent: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n 950: '#3b0764',\n },\n};\n\n/**\n * Slate Gray - Minimalist, industrial\n */\nexport const slateGray: ColorPalette = {\n primary: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n 950: '#020617',\n },\n accent: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n 950: '#083344',\n },\n};\n\n/**\n * Forest Green - Deep nature, sustainability\n */\nexport const forestGreen: ColorPalette = {\n primary: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n 950: '#052e16',\n },\n accent: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n 950: '#451a03',\n },\n};\n\n/**\n * Map of theme presets to color palettes.\n */\nexport const themePalettes: Record<ThemePreset, ColorPalette> = {\n 'warm-brown': warmBrown,\n 'cool-blue': coolBlue,\n 'earth-green': earthGreen,\n 'warm-amber': warmAmber,\n 'elegant-gold': elegantGold,\n 'fresh-teal': freshTeal,\n 'bold-red': boldRed,\n 'soft-pink': softPink,\n 'slate-gray': slateGray,\n 'forest-green': forestGreen,\n};\n\n/**\n * Get a color palette by theme preset name.\n */\nexport function getColorPalette(preset: ThemePreset): ColorPalette {\n return themePalettes[preset] || themePalettes['cool-blue'];\n}\n","/**\n * SheetSite Theme Module\n *\n * Provides theming utilities, color palettes, and Tailwind CSS configuration helpers.\n */\n\nimport type { ThemeConfig, ThemePreset, ColorPalette, FontConfig } from '../config/types';\nexport { getColorPalette, themePalettes } from './colors';\nexport * from './colors';\n\n// =============================================================================\n// FONT CONFIGURATIONS\n// =============================================================================\n\n/**\n * Recommended font pairings.\n */\nexport const fontPairings: Record<string, FontConfig> = {\n classic: {\n heading: 'Playfair Display',\n body: 'Inter',\n },\n modern: {\n heading: 'Inter',\n body: 'Inter',\n },\n elegant: {\n heading: 'Cormorant Garamond',\n body: 'Lato',\n },\n friendly: {\n heading: 'Nunito',\n body: 'Open Sans',\n },\n professional: {\n heading: 'Merriweather',\n body: 'Source Sans Pro',\n },\n bold: {\n heading: 'Montserrat',\n body: 'Roboto',\n },\n};\n\n// =============================================================================\n// TAILWIND CONFIGURATION GENERATOR\n// =============================================================================\n\n/**\n * Generate Tailwind CSS theme extension from a theme configuration.\n */\nexport function generateTailwindTheme(config: ThemeConfig): object {\n const { getColorPalette } = require('./colors');\n const palette = config.preset ? getColorPalette(config.preset) : null;\n\n // Merge custom colors with preset\n const colors = {\n primary: {\n ...(palette?.primary || {}),\n ...(config.colors?.primary || {}),\n },\n accent: {\n ...(palette?.accent || {}),\n ...(config.colors?.accent || {}),\n },\n };\n\n return {\n colors,\n fontFamily: config.fonts\n ? {\n heading: [config.fonts.heading, 'serif'],\n body: [config.fonts.body, 'sans-serif'],\n ...(config.fonts.accent ? { accent: [config.fonts.accent, 'sans-serif'] } : {}),\n }\n : undefined,\n borderRadius: config.borderRadius\n ? {\n DEFAULT: getBorderRadiusValue(config.borderRadius),\n }\n : undefined,\n boxShadow: config.shadows\n ? {\n DEFAULT: getShadowValue(config.shadows),\n }\n : undefined,\n };\n}\n\n/**\n * Generate a complete Tailwind config object.\n */\nexport function generateTailwindConfig(config: ThemeConfig): object {\n const themeExtend = generateTailwindTheme(config);\n\n return {\n theme: {\n extend: themeExtend,\n },\n };\n}\n\n/**\n * Generate CSS custom properties from a theme configuration.\n * Useful for CSS-in-JS or custom styling.\n */\nexport function generateCSSVariables(config: ThemeConfig): Record<string, string> {\n const { getColorPalette } = require('./colors');\n const palette = config.preset ? getColorPalette(config.preset) : null;\n const variables: Record<string, string> = {};\n\n // Add color variables\n if (palette) {\n for (const [shade, color] of Object.entries(palette.primary)) {\n variables[`--color-primary-${shade}`] = color as string;\n }\n for (const [shade, color] of Object.entries(palette.accent)) {\n variables[`--color-accent-${shade}`] = color as string;\n }\n }\n\n // Add custom colors\n if (config.colors?.primary) {\n for (const [shade, color] of Object.entries(config.colors.primary)) {\n variables[`--color-primary-${shade}`] = color;\n }\n }\n if (config.colors?.accent) {\n for (const [shade, color] of Object.entries(config.colors.accent)) {\n variables[`--color-accent-${shade}`] = color;\n }\n }\n\n // Add font variables\n if (config.fonts) {\n if (config.fonts.heading) {\n variables['--font-heading'] = config.fonts.heading;\n }\n if (config.fonts.body) {\n variables['--font-body'] = config.fonts.body;\n }\n if (config.fonts.accent) {\n variables['--font-accent'] = config.fonts.accent;\n }\n }\n\n return variables;\n}\n\n/**\n * Generate the CSS string for custom properties.\n */\nexport function generateCSSVariablesString(config: ThemeConfig): string {\n const variables = generateCSSVariables(config);\n const lines = Object.entries(variables).map(([key, value]) => ` ${key}: ${value};`);\n return `:root {\\n${lines.join('\\n')}\\n}`;\n}\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\nfunction getBorderRadiusValue(size: ThemeConfig['borderRadius']): string {\n const values: Record<NonNullable<ThemeConfig['borderRadius']>, string> = {\n none: '0',\n sm: '0.125rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n full: '9999px',\n };\n return values[size || 'md'];\n}\n\nfunction getShadowValue(size: ThemeConfig['shadows']): string {\n const values: Record<NonNullable<ThemeConfig['shadows']>, string> = {\n none: 'none',\n sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n };\n return values[size || 'md'];\n}\n\n// =============================================================================\n// THEME UTILITIES\n// =============================================================================\n\n/**\n * Get the primary color for a given shade.\n */\nexport function getPrimaryColor(config: ThemeConfig, shade: keyof ColorPalette['primary'] = 600): string {\n const { getColorPalette } = require('./colors');\n\n // Check custom colors first\n if (config.colors?.primary?.[shade]) {\n return config.colors.primary[shade];\n }\n\n // Fall back to preset\n if (config.preset) {\n const palette = getColorPalette(config.preset);\n return palette.primary[shade];\n }\n\n // Default\n return '#0c8de9'; // cool-blue 500\n}\n\n/**\n * Get the accent color for a given shade.\n */\nexport function getAccentColor(config: ThemeConfig, shade: keyof ColorPalette['accent'] = 600): string {\n const { getColorPalette } = require('./colors');\n\n // Check custom colors first\n if (config.colors?.accent?.[shade]) {\n return config.colors.accent[shade];\n }\n\n // Fall back to preset\n if (config.preset) {\n const palette = getColorPalette(config.preset);\n return palette.accent[shade];\n }\n\n // Default\n return '#16a34a'; // green 600\n}\n\n/**\n * Recommend a font pairing for a business type.\n */\nexport function recommendFontPairing(businessType: string): FontConfig {\n const recommendations: Record<string, string> = {\n tailor: 'classic',\n restaurant: 'elegant',\n 'home-kitchen': 'friendly',\n salon: 'modern',\n accountant: 'professional',\n lawyer: 'professional',\n 'auto-repair': 'bold',\n 'shoe-repair': 'classic',\n generic: 'modern',\n };\n\n const pairingName = recommendations[businessType] || 'modern';\n return fontPairings[pairingName];\n}\n"],"mappings":"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","names":["getColorPalette"]}