@frontlit/page-builder 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (98) hide show
  1. package/README.md +32 -0
  2. package/dist/blocks/index.d.ts +33 -21
  3. package/dist/blocks/index.js +3 -3
  4. package/dist/builder/index.d.ts +7 -8
  5. package/dist/builder/index.js +6 -5
  6. package/dist/{button-Bzt1GDO-.d.ts → button-OLKN3wPf.d.ts} +2 -2
  7. package/dist/{chunk-H4P5MFJI.js → chunk-36QHCIPM.js} +205 -251
  8. package/dist/chunk-36QHCIPM.js.map +1 -0
  9. package/dist/chunk-BBI7UHOA.js +56 -0
  10. package/dist/chunk-BBI7UHOA.js.map +1 -0
  11. package/dist/{chunk-KQKSLI3L.js → chunk-GIKTOAQS.js} +335 -122
  12. package/dist/chunk-GIKTOAQS.js.map +1 -0
  13. package/dist/chunk-HWOVSHIW.js +4 -0
  14. package/dist/{chunk-RUYOL7JZ.js.map → chunk-HWOVSHIW.js.map} +1 -1
  15. package/dist/{chunk-HDINUNI2.js → chunk-IU4KATI2.js} +69 -96
  16. package/dist/chunk-IU4KATI2.js.map +1 -0
  17. package/dist/{chunk-SGNRWWG3.js → chunk-J7Z4UW45.js} +530 -135
  18. package/dist/chunk-J7Z4UW45.js.map +1 -0
  19. package/dist/{chunk-UO7XGBGM.js → chunk-K4WCLHMS.js} +1182 -1033
  20. package/dist/chunk-K4WCLHMS.js.map +1 -0
  21. package/dist/components/index.d.ts +33 -8
  22. package/dist/components/index.js +42 -2
  23. package/dist/components/index.js.map +1 -1
  24. package/dist/data-slots.d.ts +3 -3
  25. package/dist/fonts/archivo/archivo-latin-variable.woff2 +0 -0
  26. package/dist/fonts/hanken-grotesk/hanken-grotesk-latin-variable.woff2 +0 -0
  27. package/dist/fonts/jetbrains-mono/jetbrains-mono-latin-variable.woff2 +0 -0
  28. package/dist/fonts/spline-sans-mono/spline-sans-mono-latin-variable.woff2 +0 -0
  29. package/dist/heading-DQCxQt38.d.ts +20 -0
  30. package/dist/image-Bk8kPXwP.d.ts +52 -0
  31. package/dist/index.d.ts +17 -10
  32. package/dist/index.js +7 -6
  33. package/dist/models/index.d.ts +5 -5
  34. package/dist/models/index.js +1 -1
  35. package/dist/{page-W3hQga4w.d.ts → page-B5Gmm-Ys.d.ts} +1 -1
  36. package/dist/primitives/index.d.ts +44 -9
  37. package/dist/primitives/index.js +1 -1
  38. package/dist/renderer/index.d.ts +12 -8
  39. package/dist/renderer/index.js +5 -4
  40. package/dist/{section-background-MsdE40Rk.d.ts → section-background-6V_LCi5e.d.ts} +1 -1
  41. package/dist/server/index.d.ts +103 -0
  42. package/dist/server/index.js +2649 -0
  43. package/dist/server/index.js.map +1 -0
  44. package/dist/server/islands/code-snippet.d.ts +17 -0
  45. package/dist/server/islands/code-snippet.js +72 -0
  46. package/dist/server/islands/code-snippet.js.map +1 -0
  47. package/dist/server/islands/email-form.d.ts +50 -0
  48. package/dist/server/islands/email-form.js +406 -0
  49. package/dist/server/islands/email-form.js.map +1 -0
  50. package/dist/server/islands/header-mobile-menu.d.ts +22 -0
  51. package/dist/server/islands/header-mobile-menu.js +422 -0
  52. package/dist/server/islands/header-mobile-menu.js.map +1 -0
  53. package/dist/server/islands/inline-embed.d.ts +28 -0
  54. package/dist/server/islands/inline-embed.js +84 -0
  55. package/dist/server/islands/inline-embed.js.map +1 -0
  56. package/dist/server/islands/marquee-track.d.ts +18 -0
  57. package/dist/server/islands/marquee-track.js +67 -0
  58. package/dist/server/islands/marquee-track.js.map +1 -0
  59. package/dist/server/islands/nav-link.d.ts +37 -0
  60. package/dist/server/islands/nav-link.js +67 -0
  61. package/dist/server/islands/nav-link.js.map +1 -0
  62. package/dist/server/islands/support-form.d.ts +17 -0
  63. package/dist/server/islands/support-form.js +469 -0
  64. package/dist/server/islands/support-form.js.map +1 -0
  65. package/dist/server/islands/theme-mode-switcher.d.ts +38 -0
  66. package/dist/server/islands/theme-mode-switcher.js +169 -0
  67. package/dist/server/islands/theme-mode-switcher.js.map +1 -0
  68. package/dist/server/islands/video-with-preview.d.ts +13 -0
  69. package/dist/server/islands/video-with-preview.js +269 -0
  70. package/dist/server/islands/video-with-preview.js.map +1 -0
  71. package/dist/server/primitives.d.ts +200 -0
  72. package/dist/server/primitives.js +888 -0
  73. package/dist/server/primitives.js.map +1 -0
  74. package/dist/server/schema.d.ts +11308 -0
  75. package/dist/server/schema.js +6179 -0
  76. package/dist/server/schema.js.map +1 -0
  77. package/dist/server/theme-CF3fIKvw.d.ts +9 -0
  78. package/dist/server/theme-style-5_AGy-4V.d.ts +183 -0
  79. package/dist/server/theme-style-BPaMwk88.d.ts +183 -0
  80. package/dist/server/theme.d.ts +28 -0
  81. package/dist/server/theme.js +1671 -0
  82. package/dist/server/theme.js.map +1 -0
  83. package/dist/server/widget-YH9BrOwY.d.ts +77 -0
  84. package/dist/styles.css +121 -15
  85. package/dist/{theme-style-Cbl7NM-T.d.ts → theme-style-BVd5tOsc.d.ts} +20 -0
  86. package/dist/theme.css +12 -0
  87. package/dist/{widget-B_RoG6se.d.ts → widget-CpE2HdgU.d.ts} +17 -14
  88. package/package.json +60 -12
  89. package/schema/page.v1.json +3855 -0
  90. package/schema/site.v1.json +3811 -0
  91. package/dist/alignment-dZDzN96G.d.ts +0 -5
  92. package/dist/chunk-H4P5MFJI.js.map +0 -1
  93. package/dist/chunk-HDINUNI2.js.map +0 -1
  94. package/dist/chunk-KQKSLI3L.js.map +0 -1
  95. package/dist/chunk-RUYOL7JZ.js +0 -4
  96. package/dist/chunk-SGNRWWG3.js.map +0 -1
  97. package/dist/chunk-UO7XGBGM.js.map +0 -1
  98. package/dist/image-DAWVx1zQ.d.ts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/primitives/themes/classic.ts","../../src/primitives/themes/editorial.ts","../../src/primitives/themes/midnight.ts","../../src/primitives/themes/neobrutalism.ts","../../src/primitives/themes/studio.ts","../../src/primitives/themes/terminal.ts","../../src/primitives/themes/index.ts","../../src/renderer/generate-theme-styles.ts","../../src/theme/index.ts"],"sourcesContent":["import type { Theme, ThemeStyle } from \"../../models\";\n\nconst themeStyles: ThemeStyle = {\n colors: {\n light: {\n background: \"#f7f7f5\",\n foreground: \"#18181b\",\n card: \"#ffffff\",\n cardForeground: \"#18181b\",\n popover: \"#ffffff\",\n popoverForeground: \"#18181b\",\n primary: \"#18181b\",\n primaryForeground: \"#fafafa\",\n secondary: \"#eeeee8\",\n secondaryForeground: \"#18181b\",\n muted: \"#f0efe9\",\n mutedForeground: \"#52525b\",\n accent: \"#eeeee8\",\n accentForeground: \"#18181b\",\n destructive: \"#e11d48\",\n border: \"#e4e4de\",\n input: \"#e4e4de\",\n ring: \"#18181b\",\n chart1: \"#18181b\",\n chart2: \"#71717a\",\n chart3: \"#a1a1aa\",\n chart4: \"#d4d4d8\",\n chart5: \"#e4e4e7\",\n sidebar: \"#f7f7f5\",\n sidebarForeground: \"#18181b\",\n sidebarPrimary: \"#18181b\",\n sidebarPrimaryForeground: \"#fafafa\",\n sidebarAccent: \"#eeeee8\",\n sidebarAccentForeground: \"#18181b\",\n sidebarBorder: \"#e4e4de\",\n sidebarRing: \"#18181b\",\n shadow2xs: \"0 1px 2px 0 rgb(24 24 27 / 0.04)\",\n shadowXs: \"0 1px 2px 0 rgb(24 24 27 / 0.05)\",\n shadowSm: \"0 1px 2px 0 rgb(24 24 27 / 0.05), 0 1px 3px -1px rgb(24 24 27 / 0.08)\",\n shadowMd:\n \"0 2px 4px -1px rgb(24 24 27 / 0.06), 0 4px 8px -2px rgb(24 24 27 / 0.08)\",\n shadowLg:\n \"0 8px 16px -4px rgb(24 24 27 / 0.08), 0 4px 6px -2px rgb(24 24 27 / 0.04)\",\n shadowXl: \"0 16px 32px -8px rgb(24 24 27 / 0.12)\",\n shadow2xl: \"0 24px 48px -12px rgb(24 24 27 / 0.18)\",\n },\n dark: {\n background: \"#09090b\",\n foreground: \"#fafafa\",\n card: \"#141416\",\n cardForeground: \"#fafafa\",\n popover: \"#18181b\",\n popoverForeground: \"#fafafa\",\n primary: \"#fafafa\",\n primaryForeground: \"#09090b\",\n secondary: \"#27272a\",\n secondaryForeground: \"#fafafa\",\n muted: \"#1c1c1f\",\n mutedForeground: \"#a1a1aa\",\n accent: \"#27272a\",\n accentForeground: \"#fafafa\",\n destructive: \"#fb7185\",\n border: \"#27272a\",\n input: \"#27272a\",\n ring: \"#d4d4d8\",\n chart1: \"#fafafa\",\n chart2: \"#a1a1aa\",\n chart3: \"#71717a\",\n chart4: \"#52525b\",\n chart5: \"#3f3f46\",\n sidebar: \"#141416\",\n sidebarForeground: \"#fafafa\",\n sidebarPrimary: \"#fafafa\",\n sidebarPrimaryForeground: \"#09090b\",\n sidebarAccent: \"#27272a\",\n sidebarAccentForeground: \"#fafafa\",\n sidebarBorder: \"#27272a\",\n sidebarRing: \"#d4d4d8\",\n shadow2xs: \"0 1px 2px 0 rgb(0 0 0 / 0.24)\",\n shadowXs: \"0 1px 2px 0 rgb(0 0 0 / 0.28)\",\n shadowSm: \"0 1px 2px 0 rgb(0 0 0 / 0.32), 0 1px 3px -1px rgb(0 0 0 / 0.4)\",\n shadowMd: \"0 4px 8px -2px rgb(0 0 0 / 0.4), 0 2px 4px -1px rgb(0 0 0 / 0.28)\",\n shadowLg: \"0 12px 24px -6px rgb(0 0 0 / 0.5)\",\n shadowXl: \"0 20px 40px -8px rgb(0 0 0 / 0.55)\",\n shadow2xl: \"0 32px 64px -12px rgb(0 0 0 / 0.65)\",\n },\n },\n typography: {\n preheader: {\n fontFamily: \"font-inter\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-widest\",\n textTransform: \"uppercase\",\n },\n display: {\n fontFamily: \"font-inter\",\n fontSize: \"text-6xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 34, max: 56 },\n },\n header1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-5xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 28, max: 48 },\n },\n header2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-4xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 24, max: 36 },\n },\n header3: {\n fontFamily: \"font-inter\",\n fontSize: \"text-2xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n header4: {\n fontFamily: \"font-inter\",\n fontSize: \"text-xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n subheader1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-xl\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-normal\",\n },\n subheader2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-lg\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-normal\",\n },\n text1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-normal\",\n },\n text2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-normal\",\n },\n caption: {\n fontFamily: \"font-inter\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-wide\",\n },\n link: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-normal\",\n textDecoration: \"no-underline\",\n },\n button: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-wide\",\n },\n input: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-normal\",\n },\n },\n highlight: \"marker\",\n interactives: {\n button: {\n padding: {\n x: \"px-5\",\n y: \"py-3\",\n },\n border: {\n width: \"border-0\",\n radius: \"rounded-xl\",\n },\n shadow: \"shadow-xs\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n custom: \"transition-colors duration-200\",\n },\n menu: {\n padding: { x: \"px-1\", y: \"py-1\" },\n border: { width: \"border\", radius: \"rounded-xl\", style: \"border-solid\" },\n shadow: \"shadow-xs\",\n item: {\n padding: { x: \"px-3\", y: \"py-2\" },\n border: { radius: \"rounded-lg\" },\n },\n },\n dialog: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border-0\", radius: \"rounded-xl\" },\n shadow: \"shadow-lg\",\n },\n popover: {\n padding: { x: \"px-4\", y: \"py-4\" },\n border: { width: \"border-0\", radius: \"rounded-xl\" },\n shadow: \"shadow-md\",\n },\n tooltip: {\n padding: { x: \"px-2\", y: \"py-1\" },\n border: { width: \"border-0\", radius: \"rounded-sm\" },\n shadow: \"shadow-sm\",\n },\n link: {\n custom: \"underline-offset-4 hover:underline\",\n disabled: {\n color: \"gray-400\",\n cursor: \"cursor-not-allowed\",\n },\n },\n card: {\n padding: {\n x: \"px-6\",\n y: \"py-6\",\n },\n border: {\n width: \"border\",\n radius: \"rounded-2xl\",\n style: \"border-solid\",\n },\n shadow: \"shadow-xs\",\n custom: \"transition-shadow duration-200 hover:shadow-md\",\n },\n input: {\n borderRadius: \"rounded-xl\",\n padding: {\n x: \"px-4\",\n y: \"py-3\",\n },\n border: {\n width: \"border\",\n style: \"border-solid\",\n radius: \"rounded-xl\",\n },\n shadow: \"shadow-none\",\n custom: \"transition-shadow duration-150 focus-visible:shadow-sm\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n },\n structure: {\n page: {\n width: \"max-w-6xl\",\n },\n section: {\n padding: {\n x: \"px-6\",\n y: \"py-20\",\n },\n },\n },\n};\n\nexport const classic: Theme = {\n id: \"classic\",\n name: \"Classic\",\n theme: themeStyles,\n};\n","import type { Theme, ThemeStyle } from \"../../models\";\n\nconst themeStyles: ThemeStyle = {\n colors: {\n light: {\n background: \"#f6f1e8\",\n foreground: \"#1a1612\",\n card: \"#fffaf2\",\n cardForeground: \"#1a1612\",\n popover: \"#fffaf2\",\n popoverForeground: \"#1a1612\",\n primary: \"#1e3a8a\",\n primaryForeground: \"#fffaf2\",\n secondary: \"#c2410c\",\n secondaryForeground: \"#fffaf2\",\n muted: \"#ece4d6\",\n mutedForeground: \"#5c5348\",\n accent: \"#1d4ed8\",\n accentForeground: \"#fffaf2\",\n border: \"#e0d5c4\",\n destructive: \"#b91c1c\",\n input: \"#e0d5c4\",\n ring: \"#1e3a8a\",\n chart1: \"#1e3a8a\",\n chart2: \"#c2410c\",\n chart3: \"#1d4ed8\",\n chart4: \"#b91c1c\",\n chart5: \"#78716c\",\n sidebar: \"#fffaf2\",\n sidebarForeground: \"#1a1612\",\n sidebarPrimary: \"#1e3a8a\",\n sidebarPrimaryForeground: \"#fffaf2\",\n sidebarAccent: \"#ece4d6\",\n sidebarAccentForeground: \"#1a1612\",\n sidebarBorder: \"#e0d5c4\",\n sidebarRing: \"#1e3a8a\",\n shadow2xs: \"0 1px 2px 0 rgb(26 22 18 / 0.05)\",\n shadowXs: \"0 1px 2px 0 rgb(26 22 18 / 0.06)\",\n shadowSm: \"0 1px 2px 0 rgb(26 22 18 / 0.06), 0 2px 6px -2px rgb(26 22 18 / 0.1)\",\n shadowMd: \"0 8px 20px -6px rgb(26 22 18 / 0.12)\",\n shadowLg: \"0 16px 32px -10px rgb(26 22 18 / 0.14)\",\n shadowXl: \"0 24px 48px -12px rgb(26 22 18 / 0.16)\",\n shadow2xl: \"0 32px 64px -16px rgb(26 22 18 / 0.2)\",\n },\n dark: {\n background: \"#100e0c\",\n foreground: \"#f6f1e8\",\n card: \"#1b1713\",\n cardForeground: \"#f6f1e8\",\n popover: \"#1b1713\",\n popoverForeground: \"#f6f1e8\",\n primary: \"#93c5fd\",\n primaryForeground: \"#100e0c\",\n secondary: \"#fb923c\",\n secondaryForeground: \"#100e0c\",\n muted: \"#241f19\",\n mutedForeground: \"#c4b8a5\",\n accent: \"#60a5fa\",\n accentForeground: \"#100e0c\",\n border: \"#3a3228\",\n destructive: \"#f87171\",\n input: \"#3a3228\",\n ring: \"#93c5fd\",\n chart1: \"#93c5fd\",\n chart2: \"#fb923c\",\n chart3: \"#60a5fa\",\n chart4: \"#f87171\",\n chart5: \"#a8a29e\",\n sidebar: \"#1b1713\",\n sidebarForeground: \"#f6f1e8\",\n sidebarPrimary: \"#93c5fd\",\n sidebarPrimaryForeground: \"#100e0c\",\n sidebarAccent: \"#241f19\",\n sidebarAccentForeground: \"#f6f1e8\",\n sidebarBorder: \"#3a3228\",\n sidebarRing: \"#93c5fd\",\n shadow2xs: \"0 1px 2px 0 rgb(0 0 0 / 0.3)\",\n shadowXs: \"0 1px 2px 0 rgb(0 0 0 / 0.35)\",\n shadowSm: \"0 2px 6px 0 rgb(0 0 0 / 0.4)\",\n shadowMd: \"0 8px 20px -6px rgb(0 0 0 / 0.5)\",\n shadowLg: \"0 16px 32px -10px rgb(0 0 0 / 0.55)\",\n shadowXl: \"0 24px 48px -12px rgb(0 0 0 / 0.6)\",\n shadow2xl: \"0 32px 64px -16px rgb(0 0 0 / 0.7)\",\n },\n },\n typography: {\n preheader: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-relaxed\",\n letterSpacing: \"tracking-widest\",\n textTransform: \"uppercase\",\n },\n display: {\n fontFamily: \"font-playfair-display\",\n fontSize: \"text-7xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 34, max: 60 },\n },\n header1: {\n fontFamily: \"font-playfair-display\",\n fontSize: \"text-6xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 30, max: 52 },\n },\n header2: {\n fontFamily: \"font-playfair-display\",\n fontSize: \"text-4xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 24, max: 36 },\n },\n header3: {\n fontFamily: \"font-source-serif-4\",\n fontSize: \"text-3xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n header4: {\n fontFamily: \"font-source-serif-4\",\n fontSize: \"text-2xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n subheader1: {\n fontFamily: \"font-source-serif-4\",\n fontSize: \"text-xl\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n subheader2: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-lg\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text1: {\n fontFamily: \"font-source-serif-4\",\n fontSize: \"text-lg\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-loose\",\n },\n text2: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n link: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n },\n button: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-sm\",\n fontWeight: \"font-medium\",\n letterSpacing: \"tracking-wide\",\n },\n input: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n },\n caption: {\n fontFamily: \"font-work-sans\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-wide\",\n },\n },\n interactives: {\n button: {\n padding: { x: \"px-6\", y: \"py-3\" },\n border: {\n width: \"border-0\",\n radius: \"rounded-full\",\n },\n shadow: \"shadow-none\",\n custom: \"transition-colors duration-200\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n menu: {\n padding: { x: \"px-1\", y: \"py-1\" },\n border: { width: \"border-0\", radius: \"rounded-none\" },\n shadow: \"shadow-none\",\n item: {\n padding: { x: \"px-3\", y: \"py-2\" },\n border: { radius: \"rounded-none\" },\n },\n },\n dialog: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border-0\", radius: \"rounded-none\" },\n shadow: \"shadow-none\",\n },\n popover: {\n padding: { x: \"px-4\", y: \"py-4\" },\n border: { width: \"border-0\", radius: \"rounded-none\" },\n shadow: \"shadow-none\",\n },\n tooltip: {\n padding: { x: \"px-2\", y: \"py-1\" },\n border: { width: \"border-0\", radius: \"rounded-none\" },\n shadow: \"shadow-none\",\n },\n link: {\n padding: { x: \"px-0\", y: \"py-0\" },\n custom: \"underline-offset-4 decoration-1 hover:underline\",\n },\n card: {\n padding: { x: \"px-8\", y: \"py-8\" },\n border: {\n width: \"border-0\",\n radius: \"rounded-none\",\n },\n shadow: \"shadow-none\",\n custom: \"\",\n },\n input: {\n padding: { x: \"px-4\", y: \"py-3\" },\n border: {\n width: \"border\",\n radius: \"rounded-none\",\n style: \"border-solid\",\n },\n shadow: \"shadow-none\",\n custom: \"\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n },\n structure: {\n page: { width: \"max-w-5xl\" },\n section: {\n padding: { x: \"px-6\", y: \"py-24\" },\n },\n },\n};\n\nexport const editorial: Theme = {\n id: \"editorial\",\n name: \"Editorial\",\n theme: themeStyles,\n};\n","import type { Theme, ThemeStyle } from \"../../models\";\n\nconst themeStyles: ThemeStyle = {\n colors: {\n light: {\n background: \"#f4f5f7\",\n foreground: \"#1c1f26\",\n card: \"#ffffff\",\n cardForeground: \"#1c1f26\",\n popover: \"#ffffff\",\n popoverForeground: \"#1c1f26\",\n primary: \"#61afef\",\n primaryForeground: \"#0b0d11\",\n secondary: \"#e8eaf0\",\n secondaryForeground: \"#1c1f26\",\n muted: \"#eceef2\",\n mutedForeground: \"#5b6170\",\n accent: \"#d7f1f4\",\n accentForeground: \"#164e63\",\n border: \"#d7dbe3\",\n destructive: \"#e06c75\",\n input: \"#d7dbe3\",\n ring: \"#61afef\",\n chart1: \"#61afef\",\n chart2: \"#818cf8\",\n chart3: \"#56b6c2\",\n chart4: \"#98c379\",\n chart5: \"#e5c07b\",\n sidebar: \"#ffffff\",\n sidebarForeground: \"#1c1f26\",\n sidebarPrimary: \"#61afef\",\n sidebarPrimaryForeground: \"#0b0d11\",\n sidebarAccent: \"#e8eaf0\",\n sidebarAccentForeground: \"#1c1f26\",\n sidebarBorder: \"#d7dbe3\",\n sidebarRing: \"#61afef\",\n shadow2xs: \"0 1px 2px 0 rgb(28 31 38 / 0.05)\",\n shadowXs: \"0 1px 2px 0 rgb(28 31 38 / 0.06)\",\n shadowSm:\n \"0 1px 2px 0 rgb(97 175 239 / 0.12), 0 1px 3px -1px rgb(28 31 38 / 0.08)\",\n shadowMd: \"0 8px 20px -6px rgb(28 31 38 / 0.12)\",\n shadowLg: \"0 16px 32px -8px rgb(28 31 38 / 0.16)\",\n shadowXl: \"0 24px 48px -12px rgb(28 31 38 / 0.2)\",\n shadow2xl: \"0 32px 64px -16px rgb(28 31 38 / 0.24)\",\n },\n dark: {\n background: \"#0c0e12\",\n foreground: \"#e6e8ee\",\n card: \"#14171e\",\n cardForeground: \"#e6e8ee\",\n popover: \"#14171e\",\n popoverForeground: \"#e6e8ee\",\n primary: \"#61afef\",\n primaryForeground: \"#0b0d11\",\n secondary: \"#1d2230\",\n secondaryForeground: \"#e6e8ee\",\n muted: \"#171b24\",\n mutedForeground: \"#9aa3b2\",\n accent: \"#14363c\",\n accentForeground: \"#a5f3fc\",\n border: \"#262b38\",\n destructive: \"#e06c75\",\n input: \"#262b38\",\n ring: \"#61afef\",\n chart1: \"#61afef\",\n chart2: \"#818cf8\",\n chart3: \"#56b6c2\",\n chart4: \"#98c379\",\n chart5: \"#e5c07b\",\n sidebar: \"#14171e\",\n sidebarForeground: \"#e6e8ee\",\n sidebarPrimary: \"#61afef\",\n sidebarPrimaryForeground: \"#0b0d11\",\n sidebarAccent: \"#1d2230\",\n sidebarAccentForeground: \"#e6e8ee\",\n sidebarBorder: \"#262b38\",\n sidebarRing: \"#61afef\",\n shadow2xs: \"0 1px 2px 0 rgb(0 0 0 / 0.35)\",\n shadowXs: \"0 1px 2px 0 rgb(0 0 0 / 0.4)\",\n shadowSm: \"0 2px 6px 0 rgb(0 0 0 / 0.45)\",\n shadowMd: \"0 10px 24px -6px rgb(0 0 0 / 0.55)\",\n shadowLg: \"0 18px 36px -8px rgb(0 0 0 / 0.6)\",\n shadowXl: \"0 28px 52px -12px rgb(0 0 0 / 0.65)\",\n shadow2xl: \"0 36px 72px -16px rgb(0 0 0 / 0.75)\",\n },\n },\n typography: {\n preheader: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-widest\",\n textTransform: \"uppercase\",\n },\n display: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-6xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 34, max: 56 },\n },\n header1: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-5xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 28, max: 48 },\n },\n header2: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-4xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 24, max: 36 },\n },\n header3: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-2xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-snug\",\n },\n header4: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-snug\",\n },\n subheader1: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-lg\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n subheader2: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text1: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text2: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n link: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n },\n button: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-sm\",\n fontWeight: \"font-medium\",\n letterSpacing: \"tracking-wide\",\n },\n input: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n },\n caption: {\n fontFamily: \"font-roboto\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-wide\",\n },\n },\n interactives: {\n button: {\n padding: { x: \"px-5\", y: \"py-3\" },\n border: {\n width: \"border-0\",\n radius: \"rounded-xl\",\n },\n shadow: \"shadow-xs\",\n custom: \"transition-colors duration-200\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n menu: {\n padding: { x: \"px-1\", y: \"py-1\" },\n border: { width: \"border\", radius: \"rounded-2xl\", style: \"border-solid\" },\n shadow: \"shadow-xs\",\n item: {\n padding: { x: \"px-3\", y: \"py-2\" },\n border: { radius: \"rounded-xl\" },\n },\n },\n dialog: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border\", radius: \"rounded-2xl\", style: \"border-solid\" },\n shadow: \"shadow-xl\",\n },\n popover: {\n padding: { x: \"px-4\", y: \"py-4\" },\n border: { width: \"border\", radius: \"rounded-2xl\", style: \"border-solid\" },\n shadow: \"shadow-lg\",\n },\n tooltip: {\n padding: { x: \"px-2\", y: \"py-1\" },\n border: { width: \"border\", radius: \"rounded-lg\", style: \"border-solid\" },\n shadow: \"shadow-sm\",\n },\n link: {\n padding: { x: \"px-0\", y: \"py-0\" },\n custom: \"underline-offset-4 hover:underline\",\n },\n card: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: {\n width: \"border\",\n radius: \"rounded-2xl\",\n style: \"border-solid\",\n },\n shadow: \"shadow-xs\",\n custom: \"transition-shadow duration-200 hover:shadow-md\",\n },\n input: {\n padding: { x: \"px-4\", y: \"py-3\" },\n border: {\n width: \"border\",\n radius: \"rounded-xl\",\n style: \"border-solid\",\n },\n shadow: \"shadow-none\",\n custom: \"\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n },\n structure: {\n page: { width: \"max-w-6xl\" },\n section: {\n padding: { x: \"px-6\", y: \"py-16\" },\n },\n },\n};\n\nexport const midnight: Theme = {\n id: \"midnight\",\n name: \"Midnight\",\n theme: themeStyles,\n};\n","import type { Theme, ThemeStyle } from \"../../models\";\n\nconst themeStyles: ThemeStyle = {\n colors: {\n light: {\n background: \"#f3fff9\",\n foreground: \"#050505\",\n card: \"#ffffff\",\n cardForeground: \"#050505\",\n popover: \"#ffffff\",\n popoverForeground: \"#050505\",\n primary: \"#ffe600\",\n primaryForeground: \"#050505\",\n secondary: \"#7df9ff\",\n secondaryForeground: \"#050505\",\n muted: \"#e7fff4\",\n mutedForeground: \"#3f3f46\",\n accent: \"#2ff2f2\",\n accentForeground: \"#050505\",\n border: \"#050505\",\n destructive: \"#ff4911\",\n input: \"#050505\",\n ring: \"#050505\",\n chart1: \"#ffe600\",\n chart2: \"#7df9ff\",\n chart3: \"#2ff2f2\",\n chart4: \"#ff4911\",\n chart5: \"#6fffd7\",\n sidebar: \"#ffffff\",\n sidebarForeground: \"#050505\",\n sidebarPrimary: \"#ffe600\",\n sidebarPrimaryForeground: \"#050505\",\n sidebarAccent: \"#2ff2f2\",\n sidebarAccentForeground: \"#050505\",\n sidebarBorder: \"#050505\",\n sidebarRing: \"#050505\",\n shadow2xs: \"2px 2px 0 0 #050505\",\n shadowXs: \"3px 3px 0 0 #050505\",\n shadowSm: \"4px 4px 0 0 #050505\",\n shadowMd: \"6px 6px 0 0 #050505\",\n shadowLg: \"8px 8px 0 0 #050505\",\n shadowXl: \"10px 10px 0 0 #050505\",\n shadow2xl: \"14px 14px 0 0 #050505\",\n },\n dark: {\n background: \"#050505\",\n foreground: \"#6fffd7\",\n card: \"#0a0a0a\",\n cardForeground: \"#6fffd7\",\n popover: \"#0a0a0a\",\n popoverForeground: \"#6fffd7\",\n primary: \"#ffe600\",\n primaryForeground: \"#050505\",\n secondary: \"#7df9ff\",\n secondaryForeground: \"#050505\",\n muted: \"#141414\",\n mutedForeground: \"#a1a1aa\",\n accent: \"#2ff2f2\",\n accentForeground: \"#050505\",\n border: \"#6fffd7\",\n destructive: \"#ff4911\",\n input: \"#6fffd7\",\n ring: \"#6fffd7\",\n chart1: \"#ffe600\",\n chart2: \"#7df9ff\",\n chart3: \"#2ff2f2\",\n chart4: \"#ff4911\",\n chart5: \"#6fffd7\",\n sidebar: \"#050505\",\n sidebarForeground: \"#6fffd7\",\n sidebarPrimary: \"#ffe600\",\n sidebarPrimaryForeground: \"#050505\",\n sidebarAccent: \"#2ff2f2\",\n sidebarAccentForeground: \"#050505\",\n sidebarBorder: \"#6fffd7\",\n sidebarRing: \"#6fffd7\",\n shadow2xs: \"2px 2px 0 0 #6fffd7\",\n shadowXs: \"3px 3px 0 0 #6fffd7\",\n shadowSm: \"4px 4px 0 0 #6fffd7\",\n shadowMd: \"6px 6px 0 0 #6fffd7\",\n shadowLg: \"8px 8px 0 0 #6fffd7\",\n shadowXl: \"10px 10px 0 0 #6fffd7\",\n shadow2xl: \"14px 14px 0 0 #6fffd7\",\n },\n },\n typography: {\n preheader: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-bold\",\n letterSpacing: \"tracking-widest\",\n textTransform: \"uppercase\",\n },\n display: {\n fontFamily: \"font-inter\",\n fontSize: \"text-6xl\",\n fontWeight: \"font-black\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 34, max: 56 },\n },\n header1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-5xl\",\n fontWeight: \"font-black\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 28, max: 48 },\n },\n header2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-4xl\",\n fontWeight: \"font-extrabold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 24, max: 36 },\n },\n header3: {\n fontFamily: \"font-inter\",\n fontSize: \"text-2xl\",\n fontWeight: \"font-extrabold\",\n lineHeight: \"leading-snug\",\n },\n header4: {\n fontFamily: \"font-inter\",\n fontSize: \"text-xl\",\n fontWeight: \"font-bold\",\n lineHeight: \"leading-snug\",\n },\n subheader1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-lg\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-relaxed\",\n },\n subheader2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n },\n text1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-relaxed\",\n },\n text2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-medium\",\n },\n link: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-extrabold\",\n },\n button: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-extrabold\",\n letterSpacing: \"tracking-wide\",\n },\n input: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n },\n caption: {\n fontFamily: \"font-inter\",\n fontSize: \"text-xs\",\n fontWeight: \"font-bold\",\n letterSpacing: \"tracking-wide\",\n textTransform: \"uppercase\",\n },\n },\n highlight: \"marker\",\n interactives: {\n button: {\n padding: { x: \"px-6\", y: \"py-3\" },\n border: {\n width: \"border-2\",\n radius: \"rounded-none\",\n style: \"border-solid\",\n },\n shadow: \"shadow-md\",\n custom:\n \"transition-transform duration-150 ease-out hover:translate-x-1 hover:translate-y-1 hover:shadow-none\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n menu: {\n padding: { x: \"px-1\", y: \"py-1\" },\n border: { width: \"border-2\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-md\",\n item: {\n padding: { x: \"px-3\", y: \"py-2\" },\n border: { radius: \"rounded-none\" },\n },\n },\n dialog: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border-2\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-md\",\n },\n popover: {\n padding: { x: \"px-4\", y: \"py-4\" },\n border: { width: \"border-2\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-md\",\n },\n tooltip: {\n padding: { x: \"px-2\", y: \"py-1\" },\n border: { width: \"border-2\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-md\",\n },\n link: {\n padding: { x: \"px-0\", y: \"py-0\" },\n custom: \"underline decoration-2 underline-offset-4\",\n },\n card: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: {\n width: \"border-2\",\n radius: \"rounded-none\",\n style: \"border-solid\",\n },\n shadow: \"shadow-md\",\n custom:\n \"transition-transform duration-150 ease-out hover:translate-x-1 hover:translate-y-1 hover:shadow-none\",\n },\n input: {\n padding: { x: \"px-4\", y: \"py-3\" },\n border: {\n width: \"border-2\",\n style: \"border-solid\",\n radius: \"rounded-none\",\n },\n shadow: \"shadow-sm\",\n custom: \"\",\n disabled: {\n cursor: \"cursor-not-allowed\",\n opacity: \"opacity-50\",\n },\n },\n },\n structure: {\n page: { width: \"max-w-6xl\" },\n section: {\n padding: { x: \"px-6\", y: \"py-16\" },\n },\n },\n};\n\nexport const neobrutalism: Theme = {\n id: \"neobrutalism\",\n name: \"Neo-Brutalism\",\n theme: themeStyles,\n};\n","import type { Theme, ThemeStyle } from \"../../models\";\n\nconst themeStyles: ThemeStyle = {\n colors: {\n light: {\n background: \"#f4f1ea\",\n foreground: \"#1c1917\",\n card: \"#fffcf7\",\n cardForeground: \"#1c1917\",\n popover: \"#fffcf7\",\n popoverForeground: \"#1c1917\",\n primary: \"#0f766e\",\n primaryForeground: \"#f4fffc\",\n secondary: \"#ebe4d6\",\n secondaryForeground: \"#1c1917\",\n muted: \"#ebe6dc\",\n mutedForeground: \"#57534e\",\n accent: \"#d9f3ee\",\n accentForeground: \"#115e59\",\n destructive: \"#dc2626\",\n border: \"#e0d8cc\",\n input: \"#e0d8cc\",\n ring: \"#0f766e\",\n chart1: \"#0f766e\",\n chart2: \"#0d9488\",\n chart3: \"#14b8a6\",\n chart4: \"#5eead4\",\n chart5: \"#ccfbf1\",\n sidebar: \"#fffcf7\",\n sidebarForeground: \"#1c1917\",\n sidebarPrimary: \"#0f766e\",\n sidebarPrimaryForeground: \"#f4fffc\",\n sidebarAccent: \"#ebe4d6\",\n sidebarAccentForeground: \"#1c1917\",\n sidebarBorder: \"#e0d8cc\",\n sidebarRing: \"#0f766e\",\n shadow2xs: \"0 1px 2px 0 rgb(28 25 23 / 0.04)\",\n shadowXs: \"0 1px 2px 0 rgb(28 25 23 / 0.05)\",\n shadowSm:\n \"0 1px 2px 0 rgb(15 118 110 / 0.08), 0 1px 3px -1px rgb(28 25 23 / 0.08)\",\n shadowMd:\n \"0 6px 16px -4px rgb(28 25 23 / 0.1), 0 2px 6px -2px rgb(15 118 110 / 0.08)\",\n shadowLg:\n \"0 16px 32px -8px rgb(28 25 23 / 0.12), 0 6px 12px -4px rgb(15 118 110 / 0.08)\",\n shadowXl: \"0 24px 48px -12px rgb(28 25 23 / 0.16)\",\n shadow2xl: \"0 32px 64px -16px rgb(28 25 23 / 0.22)\",\n },\n dark: {\n background: \"#12100d\",\n foreground: \"#f4efe6\",\n card: \"#1b1814\",\n cardForeground: \"#f4efe6\",\n popover: \"#1b1814\",\n popoverForeground: \"#f4efe6\",\n primary: \"#2dd4bf\",\n primaryForeground: \"#042f2e\",\n secondary: \"#2a241c\",\n secondaryForeground: \"#f4efe6\",\n muted: \"#221e19\",\n mutedForeground: \"#a8a29e\",\n accent: \"#134e4a\",\n accentForeground: \"#ccfbf1\",\n destructive: \"#f87171\",\n border: \"#2e2922\",\n input: \"#2e2922\",\n ring: \"#2dd4bf\",\n chart1: \"#2dd4bf\",\n chart2: \"#5eead4\",\n chart3: \"#99f6e4\",\n chart4: \"#14b8a6\",\n chart5: \"#0f766e\",\n sidebar: \"#1b1814\",\n sidebarForeground: \"#f4efe6\",\n sidebarPrimary: \"#2dd4bf\",\n sidebarPrimaryForeground: \"#042f2e\",\n sidebarAccent: \"#2a241c\",\n sidebarAccentForeground: \"#f4efe6\",\n sidebarBorder: \"#2e2922\",\n sidebarRing: \"#2dd4bf\",\n shadow2xs: \"0 1px 2px 0 rgb(0 0 0 / 0.28)\",\n shadowXs: \"0 1px 2px 0 rgb(0 0 0 / 0.32)\",\n shadowSm: \"0 1px 2px 0 rgb(0 0 0 / 0.36), 0 1px 3px -1px rgb(0 0 0 / 0.4)\",\n shadowMd: \"0 8px 20px -6px rgb(0 0 0 / 0.48)\",\n shadowLg: \"0 16px 32px -8px rgb(0 0 0 / 0.52)\",\n shadowXl: \"0 24px 48px -10px rgb(0 0 0 / 0.56)\",\n shadow2xl: \"0 32px 64px -12px rgb(0 0 0 / 0.64)\",\n },\n },\n typography: {\n preheader: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-xs\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-widest\",\n textTransform: \"uppercase\",\n },\n display: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-7xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 34, max: 60 },\n },\n header1: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-6xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tighter\",\n fluid: { min: 30, max: 52 },\n },\n header2: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-4xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 24, max: 36 },\n },\n header3: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-2xl\",\n fontWeight: \"font-semibold\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n header4: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-xl\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-snug\",\n },\n subheader1: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-xl\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n subheader2: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-lg\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text1: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text2: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n link: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-base\",\n fontWeight: \"font-medium\",\n },\n button: {\n fontFamily: \"font-montserrat\",\n fontSize: \"text-sm\",\n fontWeight: \"font-medium\",\n letterSpacing: \"tracking-wide\",\n },\n input: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n },\n caption: {\n fontFamily: \"font-source-sans-3\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n lineHeight: \"leading-normal\",\n letterSpacing: \"tracking-wide\",\n },\n },\n interactives: {\n button: {\n padding: { x: \"px-6\", y: \"py-3\" },\n border: {\n width: \"border-0\",\n radius: \"rounded-2xl\",\n },\n shadow: \"shadow-xs\",\n custom: \"transition-colors duration-200\",\n disabled: {\n opacity: \"opacity-50\",\n cursor: \"cursor-not-allowed\",\n },\n },\n menu: {\n padding: { x: \"px-1\", y: \"py-1\" },\n border: { width: \"border\", radius: \"rounded-2xl\", style: \"border-solid\" },\n shadow: \"shadow-xs\",\n item: {\n padding: { x: \"px-3\", y: \"py-2\" },\n border: { radius: \"rounded-xl\" },\n },\n },\n dialog: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border-0\", radius: \"rounded-2xl\" },\n shadow: \"shadow-lg\",\n },\n popover: {\n padding: { x: \"px-4\", y: \"py-4\" },\n border: { width: \"border-0\", radius: \"rounded-2xl\" },\n shadow: \"shadow-md\",\n },\n tooltip: {\n padding: { x: \"px-2\", y: \"py-1\" },\n border: { width: \"border-0\", radius: \"rounded-lg\" },\n shadow: \"shadow-sm\",\n },\n link: {\n padding: { x: \"px-0\", y: \"py-0\" },\n custom: \"underline-offset-4 transition-colors duration-150 hover:underline\",\n },\n card: {\n padding: { x: \"px-8\", y: \"py-8\" },\n border: {\n width: \"border\",\n radius: \"rounded-3xl\",\n style: \"border-solid\",\n },\n shadow: \"shadow-xs\",\n custom: \"transition-shadow duration-200 hover:shadow-lg\",\n },\n input: {\n borderRadius: \"rounded-2xl\",\n padding: { x: \"px-4\", y: \"py-3\" },\n border: {\n width: \"border\",\n style: \"border-solid\",\n radius: \"rounded-2xl\",\n },\n shadow: \"shadow-none\",\n custom: \"transition-shadow duration-150\",\n disabled: {\n cursor: \"cursor-not-allowed\",\n opacity: \"opacity-50\",\n },\n },\n },\n structure: {\n page: { width: \"max-w-6xl\" },\n section: {\n padding: { x: \"px-6\", y: \"py-24\" },\n },\n },\n};\n\nexport const studio: Theme = {\n id: \"studio\",\n name: \"Studio\",\n theme: themeStyles,\n};\n","import type { Theme, ThemeStyle } from \"../../models\";\n\n// Developer-tool look (boat.dev, herdr.dev): hairline 1px rules instead of\n// shadows and rounded cards, square corners, a heavy grotesque headline,\n// Inter body copy and monospace for small UI text. Dark mode is the ink\n// variant with one lavender accent; light mode is near-black on white.\nconst themeStyles: ThemeStyle = {\n colors: {\n light: {\n background: \"#ffffff\",\n foreground: \"#111111\",\n card: \"#ffffff\",\n cardForeground: \"#111111\",\n popover: \"#ffffff\",\n popoverForeground: \"#111111\",\n primary: \"#111111\",\n primaryForeground: \"#ffffff\",\n secondary: \"#ffffff\",\n secondaryForeground: \"#111111\",\n muted: \"#f5f5f5\",\n mutedForeground: \"#5c5c66\",\n accent: \"#f0f0f2\",\n accentForeground: \"#111111\",\n border: \"#dcdce0\",\n destructive: \"#d92d20\",\n input: \"#111111\",\n ring: \"#6d28d9\",\n chart1: \"#111111\",\n chart2: \"#6d28d9\",\n chart3: \"#2f4ad8\",\n chart4: \"#5c5c66\",\n chart5: \"#a1a1aa\",\n sidebar: \"#ffffff\",\n sidebarForeground: \"#111111\",\n sidebarPrimary: \"#111111\",\n sidebarPrimaryForeground: \"#ffffff\",\n sidebarAccent: \"#f0f0f2\",\n sidebarAccentForeground: \"#111111\",\n sidebarBorder: \"#dcdce0\",\n sidebarRing: \"#6d28d9\",\n shadow2xs: \"none\",\n shadowXs: \"none\",\n shadowSm: \"none\",\n shadowMd: \"none\",\n shadowLg: \"none\",\n shadowXl: \"none\",\n shadow2xl: \"none\",\n },\n dark: {\n background: \"#17171a\",\n foreground: \"#eae8ee\",\n card: \"#1c1c20\",\n cardForeground: \"#eae8ee\",\n popover: \"#1c1c20\",\n popoverForeground: \"#eae8ee\",\n primary: \"#cba6f7\",\n primaryForeground: \"#17171a\",\n secondary: \"#17171a\",\n secondaryForeground: \"#eae8ee\",\n muted: \"#222226\",\n mutedForeground: \"#9b99a3\",\n accent: \"#26262b\",\n accentForeground: \"#eae8ee\",\n border: \"#2e2e34\",\n destructive: \"#f38ba8\",\n input: \"#3a3a41\",\n ring: \"#cba6f7\",\n chart1: \"#cba6f7\",\n chart2: \"#a6e3a1\",\n chart3: \"#89b4fa\",\n chart4: \"#f9e2af\",\n chart5: \"#f38ba8\",\n sidebar: \"#17171a\",\n sidebarForeground: \"#eae8ee\",\n sidebarPrimary: \"#cba6f7\",\n sidebarPrimaryForeground: \"#17171a\",\n sidebarAccent: \"#26262b\",\n sidebarAccentForeground: \"#eae8ee\",\n sidebarBorder: \"#2e2e34\",\n sidebarRing: \"#cba6f7\",\n shadow2xs: \"none\",\n shadowXs: \"none\",\n shadowSm: \"none\",\n shadowMd: \"none\",\n shadowLg: \"none\",\n shadowXl: \"none\",\n shadow2xl: \"none\",\n },\n },\n typography: {\n preheader: {\n fontFamily: \"font-jetbrains-mono\",\n fontSize: \"text-xs\",\n fontWeight: \"font-normal\",\n letterSpacing: \"tracking-widest\",\n textTransform: \"uppercase\",\n },\n display: {\n fontFamily: \"font-archivo\",\n fontSize: \"text-7xl\",\n fontWeight: \"font-black\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 36, max: 64 },\n },\n header1: {\n fontFamily: \"font-archivo\",\n fontSize: \"text-5xl\",\n fontWeight: \"font-extrabold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 28, max: 44 },\n },\n header2: {\n fontFamily: \"font-archivo\",\n fontSize: \"text-3xl\",\n fontWeight: \"font-extrabold\",\n lineHeight: \"leading-tight\",\n letterSpacing: \"tracking-tight\",\n fluid: { min: 22, max: 32 },\n },\n header3: {\n fontFamily: \"font-archivo\",\n fontSize: \"text-xl\",\n fontWeight: \"font-bold\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n header4: {\n fontFamily: \"font-archivo\",\n fontSize: \"text-lg\",\n fontWeight: \"font-bold\",\n lineHeight: \"leading-snug\",\n letterSpacing: \"tracking-tight\",\n },\n subheader1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-lg\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n subheader2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text1: {\n fontFamily: \"font-inter\",\n fontSize: \"text-base\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n text2: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n link: {\n fontFamily: \"font-inter\",\n fontSize: \"text-sm\",\n fontWeight: \"font-medium\",\n },\n button: {\n fontFamily: \"font-jetbrains-mono\",\n fontSize: \"text-xs\",\n fontWeight: \"font-medium\",\n letterSpacing: \"tracking-wider\",\n textTransform: \"uppercase\",\n },\n input: {\n fontFamily: \"font-jetbrains-mono\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n },\n code: {\n fontFamily: \"font-jetbrains-mono\",\n fontSize: \"text-sm\",\n fontWeight: \"font-normal\",\n lineHeight: \"leading-relaxed\",\n },\n caption: {\n fontFamily: \"font-jetbrains-mono\",\n fontSize: \"text-xs\",\n fontWeight: \"font-normal\",\n letterSpacing: \"tracking-wider\",\n textTransform: \"uppercase\",\n },\n },\n highlight: \"marker\",\n interactives: {\n button: {\n padding: { x: \"px-5\", y: \"py-3\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n custom: \"transition-colors\",\n disabled: { opacity: \"opacity-50\", cursor: \"cursor-not-allowed\" },\n },\n menu: {\n padding: { x: \"px-1\", y: \"py-1\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n item: {\n padding: { x: \"px-3\", y: \"py-2\" },\n border: { radius: \"rounded-none\" },\n },\n },\n dialog: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n },\n popover: {\n padding: { x: \"px-4\", y: \"py-4\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n },\n tooltip: {\n padding: { x: \"px-2\", y: \"py-1\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n },\n link: {\n padding: { x: \"px-0\", y: \"py-0\" },\n custom: \"underline-offset-4 hover:underline\",\n },\n card: {\n padding: { x: \"px-6\", y: \"py-6\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n custom: \"\",\n },\n input: {\n padding: { x: \"px-4\", y: \"py-3\" },\n border: { width: \"border\", radius: \"rounded-none\", style: \"border-solid\" },\n shadow: \"shadow-none\",\n custom: \"\",\n disabled: { cursor: \"cursor-not-allowed\", opacity: \"opacity-50\" },\n },\n },\n structure: {\n page: { width: \"max-w-6xl\" },\n section: {\n dividers: true,\n padding: { x: \"px-6\", y: \"py-20\" },\n },\n },\n};\n\nexport const terminal: Theme = {\n id: \"terminal\",\n name: \"Terminal\",\n theme: themeStyles,\n};\n","import type { Theme } from \"../../models\";\nimport { classic } from \"./classic\";\nimport { editorial } from \"./editorial\";\nimport { midnight } from \"./midnight\";\nimport { neobrutalism } from \"./neobrutalism\";\nimport { studio } from \"./studio\";\nimport { terminal } from \"./terminal\";\n\nexport const themes: Theme[] = [\n classic,\n studio,\n midnight,\n editorial,\n neobrutalism,\n terminal,\n];\n","import convert, { HSL } from \"color-convert\";\nimport type { Theme } from \"../models\";\n\nfunction formatHSL(hsl: HSL): string {\n return `${hsl[0]} ${hsl[1]}% ${hsl[2]}%`;\n}\n\nconst SHORT_OR_LONG_HEX = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;\nconst HEX_WITH_ALPHA = /^#([0-9a-f]{4}|[0-9a-f]{8})$/i;\nconst CSS_COLOR_FUNCTION =\n /^(oklch|oklab|lab|lch|hwb|hsla?|rgba?|color)\\(\\s*[-+0-9a-z%.,/\\s]+\\)$/i;\n\n/**\n * Turns a theme colour into a CSS colour value, or \"\" when it isn't a\n * colour we can use. Hex (the stored format) is converted to hsl();\n * modern CSS colour functions such as `oklch(...)` are passed through.\n */\nexport function resolveThemeColor(value?: string): string {\n const color = value?.trim();\n if (!color) return \"\";\n if (SHORT_OR_LONG_HEX.test(color)) {\n return `hsl(${formatHSL(convert.hex.hsl(color.replace(\"#\", \"\")))})`;\n }\n if (HEX_WITH_ALPHA.test(color) || CSS_COLOR_FUNCTION.test(color)) return color;\n return \"\";\n}\n\n/**\n * Generates full CSS color values for the custom properties every primitive\n * reads. Full colors (rather than bare HSL channels) let the renderer coexist\n * with Tailwind v4 hosts whose semantic utilities use `var(--primary)` while\n * still accepting CourseLit-derived hex theme data.\n *\n * Callers rendering more than one theme in a document should pass a unique\n * selector so one renderer cannot overwrite another renderer's variables.\n */\nexport function generateThemeStyles(theme: Theme, selector = \".pb-theme\"): string {\n const colors = theme?.theme?.colors;\n if (!colors) {\n return \"\";\n }\n\n const { light, dark } = colors;\n if (!light || !dark) {\n return \"\";\n }\n\n const block = (c: typeof light) => `\n --background: ${resolveThemeColor(c.background)};\n --foreground: ${resolveThemeColor(c.foreground)};\n --card: ${resolveThemeColor(c.card)};\n --card-foreground: ${resolveThemeColor(c.cardForeground)};\n --popover: ${resolveThemeColor(c.popover)};\n --popover-foreground: ${resolveThemeColor(c.popoverForeground)};\n --primary: ${resolveThemeColor(c.primary)};\n --primary-foreground: ${resolveThemeColor(c.primaryForeground)};\n --secondary: ${resolveThemeColor(c.secondary)};\n --secondary-foreground: ${resolveThemeColor(c.secondaryForeground)};\n --muted: ${resolveThemeColor(c.muted)};\n --muted-foreground: ${resolveThemeColor(c.mutedForeground)};\n --accent: ${resolveThemeColor(c.accent)};\n --accent-foreground: ${resolveThemeColor(c.accentForeground)};\n --destructive: ${resolveThemeColor(c.destructive)};\n --border: ${resolveThemeColor(c.border)};\n --input: ${resolveThemeColor(c.input)};\n --ring: ${resolveThemeColor(c.ring)};\n --chart-1: ${resolveThemeColor(c.chart1)};\n --chart-2: ${resolveThemeColor(c.chart2)};\n --chart-3: ${resolveThemeColor(c.chart3)};\n --chart-4: ${resolveThemeColor(c.chart4)};\n --chart-5: ${resolveThemeColor(c.chart5)};\n --sidebar-background: ${resolveThemeColor(c.sidebar)};\n --sidebar-foreground: ${resolveThemeColor(c.sidebarForeground)};\n --sidebar-primary: ${resolveThemeColor(c.sidebarPrimary)};\n --sidebar-primary-foreground: ${resolveThemeColor(c.sidebarPrimaryForeground)};\n --sidebar-accent: ${resolveThemeColor(c.sidebarAccent)};\n --sidebar-accent-foreground: ${resolveThemeColor(c.sidebarAccentForeground)};\n --sidebar-border: ${resolveThemeColor(c.sidebarBorder)};\n --sidebar-ring: ${resolveThemeColor(c.sidebarRing)};\n --shadow-2xs: ${c.shadow2xs ?? \"\"};\n --shadow-xs: ${c.shadowXs ?? \"\"};\n --shadow-sm: ${c.shadowSm ?? \"\"};\n --shadow-md: ${c.shadowMd ?? \"\"};\n --shadow-lg: ${c.shadowLg ?? \"\"};\n --shadow-xl: ${c.shadowXl ?? \"\"};\n --shadow-2xl: ${c.shadow2xl ?? \"\"};\n `;\n\n return `\n ${selector} {\n ${block(light)}\n }\n ${selector}:is(.dark, .dark *) {\n ${block(dark)}\n }\n `;\n}\n","/**\n * Theme helpers that are safe to call from React Server Components and light\n * enough to import from client components (the site's chat widget does).\n */\nimport type { Theme } from \"../models\";\nimport { themes } from \"../primitives/themes\";\n\nexport { generateThemeStyles } from \"../renderer/generate-theme-styles\";\nexport { themes };\n\n/**\n * Picks the theme a site paints with: a custom `themeStyle` wins, then the\n * stock theme named by `themeId`, then the default theme.\n */\nexport function resolveTheme(\n themeId: string | null,\n themeStyle: Record<string, unknown> | null,\n): Theme {\n if (themeStyle) {\n return {\n id: themeId ?? \"custom\",\n name: \"Custom\",\n theme: themeStyle as unknown as Theme[\"theme\"],\n };\n }\n\n return themes.find((theme) => theme.id === themeId) ?? themes[0];\n}\n"],"mappings":"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","names":["themeStyles","themeStyles","themeStyles","themeStyles","themeStyles"]}
