@fraza/start 0.0.0-stage → 0.3.5

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 (59) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/LICENSE +21 -0
  3. package/README.md +97 -2
  4. package/THIRD-PARTY-NOTICES.md +11 -0
  5. package/bin/agents-block.md +61 -0
  6. package/bin/cli.js +197 -0
  7. package/bin/project.js +281 -0
  8. package/bin/version.js +2 -0
  9. package/changelog.json +602 -0
  10. package/package.json +42 -4
  11. package/templates/app/(admin)/admin/[...admin]/layout.js +3 -0
  12. package/templates/app/(admin)/admin/[...admin]/loading.js +3 -0
  13. package/templates/app/(admin)/admin/[...admin]/page.js +1 -0
  14. package/templates/app/(admin)/admin/error.js +4 -0
  15. package/templates/app/(admin)/admin/layout.js +17 -0
  16. package/templates/app/(admin)/admin/not-found.js +2 -0
  17. package/templates/app/(admin)/admin/page.js +5 -0
  18. package/templates/app/(auth)/auth/[...auth]/page.js +1 -0
  19. package/templates/app/(auth)/auth/page.js +5 -0
  20. package/templates/app/(public)/[...slug]/page.js +29 -0
  21. package/templates/app/(public)/error.js +6 -0
  22. package/templates/app/(public)/layout.js +17 -0
  23. package/templates/app/(public)/not-found.js +20 -0
  24. package/templates/app/(public)/page.js +248 -0
  25. package/templates/app/.fraza/blocks.client.js +8 -0
  26. package/templates/app/.fraza/blocks.server.js +4 -0
  27. package/templates/app/.fraza/modules.client.js +6 -0
  28. package/templates/app/.fraza/modules.generated.js +3 -0
  29. package/templates/app/.fraza/public-pages.server.js +4 -0
  30. package/templates/app/.fraza/sources.css +2 -0
  31. package/templates/app/.fraza/templates.server.js +5 -0
  32. package/templates/app/global-error.js +5 -0
  33. package/templates/app/icon.svg +1 -0
  34. package/templates/app/layout.js +31 -0
  35. package/templates/app/za/[...path]/not-found.js +6 -0
  36. package/templates/app/za/[...path]/page.js +8 -0
  37. package/templates/app/za/api/[...path]/route.js +1 -0
  38. package/templates/app/za/media/[filename]/route.js +1 -0
  39. package/templates/components/fraza/blocks/README.md +207 -0
  40. package/templates/components/fraza/blocks/accordion/fields.js +19 -0
  41. package/templates/components/fraza/blocks/accordion/render.js +47 -0
  42. package/templates/components/fraza/blocks/accordion/template.js +28 -0
  43. package/templates/components/fraza/blocks/callout/fields.js +15 -0
  44. package/templates/components/fraza/blocks/callout/render.js +28 -0
  45. package/templates/components/fraza/blocks/callout/template.js +37 -0
  46. package/templates/components/fraza/blocks/icon-list/fields.js +20 -0
  47. package/templates/components/fraza/blocks/icon-list/render.js +44 -0
  48. package/templates/components/fraza/blocks/icon-list/template.js +89 -0
  49. package/templates/components/fraza/blocks/three-cards/fields.js +19 -0
  50. package/templates/components/fraza/blocks/three-cards/render.js +33 -0
  51. package/templates/components/fraza/blocks/three-cards/template.js +57 -0
  52. package/templates/components/fraza/templates/README.md +293 -0
  53. package/templates/components/fraza/templates/content.js +271 -0
  54. package/templates/components/fraza/templates/default.js +18 -0
  55. package/templates/components/fraza/templates/post-blogue.js +97 -0
  56. package/templates/instrumentation.js +21 -0
  57. package/templates/jsconfig.json +9 -0
  58. package/templates/styles/globals.css +25 -0
  59. package/templates/theme.js +25 -0
