@begryp/blog-automation-admin 0.0.0-stage → 0.1.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 (90) hide show
  1. package/dist/adapters/env-key-vault.d.ts +12 -0
  2. package/dist/adapters/env-key-vault.d.ts.map +1 -0
  3. package/dist/adapters/env-key-vault.js +46 -0
  4. package/dist/adapters/env-key-vault.js.map +1 -0
  5. package/dist/adapters/html.d.ts +18 -0
  6. package/dist/adapters/html.d.ts.map +1 -0
  7. package/dist/adapters/html.js +130 -0
  8. package/dist/adapters/html.js.map +1 -0
  9. package/dist/adapters/index.d.ts +5 -0
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +5 -0
  12. package/dist/adapters/index.js.map +1 -0
  13. package/dist/adapters/supabase-publisher.d.ts +30 -0
  14. package/dist/adapters/supabase-publisher.d.ts.map +1 -0
  15. package/dist/adapters/supabase-publisher.js +120 -0
  16. package/dist/adapters/supabase-publisher.js.map +1 -0
  17. package/dist/adapters/supabase-run-store.d.ts +15 -0
  18. package/dist/adapters/supabase-run-store.d.ts.map +1 -0
  19. package/dist/adapters/supabase-run-store.js +92 -0
  20. package/dist/adapters/supabase-run-store.js.map +1 -0
  21. package/dist/automation/index.d.ts +3 -0
  22. package/dist/automation/index.d.ts.map +1 -0
  23. package/dist/automation/index.js +3 -0
  24. package/dist/automation/index.js.map +1 -0
  25. package/dist/automation/runner.d.ts +45 -0
  26. package/dist/automation/runner.d.ts.map +1 -0
  27. package/dist/automation/runner.js +195 -0
  28. package/dist/automation/runner.js.map +1 -0
  29. package/dist/automation/types.d.ts +41 -0
  30. package/dist/automation/types.d.ts.map +1 -0
  31. package/dist/automation/types.js +12 -0
  32. package/dist/automation/types.js.map +1 -0
  33. package/dist/components/AutoGenerateBlogModal.d.ts +18 -0
  34. package/dist/components/AutoGenerateBlogModal.d.ts.map +1 -0
  35. package/dist/components/AutoGenerateBlogModal.js +99 -0
  36. package/dist/components/AutoGenerateBlogModal.js.map +1 -0
  37. package/dist/components/RichText.d.ts +9 -0
  38. package/dist/components/RichText.d.ts.map +1 -0
  39. package/dist/components/RichText.js +56 -0
  40. package/dist/components/RichText.js.map +1 -0
  41. package/dist/components/Shell.d.ts +18 -0
  42. package/dist/components/Shell.d.ts.map +1 -0
  43. package/dist/components/Shell.js +35 -0
  44. package/dist/components/Shell.js.map +1 -0
  45. package/dist/components/index.d.ts +4 -0
  46. package/dist/components/index.d.ts.map +1 -0
  47. package/dist/components/index.js +4 -0
  48. package/dist/components/index.js.map +1 -0
  49. package/dist/entities/index.d.ts +5 -0
  50. package/dist/entities/index.d.ts.map +1 -0
  51. package/dist/entities/index.js +5 -0
  52. package/dist/entities/index.js.map +1 -0
  53. package/dist/entities/registry.d.ts +10 -0
  54. package/dist/entities/registry.d.ts.map +1 -0
  55. package/dist/entities/registry.js +43 -0
  56. package/dist/entities/registry.js.map +1 -0
  57. package/dist/entities/schemas/blogs.d.ts +3 -0
  58. package/dist/entities/schemas/blogs.d.ts.map +1 -0
  59. package/dist/entities/schemas/blogs.js +110 -0
  60. package/dist/entities/schemas/blogs.js.map +1 -0
  61. package/dist/entities/schemas/enquiries.d.ts +3 -0
  62. package/dist/entities/schemas/enquiries.d.ts.map +1 -0
  63. package/dist/entities/schemas/enquiries.js +67 -0
  64. package/dist/entities/schemas/enquiries.js.map +1 -0
  65. package/dist/entities/types.d.ts +38 -0
  66. package/dist/entities/types.d.ts.map +1 -0
  67. package/dist/entities/types.js +2 -0
  68. package/dist/entities/types.js.map +1 -0
  69. package/dist/index.d.ts +10 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +10 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/theme/defaultTheme.d.ts +3 -0
  74. package/dist/theme/defaultTheme.d.ts.map +1 -0
  75. package/dist/theme/defaultTheme.js +22 -0
  76. package/dist/theme/defaultTheme.js.map +1 -0
  77. package/dist/theme/index.d.ts +4 -0
  78. package/dist/theme/index.d.ts.map +1 -0
  79. package/dist/theme/index.js +4 -0
  80. package/dist/theme/index.js.map +1 -0
  81. package/dist/theme/inject.d.ts +10 -0
  82. package/dist/theme/inject.d.ts.map +1 -0
  83. package/dist/theme/inject.js +46 -0
  84. package/dist/theme/inject.js.map +1 -0
  85. package/dist/theme/types.d.ts +30 -0
  86. package/dist/theme/types.d.ts.map +1 -0
  87. package/dist/theme/types.js +2 -0
  88. package/dist/theme/types.js.map +1 -0
  89. package/package.json +72 -4
  90. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { EntityDef, EntityRegistry, Field } from "./types.js";