@@ -0,0 +1,77 @@
1
+ import { T as ThemeStyle } from './theme-style-5_AGy-4V.js';
2
+
3
+ type BlendMode = "normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity";
4
+ type BackgroundRepeat = "no-repeat" | "repeat" | "repeat-x" | "repeat-y" | "space" | "round";
5
+ /**
6
+ * CSS `background-attachment`.
7
+ * - `scroll` (default): background moves with the section / page
8
+ * - `fixed`: background is pinned to the viewport so content scrolls
9
+ * over a static surface (classic parallax / “hero still” look)
10
+ * - `local`: background scrolls with the element’s own overflow
11
+ */
12
+ type BackgroundAttachment = "scroll" | "fixed" | "local";
13
+ interface SectionBackgroundOverlay {
14
+ color: string;
15
+ colorDark?: string;
16
+ blendMode: BlendMode;
17
+ opacity: number;
18
+ }
19
+ type SectionBackground = {
20
+ type: "color" | "image" | "gradient";
21
+ backgroundColor?: string;
22
+ backgroundColorDark?: string;
23
+ backgroundImage?: string;
24
+ backgroundImageDark?: string;
25
+ backgroundSize?: string;
26
+ backgroundPosition?: string;
27
+ backgroundRepeat?: BackgroundRepeat;
28
+ /**
29
+ * When `"fixed"`, the image/pattern stays still relative to the
30
+ * viewport while the page scrolls. Most useful on image and pattern
31
+ * (gradient) backgrounds; ignored for solid color fills.
32
+ */
33
+ backgroundAttachment?: BackgroundAttachment;
34
+ maskImage?: string;
35
+ gradientBackgroundSize?: string;
36
+ gradientBackgroundPosition?: string;
37
+ gradientBackgroundRepeat?: BackgroundRepeat;
38
+ gradientMaskImage?: string;
39
+ blur?: number;
40
+ overlay?: SectionBackgroundOverlay;
41
+ media?: Record<string, unknown>;
42
+ };
43
+
44
+ /**
45
+ * Settings shared by every block, mirroring the common layout controls
46
+ * (max width / vertical padding / background) that CourseLit's theme system
47
+ * exposes to each section.
48
+ */
49
+ interface WidgetDefaultSettings {
50
+ cssId?: string;
51
+ verticalPadding?: ThemeStyle["structure"]["section"]["padding"]["y"];
52
+ maxWidth?: ThemeStyle["structure"]["page"]["width"];
53
+ background?: SectionBackground;
54
+ /** Selected layout id from the block's `layouts`; first layout when unset. */
55
+ layout?: string;
56
+ }
57
+ interface PageData extends Record<string, unknown> {
58
+ pageType?: string;
59
+ /** Branding from site settings. Required so a host can't silently drop
60
+ * it; pass `null` for an unset one. Hosts build these with
61
+ * `toSiteBranding` from `@frontlit/api-contract`. */
62
+ siteTitle: string | null;
63
+ siteSubtitle: string | null;
64
+ siteLogoUrl: string | null;
65
+ siteLogoAlt: string | null;
66
+ /** The page's team (public id) and slug, plus the base URL of FrontLit's
67
+ * public API — threaded through so blocks that make unauthenticated
68
+ * public calls (e.g. the email-form block's lead capture, architecture.md
69
+ * §10.2) know where to send them. Left unset in contexts with no live
70
+ * backend (e.g. a bare component-library preview), in which case those
71
+ * blocks degrade to a local-only success state. */
72
+ teamId?: string;
73
+ pageSlug?: string;
74
+ publicApiBaseUrl?: string;
75
+ }
76
+
77
+ export type { PageData as P, WidgetDefaultSettings as W };
package/dist/styles.css CHANGED
@@ -245,6 +245,34 @@
245
245
  font-style: normal;
