@burdenoff/microfe-theculturepost 2026.509.101

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 (102) hide show
  1. package/README.md +12 -0
  2. package/dist/dev/main.d.ts +2 -0
  3. package/dist/dev/main.d.ts.map +1 -0
  4. package/dist/generated/global-operations.d.ts +2 -0
  5. package/dist/generated/global-operations.d.ts.map +1 -0
  6. package/dist/generated/global-types.d.ts +18199 -0
  7. package/dist/generated/global-types.d.ts.map +1 -0
  8. package/dist/generated/wspace-operations.d.ts +2 -0
  9. package/dist/generated/wspace-operations.d.ts.map +1 -0
  10. package/dist/generated/wspace-types.d.ts +43046 -0
  11. package/dist/generated/wspace-types.d.ts.map +1 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +5 -0
  15. package/dist/theculturepost/TheCulturePostRoot.d.ts +5 -0
  16. package/dist/theculturepost/TheCulturePostRoot.d.ts.map +1 -0
  17. package/dist/theculturepost/TheCulturePostRoot.js +179 -0
  18. package/dist/theculturepost/TheCulturePostRoot.js.map +1 -0
  19. package/dist/theculturepost/TheCulturePostRoutes.d.ts +2 -0
  20. package/dist/theculturepost/TheCulturePostRoutes.d.ts.map +1 -0
  21. package/dist/theculturepost/TheCulturePostRoutes.js +87 -0
  22. package/dist/theculturepost/TheCulturePostRoutes.js.map +1 -0
  23. package/dist/theculturepost/index.d.ts +5 -0
  24. package/dist/theculturepost/index.d.ts.map +1 -0
  25. package/dist/theculturepost/index.js +3 -0
  26. package/dist/theculturepost/pages/AnalyticsPage.d.ts +2 -0
  27. package/dist/theculturepost/pages/AnalyticsPage.d.ts.map +1 -0
  28. package/dist/theculturepost/pages/AnalyticsPage.js +97 -0
  29. package/dist/theculturepost/pages/AnalyticsPage.js.map +1 -0
  30. package/dist/theculturepost/pages/CommunityPage.d.ts +2 -0
  31. package/dist/theculturepost/pages/CommunityPage.d.ts.map +1 -0
  32. package/dist/theculturepost/pages/CommunityPage.js +166 -0
  33. package/dist/theculturepost/pages/CommunityPage.js.map +1 -0
  34. package/dist/theculturepost/pages/ContributionsPage.d.ts +2 -0
  35. package/dist/theculturepost/pages/ContributionsPage.d.ts.map +1 -0
  36. package/dist/theculturepost/pages/ContributionsPage.js +129 -0
  37. package/dist/theculturepost/pages/ContributionsPage.js.map +1 -0
  38. package/dist/theculturepost/pages/CulturalRepositoryGraphqlPage.d.ts +2 -0
  39. package/dist/theculturepost/pages/CulturalRepositoryGraphqlPage.d.ts.map +1 -0
  40. package/dist/theculturepost/pages/CulturalRepositoryGraphqlPage.js +149 -0
  41. package/dist/theculturepost/pages/CulturalRepositoryGraphqlPage.js.map +1 -0
  42. package/dist/theculturepost/pages/CulturalRepositoryPage.d.ts +2 -0
  43. package/dist/theculturepost/pages/CulturalRepositoryPage.d.ts.map +1 -0
  44. package/dist/theculturepost/pages/CulturalRepositoryPage.js +214 -0
  45. package/dist/theculturepost/pages/CulturalRepositoryPage.js.map +1 -0
  46. package/dist/theculturepost/pages/DashboardPage.d.ts +2 -0
  47. package/dist/theculturepost/pages/DashboardPage.d.ts.map +1 -0
  48. package/dist/theculturepost/pages/DashboardPage.js +192 -0
  49. package/dist/theculturepost/pages/DashboardPage.js.map +1 -0
  50. package/dist/theculturepost/pages/DiscoveryPage.d.ts +2 -0
  51. package/dist/theculturepost/pages/DiscoveryPage.d.ts.map +1 -0
  52. package/dist/theculturepost/pages/DiscoveryPage.js +93 -0
  53. package/dist/theculturepost/pages/DiscoveryPage.js.map +1 -0
  54. package/dist/theculturepost/pages/DiscussionsPage.d.ts +2 -0
  55. package/dist/theculturepost/pages/DiscussionsPage.d.ts.map +1 -0
  56. package/dist/theculturepost/pages/DiscussionsPage.js +113 -0
  57. package/dist/theculturepost/pages/DiscussionsPage.js.map +1 -0
  58. package/dist/theculturepost/pages/EventsPage.d.ts +2 -0
  59. package/dist/theculturepost/pages/EventsPage.d.ts.map +1 -0
  60. package/dist/theculturepost/pages/EventsPage.js +90 -0
  61. package/dist/theculturepost/pages/EventsPage.js.map +1 -0
  62. package/dist/theculturepost/pages/HeritagePage.d.ts +2 -0
  63. package/dist/theculturepost/pages/HeritagePage.d.ts.map +1 -0
  64. package/dist/theculturepost/pages/HeritagePage.js +167 -0
  65. package/dist/theculturepost/pages/HeritagePage.js.map +1 -0
  66. package/dist/theculturepost/pages/LearningPage.d.ts +2 -0
  67. package/dist/theculturepost/pages/LearningPage.d.ts.map +1 -0
  68. package/dist/theculturepost/pages/LearningPage.js +191 -0
  69. package/dist/theculturepost/pages/LearningPage.js.map +1 -0
  70. package/dist/theculturepost/pages/MapPage.d.ts +2 -0
  71. package/dist/theculturepost/pages/MapPage.d.ts.map +1 -0
  72. package/dist/theculturepost/pages/MapPage.js +99 -0
  73. package/dist/theculturepost/pages/MapPage.js.map +1 -0
  74. package/dist/theculturepost/pages/MarketplacePage.d.ts +2 -0
  75. package/dist/theculturepost/pages/MarketplacePage.d.ts.map +1 -0
  76. package/dist/theculturepost/pages/MarketplacePage.js +102 -0
  77. package/dist/theculturepost/pages/MarketplacePage.js.map +1 -0
  78. package/dist/theculturepost/pages/ResourcesPage.d.ts +2 -0
  79. package/dist/theculturepost/pages/ResourcesPage.d.ts.map +1 -0
  80. package/dist/theculturepost/pages/ResourcesPage.js +90 -0
  81. package/dist/theculturepost/pages/ResourcesPage.js.map +1 -0
  82. package/dist/theculturepost/providers/TheCulturePostProvider.d.ts +6 -0
  83. package/dist/theculturepost/providers/TheCulturePostProvider.d.ts.map +1 -0
  84. package/dist/theculturepost/providers/TheCulturePostProvider.js +27 -0
  85. package/dist/theculturepost/providers/TheCulturePostProvider.js.map +1 -0
  86. package/dist/theculturepost/store/theculturepostStore.d.ts +159 -0
  87. package/dist/theculturepost/store/theculturepostStore.d.ts.map +1 -0
  88. package/dist/theculturepost/store/theculturepostStore.js +607 -0
  89. package/dist/theculturepost/store/theculturepostStore.js.map +1 -0
  90. package/dist/theculturepost/types/index.d.ts +51 -0
  91. package/dist/theculturepost/types/index.d.ts.map +1 -0
  92. package/dist/theculturepost/utils/cn.d.ts +4 -0
  93. package/dist/theculturepost/utils/cn.d.ts.map +1 -0
  94. package/dist/theculturepost/utils/i18n.d.ts +6 -0
  95. package/dist/theculturepost/utils/i18n.d.ts.map +1 -0
  96. package/dist/theculturepost/utils/i18n.js +15 -0
  97. package/dist/theculturepost/utils/i18n.js.map +1 -0
  98. package/dist/theculturepost/utils/navigation.d.ts +2 -0
  99. package/dist/theculturepost/utils/navigation.d.ts.map +1 -0
  100. package/dist/theculturepost/utils/navigation.js +8 -0
  101. package/dist/theculturepost/utils/navigation.js.map +1 -0
  102. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningPage.js","names":[],"sources":["../../../src/theculturepost/pages/LearningPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { BookOpen, Clock, Users, Star, ArrowLeft } from 'lucide-react';\nimport { useTheCulturePostStore } from '../store/theculturepostStore';\n\nconst levelColors: Record<string, string> = {\n Beginner: 'bg-green-100 text-green-800',\n Intermediate: 'bg-yellow-100 text-yellow-800',\n Advanced: 'bg-red-100 text-red-800',\n};\n\nexport function LearningPage() {\n const { learningCourses, selectedCourseId, setSelectedCourseId } = useTheCulturePostStore();\n const selectedCourse = learningCourses.find((c) => c.id === selectedCourseId);\n\n if (selectedCourse) {\n return (\n <div className=\"space-y-6 p-6\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => setSelectedCourseId(null)}>\n <ArrowLeft className=\"h-4 w-4 mr-2\" /> Back to Courses\n </Button>\n <Card>\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div>\n <CardTitle className=\"text-2xl\">{selectedCourse.title}</CardTitle>\n <p className=\"text-muted-foreground mt-1\">by {selectedCourse.instructor}</p>\n </div>\n <span\n className={`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${levelColors[selectedCourse.level]}`}\n >\n {selectedCourse.level}\n </span>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <p className=\"text-sm text-muted-foreground\">{selectedCourse.description}</p>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-4\">\n <div className=\"text-center p-3 bg-muted/50 rounded-lg\">\n <p className=\"text-lg font-bold\">{selectedCourse.lessons}</p>\n <p className=\"text-xs text-muted-foreground\">Lessons</p>\n </div>\n <div className=\"text-center p-3 bg-muted/50 rounded-lg\">\n <p className=\"text-lg font-bold\">{selectedCourse.duration}</p>\n <p className=\"text-xs text-muted-foreground\">Duration</p>\n </div>\n <div className=\"text-center p-3 bg-muted/50 rounded-lg\">\n <p className=\"text-lg font-bold\">{selectedCourse.enrolled}</p>\n <p className=\"text-xs text-muted-foreground\">Enrolled</p>\n </div>\n <div className=\"text-center p-3 bg-muted/50 rounded-lg\">\n <p className=\"text-lg font-bold flex items-center justify-center gap-1\">\n <Star className=\"h-4 w-4 text-yellow-500\" /> {selectedCourse.rating}\n </p>\n <p className=\"text-xs text-muted-foreground\">Rating</p>\n </div>\n </div>\n {selectedCourse.completionRate !== undefined && (\n <div>\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-muted-foreground\">Completion</span>\n <span className=\"font-medium\">{selectedCourse.completionRate}%</span>\n </div>\n <div className=\"h-2 bg-muted rounded-full overflow-hidden\">\n <div\n className=\"h-full bg-primary rounded-full\"\n style={{ width: `${selectedCourse.completionRate}%` }}\n />\n </div>\n </div>\n )}\n <Button className=\"w-full\">\n {selectedCourse.completionRate ? 'Continue Learning' : 'Enroll Now'}\n </Button>\n </CardContent>\n </Card>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold flex items-center gap-2\">\n <BookOpen className=\"h-6 w-6 text-blue-600\" /> Cultural Learning Hub\n </h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n Discover cultural knowledge through respectful education and immersive courses\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-2\">\n {learningCourses.map((course) => (\n <Card\n key={course.id}\n className=\"hover:shadow-md transition-shadow cursor-pointer\"\n onClick={() => setSelectedCourseId(course.id)}\n >\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between\">\n <div>\n <CardTitle className=\"text-lg\">{course.title}</CardTitle>\n <p className=\"text-sm text-muted-foreground mt-1\">by {course.instructor}</p>\n </div>\n <span\n className={`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${levelColors[course.level]}`}\n >\n {course.level}\n </span>\n </div>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-muted-foreground line-clamp-2 mb-3\">\n {course.description}\n </p>\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground flex-wrap\">\n <span className=\"flex items-center gap-1\">\n <Clock className=\"h-3 w-3\" /> {course.duration}\n </span>\n <span className=\"flex items-center gap-1\">\n <Users className=\"h-3 w-3\" /> {course.enrolled} enrolled\n </span>\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" /> {course.rating}\n </span>\n </div>\n <div className=\"flex items-center justify-between mt-3\">\n <Badge variant=\"outline\">{course.category}</Badge>\n <span className=\"text-xs text-muted-foreground\">{course.lessons} lessons</span>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function MapPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=MapPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPage.d.ts","sourceRoot":"","sources":["../../../src/theculturepost/pages/MapPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,OAAO,4CAyFtB"}
@@ -0,0 +1,99 @@
1
+ import { useTheCulturePostStore as e } from "../store/theculturepostStore.js";
2
+ import { Filter as t, Layers as n, MapPin as r, Search as i } from "lucide-react";
3
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ import { Badge as s, Button as c, Card as l, CardContent as u, CardHeader as d, CardTitle as f, Input as p } from "@burdenoff/fe-libs/ui";
5
+ //#region src/theculturepost/pages/MapPage.tsx
6
+ function m() {
7
+ let { mapLocations: m, mapSearchQuery: h, setMapSearchQuery: g } = e(), _ = h ? m.filter((e) => e.name.toLowerCase().includes(h.toLowerCase()) || e.type.toLowerCase().includes(h.toLowerCase())) : m;
8
+ return /* @__PURE__ */ o("div", {
9
+ className: "space-y-6 p-6",
10
+ children: [
11
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ o("h1", {
12
+ className: "text-2xl font-semibold flex items-center gap-2",
13
+ children: [/* @__PURE__ */ a(r, { className: "h-6 w-6 text-blue-600" }), " Cultural Map"]
14
+ }), /* @__PURE__ */ a("p", {
15
+ className: "text-sm text-muted-foreground mt-1",
16
+ children: "Explore cultural heritage sites and communities worldwide"
17
+ })] }),
18
+ /* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, {
19
+ className: "pt-6",
20
+ children: /* @__PURE__ */ o("div", {
21
+ className: "flex gap-4",
22
+ children: [
23
+ /* @__PURE__ */ o("div", {
24
+ className: "flex-1 relative",
25
+ children: [/* @__PURE__ */ a(i, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ a(p, {
26
+ placeholder: "Search locations...",
27
+ className: "pl-10",
28
+ value: h,
29
+ onChange: (e) => g(e.target.value)
30
+ })]
31
+ }),
32
+ /* @__PURE__ */ o(c, {
33
+ variant: "outline",
34
+ size: "sm",
35
+ children: [/* @__PURE__ */ a(t, { className: "h-4 w-4 mr-2" }), " Filter"]
36
+ }),
37
+ /* @__PURE__ */ o(c, {
38
+ variant: "outline",
39
+ size: "sm",
40
+ children: [/* @__PURE__ */ a(n, { className: "h-4 w-4 mr-2" }), " Layers"]
41
+ })
42
+ ]
43
+ })
44
+ }) }),
45
+ /* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, {
46
+ className: "p-0",
47
+ children: /* @__PURE__ */ a("div", {
48
+ className: "h-[400px] bg-muted flex items-center justify-center rounded-lg",
49
+ children: /* @__PURE__ */ o("div", {
50
+ className: "text-center space-y-2",
51
+ children: [
52
+ /* @__PURE__ */ a(r, { className: "h-12 w-12 mx-auto text-muted-foreground" }),
53
+ /* @__PURE__ */ a("p", {
54
+ className: "text-muted-foreground",
55
+ children: "Interactive cultural heritage map"
56
+ }),
57
+ /* @__PURE__ */ o("p", {
58
+ className: "text-sm text-muted-foreground",
59
+ children: [m.length, " locations indexed worldwide"]
60
+ })
61
+ ]
62
+ })
63
+ })
64
+ }) }),
65
+ /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ a(d, { children: /* @__PURE__ */ a(f, { children: "Featured Locations" }) }), /* @__PURE__ */ a(u, { children: /* @__PURE__ */ a("div", {
66
+ className: "space-y-3",
67
+ children: _.map((e) => /* @__PURE__ */ o("div", {
68
+ className: "flex items-center justify-between p-4 rounded-lg border hover:bg-muted/50 transition-colors cursor-pointer",
69
+ children: [/* @__PURE__ */ o("div", {
70
+ className: "flex items-center gap-4",
71
+ children: [/* @__PURE__ */ a("div", {
72
+ className: "w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center",
73
+ children: /* @__PURE__ */ a(r, { className: "h-5 w-5 text-primary" })
74
+ }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h3", {
75
+ className: "font-medium",
76
+ children: e.name
77
+ }), /* @__PURE__ */ a("p", {
78
+ className: "text-sm text-muted-foreground",
79
+ children: e.coordinates
80
+ })] })]
81
+ }), /* @__PURE__ */ o("div", {
82
+ className: "flex items-center gap-3",
83
+ children: [/* @__PURE__ */ a(s, {
84
+ variant: "secondary",
85
+ children: e.type
86
+ }), /* @__PURE__ */ o("span", {
87
+ className: "text-sm text-muted-foreground",
88
+ children: [e.itemCount, " items"]
89
+ })]
90
+ })]
91
+ }, e.id))
92
+ }) })] })
93
+ ]
94
+ });
95
+ }
96
+ //#endregion
97
+ export { m as MapPage };
98
+
99
+ //# sourceMappingURL=MapPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPage.js","names":[],"sources":["../../../src/theculturepost/pages/MapPage.tsx"],"sourcesContent":["import {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Badge,\n Input,\n Button,\n} from '@burdenoff/fe-libs/ui';\nimport { MapPin, Layers, Search, Filter } from 'lucide-react';\nimport { useTheCulturePostStore } from '../store/theculturepostStore';\n\nexport function MapPage() {\n const { mapLocations, mapSearchQuery, setMapSearchQuery } = useTheCulturePostStore();\n\n const filtered = mapSearchQuery\n ? mapLocations.filter(\n (loc) =>\n loc.name.toLowerCase().includes(mapSearchQuery.toLowerCase()) ||\n loc.type.toLowerCase().includes(mapSearchQuery.toLowerCase())\n )\n : mapLocations;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold flex items-center gap-2\">\n <MapPin className=\"h-6 w-6 text-blue-600\" /> Cultural Map\n </h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n Explore cultural heritage sites and communities worldwide\n </p>\n </div>\n\n <Card>\n <CardContent className=\"pt-6\">\n <div className=\"flex gap-4\">\n <div className=\"flex-1 relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search locations...\"\n className=\"pl-10\"\n value={mapSearchQuery}\n onChange={(e) => setMapSearchQuery(e.target.value)}\n />\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Filter className=\"h-4 w-4 mr-2\" /> Filter\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <Layers className=\"h-4 w-4 mr-2\" /> Layers\n </Button>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"h-[400px] bg-muted flex items-center justify-center rounded-lg\">\n <div className=\"text-center space-y-2\">\n <MapPin className=\"h-12 w-12 mx-auto text-muted-foreground\" />\n <p className=\"text-muted-foreground\">Interactive cultural heritage map</p>\n <p className=\"text-sm text-muted-foreground\">\n {mapLocations.length} locations indexed worldwide\n </p>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Featured Locations</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {filtered.map((location) => (\n <div\n key={location.id}\n className=\"flex items-center justify-between p-4 rounded-lg border hover:bg-muted/50 transition-colors cursor-pointer\"\n >\n <div className=\"flex items-center gap-4\">\n <div className=\"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center\">\n <MapPin className=\"h-5 w-5 text-primary\" />\n </div>\n <div>\n <h3 className=\"font-medium\">{location.name}</h3>\n <p className=\"text-sm text-muted-foreground\">{location.coordinates}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-3\">\n <Badge variant=\"secondary\">{location.type}</Badge>\n <span className=\"text-sm text-muted-foreground\">{location.itemCount} items</span>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;AAYA,SAAgB,IAAU;CACxB,IAAM,EAAE,iBAAc,mBAAgB,yBAAsB,GAAwB,EAE9E,IAAW,IACb,EAAa,QACV,MACC,EAAI,KAAK,aAAa,CAAC,SAAS,EAAe,aAAa,CAAC,IAC7D,EAAI,KAAK,aAAa,CAAC,SAAS,EAAe,aAAa,CAAC,CAChE,GACD;AAEJ,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAQ,WAAU,yBAA0B,CAAA,EAAA,gBACzC;OACL,kBAAC,KAAD;IAAG,WAAU;cAAqC;IAE9C,CAAA,CACA,EAAA,CAAA;GAEN,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cACrB,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,0EAA2E,CAAA,EAC7F,kBAAC,GAAD;QACE,aAAY;QACZ,WAAU;QACV,OAAO;QACP,WAAW,MAAM,EAAkB,EAAE,OAAO,MAAM;QAClD,CAAA,CACE;;MACN,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;iBAA/B,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,UAC5B;;MACT,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;iBAA/B,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,UAC5B;;MACL;;IACM,CAAA,EACT,CAAA;GAEP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cACrB,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,GAAD,EAAQ,WAAU,2CAA4C,CAAA;OAC9D,kBAAC,KAAD;QAAG,WAAU;kBAAwB;QAAqC,CAAA;OAC1E,kBAAC,KAAD;QAAG,WAAU;kBAAb,CACG,EAAa,QAAO,+BACnB;;OACA;;KACF,CAAA;IACM,CAAA,EACT,CAAA;GAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,sBAA8B,CAAA,EAC9B,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAS,KAAK,MACb,kBAAC,OAAD;KAEE,WAAU;eAFZ,CAIE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBACb,kBAAC,GAAD,EAAQ,WAAU,wBAAyB,CAAA;OACvC,CAAA,EACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAAe,EAAS;OAAU,CAAA,EAChD,kBAAC,KAAD;OAAG,WAAU;iBAAiC,EAAS;OAAgB,CAAA,CACnE,EAAA,CAAA,CACF;SACN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD;OAAO,SAAQ;iBAAa,EAAS;OAAa,CAAA,EAClD,kBAAC,QAAD;OAAM,WAAU;iBAAhB,CAAiD,EAAS,WAAU,SAAa;SAC7E;QACF;OAhBC,EAAS,GAgBV,CACN;IACE,CAAA,EACM,CAAA,CACT,EAAA,CAAA;GACH"}
@@ -0,0 +1,2 @@
1
+ export declare function MarketplacePage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=MarketplacePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketplacePage.d.ts","sourceRoot":"","sources":["../../../src/theculturepost/pages/MarketplacePage.tsx"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,4CAoE9B"}
@@ -0,0 +1,102 @@
1
+ import { useTheCulturePostStore as e } from "../store/theculturepostStore.js";
2
+ import { MapPin as t, Shield as n, ShoppingBag as r, Star as i } from "lucide-react";
3
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ import { Badge as s, Button as c, Card as l, CardContent as u, CardHeader as d, CardTitle as f } from "@burdenoff/fe-libs/ui";
5
+ //#region src/theculturepost/pages/MarketplacePage.tsx
6
+ var p = [
7
+ "All",
8
+ "Textiles",
9
+ "Jewelry",
10
+ "Ceramics",
11
+ "Art"
12
+ ];
13
+ function m() {
14
+ let { marketplaceItems: m, marketplaceCategory: h, setMarketplaceCategory: g } = e(), _ = h === "All" ? m : m.filter((e) => e.category === h);
15
+ return /* @__PURE__ */ o("div", {
16
+ className: "space-y-6 p-6",
17
+ children: [
18
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ o("h1", {
19
+ className: "text-2xl font-semibold flex items-center gap-2",
20
+ children: [/* @__PURE__ */ a(r, { className: "h-6 w-6 text-amber-600" }), " Cultural Marketplace"]
21
+ }), /* @__PURE__ */ a("p", {
22
+ className: "text-sm text-muted-foreground mt-1",
23
+ children: "Support authentic artisans and traditional crafts from around the world"
24
+ })] }),
25
+ /* @__PURE__ */ a("div", {
26
+ className: "flex gap-2 flex-wrap",
27
+ children: p.map((e) => /* @__PURE__ */ a(s, {
28
+ variant: h === e ? "default" : "outline",
29
+ className: "cursor-pointer",
30
+ onClick: () => g(e),
31
+ children: e
32
+ }, e))
33
+ }),
34
+ /* @__PURE__ */ a("div", {
35
+ className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
36
+ children: _.map((e) => /* @__PURE__ */ o(l, {
37
+ className: "hover:shadow-md transition-shadow",
38
+ children: [/* @__PURE__ */ o(d, {
39
+ className: "pb-3",
40
+ children: [/* @__PURE__ */ o("div", {
41
+ className: "flex items-start justify-between",
42
+ children: [/* @__PURE__ */ a(f, {
43
+ className: "text-lg",
44
+ children: e.title
45
+ }), e.isAuthentic && /* @__PURE__ */ o("span", {
46
+ className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-emerald-100 text-emerald-800",
47
+ children: [/* @__PURE__ */ a(n, { className: "h-3 w-3" }), " Authentic"]
48
+ })]
49
+ }), /* @__PURE__ */ o("p", {
50
+ className: "text-sm text-muted-foreground",
51
+ children: ["by ", e.artisan]
52
+ })]
53
+ }), /* @__PURE__ */ o(u, {
54
+ className: "space-y-3",
55
+ children: [
56
+ /* @__PURE__ */ a("p", {
57
+ className: "text-sm text-muted-foreground line-clamp-2",
58
+ children: e.description
59
+ }),
60
+ /* @__PURE__ */ o("div", {
61
+ className: "flex items-center gap-2 text-sm text-muted-foreground",
62
+ children: [
63
+ /* @__PURE__ */ a(t, { className: "h-3 w-3" }),
64
+ " ",
65
+ e.origin
66
+ ]
67
+ }),
68
+ /* @__PURE__ */ o("div", {
69
+ className: "flex items-center justify-between",
70
+ children: [/* @__PURE__ */ o("span", {
71
+ className: "text-lg font-bold",
72
+ children: ["$", e.price.toLocaleString()]
73
+ }), /* @__PURE__ */ o("span", {
74
+ className: "flex items-center gap-1 text-sm",
75
+ children: [
76
+ /* @__PURE__ */ a(i, { className: "h-4 w-4 text-yellow-500" }),
77
+ " ",
78
+ e.rating
79
+ ]
80
+ })]
81
+ }),
82
+ /* @__PURE__ */ o("div", {
83
+ className: "flex items-center justify-between",
84
+ children: [/* @__PURE__ */ a(s, {
85
+ variant: "outline",
86
+ children: e.category
87
+ }), /* @__PURE__ */ a(c, {
88
+ size: "sm",
89
+ children: "View Details"
90
+ })]
91
+ })
92
+ ]
93
+ })]
94
+ }, e.id))
95
+ })
96
+ ]
97
+ });
98
+ }
99
+ //#endregion
100
+ export { m as MarketplacePage };
101
+
102
+ //# sourceMappingURL=MarketplacePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketplacePage.js","names":[],"sources":["../../../src/theculturepost/pages/MarketplacePage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { ShoppingBag, Star, Shield, MapPin } from 'lucide-react';\nimport { useTheCulturePostStore } from '../store/theculturepostStore';\n\nconst categories = ['All', 'Textiles', 'Jewelry', 'Ceramics', 'Art'];\n\nexport function MarketplacePage() {\n const { marketplaceItems, marketplaceCategory, setMarketplaceCategory } =\n useTheCulturePostStore();\n\n const filtered =\n marketplaceCategory === 'All'\n ? marketplaceItems\n : marketplaceItems.filter((item) => item.category === marketplaceCategory);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold flex items-center gap-2\">\n <ShoppingBag className=\"h-6 w-6 text-amber-600\" /> Cultural Marketplace\n </h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n Support authentic artisans and traditional crafts from around the world\n </p>\n </div>\n\n <div className=\"flex gap-2 flex-wrap\">\n {categories.map((cat) => (\n <Badge\n key={cat}\n variant={marketplaceCategory === cat ? 'default' : 'outline'}\n className=\"cursor-pointer\"\n onClick={() => setMarketplaceCategory(cat)}\n >\n {cat}\n </Badge>\n ))}\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {filtered.map((item) => (\n <Card key={item.id} className=\"hover:shadow-md transition-shadow\">\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between\">\n <CardTitle className=\"text-lg\">{item.title}</CardTitle>\n {item.isAuthentic && (\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-emerald-100 text-emerald-800\">\n <Shield className=\"h-3 w-3\" /> Authentic\n </span>\n )}\n </div>\n <p className=\"text-sm text-muted-foreground\">by {item.artisan}</p>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground line-clamp-2\">{item.description}</p>\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <MapPin className=\"h-3 w-3\" /> {item.origin}\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-lg font-bold\">${item.price.toLocaleString()}</span>\n <span className=\"flex items-center gap-1 text-sm\">\n <Star className=\"h-4 w-4 text-yellow-500\" /> {item.rating}\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <Badge variant=\"outline\">{item.category}</Badge>\n <Button size=\"sm\">View Details</Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,IAAM,IAAa;CAAC;CAAO;CAAY;CAAW;CAAY;CAAM;AAEpE,SAAgB,IAAkB;CAChC,IAAM,EAAE,qBAAkB,wBAAqB,8BAC7C,GAAwB,EAEpB,IACJ,MAAwB,QACpB,IACA,EAAiB,QAAQ,MAAS,EAAK,aAAa,EAAoB;AAE9E,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAa,WAAU,0BAA2B,CAAA,EAAA,wBAC/C;OACL,kBAAC,KAAD;IAAG,WAAU;cAAqC;IAE9C,CAAA,CACA,EAAA,CAAA;GAEN,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAW,KAAK,MACf,kBAAC,GAAD;KAEE,SAAS,MAAwB,IAAM,YAAY;KACnD,WAAU;KACV,eAAe,EAAuB,EAAI;eAEzC;KACK,EAND,EAMC,CACR;IACE,CAAA;GAEN,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAS,KAAK,MACb,kBAAC,GAAD;KAAoB,WAAU;eAA9B,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD;QAAW,WAAU;kBAAW,EAAK;QAAkB,CAAA,EACtD,EAAK,eACJ,kBAAC,QAAD;QAAM,WAAU;kBAAhB,CACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAAA,aACzB;UAEL;UACN,kBAAC,KAAD;OAAG,WAAU;iBAAb,CAA6C,OAAI,EAAK,QAAY;SACvD;SACb,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,KAAD;QAAG,WAAU;kBAA8C,EAAK;QAAgB,CAAA;OAChF,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA;;SAAE,EAAK;SACjC;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,QAAD;SAAM,WAAU;mBAAhB,CAAoC,KAAE,EAAK,MAAM,gBAAgB,CAAQ;YACzE,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACE,kBAAC,GAAD,EAAM,WAAU,2BAA4B,CAAA;;UAAE,EAAK;UAC9C;WACH;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD;SAAO,SAAQ;mBAAW,EAAK;SAAiB,CAAA,EAChD,kBAAC,GAAD;SAAQ,MAAK;mBAAK;SAAqB,CAAA,CACnC;;OACM;QACT;OA5BI,EAAK,GA4BT,CACP;IACE,CAAA;GACF"}
@@ -0,0 +1,2 @@
1
+ export declare function ResourcesPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ResourcesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcesPage.d.ts","sourceRoot":"","sources":["../../../src/theculturepost/pages/ResourcesPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,aAAa,4CA0E5B"}
@@ -0,0 +1,90 @@
1
+ import { useTheCulturePostStore as e } from "../store/theculturepostStore.js";
2
+ import { Download as t, FileText as n, Image as r, Music as i, Search as a, Video as o } from "lucide-react";
3
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
4
+ import { Badge as l, Button as u, Card as d, CardContent as f, CardHeader as p, Input as m } from "@burdenoff/fe-libs/ui";
5
+ //#region src/theculturepost/pages/ResourcesPage.tsx
6
+ var h = {
7
+ PDF: n,
8
+ Audio: i,
9
+ Video: o,
10
+ Images: r
11
+ }, g = [
12
+ "All",
13
+ "Documentation",
14
+ "Media",
15
+ "Visual",
16
+ "Templates",
17
+ "Tools"
18
+ ];
19
+ function _() {
20
+ let { resources: r, resourceCategory: i, setResourceCategory: o } = e(), _ = i === "All" ? r : r.filter((e) => e.category === i);
21
+ return /* @__PURE__ */ c("div", {
22
+ className: "space-y-6 p-6",
23
+ children: [
24
+ /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h1", {
25
+ className: "text-2xl font-semibold",
26
+ children: "Resources"
27
+ }), /* @__PURE__ */ s("p", {
28
+ className: "text-sm text-muted-foreground mt-1",
29
+ children: "Access educational materials, templates, and tools for cultural preservation"
30
+ })] }),
31
+ /* @__PURE__ */ s(d, { children: /* @__PURE__ */ c(f, {
32
+ className: "pt-6 space-y-4",
33
+ children: [/* @__PURE__ */ c("div", {
34
+ className: "relative",
35
+ children: [/* @__PURE__ */ s(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ s(m, {
36
+ placeholder: "Search resources...",
37
+ className: "pl-10"
38
+ })]
39
+ }), /* @__PURE__ */ s("div", {
40
+ className: "flex gap-2 flex-wrap",
41
+ children: g.map((e) => /* @__PURE__ */ s(l, {
42
+ variant: i === e ? "default" : "outline",
43
+ className: "cursor-pointer",
44
+ onClick: () => o(e),
45
+ children: e
46
+ }, e))
47
+ })]
48
+ }) }),
49
+ /* @__PURE__ */ s("div", {
50
+ className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
51
+ children: _.map((e) => /* @__PURE__ */ c(d, {
52
+ className: "hover:shadow-md transition-shadow",
53
+ children: [/* @__PURE__ */ s(p, { children: /* @__PURE__ */ c("div", {
54
+ className: "flex items-start justify-between",
55
+ children: [/* @__PURE__ */ s("div", {
56
+ className: "w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center text-primary",
57
+ children: /* @__PURE__ */ s(h[e.type] ?? n, { className: "h-5 w-5" })
58
+ }), /* @__PURE__ */ s(l, {
59
+ variant: "secondary",
60
+ children: e.category
61
+ })]
62
+ }) }), /* @__PURE__ */ c(f, {
63
+ className: "space-y-4",
64
+ children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h3", {
65
+ className: "font-semibold mb-2",
66
+ children: e.title
67
+ }), /* @__PURE__ */ c("div", {
68
+ className: "flex items-center gap-4 text-sm text-muted-foreground",
69
+ children: [/* @__PURE__ */ s("span", { children: e.type }), /* @__PURE__ */ s("span", { children: e.size })]
70
+ })] }), /* @__PURE__ */ c("div", {
71
+ className: "flex items-center justify-between",
72
+ children: [/* @__PURE__ */ c("span", {
73
+ className: "text-sm text-muted-foreground",
74
+ children: [e.downloads.toLocaleString(), " downloads"]
75
+ }), /* @__PURE__ */ c(u, {
76
+ size: "sm",
77
+ variant: "outline",
78
+ children: [/* @__PURE__ */ s(t, { className: "h-4 w-4 mr-2" }), " Download"]
79
+ })]
80
+ })]
81
+ })]
82
+ }, e.id))
83
+ })
84
+ ]
85
+ });
86
+ }
87
+ //#endregion
88
+ export { _ as ResourcesPage };
89
+
90
+ //# sourceMappingURL=ResourcesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcesPage.js","names":[],"sources":["../../../src/theculturepost/pages/ResourcesPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, Badge, Input, Button } from '@burdenoff/fe-libs/ui';\nimport { FileText, Download, Video, Music, Image as ImageIcon, Search } from 'lucide-react';\nimport { useTheCulturePostStore } from '../store/theculturepostStore';\n\nconst typeIcons: Record<string, typeof FileText> = {\n PDF: FileText,\n Audio: Music,\n Video: Video,\n Images: ImageIcon,\n};\n\nconst categories = ['All', 'Documentation', 'Media', 'Visual', 'Templates', 'Tools'];\n\nexport function ResourcesPage() {\n const { resources, resourceCategory, setResourceCategory } = useTheCulturePostStore();\n\n const filtered =\n resourceCategory === 'All'\n ? resources\n : resources.filter((r) => r.category === resourceCategory);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Resources</h1>\n <p className=\"text-sm text-muted-foreground mt-1\">\n Access educational materials, templates, and tools for cultural preservation\n </p>\n </div>\n\n <Card>\n <CardContent className=\"pt-6 space-y-4\">\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input placeholder=\"Search resources...\" className=\"pl-10\" />\n </div>\n <div className=\"flex gap-2 flex-wrap\">\n {categories.map((cat) => (\n <Badge\n key={cat}\n variant={resourceCategory === cat ? 'default' : 'outline'}\n className=\"cursor-pointer\"\n onClick={() => setResourceCategory(cat)}\n >\n {cat}\n </Badge>\n ))}\n </div>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {filtered.map((resource) => {\n const IconComponent = typeIcons[resource.type] ?? FileText;\n return (\n <Card key={resource.id} className=\"hover:shadow-md transition-shadow\">\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <div className=\"w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center text-primary\">\n <IconComponent className=\"h-5 w-5\" />\n </div>\n <Badge variant=\"secondary\">{resource.category}</Badge>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <h3 className=\"font-semibold mb-2\">{resource.title}</h3>\n <div className=\"flex items-center gap-4 text-sm text-muted-foreground\">\n <span>{resource.type}</span>\n <span>{resource.size}</span>\n </div>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-muted-foreground\">\n {resource.downloads.toLocaleString()} downloads\n </span>\n <Button size=\"sm\" variant=\"outline\">\n <Download className=\"h-4 w-4 mr-2\" /> Download\n </Button>\n </div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,IAAM,IAA6C;CACjD,KAAK;CACL,OAAO;CACA;CACP,QAAQ;CACT,EAEK,IAAa;CAAC;CAAO;CAAiB;CAAS;CAAU;CAAa;CAAQ;AAEpF,SAAgB,IAAgB;CAC9B,IAAM,EAAE,cAAW,qBAAkB,2BAAwB,GAAwB,EAE/E,IACJ,MAAqB,QACjB,IACA,EAAU,QAAQ,MAAM,EAAE,aAAa,EAAiB;AAE9D,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAyB;IAAc,CAAA,EACrD,kBAAC,KAAD;IAAG,WAAU;cAAqC;IAE9C,CAAA,CACA,EAAA,CAAA;GAEN,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,0EAA2E,CAAA,EAC7F,kBAAC,GAAD;MAAO,aAAY;MAAsB,WAAU;MAAU,CAAA,CACzD;QACN,kBAAC,OAAD;KAAK,WAAU;eACZ,EAAW,KAAK,MACf,kBAAC,GAAD;MAEE,SAAS,MAAqB,IAAM,YAAY;MAChD,WAAU;MACV,eAAe,EAAoB,EAAI;gBAEtC;MACK,EAND,EAMC,CACR;KACE,CAAA,CACM;OACT,CAAA;GAEP,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAS,KAAK,MAGX,kBAAC,GAAD;KAAwB,WAAU;eAAlC,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBACb,kBANY,EAAU,EAAS,SAAS,GAMxC,EAAe,WAAU,WAAY,CAAA;OACjC,CAAA,EACN,kBAAC,GAAD;OAAO,SAAQ;iBAAa,EAAS;OAAiB,CAAA,CAClD;SACK,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAAsB,EAAS;OAAW,CAAA,EACxD,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,QAAD,EAAA,UAAO,EAAS,MAAY,CAAA,EAC5B,kBAAC,QAAD,EAAA,UAAO,EAAS,MAAY,CAAA,CACxB;SACF,EAAA,CAAA,EACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,QAAD;QAAM,WAAU;kBAAhB,CACG,EAAS,UAAU,gBAAgB,EAAC,aAChC;WACP,kBAAC,GAAD;QAAQ,MAAK;QAAK,SAAQ;kBAA1B,CACE,kBAAC,GAAD,EAAU,WAAU,gBAAiB,CAAA,EAAA,YAC9B;UACL;SACM;QACT;OA1BI,EAAS,GA0Bb,CAET;IACE,CAAA;GACF"}
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ import { TheCulturePostRootProps } from '../types';
3
+
4
+ export declare const useTheCulturePost: () => TheCulturePostRootProps;
5
+ export declare const TheCulturePostProvider: FC<PropsWithChildren<TheCulturePostRootProps>>;
6
+ //# sourceMappingURL=TheCulturePostProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TheCulturePostProvider.d.ts","sourceRoot":"","sources":["../../../src/theculturepost/providers/TheCulturePostProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAMxD,eAAO,MAAM,iBAAiB,+BAI7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAsBjF,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { createContext as e, useContext as t, useMemo as n } from "react";
2
+ import { MemoryRouter as r } from "react-router-dom";
3
+ import { QueryClient as i, QueryClientProvider as a } from "@tanstack/react-query";
4
+ import { jsx as o } from "react/jsx-runtime";
5
+ //#region src/theculturepost/providers/TheCulturePostProvider.tsx
6
+ var s = e(null), c = () => {
7
+ let e = t(s);
8
+ if (!e) throw Error("useTheCulturePost must be used within TheCulturePostProvider");
9
+ return e;
10
+ }, l = ({ children: e, ...t }) => {
11
+ let c = /* @__PURE__ */ o(a, {
12
+ client: n(() => new i({ defaultOptions: { queries: {
13
+ retry: 1,
14
+ refetchOnWindowFocus: !1,
15
+ staleTime: 300 * 1e3
16
+ } } }), []),
17
+ children: /* @__PURE__ */ o(s.Provider, {
18
+ value: t,
19
+ children: e
20
+ })
21
+ });
22
+ return t.basePath ? c : /* @__PURE__ */ o(r, { children: c });
23
+ };
24
+ //#endregion
25
+ export { l as TheCulturePostProvider, c as useTheCulturePost };
26
+
27
+ //# sourceMappingURL=TheCulturePostProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TheCulturePostProvider.js","names":[],"sources":["../../../src/theculturepost/providers/TheCulturePostProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport type { TheCulturePostRootProps } from '../types';\n\ntype TheCulturePostContextValue = TheCulturePostRootProps;\n\nconst TheCulturePostContext = createContext<TheCulturePostContextValue | null>(null);\n\nexport const useTheCulturePost = () => {\n const context = useContext(TheCulturePostContext);\n if (!context) throw new Error('useTheCulturePost must be used within TheCulturePostProvider');\n return context;\n};\n\nexport const TheCulturePostProvider: FC<PropsWithChildren<TheCulturePostRootProps>> = ({\n children,\n ...props\n}) => {\n const queryClient = useMemo(\n () =>\n new QueryClient({\n defaultOptions: {\n queries: { retry: 1, refetchOnWindowFocus: false, staleTime: 5 * 60 * 1000 },\n },\n }),\n []\n );\n\n const content = (\n <QueryClientProvider client={queryClient}>\n <TheCulturePostContext.Provider value={props}>{children}</TheCulturePostContext.Provider>\n </QueryClientProvider>\n );\n\n if (props.basePath) return content;\n return <MemoryRouter>{content}</MemoryRouter>;\n};\n"],"mappings":";;;;;AAQA,IAAM,IAAwB,EAAiD,KAAK,EAEvE,UAA0B;CACrC,IAAM,IAAU,EAAW,EAAsB;AACjD,KAAI,CAAC,EAAS,OAAU,MAAM,+DAA+D;AAC7F,QAAO;GAGI,KAA0E,EACrF,aACA,GAAG,QACC;CAWJ,IAAM,IACJ,kBAAC,GAAD;EAAqB,QAXH,QAEhB,IAAI,EAAY,EACd,gBAAgB,EACd,SAAS;GAAE,OAAO;GAAG,sBAAsB;GAAO,WAAW,MAAS;GAAM,EAC7E,EACF,CAAC,EACJ,EAAE,CACH;YAIG,kBAAC,EAAsB,UAAvB;GAAgC,OAAO;GAAQ;GAA0C,CAAA;EACrE,CAAA;AAIxB,QADI,EAAM,WAAiB,IACpB,kBAAC,GAAD,EAAA,UAAe,GAAuB,CAAA"}
@@ -0,0 +1,159 @@
1
+ export interface HeritageSite {
2
+ id: string;
3
+ name: string;
4
+ location: string;
5
+ coordinates: string;
6
+ type: 'UNESCO World Heritage' | 'National Heritage' | 'Sacred Site' | 'Cultural Landscape';
7
+ status: 'Active' | 'Endangered' | 'Preserved';
8
+ description: string;
9
+ culturalSignificance: string;
10
+ itemCount: number;
11
+ imageUrl?: string;
12
+ }
13
+ export interface CulturalEvent {
14
+ id: string;
15
+ title: string;
16
+ description: string;
17
+ date: string;
18
+ time: string;
19
+ location: string;
20
+ type: 'Sacred Event' | 'Workshop' | 'Conference' | 'Festival' | 'Exhibition' | 'Ceremony';
21
+ maxParticipants: number;
22
+ spotsRemaining: number;
23
+ price?: string;
24
+ virtualPrice?: string;
25
+ requiresInvitation: boolean;
26
+ }
27
+ export interface CulturalCommunity {
28
+ id: string;
29
+ name: string;
30
+ description: string;
31
+ memberCount: number;
32
+ type: string;
33
+ isJoined: boolean;
34
+ avatarUrl?: string;
35
+ }
36
+ export interface Discussion {
37
+ id: string;
38
+ title: string;
39
+ author: string;
40
+ authorAvatar?: string;
41
+ community: string;
42
+ replies: number;
43
+ likes: number;
44
+ time: string;
45
+ tags: string[];
46
+ }
47
+ export interface LearningCourse {
48
+ id: string;
49
+ title: string;
50
+ instructor: string;
51
+ category: string;
52
+ level: 'Beginner' | 'Intermediate' | 'Advanced';
53
+ duration: string;
54
+ enrolled: number;
55
+ rating: number;
56
+ description: string;
57
+ lessons: number;
58
+ completionRate?: number;
59
+ }
60
+ export interface MarketplaceItem {
61
+ id: string;
62
+ title: string;
63
+ artisan: string;
64
+ origin: string;
65
+ price: number;
66
+ category: string;
67
+ isAuthentic: boolean;
68
+ rating: number;
69
+ imageUrl?: string;
70
+ description: string;
71
+ }
72
+ export interface MapLocation {
73
+ id: string;
74
+ name: string;
75
+ type: string;
76
+ coordinates: string;
77
+ itemCount: number;
78
+ }
79
+ export interface CulturalResource {
80
+ id: string;
81
+ title: string;
82
+ type: 'PDF' | 'Audio' | 'Video' | 'Images';
83
+ size: string;
84
+ downloads: number;
85
+ category: string;
86
+ }
87
+ export interface Contribution {
88
+ id: string;
89
+ title: string;
90
+ status: 'approved' | 'pending' | 'rejected';
91
+ date: string;
92
+ type: string;
93
+ views: number;
94
+ }
95
+ export interface DiscoveryItem {
96
+ id: string;
97
+ title: string;
98
+ description: string;
99
+ category: string;
100
+ culturalContext: string;
101
+ relevanceScore: number;
102
+ tags: string[];
103
+ imageUrl?: string;
104
+ }
105
+ export interface AnalyticsMetric {
106
+ title: string;
107
+ value: string;
108
+ change: string;
109
+ trend: 'up' | 'down';
110
+ }
111
+ export interface TopContent {
112
+ title: string;
113
+ views: number;
114
+ engagement: number;
115
+ }
116
+ interface TheCulturePostState {
117
+ heritageSites: HeritageSite[];
118
+ selectedSiteId: string | null;
119
+ setSelectedSiteId: (id: string | null) => void;
120
+ culturalEvents: CulturalEvent[];
121
+ selectedEventId: string | null;
122
+ setSelectedEventId: (id: string | null) => void;
123
+ communities: CulturalCommunity[];
124
+ selectedCommunityId: string | null;
125
+ setSelectedCommunityId: (id: string | null) => void;
126
+ toggleCommunityJoin: (id: string) => void;
127
+ discussions: Discussion[];
128
+ discussionSearchQuery: string;
129
+ setDiscussionSearchQuery: (query: string) => void;
130
+ learningCourses: LearningCourse[];
131
+ selectedCourseId: string | null;
132
+ setSelectedCourseId: (id: string | null) => void;
133
+ marketplaceItems: MarketplaceItem[];
134
+ marketplaceCategory: string;
135
+ setMarketplaceCategory: (category: string) => void;
136
+ mapLocations: MapLocation[];
137
+ mapSearchQuery: string;
138
+ setMapSearchQuery: (query: string) => void;
139
+ resources: CulturalResource[];
140
+ resourceCategory: string;
141
+ setResourceCategory: (category: string) => void;
142
+ contributions: Contribution[];
143
+ contributionStats: {
144
+ total: number;
145
+ approved: number;
146
+ pending: number;
147
+ rejected: number;
148
+ };
149
+ discoveryItems: DiscoveryItem[];
150
+ discoverySearchQuery: string;
151
+ setDiscoverySearchQuery: (query: string) => void;
152
+ analyticsMetrics: AnalyticsMetric[];
153
+ topContent: TopContent[];
154
+ selectedView: string;
155
+ setSelectedView: (view: string) => void;
156
+ }
157
+ export declare const useTheCulturePostStore: import('zustand').UseBoundStore<import('zustand').StoreApi<TheCulturePostState>>;
158
+ export {};
159
+ //# sourceMappingURL=theculturepostStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theculturepostStore.d.ts","sourceRoot":"","sources":["../../../src/theculturepost/store/theculturepostStore.ts"],"names":[],"mappings":"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"}