@fayz-ai/plugin-marketing 0.1.6 → 0.2.1
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/MarketingContext.d.ts +1 -0
- package/dist/MarketingContext.d.ts.map +1 -1
- package/dist/MarketingPage.d.ts +5 -1
- package/dist/MarketingPage.d.ts.map +1 -1
- package/dist/components/icons.d.ts +4 -0
- package/dist/components/icons.d.ts.map +1 -1
- package/dist/data/contentMedia.d.ts +3 -0
- package/dist/data/contentMedia.d.ts.map +1 -0
- package/dist/data/contentMock.d.ts +3 -0
- package/dist/data/contentMock.d.ts.map +1 -0
- package/dist/data/contentSupabase.d.ts +3 -0
- package/dist/data/contentSupabase.d.ts.map +1 -0
- package/dist/data/contentTypes.d.ts +111 -0
- package/dist/data/contentTypes.d.ts.map +1 -0
- package/dist/index.cjs +2780 -130
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2782 -134
- package/dist/index.js.map +1 -1
- package/dist/locales/en.d.ts.map +1 -1
- package/dist/locales/pt-BR.d.ts.map +1 -1
- package/dist/migrations/index.d.ts +4 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/presets.d.ts +2 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/schema/index.d.ts +717 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema.cjs +65 -0
- package/dist/schema.cjs.map +1 -0
- package/dist/schema.js +61 -0
- package/dist/schema.js.map +1 -0
- package/dist/views/content/ContentPlannerContext.d.ts +13 -0
- package/dist/views/content/ContentPlannerContext.d.ts.map +1 -0
- package/dist/views/content/ContentView.d.ts +5 -0
- package/dist/views/content/ContentView.d.ts.map +1 -0
- package/dist/views/content/PlanBriefView.d.ts +12 -0
- package/dist/views/content/PlanBriefView.d.ts.map +1 -0
- package/dist/views/content/PostPage.d.ts +6 -0
- package/dist/views/content/PostPage.d.ts.map +1 -0
- package/dist/views/content/PostSocialPreview.d.ts +11 -0
- package/dist/views/content/PostSocialPreview.d.ts.map +1 -0
- package/dist/views/content/RecordingChecklist.d.ts +6 -0
- package/dist/views/content/RecordingChecklist.d.ts.map +1 -0
- package/dist/views/content/contentBits.d.ts +28 -0
- package/dist/views/content/contentBits.d.ts.map +1 -0
- package/dist/views/content/contentStore.d.ts +28 -0
- package/dist/views/content/contentStore.d.ts.map +1 -0
- package/dist/views/content/templates.d.ts +3 -0
- package/dist/views/content/templates.d.ts.map +1 -0
- package/package.json +11 -4
- package/src/MarketingContext.tsx +1 -0
- package/src/MarketingPage.tsx +23 -3
- package/src/components/icons.tsx +19 -0
- package/src/data/contentMedia.ts +25 -0
- package/src/data/contentMock.ts +253 -0
- package/src/data/contentSupabase.ts +262 -0
- package/src/data/contentTypes.ts +138 -0
- package/src/index.ts +62 -4
- package/src/locales/en.ts +95 -0
- package/src/locales/pt-BR.ts +95 -0
- package/src/migrations/001_content_planner.sql +94 -0
- package/src/migrations/002_multi_platform.sql +25 -0
- package/src/migrations/003_recording_ops.sql +25 -0
- package/src/migrations/index.ts +152 -0
- package/src/presets.ts +5 -3
- package/src/schema/index.ts +69 -0
- package/src/views/content/ContentPlannerContext.tsx +13 -0
- package/src/views/content/ContentView.tsx +901 -0
- package/src/views/content/PlanBriefView.tsx +268 -0
- package/src/views/content/PostPage.tsx +370 -0
- package/src/views/content/PostSocialPreview.tsx +212 -0
- package/src/views/content/RecordingChecklist.tsx +145 -0
- package/src/views/content/contentBits.tsx +114 -0
- package/src/views/content/contentStore.ts +160 -0
- package/src/views/content/templates.ts +172 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketingContext.d.ts","sourceRoot":"","sources":["../src/MarketingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,eAAe,CAAA;IAC3B,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,MAAM,EAAE,eAAe,CAAA;CACxB;AAID,eAAO,MAAM,wBAAwB;;;;;EAAsB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,+BAAgB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,6BAAkB,CAAA;AACnD,eAAO,MAAM,iBAAiB,oDAAe,CAAA;AAE7C,uDAAuD;AACvD,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAGlE"}
|
|
1
|
+
{"version":3,"file":"MarketingContext.d.ts","sourceRoot":"","sources":["../src/MarketingContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,eAAe,CAAA;IAC3B,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,MAAM,EAAE,eAAe,CAAA;CACxB;AAID,eAAO,MAAM,wBAAwB;;;;;EAAsB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,+BAAgB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,6BAAkB,CAAA;AACnD,eAAO,MAAM,iBAAiB,oDAAe,CAAA;AAE7C,uDAAuD;AACvD,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAGlE"}
|
package/dist/MarketingPage.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ import React from 'react';
|
|
|
2
2
|
import type { StoreApi } from 'zustand/vanilla';
|
|
3
3
|
import { type ResolvedMarketingConfig } from './MarketingContext';
|
|
4
4
|
import type { MarketingDataProvider } from './data/types';
|
|
5
|
+
import type { ContentPlannerProvider } from './data/contentTypes';
|
|
5
6
|
import type { MarketingUIState } from './store';
|
|
6
|
-
|
|
7
|
+
import type { ContentPlannerUIState } from './views/content/contentStore';
|
|
8
|
+
export declare function MarketingPage({ config, provider, store, contentProvider, contentStore }: {
|
|
7
9
|
config: ResolvedMarketingConfig;
|
|
8
10
|
provider: MarketingDataProvider;
|
|
9
11
|
store: StoreApi<MarketingUIState>;
|
|
12
|
+
contentProvider: ContentPlannerProvider;
|
|
13
|
+
contentStore: StoreApi<ContentPlannerUIState>;
|
|
10
14
|
}): React.JSX.Element;
|
|
11
15
|
//# sourceMappingURL=MarketingPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketingPage.d.ts","sourceRoot":"","sources":["../src/MarketingPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAK/C,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"MarketingPage.d.ts","sourceRoot":"","sources":["../src/MarketingPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAK/C,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAQ/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAuCzE,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE;IACxF,MAAM,EAAE,uBAAuB,CAAA;IAC/B,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACjC,eAAe,EAAE,sBAAsB,CAAA;IACvC,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAA;CAC9C,qBAmDA"}
|
|
@@ -3,4 +3,8 @@ export declare function ChannelIcon({ name, className }: {
|
|
|
3
3
|
name: string;
|
|
4
4
|
className?: string;
|
|
5
5
|
}): React.JSX.Element;
|
|
6
|
+
export declare function PlatformIcon({ platform, className }: {
|
|
7
|
+
platform: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}): React.JSX.Element;
|
|
6
10
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,qBAGpF;AAeD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,qBAG7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentMedia.d.ts","sourceRoot":"","sources":["../../src/data/contentMedia.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAYjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentMock.d.ts","sourceRoot":"","sources":["../../src/data/contentMock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,gBAAgB,CAAA;AAmGvB,wBAAgB,gCAAgC,IAAI,sBAAsB,CAoJzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentSupabase.d.ts","sourceRoot":"","sources":["../../src/data/contentSupabase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,gBAAgB,CAAA;AAmDvB,wBAAgB,oCAAoC,IAAI,sBAAsB,CA4M7E"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export type PostFormat = 'reel' | 'static' | 'carousel' | 'story' | 'video' | 'live' | 'article';
|
|
2
|
+
/** Platforms an account can publish to. UI-driven list (the DB stores plain
|
|
3
|
+
* text[]), so growing it is a one-line change here. */
|
|
4
|
+
export declare const PLATFORMS: readonly ["instagram", "tiktok", "youtube", "facebook", "linkedin", "x", "pinterest", "threads"];
|
|
5
|
+
export type Platform = (typeof PLATFORMS)[number];
|
|
6
|
+
export type PostStatus = 'idea' | 'script' | 'recording' | 'editing' | 'scheduled' | 'published';
|
|
7
|
+
export declare const POST_STATUS_ORDER: PostStatus[];
|
|
8
|
+
export interface SocialAccount {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
handle?: string;
|
|
12
|
+
/** Platforms this account/brand publishes to (one account, many connections). */
|
|
13
|
+
platforms: string[];
|
|
14
|
+
isActive: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ContentPlan {
|
|
17
|
+
id: string;
|
|
18
|
+
accountId: string;
|
|
19
|
+
name: string;
|
|
20
|
+
status: 'draft' | 'active' | 'archived';
|
|
21
|
+
weeksCount: number;
|
|
22
|
+
startDate?: string;
|
|
23
|
+
/** Structured "what we want" config — feeds chips + future AI drafting. */
|
|
24
|
+
objective?: string;
|
|
25
|
+
tone?: string;
|
|
26
|
+
pillars: string[];
|
|
27
|
+
formats: PostFormat[];
|
|
28
|
+
weeklyFrequency: number;
|
|
29
|
+
/** Free-form brief/strategy document (markdown). */
|
|
30
|
+
briefMd: string;
|
|
31
|
+
}
|
|
32
|
+
/** Recording-day checklist item (on-set companion). */
|
|
33
|
+
export interface ChecklistItem {
|
|
34
|
+
id: string;
|
|
35
|
+
text: string;
|
|
36
|
+
done: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface ContentPost {
|
|
39
|
+
id: string;
|
|
40
|
+
planId: string;
|
|
41
|
+
weekNumber: number;
|
|
42
|
+
position: number;
|
|
43
|
+
title: string;
|
|
44
|
+
format: PostFormat;
|
|
45
|
+
status: PostStatus;
|
|
46
|
+
scheduledDate?: string;
|
|
47
|
+
/** Target platforms for this post; empty = inherit the account's platforms. */
|
|
48
|
+
platforms: string[];
|
|
49
|
+
/** Recording-day checklist — persisted as the crew checks items off. */
|
|
50
|
+
checklist: ChecklistItem[];
|
|
51
|
+
/** Uploaded asset URL (static posts: caption + final art instead of a script). */
|
|
52
|
+
mediaUrl?: string;
|
|
53
|
+
hook?: string;
|
|
54
|
+
cta?: string;
|
|
55
|
+
/** The Notion-style page body — the script/plan in markdown. */
|
|
56
|
+
contentMd: string;
|
|
57
|
+
updatedAt?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface SaveSocialAccountInput {
|
|
60
|
+
id?: string;
|
|
61
|
+
name: string;
|
|
62
|
+
handle?: string;
|
|
63
|
+
platforms?: string[];
|
|
64
|
+
isActive?: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface SaveContentPlanInput {
|
|
67
|
+
id?: string;
|
|
68
|
+
accountId?: string;
|
|
69
|
+
name?: string;
|
|
70
|
+
status?: ContentPlan['status'];
|
|
71
|
+
weeksCount?: number;
|
|
72
|
+
startDate?: string | null;
|
|
73
|
+
objective?: string;
|
|
74
|
+
tone?: string;
|
|
75
|
+
pillars?: string[];
|
|
76
|
+
formats?: PostFormat[];
|
|
77
|
+
weeklyFrequency?: number;
|
|
78
|
+
briefMd?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface SaveContentPostInput {
|
|
81
|
+
id?: string;
|
|
82
|
+
planId?: string;
|
|
83
|
+
weekNumber?: number;
|
|
84
|
+
position?: number;
|
|
85
|
+
title?: string;
|
|
86
|
+
format?: PostFormat;
|
|
87
|
+
status?: PostStatus;
|
|
88
|
+
scheduledDate?: string | null;
|
|
89
|
+
platforms?: string[];
|
|
90
|
+
checklist?: ChecklistItem[];
|
|
91
|
+
mediaUrl?: string | null;
|
|
92
|
+
hook?: string;
|
|
93
|
+
cta?: string;
|
|
94
|
+
contentMd?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface ContentPlannerProvider {
|
|
97
|
+
listAccounts(): Promise<SocialAccount[]>;
|
|
98
|
+
saveAccount(input: SaveSocialAccountInput): Promise<SocialAccount>;
|
|
99
|
+
/** Hard delete — plans and posts cascade with the account. */
|
|
100
|
+
deleteAccount(id: string): Promise<void>;
|
|
101
|
+
listPlans(accountId: string): Promise<ContentPlan[]>;
|
|
102
|
+
getPlan(id: string): Promise<ContentPlan | null>;
|
|
103
|
+
savePlan(input: SaveContentPlanInput): Promise<ContentPlan>;
|
|
104
|
+
deletePlan(id: string): Promise<void>;
|
|
105
|
+
/** Ordered by week_number then position. */
|
|
106
|
+
listPosts(planId: string): Promise<ContentPost[]>;
|
|
107
|
+
getPost(id: string): Promise<ContentPost | null>;
|
|
108
|
+
savePost(input: SaveContentPostInput): Promise<ContentPost>;
|
|
109
|
+
deletePost(id: string): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=contentTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentTypes.d.ts","sourceRoot":"","sources":["../../src/data/contentTypes.ts"],"names":[],"mappings":"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"}
|