@@ -0,0 +1,21 @@
1
+ export async function register() {
2
+ if (process.env.NEXT_RUNTIME === 'nodejs') {
3
+ const { initializeFraza } = await import('@fraza/core/init');
4
+ const { modules } = await import('./app/.fraza/modules.generated.js');
5
+ // Charge les blocs personnalisés du projet (composants render.js).
6
+ // Le manifest est généré par `npx fraza-modules sync` à partir du dossier
7
+ // `components/fraza/blocks/`. L'import déclenche les `registerCustomBlock`
8
+ // au boot Node.js avant tout rendu de page publique.
9
+ await import('./app/.fraza/blocks.server.js');
10
+ // Charge les templates de rendu public (`components/fraza/templates/`).
11
+ // Alimente `@fraza/core/templates` côté serveur pour PagePublicView /
12
+ // PostPublicView. Doit s'exécuter avant `initializeFraza({ modules })`
13
+ // pour que les templates soient disponibles si un module les utilise
14
+ // pendant son boot.
15
+ await import('./app/.fraza/templates.server.js');
16
+ // Thème du projet (`theme.js`), lu au rendu par l'admin, les pages
17
+ // publiques, les courriels et les PDF.
18
+ const { default: theme } = await import('./theme.js');
19
+ await initializeFraza({ modules, theme });
20
+ }
21
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "@/*": ["./*"],
5
+ "@styles/*": ["./styles/*"],
6
+ "@components/*": ["./components/*"]
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,25 @@
1
+ @import "tailwindcss";
2
+ @import '@fraza/core/styles/core.css';
3
+ @import '../app/.fraza/sources.css';
4
+
5
+ /* Les couleurs, le mode sombre et les polices viennent du thème du projet
6
+ * (`theme.js`) : le site public écrit les mêmes jetons que l'administration
7
+ * (`bg-surface`, `text-fg`, `border-line`…). Le fond de page est `canvas`,
8
+ * noir en sombre : `surface` est réservé aux cartes qui s'en détachent.
9
+ * La police est IBM Plex Sans, livrée par `@fraza/core` (option `font` du
10
+ * thème pour en changer) : sans elle, une page qui n'écrit pas `font-ui`
11
+ * retombe sur la police du navigateur. */
12
+ body {
13
+ background-color: var(--fraza-canvas);
14
+ color: var(--fraza-fg);
15
+ font-family: var(--fraza-font-sans);
16
+ }
17
+
18
+ /* Pas de défilement horizontal de la page. `clip` et non `hidden` : posé sur
19
+ * `html` et `body`, `hidden` fait du `body` un conteneur de défilement qui ne
20
+ * défile jamais, et les éléments `sticky` (barre de l'administration, en-tête
21
+ * des pages publiques des modules) cessent de coller. `clip` coupe sans créer
22
+ * de conteneur, et le navigateur le reporte sur la fenêtre. */
23
+ body {
24
+ overflow-x: clip;
25
+ }
@@ -0,0 +1,25 @@
1
+ import { defineTheme } from '@fraza/core/themes/define';
2
+
3
+ // Apparence du projet : administration, pages publiques, modules, courriels et
4
+ // PDF la lisent tous. Chaque option est un choix borné, une valeur hors liste
5
+ // fait échouer le démarrage avec un message qui nomme les valeurs admises.
6
+ // Les valeurs ci-dessous sont les défauts : supprimer une ligne revient au même.
7
+ // Voir la documentation, guide « Personnaliser l'apparence ».
8
+ export default defineTheme({
9
+ // Bouton principal : 'neutral' (encre noire, blanche en sombre) ou une couleur hex.
10
+ primary: 'neutral',
11
+ // Accent en hex : liens, focus, cases cochées, élément actif. Une couleur trop
12
+ // pâle pour se lire sur blanc (contraste sous 4,5:1) est assombrie au démarrage,
13
+ // avec un avertissement. La version sombre en dérive.
14
+ accent: '#2457c5',
15
+ // Teinte des gris : 'neutral', 'stone', 'slate', 'zinc' ou 'gray'.
16
+ neutral: 'neutral',
17
+ // Arrondis : 'none', 'sm', 'md' ou 'lg'.
18
+ radius: 'md',
19
+ // Barre supérieure et sidebar : 'light' (suit le thème) ou 'dark' (toujours foncée).
20
+ chrome: 'light',
21
+ // Coquille de l'administration : 'sidebar' ou 'topbar'.
22
+ shell: 'sidebar',
23
+ // Modes offerts. ['light'] ou ['dark'] impose un mode et masque la bascule.
24
+ modes: ['light', 'dark'],
25
+ });