@fayz-ai/plugin-marketing 0.2.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +2 -0
  2. package/dist/MarketingContext.d.ts +1 -0
  3. package/dist/MarketingContext.d.ts.map +1 -1
  4. package/dist/MarketingPage.d.ts +5 -1
  5. package/dist/MarketingPage.d.ts.map +1 -1
  6. package/dist/components/icons.d.ts +4 -0
  7. package/dist/components/icons.d.ts.map +1 -1
  8. package/dist/data/contentMedia.d.ts +3 -0
  9. package/dist/data/contentMedia.d.ts.map +1 -0
  10. package/dist/data/contentMock.d.ts +3 -0
  11. package/dist/data/contentMock.d.ts.map +1 -0
  12. package/dist/data/contentSupabase.d.ts +3 -0
  13. package/dist/data/contentSupabase.d.ts.map +1 -0
  14. package/dist/data/contentTypes.d.ts +111 -0
  15. package/dist/data/contentTypes.d.ts.map +1 -0
  16. package/dist/data/tables.d.ts +6 -0
  17. package/dist/data/tables.d.ts.map +1 -0
  18. package/dist/index.cjs +2813 -129
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +8 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2815 -133
  23. package/dist/index.js.map +1 -1
  24. package/dist/locales/en.d.ts.map +1 -1
  25. package/dist/locales/pt-BR.d.ts.map +1 -1
  26. package/dist/migrations/index.d.ts +9 -0
  27. package/dist/migrations/index.d.ts.map +1 -0
  28. package/dist/presets.d.ts +2 -0
  29. package/dist/presets.d.ts.map +1 -1
  30. package/dist/schema/index.d.ts +717 -0
  31. package/dist/schema/index.d.ts.map +1 -0
  32. package/dist/schema.cjs +65 -0
  33. package/dist/schema.cjs.map +1 -0
  34. package/dist/schema.js +61 -0
  35. package/dist/schema.js.map +1 -0
  36. package/dist/views/content/ContentPlannerContext.d.ts +13 -0
  37. package/dist/views/content/ContentPlannerContext.d.ts.map +1 -0
  38. package/dist/views/content/ContentView.d.ts +5 -0
  39. package/dist/views/content/ContentView.d.ts.map +1 -0
  40. package/dist/views/content/PlanBriefView.d.ts +12 -0
  41. package/dist/views/content/PlanBriefView.d.ts.map +1 -0
  42. package/dist/views/content/PostPage.d.ts +6 -0
  43. package/dist/views/content/PostPage.d.ts.map +1 -0
  44. package/dist/views/content/PostSocialPreview.d.ts +11 -0
  45. package/dist/views/content/PostSocialPreview.d.ts.map +1 -0
  46. package/dist/views/content/RecordingChecklist.d.ts +6 -0
  47. package/dist/views/content/RecordingChecklist.d.ts.map +1 -0
  48. package/dist/views/content/contentBits.d.ts +28 -0
  49. package/dist/views/content/contentBits.d.ts.map +1 -0
  50. package/dist/views/content/contentStore.d.ts +28 -0
  51. package/dist/views/content/contentStore.d.ts.map +1 -0
  52. package/dist/views/content/templates.d.ts +3 -0
  53. package/dist/views/content/templates.d.ts.map +1 -0
  54. package/package.json +17 -4
  55. package/src/MarketingContext.tsx +1 -0
  56. package/src/MarketingPage.tsx +23 -3
  57. package/src/components/icons.tsx +19 -0
  58. package/src/data/contentMedia.ts +25 -0
  59. package/src/data/contentMock.ts +253 -0
  60. package/src/data/contentSupabase.ts +263 -0
  61. package/src/data/contentTypes.ts +138 -0
  62. package/src/data/tables.ts +7 -0
  63. package/src/index.ts +64 -2
  64. package/src/locales/en.ts +95 -0
  65. package/src/locales/pt-BR.ts +95 -0
  66. package/src/migrations/000_plg_rename.sql +15 -0
  67. package/src/migrations/001_content_planner.sql +94 -0
  68. package/src/migrations/002_multi_platform.sql +25 -0
  69. package/src/migrations/003_recording_ops.sql +25 -0
  70. package/src/migrations/index.ts +177 -0
  71. package/src/presets.ts +5 -3
  72. package/src/schema/index.ts +69 -0
  73. package/src/views/content/ContentPlannerContext.tsx +13 -0
  74. package/src/views/content/ContentView.tsx +901 -0
  75. package/src/views/content/PlanBriefView.tsx +268 -0
  76. package/src/views/content/PostPage.tsx +370 -0
  77. package/src/views/content/PostSocialPreview.tsx +212 -0
  78. package/src/views/content/RecordingChecklist.tsx +145 -0
  79. package/src/views/content/contentBits.tsx +114 -0
  80. package/src/views/content/contentStore.ts +160 -0
  81. package/src/views/content/templates.ts +172 -0