246
246
  font-display: swap;
247
247
  }
248
+ @font-face {
249
+ font-family: Archivo;
250
+ src: url("./fonts/archivo/archivo-latin-variable.woff2") format("woff2");
251
+ font-weight: 100 900;
252
+ font-style: normal;
253
+ font-display: swap;
254
+ }
255
+ @font-face {
256
+ font-family: "JetBrains Mono";
257
+ src: url("./fonts/jetbrains-mono/jetbrains-mono-latin-variable.woff2") format("woff2");
258
+ font-weight: 100 800;
259
+ font-style: normal;
260
+ font-display: swap;
261
+ }
262
+ @font-face {
263
+ font-family: "Hanken Grotesk";
264
+ src: url("./fonts/hanken-grotesk/hanken-grotesk-latin-variable.woff2") format("woff2");
265
+ font-weight: 100 900;
266
+ font-style: normal;
267
+ font-display: swap;
268
+ }
269
+ @font-face {
270
+ font-family: "Spline Sans Mono";
271
+ src: url("./fonts/spline-sans-mono/spline-sans-mono-latin-variable.woff2") format("woff2");
272
+ font-weight: 300 700;
273
+ font-style: normal;
274
+ font-display: swap;
275
+ }
248
276
  @layer theme, base, components, utilities;
