doccupine 0.0.37 → 0.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/templates/app/theme.d.ts +1 -1
- package/dist/templates/app/theme.js +8 -0
- package/dist/templates/mdx/deployment.mdx.d.ts +1 -1
- package/dist/templates/mdx/deployment.mdx.js +33 -58
- package/dist/templates/package.js +6 -6
- package/dist/templates/theme.js +4 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -767,7 +767,7 @@ ${indexMDX
|
|
|
767
767
|
? `export const metadata: Metadata = {
|
|
768
768
|
title: \`\${config.name ? config.name + " -" : "Doccupine -"} ${indexMDX.title}\`,
|
|
769
769
|
description: \`${indexMDX.description ? indexMDX.description : '${config.description ? config.description : "Generated with Doccupine"}'}\`,
|
|
770
|
-
icons: \`${indexMDX.icon ? indexMDX.icon :
|
|
770
|
+
icons: \`${indexMDX.icon ? indexMDX.icon : '\${config.icon || "https://doccupine.com/favicon.ico"}'}\`,
|
|
771
771
|
openGraph: {
|
|
772
772
|
title: \`\${config.name ? config.name + " -" : "Doccupine -"} ${indexMDX.title}\`,
|
|
773
773
|
description: \`${indexMDX.description ? indexMDX.description : '${config.description ? config.description : "Generated with Doccupine"}'}\`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const themeTemplate = "\"use client\";\nimport customThemeJson from \"@/theme.json\";\n\ninterface CustomTheme {\n default?: Partial<Colors>;\n dark?: Partial<Colors>;\n}\n\nconst customTheme = customThemeJson as CustomTheme;\n\nexport const breakpoints: Breakpoints = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1440,\n xxxl: 1920,\n};\n\nexport function mq(minWidth: keyof Breakpoints) {\n return `@media screen and (min-width: ${breakpoints[minWidth]}px)`;\n}\n\nexport const spacing: Spacing = {\n maxWidth: { xs: \"1280px\", xxxl: \"1440px\" },\n padding: { xs: \"20px\", lg: \"40px\" },\n radius: { xs: \"6px\", lg: \"12px\", xl: \"30px\" },\n gridGap: { xs: \"20px\", lg: \"40px\" },\n};\n\nexport const colors: Colors = {\n primaryLight: \"#d1d5db\",\n primary: \"#6b7280\",\n primaryDark: \"#374151\",\n secondaryLight: \"#c4b5fd\",\n secondary: \"#8b5cf6\",\n secondaryDark: \"#5b21b6\",\n tertiaryLight: \"#86efac\",\n tertiary: \"#22c55e\",\n tertiaryDark: \"#15803d\",\n grayLight: \"#e5e7eb\",\n gray: \"#9ca3af\",\n grayDark: \"#4b5563\",\n success: \"#84cc16\",\n error: \"#ef4444\",\n warning: \"#eab308\",\n info: \"#06b6d4\",\n dark: \"#000000\",\n light: \"#ffffff\",\n ...(customTheme.default ? (customTheme.default as Partial<Colors>) : {}),\n};\n\nexport const colorsDark: Colors = {\n primaryLight: \"#9ca3af\",\n primary: \"#6b7280\",\n primaryDark: \"#374151\",\n secondaryLight: \"#ddd6fe\",\n secondary: \"#a78bfa\",\n secondaryDark: \"#7c3aed\",\n tertiaryLight: \"#6ee7b7\",\n tertiary: \"#10b981\",\n tertiaryDark: \"#065f46\",\n grayLight: \"#1a1a1a\",\n gray: \"#454444\",\n grayDark: \"#808080\",\n success: \"#84cc16\",\n error: \"#ef4444\",\n warning: \"#eab308\",\n info: \"#06b6d4\",\n dark: \"#ffffff\",\n light: \"#000000\",\n ...(customTheme.dark ? (customTheme.dark as Partial<Colors>) : {}),\n};\n\nexport const shadows: Shadows = {\n xs: \"0px 4px 4px 0px rgba(18, 18, 18, 0.04), 0px 1px 3px 0px rgba(39, 41, 45, 0.02)\",\n sm: \"0px 4px 4px 0px rgba(18, 18, 18, 0.08), 0px 1px 3px 0px rgba(39, 41, 45, 0.04)\",\n md: \"0px 8px 8px 0px rgba(18, 18, 18, 0.16), 0px 2px 3px 0px rgba(39, 41, 45, 0.06)\",\n lg: \"0px 16px 24px 0px rgba(18, 18, 18, 0.20), 0px 2px 3px 0px rgba(39, 41, 45, 0.08)\",\n xl: \"0px 24px 32px 0px rgba(18, 18, 18, 0.24), 0px 2px 3px 0px rgba(39, 41, 45, 0.12)\",\n};\n\nexport const shadowsDark: Shadows = {\n xs: \"0px 4px 4px 0px rgba(255, 255, 255, 0.04), 0px 1px 3px 0px rgba(255, 255, 255, 0.02)\",\n sm: \"0px 4px 4px 0px rgba(255, 255, 255, 0.08), 0px 1px 3px 0px rgba(255, 255, 255, 0.04)\",\n md: \"0px 8px 8px 0px rgba(255, 255, 255, 0.16), 0px 2px 3px 0px rgba(255, 255, 255, 0.06)\",\n lg: \"0px 16px 24px 0px rgba(255, 255, 255, 0.20), 0px 2px 3px 0px rgba(255, 255, 255, 0.08)\",\n xl: \"0px 24px 32px 0px rgba(255, 255, 255, 0.24), 0px 2px 3px 0px rgba(255, 255, 255, 0.12)\",\n};\n\nexport const fonts: Fonts = {\n text: \"Inter\",\n head: \"Inter\",\n mono: \"Roboto Mono, monospace\",\n};\n\nexport const fontSizes: FontSizes = {\n hero1: { xs: \"72px\", lg: \"128px\" },\n hero2: { xs: \"60px\", lg: \"96px\" },\n hero3: { xs: \"36px\", lg: \"72px\" },\n\n h1: { xs: \"40px\", lg: \"60px\" },\n h2: { xs: \"30px\", lg: \"36px\" },\n h3: { xs: \"28px\", lg: \"30px\" },\n h4: { xs: \"24px\", lg: \"26px\" },\n h5: { xs: \"18px\", lg: \"20px\" },\n h6: { xs: \"16px\", lg: \"18px\" },\n\n text: { xs: \"14px\", lg: \"16px\" },\n strong: { xs: \"14px\", lg: \"16px\" },\n small: { xs: \"12px\", lg: \"14px\" },\n\n blockquote: { xs: \"16px\", lg: \"18px\" },\n code: { xs: \"14px\", lg: \"16px\" },\n\n button: { xs: \"16px\", lg: \"16px\" },\n buttonBig: { xs: \"18px\", lg: \"18px\" },\n\n input: { xs: \"16px\", lg: \"16px\" },\n inputBig: { xs: \"18px\", lg: \"18px\" },\n};\n\nexport const lineHeights: LineHeights = {\n hero1: { xs: \"1.1\", lg: \"1.1\" },\n hero2: { xs: \"1.1\", lg: \"1.1\" },\n hero3: { xs: \"1.17\", lg: \"1.1\" },\n\n h1: { xs: \"1\", lg: \"1.07\" },\n h2: { xs: \"1.2\", lg: \"1.2\" },\n h3: { xs: \"1.3\", lg: \"1.5\" },\n h4: { xs: \"1.3\", lg: \"1.5\" },\n h5: { xs: \"1.6\", lg: \"1.5\" },\n h6: { xs: \"1.6\", lg: \"1.6\" },\n\n text: { xs: \"1.7\", lg: \"1.7\" },\n strong: { xs: \"1.7\", lg: \"1.7\" },\n small: { xs: \"1.7\", lg: \"1.7\" },\n\n blockquote: { xs: \"1.7\", lg: \"1.7\" },\n code: { xs: \"1.7\", lg: \"1.7\" },\n\n button: { xs: \"1\", lg: \"1\" },\n buttonBig: { xs: \"1\", lg: \"1\" },\n\n input: { xs: \"1\", lg: \"1\" },\n inputBig: { xs: \"1\", lg: \"1\" },\n};\n\nexport const theme: Theme = {\n breakpoints,\n spacing,\n colors,\n shadows,\n fonts,\n fontSizes,\n lineHeights,\n isDark: false,\n};\n\nexport const themeDark: Theme = {\n breakpoints,\n spacing,\n colors: colorsDark,\n shadows: shadowsDark,\n fonts,\n fontSizes,\n lineHeights,\n isDark: true,\n};\n\nexport interface Breakpoints<TNumber = number> {\n xs: TNumber;\n sm: TNumber;\n md: TNumber;\n lg: TNumber;\n xl: TNumber;\n xxl: TNumber;\n xxxl: TNumber;\n}\n\nexport interface Spacing<TString = string> {\n maxWidth: { xs: TString; xxxl: TString };\n padding: { xs: TString; lg: TString };\n radius: { xs: TString; lg: TString; xl: TString };\n gridGap: { xs: TString; lg: TString };\n}\n\nexport interface Colors<TString = string> {\n primaryLight: TString;\n primary: TString;\n primaryDark: TString;\n\n secondaryLight: TString;\n secondary: TString;\n secondaryDark: TString;\n\n tertiaryLight: TString;\n tertiary: TString;\n tertiaryDark: TString;\n\n grayLight: TString;\n gray: TString;\n grayDark: TString;\n\n success: TString;\n error: TString;\n warning: TString;\n info: TString;\n\n dark: TString;\n light: TString;\n}\n\ninterface Shadows<TString = string> {\n xs: TString;\n sm: TString;\n md: TString;\n lg: TString;\n xl: TString;\n}\n\nexport interface Fonts<TString = string> {\n head: TString;\n text: TString;\n mono: TString;\n}\n\nexport interface FontSizes<TString = string> {\n hero1: { xs: TString; lg: TString };\n hero2: { xs: TString; lg: TString };\n hero3: { xs: TString; lg: TString };\n\n h1: { xs: TString; lg: TString };\n h2: { xs: TString; lg: TString };\n h3: { xs: TString; lg: TString };\n h4: { xs: TString; lg: TString };\n h5: { xs: TString; lg: TString };\n h6: { xs: TString; lg: TString };\n\n text: { xs: TString; lg: TString };\n strong: { xs: TString; lg: TString };\n small: { xs: TString; lg: TString };\n\n blockquote: { xs: TString; lg: TString };\n code: { xs: TString; lg: TString };\n\n button: { xs: TString; lg: TString };\n buttonBig: { xs: TString; lg: TString };\n\n input: { xs: TString; lg: TString };\n inputBig: { xs: TString; lg: TString };\n}\n\nexport interface LineHeights<TString = string> {\n hero1: { xs: TString; lg: TString };\n hero2: { xs: TString; lg: TString };\n hero3: { xs: TString; lg: TString };\n\n h1: { xs: TString; lg: TString };\n h2: { xs: TString; lg: TString };\n h3: { xs: TString; lg: TString };\n h4: { xs: TString; lg: TString };\n h5: { xs: TString; lg: TString };\n h6: { xs: TString; lg: TString };\n\n text: { xs: TString; lg: TString };\n strong: { xs: TString; lg: TString };\n small: { xs: TString; lg: TString };\n\n blockquote: { xs: TString; lg: TString };\n code: { xs: TString; lg: TString };\n\n button: { xs: TString; lg: TString };\n buttonBig: { xs: TString; lg: TString };\n\n input: { xs: TString; lg: TString };\n inputBig: { xs: TString; lg: TString };\n}\n\nexport interface Theme {\n breakpoints: Breakpoints;\n spacing: Spacing;\n colors: Colors;\n shadows: Shadows;\n fonts: Fonts;\n fontSizes: FontSizes;\n lineHeights: LineHeights;\n isDark: boolean;\n}\n";
|
|
1
|
+
export declare const themeTemplate = "\"use client\";\nimport customThemeJson from \"@/theme.json\";\n\ninterface CustomTheme {\n default?: Partial<Colors>;\n dark?: Partial<Colors>;\n}\n\nconst customTheme = customThemeJson as CustomTheme;\n\nexport const breakpoints: Breakpoints = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1440,\n xxxl: 1920,\n};\n\nexport function mq(minWidth: keyof Breakpoints) {\n return `@media screen and (min-width: ${breakpoints[minWidth]}px)`;\n}\n\nexport const spacing: Spacing = {\n maxWidth: { xs: \"1280px\", xxxl: \"1440px\" },\n padding: { xs: \"20px\", lg: \"40px\" },\n radius: { xs: \"6px\", lg: \"12px\", xl: \"30px\" },\n gridGap: { xs: \"20px\", lg: \"40px\" },\n};\n\nexport const colors: Colors = {\n primaryLight: \"#d1d5db\",\n primary: \"#6b7280\",\n primaryDark: \"#374151\",\n secondaryLight: \"#c4b5fd\",\n secondary: \"#8b5cf6\",\n secondaryDark: \"#5b21b6\",\n tertiaryLight: \"#86efac\",\n tertiary: \"#22c55e\",\n tertiaryDark: \"#15803d\",\n grayLight: \"#e5e7eb\",\n gray: \"#9ca3af\",\n grayDark: \"#4b5563\",\n success: \"#84cc16\",\n error: \"#ef4444\",\n warning: \"#eab308\",\n info: \"#06b6d4\",\n dark: \"#000000\",\n light: \"#ffffff\",\n ...(customTheme.default ? (customTheme.default as Partial<Colors>) : {}),\n};\n\nexport const colorsDark: Colors = {\n primaryLight: \"#9ca3af\",\n primary: \"#6b7280\",\n primaryDark: \"#374151\",\n secondaryLight: \"#ddd6fe\",\n secondary: \"#a78bfa\",\n secondaryDark: \"#7c3aed\",\n tertiaryLight: \"#6ee7b7\",\n tertiary: \"#10b981\",\n tertiaryDark: \"#065f46\",\n grayLight: \"#1a1a1a\",\n gray: \"#454444\",\n grayDark: \"#808080\",\n success: \"#84cc16\",\n error: \"#ef4444\",\n warning: \"#eab308\",\n info: \"#06b6d4\",\n dark: \"#ffffff\",\n light: \"#000000\",\n ...(customTheme.dark ? (customTheme.dark as Partial<Colors>) : {}),\n};\n\nexport const shadows: Shadows = {\n xs: \"0px 4px 4px 0px rgba(18, 18, 18, 0.04), 0px 1px 3px 0px rgba(39, 41, 45, 0.02)\",\n sm: \"0px 4px 4px 0px rgba(18, 18, 18, 0.08), 0px 1px 3px 0px rgba(39, 41, 45, 0.04)\",\n md: \"0px 8px 8px 0px rgba(18, 18, 18, 0.16), 0px 2px 3px 0px rgba(39, 41, 45, 0.06)\",\n lg: \"0px 16px 24px 0px rgba(18, 18, 18, 0.20), 0px 2px 3px 0px rgba(39, 41, 45, 0.08)\",\n xl: \"0px 24px 32px 0px rgba(18, 18, 18, 0.24), 0px 2px 3px 0px rgba(39, 41, 45, 0.12)\",\n};\n\nexport const shadowsDark: Shadows = {\n xs: \"0px 4px 4px 0px rgba(255, 255, 255, 0.04), 0px 1px 3px 0px rgba(255, 255, 255, 0.02)\",\n sm: \"0px 4px 4px 0px rgba(255, 255, 255, 0.08), 0px 1px 3px 0px rgba(255, 255, 255, 0.04)\",\n md: \"0px 8px 8px 0px rgba(255, 255, 255, 0.16), 0px 2px 3px 0px rgba(255, 255, 255, 0.06)\",\n lg: \"0px 16px 24px 0px rgba(255, 255, 255, 0.20), 0px 2px 3px 0px rgba(255, 255, 255, 0.08)\",\n xl: \"0px 24px 32px 0px rgba(255, 255, 255, 0.24), 0px 2px 3px 0px rgba(255, 255, 255, 0.12)\",\n};\n\nexport const fonts: Fonts = {\n text: \"Inter\",\n head: \"Inter\",\n mono: \"Roboto Mono, monospace\",\n};\n\nexport const fontSizes: FontSizes = {\n hero1: { xs: \"72px\", lg: \"128px\" },\n hero2: { xs: \"60px\", lg: \"96px\" },\n hero3: { xs: \"36px\", lg: \"72px\" },\n\n h1: { xs: \"40px\", lg: \"60px\" },\n h2: { xs: \"30px\", lg: \"36px\" },\n h3: { xs: \"28px\", lg: \"30px\" },\n h4: { xs: \"24px\", lg: \"26px\" },\n h5: { xs: \"18px\", lg: \"20px\" },\n h6: { xs: \"16px\", lg: \"18px\" },\n\n text: { xs: \"14px\", lg: \"16px\" },\n strong: { xs: \"14px\", lg: \"16px\" },\n small: { xs: \"12px\", lg: \"14px\" },\n\n blockquote: { xs: \"16px\", lg: \"18px\" },\n code: { xs: \"14px\", lg: \"16px\" },\n\n button: { xs: \"16px\", lg: \"16px\" },\n buttonBig: { xs: \"18px\", lg: \"18px\" },\n buttonSmall: { xs: \"14px\", lg: \"14px\" },\n\n input: { xs: \"16px\", lg: \"16px\" },\n inputBig: { xs: \"18px\", lg: \"18px\" },\n inputSmall: { xs: \"14px\", lg: \"14px\" },\n};\n\nexport const lineHeights: LineHeights = {\n hero1: { xs: \"1.1\", lg: \"1.1\" },\n hero2: { xs: \"1.1\", lg: \"1.1\" },\n hero3: { xs: \"1.17\", lg: \"1.1\" },\n\n h1: { xs: \"1\", lg: \"1.07\" },\n h2: { xs: \"1.2\", lg: \"1.2\" },\n h3: { xs: \"1.3\", lg: \"1.5\" },\n h4: { xs: \"1.3\", lg: \"1.5\" },\n h5: { xs: \"1.6\", lg: \"1.5\" },\n h6: { xs: \"1.6\", lg: \"1.6\" },\n\n text: { xs: \"1.7\", lg: \"1.7\" },\n strong: { xs: \"1.7\", lg: \"1.7\" },\n small: { xs: \"1.7\", lg: \"1.7\" },\n\n blockquote: { xs: \"1.7\", lg: \"1.7\" },\n code: { xs: \"1.7\", lg: \"1.7\" },\n\n button: { xs: \"1\", lg: \"1\" },\n buttonBig: { xs: \"1\", lg: \"1\" },\n buttonSmall: { xs: \"1\", lg: \"1\" },\n\n input: { xs: \"1\", lg: \"1\" },\n inputBig: { xs: \"1\", lg: \"1\" },\n inputSmall: { xs: \"1\", lg: \"1\" },\n};\n\nexport const theme: Theme = {\n breakpoints,\n spacing,\n colors,\n shadows,\n fonts,\n fontSizes,\n lineHeights,\n isDark: false,\n};\n\nexport const themeDark: Theme = {\n breakpoints,\n spacing,\n colors: colorsDark,\n shadows: shadowsDark,\n fonts,\n fontSizes,\n lineHeights,\n isDark: true,\n};\n\nexport interface Breakpoints<TNumber = number> {\n xs: TNumber;\n sm: TNumber;\n md: TNumber;\n lg: TNumber;\n xl: TNumber;\n xxl: TNumber;\n xxxl: TNumber;\n}\n\nexport interface Spacing<TString = string> {\n maxWidth: { xs: TString; xxxl: TString };\n padding: { xs: TString; lg: TString };\n radius: { xs: TString; lg: TString; xl: TString };\n gridGap: { xs: TString; lg: TString };\n}\n\nexport interface Colors<TString = string> {\n primaryLight: TString;\n primary: TString;\n primaryDark: TString;\n\n secondaryLight: TString;\n secondary: TString;\n secondaryDark: TString;\n\n tertiaryLight: TString;\n tertiary: TString;\n tertiaryDark: TString;\n\n grayLight: TString;\n gray: TString;\n grayDark: TString;\n\n success: TString;\n error: TString;\n warning: TString;\n info: TString;\n\n dark: TString;\n light: TString;\n}\n\ninterface Shadows<TString = string> {\n xs: TString;\n sm: TString;\n md: TString;\n lg: TString;\n xl: TString;\n}\n\nexport interface Fonts<TString = string> {\n head: TString;\n text: TString;\n mono: TString;\n}\n\nexport interface FontSizes<TString = string> {\n hero1: { xs: TString; lg: TString };\n hero2: { xs: TString; lg: TString };\n hero3: { xs: TString; lg: TString };\n\n h1: { xs: TString; lg: TString };\n h2: { xs: TString; lg: TString };\n h3: { xs: TString; lg: TString };\n h4: { xs: TString; lg: TString };\n h5: { xs: TString; lg: TString };\n h6: { xs: TString; lg: TString };\n\n text: { xs: TString; lg: TString };\n strong: { xs: TString; lg: TString };\n small: { xs: TString; lg: TString };\n\n blockquote: { xs: TString; lg: TString };\n code: { xs: TString; lg: TString };\n\n button: { xs: TString; lg: TString };\n buttonBig: { xs: TString; lg: TString };\n buttonSmall: { xs: TString; lg: TString };\n\n input: { xs: TString; lg: TString };\n inputBig: { xs: TString; lg: TString };\n inputSmall: { xs: TString; lg: TString };\n}\n\nexport interface LineHeights<TString = string> {\n hero1: { xs: TString; lg: TString };\n hero2: { xs: TString; lg: TString };\n hero3: { xs: TString; lg: TString };\n\n h1: { xs: TString; lg: TString };\n h2: { xs: TString; lg: TString };\n h3: { xs: TString; lg: TString };\n h4: { xs: TString; lg: TString };\n h5: { xs: TString; lg: TString };\n h6: { xs: TString; lg: TString };\n\n text: { xs: TString; lg: TString };\n strong: { xs: TString; lg: TString };\n small: { xs: TString; lg: TString };\n\n blockquote: { xs: TString; lg: TString };\n code: { xs: TString; lg: TString };\n\n button: { xs: TString; lg: TString };\n buttonBig: { xs: TString; lg: TString };\n buttonSmall: { xs: TString; lg: TString };\n\n input: { xs: TString; lg: TString };\n inputBig: { xs: TString; lg: TString };\n inputSmall: { xs: TString; lg: TString };\n}\n\nexport interface Theme {\n breakpoints: Breakpoints;\n spacing: Spacing;\n colors: Colors;\n shadows: Shadows;\n fonts: Fonts;\n fontSizes: FontSizes;\n lineHeights: LineHeights;\n isDark: boolean;\n}\n";
|
|
@@ -116,9 +116,11 @@ export const fontSizes: FontSizes = {
|
|
|
116
116
|
|
|
117
117
|
button: { xs: "16px", lg: "16px" },
|
|
118
118
|
buttonBig: { xs: "18px", lg: "18px" },
|
|
119
|
+
buttonSmall: { xs: "14px", lg: "14px" },
|
|
119
120
|
|
|
120
121
|
input: { xs: "16px", lg: "16px" },
|
|
121
122
|
inputBig: { xs: "18px", lg: "18px" },
|
|
123
|
+
inputSmall: { xs: "14px", lg: "14px" },
|
|
122
124
|
};
|
|
123
125
|
|
|
124
126
|
export const lineHeights: LineHeights = {
|
|
@@ -142,9 +144,11 @@ export const lineHeights: LineHeights = {
|
|
|
142
144
|
|
|
143
145
|
button: { xs: "1", lg: "1" },
|
|
144
146
|
buttonBig: { xs: "1", lg: "1" },
|
|
147
|
+
buttonSmall: { xs: "1", lg: "1" },
|
|
145
148
|
|
|
146
149
|
input: { xs: "1", lg: "1" },
|
|
147
150
|
inputBig: { xs: "1", lg: "1" },
|
|
151
|
+
inputSmall: { xs: "1", lg: "1" },
|
|
148
152
|
};
|
|
149
153
|
|
|
150
154
|
export const theme: Theme = {
|
|
@@ -247,9 +251,11 @@ export interface FontSizes<TString = string> {
|
|
|
247
251
|
|
|
248
252
|
button: { xs: TString; lg: TString };
|
|
249
253
|
buttonBig: { xs: TString; lg: TString };
|
|
254
|
+
buttonSmall: { xs: TString; lg: TString };
|
|
250
255
|
|
|
251
256
|
input: { xs: TString; lg: TString };
|
|
252
257
|
inputBig: { xs: TString; lg: TString };
|
|
258
|
+
inputSmall: { xs: TString; lg: TString };
|
|
253
259
|
}
|
|
254
260
|
|
|
255
261
|
export interface LineHeights<TString = string> {
|
|
@@ -273,9 +279,11 @@ export interface LineHeights<TString = string> {
|
|
|
273
279
|
|
|
274
280
|
button: { xs: TString; lg: TString };
|
|
275
281
|
buttonBig: { xs: TString; lg: TString };
|
|
282
|
+
buttonSmall: { xs: TString; lg: TString };
|
|
276
283
|
|
|
277
284
|
input: { xs: TString; lg: TString };
|
|
278
285
|
inputBig: { xs: TString; lg: TString };
|
|
286
|
+
inputSmall: { xs: TString; lg: TString };
|
|
279
287
|
}
|
|
280
288
|
|
|
281
289
|
export interface Theme {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const deploymentMdxTemplate = "---\ntitle: \"Deployment\"\ndescription: \"Deploy your Doccupine
|
|
1
|
+
export declare const deploymentMdxTemplate = "---\ntitle: \"Deployment\"\ndescription: \"Deploy your documentation site with Doccupine or self-host on Vercel.\"\ndate: \"2025-01-15\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 9\n---\n# Deployment\n\n## Deploy with Doccupine\n\nSign up for an account at [Doccupine](https://www.doccupine.com) and create your docs instantly \u2014 no build configuration, no infrastructure to manage.\n\nDoccupine gives you:\n- **Automatic deployments** on every push to your repository\n- **Site customization** through a visual dashboard \u2014 no code changes needed\n- **Team collaboration** so your whole team can manage docs together\n- **Custom domains** with automatic SSL\n- **AI Assistant and MCP server** included out of the box, no API key required\n\nGet started at [doccupine.com](https://www.doccupine.com).\n\n---\n\n## Self-hosting on Vercel\n\nIf you prefer to self-host, Doccupine generates a standard Next.js app that can be deployed to Vercel.\n\n<Callout type=\"warning\">\n Deploy the generated website directory (the Next.js app), not your MDX source folder. In a monorepo, set the Vercel <strong>Root Directory</strong> to the generated site folder.\n</Callout>\n\n### Quick start\n1. Push the generated site folder to GitHub, GitLab, or Bitbucket.\n2. Import the repository at [vercel.com/new](https://vercel.com/new). Vercel auto-detects Next.js and applies the correct build settings.\n3. Add any required environment variables under Project \u2192 Settings \u2192 Environment Variables.\n4. Deploy. Vercel creates Preview deployments per branch and promotes to Production on merge to main.\n\nYou can also deploy from the command line with the [Vercel CLI](https://vercel.com/docs/cli):\n\n```bash\nnpm i -g vercel\n```\n\n### Custom domains\nAdd a domain under Project \u2192 Settings \u2192 Domains and point your DNS to Vercel.\n\n### Troubleshooting\n- **Build failed** \u2014 Check build logs. Ensure your lockfile and correct Node.js version are present.\n- **Missing content** \u2014 Verify your MDX files and assets are in the repository.";
|
|
@@ -1,76 +1,51 @@
|
|
|
1
1
|
export const deploymentMdxTemplate = `---
|
|
2
2
|
title: "Deployment"
|
|
3
|
-
description: "Deploy your Doccupine
|
|
3
|
+
description: "Deploy your documentation site with Doccupine or self-host on Vercel."
|
|
4
4
|
date: "2025-01-15"
|
|
5
5
|
category: "Configuration"
|
|
6
6
|
categoryOrder: 3
|
|
7
7
|
order: 9
|
|
8
8
|
---
|
|
9
9
|
# Deployment
|
|
10
|
-
Deploy your Doccupine site as a Next.js application on Vercel. You can connect a Git repository for automatic deployments or use the Vercel CLI for manual control.
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
## Deploy with Doccupine
|
|
12
|
+
|
|
13
|
+
Sign up for an account at [Doccupine](https://www.doccupine.com) and create your docs instantly — no build configuration, no infrastructure to manage.
|
|
14
|
+
|
|
15
|
+
Doccupine gives you:
|
|
16
|
+
- **Automatic deployments** on every push to your repository
|
|
17
|
+
- **Site customization** through a visual dashboard — no code changes needed
|
|
18
|
+
- **Team collaboration** so your whole team can manage docs together
|
|
19
|
+
- **Custom domains** with automatic SSL
|
|
20
|
+
- **AI Assistant and MCP server** included out of the box, no API key required
|
|
15
21
|
|
|
16
|
-
|
|
17
|
-
- **Vercel account**: https://vercel.com/signup
|
|
18
|
-
- **Git repository**: GitHub, GitLab, or Bitbucket with your Next.js app
|
|
19
|
-
- **Node.js**: Use an LTS version
|
|
22
|
+
Get started at [doccupine.com](https://www.doccupine.com).
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
3. If your repo is a monorepo, set the project **Root Directory** to the generated website folder (Project → Settings → General → Root Directory).
|
|
25
|
-
4. **Framework preset**: Vercel auto-detects Next.js.
|
|
26
|
-
5. **Build settings** (defaults are fine):
|
|
27
|
-
- Install Command: \`pnpm i\`, \`yarn\`, or \`npm i\` (Vercel auto-detects)
|
|
28
|
-
- Build Command: \`next build\`
|
|
29
|
-
- Output: handled automatically by Vercel for Next.js
|
|
30
|
-
6. **Environment Variables**: Add any values required by your docs (see below).
|
|
31
|
-
7. **Deploy**: Vercel creates a Preview deployment per branch. Merge to your main branch to promote to Production.
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Self-hosting on Vercel
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
1. Install the CLI:
|
|
35
|
-
\`\`\`bash
|
|
36
|
-
npm i -g vercel
|
|
37
|
-
\`\`\`
|
|
38
|
-
2. From the generated website directory, run:
|
|
39
|
-
\`\`\`bash
|
|
40
|
-
vercel
|
|
41
|
-
\`\`\`
|
|
42
|
-
Follow the prompts to link or create a project.
|
|
43
|
-
3. When ready for production:
|
|
44
|
-
\`\`\`bash
|
|
45
|
-
vercel --prod
|
|
46
|
-
\`\`\`
|
|
28
|
+
If you prefer to self-host, Doccupine generates a standard Next.js app that can be deployed to Vercel.
|
|
47
29
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- Or via CLI:
|
|
52
|
-
\`\`\`bash
|
|
53
|
-
vercel env add NAME
|
|
54
|
-
\`\`\`
|
|
30
|
+
<Callout type="warning">
|
|
31
|
+
Deploy the generated website directory (the Next.js app), not your MDX source folder. In a monorepo, set the Vercel <strong>Root Directory</strong> to the generated site folder.
|
|
32
|
+
</Callout>
|
|
55
33
|
|
|
56
|
-
|
|
34
|
+
### Quick start
|
|
35
|
+
1. Push the generated site folder to GitHub, GitLab, or Bitbucket.
|
|
36
|
+
2. Import the repository at [vercel.com/new](https://vercel.com/new). Vercel auto-detects Next.js and applies the correct build settings.
|
|
37
|
+
3. Add any required environment variables under Project → Settings → Environment Variables.
|
|
38
|
+
4. Deploy. Vercel creates Preview deployments per branch and promotes to Production on merge to main.
|
|
57
39
|
|
|
58
|
-
|
|
59
|
-
- Ensure a valid \`next.config.js\` if you customize images, basePath, or MDX handling.
|
|
60
|
-
- If you use MDX, include the necessary plugins/config in your project.
|
|
61
|
-
- Vercel automatically enables Image Optimization and Edge/CDN features for Next.js.
|
|
40
|
+
You can also deploy from the command line with the [Vercel CLI](https://vercel.com/docs/cli):
|
|
62
41
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
42
|
+
\`\`\`bash
|
|
43
|
+
npm i -g vercel
|
|
44
|
+
\`\`\`
|
|
66
45
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
- **Missing content**: Ensure your MDX directory and any assets are included in the repository.
|
|
70
|
-
- **Env not applied**: Add variables for the correct environment (Preview vs Production) and redeploy.
|
|
71
|
-
- **Images not loading**: Configure \`images.domains\` in \`next.config.js\` if using remote images.
|
|
46
|
+
### Custom domains
|
|
47
|
+
Add a domain under Project → Settings → Domains and point your DNS to Vercel.
|
|
72
48
|
|
|
73
|
-
|
|
74
|
-
- **
|
|
75
|
-
- **
|
|
76
|
-
- **Consistent tooling**: Keep a single package manager and lockfile in the repo (npm, pnpm, or yarn).`;
|
|
49
|
+
### Troubleshooting
|
|
50
|
+
- **Build failed** — Check build logs. Ensure your lockfile and correct Node.js version are present.
|
|
51
|
+
- **Missing content** — Verify your MDX files and assets are in the repository.`;
|
|
@@ -9,11 +9,11 @@ export const packageJsonTemplate = JSON.stringify({
|
|
|
9
9
|
lint: "eslint .",
|
|
10
10
|
},
|
|
11
11
|
dependencies: {
|
|
12
|
-
"@langchain/anthropic": "^1.3.
|
|
13
|
-
"@langchain/google-genai": "^2.1.
|
|
14
|
-
"@langchain/openai": "^1.2.
|
|
12
|
+
"@langchain/anthropic": "^1.3.17",
|
|
13
|
+
"@langchain/google-genai": "^2.1.17",
|
|
14
|
+
"@langchain/openai": "^1.2.7",
|
|
15
15
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
16
|
-
langchain: "^1.2.
|
|
16
|
+
langchain: "^1.2.21",
|
|
17
17
|
next: "16.1.6",
|
|
18
18
|
react: "19.2.4",
|
|
19
19
|
"react-dom": "19.2.4",
|
|
@@ -24,11 +24,11 @@ export const packageJsonTemplate = JSON.stringify({
|
|
|
24
24
|
"@types/react": "^19",
|
|
25
25
|
"@types/react-dom": "^19",
|
|
26
26
|
"baseline-browser-mapping": "^2.9.19",
|
|
27
|
-
"cherry-styled-components": "^0.1.
|
|
27
|
+
"cherry-styled-components": "^0.1.8",
|
|
28
28
|
eslint: "^9",
|
|
29
29
|
"eslint-config-next": "16.1.6",
|
|
30
30
|
"lucide-react": "^0.563.0",
|
|
31
|
-
"next-mdx-remote": "^
|
|
31
|
+
"next-mdx-remote": "^6.0.0",
|
|
32
32
|
polished: "^4.3.1",
|
|
33
33
|
prettier: "^3.8.1",
|
|
34
34
|
"rehype-highlight": "^7.0.2",
|
package/dist/templates/theme.js
CHANGED
|
@@ -131,6 +131,7 @@ export const fontSizes: FontSizes = {
|
|
|
131
131
|
|
|
132
132
|
input: { xs: "16px", lg: "16px" },
|
|
133
133
|
inputBig: { xs: "18px", lg: "18px" },
|
|
134
|
+
inputSmall: { xs: "14px", lg: "14px" },
|
|
134
135
|
};
|
|
135
136
|
|
|
136
137
|
export const lineHeights: LineHeights = {
|
|
@@ -157,6 +158,7 @@ export const lineHeights: LineHeights = {
|
|
|
157
158
|
|
|
158
159
|
input: { xs: "1", lg: "1" },
|
|
159
160
|
inputBig: { xs: "1", lg: "1" },
|
|
161
|
+
inputSmall: { xs: "1.00", lg: "1.00" },
|
|
160
162
|
};
|
|
161
163
|
|
|
162
164
|
export const theme: Theme = {
|
|
@@ -262,6 +264,7 @@ export interface FontSizes<TString = string> {
|
|
|
262
264
|
|
|
263
265
|
input: { xs: TString; lg: TString };
|
|
264
266
|
inputBig: { xs: TString; lg: TString };
|
|
267
|
+
inputSmall: { xs: TString; lg: TString };
|
|
265
268
|
}
|
|
266
269
|
|
|
267
270
|
export interface LineHeights<TString = string> {
|
|
@@ -288,6 +291,7 @@ export interface LineHeights<TString = string> {
|
|
|
288
291
|
|
|
289
292
|
input: { xs: TString; lg: TString };
|
|
290
293
|
inputBig: { xs: TString; lg: TString };
|
|
294
|
+
inputSmall: { xs: TString; lg: TString };
|
|
291
295
|
}
|
|
292
296
|
|
|
293
297
|
export interface Theme {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "doccupine",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.39",
|
|
4
4
|
"description": "Document management system that allows you to store, organize, and share your documentation with ease. AI-ready.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/chokidar": "^2.1.7",
|
|
46
46
|
"@types/fs-extra": "^11.0.4",
|
|
47
|
-
"@types/node": "^25.2.
|
|
47
|
+
"@types/node": "^25.2.3",
|
|
48
48
|
"@types/prompts": "^2.4.9",
|
|
49
49
|
"typescript": "^5.9.3"
|
|
50
50
|
},
|