2
+ export declare const standardEntities: EntityRegistry;
3
+ export declare function createEntityRegistry(customEntities?: Record<string, EntityDef>): EntityRegistry;
4
+ export declare function fieldVisible(field: Field, values: Record<string, unknown>): boolean;
5
+ export declare function sectionsOf(def: EntityDef): {
6
+ name: string;
7
+ fields: Field[];
8
+ }[];
9
+ export declare function getDefaultValues(def: EntityDef): Record<string, unknown>;
10
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/entities/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInE,eAAO,MAAM,gBAAgB,EAAE,cAG9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,cAAc,CAK/F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAInF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,EAAE,CAY9E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYxE"}
@@ -0,0 +1,43 @@
1
+ import { blogsEntity } from "./schemas/blogs.js";
2
+ import { enquiriesEntity } from "./schemas/enquiries.js";
3
+ export const standardEntities = {
4
+ blogs: blogsEntity,
5
+ enquiries: enquiriesEntity
6
+ };
7
+ export function createEntityRegistry(customEntities) {
8
+ return {
9
+ ...standardEntities,
10
+ ...(customEntities || {})
11
+ };
12
+ }
13
+ export function fieldVisible(field, values) {
14
+ if (!field.showIf)
15
+ return true;
16
+ const currentVal = values[field.showIf.field];
17
+ return field.showIf.in.includes(currentVal);
18
+ }
19
+ export function sectionsOf(def) {
20
+ const sections = [];
21
+ for (const f of def.fields) {
22
+ const secName = f.section ?? "Details";
23
+ let group = sections.find((s) => s.name === secName);
24
+ if (!group) {
25
+ group = { name: secName, fields: [] };
26
+ sections.push(group);
27
+ }
28
+ group.fields.push(f);
29
+ }
30
+ return sections;
31
+ }
32
+ export function getDefaultValues(def) {
33
+ const result = {
34
+ ...(def.defaultValues || {})
35
+ };
36
+ for (const f of def.fields) {
37
+ if (f.defaultValue !== undefined && result[f.name] === undefined) {
38
+ result[f.name] = f.defaultValue;
39
+ }
40
+ }
41
+ return result;
42
+ }
43
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/entities/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;CAC3B,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,cAA0C;IAC7E,OAAO;QACL,GAAG,gBAAgB;QACnB,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,MAA+B;IACxE,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAuC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAc;IACvC,MAAM,QAAQ,GAAwC,EAAE,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;QACvC,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAc;IAC7C,MAAM,MAAM,GAA4B;QACtC,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;KAC7B,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { EntityDef } from "../types.js";
2
+ export declare const blogsEntity: EntityDef;
3
+ //# sourceMappingURL=blogs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blogs.d.ts","sourceRoot":"","sources":["../../../src/entities/schemas/blogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,SA4GzB,CAAC"}
@@ -0,0 +1,110 @@
1
+ export const blogsEntity = {
2
+ key: "blogs",
3
+ label: "Blog Articles",
4
+ singular: "Article",
5
+ path: "/admin/blogs",
6
+ titleField: "title",
7
+ hasSlug: true,
8
+ tags: ["blogs"],
9
+ intro: "Thought leadership articles, technical insights, and automated blog content.",
10
+ defaultValues: {
11
+ category: "General",
12
+ author: "Editorial Team",
13
+ author_title: "Author & Consultant",
14
+ reading_time_minutes: 4,
15
+ content: "",
16
+ ai_disclosed: true,
17
+ status: "draft"
18
+ },
19
+ fields: [
20
+ {
21
+ name: "title",
22
+ label: "Article Title",
23
+ type: "text",
24
+ required: true,
25
+ max: 140,
26
+ section: "Article",
27
+ placeholder: "e.g. Modern Web Architecture Patterns for 2026"
28
+ },
29
+ {
30
+ name: "summary",
31
+ label: "Summary / Excerpt",
32
+ type: "textarea",
33
+ required: true,
34
+ max: 300,
35
+ section: "Article",
36
+ help: "A concise overview for search engine snippets and preview cards."
37
+ },
38
+ {
39
+ name: "category",
40
+ label: "Category",
41
+ type: "text",
42
+ section: "Article",
43
+ width: "half",
44
+ placeholder: "Technology, Architecture, Cloud"
45
+ },
46
+ {
47
+ name: "author",
48
+ label: "Author Name",
49
+ type: "text",
50
+ section: "Article",
51
+ width: "half",
52
+ placeholder: "Editorial Team"
53
+ },
54
+ {
55
+ name: "author_title",
56
+ label: "Author Title / Role",
57
+ type: "text",
58
+ section: "Article",
59
+ width: "half",
60
+ placeholder: "Principal Consultant"
61
+ },
62
+ {
63
+ name: "reading_time_minutes",
64
+ label: "Reading Time (mins)",
65
+ type: "number",
66
+ section: "Article",
67
+ width: "half",
68
+ defaultValue: 4
69
+ },
70
+ {
71
+ name: "content",
72
+ label: "Article Content",
73
+ type: "richtext",
74
+ required: true,
75
+ section: "Content"
76
+ },
77
+ {
78
+ name: "media_id",
79
+ label: "Featured Cover Image",
80
+ type: "media",
81
+ section: "Media",
82
+ help: "Landscape image formatted for social and banner display."
83
+ },
84
+ {
85
+ name: "meta_title",
86
+ label: "SEO Title",
87
+ type: "text",
88
+ max: 70,
89
+ section: "SEO",
90
+ placeholder: "Defaults to article title if left blank"
91
+ },
92
+ {
93
+ name: "meta_description",
94
+ label: "SEO Meta Description",
95
+ type: "textarea",
96
+ max: 160,
97
+ section: "SEO",
98
+ help: "Recommended length: 140-160 characters."
99
+ },
100
+ {
101
+ name: "ai_disclosed",
102
+ label: "Disclose AI Drafting Assistance",
103
+ type: "toggle",
104
+ section: "SEO",
105
+ defaultValue: true,
106
+ help: "Displays a transparent editorial note about AI drafting and human review."
107
+ }
108
+ ]
109
+ };
110
+ //# sourceMappingURL=blogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blogs.js","sourceRoot":"","sources":["../../../src/entities/schemas/blogs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,KAAK,EAAE,8EAA8E;IACrF,aAAa,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,qBAAqB;QACnC,oBAAoB,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO;KAChB;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,gDAAgD;SAC9D;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,kEAAkE;SACzE;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,iCAAiC;SAC/C;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,gBAAgB;SAC9B;QACD;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,qBAAqB;YAC5B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,sBAAsB;SACpC;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,qBAAqB;YAC5B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,CAAC;SAChB;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,SAAS;SACnB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,0DAA0D;SACjE;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,yCAAyC;SACvD;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,yCAAyC;SAChD;QACD;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,iCAAiC;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,2EAA2E;SAClF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { EntityDef } from "../types.js";
2
+ export declare const enquiriesEntity: EntityDef;
3
+ //# sourceMappingURL=enquiries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enquiries.d.ts","sourceRoot":"","sources":["../../../src/entities/schemas/enquiries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,eAAe,EAAE,SAiE7B,CAAC"}
@@ -0,0 +1,67 @@
1
+ export const enquiriesEntity = {
2
+ key: "enquiries",
3
+ label: "Lead Enquiries",
4
+ singular: "Enquiry",
5
+ path: "/admin/enquiries",
6
+ titleField: "full_name",
7
+ hasSlug: false,
8
+ tags: ["enquiries"],
9
+ intro: "Incoming customer inquiries, quote requests, and consultation leads.",
10
+ defaultValues: {
11
+ status: "new"
12
+ },
13
+ fields: [
14
+ {
15
+ name: "full_name",
16
+ label: "Full Name",
17
+ type: "text",
18
+ required: true,
19
+ section: "Contact",
20
+ placeholder: "Jane Doe"
21
+ },
22
+ {
23
+ name: "email",
24
+ label: "Email Address",
25
+ type: "text",
26
+ required: true,
27
+ section: "Contact",
28
+ width: "half",
29
+ placeholder: "jane@example.com"
30
+ },
31
+ {
32
+ name: "phone",
33
+ label: "Phone Number",
34
+ type: "text",
35
+ section: "Contact",
36
+ width: "half",
37
+ placeholder: "+254 700 000000"
38
+ },
39
+ {
40
+ name: "subject",
41
+ label: "Subject",
42
+ type: "text",
43
+ section: "Enquiry Details",
44
+ placeholder: "Consulting inquiry"
45
+ },
46
+ {
47
+ name: "message",
48
+ label: "Message Content",
49
+ type: "textarea",
50
+ required: true,
51
+ section: "Enquiry Details"
52
+ },
53
+ {
54
+ name: "status",
55
+ label: "Status",
56
+ type: "select",
57
+ section: "Follow-up",
58
+ options: [
59
+ { value: "new", label: "New (Unread)", hint: "Needs review" },
60
+ { value: "contacted", label: "Contacted", hint: "Outreach in progress" },
61
+ { value: "resolved", label: "Resolved", hint: "Closed successfully" },
62
+ { value: "spam", label: "Spam", hint: "Irrelevant or unsolicited" }
63
+ ]
64
+ }
65
+ ]
66
+ };
67
+ //# sourceMappingURL=enquiries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enquiries.js","sourceRoot":"","sources":["../../../src/entities/schemas/enquiries.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,GAAG,EAAE,WAAW;IAChB,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,kBAAkB;IACxB,UAAU,EAAE,WAAW;IACvB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,KAAK,EAAE,sEAAsE;IAC7E,aAAa,EAAE;QACb,MAAM,EAAE,KAAK;KACd;IACD,MAAM,EAAE;QACN;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,UAAU;SACxB;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,kBAAkB;SAChC;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,iBAAiB;SAC/B;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,oBAAoB;SAClC;QACD;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,iBAAiB;SAC3B;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE;gBAC7D,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACxE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE;gBACrE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE;aACpE;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,38 @@
1
+ export type FieldType = "text" | "textarea" | "richtext" | "datetime" | "select" | "toggle" | "media" | "link" | "number" | "category" | "json";
2
+ export interface FieldOption {
3
+ value: string;
4
+ label: string;
5
+ hint?: string;
6
+ }
7
+ export interface Field {
8
+ name: string;
9
+ label: string;
10
+ type: FieldType;
11
+ help?: string;
12
+ placeholder?: string;
13
+ options?: FieldOption[];
14
+ required?: boolean;
15
+ max?: number;
16
+ min?: number;
17
+ section?: string;
18
+ showIf?: {
19
+ field: string;
20
+ in: (string | boolean | number)[];
21
+ };
22
+ width?: "full" | "half";
23
+ defaultValue?: unknown;
24
+ }
25
+ export interface EntityDef {
26
+ key: string;
27
+ label: string;
28
+ singular: string;
29
+ path: string;
30
+ titleField: string;
31
+ hasSlug?: boolean;
32
+ intro: string;
33
+ fields: Field[];
34
+ tags?: string[];
35
+ defaultValues?: Record<string, unknown>;
36
+ }
37
+ export type EntityRegistry = Record<string, EntityDef>;
38
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entities/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,GACR,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/entities/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module @begryp/blog-automation-admin
3
+ * Reusable white-label Next.js + Supabase admin system and blog automation engine.
4
+ */
5
+ export * from "./theme/index.js";
6
+ export * from "./entities/index.js";
7
+ export * from "./adapters/index.js";
8
+ export * from "./automation/index.js";
9
+ export * from "./components/index.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module @begryp/blog-automation-admin
3
+ * Reusable white-label Next.js + Supabase admin system and blog automation engine.
4
+ */
5
+ export * from "./theme/index.js";
6
+ export * from "./entities/index.js";
7
+ export * from "./adapters/index.js";
8
+ export * from "./automation/index.js";
9
+ export * from "./components/index.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AdminThemeConfig } from "./types.js";
2
+ export declare const defaultTheme: AdminThemeConfig;
3
+ //# sourceMappingURL=defaultTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,YAAY,EAAE,gBAoB1B,CAAC"}
@@ -0,0 +1,22 @@
1
+ export const defaultTheme = {
2
+ brand: {
3
+ siteName: "Agency Client Admin",
4
+ homeUrl: "/"
5
+ },
6
+ palette: {
7
+ primary: "#2563eb",
8
+ primaryHover: "#1d4ed8",
9
+ accent: "#f59e0b",
10
+ sidebarBg: "#0f172a",
11
+ sidebarText: "#f8fafc",
12
+ surfaceBg: "#ffffff",
13
+ border: "#e2e8f0",
14
+ textPrimary: "#0f172a",
15
+ textMuted: "#64748b"
16
+ },
17
+ typography: {
18
+ fontSans: "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
19
+ },
20
+ agencySignature: true
21
+ };
22
+ //# sourceMappingURL=defaultTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultTheme.js","sourceRoot":"","sources":["../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,KAAK,EAAE;QACL,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,GAAG;KACb;IACD,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,SAAS;KACrB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,8EAA8E;KACzF;IACD,eAAe,EAAE,IAAI;CACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./types.js";
2
+ export * from "./defaultTheme.js";
3
+ export * from "./inject.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./types.js";
2
+ export * from "./defaultTheme.js";
3
+ export * from "./inject.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AdminThemeConfig } from "./types.js";
2
+ /**
3
+ * Returns a dictionary of CSS custom property names and values from an AdminThemeConfig.
4
+ */
5
+ export declare function getAdminCssVariables(config?: Partial<AdminThemeConfig>): Record<string, string>;
6
+ /**
7
+ * Returns raw CSS style block string for injection into the document head or layout.
8
+ */
9
+ export declare function getAdminThemeCssString(config?: Partial<AdminThemeConfig>): string;
10
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/theme/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkC/F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAOjF"}
@@ -0,0 +1,46 @@
1
+ import { defaultTheme } from "./defaultTheme.js";
2
+ /**
3
+ * Returns a dictionary of CSS custom property names and values from an AdminThemeConfig.
4
+ */
5
+ export function getAdminCssVariables(config) {
6
+ const mergedPalette = {
7
+ ...defaultTheme.palette,
8
+ ...config?.palette
9
+ };
10
+ const mergedTypography = {
11
+ ...defaultTheme.typography,
12
+ ...config?.typography
13
+ };
14
+ const vars = {
15
+ "--admin-primary": mergedPalette.primary,
16
+ "--admin-primary-hover": mergedPalette.primaryHover || mergedPalette.primary,
17
+ "--admin-accent": mergedPalette.accent || "#f59e0b",
18
+ "--admin-sidebar-bg": mergedPalette.sidebarBg || "#0f172a",
19
+ "--admin-sidebar-text": mergedPalette.sidebarText || "#f8fafc",
20
+ "--admin-surface-bg": mergedPalette.surfaceBg || "#ffffff",
21
+ "--admin-border": mergedPalette.border || "#e2e8f0",
22
+ "--admin-text-primary": mergedPalette.textPrimary || "#0f172a",
23
+ "--admin-text-muted": mergedPalette.textMuted || "#64748b"
24
+ };
25
+ if (mergedTypography.fontSans) {
26
+ vars["--admin-font-sans"] = mergedTypography.fontSans;
27
+ }
28
+ if (mergedTypography.fontDisplay) {
29
+ vars["--admin-font-display"] = mergedTypography.fontDisplay;
30
+ }
31
+ if (mergedTypography.fontMono) {
32
+ vars["--admin-font-mono"] = mergedTypography.fontMono;
33
+ }
34
+ return vars;
35
+ }
36
+ /**
37
+ * Returns raw CSS style block string for injection into the document head or layout.
38
+ */
39
+ export function getAdminThemeCssString(config) {
40
+ const vars = getAdminCssVariables(config);
41
+ const rules = Object.entries(vars)
42
+ .map(([key, val]) => ` ${key}: ${val};`)
43
+ .join("\n");
44
+ return `:root, [data-admin-theme] {\n${rules}\n}`;
45
+ }
46
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/theme/inject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkC;IACrE,MAAM,aAAa,GAAG;QACpB,GAAG,YAAY,CAAC,OAAO;QACvB,GAAG,MAAM,EAAE,OAAO;KACnB,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,GAAG,YAAY,CAAC,UAAU;QAC1B,GAAG,MAAM,EAAE,UAAU;KACtB,CAAC;IAEF,MAAM,IAAI,GAA2B;QACnC,iBAAiB,EAAE,aAAa,CAAC,OAAO;QACxC,uBAAuB,EAAE,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,OAAO;QAC5E,gBAAgB,EAAE,aAAa,CAAC,MAAM,IAAI,SAAS;QACnD,oBAAoB,EAAE,aAAa,CAAC,SAAS,IAAI,SAAS;QAC1D,sBAAsB,EAAE,aAAa,CAAC,WAAW,IAAI,SAAS;QAC9D,oBAAoB,EAAE,aAAa,CAAC,SAAS,IAAI,SAAS;QAC1D,gBAAgB,EAAE,aAAa,CAAC,MAAM,IAAI,SAAS;QACnD,sBAAsB,EAAE,aAAa,CAAC,WAAW,IAAI,SAAS;QAC9D,oBAAoB,EAAE,aAAa,CAAC,SAAS,IAAI,SAAS;KAC3D,CAAC;IAEF,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IACxD,CAAC;IACD,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC;IAC9D,CAAC;IACD,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IACxD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAkC;IACvE,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,gCAAgC,KAAK,KAAK,CAAC;AACpD,CAAC"}
@@ -0,0 +1,30 @@
1
+ export interface AdminPaletteTokens {
2
+ primary: string;
3
+ primaryHover?: string;
4
+ accent?: string;
5
+ sidebarBg?: string;
6
+ sidebarText?: string;
7
+ surfaceBg?: string;
8
+ border?: string;
9
+ textPrimary?: string;
10
+ textMuted?: string;
11
+ }
12
+ export interface AdminTypographyTokens {
13
+ fontSans?: string;
14
+ fontDisplay?: string;
15
+ fontMono?: string;
16
+ }
17
+ export interface AdminBrandIdentity {
18
+ siteName: string;
19
+ logoUrl?: string;
20
+ logoDarkUrl?: string;
21
+ favicon?: string;
22
+ homeUrl?: string;
23
+ }
24
+ export interface AdminThemeConfig {
25
+ brand: AdminBrandIdentity;
26
+ palette: AdminPaletteTokens;
27
+ typography?: AdminTypographyTokens;
28
+ agencySignature?: boolean;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,74 @@
1
1
  {
2
2
  "name": "@begryp/blog-automation-admin",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "White-label Next.js + Supabase admin system and blog automation dashboard for agency client sites.",
5
+ "license": "MIT",
6
+ "sideEffects": false,
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/Begryp-Org/blog-automation.git",
13
+ "directory": "packages/admin"
14
+ },
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "test": "vitest run"
20
+ },
21
+ "type": "module",
22
+ "engines": {
23
+ "node": ">=20.9.0"
24
+ },
25
+ "dependencies": {
26
+ "@begryp/blog-automation-core": "workspace:*",
27
+ "@begryp/blog-automation-prompts": "workspace:*",
28
+ "clsx": "^2.1.1",
29
+ "tailwind-merge": "^2.5.4"
30
+ },
31
+ "peerDependencies": {
32
+ "@supabase/supabase-js": "^2.45.0",
33
+ "@tiptap/extension-link": "^2.0.0 || ^3.0.0",
34
+ "@tiptap/react": "^2.0.0 || ^3.0.0",
35
+ "@tiptap/starter-kit": "^2.0.0 || ^3.0.0",
36
+ "lucide-react": ">=0.400.0 || >=1.0.0",
37
+ "next": "^14.0.0 || ^15.0.0 || ^16.0.0",
38
+ "react": "^18.0.0 || ^19.0.0",
39
+ "react-dom": "^18.0.0 || ^19.0.0"
40
+ },
41
+ "peerDependenciesMeta": {
42
+ "lucide-react": {
43
+ "optional": true
44
+ },
45
+ "@tiptap/extension-link": {
46
+ "optional": true
47
+ },
48
+ "@tiptap/react": {
49
+ "optional": true
50
+ },
51
+ "@tiptap/starter-kit": {
52
+ "optional": true
53
+ },
54
+ "next": {
55
+ "optional": true
56
+ }
57
+ },
58
+ "devDependencies": {
59
+ "@types/node": "^22.13.4",
60
+ "@types/react": "^19.0.0",
61
+ "@types/react-dom": "^19.0.0",
62
+ "typescript": "^5.7.3"
63
+ },
64
+ "exports": {
65
+ ".": {
66
+ "types": "./dist/index.d.ts",
67
+ "import": "./dist/index.js",
68
+ "default": "./dist/index.js"
69
+ }
70
+ },
71
+ "files": [
72
+ "dist"
73
+ ]
74
+ }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.