249
277
  @layer theme {
250
278
  :root, :host {
@@ -593,6 +621,14 @@
593
621
  "Times New Roman", Times, serif;
594
622
  --font-inter: var(--font-inter, Inter), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
595
623
  "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
624
+ --font-archivo: var(--font-archivo, Archivo), ui-sans-serif, system-ui, sans-serif,
625
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
626
+ --font-jetbrains-mono: var(--font-jetbrains-mono, "JetBrains Mono"), ui-monospace, SFMono-Regular, Menlo,
627
+ Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
628
+ --font-hanken-grotesk: var(--font-hanken-grotesk, "Hanken Grotesk"), ui-sans-serif, system-ui, sans-serif,
629
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
630
+ --font-spline-sans-mono: var(--font-spline-sans-mono, "Spline Sans Mono"), ui-monospace, SFMono-Regular,
631
+ Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
596
632
  --font-alegreya: var(--font-alegreya, Alegreya), ui-serif, Georgia, Cambria, "Times New Roman",
597
633
  Times, serif;
598
634
  --font-roboto: var(--font-roboto, Roboto), ui-sans-serif, system-ui, sans-serif,
@@ -770,6 +806,9 @@
770
806
  }
771
807
  }
772
808
  @layer utilities {
809
+ .\@container {
810
+ container-type: inline-size;
811
+ }
773
812
  .pointer-events-auto {
774
813
  pointer-events: auto;
775
814
  }
@@ -931,6 +970,9 @@
931
970
  max-width: 96rem;
932
971
  }