@@ -0,0 +1,172 @@
1
+ import type { PostFormat } from '../../data/contentTypes'
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // Default markdown scaffolds inserted when a post's page is still empty.
5
+ // The section headers follow the script format clinics/creators actually use
6
+ // (hook-first reels, on-screen text + spoken line per take). Body text is user
7
+ // content, so it ships in pt-BR — the product's first content-planner users.
8
+ // ---------------------------------------------------------------------------
9
+
10
+ const reel = (title: string) => `# ${title}
11
+
12
+ **TEMA:** ${title.toUpperCase()}
13
+ **Formato:** Reel · **Duração:** 45 a 60 segundos
14
+
15
+ ---
16
+
17
+ ## TAKE 1 – GANCHO (0s a 5s)
18
+
19
+ *Direção de cena: olhando para a câmera, energia alta.*
20
+
21
+ **Texto na tela:** …
22
+
23
+ **Fala:** "…"
24
+
25
+ ---
26
+
27
+ ## TAKE 2 – DESENVOLVIMENTO (5s a 40s)
28
+
29
+ *Direção de cena: …*
30
+
31
+ **Texto na tela:** …
32
+
33
+ **Fala:** "…"
34
+
35
+ ---
36
+
37
+ ## TAKE 3 – CTA (40s a 60s)
38
+
39
+ **Fala:** "…"
40
+
41
+ **CTA:** …
42
+ `
43
+
44
+ const staticPost = (title: string) => `# ${title}
45
+
46
+ **TEMA:** ${title.toUpperCase()}
47
+ **Formato:** Estático
48
+
49
+ ## Texto da arte
50
+
51
+ …
52
+
53
+ ## Legenda
54
+
55
+ …
56
+
57
+ **CTA:** …
58
+ `
59
+
60
+ const carousel = (title: string) => `# ${title}
61
+
62
+ **TEMA:** ${title.toUpperCase()}
63
+ **Formato:** Carrossel
64
+
65
+ ## Slide 1 — Capa (gancho)
66
+
67
+ …
68
+
69
+ ## Slide 2
70
+
71
+ …
72
+
73
+ ## Slide 3
74
+
75
+ …
76
+
77
+ ## Último slide — CTA
78
+
79
+ …
80
+ `
81
+
82
+ const story = (title: string) => `# ${title}
83
+
84
+ **TEMA:** ${title.toUpperCase()}
85
+ **Formato:** Story
86
+
87
+ ## Frame 1
88
+
89
+ …
90
+
91
+ ## Frame 2
92
+
93
+ …
94
+
95
+ ## Frame final — CTA
96
+
97
+ *Sticker de link / caixa de pergunta / enquete.*
98
+
99
+ …
100
+ `
101
+
102
+ const video = (title: string) => `# ${title}
103
+
104
+ **TEMA:** ${title.toUpperCase()}
105
+ **Formato:** Vídeo longo (YouTube) · **Duração:** 8 a 12 minutos
106
+
107
+ ## Gancho (0s a 30s)
108
+
109
+ …
110
+
111
+ ## Roteiro por blocos
112
+
113
+ ### Bloco 1 — Contexto
114
+
115
+ …
116
+
117
+ ### Bloco 2 — Desenvolvimento
118
+
119
+ …
120
+
121
+ ### Bloco 3 — Fechamento
122
+
123
+ …
124
+
125
+ **CTA:** inscreva-se / comente / link na descrição
126
+ `
127
+
128
+ const live = (title: string) => `# ${title}
129
+
130
+ **TEMA:** ${title.toUpperCase()}
131
+ **Formato:** Live
132
+
133
+ ## Pauta
134
+
135
+ 1. Abertura e aquecimento (5 min)
136
+ 2. …
137
+ 3. Perguntas e respostas (15 min)
138
+
139
+ ## Avisos / CTAs durante a live
140
+
141
+ …
142
+ `
143
+
144
+ const article = (title: string) => `# ${title}
145
+
146
+ **TEMA:** ${title.toUpperCase()}
147
+ **Formato:** Artigo / Newsletter
148
+
149
+ ## Título de trabalho
150
+
151
+ …
152
+
153
+ ## Estrutura
154
+
155
+ - Abertura (dor / promessa)
156
+ - Desenvolvimento em 3 pontos
157
+ - Conclusão + CTA
158
+
159
+ ## Rascunho
160
+
161
+ …
162
+ `
163
+
164
+ export const POST_TEMPLATES: Record<PostFormat, (title: string) => string> = {
165
+ reel,
166
+ static: staticPost,
167
+ carousel,
168
+ story,
169
+ video,
170
+ live,
171
+ article,
172
+ }