933
972
  }
973
+ .m-1\.5 {
974
+ margin: calc(var(--spacing) * 1.5);
975
+ }
934
976
  .-mx-1 {
935
977
  margin-inline: calc(var(--spacing) * -1);
936
978
  }
@@ -985,9 +1027,6 @@
985
1027
  .mb-1 {
986
1028
  margin-bottom: var(--spacing);
987
1029
  }
988
- .mb-2 {
989
- margin-bottom: calc(var(--spacing) * 2);
990
- }
991
1030
  .mb-3 {
992
1031
  margin-bottom: calc(var(--spacing) * 3);
993
1032
  }
@@ -1213,8 +1252,8 @@
1213
1252
  .w-12 {
1214
1253
  width: calc(var(--spacing) * 12);
1215
1254
  }
1216
- .w-20 {
1217
- width: calc(var(--spacing) * 20);
1255
+ .w-28 {
1256
+ width: calc(var(--spacing) * 28);
1218
1257
  }
1219
1258
  .w-40 {
1220
1259
  width: calc(var(--spacing) * 40);
@@ -1258,11 +1297,11 @@
1258
1297
  .max-w-6xl {
1259
1298
  max-width: var(--container-6xl);
1260
1299
  }
1261
- .max-w-\[390px\] {
1262
- max-width: 390px;
1300
+ .max-w-\[calc\(392px_\+_var\(--pb-scrollbar\,0px\)\)\] {
1301
+ max-width: calc(392px + var(--pb-scrollbar,0px));
1263
1302
  }
1264
- .max-w-\[768px\] {
1265
- max-width: 768px;
1303
+ .max-w-\[calc\(770px_\+_var\(--pb-scrollbar\,0px\)\)\] {
1304
+ max-width: calc(770px + var(--pb-scrollbar,0px));
1266
1305
  }
1267
1306
  .max-w-full {
1268
1307
  max-width: 100%;
@@ -1534,15 +1573,9 @@
1534
1573
  --tw-scale-z: 150%;
1535
1574
  scale: var(--tw-scale-x) var(--tw-scale-y);
1536
1575
  }
1537
- .rotate-0 {
1538
- rotate: 0deg;
1539
- }
1540
1576
  .rotate-180 {
1541
1577
  rotate: 180deg;
1542
1578
  }
1543
- .rotate-\[-90deg\] {
1544
- rotate: -90deg;
1545
- }
1546
1579
  .transform {
1547
1580
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
1548
1581
  }
@@ -1576,6 +1609,9 @@
1576
1609
  .list-disc {
1577
1610
  list-style-type: disc;
1578
1611
  }
1612
+ .list-none {
1613
+ list-style-type: none;
1614
+ }
1579
1615
  .appearance-none {
1580
1616
  appearance: none;
1581
1617
  }
@@ -1741,6 +1777,9 @@
1741
1777
  .overflow-visible {
1742
1778
  overflow: visible;
1743
1779
  }
1780
+ .overflow-x-auto {
1781
+ overflow-x: auto;
1782
+ }
1744
1783
  .overflow-x-hidden {
1745
1784
  overflow-x: hidden;
1746
1785
  }
@@ -1897,6 +1936,9 @@
1897
1936
  border-color: color-mix(in oklab, var(--border) 80%, transparent);
1898
1937
  }
1899
1938
  }
1939
+ .border-destructive {
1940
+ border-color: var(--destructive);
1941
+ }
1900
1942
  .border-destructive\/30 {
1901
1943
  border-color: var(--destructive);
1902
1944
  @supports (color: color-mix(in lab, red, red)) {
@@ -1954,6 +1996,12 @@
1954
1996
  .border-transparent {
1955
1997
  border-color: transparent;
1956
1998
  }
1999
+ .\[background-color\:var\(--pb-bg\)\] {
2000
+ background-color: var(--pb-bg);
2001
+ }
2002
+ .\[background-color\:var\(--pb-overlay\)\] {
2003
+ background-color: var(--pb-overlay);
2004
+ }
1957
2005
  .bg-accent {
1958
2006
  background-color: var(--accent);
1959
2007
  }
@@ -2849,6 +2897,9 @@
2849
2897
  --tw-gradient-position: to top in oklab;
2850
2898
  background-image: linear-gradient(var(--tw-gradient-stops));
2851
2899
  }
2900
+ .\[background-image\:var\(--pb-bg-image\)\] {
2901
+ background-image: var(--pb-bg-image);
2902
+ }
2852
2903
  .from-black\/70 {
2853
2904
  --tw-gradient-from: color-mix(in srgb, #000 70%, transparent);
2854
2905
  @supports (color: color-mix(in lab, red, red)) {
@@ -2876,6 +2927,9 @@
2876
2927
  --tw-gradient-to: transparent;
2877
2928
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2878
2929
  }
2930
+ .\[box-decoration-break\:clone\] {
2931
+ box-decoration-break: clone;
2932
+ }
2879
2933
  .fill-current {
2880
2934
  fill: currentcolor;
2881
2935
  }
@@ -3068,6 +3122,9 @@
3068
3122
  .px-64 {
3069
3123
  padding-inline: calc(var(--spacing) * 64);
3070
3124
  }
3125
+ .px-\[0\.15em\] {
3126
+ padding-inline: 0.15em;
3127
+ }
3071
3128
  .py-0 {
3072
3129
  padding-block: 0px;
3073
3130
  }
@@ -3222,14 +3279,26 @@
3222
3279
  font-family: var(--font-alegreya, Alegreya), ui-serif, Georgia, Cambria, "Times New Roman",
3223
3280
  Times, serif;
3224
3281
  }
3282
+ .font-archivo {
3283
+ font-family: var(--font-archivo, Archivo), ui-sans-serif, system-ui, sans-serif,
3284
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
3285
+ }
3225
3286
  .font-bebas-neue {
3226
3287
  font-family: var(--font-bebas-neue, "Bebas Neue"), ui-sans-serif, system-ui, sans-serif,
3227
3288
  "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
3228
3289
  }
3290
+ .font-hanken-grotesk {
3291
+ font-family: var(--font-hanken-grotesk, "Hanken Grotesk"), ui-sans-serif, system-ui, sans-serif,
3292
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
3293
+ }
3229
3294
  .font-inter {
3230
3295
  font-family: var(--font-inter, Inter), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
3231
3296
  "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
3232
3297
  }
3298
+ .font-jetbrains-mono {
3299
+ font-family: var(--font-jetbrains-mono, "JetBrains Mono"), ui-monospace, SFMono-Regular, Menlo,
3300
+ Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
3301
+ }
3233
3302
  .font-lato {
3234
3303
  font-family: var(--font-lato, Lato), ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
3235
3304
  "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@@ -3308,6 +3377,10 @@
3308
3377
  font-family: var(--font-source-serif-4, "Source Serif 4"), ui-serif, Georgia, Cambria,
3309
3378
  "Times New Roman", Times, serif;
3310
3379
  }
3380
+ .font-spline-sans-mono {
3381
+ font-family: var(--font-spline-sans-mono, "Spline Sans Mono"), ui-monospace, SFMono-Regular,
3382
+ Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
3383
+ }
3311
3384
  .font-work-sans {
3312
3385
  font-family: var(--font-work-sans, "Work Sans"), ui-sans-serif, system-ui, sans-serif,
3313
3386
  "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
@@ -3370,6 +3443,12 @@
3370
3443
  .text-\[11px\] {
3371
3444
  font-size: 11px;
3372
3445
  }
3446
+ .text-\[length\:var\(--pb-theme-size\)\] {
3447
+ font-size: var(--pb-theme-size);
3448
+ }
3449
+ .text-\[length\:var\(--pb-title-mobile\)\] {
3450
+ font-size: var(--pb-title-mobile);
3451
+ }
3373
3452
  .leading-5 {
3374
3453
  --tw-leading: calc(var(--spacing) * 5);
3375
3454
  line-height: calc(var(--spacing) * 5);
@@ -3470,6 +3549,9 @@
3470
3549
  --tw-tracking: var(--tracking-widest);
3471
3550
  letter-spacing: var(--tracking-widest);
3472
3551
  }
3552
+ .text-balance {
3553
+ text-wrap: balance;
3554
+ }
3473
3555
  .break-words {
3474
3556
  overflow-wrap: break-word;
3475
3557
  }
@@ -3485,6 +3567,9 @@
3485
3567
  .whitespace-nowrap {
3486
3568
  white-space: nowrap;
3487
3569
  }
3570
+ .whitespace-pre {
3571
+ white-space: pre;
3572
+ }
3488
3573
  .text-accent-foreground {
3489
3574
  color: var(--accent-foreground);
3490
3575
  }
@@ -6600,6 +6685,12 @@
6600
6685
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
6601
6686
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
6602
6687
  }
6688
+ .focus\:ring-destructive\/30:focus {
6689
+ --tw-ring-color: var(--destructive);
6690
+ @supports (color: color-mix(in lab, red, red)) {
6691
+ --tw-ring-color: color-mix(in oklab, var(--destructive) 30%, transparent);
6692
+ }
6693
+ }
6603
6694
  .focus\:ring-red-500:focus {
6604
6695
  --tw-ring-color: var(--color-red-500);
6605
6696
  }
@@ -8370,6 +8461,9 @@
8370
8461
  font-size: var(--text-sm);
8371
8462
  line-height: var(--tw-leading, var(--text-sm--line-height));
8372
8463
  }
8464
+ .md\:text-\[length\:var\(--pb-title-tablet\)\] {
8465
+ font-size: var(--pb-title-tablet);
8466
+ }
8373
8467
  }
8374
8468
  @media (width >= 64rem) {
8375
8469
  .lg\:\!block {
@@ -8462,12 +8556,21 @@
8462
8556
  font-size: var(--text-xl);
8463
8557
  line-height: var(--tw-leading, var(--text-xl--line-height));
8464
8558
  }
8559
+ .lg\:text-\[length\:var\(--pb-title-desktop\)\] {
8560
+ font-size: var(--pb-title-desktop);
8561
+ }
8465
8562
  }
8466
8563
  @media (width >= 80rem) {
8467
8564
  .xl\:inline {
8468
8565
  display: inline;
8469
8566
  }
8470
8567
  }
8568
+ .dark\:\[background-color\:var\(--pb-bg-dark\,var\(--pb-bg\)\)\]:is(.dark *) {
8569
+ background-color: var(--pb-bg-dark,var(--pb-bg));
8570
+ }
8571
+ .dark\:\[background-color\:var\(--pb-overlay-dark\,var\(--pb-overlay\)\)\]:is(.dark *) {
8572
+ background-color: var(--pb-overlay-dark,var(--pb-overlay));
8573
+ }
8471
8574
  .dark\:bg-amber-50:is(.dark *) {
8472
8575
  background-color: var(--color-amber-50);
8473
8576
  }
@@ -9194,6 +9297,9 @@
9194
9297
  .dark\:bg-zinc-950:is(.dark *) {
9195
9298
  background-color: var(--color-zinc-950);
9196
9299
  }
9300
+ .dark\:\[background-image\:var\(--pb-bg-image-dark\,var\(--pb-bg-image\)\)\]:is(.dark *) {
9301
+ background-image: var(--pb-bg-image-dark,var(--pb-bg-image));
9302
+ }
9197
9303
  .dark\:text-amber-50:is(.dark *) {
9198
9304
  color: var(--color-amber-50);
9199
9305
  }
@@ -17,6 +17,14 @@ interface Typography {
17
17
  textTransform?: TextTransform;
18
18
  textDecoration?: TextDecoration;
19
19
  textOverflow?: TextOverflow;
20
+ /**
21
+ * Fluid size in px: scales from `min` on a phone to `max` on a desktop
22
+ * and overrides `fontSize`. Honoured by the heading levels.
23
+ */
24
+ fluid?: {
25
+ min: number;
26
+ max: number;
27
+ };
20
28
  }
21
29
  interface Border {
22
30
  width?: "border" | "border-0" | "border-2" | "border-4" | "border-8";
@@ -100,6 +108,8 @@ interface ThemeStyle {
100
108
  };
101
109
  typography: {
102
110
  preheader: Typography;
111
+ /** Hero-sized headline. Optional for older themes; falls back to `header1`. */
112
+ display?: Typography;
103
113
  header1: Typography;
104
114
  header2: Typography;
105
115
  header3: Typography;
@@ -112,7 +122,15 @@ interface ThemeStyle {
112
122
  button: Typography;
113
123
  input: Typography;
114
124
  caption: Typography;
125
+ /** Code snippets. Optional; defaults to JetBrains Mono. */
126
+ code?: Typography;
115
127
  };
128
+ /**
129
+ * How words wrapped in *asterisks* in a block title stand out: in the
130
+ * primary colour ("color", the default) or on a primary-coloured marker
131
+ * ("marker") for themes whose primary is close to the text colour.
132
+ */
133
+ highlight?: "color" | "marker";
116
134
  interactives: {
117
135
  button: {
118
136
  padding?: Padding;
@@ -152,6 +170,8 @@ interface ThemeStyle {
152
170
  width: "max-w-2xl" | "max-w-3xl" | "max-w-4xl" | "max-w-5xl" | "max-w-6xl";
153
171
  };
154
172
  section: {
173
+ /** Draw a 1px hairline between sections. */
174
+ dividers?: boolean;
155
175
  padding: {
156
176
  x: "px-0" | "px-4" | "px-6" | "px-8" | "px-10" | "px-12" | "px-16" | "px-20" | "px-24" | "px-32" | "px-40" | "px-48" | "px-56" | "px-64";
157
177
  y: "py-0" | "py-4" | "py-6" | "py-8" | "py-10" | "py-12" | "py-16" | "py-20" | "py-24" | "py-32" | "py-40" | "py-48" | "py-56" | "py-64";