@africode/core 5.0.8 → 5.0.9

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 (62) hide show
  1. package/AGENT_INSTRUCTIONS.md +595 -595
  2. package/COMPONENT_SCHEMA.json +1800 -991
  3. package/bin/create-africode.js +87 -25
  4. package/components/auth-form.js +154 -0
  5. package/components/index.js +10 -0
  6. package/components/kyc-upload.js +173 -0
  7. package/components/nav-drawer.js +217 -0
  8. package/components/transaction-ledger.js +138 -0
  9. package/components/wallet-balance.js +114 -0
  10. package/core/a2ui-schema-manager.js +1 -1
  11. package/core/a2ui.js +178 -1
  12. package/core/bun-runtime.js +122 -7
  13. package/core/cli/commands/build.js +30 -5
  14. package/core/cli/ui.js +13 -3
  15. package/core/compliance.js +201 -0
  16. package/core/middleware.js +80 -17
  17. package/core/patterns.js +168 -0
  18. package/core/request-analytics.js +254 -0
  19. package/core/request-identity.js +79 -29
  20. package/core/sdk.js +4 -1
  21. package/core/validation.js +13 -0
  22. package/dist/africode.js +858 -457
  23. package/dist/africode.js.map +14 -9
  24. package/dist/build-info.json +3 -3
  25. package/dist/components.js +784 -383
  26. package/dist/components.js.map +11 -6
  27. package/package.json +1 -1
  28. package/templates/starter/package.json +5 -5
  29. package/templates/starter/src/index.js +18 -0
  30. package/templates/starter/src/pages/index.js +1 -1
  31. package/templates/starter-3d/package.json +5 -5
  32. package/templates/starter-3d/src/pages/index.js +1 -1
  33. package/templates/starter-dashboard/.env.example +21 -0
  34. package/templates/starter-dashboard/africode.config.js +20 -0
  35. package/templates/starter-dashboard/package.json +14 -0
  36. package/templates/starter-dashboard/src/index.js +17 -0
  37. package/templates/starter-dashboard/src/pages/api/analytics.js +24 -0
  38. package/templates/starter-dashboard/src/pages/index.html +118 -0
  39. package/templates/starter-dashboard/src/pages/index.js +110 -0
  40. package/templates/starter-dashboard/src/styles/main.css +172 -0
  41. package/templates/starter-fintech/.env.example +28 -0
  42. package/templates/starter-fintech/africode.config.js +20 -0
  43. package/templates/starter-fintech/package.json +15 -0
  44. package/templates/starter-fintech/src/index.js +17 -0
  45. package/templates/starter-fintech/src/pages/api/auth.js +45 -0
  46. package/templates/starter-fintech/src/pages/api/transfer.js +65 -0
  47. package/templates/starter-fintech/src/pages/api/wallet.js +39 -0
  48. package/templates/starter-fintech/src/pages/api/webhooks/payment.js +32 -0
  49. package/templates/starter-fintech/src/pages/index.html +169 -0
  50. package/templates/starter-fintech/src/pages/index.js +161 -0
  51. package/templates/starter-fintech/src/styles/main.css +246 -0
  52. package/templates/starter-react/package.json +5 -5
  53. package/templates/starter-react/src/pages/index.js +1 -1
  54. package/templates/starter-tailwind/package.json +5 -5
  55. package/templates/starter-tailwind/src/pages/index.js +1 -1
  56. package/templates/starter-website/.env.example +18 -0
  57. package/templates/starter-website/africode.config.js +20 -0
  58. package/templates/starter-website/package.json +14 -0
  59. package/templates/starter-website/src/index.js +17 -0
  60. package/templates/starter-website/src/pages/index.html +124 -0
  61. package/templates/starter-website/src/pages/index.js +116 -0
  62. package/templates/starter-website/src/styles/main.css +195 -0
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["..\\core\\state.js", "..\\core\\store.js", "..\\core\\patterns.js", "..\\core\\html.js", "..\\node_modules\\zod\\v3\\helpers\\util.js", "..\\node_modules\\zod\\v3\\ZodError.js", "..\\node_modules\\zod\\v3\\locales\\en.js", "..\\node_modules\\zod\\v3\\errors.js", "..\\node_modules\\zod\\v3\\helpers\\parseUtil.js", "..\\node_modules\\zod\\v3\\helpers\\errorUtil.js", "..\\node_modules\\zod\\v3\\types.js", "..\\node_modules\\zod\\v3\\external.js", "..\\node_modules\\zod\\index.js", "..\\core\\logging.js", "..\\core\\config.js", "..\\core\\validation.js", "..\\components\\base.js", "..\\components\\ui-button.js", "..\\components\\ui-card.js", "..\\components\\ui-input.js", "..\\components\\ui-badge.js", "..\\components\\ui-switch.js", "..\\components\\ui-select.js", "..\\components\\ui-textarea.js", "..\\components\\ui-chip.js", "..\\components\\ui-tag.js", "..\\components\\ui-avatar.js", "..\\components\\ui-progress-ring.js", "..\\components\\ui-tooltip.js", "..\\components\\ui-popover.js", "..\\components\\ui-tabs.js", "..\\components\\ui-table.js", "..\\components\\ui-stat.js", "..\\components\\footer.js", "..\\components\\breadcrumb.js", "..\\components\\feature-grid.js", "..\\components\\pricing-card.js", "..\\components\\testimonial.js", "..\\components\\dashboard-shell.js", "..\\components\\dashboard-topbar.js", "..\\components\\dashboard-card.js", "..\\components\\dashboard-metric.js", "..\\components\\dashboard-activity-list.js", "..\\components\\button.js", "..\\components\\card.js", "..\\components\\navbar.js", "..\\components\\input.js", "..\\components\\alert.js", "..\\components\\grid.js", "..\\components\\section.js", "..\\components\\icon.js", "..\\components\\accordion.js", "..\\components\\hero.js", "..\\components\\table.js", "..\\components\\modal.js", "..\\components\\tabs.js", "..\\components\\sidebar.js", "..\\components\\dropdown.js", "..\\components\\select.js", "..\\components\\form.js", "..\\components\\tooltip.js", "..\\components\\toast.js", "..\\components\\badge.js", "..\\components\\avatar.js", "..\\components\\progress.js", "..\\components\\loader.js", "..\\components\\skeleton.js", "..\\components\\divider.js", "..\\components\\kanga-card.js", "..\\components\\cultural-card.js", "..\\components\\pattern-showcase.js", "..\\components\\language-switcher.js", "..\\components\\auth.js", "..\\components\\theme-toggle.js", "..\\core\\sdk-browser.js", "..\\core\\motion.js", "..\\core\\hydration.js", "..\\core\\request-identity.js", "..\\core\\session-store.js", "..\\core\\actions.js", "..\\core\\middleware.js", "..\\core\\errors.js", "..\\components\\index.js", "..\\components\\error-boundary.js", "..\\core\\a2ui.js"],
3
+ "sources": ["..\\core\\state.js", "..\\core\\store.js", "..\\core\\patterns.js", "..\\core\\html.js", "..\\node_modules\\zod\\v3\\helpers\\util.js", "..\\node_modules\\zod\\v3\\ZodError.js", "..\\node_modules\\zod\\v3\\locales\\en.js", "..\\node_modules\\zod\\v3\\errors.js", "..\\node_modules\\zod\\v3\\helpers\\parseUtil.js", "..\\node_modules\\zod\\v3\\helpers\\errorUtil.js", "..\\node_modules\\zod\\v3\\types.js", "..\\node_modules\\zod\\v3\\external.js", "..\\node_modules\\zod\\index.js", "..\\core\\logging.js", "..\\core\\config.js", "..\\core\\validation.js", "..\\components\\base.js", "..\\components\\ui-button.js", "..\\components\\ui-card.js", "..\\components\\ui-input.js", "..\\components\\ui-badge.js", "..\\components\\ui-switch.js", "..\\components\\ui-select.js", "..\\components\\ui-textarea.js", "..\\components\\ui-chip.js", "..\\components\\ui-tag.js", "..\\components\\ui-avatar.js", "..\\components\\ui-progress-ring.js", "..\\components\\ui-tooltip.js", "..\\components\\ui-popover.js", "..\\components\\ui-tabs.js", "..\\components\\ui-table.js", "..\\components\\ui-stat.js", "..\\components\\footer.js", "..\\components\\breadcrumb.js", "..\\components\\feature-grid.js", "..\\components\\pricing-card.js", "..\\components\\testimonial.js", "..\\components\\dashboard-shell.js", "..\\components\\dashboard-topbar.js", "..\\components\\dashboard-card.js", "..\\components\\dashboard-metric.js", "..\\components\\dashboard-activity-list.js", "..\\components\\auth-form.js", "..\\components\\kyc-upload.js", "..\\components\\wallet-balance.js", "..\\components\\transaction-ledger.js", "..\\components\\nav-drawer.js", "..\\components\\button.js", "..\\components\\card.js", "..\\components\\navbar.js", "..\\components\\input.js", "..\\components\\alert.js", "..\\components\\grid.js", "..\\components\\section.js", "..\\components\\icon.js", "..\\components\\accordion.js", "..\\components\\hero.js", "..\\components\\table.js", "..\\components\\modal.js", "..\\components\\tabs.js", "..\\components\\sidebar.js", "..\\components\\dropdown.js", "..\\components\\select.js", "..\\components\\form.js", "..\\components\\tooltip.js", "..\\components\\toast.js", "..\\components\\badge.js", "..\\components\\avatar.js", "..\\components\\progress.js", "..\\components\\loader.js", "..\\components\\skeleton.js", "..\\components\\divider.js", "..\\components\\kanga-card.js", "..\\components\\cultural-card.js", "..\\components\\pattern-showcase.js", "..\\components\\language-switcher.js", "..\\components\\auth.js", "..\\components\\theme-toggle.js", "..\\core\\sdk-browser.js", "..\\core\\motion.js", "..\\core\\hydration.js", "..\\core\\request-identity.js", "..\\core\\session-store.js", "..\\core\\actions.js", "..\\core\\errors.js", "..\\core\\middleware.js", "..\\components\\index.js", "..\\components\\error-boundary.js", "..\\core\\a2ui.js"],
4
4
  "sourcesContent": [
5
5
  "/**\r\n * AfriCode Reactive State System\r\n * \r\n * A lightweight, Proxy-based reactive state management system\r\n * following the African Fractal philosophy - simple at the core,\r\n * powerful through composition.\r\n * \r\n * @module core/state\r\n */\r\n\r\n// Store for all subscribers per state\r\nconst stateSubscribers = new WeakMap();\r\n\r\n// Track nested proxies to avoid duplicates\r\nconst proxyCache = new WeakMap();\r\n\r\n/**\r\n * Creates a deeply reactive state object using Proxy\r\n * State changes automatically notify all subscribers\r\n * \r\n * @param {Object} initialState - The initial state object\r\n * @returns {Proxy} A reactive proxy of the state\r\n * \r\n * @example\r\n * const state = createReactiveState({ count: 0, user: { name: 'Amara' } });\r\n * subscribe(() => console.log('State changed!'));\r\n * state.count++; // Logs: \"State changed!\"\r\n */\r\nexport function createReactiveState(initialState) {\r\n // Return cached proxy if already created\r\n if (proxyCache.has(initialState)) {\r\n return proxyCache.get(initialState);\r\n }\r\n\r\n const handler = {\r\n get(target, property, receiver) {\r\n const value = Reflect.get(target, property, receiver);\r\n\r\n // Recursively wrap nested objects\r\n if (value !== null && typeof value === 'object') {\r\n return createReactiveState(value);\r\n }\r\n\r\n return value;\r\n },\r\n\r\n set(target, property, value, receiver) {\r\n const oldValue = Reflect.get(target, property, receiver);\r\n\r\n // Only notify if value actually changed\r\n if (oldValue !== value) {\r\n const result = Reflect.set(target, property, value, receiver);\r\n\r\n if (result) {\r\n notifySubscribers(receiver, value, oldValue, property);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n deleteProperty(target, property) {\r\n const oldValue = Reflect.get(target, property);\r\n const result = Reflect.deleteProperty(target, property);\r\n\r\n if (result) {\r\n const proxy = proxyCache.get(target);\r\n notifySubscribers(proxy, undefined, oldValue, property);\r\n }\r\n\r\n return result;\r\n }\r\n };\r\n\r\n const proxy = new Proxy(initialState, handler);\r\n proxyCache.set(initialState, proxy);\r\n\r\n return proxy;\r\n}\r\n\r\n/**\r\n * Subscribe to state changes\r\n * \r\n * @param {Proxy} state - The reactive state to subscribe to\r\n * @param {Function} callback - Function to call when state changes\r\n * @returns {Function} Unsubscribe function\r\n * \r\n * @example\r\n * const state = createReactiveState({ count: 0 });\r\n * const unsubscribe = subscribe(state, () => updateUI());\r\n * // Later: unsubscribe();\r\n */\r\nexport function subscribe(state, callback) {\r\n if (!stateSubscribers.has(state)) {\r\n stateSubscribers.set(state, new Set());\r\n }\r\n \r\n const subscribers = stateSubscribers.get(state);\r\n subscribers.add(callback);\r\n\r\n // Return unsubscribe function\r\n return () => {\r\n subscribers.delete(callback);\r\n };\r\n}\r\n\r\n/**\r\n * Notify all subscribers of state change\r\n * Uses microtask queue for batched updates\r\n */\r\nfunction notifySubscribers(state, newValue, oldValue, property) {\r\n // For testing, make synchronous. In production, use microtask\r\n const subscribers = stateSubscribers.get(state);\r\n if (!subscribers) {return;}\r\n \r\n subscribers.forEach(callback => {\r\n try {\r\n callback(newValue, oldValue, property);\r\n } catch (error) {\r\n console.error('[AfriCode State] Subscriber error:', error);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Simple server-side state store for Phase 3A\r\n */\r\nexport class GlobalState {\r\n constructor() {\r\n this.store = {};\r\n }\r\n\r\n get(path) {\r\n return path.split('/').reduce((obj, key) => obj?.[key], this.store);\r\n }\r\n\r\n set(path, value) {\r\n const keys = path.split('/');\r\n let obj = this.store;\r\n\r\n while (keys.length > 1) {\r\n const key = keys.shift();\r\n if (!obj[key] || typeof obj[key] !== 'object') {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n\r\n obj[keys[0]] = value;\r\n }\r\n\r\n getAll() {\r\n return this.store;\r\n }\r\n}\r\n\r\nexport const globalState = new GlobalState();\r\n\r\n/**\r\n * Create a computed value that updates when dependencies change\r\n * \r\n * @param {Function} computeFn - Function that computes the derived value\r\n * @returns {Function} Getter function for the computed value\r\n * \r\n * @example\r\n * const state = createReactiveState({ price: 100, quantity: 2 });\r\n * const total = computed(() => state.price * state.quantity);\r\n * console.log(total()); // 200\r\n */\r\nexport function computed(computeFn) {\r\n let cachedValue;\r\n let isDirty = true;\r\n\r\n subscribe(() => {\r\n isDirty = true;\r\n });\r\n\r\n return () => {\r\n if (isDirty) {\r\n cachedValue = computeFn();\r\n isDirty = false;\r\n }\r\n return cachedValue;\r\n };\r\n}\r\n\r\n/**\r\n * Batch multiple state changes into a single notification\r\n * \r\n * @param {Function} updateFn - Function containing multiple state updates\r\n * \r\n * @example\r\n * batch(() => {\r\n * state.name = 'Kwame';\r\n * state.age = 25;\r\n * state.country = 'Ghana';\r\n * }); // Only one notification\r\n */\r\nexport function batch(state, updateFn) {\r\n const subscribers = stateSubscribers.get(state) || new Set();\r\n const originalSubscribers = new Set(subscribers);\r\n subscribers.clear();\r\n\r\n try {\r\n updateFn();\r\n } finally {\r\n originalSubscribers.forEach(sub => subscribers.add(sub));\r\n notifySubscribers(state);\r\n }\r\n}\r\n\r\n/**\r\n * Create a simple signal (getter/setter pair)\r\n * \r\n * @param {*} initialValue - The initial value\r\n * @returns {[Function, Function]} [getter, setter]\r\n * \r\n * @example\r\n * const [count, setCount] = createSignal(0);\r\n * console.log(count()); // 0\r\n * setCount(5);\r\n * console.log(count()); // 5\r\n */\r\nexport function createSignal(initialValue) {\r\n let value = initialValue;\r\n const signalSubscribers = new Set();\r\n\r\n const getter = () => {\r\n return value;\r\n };\r\n\r\n const setter = (newValue) => {\r\n if (value !== newValue) {\r\n value = typeof newValue === 'function' ? newValue(value) : newValue;\r\n signalSubscribers.forEach(fn => fn());\r\n notifySubscribers();\r\n }\r\n };\r\n\r\n // Allow effects to subscribe to this signal\r\n getter.subscribe = (fn) => {\r\n signalSubscribers.add(fn);\r\n return () => signalSubscribers.delete(fn);\r\n };\r\n\r\n return [getter, setter];\r\n}\r\n\r\n/**\r\n * Create an effect that runs when reactive dependencies change\r\n * \r\n * @param {Function} effectFn - The effect function to run\r\n * @returns {Function} Cleanup function\r\n * \r\n * @example\r\n * const [count, setCount] = createSignal(0);\r\n * createEffect(() => console.log('Count is:', count()));\r\n */\r\nexport function createEffect(effectFn) {\r\n // Run immediately\r\n effectFn();\r\n // Subscribe to future changes\r\n return subscribe(effectFn);\r\n}\r\n\r\n// Default export for convenience\r\nexport default {\r\n createReactiveState,\r\n subscribe,\r\n computed,\r\n batch,\r\n createSignal,\r\n createEffect\r\n};\r\n",
6
6
  "/**\r\n * AfriCode Global Store\r\n * \r\n * Centralized state container for the application UI.\r\n * Powered by the core reactive engine.\r\n * \r\n * @module core/store\r\n */\r\n\r\nimport { createReactiveState } from './state.js';\r\n\r\n// Initial default state\r\nconst initialState = {\r\n theme: 'light', // Top-level theme\r\n language: 'en', // Top-level language\r\n ui: {\r\n sidebarCollapsed: false,\r\n theme: 'dark', // 'dark', 'light', 'system'\r\n activePage: 'home'\r\n },\r\n user: {\r\n name: 'Guest',\r\n permissions: []\r\n },\r\n config: {\r\n animationsEnabled: true,\r\n soundEnabled: false\r\n }\r\n};\r\n\r\n// Create the global store\r\nexport const store = createReactiveState(initialState);\r\n\r\n// Actions (Helper functions to modify state)\r\nexport const actions = {\r\n setTheme(theme) {\r\n if (['dark', 'light', 'system'].includes(theme)) {\r\n store.theme = theme;\r\n // Also update ui.theme for consistency\r\n store.ui.theme = theme;\r\n }\r\n },\r\n\r\n setLanguage(language) {\r\n store.language = language;\r\n },\r\n\r\n toggleSidebar(collapsed) {\r\n if (typeof collapsed === 'boolean') {\r\n store.ui.sidebarCollapsed = collapsed;\r\n } else {\r\n store.ui.sidebarCollapsed = !store.ui.sidebarCollapsed;\r\n }\r\n },\r\n\r\n setActivePage(pageName) {\r\n store.ui.activePage = pageName;\r\n }\r\n};\r\n\r\nexport default { store, actions };\r\n",
7
- "/**\r\n * AfriCode Procedural SVG Pattern Engine\r\n * \r\n * Generates lightweight, on-the-fly SVG patterns inspired by\r\n * African textiles from across the continent:\r\n * \r\n * EAST AFRICA: Maasai Shuka, Kanga, Kitenge, Hadzabe\r\n * WEST AFRICA: Ghana Kente, Adinkra, Nigeria Aso-Oke, Ankara\r\n * SOUTHERN AFRICA: Ndebele, Zulu, Swazi/Eswatini, Xhosa\r\n * \r\n * @module core/patterns\r\n */\r\n\r\n/**\r\n * Generate a polygon with n sides\r\n * Based on the mathematical formula:\r\n * x_i = cx + r * cos(2πi/n)\r\n * y_i = cy + r * sin(2πi/n)\r\n */\r\nexport function generatePolygon(n, r, cx = 50, cy = 50) {\r\n const points = [];\r\n for (let i = 0; i < n; i++) {\r\n const angle = (2 * Math.PI * i) / n - Math.PI / 2;\r\n const x = cx + r * Math.cos(angle);\r\n const y = cy + r * Math.sin(angle);\r\n points.push(`${x.toFixed(2)},${y.toFixed(2)}`);\r\n }\r\n return points.join(' ');\r\n}\r\n\r\n// ============================================\r\n// EAST AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Maasai Shuka tartan pattern (Tanzania/Kenya)\r\n * Traditional red checkered blanket with overlapping stripes\r\n */\r\nexport function generateShuka({\r\n primaryColor = '#FF0000',\r\n secondaryColor = '#000000',\r\n backgroundColor = '#8B0000',\r\n stripeWidth = 4,\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <rect x=\"0\" y=\"${size / 2 - stripeWidth / 2}\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n <rect x=\"0\" y=\"${size - stripeWidth}\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${primaryColor}\" opacity=\"0.5\"/>\r\n <rect x=\"${size / 2 - stripeWidth / 2}\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${secondaryColor}\" opacity=\"0.4\"/>\r\n <rect x=\"${size - stripeWidth}\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${primaryColor}\" opacity=\"0.5\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Hadzabe pattern (Tanzania)\r\n * Inspired by cave paintings and natural earth tones\r\n * Hunter-gatherer tribe with ancient artistic traditions\r\n */\r\nexport function generateHadzabe({\r\n earthColor = '#8B4513',\r\n ochreColor = '#CD853F',\r\n charcoalColor = '#2F2F2F',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${earthColor}\"/>\r\n <!-- Cave art inspired figures -->\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.08}\" fill=\"${ochreColor}\"/>\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.38}\" x2=\"${size * 0.3}\" y2=\"${size * 0.6}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.2}\" y1=\"${size * 0.45}\" x2=\"${size * 0.4}\" y2=\"${size * 0.45}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <!-- Animal figure -->\r\n <ellipse cx=\"${size * 0.7}\" cy=\"${size * 0.5}\" rx=\"${size * 0.15}\" ry=\"${size * 0.08}\" fill=\"${ochreColor}\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.58}\" x2=\"${size * 0.6}\" y2=\"${size * 0.7}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.8}\" y1=\"${size * 0.58}\" x2=\"${size * 0.8}\" y2=\"${size * 0.7}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <!-- Dots like ancient markings -->\r\n <circle cx=\"${size * 0.15}\" cy=\"${size * 0.8}\" r=\"3\" fill=\"${ochreColor}\"/>\r\n <circle cx=\"${size * 0.85}\" cy=\"${size * 0.2}\" r=\"3\" fill=\"${ochreColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kanga border pattern (Tanzania/Kenya)\r\n */\r\nexport function generateKangaBorder({\r\n primaryColor = '#1EB53A', // Simple Green (Tanzania)\r\n accentColor = '#FCD116', // Gold\r\n size = 30\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Pindo (Border) Motifs: Cashew/Triangle -->\r\n <path d=\"M0,0 L${size / 2},${size / 2} L0,${size} Z\" fill=\"${accentColor}\"/>\r\n <path d=\"M${size},0 L${size / 2},${size / 2} L${size},${size} Z\" fill=\"${accentColor}\"/>\r\n <circle cx=\"${size / 2}\" cy=\"${size / 2}\" r=\"${size * 0.15}\" fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kanga traditional Swahili cloth pattern (East Africa)\r\n */\r\nexport function generateKanga({\r\n primaryColor = '#FF6B00',\r\n secondaryColor = '#002B5C',\r\n backgroundColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Border pattern -->\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"${size * 0.9}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"${size * 0.9}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Center motif -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <text x=\"${size * 0.5}\" y=\"${size * 0.55}\" text-anchor=\"middle\" fill=\"${primaryColor}\" font-size=\"${size * 0.08}\">KANGA</text>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kuba Border pattern (Congo)\r\n */\r\nexport function generateKubaBorder({\r\n primaryColor = '#8B4513',\r\n secondaryColor = '#DAA520',\r\n backgroundColor = '#F5F5DC',\r\n size = 30\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Kuba geometric border -->\r\n <polygon points=\"0,0 ${size * 0.3},0 0,${size * 0.3}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.7},0 ${size},${size * 0.3}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"0,${size} ${size * 0.3},${size} 0,${size * 0.7}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},${size} ${size * 0.7},${size} ${size},${size * 0.7}\" fill=\"${primaryColor}\"/>\r\n <!-- Center diamond -->\r\n <polygon points=\"${size * 0.5},${size * 0.3} ${size * 0.7},${size * 0.5} ${size * 0.5},${size * 0.7} ${size * 0.3},${size * 0.5}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Zulu Beads pattern (South Africa)\r\n */\r\nexport function generateZuluBeads({\r\n primaryColor = '#FF0000',\r\n secondaryColor = '#000000',\r\n accentColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <!-- Bead pattern -->\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Maasai Shield pattern (Kenya/Tanzania)\r\n */\r\nexport function generateMasaiShield({\r\n primaryColor = '#8B0000',\r\n secondaryColor = '#FFD700',\r\n backgroundColor = '#654321',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" rx=\"${size * 0.4}\" ry=\"${size * 0.45}\" fill=\"${backgroundColor}\"/>\r\n <!-- Shield patterns -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.3}\" rx=\"${size * 0.2}\" ry=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"${size * 0.4}\" y=\"${size * 0.5}\" width=\"${size * 0.2}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <!-- Decorative lines -->\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.2}\" x2=\"${size * 0.7}\" y2=\"${size * 0.2}\" stroke=\"${primaryColor}\" stroke-width=\"3\"/>\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.8}\" x2=\"${size * 0.7}\" y2=\"${size * 0.8}\" stroke=\"${primaryColor}\" stroke-width=\"3\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ndebele Paint house pattern (South Africa)\r\n */\r\nexport function generateNdebelePaint({\r\n primaryColor = '#FF1493',\r\n secondaryColor = '#00FF00',\r\n accentColor = '#FFFF00',\r\n backgroundColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Ndebele geometric patterns -->\r\n <polygon points=\"${size * 0.2},${size * 0.2} ${size * 0.4},${size * 0.2} ${size * 0.3},${size * 0.4}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size * 0.6},${size * 0.2} ${size * 0.8},${size * 0.2} ${size * 0.7},${size * 0.4}\" fill=\"${secondaryColor}\"/>\r\n <polygon points=\"${size * 0.2},${size * 0.6} ${size * 0.4},${size * 0.6} ${size * 0.3},${size * 0.8}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size * 0.6},${size * 0.6} ${size * 0.8},${size * 0.6} ${size * 0.7},${size * 0.8}\" fill=\"${primaryColor}\"/>\r\n <!-- Center design -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.45}\" y=\"${size * 0.45}\" width=\"${size * 0.1}\" height=\"${size * 0.1}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kitenge floral pattern (East Africa)\r\n */\r\nexport function generateKitenge({\r\n primaryColor = '#00A3DD',\r\n secondaryColor = '#FCD116',\r\n backgroundColor = '#1EB53A',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.25}\" r=\"${size * 0.2}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.75}\" r=\"${size * 0.2}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.25}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.75}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.25}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.75}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// WEST AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Ghana Kente cloth pattern\r\n * Royal cloth of the Ashanti people with geometric strips\r\n * Colors: Gold (royalty), Green (harvest), Red (blood/sacrifice)\r\n */\r\nexport function generateKente({\r\n colors = ['#FFD700', '#228B22', '#DC143C', '#000000'],\r\n size = 60\r\n} = {}) {\r\n const [gold, green, red, black] = colors;\r\n const stripe = size / 6;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${black}\"/>\r\n <!-- Horizontal bands -->\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripe}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe}\" width=\"${size}\" height=\"${stripe}\" fill=\"${green}\"/>\r\n <rect x=\"0\" y=\"${stripe * 2}\" width=\"${size}\" height=\"${stripe}\" fill=\"${red}\"/>\r\n <rect x=\"0\" y=\"${stripe * 3}\" width=\"${size}\" height=\"${stripe}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 4}\" width=\"${size}\" height=\"${stripe}\" fill=\"${green}\"/>\r\n <rect x=\"0\" y=\"${stripe * 5}\" width=\"${size}\" height=\"${stripe}\" fill=\"${red}\"/>\r\n <!-- Vertical accents -->\r\n <rect x=\"${size * 0.2}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.4}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.6}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.8}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <!-- Kente squares -->\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.1}\" width=\"${size * 0.15}\" height=\"${size * 0.15}\" fill=\"${gold}\" stroke=\"${black}\" stroke-width=\"1\"/>\r\n <rect x=\"${size * 0.75}\" y=\"${size * 0.75}\" width=\"${size * 0.15}\" height=\"${size * 0.15}\" fill=\"${red}\" stroke=\"${black}\" stroke-width=\"1\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ghana Adinkra symbols pattern\r\n * Philosophical symbols of the Akan people\r\n * Each symbol represents concepts like wisdom, strength, unity\r\n */\r\nexport function generateAdinkra({\r\n symbolColor = '#000000',\r\n backgroundColor = '#CD853F',\r\n size = 50\r\n} = {}) {\r\n // Gye Nyame symbol (Supremacy of God) simplified\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Sankofa-inspired heart shape (go back and get it) -->\r\n <path d=\"M${size * 0.5} ${size * 0.2} \r\n C${size * 0.3} ${size * 0.1} ${size * 0.15} ${size * 0.3} ${size * 0.25} ${size * 0.5}\r\n L${size * 0.5} ${size * 0.8}\r\n L${size * 0.75} ${size * 0.5}\r\n C${size * 0.85} ${size * 0.3} ${size * 0.7} ${size * 0.1} ${size * 0.5} ${size * 0.2}\" \r\n fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"3\"/>\r\n <!-- Spiral detail -->\r\n <circle cx=\"${size * 0.35}\" cy=\"${size * 0.45}\" r=\"${size * 0.08}\" fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"2\"/>\r\n <circle cx=\"${size * 0.65}\" cy=\"${size * 0.45}\" r=\"${size * 0.08}\" fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Nigeria Aso-Oke pattern (Yoruba)\r\n * Hand-woven cloth with intricate strip patterns\r\n * Traditional for special occasions\r\n */\r\nexport function generateAsoOke({\r\n colors = ['#4B0082', '#FFD700', '#FFFFFF'],\r\n size = 50\r\n} = {}) {\r\n const [indigo, gold, white] = colors;\r\n const stripe = size / 10;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${indigo}\"/>\r\n <!-- Horizontal stripes -->\r\n <rect x=\"0\" y=\"${stripe}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 3}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${white}\"/>\r\n <rect x=\"0\" y=\"${stripe * 5}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 7}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${white}\"/>\r\n <rect x=\"0\" y=\"${stripe * 9}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <!-- Vertical accent lines -->\r\n <rect x=\"${size * 0.48}\" y=\"0\" width=\"${stripe * 0.4}\" height=\"${size}\" fill=\"${gold}\" opacity=\"0.7\"/>\r\n <!-- Diamond motifs -->\r\n <polygon points=\"${size * 0.25},${size * 0.3} ${size * 0.35},${size * 0.5} ${size * 0.25},${size * 0.7} ${size * 0.15},${size * 0.5}\" \r\n fill=\"${gold}\" stroke=\"${white}\" stroke-width=\"1\"/>\r\n <polygon points=\"${size * 0.75},${size * 0.3} ${size * 0.85},${size * 0.5} ${size * 0.75},${size * 0.7} ${size * 0.65},${size * 0.5}\" \r\n fill=\"${gold}\" stroke=\"${white}\" stroke-width=\"1\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Nigeria Ankara/African wax print pattern\r\n * Bold, colorful designs popular across Africa\r\n */\r\nexport function generateAnkara({\r\n primaryColor = '#FF6B00',\r\n secondaryColor = '#00A86B',\r\n accentColor = '#FFD700',\r\n backgroundColor = '#FFFFFF',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Bold circular motifs -->\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.25}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.08}\" fill=\"${accentColor}\"/>\r\n \r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.2}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n \r\n <!-- Connecting lines -->\r\n <line x1=\"${size * 0.45}\" y1=\"${size * 0.45}\" x2=\"${size * 0.65}\" y2=\"${size * 0.65}\" \r\n stroke=\"${primaryColor}\" stroke-width=\"4\"/>\r\n \r\n <!-- Small dots -->\r\n <circle cx=\"${size * 0.1}\" cy=\"${size * 0.8}\" r=\"${size * 0.05}\" fill=\"${accentColor}\"/>\r\n <circle cx=\"${size * 0.9}\" cy=\"${size * 0.2}\" r=\"${size * 0.05}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// CENTRAL & NORTH AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Bogolanfini (Mud Cloth) pattern (Mali)\r\n * Geometric abstract designs in earth tones\r\n */\r\nexport function generateBogolan({\r\n primaryColor = '#000000',\r\n secondaryColor = '#FFFFFF',\r\n accentColor = '#8B4513',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Zigzags -->\r\n <polyline points=\"0,${size * 0.2} ${size * 0.25},0 ${size * 0.5},${size * 0.2} ${size * 0.75},0 ${size},${size * 0.2}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <polyline points=\"0,${size * 0.8} ${size * 0.25},${size} ${size * 0.5},${size * 0.8} ${size * 0.75},${size} ${size},${size * 0.8}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <!-- Crosses -->\r\n <line x1=\"${size * 0.25}\" y1=\"${size * 0.4}\" x2=\"${size * 0.25}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.15}\" y1=\"${size * 0.5}\" x2=\"${size * 0.35}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.75}\" y1=\"${size * 0.4}\" x2=\"${size * 0.75}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.65}\" y1=\"${size * 0.5}\" x2=\"${size * 0.85}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <!-- Dots -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kuba Shoowa pattern (DRC)\r\n * Complex interlocking geometric shapes\r\n */\r\nexport function generateKuba({\r\n primaryColor = '#D2B48C',\r\n secondaryColor = '#3E2723',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Interlocking diamonds/rectangles -->\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.1}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.6}\" y=\"${size * 0.6}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.6}\" y=\"${size * 0.1}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"4\"/>\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.6}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"4\"/>\r\n <!-- Center lines -->\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.5}\" x2=\"${size * 0.6}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.4}\" x2=\"${size * 0.5}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Imigongo pattern (Rwanda)\r\n * Spiral/Geometric ridges traditionally made from cow dung\r\n */\r\nexport function generateImigongo({\r\n primaryColor = '#000000',\r\n secondaryColor = '#FFFFFF',\r\n accentColor = '#B22222',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${secondaryColor}\"/>\r\n <!-- Spiral/Diamond Motif -->\r\n <path d=\"M${size * 0.5} ${size * 0.1} \r\n L${size * 0.9} ${size * 0.5} \r\n L${size * 0.5} ${size * 0.9} \r\n L${size * 0.1} ${size * 0.5} Z\" \r\n fill=\"${primaryColor}\"/>\r\n <path d=\"M${size * 0.5} ${size * 0.3} \r\n L${size * 0.7} ${size * 0.5} \r\n L${size * 0.5} ${size * 0.7} \r\n L${size * 0.3} ${size * 0.5} Z\" \r\n fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ethiopian Tibeb pattern\r\n * Vibrant woven geometric borders\r\n */\r\nexport function generateTibeb({\r\n colors = ['#009E60', '#FCDD09', '#EF3340'], // Ethiopian flag colors\r\n backgroundColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const [c1, c2, c3] = colors;\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Diamond Chain -->\r\n <polygon points=\"${size * 0.5},0 ${size},${size * 0.5} ${size * 0.5},${size} 0,${size * 0.5}\" \r\n fill=\"${c1}\" opacity=\"0.2\"/>\r\n <polygon points=\"${size * 0.5},${size * 0.2} ${size * 0.8},${size * 0.5} ${size * 0.5},${size * 0.8} ${size * 0.2},${size * 0.5}\" \r\n fill=\"${c2}\"/>\r\n <rect x=\"${size * 0.4}\" y=\"${size * 0.4}\" width=\"${size * 0.2}\" height=\"${size * 0.2}\" fill=\"${c3}\"/>\r\n <!-- Side accents -->\r\n <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"${size}\" stroke=\"${c1}\" stroke-width=\"4\"/>\r\n <line x1=\"${size}\" y1=\"0\" x2=\"${size}\" y2=\"${size}\" stroke=\"${c1}\" stroke-width=\"4\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// SOUTHERN AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Ndebele geometric mural pattern (South Africa)\r\n */\r\nexport function generateNdebele({\r\n colors = ['#FFD700', '#4169E1', '#FF69B4', '#228B22'],\r\n size = 60,\r\n strokeWidth = 2\r\n} = {}) {\r\n const [c1, c2, c3, c4] = colors;\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"#FFFFFF\"/>\r\n <rect x=\"${strokeWidth}\" y=\"${strokeWidth}\" \r\n width=\"${size - strokeWidth * 2}\" height=\"${size - strokeWidth * 2}\" \r\n fill=\"none\" stroke=\"#000000\" stroke-width=\"${strokeWidth}\"/>\r\n <rect x=\"${size * 0.15}\" y=\"${size * 0.15}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c1}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.5}\" y=\"${size * 0.15}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c2}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.15}\" y=\"${size * 0.5}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c3}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.5}\" y=\"${size * 0.5}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c4}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <polygon points=\"${size / 2},${size * 0.3} ${size * 0.7},${size / 2} ${size / 2},${size * 0.7} ${size * 0.3},${size / 2}\"\r\n fill=\"#FFFFFF\" stroke=\"#000000\" stroke-width=\"${strokeWidth}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Zulu beadwork pattern (South Africa)\r\n * Traditional \"love letter\" beadwork with symbolic colors\r\n * Colors carry deep meaning in Zulu courtship\r\n */\r\nexport function generateZulu({\r\n colors = ['#FFFFFF', '#000000', '#FF0000', '#00A86B', '#FFD700'],\r\n size = 50\r\n} = {}) {\r\n const [white, black, red, green, gold] = colors;\r\n const bead = size / 10;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${black}\"/>\r\n <!-- Triangle pattern (isivivane - sacred cairn) -->\r\n <polygon points=\"${size * 0.5},${size * 0.1} ${size * 0.9},${size * 0.9} ${size * 0.1},${size * 0.9}\" \r\n fill=\"none\" stroke=\"${white}\" stroke-width=\"2\"/>\r\n <polygon points=\"${size * 0.5},${size * 0.25} ${size * 0.75},${size * 0.75} ${size * 0.25},${size * 0.75}\" \r\n fill=\"${red}\"/>\r\n <!-- Beadwork dots -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.35}\" r=\"${bead}\" fill=\"${white}\"/>\r\n <circle cx=\"${size * 0.35}\" cy=\"${size * 0.6}\" r=\"${bead}\" fill=\"${green}\"/>\r\n <circle cx=\"${size * 0.65}\" cy=\"${size * 0.6}\" r=\"${bead}\" fill=\"${gold}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.8}\" r=\"${bead}\" fill=\"${white}\"/>\r\n <!-- Border dots -->\r\n <circle cx=\"${size * 0.1}\" cy=\"${size * 0.1}\" r=\"${bead * 0.7}\" fill=\"${red}\"/>\r\n <circle cx=\"${size * 0.9}\" cy=\"${size * 0.1}\" r=\"${bead * 0.7}\" fill=\"${green}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Swazi/Eswatini pattern\r\n * Inspired by Ligwalagwala (purple-crested turaco) and royal patterns\r\n * Traditional shields and ceremonial designs\r\n */\r\nexport function generateSwazi({\r\n colors = ['#3E5EB9', '#FECD00', '#B10C0C', '#FFFFFF'],\r\n size = 50\r\n} = {}) {\r\n const [blue, gold, red, white] = colors;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${blue}\"/>\r\n <!-- Shield shape (central to Eswatini culture) -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.45}\" rx=\"${size * 0.35}\" ry=\"${size * 0.4}\" \r\n fill=\"${gold}\" stroke=\"${red}\" stroke-width=\"3\"/>\r\n <!-- Inner pattern -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.45}\" rx=\"${size * 0.2}\" ry=\"${size * 0.25}\" \r\n fill=\"${red}\"/>\r\n <!-- Feather accents -->\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.05}\" x2=\"${size * 0.5}\" y2=\"${size * 0.2}\" \r\n stroke=\"${white}\" stroke-width=\"3\"/>\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.08}\" x2=\"${size * 0.45}\" y2=\"${size * 0.15}\" \r\n stroke=\"${white}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.08}\" x2=\"${size * 0.55}\" y2=\"${size * 0.15}\" \r\n stroke=\"${white}\" stroke-width=\"2\"/>\r\n <!-- Spear points -->\r\n <polygon points=\"${size * 0.1},${size * 0.3} ${size * 0.05},${size * 0.5} ${size * 0.15},${size * 0.5}\" fill=\"${white}\"/>\r\n <polygon points=\"${size * 0.9},${size * 0.3} ${size * 0.85},${size * 0.5} ${size * 0.95},${size * 0.5}\" fill=\"${white}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Xhosa pattern (South Africa)\r\n * Inspired by traditional Xhosa beadwork and blanket designs\r\n * Known for bold geometric patterns\r\n */\r\nexport function generateXhosa({\r\n primaryColor = '#FFFFFF',\r\n accentColor = '#00A86B',\r\n backgroundColor = '#1a1a2e',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Horizontal bands -->\r\n <rect x=\"0\" y=\"${size * 0.2}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"${size * 0.7}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <!-- Vertical bands -->\r\n <rect x=\"${size * 0.2}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <rect x=\"${size * 0.7}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <!-- Central diamond -->\r\n <polygon points=\"${size * 0.5},${size * 0.35} ${size * 0.65},${size * 0.5} ${size * 0.5},${size * 0.65} ${size * 0.35},${size * 0.5}\" \r\n fill=\"${accentColor}\" stroke=\"${primaryColor}\" stroke-width=\"2\"/>\r\n <!-- Corner triangles -->\r\n <polygon points=\"0,0 ${size * 0.15},0 0,${size * 0.15}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.85},0 ${size},${size * 0.15}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"0,${size} ${size * 0.15},${size} 0,${size * 0.85}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size},${size} ${size * 0.85},${size} ${size},${size * 0.85}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Apply pattern as background to an element\r\n */\r\nexport function applyPattern(element, patternUrl) {\r\n element.style.backgroundImage = `url(\"${patternUrl}\")`;\r\n element.style.backgroundRepeat = 'repeat';\r\n}\r\n\r\n// ============================================\r\n// NORTH AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Berber pattern (North Africa)\r\n * Geometric designs inspired by Amazigh rugs and tattoos\r\n * Symbols of protection, fertility, and nature\r\n */\r\nexport function generateBerber({\r\n primaryColor = '#8B0000', // Deep red\r\n secondaryColor = '#000000',\r\n accentColor = '#FFD700',\r\n backgroundColor = '#F5F5DC', // Beige/Wool\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Lozenge (Diamond) - universal protective symbol -->\r\n <polygon points=\"${size * 0.5},${size * 0.1} ${size * 0.9},${size * 0.5} ${size * 0.5},${size * 0.9} ${size * 0.1},${size * 0.5}\" \r\n fill=\"${primaryColor}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <!-- Inner geometric details -->\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.1}\" x2=\"${size * 0.5}\" y2=\"${size * 0.9}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.1}\" y1=\"${size * 0.5}\" x2=\"${size * 0.9}\" y2=\"${size * 0.5}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <!-- X symbols (Fibula/Cross) -->\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.4}\" x2=\"${size * 0.6}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.4}\" x2=\"${size * 0.4}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Adire Oniko (Yoruba Indigo) pattern\r\n * Resist-dyed circles and ripples\r\n * \"Tie and dye\" technique simulation\r\n */\r\nexport function generateAdire({\r\n primaryColor = '#4B0082', // Indigo\r\n secondaryColor = '#8A2BE2', // Light Indigo\r\n accentColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Resist circles (Oniko) -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.35}\" fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.25}\" fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\" stroke-dasharray=\"4 2\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${accentColor}\" opacity=\"0.8\"/>\r\n <!-- Corner ripples -->\r\n <path d=\"M0,0 Q${size * 0.2},0 ${size * 0.2},${size * 0.2} Q0,${size * 0.2} 0,0\" fill=\"${secondaryColor}\"/>\r\n <path d=\"M${size},${size} Q${size * 0.8},${size} ${size * 0.8},${size * 0.8} Q${size},${size * 0.8} ${size},${size}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// Export all generators\r\nexport default {\r\n // East Africa\r\n generatePolygon,\r\n generateShuka,\r\n generateHadzabe,\r\n generateKanga,\r\n generateKangaBorder,\r\n generateKitenge,\r\n generateMasaiShield,\r\n generateTibeb, // Ethiopia\r\n generateImigongo, // Rwanda\r\n // West Africa\r\n generateKente,\r\n generateAdinkra,\r\n generateAsoOke,\r\n generateAnkara,\r\n generateBogolan, // Mali/West\r\n generateAdire, // Nigeria (Indigo)\r\n // Central Africa\r\n generateKuba, // DRC\r\n generateKubaBorder,\r\n // North Africa\r\n generateBerber, // Amazigh\r\n // Southern Africa\r\n generateNdebele,\r\n generateNdebelePaint,\r\n generateZulu,\r\n generateZuluBeads,\r\n generateSwazi,\r\n generateXhosa,\r\n // Utilities\r\n applyPattern,\r\n // Tech Patterns\r\n generateTuareg,\r\n generateGeez,\r\n generateBoli,\r\n generateCircuit,\r\n circuit: generateCircuit\r\n};\r\n\r\n/**\r\n * Generate Tuareg Indigo pattern (Sahara/Berber)\r\n * Inspired by the \"Blue Men of the Sahara\" and their geometric silver jewelry/stars\r\n */\r\nexport function generateTuareg({\r\n primaryColor = '#2D3D6B', // Tuareg Indigo\r\n secondaryColor = '#6B8CC7', // Sky Blue\r\n accentColor = '#FFFFFF', // Silver/White\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Southern Cross / Tuareg Star -->\r\n <path d=\"M${size * 0.5} 0 L${size * 0.6} ${size * 0.4} L${size} ${size * 0.5} L${size * 0.6} ${size * 0.6} L${size * 0.5} ${size} L${size * 0.4} ${size * 0.6} L0 ${size * 0.5} L${size * 0.4} ${size * 0.4} Z\" \r\n fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ge'ez Script pattern (Ethiopia/Eritrea)\r\n * Abstract calligraphic strokes inspired by one of the world's oldest scripts\r\n */\r\nexport function generateGeez({\r\n inkColor = '#3A2E2C',\r\n parchmentColor = '#F4E4BC',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${parchmentColor}\"/>\r\n <path d=\"M${size * 0.2} ${size * 0.2} L${size * 0.4} ${size * 0.2} M${size * 0.3} ${size * 0.2} L${size * 0.3} ${size * 0.5} Q${size * 0.4} ${size * 0.6} ${size * 0.2} ${size * 0.7}\" \r\n fill=\"none\" stroke=\"${inkColor}\" stroke-width=\"3\" stroke-linecap=\"round\"/>\r\n <path d=\"M${size * 0.6} ${size * 0.3} C${size * 0.8} ${size * 0.3} ${size * 0.8} ${size * 0.6} ${size * 0.6} ${size * 0.6} L${size * 0.8} ${size * 0.8}\" \r\n fill=\"none\" stroke=\"${inkColor}\" stroke-width=\"3\" stroke-linecap=\"round\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Boli pattern (Mali/Bambara)\r\n * Abstract organic shapes inspired by mud-based ritual objects\r\n */\r\nexport function generateBoli({\r\n clayColor = '#4E342E',\r\n earthColor = '#3E2723',\r\n accentColor = '#BCAAA4',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${earthColor}\"/>\r\n <path d=\"M${size * 0.2} ${size * 0.5} Q${size * 0.3} ${size * 0.2} ${size * 0.5} ${size * 0.3} T${size * 0.8} ${size * 0.5} Q${size * 0.7} ${size * 0.8} ${size * 0.5} ${size * 0.7} T${size * 0.2} ${size * 0.5}\" \r\n fill=\"${clayColor}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\nexport function generateCircuit({\r\n primaryColor = '#334155',\r\n secondaryColor = '#1e293b',\r\n size = 100\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 100 100\">\r\n <rect width=\"100\" height=\"100\" fill=\"${secondaryColor}\"/>\r\n <path d=\"M10 10 H90 V90 H10 Z\" fill=\"none\" stroke=\"${primaryColor}\" stroke-width=\"0.5\" opacity=\"0.3\"/>\r\n <path d=\"M20 20 V50 H50 V80 H80\" fill=\"none\" stroke=\"${primaryColor}\" stroke-width=\"1\"/>\r\n <circle cx=\"20\" cy=\"20\" r=\"2\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"80\" cy=\"80\" r=\"2\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"50\" cy=\"50\" r=\"1.5\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n",
7
+ "/**\r\n * AfriCode Procedural SVG Pattern Engine\r\n * \r\n * Generates lightweight, on-the-fly SVG patterns inspired by\r\n * African textiles from across the continent:\r\n * \r\n * EAST AFRICA: Maasai Shuka, Kanga, Kitenge, Hadzabe\r\n * WEST AFRICA: Ghana Kente, Adinkra, Nigeria Aso-Oke, Ankara\r\n * SOUTHERN AFRICA: Ndebele, Zulu, Swazi/Eswatini, Xhosa\r\n * \r\n * @module core/patterns\r\n */\r\n\r\n/**\r\n * Generate a polygon with n sides\r\n * Based on the mathematical formula:\r\n * x_i = cx + r * cos(2πi/n)\r\n * y_i = cy + r * sin(2πi/n)\r\n */\r\nexport function generatePolygon(n, r, cx = 50, cy = 50) {\r\n const points = [];\r\n for (let i = 0; i < n; i++) {\r\n const angle = (2 * Math.PI * i) / n - Math.PI / 2;\r\n const x = cx + r * Math.cos(angle);\r\n const y = cy + r * Math.sin(angle);\r\n points.push(`${x.toFixed(2)},${y.toFixed(2)}`);\r\n }\r\n return points.join(' ');\r\n}\r\n\r\n// ============================================\r\n// EAST AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Maasai Shuka tartan pattern (Tanzania/Kenya)\r\n * Traditional red checkered blanket with overlapping stripes\r\n */\r\nexport function generateShuka({\r\n primaryColor = '#FF0000',\r\n secondaryColor = '#000000',\r\n backgroundColor = '#8B0000',\r\n stripeWidth = 4,\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <rect x=\"0\" y=\"${size / 2 - stripeWidth / 2}\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n <rect x=\"0\" y=\"${size - stripeWidth}\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${primaryColor}\" opacity=\"0.5\"/>\r\n <rect x=\"${size / 2 - stripeWidth / 2}\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${secondaryColor}\" opacity=\"0.4\"/>\r\n <rect x=\"${size - stripeWidth}\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${primaryColor}\" opacity=\"0.5\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Hadzabe pattern (Tanzania)\r\n * Inspired by cave paintings and natural earth tones\r\n * Hunter-gatherer tribe with ancient artistic traditions\r\n */\r\nexport function generateHadzabe({\r\n earthColor = '#8B4513',\r\n ochreColor = '#CD853F',\r\n charcoalColor = '#2F2F2F',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${earthColor}\"/>\r\n <!-- Cave art inspired figures -->\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.08}\" fill=\"${ochreColor}\"/>\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.38}\" x2=\"${size * 0.3}\" y2=\"${size * 0.6}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.2}\" y1=\"${size * 0.45}\" x2=\"${size * 0.4}\" y2=\"${size * 0.45}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <!-- Animal figure -->\r\n <ellipse cx=\"${size * 0.7}\" cy=\"${size * 0.5}\" rx=\"${size * 0.15}\" ry=\"${size * 0.08}\" fill=\"${ochreColor}\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.58}\" x2=\"${size * 0.6}\" y2=\"${size * 0.7}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.8}\" y1=\"${size * 0.58}\" x2=\"${size * 0.8}\" y2=\"${size * 0.7}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <!-- Dots like ancient markings -->\r\n <circle cx=\"${size * 0.15}\" cy=\"${size * 0.8}\" r=\"3\" fill=\"${ochreColor}\"/>\r\n <circle cx=\"${size * 0.85}\" cy=\"${size * 0.2}\" r=\"3\" fill=\"${ochreColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kanga border pattern (Tanzania/Kenya)\r\n */\r\nexport function generateKangaBorder({\r\n primaryColor = '#1EB53A', // Simple Green (Tanzania)\r\n accentColor = '#FCD116', // Gold\r\n size = 30\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Pindo (Border) Motifs: Cashew/Triangle -->\r\n <path d=\"M0,0 L${size / 2},${size / 2} L0,${size} Z\" fill=\"${accentColor}\"/>\r\n <path d=\"M${size},0 L${size / 2},${size / 2} L${size},${size} Z\" fill=\"${accentColor}\"/>\r\n <circle cx=\"${size / 2}\" cy=\"${size / 2}\" r=\"${size * 0.15}\" fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kanga traditional Swahili cloth pattern (East Africa)\r\n */\r\nexport function generateKanga({\r\n primaryColor = '#FF6B00',\r\n secondaryColor = '#002B5C',\r\n backgroundColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Border pattern -->\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"${size * 0.9}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"${size * 0.9}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Center motif -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <text x=\"${size * 0.5}\" y=\"${size * 0.55}\" text-anchor=\"middle\" fill=\"${primaryColor}\" font-size=\"${size * 0.08}\">KANGA</text>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kuba Border pattern (Congo)\r\n */\r\nexport function generateKubaBorder({\r\n primaryColor = '#8B4513',\r\n secondaryColor = '#DAA520',\r\n backgroundColor = '#F5F5DC',\r\n size = 30\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Kuba geometric border -->\r\n <polygon points=\"0,0 ${size * 0.3},0 0,${size * 0.3}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.7},0 ${size},${size * 0.3}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"0,${size} ${size * 0.3},${size} 0,${size * 0.7}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},${size} ${size * 0.7},${size} ${size},${size * 0.7}\" fill=\"${primaryColor}\"/>\r\n <!-- Center diamond -->\r\n <polygon points=\"${size * 0.5},${size * 0.3} ${size * 0.7},${size * 0.5} ${size * 0.5},${size * 0.7} ${size * 0.3},${size * 0.5}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Zulu Beads pattern (South Africa)\r\n */\r\nexport function generateZuluBeads({\r\n primaryColor = '#FF0000',\r\n secondaryColor = '#000000',\r\n accentColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <!-- Bead pattern -->\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Maasai Shield pattern (Kenya/Tanzania)\r\n */\r\nexport function generateMasaiShield({\r\n primaryColor = '#8B0000',\r\n secondaryColor = '#FFD700',\r\n backgroundColor = '#654321',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" rx=\"${size * 0.4}\" ry=\"${size * 0.45}\" fill=\"${backgroundColor}\"/>\r\n <!-- Shield patterns -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.3}\" rx=\"${size * 0.2}\" ry=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"${size * 0.4}\" y=\"${size * 0.5}\" width=\"${size * 0.2}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <!-- Decorative lines -->\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.2}\" x2=\"${size * 0.7}\" y2=\"${size * 0.2}\" stroke=\"${primaryColor}\" stroke-width=\"3\"/>\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.8}\" x2=\"${size * 0.7}\" y2=\"${size * 0.8}\" stroke=\"${primaryColor}\" stroke-width=\"3\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ndebele Paint house pattern (South Africa)\r\n */\r\nexport function generateNdebelePaint({\r\n primaryColor = '#FF1493',\r\n secondaryColor = '#00FF00',\r\n accentColor = '#FFFF00',\r\n backgroundColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Ndebele geometric patterns -->\r\n <polygon points=\"${size * 0.2},${size * 0.2} ${size * 0.4},${size * 0.2} ${size * 0.3},${size * 0.4}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size * 0.6},${size * 0.2} ${size * 0.8},${size * 0.2} ${size * 0.7},${size * 0.4}\" fill=\"${secondaryColor}\"/>\r\n <polygon points=\"${size * 0.2},${size * 0.6} ${size * 0.4},${size * 0.6} ${size * 0.3},${size * 0.8}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size * 0.6},${size * 0.6} ${size * 0.8},${size * 0.6} ${size * 0.7},${size * 0.8}\" fill=\"${primaryColor}\"/>\r\n <!-- Center design -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.45}\" y=\"${size * 0.45}\" width=\"${size * 0.1}\" height=\"${size * 0.1}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kitenge floral pattern (East Africa)\r\n */\r\nexport function generateKitenge({\r\n primaryColor = '#00A3DD',\r\n secondaryColor = '#FCD116',\r\n backgroundColor = '#1EB53A',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.25}\" r=\"${size * 0.2}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.75}\" r=\"${size * 0.2}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.25}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.75}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.25}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.75}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// WEST AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Ghana Kente cloth pattern\r\n * Royal cloth of the Ashanti people with geometric strips\r\n * Colors: Gold (royalty), Green (harvest), Red (blood/sacrifice)\r\n */\r\nexport function generateKente({\r\n colors = ['#FFD700', '#228B22', '#DC143C', '#000000'],\r\n size = 60\r\n} = {}) {\r\n const [gold, green, red, black] = colors;\r\n const stripe = size / 6;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${black}\"/>\r\n <!-- Horizontal bands -->\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripe}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe}\" width=\"${size}\" height=\"${stripe}\" fill=\"${green}\"/>\r\n <rect x=\"0\" y=\"${stripe * 2}\" width=\"${size}\" height=\"${stripe}\" fill=\"${red}\"/>\r\n <rect x=\"0\" y=\"${stripe * 3}\" width=\"${size}\" height=\"${stripe}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 4}\" width=\"${size}\" height=\"${stripe}\" fill=\"${green}\"/>\r\n <rect x=\"0\" y=\"${stripe * 5}\" width=\"${size}\" height=\"${stripe}\" fill=\"${red}\"/>\r\n <!-- Vertical accents -->\r\n <rect x=\"${size * 0.2}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.4}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.6}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.8}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <!-- Kente squares -->\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.1}\" width=\"${size * 0.15}\" height=\"${size * 0.15}\" fill=\"${gold}\" stroke=\"${black}\" stroke-width=\"1\"/>\r\n <rect x=\"${size * 0.75}\" y=\"${size * 0.75}\" width=\"${size * 0.15}\" height=\"${size * 0.15}\" fill=\"${red}\" stroke=\"${black}\" stroke-width=\"1\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ghana Adinkra symbols pattern\r\n * Philosophical symbols of the Akan people\r\n * Each symbol represents concepts like wisdom, strength, unity\r\n */\r\nexport function generateAdinkra({\r\n symbolColor = '#000000',\r\n backgroundColor = '#CD853F',\r\n size = 50\r\n} = {}) {\r\n // Gye Nyame symbol (Supremacy of God) simplified\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Sankofa-inspired heart shape (go back and get it) -->\r\n <path d=\"M${size * 0.5} ${size * 0.2} \r\n C${size * 0.3} ${size * 0.1} ${size * 0.15} ${size * 0.3} ${size * 0.25} ${size * 0.5}\r\n L${size * 0.5} ${size * 0.8}\r\n L${size * 0.75} ${size * 0.5}\r\n C${size * 0.85} ${size * 0.3} ${size * 0.7} ${size * 0.1} ${size * 0.5} ${size * 0.2}\" \r\n fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"3\"/>\r\n <!-- Spiral detail -->\r\n <circle cx=\"${size * 0.35}\" cy=\"${size * 0.45}\" r=\"${size * 0.08}\" fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"2\"/>\r\n <circle cx=\"${size * 0.65}\" cy=\"${size * 0.45}\" r=\"${size * 0.08}\" fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Nigeria Aso-Oke pattern (Yoruba)\r\n * Hand-woven cloth with intricate strip patterns\r\n * Traditional for special occasions\r\n */\r\nexport function generateAsoOke({\r\n colors = ['#4B0082', '#FFD700', '#FFFFFF'],\r\n size = 50\r\n} = {}) {\r\n const [indigo, gold, white] = colors;\r\n const stripe = size / 10;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${indigo}\"/>\r\n <!-- Horizontal stripes -->\r\n <rect x=\"0\" y=\"${stripe}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 3}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${white}\"/>\r\n <rect x=\"0\" y=\"${stripe * 5}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 7}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${white}\"/>\r\n <rect x=\"0\" y=\"${stripe * 9}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <!-- Vertical accent lines -->\r\n <rect x=\"${size * 0.48}\" y=\"0\" width=\"${stripe * 0.4}\" height=\"${size}\" fill=\"${gold}\" opacity=\"0.7\"/>\r\n <!-- Diamond motifs -->\r\n <polygon points=\"${size * 0.25},${size * 0.3} ${size * 0.35},${size * 0.5} ${size * 0.25},${size * 0.7} ${size * 0.15},${size * 0.5}\" \r\n fill=\"${gold}\" stroke=\"${white}\" stroke-width=\"1\"/>\r\n <polygon points=\"${size * 0.75},${size * 0.3} ${size * 0.85},${size * 0.5} ${size * 0.75},${size * 0.7} ${size * 0.65},${size * 0.5}\" \r\n fill=\"${gold}\" stroke=\"${white}\" stroke-width=\"1\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Nigeria Ankara/African wax print pattern\r\n * Bold, colorful designs popular across Africa\r\n */\r\nexport function generateAnkara({\r\n primaryColor = '#FF6B00',\r\n secondaryColor = '#00A86B',\r\n accentColor = '#FFD700',\r\n backgroundColor = '#FFFFFF',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Bold circular motifs -->\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.25}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.08}\" fill=\"${accentColor}\"/>\r\n \r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.2}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n \r\n <!-- Connecting lines -->\r\n <line x1=\"${size * 0.45}\" y1=\"${size * 0.45}\" x2=\"${size * 0.65}\" y2=\"${size * 0.65}\" \r\n stroke=\"${primaryColor}\" stroke-width=\"4\"/>\r\n \r\n <!-- Small dots -->\r\n <circle cx=\"${size * 0.1}\" cy=\"${size * 0.8}\" r=\"${size * 0.05}\" fill=\"${accentColor}\"/>\r\n <circle cx=\"${size * 0.9}\" cy=\"${size * 0.2}\" r=\"${size * 0.05}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// CENTRAL & NORTH AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Bogolanfini (Mud Cloth) pattern (Mali)\r\n * Geometric abstract designs in earth tones\r\n */\r\nexport function generateBogolan({\r\n primaryColor = '#000000',\r\n secondaryColor = '#FFFFFF',\r\n accentColor = '#8B4513',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Zigzags -->\r\n <polyline points=\"0,${size * 0.2} ${size * 0.25},0 ${size * 0.5},${size * 0.2} ${size * 0.75},0 ${size},${size * 0.2}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <polyline points=\"0,${size * 0.8} ${size * 0.25},${size} ${size * 0.5},${size * 0.8} ${size * 0.75},${size} ${size},${size * 0.8}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <!-- Crosses -->\r\n <line x1=\"${size * 0.25}\" y1=\"${size * 0.4}\" x2=\"${size * 0.25}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.15}\" y1=\"${size * 0.5}\" x2=\"${size * 0.35}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.75}\" y1=\"${size * 0.4}\" x2=\"${size * 0.75}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.65}\" y1=\"${size * 0.5}\" x2=\"${size * 0.85}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <!-- Dots -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kuba Shoowa pattern (DRC)\r\n * Complex interlocking geometric shapes\r\n */\r\nexport function generateKuba({\r\n primaryColor = '#D2B48C',\r\n secondaryColor = '#3E2723',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Interlocking diamonds/rectangles -->\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.1}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.6}\" y=\"${size * 0.6}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.6}\" y=\"${size * 0.1}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"4\"/>\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.6}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"4\"/>\r\n <!-- Center lines -->\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.5}\" x2=\"${size * 0.6}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.4}\" x2=\"${size * 0.5}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Imigongo pattern (Rwanda)\r\n * Spiral/Geometric ridges traditionally made from cow dung\r\n */\r\nexport function generateImigongo({\r\n primaryColor = '#000000',\r\n secondaryColor = '#FFFFFF',\r\n accentColor = '#B22222',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${secondaryColor}\"/>\r\n <!-- Spiral/Diamond Motif -->\r\n <path d=\"M${size * 0.5} ${size * 0.1} \r\n L${size * 0.9} ${size * 0.5} \r\n L${size * 0.5} ${size * 0.9} \r\n L${size * 0.1} ${size * 0.5} Z\" \r\n fill=\"${primaryColor}\"/>\r\n <path d=\"M${size * 0.5} ${size * 0.3} \r\n L${size * 0.7} ${size * 0.5} \r\n L${size * 0.5} ${size * 0.7} \r\n L${size * 0.3} ${size * 0.5} Z\" \r\n fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ethiopian Tibeb pattern\r\n * Vibrant woven geometric borders\r\n */\r\nexport function generateTibeb({\r\n colors = ['#009E60', '#FCDD09', '#EF3340'], // Ethiopian flag colors\r\n backgroundColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const [c1, c2, c3] = colors;\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Diamond Chain -->\r\n <polygon points=\"${size * 0.5},0 ${size},${size * 0.5} ${size * 0.5},${size} 0,${size * 0.5}\" \r\n fill=\"${c1}\" opacity=\"0.2\"/>\r\n <polygon points=\"${size * 0.5},${size * 0.2} ${size * 0.8},${size * 0.5} ${size * 0.5},${size * 0.8} ${size * 0.2},${size * 0.5}\" \r\n fill=\"${c2}\"/>\r\n <rect x=\"${size * 0.4}\" y=\"${size * 0.4}\" width=\"${size * 0.2}\" height=\"${size * 0.2}\" fill=\"${c3}\"/>\r\n <!-- Side accents -->\r\n <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"${size}\" stroke=\"${c1}\" stroke-width=\"4\"/>\r\n <line x1=\"${size}\" y1=\"0\" x2=\"${size}\" y2=\"${size}\" stroke=\"${c1}\" stroke-width=\"4\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// SOUTHERN AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Ndebele geometric mural pattern (South Africa)\r\n */\r\nexport function generateNdebele({\r\n colors = ['#FFD700', '#4169E1', '#FF69B4', '#228B22'],\r\n size = 60,\r\n strokeWidth = 2\r\n} = {}) {\r\n const [c1, c2, c3, c4] = colors;\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"#FFFFFF\"/>\r\n <rect x=\"${strokeWidth}\" y=\"${strokeWidth}\" \r\n width=\"${size - strokeWidth * 2}\" height=\"${size - strokeWidth * 2}\" \r\n fill=\"none\" stroke=\"#000000\" stroke-width=\"${strokeWidth}\"/>\r\n <rect x=\"${size * 0.15}\" y=\"${size * 0.15}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c1}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.5}\" y=\"${size * 0.15}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c2}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.15}\" y=\"${size * 0.5}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c3}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.5}\" y=\"${size * 0.5}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c4}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <polygon points=\"${size / 2},${size * 0.3} ${size * 0.7},${size / 2} ${size / 2},${size * 0.7} ${size * 0.3},${size / 2}\"\r\n fill=\"#FFFFFF\" stroke=\"#000000\" stroke-width=\"${strokeWidth}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Zulu beadwork pattern (South Africa)\r\n * Traditional \"love letter\" beadwork with symbolic colors\r\n * Colors carry deep meaning in Zulu courtship\r\n */\r\nexport function generateZulu({\r\n colors = ['#FFFFFF', '#000000', '#FF0000', '#00A86B', '#FFD700'],\r\n size = 50\r\n} = {}) {\r\n const [white, black, red, green, gold] = colors;\r\n const bead = size / 10;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${black}\"/>\r\n <!-- Triangle pattern (isivivane - sacred cairn) -->\r\n <polygon points=\"${size * 0.5},${size * 0.1} ${size * 0.9},${size * 0.9} ${size * 0.1},${size * 0.9}\" \r\n fill=\"none\" stroke=\"${white}\" stroke-width=\"2\"/>\r\n <polygon points=\"${size * 0.5},${size * 0.25} ${size * 0.75},${size * 0.75} ${size * 0.25},${size * 0.75}\" \r\n fill=\"${red}\"/>\r\n <!-- Beadwork dots -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.35}\" r=\"${bead}\" fill=\"${white}\"/>\r\n <circle cx=\"${size * 0.35}\" cy=\"${size * 0.6}\" r=\"${bead}\" fill=\"${green}\"/>\r\n <circle cx=\"${size * 0.65}\" cy=\"${size * 0.6}\" r=\"${bead}\" fill=\"${gold}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.8}\" r=\"${bead}\" fill=\"${white}\"/>\r\n <!-- Border dots -->\r\n <circle cx=\"${size * 0.1}\" cy=\"${size * 0.1}\" r=\"${bead * 0.7}\" fill=\"${red}\"/>\r\n <circle cx=\"${size * 0.9}\" cy=\"${size * 0.1}\" r=\"${bead * 0.7}\" fill=\"${green}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Swazi/Eswatini pattern\r\n */\r\nexport function generateSwazi({\r\n primaryColor = '#003082', // Blue\r\n secondaryColor = '#FCD116', // Yellow\r\n accentColor = '#C8102E', // Red\r\n backgroundColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Swazi shield-like pattern -->\r\n <path d=\"M${size * 0.5},0 C${size * 0.8},${size * 0.1} ${size},${size * 0.3} ${size},${size * 0.5} C${size},${size * 0.7} ${size * 0.8},${size * 0.9} ${size * 0.5},${size} C${size * 0.2},${size * 0.9} 0,${size * 0.7} 0,${size * 0.5} C0,${size * 0.3} ${size * 0.2},${size * 0.1} ${size * 0.5},0 Z\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <!-- Diagonal stripes -->\r\n <line x1=\"0\" y1=\"${size * 0.2}\" x2=\"${size * 0.2}\" y2=\"0\" stroke=\"${secondaryColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"0\" y1=\"${size * 0.4}\" x2=\"${size * 0.4}\" y2=\"0\" stroke=\"${accentColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"0\" y1=\"${size * 0.6}\" x2=\"${size * 0.6}\" y2=\"0\" stroke=\"${secondaryColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"0\" y1=\"${size * 0.8}\" x2=\"${size * 0.8}\" y2=\"0\" stroke=\"${accentColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"${size * 0.2}\" y1=\"${size}\" x2=\"${size}\" y2=\"${size * 0.2}\" stroke=\"${secondaryColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"${size * 0.4}\" y1=\"${size}\" x2=\"${size}\" y2=\"${size * 0.4}\" stroke=\"${accentColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size}\" x2=\"${size}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n <line x1=\"${size * 0.8}\" y1=\"${size}\" x2=\"${size}\" y2=\"${size * 0.8}\" stroke=\"${accentColor}\" stroke-width=\"${size * 0.1}\" stroke-opacity=\"0.7\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Xhosa pattern\r\n */\r\nexport function generateXhosa({\r\n primaryColor = '#000000', // Black\r\n secondaryColor = '#FFFFFF', // White\r\n accentColor = '#FF0000', // Red\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${secondaryColor}\"/>\r\n <!-- Xhosa geometric triangles -->\r\n <polygon points=\"0,0 ${size * 0.5},${size * 0.5} 0,${size}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.5},${size * 0.5} ${size},${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Center diamond -->\r\n <polygon points=\"${size * 0.4},${size * 0.3} ${size * 0.5},${size * 0.2} ${size * 0.6},${size * 0.3} ${size * 0.5},${size * 0.4}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size * 0.4},${size * 0.7} ${size * 0.5},${size * 0.8} ${size * 0.6},${size * 0.7} ${size * 0.5},${size * 0.6}\" fill=\"${accentColor}\"/>\r\n <!-- Horizontal band -->\r\n <rect x=\"0\" y=\"${size * 0.45}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Swazi/Eswatini pattern\r\n * Inspired by Ligwalagwala (purple-crested turaco) and royal patterns\r\n * Traditional shields and ceremonial designs\r\n */\r\nexport function generateSwazi({\r\n colors = ['#3E5EB9', '#FECD00', '#B10C0C', '#FFFFFF'],\r\n size = 50\r\n} = {}) {\r\n const [blue, gold, red, white] = colors;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${blue}\"/>\r\n <!-- Shield shape (central to Eswatini culture) -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.45}\" rx=\"${size * 0.35}\" ry=\"${size * 0.4}\" \r\n fill=\"${gold}\" stroke=\"${red}\" stroke-width=\"3\"/>\r\n <!-- Inner pattern -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.45}\" rx=\"${size * 0.2}\" ry=\"${size * 0.25}\" \r\n fill=\"${red}\"/>\r\n <!-- Feather accents -->\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.05}\" x2=\"${size * 0.5}\" y2=\"${size * 0.2}\" \r\n stroke=\"${white}\" stroke-width=\"3\"/>\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.08}\" x2=\"${size * 0.45}\" y2=\"${size * 0.15}\" \r\n stroke=\"${white}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.08}\" x2=\"${size * 0.55}\" y2=\"${size * 0.15}\" \r\n stroke=\"${white}\" stroke-width=\"2\"/>\r\n <!-- Spear points -->\r\n <polygon points=\"${size * 0.1},${size * 0.3} ${size * 0.05},${size * 0.5} ${size * 0.15},${size * 0.5}\" fill=\"${white}\"/>\r\n <polygon points=\"${size * 0.9},${size * 0.3} ${size * 0.85},${size * 0.5} ${size * 0.95},${size * 0.5}\" fill=\"${white}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Xhosa pattern (South Africa)\r\n * Inspired by traditional Xhosa beadwork and blanket designs\r\n * Known for bold geometric patterns\r\n */\r\nexport function generateXhosa({\r\n primaryColor = '#FFFFFF',\r\n accentColor = '#00A86B',\r\n backgroundColor = '#1a1a2e',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Horizontal bands -->\r\n <rect x=\"0\" y=\"${size * 0.2}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"${size * 0.7}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <!-- Vertical bands -->\r\n <rect x=\"${size * 0.2}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <rect x=\"${size * 0.7}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <!-- Central diamond -->\r\n <polygon points=\"${size * 0.5},${size * 0.35} ${size * 0.65},${size * 0.5} ${size * 0.5},${size * 0.65} ${size * 0.35},${size * 0.5}\" \r\n fill=\"${accentColor}\" stroke=\"${primaryColor}\" stroke-width=\"2\"/>\r\n <!-- Corner triangles -->\r\n <polygon points=\"0,0 ${size * 0.15},0 0,${size * 0.15}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.85},0 ${size},${size * 0.15}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"0,${size} ${size * 0.15},${size} 0,${size * 0.85}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size},${size} ${size * 0.85},${size} ${size},${size * 0.85}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Apply pattern as background to an element\r\n */\r\nexport function applyPattern(element, patternUrl) {\r\n element.style.backgroundImage = `url(\"${patternUrl}\")`;\r\n element.style.backgroundRepeat = 'repeat';\r\n}\r\n\r\n// ============================================\r\n// NORTH AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Berber pattern (North Africa)\r\n * Geometric designs inspired by Amazigh rugs and tattoos\r\n * Symbols of protection, fertility, and nature\r\n */\r\nexport function generateBerber({\r\n primaryColor = '#8B0000', // Deep red\r\n secondaryColor = '#000000',\r\n accentColor = '#FFD700',\r\n backgroundColor = '#F5F5DC', // Beige/Wool\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Lozenge (Diamond) - universal protective symbol -->\r\n <polygon points=\"${size * 0.5},${size * 0.1} ${size * 0.9},${size * 0.5} ${size * 0.5},${size * 0.9} ${size * 0.1},${size * 0.5}\" \r\n fill=\"${primaryColor}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <!-- Inner geometric details -->\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.1}\" x2=\"${size * 0.5}\" y2=\"${size * 0.9}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.1}\" y1=\"${size * 0.5}\" x2=\"${size * 0.9}\" y2=\"${size * 0.5}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <!-- X symbols (Fibula/Cross) -->\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.4}\" x2=\"${size * 0.6}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.4}\" x2=\"${size * 0.4}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Adire Oniko (Yoruba Indigo) pattern\r\n * Resist-dyed circles and ripples\r\n * \"Tie and dye\" technique simulation\r\n */\r\nexport function generateAdire({\r\n primaryColor = '#4B0082', // Indigo\r\n secondaryColor = '#8A2BE2', // Light Indigo\r\n accentColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Resist circles (Oniko) -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.35}\" fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.25}\" fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\" stroke-dasharray=\"4 2\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${accentColor}\" opacity=\"0.8\"/>\r\n <!-- Corner ripples -->\r\n <path d=\"M0,0 Q${size * 0.2},0 ${size * 0.2},${size * 0.2} Q0,${size * 0.2} 0,0\" fill=\"${secondaryColor}\"/>\r\n <path d=\"M${size},${size} Q${size * 0.8},${size} ${size * 0.8},${size * 0.8} Q${size},${size * 0.8} ${size},${size}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// Export all generators\r\nexport default {\r\n // East Africa\r\n generatePolygon,\r\n generateShuka,\r\n generateHadzabe,\r\n generateKanga,\r\n generateKangaBorder,\r\n generateKitenge,\r\n generateMasaiShield,\r\n generateTibeb, // Ethiopia\r\n generateImigongo, // Rwanda\r\n // West Africa\r\n generateKente,\r\n generateAdinkra,\r\n generateAsoOke,\r\n generateAnkara,\r\n generateBogolan, // Mali/West\r\n generateAdire, // Nigeria (Indigo)\r\n // Central Africa\r\n generateKuba, // DRC\r\n generateKubaBorder,\r\n // North Africa\r\n generateBerber, // Amazigh\r\n // Southern Africa\r\n generateNdebele,\r\n generateNdebelePaint,\r\n generateZulu,\r\n generateZuluBeads,\r\n generateSwazi,\r\n generateXhosa,\r\n generateYorubaAdire,\r\n generateAkanKente,\r\n // Utilities\r\n applyPattern,\r\n // Tech Patterns\r\n generateTuareg,\r\n generateGeez,\r\n generateBoli,\r\n generateCircuit,\r\n circuit: generateCircuit\r\n};\r\n\r\n/**\r\n * Generate Tuareg Indigo pattern (Sahara/Berber)\r\n * Inspired by the \"Blue Men of the Sahara\" and their geometric silver jewelry/stars\r\n */\r\nexport function generateTuareg({\r\n primaryColor = '#2D3D6B', // Tuareg Indigo\r\n secondaryColor = '#6B8CC7', // Sky Blue\r\n accentColor = '#FFFFFF', // Silver/White\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Southern Cross / Tuareg Star -->\r\n <path d=\"M${size * 0.5} 0 L${size * 0.6} ${size * 0.4} L${size} ${size * 0.5} L${size * 0.6} ${size * 0.6} L${size * 0.5} ${size} L${size * 0.4} ${size * 0.6} L0 ${size * 0.5} L${size * 0.4} ${size * 0.4} Z\" \r\n fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ge'ez Script pattern (Ethiopia/Eritrea)\r\n * Abstract calligraphic strokes inspired by one of the world's oldest scripts\r\n */\r\nexport function generateGeez({\r\n inkColor = '#3A2E2C',\r\n parchmentColor = '#F4E4BC',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${parchmentColor}\"/>\r\n <path d=\"M${size * 0.2} ${size * 0.2} L${size * 0.4} ${size * 0.2} M${size * 0.3} ${size * 0.2} L${size * 0.3} ${size * 0.5} Q${size * 0.4} ${size * 0.6} ${size * 0.2} ${size * 0.7}\" \r\n fill=\"none\" stroke=\"${inkColor}\" stroke-width=\"3\" stroke-linecap=\"round\"/>\r\n <path d=\"M${size * 0.6} ${size * 0.3} C${size * 0.8} ${size * 0.3} ${size * 0.8} ${size * 0.6} ${size * 0.6} ${size * 0.6} L${size * 0.8} ${size * 0.8}\" \r\n fill=\"none\" stroke=\"${inkColor}\" stroke-width=\"3\" stroke-linecap=\"round\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Boli pattern (Mali/Bambara)\r\n * Abstract organic shapes inspired by mud-based ritual objects\r\n */\r\nexport function generateBoli({\r\n clayColor = '#4E342E',\r\n earthColor = '#3E2723',\r\n accentColor = '#BCAAA4',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${earthColor}\"/>\r\n <path d=\"M${size * 0.2} ${size * 0.5} Q${size * 0.3} ${size * 0.2} ${size * 0.5} ${size * 0.3} T${size * 0.8} ${size * 0.5} Q${size * 0.7} ${size * 0.8} ${size * 0.5} ${size * 0.7} T${size * 0.2} ${size * 0.5}\" \r\n fill=\"${clayColor}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\nexport function generateCircuit({\r\n primaryColor = '#334155',\r\n secondaryColor = '#1e293b',\r\n size = 100\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 100 100\">\r\n <rect width=\"100\" height=\"100\" fill=\"${secondaryColor}\"/>\r\n <path d=\"M10 10 H90 V90 H10 Z\" fill=\"none\" stroke=\"${primaryColor}\" stroke-width=\"0.5\" opacity=\"0.3\"/>\r\n <path d=\"M20 20 V50 H50 V80 H80\" fill=\"none\" stroke=\"${primaryColor}\" stroke-width=\"1\"/>\r\n <circle cx=\"20\" cy=\"20\" r=\"2\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"80\" cy=\"80\" r=\"2\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"50\" cy=\"50\" r=\"1.5\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Yoruba Adire pattern (Nigeria)\r\n\r\n * Traditional resist-dyed cloth patterns\r\n\r\n */\r\n\r\nexport function generateYorubaAdire({\r\n\r\n primaryColor = '#000000',\r\n\r\n secondaryColor = '#FCD116',\r\n\r\n backgroundColor = '#FFFFFF',\r\n\r\n size = 50\r\n\r\n} = {}) {\r\n\r\n const svg = `\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n\r\n <!-- Adire tie-dye circles -->\r\n\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.2}\" r=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.2}\" r=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.8}\" r=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n\r\n <!-- Connecting lines -->\r\n\r\n <line x1=\"${size * 0.2}\" y1=\"${size * 0.2}\" x2=\"${size * 0.8}\" y2=\"${size * 0.8}\" stroke=\"${primaryColor}\" stroke-width=\"2\"/>\r\n\r\n <line x1=\"${size * 0.8}\" y1=\"${size * 0.2}\" x2=\"${size * 0.2}\" y2=\"${size * 0.8}\" stroke=\"${primaryColor}\" stroke-width=\"2\"/>\r\n\r\n </svg>\r\n\r\n `;\r\n\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n\r\n}\r\n\r\n/**\r\n\r\n * Generate Akan Kente pattern variation (Ghana)\r\n\r\n * Geometric patterns with cultural significance\r\n\r\n */\r\n\r\nexport function generateAkanKente({\r\n\r\n colors = ['#000000', '#FCD116', '#E82127', '#006B3F'],\r\n\r\n size = 60\r\n\r\n} = {}) {\r\n\r\n const [black, gold, red, green] = colors;\r\n\r\n const stripe = size / 6;\r\n\r\n const svg = `\r\n\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${gold}\"/>\r\n\r\n <!-- Horizontal black stripes -->\r\n\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripe}\" fill=\"${black}\"/>\r\n\r\n <rect x=\"0\" y=\"${stripe * 2}\" width=\"${size}\" height=\"${stripe}\" fill=\"${black}\"/>\r\n\r\n <rect x=\"0\" y=\"${stripe * 4}\" width=\"${size}\" height=\"${stripe}\" fill=\"${black}\"/>\r\n\r\n <!-- Vertical red stripes -->\r\n\r\n <rect x=\"0\" y=\"0\" width=\"${stripe}\" height=\"${size}\" fill=\"${red}\" opacity=\"0.6\"/>\r\n\r\n <rect x=\"${stripe * 2}\" y=\"0\" width=\"${stripe}\" height=\"${size}\" fill=\"${red}\" opacity=\"0.6\"/>\r\n\r\n <rect x=\"${stripe * 4}\" y=\"0\" width=\"${stripe}\" height=\"${size}\" fill=\"${red}\" opacity=\"0.6\"/>\r\n\r\n <!-- Green corner squares -->\r\n\r\n <rect x=\"0\" y=\"0\" width=\"${stripe * 0.8}\" height=\"${stripe * 0.8}\" fill=\"${green}\"/>\r\n\r\n <rect x=\"${size - stripe * 0.8}\" y=\"0\" width=\"${stripe * 0.8}\" height=\"${stripe * 0.8}\" fill=\"${green}\"/>\r\n\r\n <rect x=\"0\" y=\"${size - stripe * 0.8}\" width=\"${stripe * 0.8}\" height=\"${stripe * 0.8}\" fill=\"${green}\"/>\r\n\r\n <rect x=\"${size - stripe * 0.8}\" y=\"${size - stripe * 0.8}\" width=\"${stripe * 0.8}\" height=\"${stripe * 0.8}\" fill=\"${green}\"/>\r\n\r\n </svg>\r\n\r\n `;\r\n\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n\r\n}\r\n\r\n",
8
8
  "/**\r\n * AfriCode HTML Template Engine\r\n * Phase 2: Defined Rendering System\r\n *\r\n * @module core/html\r\n */\r\n\r\nexport class RawHtml {\r\n constructor(value) {\r\n this.value = value;\r\n this.__type = 'RawHtml';\r\n Object.freeze(this);\r\n }\r\n\r\n toString() {\r\n return this.value;\r\n }\r\n\r\n valueOf() {\r\n return this.value;\r\n }\r\n}\r\n\r\n// 🔒 Escape unsafe values\r\nfunction escapeHtml(value) {\r\n return String(value)\r\n .replace(/&/g, \"&amp;\")\r\n .replace(/</g, \"&lt;\")\r\n .replace(/>/g, \"&gt;\")\r\n .replace(/\"/g, \"&quot;\")\r\n .replace(/'/g, \"&#039;\");\r\n}\r\n\r\n// 🧠 Main rendering function\r\nexport const html = (strings, ...values) => {\r\n let result = \"\";\r\n\r\n for (let i = 0; i < strings.length; i++) {\r\n result += strings[i];\r\n\r\n if (i < values.length) {\r\n result += interpolateValue(values[i]);\r\n }\r\n }\r\n\r\n return new RawHtml(result);\r\n};\r\n\r\nexport function Layout({ title = 'AfriCode App', meta = '', stylesheet = '/styles/africanity.css', children } = {}) {\r\n return html`<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <title>${title}</title>\r\n ${meta}\r\n ${stylesheet ? html`<link rel=\"stylesheet\" href=\"${stylesheet}\">` : ''}\r\n <script type=\"module\" src=\"/core/sdk.js\"></script>\r\n</head>\r\n<body>\r\n ${children}\r\n</body>\r\n</html>`;\r\n}\r\n\r\nfunction interpolateValue(value) {\r\n if (value instanceof RawHtml) {\r\n return value.toString();\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map(interpolateValue).join('');\r\n }\r\n\r\n if (value === null || value === undefined || value === false) {\r\n return '';\r\n }\r\n\r\n if (value === true) {\r\n return 'true';\r\n }\r\n\r\n return escapeHtml(value);\r\n}\r\n",
9
9
  "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n",
10
10
  "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n",
@@ -17,7 +17,7 @@
17
17
  "import * as z from \"./v3/external.js\";\nexport * from \"./v3/external.js\";\nexport { z };\nexport default z;\n",
18
18
  "const isTestEnvironment = () => Boolean(globalThis.__AFRICODE_TEST__ || globalThis.__AFRICODE_SILENT_LOGS__);\r\n\r\nexport function frameworkLog(level, ...args) {\r\n if (isTestEnvironment()) {\r\n return;\r\n }\r\n\r\n const logger = console[level] || console.log;\r\n logger.call(console, ...args);\r\n}\r\n\r\nexport function isFrameworkLoggingMuted() {\r\n return isTestEnvironment();\r\n}\r\n",
19
19
  "/**\r\n * AfriCode Framework Configuration\r\n *\r\n * Centralized configuration for the entire framework.\r\n * Provides createFramework() as the entry point for apps.\r\n *\r\n * Design:\r\n * - Single config object controls all framework behavior\r\n * - Defaults are strict and secure\r\n * - Every opt-in behavior is explicit\r\n * - Observability hooks are first-class\r\n *\r\n * @module core/config\r\n */\r\n\r\nimport { frameworkLog } from './logging.js';\r\n\r\n/**\r\n * @typedef {Object} AfriCodeConfig\r\n *\r\n * @property {Object} [validation] - Validation configuration\r\n * @property {boolean} [validation.trimStrings=false] - Trim whitespace from string inputs\r\n * @property {boolean} [validation.emptyAsNullDefault=false] - Convert \"\" → null for nullable fields (NOT recommended)\r\n *\r\n * @property {Object} [security] - Security configuration\r\n * @property {Object} [security.csrf] - CSRF configuration\r\n * @property {boolean} [security.csrf.enabled=true] - Enable CSRF protection\r\n * @property {string[]} [security.csrf.excludePaths=[]] - Paths to exclude from CSRF\r\n * @property {string} [security.csrf.sameSite='Strict'] - SameSite cookie policy\r\n * @property {boolean} [security.csrf.secure=false] - Require HTTPS for cookies\r\n * @property {Object} [security.rateLimit] - Rate limit configuration\r\n * @property {boolean} [security.rateLimit.enabled=true] - Enable rate limiting\r\n * @property {number} [security.rateLimit.windowMs=60000] - Window in milliseconds\r\n * @property {number} [security.rateLimit.maxRequests=60] - Max requests per window\r\n * @property {string[]} [security.rateLimit.excludePaths=[]] - Paths to exclude\r\n *\r\n * @property {Object} [hooks] - Observability hooks\r\n * @property {Function} [hooks.onValidationError] - Called on validation failure\r\n * @property {Function} [hooks.onSecurityViolation] - Called on CSRF/security failure\r\n * @property {Function} [hooks.onRateLimit] - Called when rate limit is hit\r\n * @property {Function} [hooks.onDatabaseError] - Called on database error\r\n * @property {Function} [hooks.onRequest] - Called on every incoming request\r\n */\r\n\r\n/**\r\n * Default configuration values.\r\n * Strict by default. Secure by default.\r\n */\r\nconst DEFAULT_CONFIG = {\r\n validation: {\r\n trimStrings: false,\r\n emptyAsNullDefault: false\r\n },\r\n security: {\r\n csrf: {\r\n enabled: true,\r\n excludePaths: [],\r\n sameSite: 'Strict',\r\n secure: false\r\n },\r\n rateLimit: {\r\n enabled: true,\r\n windowMs: 60 * 1000,\r\n maxRequests: 60,\r\n excludePaths: []\r\n }\r\n },\r\n hooks: {\r\n onValidationError: null,\r\n onSecurityViolation: null,\r\n onRateLimit: null,\r\n onDatabaseError: null,\r\n onRequest: null\r\n }\r\n};\r\n\r\n/** @type {AfriCodeConfig} */\r\nlet _config = deepClone(DEFAULT_CONFIG);\r\n\r\n/** @type {boolean} */\r\nlet _initialized = false;\r\n\r\n/**\r\n * Deep clone a plain object.\r\n * @param {Object} obj\r\n * @returns {Object}\r\n */\r\nfunction deepClone(obj) {\r\n if (obj === null || typeof obj !== 'object') {return obj;}\r\n if (Array.isArray(obj)) {return obj.map(deepClone);}\r\n const cloned = {};\r\n for (const key of Object.keys(obj)) {\r\n cloned[key] = deepClone(obj[key]);\r\n }\r\n return cloned;\r\n}\r\n\r\n/**\r\n * Deep merge source into target.\r\n * @param {Object} target\r\n * @param {Object} source\r\n * @returns {Object}\r\n */\r\nfunction deepMerge(target, source) {\r\n const result = { ...target };\r\n for (const key of Object.keys(source)) {\r\n if (\r\n source[key] !== null &&\r\n typeof source[key] === 'object' &&\r\n !Array.isArray(source[key]) &&\r\n typeof target[key] === 'object' &&\r\n !Array.isArray(target[key])\r\n ) {\r\n result[key] = deepMerge(target[key] || {}, source[key]);\r\n } else {\r\n result[key] = source[key];\r\n }\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Initialize the AfriCode framework with configuration.\r\n *\r\n * This is the single entry point for framework configuration.\r\n * Call once at app startup. All systems read from this config.\r\n *\r\n * @param {Partial<AfriCodeConfig>} [userConfig={}] - User overrides\r\n * @returns {AfriCodeConfig} The resolved configuration\r\n *\r\n * @example\r\n * import { createFramework } from 'africode/core/config';\r\n *\r\n * createFramework({\r\n * validation: {\r\n * trimStrings: true\r\n * },\r\n * security: {\r\n * csrf: { enabled: true, secure: true },\r\n * rateLimit: { maxRequests: 100 }\r\n * },\r\n * hooks: {\r\n * onValidationError: (error) => logger.warn('Validation:', error),\r\n * onSecurityViolation: (error) => logger.error('Security:', error),\r\n * onRateLimit: (key) => metrics.increment('rate_limit_hit')\r\n * }\r\n * });\r\n */\r\nexport function createFramework(userConfig = {}) {\r\n _config = deepMerge(DEFAULT_CONFIG, userConfig);\r\n _initialized = true;\r\n return getConfig();\r\n}\r\n\r\n/**\r\n * Get the current framework configuration.\r\n * Returns a frozen copy to prevent accidental mutation.\r\n *\r\n * @returns {AfriCodeConfig}\r\n */\r\nexport function getConfig() {\r\n return Object.freeze(deepClone(_config));\r\n}\r\n\r\n/**\r\n * Check if the framework has been initialized.\r\n * @returns {boolean}\r\n */\r\nexport function isInitialized() {\r\n return _initialized;\r\n}\r\n\r\n/**\r\n * Reset configuration to defaults.\r\n * Primarily for testing.\r\n */\r\nexport function resetConfig() {\r\n _config = deepClone(DEFAULT_CONFIG);\r\n _initialized = false;\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────\r\n// Observability Hooks — fire-and-forget event emitters\r\n//\r\n// These are framework-level hooks for monitoring and logging.\r\n// They never throw — errors in hooks are caught and logged.\r\n// ─────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Emit a validation error event.\r\n * @param {import('./errors.js').ValidationError} error\r\n */\r\nexport function emitValidationError(error) {\r\n const hook = _config.hooks?.onValidationError;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onValidationError:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a security violation event.\r\n * @param {import('./errors.js').SecurityError} error\r\n */\r\nexport function emitSecurityViolation(error) {\r\n const hook = _config.hooks?.onSecurityViolation;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onSecurityViolation:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a rate limit event.\r\n * @param {string} key - The client identifier that was rate limited\r\n * @param {Request} [request] - The request that triggered the limit\r\n */\r\nexport function emitRateLimit(key, request = null) {\r\n const hook = _config.hooks?.onRateLimit;\r\n if (typeof hook === 'function') {\r\n try { hook(key, request); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onRateLimit:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a database error event.\r\n * @param {import('./errors.js').DatabaseError} error\r\n */\r\nexport function emitDatabaseError(error) {\r\n const hook = _config.hooks?.onDatabaseError;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onDatabaseError:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a request event.\r\n * @param {Request} request\r\n */\r\nexport function emitRequest(request) {\r\n const hook = _config.hooks?.onRequest;\r\n if (typeof hook === 'function') {\r\n try { hook(request); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onRequest:', e);\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n createFramework,\r\n getConfig,\r\n isInitialized,\r\n resetConfig,\r\n emitValidationError,\r\n emitSecurityViolation,\r\n emitRateLimit,\r\n emitDatabaseError,\r\n emitRequest\r\n};\r\n",
20
- "/**\r\n * AfriCode Validation System\r\n *\r\n * Philosophy: Strict by default. Convenient by composition. Secure early.\r\n *\r\n * Core validation is strict — URL fields accept only valid URLs.\r\n * Normalization (e.g. empty string → null) is explicit and opt-in.\r\n * Security basics (CSRF, rate limiting) are built into the foundation.\r\n *\r\n * Provides:\r\n * - Zod-based validation schemas for forms, auth, and API validation\r\n * - AfriFieldBuilder: chainable field builder with .nullable(), .emptyAsNull(), .optional()\r\n * - afri namespace: factory for building field schemas (afri.url(), afri.string(), etc.)\r\n * - normalizeInput(): preprocessing utility that runs before validation\r\n *\r\n * @module core/validation\r\n */\r\n\r\nimport { z } from 'zod';\r\nimport { getConfig } from './config.js';\r\n\r\n/**\r\n * Common validation schemas for AfriCode components\r\n */\r\nexport const schemas = {\r\n // User authentication schemas\r\n login: z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/,\r\n 'Password must contain at least one uppercase letter, one lowercase letter, and one number')\r\n }),\r\n\r\n register: z.object({\r\n name: z.string()\r\n .min(2, 'Name must be at least 2 characters')\r\n .max(50, 'Name must be less than 50 characters')\r\n .regex(/^[a-zA-Z\\s'-]+$/, 'Name can only contain letters, spaces, hyphens, and apostrophes'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])/,\r\n 'Password must contain uppercase, lowercase, number, and special character'),\r\n confirmPassword: z.string()\r\n }).refine(data => data.password === data.confirmPassword, {\r\n message: \"Passwords don't match\",\r\n path: [\"confirmPassword\"]\r\n }),\r\n\r\n auth: {\r\n register: z.object({\r\n action: z.literal('register'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n username: z.string()\r\n .min(3, 'Username must be at least 3 characters')\r\n .max(30, 'Username must be less than 30 characters'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters'),\r\n full_name: z.string()\r\n .min(2, 'Full name is required')\r\n .max(100, 'Full name is too long')\r\n }),\r\n\r\n login: z.object({\r\n action: z.literal('login'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n }),\r\n\r\n logout: z.object({\r\n action: z.literal('logout')\r\n }),\r\n\r\n action: z.discriminatedUnion('action', [\r\n z.object({ action: z.literal('register') }).merge(z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n username: z.string()\r\n .min(3, 'Username must be at least 3 characters')\r\n .max(30, 'Username must be less than 30 characters'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters'),\r\n full_name: z.string()\r\n .min(2, 'Full name is required')\r\n .max(100, 'Full name is too long')\r\n })),\r\n z.object({ action: z.literal('login') }).merge(z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n })),\r\n z.object({ action: z.literal('logout') })\r\n ])\r\n },\r\n\r\n // Form input schemas\r\n contact: z.object({\r\n name: z.string()\r\n .min(2, 'Name must be at least 2 characters')\r\n .max(100, 'Name is too long'),\r\n email: z.string()\r\n .email('Please enter a valid email address'),\r\n message: z.string()\r\n .min(10, 'Message must be at least 10 characters')\r\n .max(1000, 'Message is too long')\r\n }),\r\n\r\n // Generic input validation\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/,\r\n 'Password must contain uppercase, lowercase, and number'),\r\n\r\n phone: z.string()\r\n .regex(/^[\\+]?[1-9][\\d]{0,15}$/, 'Please enter a valid phone number'),\r\n\r\n // Strict URL: must be a valid URL. Use afri.url().nullable() for nullable URLs.\r\n url: z.string()\r\n .min(1, 'URL is required')\r\n .url('Please enter a valid URL'),\r\n\r\n required: z.string()\r\n .min(1, 'This field is required'),\r\n\r\n // Number validations\r\n positiveNumber: z.number()\r\n .positive('Must be a positive number'),\r\n\r\n integer: z.number()\r\n .int('Must be a whole number'),\r\n\r\n // Date validations\r\n futureDate: z.date()\r\n .min(new Date(), 'Date must be in the future'),\r\n\r\n // File validations\r\n imageFile: z.instanceof(File)\r\n .refine(file => file.size <= 5 * 1024 * 1024, 'File size must be less than 5MB')\r\n .refine(file => ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].includes(file.type),\r\n 'File must be a JPEG, PNG, GIF, or WebP image'),\r\n\r\n // --- DB Model Schemas ---\r\n\r\n /**\r\n * User profile update schema.\r\n * avatar_url: valid URL or null (with opt-in empty-string normalization)\r\n */\r\n userProfile: z.object({\r\n full_name: z.string().min(2, 'Full name must be at least 2 characters').max(100, 'Full name is too long').optional(),\r\n bio: z.string().max(500, 'Bio must be less than 500 characters').nullable().optional(),\r\n avatar_url: z.string().url('Please enter a valid URL').nullable().optional(),\r\n theme: z.enum(['africanity', 'dark', 'light', 'system']).optional(),\r\n language: z.string().min(2).max(10).optional()\r\n }),\r\n\r\n /**\r\n * Project creation/update schema.\r\n * repository_url, demo_url: valid URL or null\r\n */\r\n project: z.object({\r\n name: z.string().min(1, 'Project name is required').max(100, 'Project name is too long'),\r\n description: z.string().max(1000, 'Description is too long').nullable().optional(),\r\n repository_url: z.string().url('Please enter a valid repository URL').nullable().optional(),\r\n demo_url: z.string().url('Please enter a valid demo URL').nullable().optional(),\r\n tags: z.array(z.string()).optional(),\r\n is_public: z.boolean().optional()\r\n })\r\n};\r\n\r\n/**\r\n * Validation utilities\r\n */\r\nexport class Validation {\r\n /**\r\n * Validate data against a schema\r\n * @param {z.ZodSchema} schema - Zod schema to validate against\r\n * @param {any} data - Data to validate\r\n * @returns {Object} { success: boolean, data?: any, errors?: Object }\r\n */\r\n static validate(schema, data) {\r\n try {\r\n const result = schema.parse(data);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof z.ZodError) {\r\n const errors = {};\r\n error.errors.forEach(err => {\r\n const path = err.path.join('.');\r\n errors[path] = err.message;\r\n });\r\n return { success: false, errors };\r\n }\r\n return { success: false, errors: { general: 'Validation failed' } };\r\n }\r\n }\r\n\r\n /**\r\n * Validate a single field\r\n * @param {z.ZodSchema} schema - Field schema\r\n * @param {any} value - Field value\r\n * @returns {Object} { success: boolean, error?: string }\r\n */\r\n static validateField(schema, value) {\r\n try {\r\n schema.parse(value);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof z.ZodError) {\r\n return { success: false, error: error.errors[0]?.message || 'Invalid value' };\r\n }\r\n return { success: false, error: 'Validation failed' };\r\n }\r\n }\r\n\r\n /**\r\n * Get validation error message for a field\r\n * @param {Object} validationResult - Result from validate()\r\n * @param {string} fieldPath - Dot notation field path\r\n * @returns {string|null} Error message or null\r\n */\r\n static getFieldError(validationResult, fieldPath) {\r\n if (validationResult.success) {return null;}\r\n return validationResult.errors?.[fieldPath] || null;\r\n }\r\n\r\n /**\r\n * Check if a field has validation errors\r\n * @param {Object} validationResult - Result from validate()\r\n * @param {string} fieldPath - Dot notation field path\r\n * @returns {boolean} True if field has errors\r\n */\r\n static hasFieldError(validationResult, fieldPath) {\r\n return !!this.getFieldError(validationResult, fieldPath);\r\n }\r\n}\r\n\r\n/**\r\n * Predefined validation rules for common use cases\r\n */\r\nexport const rules = {\r\n required: (message = 'This field is required') =>\r\n z.string().min(1, message),\r\n\r\n email: (message = 'Please enter a valid email address') =>\r\n z.string().email(message),\r\n\r\n minLength: (min, message) =>\r\n z.string().min(min, message || `Must be at least ${min} characters`),\r\n\r\n maxLength: (max, message) =>\r\n z.string().max(max, message || `Must be less than ${max} characters`),\r\n\r\n pattern: (regex, message) =>\r\n z.string().regex(regex, message),\r\n\r\n numeric: (message = 'Must be a number') =>\r\n z.string().regex(/^\\d+$/, message),\r\n\r\n phone: (message = 'Please enter a valid phone number') =>\r\n z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message),\r\n\r\n url: (message = 'Please enter a valid URL') =>\r\n z.string().min(1, 'URL is required').url(message)\r\n};\r\n\r\n// ─────────────────────────────────────────────────────────────\r\n// AfriFieldBuilder — Chainable field schema builder\r\n//\r\n// Design: Strict by default. Convenient by composition.\r\n//\r\n// Usage:\r\n// afri.url() → valid URL, required\r\n// afri.url().nullable() → valid URL or null\r\n// afri.url().nullable().emptyAsNull() → \"\" → null, then validates\r\n// afri.url().optional() → valid URL or undefined\r\n// afri.string().trim() → trim whitespace in normalizeInput\r\n// ─────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Chainable field builder for AfriCode validation schemas.\r\n * Wraps Zod with framework-level semantics.\r\n *\r\n * IMPORTANT: .emptyAsNull() does NOT alter the Zod schema itself.\r\n * It marks the field for preprocessing via normalizeInput().\r\n * Validation remains strict — the preprocessing layer is separate.\r\n */\r\nexport class AfriFieldBuilder {\r\n /**\r\n * @param {z.ZodSchema} baseSchema - The base Zod schema for this field\r\n * @param {string} fieldType - The field type identifier (e.g. 'url', 'email')\r\n */\r\n constructor(baseSchema, fieldType = 'string') {\r\n this._baseSchema = baseSchema;\r\n this._fieldType = fieldType;\r\n this._isNullable = false;\r\n this._isOptional = false;\r\n this._emptyAsNull = false;\r\n this._trim = false;\r\n this._customMessage = null;\r\n }\r\n\r\n /**\r\n * Allow null as a valid value.\r\n * @returns {AfriFieldBuilder}\r\n */\r\n nullable() {\r\n this._isNullable = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Allow undefined (field can be omitted).\r\n * @returns {AfriFieldBuilder}\r\n */\r\n optional() {\r\n this._isOptional = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Mark this field for empty-string-to-null conversion.\r\n * REQUIRES .nullable() to have been called first.\r\n * The conversion happens in normalizeInput(), not in the Zod schema.\r\n *\r\n * @returns {AfriFieldBuilder}\r\n * @throws {Error} If .nullable() was not called first\r\n */\r\n emptyAsNull() {\r\n if (!this._isNullable) {\r\n throw new Error(\r\n `[AfriCode] .emptyAsNull() requires .nullable() to be called first. ` +\r\n `Use: afri.${this._fieldType}().nullable().emptyAsNull()`\r\n );\r\n }\r\n this._emptyAsNull = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Mark this field for whitespace trimming.\r\n * The trimming happens in normalizeInput(), not in the Zod schema.\r\n * \" hello \" → \"hello\"\r\n *\r\n * @returns {AfriFieldBuilder}\r\n */\r\n trim() {\r\n this._trim = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Set a custom error message for the base validation.\r\n * @param {string} message\r\n * @returns {AfriFieldBuilder}\r\n */\r\n message(message) {\r\n this._customMessage = message;\r\n return this;\r\n }\r\n\r\n /**\r\n * Build the final Zod schema.\r\n * @returns {z.ZodSchema}\r\n */\r\n build() {\r\n let schema = this._baseSchema;\r\n\r\n if (this._isNullable) {\r\n schema = schema.nullable();\r\n }\r\n\r\n if (this._isOptional) {\r\n schema = schema.optional();\r\n }\r\n\r\n return schema;\r\n }\r\n\r\n /**\r\n * Get the metadata for this field (used by normalizeInput).\r\n * @returns {Object}\r\n */\r\n getMeta() {\r\n return {\r\n fieldType: this._fieldType,\r\n isNullable: this._isNullable,\r\n isOptional: this._isOptional,\r\n emptyAsNull: this._emptyAsNull,\r\n trim: this._trim\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * AfriCode field factory namespace.\r\n * Creates AfriFieldBuilder instances for common field types.\r\n *\r\n * @example\r\n * // Strict URL — required, only valid URLs accepted\r\n * const urlField = afri.url().build();\r\n *\r\n * @example\r\n * // Nullable URL — valid URL or null\r\n * const avatarField = afri.url().nullable().build();\r\n *\r\n * @example\r\n * // Nullable URL with empty-string normalization\r\n * const avatarField = afri.url().nullable().emptyAsNull().build();\r\n */\r\nexport const afri = {\r\n /**\r\n * Create a strict URL field builder.\r\n * Empty strings are always rejected at the core.\r\n * @param {string} [message='Please enter a valid URL']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n url(message = 'Please enter a valid URL') {\r\n return new AfriFieldBuilder(\r\n z.string().min(1, 'URL cannot be empty').url(message),\r\n 'url'\r\n );\r\n },\r\n\r\n /**\r\n * Create a strict email field builder.\r\n * @param {string} [message='Please enter a valid email address']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n email(message = 'Please enter a valid email address') {\r\n return new AfriFieldBuilder(\r\n z.string().min(1, 'Email cannot be empty').email(message),\r\n 'email'\r\n );\r\n },\r\n\r\n /**\r\n * Create a string field builder.\r\n * @param {Object} [opts]\r\n * @param {number} [opts.min] - Minimum length\r\n * @param {number} [opts.max] - Maximum length\r\n * @param {string} [opts.message] - Custom error message\r\n * @returns {AfriFieldBuilder}\r\n */\r\n string(opts = {}) {\r\n let schema = z.string();\r\n if (opts.min !== undefined) {schema = schema.min(opts.min, opts.message || `Must be at least ${opts.min} characters`);}\r\n if (opts.max !== undefined) {schema = schema.max(opts.max, opts.message || `Must be less than ${opts.max} characters`);}\r\n return new AfriFieldBuilder(schema, 'string');\r\n },\r\n\r\n /**\r\n * Create a number field builder.\r\n * @param {Object} [opts]\r\n * @param {number} [opts.min] - Minimum value\r\n * @param {number} [opts.max] - Maximum value\r\n * @param {boolean} [opts.int] - Must be integer\r\n * @returns {AfriFieldBuilder}\r\n */\r\n number(opts = {}) {\r\n let schema = z.number();\r\n if (opts.min !== undefined) {schema = schema.min(opts.min);}\r\n if (opts.max !== undefined) {schema = schema.max(opts.max);}\r\n if (opts.int) {schema = schema.int('Must be a whole number');}\r\n return new AfriFieldBuilder(schema, 'number');\r\n },\r\n\r\n /**\r\n * Create a phone field builder.\r\n * @param {string} [message='Please enter a valid phone number']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n phone(message = 'Please enter a valid phone number') {\r\n return new AfriFieldBuilder(\r\n z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message),\r\n 'phone'\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Normalize input data before validation.\r\n *\r\n * This is the preprocessing layer. It examines field metadata from\r\n * AfriFieldBuilder instances and applies transformations:\r\n *\r\n * 1. Trim whitespace (if .trim() or config.validation.trimStrings)\r\n * 2. Convert \"\" → null (if .emptyAsNull())\r\n *\r\n * Order matters: trim runs BEFORE emptyAsNull so that\r\n * \" \" → \"\" → null works correctly.\r\n *\r\n * Separation of concerns:\r\n * - normalizeInput() = input adapter (flexible)\r\n * - Validation.validate() = core validation (strict)\r\n *\r\n * @param {Object} fieldBuilders - Map of field names to AfriFieldBuilder instances\r\n * @param {Object} data - Raw input data (e.g. form submission)\r\n * @returns {Object} Normalized data ready for validation\r\n *\r\n * @example\r\n * const fields = {\r\n * avatar_url: afri.url().nullable().emptyAsNull(),\r\n * name: afri.string({ min: 2 }).trim(),\r\n * bio: afri.string({ max: 500 }).nullable()\r\n * };\r\n *\r\n * const raw = { avatar_url: '', name: ' AfriCode ', bio: 'Hello' };\r\n * const cleaned = normalizeInput(fields, raw);\r\n * // → { avatar_url: null, name: 'AfriCode', bio: 'Hello' }\r\n */\r\nexport function normalizeInput(fieldBuilders, data) {\r\n const result = { ...data };\r\n let globalTrim = false;\r\n\r\n // Check framework config for global trim setting\r\n try {\r\n const config = getConfig();\r\n globalTrim = config.validation?.trimStrings === true;\r\n } catch {\r\n // Config not initialized yet — use defaults (no global trim)\r\n }\r\n\r\n for (const [fieldName, builder] of Object.entries(fieldBuilders)) {\r\n if (!(builder instanceof AfriFieldBuilder)) {continue;}\r\n\r\n const meta = builder.getMeta();\r\n const value = result[fieldName];\r\n\r\n // Step 1: Trim whitespace (per-field .trim() or global config)\r\n if (typeof value === 'string' && (meta.trim || globalTrim)) {\r\n result[fieldName] = value.trim();\r\n }\r\n\r\n // Step 2: Convert empty string to null (per-field .emptyAsNull())\r\n if (meta.emptyAsNull && result[fieldName] === '') {\r\n result[fieldName] = null;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Build a Zod object schema from a map of AfriFieldBuilder instances.\r\n * Convenience method to go from builders → Zod schema in one step.\r\n *\r\n * @param {Object} fieldBuilders - Map of field names to AfriFieldBuilder instances\r\n * @returns {z.ZodObject}\r\n *\r\n * @example\r\n * const schema = buildSchema({\r\n * avatar_url: afri.url().nullable().emptyAsNull(),\r\n * name: afri.string({ min: 2, max: 50 })\r\n * });\r\n *\r\n * const result = Validation.validate(schema, data);\r\n */\r\nexport function buildSchema(fieldBuilders) {\r\n const shape = {};\r\n\r\n for (const [fieldName, builder] of Object.entries(fieldBuilders)) {\r\n if (builder instanceof AfriFieldBuilder) {\r\n shape[fieldName] = builder.build();\r\n } else {\r\n // Allow raw Zod schemas to be mixed in\r\n shape[fieldName] = builder;\r\n }\r\n }\r\n\r\n return z.object(shape);\r\n}\r\n\r\nexport default { schemas, Validation, rules, afri, AfriFieldBuilder, normalizeInput, buildSchema };",
20
+ "/**\r\n * AfriCode Validation System\r\n *\r\n * Philosophy: Strict by default. Convenient by composition. Secure early.\r\n *\r\n * Core validation is strict — URL fields accept only valid URLs.\r\n * Normalization (e.g. empty string → null) is explicit and opt-in.\r\n * Security basics (CSRF, rate limiting) are built into the foundation.\r\n *\r\n * Provides:\r\n * - Zod-based validation schemas for forms, auth, and API validation\r\n * - AfriFieldBuilder: chainable field builder with .nullable(), .emptyAsNull(), .optional()\r\n * - afri namespace: factory for building field schemas (afri.url(), afri.string(), etc.)\r\n * - normalizeInput(): preprocessing utility that runs before validation\r\n *\r\n * @module core/validation\r\n */\r\n\r\nimport { z } from 'zod';\r\nimport { getConfig } from './config.js';\r\n\r\n/**\r\n * Common validation schemas for AfriCode components\r\n */\r\nexport const schemas = {\r\n // User authentication schemas\r\n login: z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/,\r\n 'Password must contain at least one uppercase letter, one lowercase letter, and one number')\r\n }),\r\n\r\n register: z.object({\r\n name: z.string()\r\n .min(2, 'Name must be at least 2 characters')\r\n .max(50, 'Name must be less than 50 characters')\r\n .regex(/^[a-zA-Z\\s'-]+$/, 'Name can only contain letters, spaces, hyphens, and apostrophes'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])/,\r\n 'Password must contain uppercase, lowercase, number, and special character'),\r\n confirmPassword: z.string()\r\n }).refine(data => data.password === data.confirmPassword, {\r\n message: \"Passwords don't match\",\r\n path: [\"confirmPassword\"]\r\n }),\r\n\r\n auth: {\r\n register: z.object({\r\n action: z.literal('register'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n username: z.string()\r\n .min(3, 'Username must be at least 3 characters')\r\n .max(30, 'Username must be less than 30 characters'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters'),\r\n full_name: z.string()\r\n .min(2, 'Full name is required')\r\n .max(100, 'Full name is too long')\r\n }),\r\n\r\n login: z.object({\r\n action: z.literal('login'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n }),\r\n\r\n logout: z.object({\r\n action: z.literal('logout')\r\n }),\r\n\r\n action: z.discriminatedUnion('action', [\r\n z.object({ action: z.literal('register') }).merge(z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n username: z.string()\r\n .min(3, 'Username must be at least 3 characters')\r\n .max(30, 'Username must be less than 30 characters'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters'),\r\n full_name: z.string()\r\n .min(2, 'Full name is required')\r\n .max(100, 'Full name is too long')\r\n })),\r\n z.object({ action: z.literal('login') }).merge(z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n })),\r\n z.object({ action: z.literal('logout') })\r\n ])\r\n },\r\n\r\n // Form input schemas\r\n contact: z.object({\r\n name: z.string()\r\n .min(2, 'Name must be at least 2 characters')\r\n .max(100, 'Name is too long'),\r\n email: z.string()\r\n .email('Please enter a valid email address'),\r\n message: z.string()\r\n .min(10, 'Message must be at least 10 characters')\r\n .max(1000, 'Message is too long')\r\n }),\r\n\r\n // Generic input validation\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/,\r\n 'Password must contain uppercase, lowercase, and number'),\r\n\r\n phone: z.string()\r\n .regex(/^[\\+]?[1-9][\\d]{0,15}$/, 'Please enter a valid phone number'),\r\n\r\n // Strict URL: must be a valid URL. Use afri.url().nullable() for nullable URLs.\r\n url: z.string()\r\n .min(1, 'URL is required')\r\n .url('Please enter a valid URL'),\r\n\r\n required: z.string()\r\n .min(1, 'This field is required'),\r\n\r\n // Number validations\r\n positiveNumber: z.number()\r\n .positive('Must be a positive number'),\r\n\r\n integer: z.number()\r\n .int('Must be a whole number'),\r\n\r\n // Date validations\r\n futureDate: z.date()\r\n .min(new Date(), 'Date must be in the future'),\r\n\r\n // File validations\r\n imageFile: z.instanceof(File)\r\n .refine(file => file.size <= 5 * 1024 * 1024, 'File size must be less than 5MB')\r\n .refine(file => ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].includes(file.type),\r\n 'File must be a JPEG, PNG, GIF, or WebP image'),\r\n\r\n // --- DB Model Schemas ---\r\n\r\n /**\r\n * User profile update schema.\r\n * avatar_url: valid URL or null (with opt-in empty-string normalization)\r\n */\r\n userProfile: z.object({\r\n full_name: z.string().min(2, 'Full name must be at least 2 characters').max(100, 'Full name is too long').optional(),\r\n bio: z.string().max(500, 'Bio must be less than 500 characters').nullable().optional(),\r\n avatar_url: z.string().url('Please enter a valid URL').nullable().optional(),\r\n theme: z.enum(['africanity', 'dark', 'light', 'system']).optional(),\r\n language: z.string().min(2).max(10).optional()\r\n }),\r\n\r\n /**\r\n * Project creation/update schema.\r\n * repository_url, demo_url: valid URL or null\r\n */\r\n project: z.object({\r\n name: z.string().min(1, 'Project name is required').max(100, 'Project name is too long'),\r\n description: z.string().max(1000, 'Description is too long').nullable().optional(),\r\n repository_url: z.string().url('Please enter a valid repository URL').nullable().optional(),\r\n demo_url: z.string().url('Please enter a valid demo URL').nullable().optional(),\r\n tags: z.array(z.string()).optional(),\r\n is_public: z.boolean().optional()\r\n })\r\n};\r\n\r\n/**\r\n * Validation utilities\r\n */\r\nexport class Validation {\r\n /**\r\n * Validate data against a schema\r\n * @param {z.ZodSchema} schema - Zod schema to validate against\r\n * @param {any} data - Data to validate\r\n * @returns {Object} { success: boolean, data?: any, errors?: Object }\r\n */\r\n static validate(schema, data) {\r\n try {\r\n const result = schema.parse(data);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof z.ZodError) {\r\n const errors = {};\r\n error.errors.forEach(err => {\r\n const path = err.path.join('.');\r\n errors[path] = err.message;\r\n });\r\n return { success: false, errors };\r\n }\r\n return { success: false, errors: { general: 'Validation failed' } };\r\n }\r\n }\r\n\r\n /**\r\n * Validate a single field\r\n * @param {z.ZodSchema} schema - Field schema\r\n * @param {any} value - Field value\r\n * @returns {Object} { success: boolean, error?: string }\r\n */\r\n static validateField(schema, value) {\r\n try {\r\n schema.parse(value);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof z.ZodError) {\r\n return { success: false, error: error.errors[0]?.message || 'Invalid value' };\r\n }\r\n return { success: false, error: 'Validation failed' };\r\n }\r\n }\r\n\r\n /**\r\n * Get validation error message for a field\r\n * @param {Object} validationResult - Result from validate()\r\n * @param {string} fieldPath - Dot notation field path\r\n * @returns {string|null} Error message or null\r\n */\r\n static getFieldError(validationResult, fieldPath) {\r\n if (validationResult.success) {return null;}\r\n return validationResult.errors?.[fieldPath] || null;\r\n }\r\n\r\n /**\r\n * Check if a field has validation errors\r\n * @param {Object} validationResult - Result from validate()\r\n * @param {string} fieldPath - Dot notation field path\r\n * @returns {boolean} True if field has errors\r\n */\r\n static hasFieldError(validationResult, fieldPath) {\r\n return !!this.getFieldError(validationResult, fieldPath);\r\n }\r\n}\r\n\r\n/**\r\n * Predefined validation rules for common use cases\r\n */\r\nexport const rules = {\r\n required: (message = 'This field is required') =>\r\n z.string().min(1, message),\r\n\r\n email: (message = 'Please enter a valid email address') =>\r\n z.string().email(message),\r\n\r\n minLength: (min, message) =>\r\n z.string().min(min, message || `Must be at least ${min} characters`),\r\n\r\n maxLength: (max, message) =>\r\n z.string().max(max, message || `Must be less than ${max} characters`),\r\n\r\n pattern: (regex, message) =>\r\n z.string().regex(regex, message),\r\n\r\n numeric: (message = 'Must be a number') =>\r\n z.string().regex(/^\\d+$/, message),\r\n\r\n phone: (message = 'Please enter a valid phone number') =>\r\n z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message),\r\n\r\n url: (message = 'Please enter a valid URL') =>\r\n z.string().min(1, 'URL is required').url(message)\r\n};\r\n\r\n// ─────────────────────────────────────────────────────────────\r\n// AfriFieldBuilder — Chainable field schema builder\r\n//\r\n// Design: Strict by default. Convenient by composition.\r\n//\r\n// Usage:\r\n// afri.url() → valid URL, required\r\n// afri.url().nullable() → valid URL or null\r\n// afri.url().nullable().emptyAsNull() → \"\" → null, then validates\r\n// afri.url().optional() → valid URL or undefined\r\n// afri.string().trim() → trim whitespace in normalizeInput\r\n// ─────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Chainable field builder for AfriCode validation schemas.\r\n * Wraps Zod with framework-level semantics.\r\n *\r\n * IMPORTANT: .emptyAsNull() does NOT alter the Zod schema itself.\r\n * It marks the field for preprocessing via normalizeInput().\r\n * Validation remains strict — the preprocessing layer is separate.\r\n */\r\nexport class AfriFieldBuilder {\r\n /**\r\n * @param {z.ZodSchema} baseSchema - The base Zod schema for this field\r\n * @param {string} fieldType - The field type identifier (e.g. 'url', 'email')\r\n */\r\n constructor(baseSchema, fieldType = 'string') {\r\n this._baseSchema = baseSchema;\r\n this._fieldType = fieldType;\r\n this._isNullable = false;\r\n this._isOptional = false;\r\n this._emptyAsNull = false;\r\n this._trim = false;\r\n this._customMessage = null;\r\n }\r\n\r\n /**\r\n * Allow null as a valid value.\r\n * @returns {AfriFieldBuilder}\r\n */\r\n nullable() {\r\n this._isNullable = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Allow undefined (field can be omitted).\r\n * @returns {AfriFieldBuilder}\r\n */\r\n optional() {\r\n this._isOptional = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Mark this field for empty-string-to-null conversion.\r\n * REQUIRES .nullable() to have been called first.\r\n * The conversion happens in normalizeInput(), not in the Zod schema.\r\n *\r\n * @returns {AfriFieldBuilder}\r\n * @throws {Error} If .nullable() was not called first\r\n */\r\n emptyAsNull() {\r\n if (!this._isNullable) {\r\n throw new Error(\r\n `[AfriCode] .emptyAsNull() requires .nullable() to be called first. ` +\r\n `Use: afri.${this._fieldType}().nullable().emptyAsNull()`\r\n );\r\n }\r\n this._emptyAsNull = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Mark this field for whitespace trimming.\r\n * The trimming happens in normalizeInput(), not in the Zod schema.\r\n * \" hello \" → \"hello\"\r\n *\r\n * @returns {AfriFieldBuilder}\r\n */\r\n trim() {\r\n this._trim = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Set a custom error message for the base validation.\r\n * @param {string} message\r\n * @returns {AfriFieldBuilder}\r\n */\r\n message(message) {\r\n this._customMessage = message;\r\n // Update the base schema with the custom message if applicable\r\n if (this._customMessage && this._baseSchema) {\r\n // For string schemas with min validation\r\n if (this._fieldType === 'string' && this._baseSchema._def?.minLength) {\r\n this._baseSchema = z.string().min(this._baseSchema._def.minLength.value, message);\r\n } else if (this._fieldType === 'url') {\r\n this._baseSchema = z.string().min(1, 'URL cannot be empty').url(message);\r\n } else if (this._fieldType === 'email') {\r\n this._baseSchema = z.string().min(1, 'Email cannot be empty').email(message);\r\n } else if (this._fieldType === 'phone') {\r\n this._baseSchema = z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Build the final Zod schema.\r\n * @returns {z.ZodSchema}\r\n */\r\n build() {\r\n let schema = this._baseSchema;\r\n\r\n if (this._isNullable) {\r\n schema = schema.nullable();\r\n }\r\n\r\n if (this._isOptional) {\r\n schema = schema.optional();\r\n }\r\n\r\n return schema;\r\n }\r\n\r\n /**\r\n * Get the metadata for this field (used by normalizeInput).\r\n * @returns {Object}\r\n */\r\n getMeta() {\r\n return {\r\n fieldType: this._fieldType,\r\n isNullable: this._isNullable,\r\n isOptional: this._isOptional,\r\n emptyAsNull: this._emptyAsNull,\r\n trim: this._trim\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * AfriCode field factory namespace.\r\n * Creates AfriFieldBuilder instances for common field types.\r\n *\r\n * @example\r\n * // Strict URL — required, only valid URLs accepted\r\n * const urlField = afri.url().build();\r\n *\r\n * @example\r\n * // Nullable URL — valid URL or null\r\n * const avatarField = afri.url().nullable().build();\r\n *\r\n * @example\r\n * // Nullable URL with empty-string normalization\r\n * const avatarField = afri.url().nullable().emptyAsNull().build();\r\n */\r\nexport const afri = {\r\n /**\r\n * Create a strict URL field builder.\r\n * Empty strings are always rejected at the core.\r\n * @param {string} [message='Please enter a valid URL']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n url(message = 'Please enter a valid URL') {\r\n return new AfriFieldBuilder(\r\n z.string().min(1, 'URL cannot be empty').url(message),\r\n 'url'\r\n );\r\n },\r\n\r\n /**\r\n * Create a strict email field builder.\r\n * @param {string} [message='Please enter a valid email address']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n email(message = 'Please enter a valid email address') {\r\n return new AfriFieldBuilder(\r\n z.string().min(1, 'Email cannot be empty').email(message),\r\n 'email'\r\n );\r\n },\r\n\r\n /**\r\n * Create a string field builder.\r\n * @param {Object} [opts]\r\n * @param {number} [opts.min] - Minimum length\r\n * @param {number} [opts.max] - Maximum length\r\n * @param {string} [opts.message] - Custom error message\r\n * @returns {AfriFieldBuilder}\r\n */\r\n string(opts = {}) {\r\n let schema = z.string();\r\n if (opts.min !== undefined) {schema = schema.min(opts.min, opts.message || `Must be at least ${opts.min} characters`);}\r\n if (opts.max !== undefined) {schema = schema.max(opts.max, opts.message || `Must be less than ${opts.max} characters`);}\r\n return new AfriFieldBuilder(schema, 'string');\r\n },\r\n\r\n /**\r\n * Create a number field builder.\r\n * @param {Object} [opts]\r\n * @param {number} [opts.min] - Minimum value\r\n * @param {number} [opts.max] - Maximum value\r\n * @param {boolean} [opts.int] - Must be integer\r\n * @returns {AfriFieldBuilder}\r\n */\r\n number(opts = {}) {\r\n let schema = z.number();\r\n if (opts.min !== undefined) {schema = schema.min(opts.min);}\r\n if (opts.max !== undefined) {schema = schema.max(opts.max);}\r\n if (opts.int) {schema = schema.int('Must be a whole number');}\r\n return new AfriFieldBuilder(schema, 'number');\r\n },\r\n\r\n /**\r\n * Create a phone field builder.\r\n * @param {string} [message='Please enter a valid phone number']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n phone(message = 'Please enter a valid phone number') {\r\n return new AfriFieldBuilder(\r\n z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message),\r\n 'phone'\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Normalize input data before validation.\r\n *\r\n * This is the preprocessing layer. It examines field metadata from\r\n * AfriFieldBuilder instances and applies transformations:\r\n *\r\n * 1. Trim whitespace (if .trim() or config.validation.trimStrings)\r\n * 2. Convert \"\" → null (if .emptyAsNull())\r\n *\r\n * Order matters: trim runs BEFORE emptyAsNull so that\r\n * \" \" → \"\" → null works correctly.\r\n *\r\n * Separation of concerns:\r\n * - normalizeInput() = input adapter (flexible)\r\n * - Validation.validate() = core validation (strict)\r\n *\r\n * @param {Object} fieldBuilders - Map of field names to AfriFieldBuilder instances\r\n * @param {Object} data - Raw input data (e.g. form submission)\r\n * @returns {Object} Normalized data ready for validation\r\n *\r\n * @example\r\n * const fields = {\r\n * avatar_url: afri.url().nullable().emptyAsNull(),\r\n * name: afri.string({ min: 2 }).trim(),\r\n * bio: afri.string({ max: 500 }).nullable()\r\n * };\r\n *\r\n * const raw = { avatar_url: '', name: ' AfriCode ', bio: 'Hello' };\r\n * const cleaned = normalizeInput(fields, raw);\r\n * // → { avatar_url: null, name: 'AfriCode', bio: 'Hello' }\r\n */\r\nexport function normalizeInput(fieldBuilders, data) {\r\n const result = { ...data };\r\n let globalTrim = false;\r\n\r\n // Check framework config for global trim setting\r\n try {\r\n const config = getConfig();\r\n globalTrim = config.validation?.trimStrings === true;\r\n } catch {\r\n // Config not initialized yet — use defaults (no global trim)\r\n }\r\n\r\n for (const [fieldName, builder] of Object.entries(fieldBuilders)) {\r\n if (!(builder instanceof AfriFieldBuilder)) {continue;}\r\n\r\n const meta = builder.getMeta();\r\n const value = result[fieldName];\r\n\r\n // Step 1: Trim whitespace (per-field .trim() or global config)\r\n if (typeof value === 'string' && (meta.trim || globalTrim)) {\r\n result[fieldName] = value.trim();\r\n }\r\n\r\n // Step 2: Convert empty string to null (per-field .emptyAsNull())\r\n if (meta.emptyAsNull && result[fieldName] === '') {\r\n result[fieldName] = null;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Build a Zod object schema from a map of AfriFieldBuilder instances.\r\n * Convenience method to go from builders → Zod schema in one step.\r\n *\r\n * @param {Object} fieldBuilders - Map of field names to AfriFieldBuilder instances\r\n * @returns {z.ZodObject}\r\n *\r\n * @example\r\n * const schema = buildSchema({\r\n * avatar_url: afri.url().nullable().emptyAsNull(),\r\n * name: afri.string({ min: 2, max: 50 })\r\n * });\r\n *\r\n * const result = Validation.validate(schema, data);\r\n */\r\nexport function buildSchema(fieldBuilders) {\r\n const shape = {};\r\n\r\n for (const [fieldName, builder] of Object.entries(fieldBuilders)) {\r\n if (builder instanceof AfriFieldBuilder) {\r\n shape[fieldName] = builder.build();\r\n } else {\r\n // Allow raw Zod schemas to be mixed in\r\n shape[fieldName] = builder;\r\n }\r\n }\r\n\r\n return z.object(shape);\r\n}\r\n\r\nexport default { schemas, Validation, rules, afri, AfriFieldBuilder, normalizeInput, buildSchema };",
21
21
  "/**\r\n * AfriCode Base Component\r\n * \r\n * Abstract base class for all AfriCode Web Components.\r\n * Provides common utilities and enforces the Shadow DOM pattern.\r\n * \r\n * @module components/base\r\n */\r\n\r\nimport { html } from '../core/html.js';\r\n\r\nconst BaseHTMLElement = globalThis.HTMLElement ?? class {};\r\nconst hasConstructableStylesheets = typeof CSSStyleSheet !== 'undefined';\r\n\r\n/**\r\n * Base class for AfriCode components\r\n * All components extend this to inherit common functionality\r\n */\r\nexport class AfriCodeComponent extends BaseHTMLElement {\r\n constructor() {\r\n super();\r\n this.attachShadow({ mode: 'open' });\r\n \r\n // Native Web Component Error Boundary: intercept child render calls\r\n const originalRender = this.render;\r\n if (originalRender && typeof originalRender === 'function') {\r\n this.render = () => {\r\n try {\r\n originalRender.call(this);\r\n this.removeAttribute('has-error');\r\n } catch (error) {\r\n console.error(`[AfriCode] Rendering error in <${this.localName}>:`, error);\r\n this.setAttribute('has-error', 'true');\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n .af-local-error {\r\n padding: 1rem;\r\n border: 1px dashed rgba(220, 20, 60, 0.4);\r\n border-radius: 4px;\r\n color: #DC143C;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n font-size: 0.85rem;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n background: rgba(220, 20, 60, 0.05);\r\n }\r\n </style>\r\n <div class=\"af-local-error\">\r\n <span aria-hidden=\"true\">⚠️</span>\r\n <span>Failed to render</span>\r\n </div>\r\n `;\r\n this.emit('af-component-error', { \r\n component: this.localName, \r\n message: error.message,\r\n stack: error.stack \r\n });\r\n }\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Component lifecycle - connected to DOM\r\n * Empty base implementation to support super calls in subclasses.\r\n */\r\n connectedCallback() { }\r\n\r\n /**\r\n * Load shared Africanity styles into Shadow DOM\r\n */\r\n // Static cache for Constructable Stylesheets to prevent fetch waterfall\r\n static styleCache = new Map();\r\n\r\n /**\r\n * Global stylesheets injected by adapters (e.g. Tailwind, custom design systems).\r\n * Each entry must be a CSSStyleSheet instance.\r\n * Usage: AfriCodeComponent.injectGlobalSheet(sheet)\r\n * @type {CSSStyleSheet[]}\r\n */\r\n static globalSheets = [];\r\n\r\n /**\r\n * Inject a global CSSStyleSheet into every AfriCode component's Shadow DOM.\r\n * This is the primary integration point for external CSS frameworks like Tailwind.\r\n * @param {CSSStyleSheet} sheet - A Constructable Stylesheet instance\r\n */\r\n static injectGlobalSheet(sheet) {\r\n if (!hasConstructableStylesheets) {\r\n return;\r\n }\r\n\r\n if (!(sheet instanceof CSSStyleSheet)) {\r\n return;\r\n }\r\n if (!AfriCodeComponent.globalSheets.includes(sheet)) {\r\n AfriCodeComponent.globalSheets.push(sheet);\r\n }\r\n }\r\n\r\n /**\r\n * Load shared Africanity styles into Shadow DOM.\r\n * Optimized to fetch only once per session.\r\n * Also adopts any globally injected sheets (e.g. Tailwind utilities).\r\n */\r\n async loadStyles(css = '') {\r\n const styleUrl = '/styles/africanity.css';\r\n if (!this.shadowRoot) {\r\n return;\r\n }\r\n\r\n const canAdoptStyleSheets = hasConstructableStylesheets && 'adoptedStyleSheets' in this.shadowRoot;\r\n const sourceKey = typeof css === 'string' && css.length > 0 ? css : styleUrl;\r\n const stylesheetText = typeof css === 'string' && css.length > 0 ? css : null;\r\n\r\n // 1. Check cache first\r\n if (AfriCodeComponent.styleCache.has(sourceKey)) {\r\n const cached = AfriCodeComponent.styleCache.get(sourceKey);\r\n if (canAdoptStyleSheets) {\r\n this.shadowRoot.adoptedStyleSheets = [\r\n cached,\r\n ...AfriCodeComponent.globalSheets\r\n ];\r\n } else {\r\n this._applyFallbackStyle(cached?.cssText || cached?.text || cached || '');\r\n }\r\n return;\r\n }\r\n\r\n // 2. Fetch if not cached (Single Request)\r\n try {\r\n let resolvedCss = stylesheetText;\r\n\r\n if (!resolvedCss) {\r\n const response = await fetch(styleUrl);\r\n if (!response.ok) {\r\n throw new Error(`Unable to load stylesheet: ${response.status}`);\r\n }\r\n resolvedCss = await response.text();\r\n }\r\n\r\n if (canAdoptStyleSheets) {\r\n const styleSheet = new CSSStyleSheet();\r\n styleSheet.replaceSync(resolvedCss);\r\n\r\n // Cache it\r\n AfriCodeComponent.styleCache.set(sourceKey, styleSheet);\r\n\r\n // Apply core + any global sheets\r\n this.shadowRoot.adoptedStyleSheets = [\r\n styleSheet,\r\n ...AfriCodeComponent.globalSheets\r\n ];\r\n return;\r\n }\r\n\r\n this._applyFallbackStyle(resolvedCss);\r\n AfriCodeComponent.styleCache.set(sourceKey, { text: resolvedCss });\r\n } catch (err) {\r\n this._applyFallbackStyle(stylesheetText || '');\r\n }\r\n }\r\n\r\n _applyFallbackStyle(css) {\r\n if (!this.shadowRoot) {\r\n return;\r\n }\r\n\r\n let style = this.shadowRoot.querySelector('style[data-africode-core-styles]');\r\n if (!style) {\r\n style = document.createElement('style');\r\n style.setAttribute('data-africode-core-styles', '');\r\n this.shadowRoot.prepend(style);\r\n }\r\n\r\n style.textContent = css;\r\n }\r\n\r\n /**\r\n * Get Fibonacci spacing value\r\n * @param {number} index - Fibonacci sequence index (1,2,3,5,8,13,21,34,55)\r\n * @returns {string} CSS variable reference\r\n */\r\n spacing(index) {\r\n return `var(--space-${index})`;\r\n }\r\n\r\n /**\r\n * Create element with classes and attributes\r\n * @param {string} tag - HTML tag name\r\n * @param {Object} options - Element options\r\n * @returns {HTMLElement}\r\n */\r\n createElement(tag, { classes = [], attributes = {}, text = '' } = {}) {\r\n const el = document.createElement(tag);\r\n if (classes.length) {el.classList.add(...classes);}\r\n Object.entries(attributes).forEach(([key, value]) => el.setAttribute(key, value));\r\n if (text) {el.textContent = text;}\r\n return el;\r\n }\r\n\r\n\r\n /**\r\n * Emit a custom event\r\n * @param {string} name - Event name\r\n * @param {*} detail - Event detail data\r\n */\r\n emit(name, detail) {\r\n this.dispatchEvent(new CustomEvent(name, {\r\n detail,\r\n bubbles: true,\r\n composed: true\r\n }));\r\n }\r\n}\r\n\r\n/**\r\n * Register a component with the Custom Elements registry\r\n * @param {string} name - Component tag name (must include hyphen)\r\n * @param {typeof HTMLElement} component - Component class\r\n */\r\nexport function registerComponent(name, component) {\r\n if (typeof customElements === 'undefined') {\r\n return;\r\n }\r\n\r\n if (!customElements.get(name)) {\r\n customElements.define(name, component);\r\n }\r\n}\r\n\r\nexport { html };\r\nexport default { AfriCodeComponent, registerComponent, html };\r\n",
22
22
  "/**\r\n * AfriCode UI Button\r\n *\r\n * A shadcn-style button component with variant and size options.\r\n * Works well with Tailwind-style theming and Shadow DOM.\r\n *\r\n * @module components/ui-button\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent, html } from './base.js';\r\n\r\nexport class AfriUIButton extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['variant', 'size', 'disabled', 'loading', 'full-width', 'aria-label'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n const button = this.shadowRoot.querySelector('button');\r\n button?.addEventListener('click', (event) => {\r\n if (this.hasAttribute('disabled') || this.hasAttribute('loading')) {\r\n event.preventDefault();\r\n return;\r\n }\r\n this.emit('af-ui-button-click', { originalEvent: event });\r\n });\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const variant = this.getAttribute('variant') || 'primary';\r\n const size = this.getAttribute('size') || 'md';\r\n const isDisabled = this.hasAttribute('disabled');\r\n const isLoading = this.hasAttribute('loading');\r\n const ariaLabel = this.getAttribute('aria-label') || '';\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host { display: inline-block; }\r\n\r\n button {\r\n all: unset;\r\n box-sizing: border-box;\r\n min-height: 42px;\r\n padding: 0 18px;\r\n border-radius: 999px;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n font-weight: 600;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.5rem;\r\n transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;\r\n text-decoration: none;\r\n border: 1px solid transparent;\r\n user-select: none;\r\n white-space: nowrap;\r\n }\r\n\r\n :host([full-width]) button { width: 100%; }\r\n\r\n button.primary {\r\n background: #2563eb;\r\n color: #fff;\r\n box-shadow: 0 8px 24px rgba(37, 99, 235, 0.24);\r\n }\r\n\r\n button.primary:hover:not(:disabled) {\r\n transform: translateY(-1px);\r\n background: #1d4ed8;\r\n }\r\n\r\n button.secondary {\r\n background: #f8fafc;\r\n color: #1f2937;\r\n border-color: #cbd5e1;\r\n }\r\n\r\n button.secondary:hover:not(:disabled) {\r\n background: #e2e8f0;\r\n }\r\n\r\n button.ghost {\r\n background: transparent;\r\n color: #0f172a;\r\n }\r\n\r\n button.ghost:hover:not(:disabled) {\r\n background: rgba(15, 23, 42, 0.05);\r\n }\r\n\r\n button.link {\r\n background: transparent;\r\n color: #2563eb;\r\n box-shadow: none;\r\n padding: 0;\r\n border-radius: 0;\r\n }\r\n\r\n button.link:hover:not(:disabled) {\r\n text-decoration: underline;\r\n }\r\n\r\n button.size-sm { min-height: 34px; padding: 0 14px; font-size: 0.85rem; }\r\n button.size-md { min-height: 42px; padding: 0 18px; font-size: 0.95rem; }\r\n button.size-lg { min-height: 50px; padding: 0 22px; font-size: 1rem; }\r\n\r\n button:disabled {\r\n opacity: 0.55;\r\n cursor: not-allowed;\r\n transform: none;\r\n box-shadow: none;\r\n }\r\n\r\n .spinner {\r\n width: 18px;\r\n height: 18px;\r\n border: 2px solid currentColor;\r\n border-bottom-color: transparent;\r\n border-radius: 999px;\r\n animation: spin 0.8s linear infinite;\r\n }\r\n\r\n @keyframes spin { to { transform: rotate(360deg); } }\r\n </style>\r\n\r\n <button\r\n class=\"${variant} ${size}\"\r\n ${isDisabled ? 'disabled' : ''}\r\n ${ariaLabel ? `aria-label=\"${ariaLabel}\"` : ''}\r\n ${isLoading ? 'aria-busy=\"true\"' : ''}\r\n >\r\n ${isLoading ? html`<span class=\"spinner\"></span>` : ''}\r\n <slot></slot>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-ui-button', AfriUIButton);\r\nexport default AfriUIButton;\r\n",
23
23
  "/**\r\n * AfriCode UI Card\r\n *\r\n * A lightweight card component for content grouping.\r\n * Provides subtle elevation and variant support.\r\n *\r\n * @module components/ui-card\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent, html } from './base.js';\r\n\r\nexport class AfriUICard extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['variant', 'bordered', 'clickable'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n this.loadStyles();\r\n if (this.hasAttribute('clickable')) {\r\n this.shadowRoot.querySelector('.card')?.addEventListener('click', () => {\r\n this.emit('af-ui-card-click');\r\n });\r\n }\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const variant = this.getAttribute('variant') || 'elevated';\r\n const bordered = this.hasAttribute('bordered');\r\n const clickable = this.hasAttribute('clickable');\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host { display: block; }\r\n\r\n .card {\r\n border-radius: 1rem;\r\n padding: 1.5rem;\r\n background: #ffffff;\r\n color: #0f172a;\r\n transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;\r\n border: 1px solid transparent;\r\n box-shadow: 0 16px 32px rgba(15, 23, 42, 0.08);\r\n }\r\n\r\n .card.elevated { background: #fff; }\r\n .card.flat { background: #f8fafc; box-shadow: none; }\r\n .card.outlined { background: #fff; border-color: #e2e8f0; box-shadow: none; }\r\n\r\n .card:hover:not(.disabled) {\r\n transform: translateY(-2px);\r\n }\r\n\r\n :host([bordered]) .card { border-color: #cbd5e1; }\r\n\r\n :host([clickable]) .card { cursor: pointer; }\r\n </style>\r\n\r\n <article class=\"card ${variant}\">\r\n <slot></slot>\r\n </article>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-ui-card', AfriUICard);\r\nexport default AfriUICard;\r\n",
@@ -45,6 +45,11 @@
45
45
  "/**\r\n * AfriCode Dashboard Card\r\n *\r\n * A reusable dashboard surface for metrics, lists, and analytics.\r\n * @module components/dashboard-card\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent, html } from './base.js';\r\n\r\nexport class AfriDashboardCard extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['title', 'variant'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const title = this.getAttribute('title') || '';\r\n const variant = this.getAttribute('variant') || 'surface';\r\n\r\n const styles = {\r\n surface: {\r\n background: '#ffffff',\r\n border: '1px solid rgba(15, 23, 42, 0.08)',\r\n shadow: '0 18px 36px rgba(15, 23, 42, 0.04)'\r\n },\r\n elevated: {\r\n background: 'linear-gradient(180deg, #ffffff 0%, #f8fafc 100%)',\r\n border: '1px solid rgba(15, 23, 42, 0.12)',\r\n shadow: '0 24px 48px rgba(15, 23, 42, 0.08)'\r\n }\r\n };\r\n\r\n const cardStyle = styles[variant] || styles.surface;\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n }\r\n\r\n .card {\r\n background: ${cardStyle.background};\r\n border: ${cardStyle.border};\r\n border-radius: 24px;\r\n box-shadow: ${cardStyle.shadow};\r\n padding: 1.5rem;\r\n min-height: 100px;\r\n overflow: hidden;\r\n }\r\n\r\n .header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 0.75rem;\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .title {\r\n margin: 0;\r\n font-size: 1rem;\r\n font-weight: 700;\r\n color: #0f172a;\r\n }\r\n </style>\r\n\r\n <div class=\"card\">\r\n ${title ? html`<div class=\"header\"><h3 class=\"title\">${title}</h3><slot name=\"header\"></slot></div>` : ''}\r\n <div class=\"body\"><slot></slot></div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-dashboard-card', AfriDashboardCard);\r\nexport default AfriDashboardCard;\r\n",
46
46
  "/**\r\n * AfriCode Dashboard Metric\r\n *\r\n * Summary tile for key performance indicators.\r\n * @module components/dashboard-metric\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent, html } from './base.js';\r\n\r\nexport class AfriDashboardMetric extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['label', 'value', 'delta', 'trend'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const label = this.getAttribute('label') || 'Metric';\r\n const value = this.getAttribute('value') || '0';\r\n const delta = this.getAttribute('delta') || '';\r\n const trend = this.getAttribute('trend') || 'neutral';\r\n const trendColor = trend === 'positive' ? '#16a34a' : trend === 'negative' ? '#dc2626' : '#475569';\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n }\r\n\r\n .metric {\r\n display: grid;\r\n gap: 0.5rem;\r\n padding: 1.25rem;\r\n border-radius: 24px;\r\n background: #ffffff;\r\n border: 1px solid rgba(15, 23, 42, 0.08);\r\n }\r\n\r\n .label {\r\n color: #6b7280;\r\n text-transform: uppercase;\r\n letter-spacing: 0.14em;\r\n font-size: 0.75rem;\r\n font-weight: 700;\r\n }\r\n\r\n .value {\r\n font-size: 2rem;\r\n font-weight: 800;\r\n color: #0f172a;\r\n }\r\n\r\n .delta {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.4rem;\r\n font-weight: 700;\r\n color: ${trendColor};\r\n font-size: 0.92rem;\r\n }\r\n </style>\r\n\r\n <div class=\"metric\">\r\n <div class=\"label\">${label}</div>\r\n <div class=\"value\">${value}</div>\r\n ${delta ? html`<div class=\"delta\">${delta}</div>` : ''}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-dashboard-metric', AfriDashboardMetric);\r\nexport default AfriDashboardMetric;\r\n",
47
47
  "/**\r\n * AfriCode Dashboard Activity List\r\n *\r\n * Displays recent activity or event history in a dashboard card.\r\n * @module components/dashboard-activity-list\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent, html } from './base.js';\r\n\r\nexport class AfriDashboardActivityList extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['title', 'empty-text'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const title = this.getAttribute('title') || 'Recent Activity';\r\n const emptyText = this.getAttribute('empty-text') || 'No recent activity available.';\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n }\r\n\r\n .activity-card {\r\n display: grid;\r\n gap: 1rem;\r\n padding: 1.5rem;\r\n border-radius: 24px;\r\n background: #ffffff;\r\n border: 1px solid rgba(15, 23, 42, 0.08);\r\n }\r\n\r\n .header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 0.75rem;\r\n }\r\n\r\n .title {\r\n margin: 0;\r\n font-size: 1rem;\r\n font-weight: 700;\r\n color: #0f172a;\r\n }\r\n\r\n .list {\r\n display: grid;\r\n gap: 0.5rem;\r\n }\r\n\r\n .item {\r\n padding: 0.95rem 1rem;\r\n border-radius: 18px;\r\n background: #f8fafc;\r\n border: 1px solid rgba(15, 23, 42, 0.04);\r\n }\r\n\r\n .item-title {\r\n font-size: 0.95rem;\r\n font-weight: 600;\r\n color: #0f172a;\r\n margin: 0 0 0.25rem;\r\n }\r\n\r\n .item-meta {\r\n margin: 0;\r\n color: #6b7280;\r\n font-size: 0.85rem;\r\n }\r\n\r\n .empty {\r\n color: #6b7280;\r\n font-size: 0.95rem;\r\n padding: 1rem 0;\r\n }\r\n </style>\r\n\r\n <div class=\"activity-card\">\r\n <div class=\"header\"><h3 class=\"title\">${title}</h3></div>\r\n <div class=\"list\">\r\n <slot>\r\n <div class=\"empty\">${emptyText}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-dashboard-activity-list', AfriDashboardActivityList);\r\nexport default AfriDashboardActivityList;\r\n",
48
+ "import { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nconst styles = `\r\n :host {\r\n display: block;\r\n color: var(--af-smart-text, var(--af-text, #172033));\r\n font-family: var(--af-font-family, Inter, system-ui, sans-serif);\r\n }\r\n\r\n form {\r\n display: grid;\r\n gap: 12px;\r\n }\r\n\r\n label {\r\n display: grid;\r\n gap: 6px;\r\n color: var(--af-smart-muted, var(--af-muted, #647084));\r\n font-size: 0.86rem;\r\n }\r\n\r\n input {\r\n min-height: 42px;\r\n border: 1px solid var(--af-smart-border, var(--af-border, #d8dee8));\r\n border-radius: 6px;\r\n padding: 0 12px;\r\n background: var(--af-smart-field-bg, var(--af-surface-muted, #eef2f7));\r\n color: inherit;\r\n }\r\n\r\n button {\r\n min-height: 42px;\r\n border: 1px solid var(--af-smart-primary, var(--af-primary, #0f766e));\r\n border-radius: 6px;\r\n background: var(--af-smart-primary, var(--af-primary, #0f766e));\r\n color: var(--af-smart-primary-text, #ffffff);\r\n cursor: pointer;\r\n font: inherit;\r\n font-weight: 700;\r\n }\r\n\r\n button:disabled {\r\n cursor: wait;\r\n opacity: 0.7;\r\n }\r\n\r\n .message {\r\n min-height: 20px;\r\n color: var(--af-smart-muted, var(--af-muted, #647084));\r\n font-size: 0.86rem;\r\n }\r\n\r\n .message.error {\r\n color: var(--af-smart-danger, var(--af-danger, #b42318));\r\n }\r\n\r\n .message.success {\r\n color: var(--af-smart-success, var(--af-success, #087443));\r\n }\r\n`;\r\n\r\nfunction isEmail(value) {\r\n return typeof value === 'string' && /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value);\r\n}\r\n\r\nexport class AfriAuthForm extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['endpoint', 'button-label'];\r\n }\r\n\r\n connectedCallback() {\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) {\r\n this.render();\r\n }\r\n }\r\n\r\n get endpoint() {\r\n return this.getAttribute('endpoint') || '/api/auth';\r\n }\r\n\r\n render() {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <form novalidate>\r\n <label>\r\n Email\r\n <input name=\"email\" type=\"email\" autocomplete=\"email\" required />\r\n </label>\r\n <label>\r\n Password\r\n <input name=\"password\" type=\"password\" autocomplete=\"current-password\" minlength=\"8\" required />\r\n </label>\r\n <button type=\"submit\">${this.getAttribute('button-label') || 'Continue'}</button>\r\n <div class=\"message\" role=\"status\" aria-live=\"polite\"></div>\r\n </form>\r\n `;\r\n\r\n this.shadowRoot.querySelector('form').addEventListener('submit', (event) => this.handleSubmit(event));\r\n }\r\n\r\n setMessage(message, type = '') {\r\n const target = this.shadowRoot.querySelector('.message');\r\n target.className = type ? `message ${type}` : 'message';\r\n target.textContent = message;\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const form = event.currentTarget;\r\n const button = form.querySelector('button');\r\n const payload = {\r\n email: form.elements.email.value.trim(),\r\n password: form.elements.password.value\r\n };\r\n\r\n if (!isEmail(payload.email) || payload.password.length < 8) {\r\n this.setMessage('Enter a valid email and password.', 'error');\r\n this.emit('af-auth-error', { code: 'INVALID_INPUT' });\r\n return;\r\n }\r\n\r\n button.disabled = true;\r\n this.setMessage('Checking credentials...');\r\n\r\n try {\r\n const response = await fetch(this.endpoint, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(payload)\r\n });\r\n const data = await response.json();\r\n\r\n if (!response.ok || data.ok === false) {\r\n this.setMessage(data.error || 'Authentication failed.', 'error');\r\n this.emit('af-auth-error', { response: data, status: response.status });\r\n return;\r\n }\r\n\r\n this.setMessage('Authenticated.', 'success');\r\n this.emit('af-auth-success', data);\r\n } catch (error) {\r\n this.setMessage('Authentication service unavailable.', 'error');\r\n this.emit('af-auth-error', { code: 'NETWORK_ERROR', message: error.message });\r\n } finally {\r\n button.disabled = false;\r\n }\r\n }\r\n}\r\n\r\nregisterComponent('af-auth-form', AfriAuthForm);\r\n",
49
+ "import { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nconst styles = `\r\n :host {\r\n display: block;\r\n color: var(--af-smart-text, var(--af-text, #172033));\r\n font-family: var(--af-font-family, Inter, system-ui, sans-serif);\r\n }\r\n\r\n form {\r\n display: grid;\r\n gap: 12px;\r\n padding: 16px;\r\n border: 1px solid var(--af-smart-border, var(--af-border, #d8dee8));\r\n border-radius: 8px;\r\n background: var(--af-smart-surface, var(--af-surface, #ffffff));\r\n }\r\n\r\n label {\r\n display: grid;\r\n gap: 6px;\r\n color: var(--af-smart-muted, var(--af-muted, #647084));\r\n font-size: 0.86rem;\r\n }\r\n\r\n input {\r\n width: 100%;\r\n border: 1px solid var(--af-smart-border, var(--af-border, #d8dee8));\r\n border-radius: 6px;\r\n padding: 10px;\r\n background: var(--af-smart-field-bg, var(--af-surface-muted, #eef2f7));\r\n color: inherit;\r\n }\r\n\r\n button {\r\n min-height: 42px;\r\n border: 1px solid var(--af-smart-primary, var(--af-primary, #0f766e));\r\n border-radius: 6px;\r\n background: var(--af-smart-primary, var(--af-primary, #0f766e));\r\n color: var(--af-smart-primary-text, #ffffff);\r\n cursor: pointer;\r\n font: inherit;\r\n font-weight: 700;\r\n }\r\n\r\n button:disabled {\r\n cursor: wait;\r\n opacity: 0.7;\r\n }\r\n\r\n .hint,\r\n .message {\r\n color: var(--af-smart-muted, var(--af-muted, #647084));\r\n font-size: 0.84rem;\r\n }\r\n\r\n .message.error {\r\n color: var(--af-smart-danger, var(--af-danger, #b42318));\r\n }\r\n\r\n .message.success {\r\n color: var(--af-smart-success, var(--af-success, #087443));\r\n }\r\n`;\r\n\r\nconst allowedTypes = new Set(['application/pdf', 'image/jpeg', 'image/png']);\r\n\r\nexport class AfriKycUpload extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['endpoint', 'max-size-mb'];\r\n }\r\n\r\n connectedCallback() {\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) {\r\n this.render();\r\n }\r\n }\r\n\r\n get endpoint() {\r\n return this.getAttribute('endpoint') || '/api/kyc';\r\n }\r\n\r\n get maxSizeMb() {\r\n return Number(this.getAttribute('max-size-mb') || 5);\r\n }\r\n\r\n render() {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <form novalidate>\r\n <label>\r\n Identity document\r\n <input name=\"document\" type=\"file\" accept=\"application/pdf,image/jpeg,image/png\" required />\r\n </label>\r\n <span class=\"hint\">PDF, JPG, or PNG. Maximum ${this.maxSizeMb} MB.</span>\r\n <button type=\"submit\">Upload for review</button>\r\n <div class=\"message\" role=\"status\" aria-live=\"polite\"></div>\r\n </form>\r\n `;\r\n\r\n this.shadowRoot.querySelector('form').addEventListener('submit', (event) => this.handleSubmit(event));\r\n }\r\n\r\n setMessage(message, type = '') {\r\n const target = this.shadowRoot.querySelector('.message');\r\n target.className = type ? `message ${type}` : 'message';\r\n target.textContent = message;\r\n }\r\n\r\n validateFile(file) {\r\n if (!file) {\r\n return { ok: false, code: 'FILE_REQUIRED', error: 'Choose an identity document.' };\r\n }\r\n\r\n if (!allowedTypes.has(file.type)) {\r\n return { ok: false, code: 'UNSUPPORTED_FILE_TYPE', error: 'Use a PDF, JPG, or PNG document.' };\r\n }\r\n\r\n if (file.size > this.maxSizeMb * 1024 * 1024) {\r\n return { ok: false, code: 'FILE_TOO_LARGE', error: `File must be ${this.maxSizeMb} MB or smaller.` };\r\n }\r\n\r\n return { ok: true };\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const form = event.currentTarget;\r\n const button = form.querySelector('button');\r\n const file = form.elements.document.files?.[0];\r\n const validation = this.validateFile(file);\r\n\r\n if (!validation.ok) {\r\n this.setMessage(validation.error, 'error');\r\n this.emit('af-kyc-error', validation);\r\n return;\r\n }\r\n\r\n const payload = new FormData();\r\n payload.set('document', file, file.name);\r\n\r\n button.disabled = true;\r\n this.setMessage('Uploading document...');\r\n\r\n try {\r\n const response = await fetch(this.endpoint, {\r\n method: 'POST',\r\n body: payload\r\n });\r\n const data = await response.json().catch(() => ({}));\r\n\r\n if (!response.ok || data.ok === false) {\r\n this.setMessage(data.error || 'Document upload failed.', 'error');\r\n this.emit('af-kyc-error', { response: data, status: response.status });\r\n return;\r\n }\r\n\r\n this.setMessage('Document received for review.', 'success');\r\n this.emit('af-kyc-success', data);\r\n } catch (error) {\r\n this.setMessage('KYC service unavailable.', 'error');\r\n this.emit('af-kyc-error', { code: 'NETWORK_ERROR', message: error.message });\r\n } finally {\r\n button.disabled = false;\r\n }\r\n }\r\n}\r\n\r\nregisterComponent('af-kyc-upload', AfriKycUpload);\r\n",
50
+ "import { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nconst styles = `\r\n :host {\r\n display: block;\r\n color: var(--af-smart-text, var(--af-text, #172033));\r\n font-family: var(--af-font-family, Inter, system-ui, sans-serif);\r\n }\r\n\r\n .wallet {\r\n display: grid;\r\n gap: 8px;\r\n padding: 16px;\r\n border: 1px solid var(--af-smart-border, var(--af-border, #d8dee8));\r\n border-radius: 8px;\r\n background: var(--af-smart-surface, var(--af-surface, #ffffff));\r\n }\r\n\r\n .label,\r\n .meta {\r\n color: var(--af-smart-muted, var(--af-muted, #647084));\r\n font-size: 0.84rem;\r\n }\r\n\r\n .amount {\r\n font-size: 1.8rem;\r\n font-weight: 760;\r\n }\r\n\r\n .error {\r\n color: var(--af-smart-danger, var(--af-danger, #b42318));\r\n }\r\n`;\r\n\r\nfunction formatCurrency(value, currency) {\r\n return `${currency || 'TZS'} ${Number(value || 0).toLocaleString('en-US')}`;\r\n}\r\n\r\nexport class AfriWalletBalance extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['endpoint'];\r\n }\r\n\r\n connectedCallback() {\r\n this.renderLoading();\r\n this.load();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) {\r\n this.load();\r\n }\r\n }\r\n\r\n get endpoint() {\r\n return this.getAttribute('endpoint') || '/api/wallet';\r\n }\r\n\r\n renderLoading() {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <article class=\"wallet\">\r\n <span class=\"label\">Available balance</span>\r\n <strong class=\"amount\">Loading</strong>\r\n <span class=\"meta\">Fetching wallet</span>\r\n </article>\r\n `;\r\n }\r\n\r\n renderWallet(wallet) {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <article class=\"wallet\">\r\n <span class=\"label\">Available balance</span>\r\n <strong class=\"amount\"></strong>\r\n <span class=\"meta\"></span>\r\n </article>\r\n `;\r\n\r\n this.shadowRoot.querySelector('.amount').textContent = formatCurrency(wallet.availableBalance, wallet.currency);\r\n this.shadowRoot.querySelector('.meta').textContent = `Ledger ${formatCurrency(wallet.ledgerBalance, wallet.currency)} · Daily limit ${formatCurrency(wallet.dailyLimit, wallet.currency)}`;\r\n }\r\n\r\n renderError(message) {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <article class=\"wallet\">\r\n <span class=\"label\">Available balance</span>\r\n <strong class=\"amount error\">Unavailable</strong>\r\n <span class=\"meta error\"></span>\r\n </article>\r\n `;\r\n this.shadowRoot.querySelector('.meta').textContent = message;\r\n }\r\n\r\n async load() {\r\n try {\r\n const response = await fetch(this.endpoint);\r\n const data = await response.json();\r\n\r\n if (!response.ok || data.ok === false || !data.wallet) {\r\n throw new Error(data.error || 'Wallet data unavailable.');\r\n }\r\n\r\n this.renderWallet(data.wallet);\r\n this.emit('af-wallet-load', data);\r\n } catch (error) {\r\n this.renderError('Wallet API is unavailable.');\r\n this.emit('af-wallet-error', { message: error.message });\r\n }\r\n }\r\n}\r\n\r\nregisterComponent('af-wallet-balance', AfriWalletBalance);\r\n",
51
+ "import { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nconst styles = `\r\n :host {\r\n display: block;\r\n color: var(--af-smart-text, var(--af-text, #172033));\r\n font-family: var(--af-font-family, Inter, system-ui, sans-serif);\r\n }\r\n\r\n .ledger {\r\n display: grid;\r\n gap: 10px;\r\n }\r\n\r\n .row {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n gap: 12px;\r\n padding: 12px;\r\n border: 1px solid var(--af-smart-border, var(--af-border, #d8dee8));\r\n border-radius: 8px;\r\n background: var(--af-smart-surface, var(--af-surface, #ffffff));\r\n }\r\n\r\n .status,\r\n .empty {\r\n color: var(--af-smart-muted, var(--af-muted, #647084));\r\n font-size: 0.84rem;\r\n }\r\n\r\n .amount {\r\n font-weight: 760;\r\n }\r\n\r\n .error {\r\n color: var(--af-smart-danger, var(--af-danger, #b42318));\r\n }\r\n`;\r\n\r\nfunction formatCurrency(value, currency) {\r\n return `${currency || 'TZS'} ${Number(value || 0).toLocaleString('en-US')}`;\r\n}\r\n\r\nexport class AfriTransactionLedger extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['endpoint'];\r\n }\r\n\r\n connectedCallback() {\r\n this.renderShell('Loading transactions');\r\n this.load();\r\n }\r\n\r\n attributeChangedCallback() {\r\n if (this.isConnected) {\r\n this.load();\r\n }\r\n }\r\n\r\n get endpoint() {\r\n return this.getAttribute('endpoint') || '/api/wallet';\r\n }\r\n\r\n renderShell(message = '') {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <div class=\"ledger\" role=\"list\"></div>\r\n `;\r\n\r\n if (message) {\r\n const empty = document.createElement('div');\r\n empty.className = 'empty';\r\n empty.textContent = message;\r\n this.shadowRoot.querySelector('.ledger').append(empty);\r\n }\r\n }\r\n\r\n renderTransactions(transactions) {\r\n this.renderShell();\r\n const ledger = this.shadowRoot.querySelector('.ledger');\r\n\r\n if (!transactions.length) {\r\n const empty = document.createElement('div');\r\n empty.className = 'empty';\r\n empty.textContent = 'No transactions yet.';\r\n ledger.append(empty);\r\n return;\r\n }\r\n\r\n ledger.replaceChildren(...transactions.map((tx) => {\r\n const row = document.createElement('article');\r\n const details = document.createElement('div');\r\n const counterparty = document.createElement('strong');\r\n const status = document.createElement('div');\r\n const amount = document.createElement('span');\r\n\r\n row.className = 'row';\r\n row.setAttribute('role', 'listitem');\r\n status.className = 'status';\r\n amount.className = 'amount';\r\n counterparty.textContent = tx.counterparty || tx.id || 'Transaction';\r\n status.textContent = tx.status || tx.type || 'pending';\r\n amount.textContent = formatCurrency(tx.amount, tx.currency);\r\n\r\n details.append(counterparty, status);\r\n row.append(details, amount);\r\n return row;\r\n }));\r\n }\r\n\r\n renderError(message) {\r\n this.shadowRoot.innerHTML = `\r\n <style>${styles}</style>\r\n <div class=\"empty error\"></div>\r\n `;\r\n this.shadowRoot.querySelector('.empty').textContent = message;\r\n }\r\n\r\n async load() {\r\n try {\r\n const response = await fetch(this.endpoint);\r\n const data = await response.json();\r\n const transactions = Array.isArray(data.transactions) ? data.transactions : [];\r\n\r\n if (!response.ok || data.ok === false) {\r\n throw new Error(data.error || 'Ledger data unavailable.');\r\n }\r\n\r\n this.renderTransactions(transactions);\r\n this.emit('af-ledger-load', { transactions });\r\n } catch (error) {\r\n this.renderError('Transaction ledger unavailable.');\r\n this.emit('af-ledger-error', { message: error.message });\r\n }\r\n }\r\n}\r\n\r\nregisterComponent('af-transaction-ledger', AfriTransactionLedger);\r\n",
52
+ "/**\r\n * AfriCode Navigation Drawer Component\r\n * \r\n * A responsive navigation drawer that works on mobile and desktop\r\n * with smooth animations and accessibility features.\r\n * \r\n * @module components/nav-drawer\r\n */\r\n\r\nimport { AfriCodeComponent, html } from './base.js';\r\n\r\nexport class AfriNavDrawer extends AfriCodeComponent {\r\n constructor() {\r\n super();\r\n this.isOpen = false;\r\n this.position = this.getAttribute('position') || 'left'; // left or right\r\n this.width = this.getAttribute('width') || '280px';\r\n this.overlay = this.hasAttribute('overlay');\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['open', 'position', 'width', 'overlay'];\r\n }\r\n\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n switch (name) {\r\n case 'open':\r\n this.isOpen = newValue !== null;\r\n this.render();\r\n break;\r\n case 'position':\r\n this.position = newValue;\r\n break;\r\n case 'width':\r\n this.width = newValue;\r\n break;\r\n case 'overlay':\r\n this.overlay = newValue !== null;\r\n break;\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n super.connectedCallback();\r\n this.addEventListener('keydown', this.handleKeyDown);\r\n this.loadStyles();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.removeEventListener('keydown', this.handleKeyDown);\r\n }\r\n\r\n handleKeyDown = (e) => {\r\n if (e.key === 'Escape' && this.isOpen) {\r\n this.close();\r\n }\r\n }\r\n\r\n toggle() {\r\n this.isOpen ? this.close() : this.open();\r\n }\r\n\r\n open() {\r\n this.isOpen = true;\r\n this.setAttribute('open', '');\r\n this.render();\r\n this.emit('af-navdrawer-open', { drawer: this });\r\n }\r\n\r\n close() {\r\n this.isOpen = false;\r\n this.removeAttribute('open');\r\n this.render();\r\n this.emit('af-navdrawer-close', { drawer: this });\r\n }\r\n\r\n render() {\r\n if (!this.shadowRoot) return;\r\n\r\n // Apply styles first\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: block;\r\n position: fixed;\r\n z-index: 1000;\r\n }\r\n\r\n .nav-drawer {\r\n position: fixed;\r\n top: 0;\r\n ${this.position}: 0;\r\n width: ${this.width};\r\n height: 100vh;\r\n background: var(--af-bg, #ffffff);\r\n box-shadow: var(--af-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\r\n transform: translateX(${this.position === 'left' ? '-100%' : '100%'});\r\n transition: transform 0.3s ease-in-out;\r\n overflow-y: auto;\r\n z-index: 1001;\r\n }\r\n\r\n .nav-drawer.open {\r\n transform: translateX(0);\r\n }\r\n\r\n .nav-drawer-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background: rgba(0, 0, 0, 0.5);\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;\r\n z-index: 1000;\r\n }\r\n\r\n .nav-drawer-overlay.open {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n\r\n .nav-drawer-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 1rem;\r\n border-bottom: 1px solid var(--af-border-color, #e5e7eb);\r\n }\r\n\r\n .nav-drawer-title {\r\n margin: 0;\r\n font-size: 1.25rem;\r\n font-weight: 600;\r\n }\r\n\r\n .close-btn {\r\n background: none;\r\n border: none;\r\n font-size: 1.5rem;\r\n cursor: pointer;\r\n padding: 0.25rem;\r\n border-radius: 4px;\r\n }\r\n\r\n .close-btn:hover {\r\n background: var(--af-hover-bg, #f3f4f6);\r\n }\r\n\r\n .nav-drawer-content {\r\n padding: 1rem;\r\n }\r\n\r\n .nav-item {\r\n display: block;\r\n padding: 0.75rem 1rem;\r\n text-decoration: none;\r\n color: var(--af-text, #1f2937);\r\n border-radius: 6px;\r\n margin-bottom: 0.25rem;\r\n transition: background-color 0.2s;\r\n }\r\n\r\n .nav-item:hover {\r\n background-color: var(--af-hover-bg, #f3f4f6);\r\n }\r\n\r\n .nav-item.active {\r\n background-color: var(--af-primary, #10b981);\r\n color: white;\r\n }\r\n </style>\r\n\r\n ${this.overlay ? `<div class=\"nav-drawer-overlay ${this.isOpen ? 'open' : ''}\" part=\"overlay\"></div>` : ''}\r\n\r\n <aside class=\"nav-drawer ${this.isOpen ? 'open' : ''}\" part=\"drawer\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Navigation menu\">\r\n <header class=\"nav-drawer-header\" part=\"header\">\r\n <h2 class=\"nav-drawer-title\" part=\"title\"><slot name=\"title\">Menu</slot></h2>\r\n <button class=\"close-btn\" part=\"close-button\" @click=\"${() => this.close()}\" aria-label=\"Close menu\">✕</button>\r\n </header>\r\n <div class=\"nav-drawer-content\" part=\"content\">\r\n <slot name=\"content\"></slot>\r\n </div>\r\n </aside>\r\n `;\r\n\r\n // Add event listener to overlay if it exists\r\n if (this.overlay) {\r\n const overlay = this.shadowRoot.querySelector('.nav-drawer-overlay');\r\n if (overlay) {\r\n overlay.addEventListener('click', () => this.close());\r\n }\r\n }\r\n }\r\n\r\n // Allow programmatic access to menu items\r\n getItems() {\r\n return this.querySelectorAll('[slot=\"content\"] .nav-item');\r\n }\r\n\r\n setActiveItem(selector) {\r\n const items = this.getItems();\r\n items.forEach(item => item.classList.remove('active'));\r\n const activeItem = this.querySelector(selector);\r\n if (activeItem) {\r\n activeItem.classList.add('active');\r\n }\r\n }\r\n}\r\n\r\n// Register the component\r\nimport { registerComponent } from './base.js';\r\nregisterComponent('af-nav-drawer', AfriNavDrawer);\r\n\r\nexport default AfriNavDrawer;",
48
53
  "/**\r\n * AfriCode Button Component\r\n * \r\n * Versatile button with multiple variants, sizes, and cultural themes.\r\n * Suitable for: E-commerce, Healthcare, Education, Finance, Government\r\n * \r\n * @module components/button\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nexport class AfriButton extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['variant', 'size', 'theme', 'disabled', 'loading', 'icon', 'aria-label'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n const button = this.shadowRoot.querySelector('button');\r\n button?.addEventListener('click', (e) => {\r\n if (this.hasAttribute('disabled') || this.hasAttribute('loading')) {\r\n e.preventDefault();\r\n return;\r\n }\r\n this.emit('af-click', { originalEvent: e });\r\n });\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const variant = this.getAttribute('variant') || 'primary';\r\n const size = this.getAttribute('size') || 'md';\r\n const theme = this.getAttribute('theme') || 'tanzania';\r\n const isDisabled = this.hasAttribute('disabled');\r\n const isLoading = this.hasAttribute('loading');\r\n const icon = this.getAttribute('icon');\r\n const ariaLabel = this.getAttribute('aria-label');\r\n\r\n const themes = {\r\n tanzania: { primary: '#1EB53A', accent: '#FCD116', text: '#FFFFFF' },\r\n maasai: { primary: '#FF0000', accent: '#8B0000', text: '#FFFFFF' },\r\n ndebele: { primary: '#4169E1', accent: '#FFD700', text: '#FFFFFF' },\r\n ocean: { primary: '#00A3DD', accent: '#0077BE', text: '#FFFFFF' }\r\n };\r\n\r\n const t = themes[theme] || themes.tanzania;\r\n\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n button {\r\n font-family: 'Inter', system-ui, sans-serif;\r\n font-weight: 600;\r\n border: none;\r\n border-radius: 5px;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 8px;\r\n transition: all 200ms ease-out;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n /* Sizes */\r\n .size-sm { padding: 5px 13px; font-size: 13px; }\r\n .size-md { padding: 8px 21px; font-size: 15px; }\r\n .size-lg { padding: 13px 34px; font-size: 17px; }\r\n\r\n /* Variants */\r\n .variant-primary {\r\n background: ${t.primary};\r\n color: ${t.text};\r\n }\r\n .variant-primary:hover:not(:disabled) {\r\n filter: brightness(1.1);\r\n transform: translateY(-2px);\r\n box-shadow: 0 4px 12px rgba(0,0,0,0.2);\r\n }\r\n\r\n .variant-secondary {\r\n background: transparent;\r\n color: ${t.primary};\r\n border: 2px solid ${t.primary};\r\n }\r\n .variant-secondary:hover:not(:disabled) {\r\n background: ${t.primary};\r\n color: ${t.text};\r\n }\r\n\r\n .variant-ghost {\r\n background: transparent;\r\n color: ${t.primary};\r\n }\r\n .variant-ghost:hover:not(:disabled) {\r\n background: rgba(0,0,0,0.05);\r\n }\r\n\r\n .variant-gradient {\r\n background: linear-gradient(135deg, ${t.primary} 0%, ${t.accent} 100%);\r\n color: ${t.text};\r\n }\r\n .variant-gradient:hover:not(:disabled) {\r\n transform: translateY(-2px);\r\n box-shadow: 0 6px 20px rgba(0,0,0,0.25);\r\n }\r\n\r\n /* States */\r\n button:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n\r\n button:active:not(:disabled) {\r\n transform: translateY(0);\r\n }\r\n\r\n /* Loading spinner */\r\n .spinner {\r\n width: 16px;\r\n height: 16px;\r\n border: 2px solid transparent;\r\n border-top-color: currentColor;\r\n border-radius: 50%;\r\n animation: spin 0.8s linear infinite;\r\n }\r\n\r\n @keyframes spin {\r\n to { transform: rotate(360deg); }\r\n }\r\n\r\n /* Icon */\r\n .icon {\r\n font-size: 1.1em;\r\n }\r\n </style>\r\n\r\n <button \r\n class=\"variant-${variant} size-${size}\"\r\n ${isDisabled ? 'disabled' : ''}\r\n ${ariaLabel ? `aria-label=\"${ariaLabel}\"` : ''}\r\n ${isLoading ? 'aria-busy=\"true\"' : ''}\r\n >\r\n ${isLoading ? '<span class=\"spinner\"></span>' : ''}\r\n ${icon && !isLoading ? `<span class=\"icon\">${icon}</span>` : ''}\r\n <slot></slot>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-button', AfriButton);\r\nexport default AfriButton;\r\n",
49
54
  "/**\r\n * AfriCode Simple Card Component\r\n * \r\n * Versatile content card for various use cases.\r\n * Suitable for: Product cards, Blog posts, Team members, Stats\r\n * \r\n * @module components/card\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nexport class AfriCard extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['theme', 'variant', 'clickable', 'image'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n if (this.hasAttribute('clickable')) {\r\n this.shadowRoot.querySelector('.card').addEventListener('click', () => {\r\n this.emit('af-click');\r\n });\r\n }\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const theme = this.getAttribute('theme') || 'default';\r\n const variant = this.getAttribute('variant') || 'elevated';\r\n const clickable = this.hasAttribute('clickable');\r\n const image = this.getAttribute('image');\r\n\r\n const themes = {\r\n default: { accent: '#333', border: '#eee' },\r\n tanzania: { accent: '#1EB53A', border: '#1EB53A' },\r\n maasai: { accent: '#FF0000', border: '#8B0000' },\r\n ndebele: { accent: '#4169E1', border: '#4169E1' }\r\n };\r\n const t = themes[theme] || themes.default;\r\n\r\n const variants = {\r\n elevated: 'box-shadow: 0 2px 12px rgba(0,0,0,0.1);',\r\n outlined: `border: 2px solid ${t.border};`,\r\n flat: 'background: #f8f9fa;'\r\n };\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: var(--font-body, 'Inter', sans-serif);\r\n }\r\n\r\n .card {\r\n background: var(--glass-bg, rgba(15, 23, 42, 0.7));\r\n backdrop-filter: blur(var(--glass-blur, 12px));\r\n border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.1));\r\n border-radius: var(--radius-lg, 16px);\r\n overflow: hidden;\r\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n position: relative;\r\n ${clickable ? 'cursor: pointer;' : ''}\r\n }\r\n\r\n .card::before {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n background: radial-gradient(circle at top left, rgba(255,255,255,0.05), transparent);\r\n pointer-events: none;\r\n }\r\n\r\n ${clickable ? `\r\n .card:hover {\r\n transform: translateY(-8px);\r\n border-color: rgba(252, 209, 22, 0.4);\r\n box-shadow: 0 20px 40px rgba(0,0,0,0.4);\r\n }\r\n ` : ''}\r\n\r\n .card-image {\r\n width: 100%;\r\n height: 200px;\r\n object-fit: cover;\r\n border-bottom: 1px solid var(--glass-border);\r\n }\r\n\r\n .card-body {\r\n padding: 32px;\r\n }\r\n\r\n ::slotted(h1), ::slotted(h2), ::slotted(h3), ::slotted(h4) {\r\n margin: 0 0 12px 0;\r\n font-family: 'Outfit', sans-serif;\r\n font-weight: 700;\r\n color: var(--text-primary, #fff);\r\n letter-spacing: -0.02em;\r\n }\r\n\r\n ::slotted(p) {\r\n margin: 0;\r\n color: var(--text-muted, #94a3b8);\r\n line-height: 1.6;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .card-footer {\r\n padding: 20px 32px;\r\n background: rgba(0,0,0,0.2);\r\n border-top: 1px solid var(--glass-border);\r\n }\r\n </style>\r\n\r\n <article class=\"card\">\r\n ${image ? `<img class=\"card-image\" src=\"${image}\" alt=\"\" />` : ''}\r\n <div class=\"card-body\">\r\n <slot></slot>\r\n </div>\r\n ${this.querySelector('[slot=\"footer\"]') ? `\r\n <div class=\"card-footer\">\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n ` : ''}\r\n </article>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-card', AfriCard);\r\nexport default AfriCard;\r\n",
50
55
  "/**\r\n * AfriCode Navigation Bar Component\r\n * \r\n * Responsive navigation with logo, links, and mobile menu.\r\n * Suitable for: All websites and web applications\r\n * \r\n * @module components/navbar\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\nimport { store } from '../core/store.js';\r\nimport { subscribe } from '../core/state.js';\r\n\r\nexport class AfriNavbar extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['theme', 'logo', 'sticky'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._isOpen = false;\r\n this._unsubscribe = null;\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n super.connectedCallback();\r\n\r\n // Mobile toggle\r\n this.shadowRoot.querySelector('.menu-toggle')?.addEventListener('click', () => {\r\n this._isOpen = !this._isOpen;\r\n const navLinks = this.shadowRoot.querySelector('.nav-links');\r\n const toggle = this.shadowRoot.querySelector('.menu-toggle');\r\n if (navLinks) {navLinks.classList.toggle('open', this._isOpen);}\r\n if (toggle) {\r\n toggle.classList.toggle('open', this._isOpen);\r\n toggle.setAttribute('aria-expanded', String(this._isOpen));\r\n }\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n if (this._unsubscribe) {this._unsubscribe();}\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const theme = this.getAttribute('theme') || 'dark';\r\n const logo = this.getAttribute('logo') || 'AfriCode';\r\n const sticky = this.hasAttribute('sticky');\r\n\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: block;\r\n --nav-height: 80px;\r\n }\r\n\r\n nav {\r\n height: var(--nav-height);\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding-inline: 5%;\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(12px);\r\n -webkit-backdrop-filter: blur(12px);\r\n border-bottom: 1px solid var(--glass-border);\r\n position: fixed;\r\n top: 0;\r\n inset-inline: 0;\r\n z-index: 1000;\r\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n }\r\n\r\n .logo-container {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n text-decoration: none;\r\n z-index: 1002;\r\n }\r\n\r\n .logo-mark {\r\n width: 32px;\r\n height: 32px;\r\n background: linear-gradient(135deg, var(--afri-green, #1eb53a), var(--afri-gold, #fcd116));\r\n border-radius: 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: 900;\r\n color: black;\r\n font-size: 1rem;\r\n }\r\n\r\n .logo-text {\r\n font-family: 'Outfit', 'Space Grotesk', sans-serif;\r\n font-size: 1.5rem;\r\n font-weight: 800;\r\n color: var(--text-primary);\r\n letter-spacing: -0.02em;\r\n }\r\n\r\n .nav-links {\r\n display: flex;\r\n gap: 32px;\r\n align-items: center;\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .nav-links ::slotted(a) {\r\n color: var(--text-muted);\r\n text-decoration: none;\r\n font-size: 0.95rem;\r\n font-weight: 500;\r\n transition: all 0.2s ease;\r\n position: relative;\r\n padding: 8px 0;\r\n }\r\n\r\n .nav-links ::slotted(a:hover),\r\n .nav-links ::slotted(a.active) {\r\n color: var(--text-primary);\r\n }\r\n\r\n .nav-links ::slotted(a)::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n width: 0;\r\n height: 2px;\r\n background: var(--afri-gold, #fcd116);\r\n transition: all 0.3s ease;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .nav-links ::slotted(a:hover)::after,\r\n .nav-links ::slotted(a.active)::after {\r\n width: 100%;\r\n }\r\n\r\n /* Mobile Toggle */\r\n .menu-toggle {\r\n display: none;\r\n flex-direction: column;\r\n gap: 6px;\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n z-index: 1002;\r\n padding: 8px;\r\n }\r\n\r\n .menu-toggle span {\r\n width: 24px;\r\n height: 2px;\r\n background: var(--text-primary);\r\n border-radius: 2px;\r\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n }\r\n\r\n /* Mobile State */\r\n .menu-toggle.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }\r\n .menu-toggle.open span:nth-child(2) { opacity: 0; transform: translateX(-10px); }\r\n .menu-toggle.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }\r\n\r\n @media (max-width: 768px) {\r\n .menu-toggle {\r\n display: flex;\r\n }\r\n\r\n .nav-links {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100vh;\r\n background: var(--bg-base, #020617);\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 24px;\r\n opacity: 0;\r\n visibility: hidden;\r\n transform: translateY(-20px);\r\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n z-index: 1001;\r\n }\r\n\r\n .nav-links.open {\r\n opacity: 1;\r\n visibility: visible;\r\n transform: translateY(0);\r\n }\r\n\r\n .nav-links ::slotted(a) {\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n }\r\n }\r\n </style>\r\n\r\n <nav>\r\n <a href=\"/\" class=\"logo-container\">\r\n <div class=\"logo-mark\">A</div>\r\n <span class=\"logo-text\">${logo}</span>\r\n </a>\r\n\r\n <button\r\n class=\"menu-toggle\"\r\n aria-label=\"Toggle menu\"\r\n aria-controls=\"nav-links\"\r\n aria-expanded=\"${this._isOpen}\"\r\n >\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n </button>\r\n\r\n <div id=\"nav-links\" class=\"nav-links ${this._isOpen ? 'open' : ''}\">\r\n <slot></slot>\r\n </div>\r\n </nav>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-navbar', AfriNavbar);\r\nexport default AfriNavbar;\r\n",
@@ -79,16 +84,16 @@
79
84
  "/**\r\n * AfriCode Browser SDK\r\n * Client-side only entry point. Does not include server-only APIs.\r\n * \r\n * Use this for Bun.build({ target: 'browser' })\r\n * Use the full sdk.js for server/SSR contexts\r\n * \r\n * Philosophy: Browser-safe, tree-shakeable, zero server APIs\r\n */\r\n\r\nimport { createReactiveState, subscribe, createSignal, createEffect } from './state.js';\r\nimport { store, actions } from './store.js';\r\nimport patterns from './patterns.js';\r\nimport * as motion from './motion.js';\r\nimport { hydrate } from './hydration.js';\r\nimport { html, Layout } from './html.js';\r\nimport { schemas, Validation, rules, afri, AfriFieldBuilder, normalizeInput, buildSchema } from './validation.js';\r\nimport { createFramework, getConfig } from './config.js';\r\nimport { getRequestIdentity, parseCookieHeader, createSessionId, SESSION_COOKIE_NAME } from './request-identity.js';\r\nimport { sessionStore } from './session-store.js';\r\nimport { actions as runtimeActions } from './actions.js';\r\nimport { MiddlewareManager, loggerMiddleware, authMiddleware } from './middleware.js';\r\nimport {\r\n AfriCodeError, ValidationError, InvalidUrlError,\r\n SecurityError, CsrfError, RateLimitError,\r\n DatabaseError, ComponentError\r\n} from './errors.js';\r\n\r\n// v5.0.0 Browser-safe exports (A2UI protocol)\r\nimport { initA2UI, A2UIRenderer, A2UIProtocol } from './a2ui.js';\r\n\r\nimport { componentMap as coreMap } from '../components/index.js';\r\n\r\n// Utility to initialize the browser framework\r\nexport function init(projectComponentMap = {}) {\r\n if (typeof window !== 'undefined') {\r\n console.log('🌍 AfriCode Browser SDK Initialized');\r\n\r\n // Merge project map with core map\r\n const finalMap = { ...coreMap, ...projectComponentMap };\r\n\r\n if (Object.keys(finalMap).length > 0) {\r\n hydrate(finalMap);\r\n }\r\n }\r\n}\r\n\r\n// Browser-safe grouped exports\r\nexport {\r\n createReactiveState,\r\n subscribe,\r\n createSignal,\r\n createEffect\r\n} from './state.js';\r\n\r\nexport {\r\n store,\r\n actions,\r\n patterns,\r\n motion,\r\n html,\r\n Layout,\r\n schemas,\r\n Validation,\r\n rules,\r\n afri,\r\n AfriFieldBuilder,\r\n normalizeInput,\r\n buildSchema,\r\n createFramework,\r\n getConfig,\r\n getRequestIdentity,\r\n parseCookieHeader,\r\n createSessionId,\r\n SESSION_COOKIE_NAME,\r\n sessionStore,\r\n runtimeActions,\r\n MiddlewareManager,\r\n loggerMiddleware,\r\n authMiddleware,\r\n AfriCodeError,\r\n ValidationError,\r\n InvalidUrlError,\r\n SecurityError,\r\n CsrfError,\r\n RateLimitError,\r\n DatabaseError,\r\n ComponentError\r\n};\r\n\r\n// Browser-only exports (A2UI for AI-safe rendering)\r\nexport {\r\n initA2UI,\r\n A2UIRenderer,\r\n A2UIProtocol\r\n};\r\n\r\n// Default Export (Browser-safe)\r\nexport default {\r\n createReactiveState,\r\n subscribe,\r\n createSignal,\r\n createEffect,\r\n store,\r\n actions,\r\n patterns,\r\n motion,\r\n html,\r\n Layout,\r\n schemas,\r\n Validation,\r\n rules,\r\n afri,\r\n AfriFieldBuilder,\r\n normalizeInput,\r\n buildSchema,\r\n createFramework,\r\n getConfig,\r\n getRequestIdentity,\r\n parseCookieHeader,\r\n createSessionId,\r\n SESSION_COOKIE_NAME,\r\n sessionStore,\r\n runtimeActions,\r\n MiddlewareManager,\r\n loggerMiddleware,\r\n authMiddleware,\r\n AfriCodeError,\r\n ValidationError,\r\n InvalidUrlError,\r\n SecurityError,\r\n CsrfError,\r\n RateLimitError,\r\n DatabaseError,\r\n ComponentError,\r\n initA2UI,\r\n A2UIRenderer,\r\n A2UIProtocol,\r\n init\r\n};\r\n",
80
85
  "/**\r\n * AfriCode Rhythmic Motion Engine\r\n * \r\n * Implements polyrhythmic easing and staggered animations\r\n * inspired by traditional African drumming and musical structures.\r\n * \r\n * Core concepts:\r\n * - \"Call and Response\": Interlocking animations\r\n * - \"Strain and Release\": Custom drum-beat easing\r\n * \r\n * @module core/motion\r\n */\r\n\r\n// Custom cubic-bezier mimicking the tension and release of a drum beat\r\n// Rapid attack, slight hold (tension), and natural release\r\nexport const Easing = {\r\n DrumBeat: 'cubic-bezier(0.1, 0.9, 0.2, 1.0)', // Percussive snap\r\n KoraPluck: 'cubic-bezier(0.34, 1.56, 0.64, 1)', // Elastic bounce\r\n RiverFlow: 'cubic-bezier(0.4, 0.0, 0.2, 1)', // Smooth continuous\r\n};\r\n\r\n/**\r\n * Animate elements with a \"Call and Response\" staggered effect\r\n * \r\n * @param {string|NodeList|Array} selector - Elements to animate\r\n * @param {Object} options - Animation configuration\r\n */\r\nexport function animateStaggered(selector, {\r\n delay = 50, // ms between items (polyrhythmic tick)\r\n duration = 600,\r\n easing = Easing.DrumBeat,\r\n y = 20, // Slide up distance\r\n scale = 0.95\r\n} = {}) {\r\n const elements = typeof selector === 'string'\r\n ? document.querySelectorAll(selector)\r\n : selector;\r\n\r\n if (!elements || elements.length === 0) {return;}\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach((entry, index) => {\r\n if (entry.isIntersecting) {\r\n // Calculate staggered delay based on 12/8 time signature feel\r\n // We use a slight fluctuation to mimic human timing imperfections (groove)\r\n const groove = Math.random() * 10;\r\n const stagger = (index * delay) + groove;\r\n\r\n const el = entry.target;\r\n\r\n // Use Web Animations API for performance\r\n el.animate(\r\n [\r\n { opacity: 0, transform: `translateY(${y}px) scale(${scale})` },\r\n { opacity: 1, transform: 'translateY(0) scale(1)' }\r\n ],\r\n {\r\n duration: duration,\r\n delay: stagger,\r\n easing: easing,\r\n fill: 'forwards'\r\n }\r\n );\r\n\r\n // Stop observing once animated\r\n observer.unobserve(el);\r\n el.style.opacity = '1'; // Ensure final state\r\n }\r\n });\r\n }, { threshold: 0.1 });\r\n\r\n elements.forEach(el => {\r\n el.style.opacity = '0'; // Initial state\r\n observer.observe(el);\r\n });\r\n}\r\n\r\n/**\r\n * Apply \"Vibe\" transition to page navigation\r\n * Mimics a rhythmic \"wipe\" or \"beat\" transition\r\n */\r\nexport function transitionPage(nextPageFn) {\r\n // Simple example of a beat-match transition\r\n document.body.animate(\r\n [\r\n { opacity: 1, transform: 'scale(1)' },\r\n { opacity: 0, transform: 'scale(0.98)' } // \"Strain\" (Inhale)\r\n ],\r\n { duration: 200, easing: 'ease-in' }\r\n ).onfinish = () => {\r\n nextPageFn(); // Change content\r\n document.body.animate(\r\n [\r\n { opacity: 0, transform: 'scale(1.02)' },\r\n { opacity: 1, transform: 'scale(1)' } // \"Release\" (Exhale)\r\n ],\r\n { duration: 400, easing: Easing.DrumBeat }\r\n );\r\n };\r\n}\r\n\r\nexport default {\r\n Easing,\r\n animateStaggered,\r\n transitionPage\r\n};\r\n",
81
86
  "/**\r\n * Islands Architecture Hydration Engine\r\n * \r\n * Efficiently loads component JavaScript only when elements are visible.\r\n * This enables the \"0 KB JS\" baseline for initial views.\r\n * \r\n * @module core/hydration\r\n */\r\n\r\n/**\r\n * Hydrate components based on visibility\r\n * @param {Object} componentMap - Map of tag names to dynamic import functions\r\n */\r\nexport function hydrate(componentMap) {\r\n if (typeof window === 'undefined') {return;}\r\n if (!('IntersectionObserver' in window)) {\r\n // Fallback for ancient browsers: load everything immediately\r\n Object.values(componentMap).forEach(load => load());\r\n return;\r\n }\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n const tag = entry.target.tagName.toLowerCase();\r\n const load = componentMap[tag];\r\n\r\n if (load) {\r\n console.log(`🏝️ Hydrating Island: <${tag}>`);\r\n load().then(() => {\r\n // Optimally, we could stop observing *all* of this tag type since definition is global\r\n // But for simplicity, we just unobserve this one.\r\n // The custom element upgrade happens automatically.\r\n\r\n // Remove from map to prevent double-loading attempts (though imports are cached)\r\n delete componentMap[tag];\r\n }).catch(err => console.error(`Failed to hydrate <${tag}>`, err));\r\n }\r\n\r\n // Stop observing this element regardless\r\n observer.unobserve(entry.target);\r\n }\r\n });\r\n }, { rootMargin: '50px 0px' }); // Pre-load 50px before view\r\n\r\n // Observe all registered tags locally\r\n Object.keys(componentMap).forEach(tag => {\r\n document.querySelectorAll(tag).forEach(el => observer.observe(el));\r\n });\r\n\r\n // TODO: Add MutationObserver for dynamically added nodes if needed\r\n}\r\n",
82
- "/**\r\n * Request identity resolver for AfriCode sessions.\r\n *\r\n * @module core/request-identity\r\n */\r\n\r\nconst SESSION_COOKIE_NAME = 'afri_session';\r\nconst UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\r\nexport function parseCookieHeader(cookieHeader = '') {\r\n return cookieHeader\r\n .split(';')\r\n .map((part) => part.trim())\r\n .filter(Boolean)\r\n .reduce((cookies, part) => {\r\n const separatorIndex = part.indexOf('=');\r\n if (separatorIndex === -1) {\r\n return cookies;\r\n }\r\n\r\n const key = part.slice(0, separatorIndex).trim();\r\n const value = part.slice(separatorIndex + 1).trim();\r\n cookies[key] = value;\r\n return cookies;\r\n }, {});\r\n}\r\n\r\nexport function createSessionId() {\r\n return crypto.randomUUID();\r\n}\r\n\r\nexport function getRequestIdentity(req) {\r\n const cookieHeader = req?.headers?.get?.('cookie') || '';\r\n const cookies = parseCookieHeader(cookieHeader);\r\n const sessionId = cookies[SESSION_COOKIE_NAME];\r\n\r\n if (sessionId && UUID_PATTERN.test(sessionId)) {\r\n return sessionId;\r\n }\r\n\r\n return createSessionId();\r\n}\r\n\r\nexport { SESSION_COOKIE_NAME };\r\n",
87
+ "/**\r\n * AfriCode Request Identity Utilities\r\n * \r\n * Core utilities for handling request identity, cookies, and session management\r\n * that are referenced by the SDK\r\n * \r\n * @module core/request-identity\r\n */\r\n\r\n/**\r\n * Parse cookie header into key-value pairs\r\n * @param {string} cookieHeader - The Cookie header value\r\n * @returns {Object} Parsed cookies as key-value pairs\r\n */\r\nexport function parseCookieHeader(cookieHeader) {\r\n if (!cookieHeader) return {};\r\n \r\n const cookies = {};\r\n cookieHeader.split(';').forEach(cookie => {\r\n const [name, value] = cookie.trim().split('=');\r\n if (name && value) {\r\n cookies[decodeURIComponent(name)] = decodeURIComponent(value);\r\n }\r\n });\r\n \r\n return cookies;\r\n}\r\n\r\n/**\r\n * Create a secure session ID\r\n * @returns {string} A cryptographically secure session ID\r\n */\r\nexport function createSessionId() {\r\n // Use crypto.randomUUID() for secure UUID generation\r\n return crypto.randomUUID();\r\n}\r\n\r\n/**\r\n * Get request identity (session ID from cookies)\r\n * @param {Request} request - The incoming request\r\n * @returns {string|null} Session ID from cookie\r\n */\r\nexport function getRequestIdentity(request) {\r\n const headers = request.headers || {};\r\n const cookieHeader = headers.get('cookie');\r\n const cookies = parseCookieHeader(cookieHeader);\r\n return cookies[SESSION_COOKIE_NAME] || null;\r\n}\r\n\r\n/**\r\n * Get full request identity information\r\n * @param {Request} request - The incoming request\r\n * @returns {Object} Detailed request identity information\r\n */\r\nexport function getFullRequestIdentity(request) {\r\n const headers = request.headers || {};\r\n const userAgent = headers.get('user-agent') || '';\r\n const forwardedFor = headers.get('x-forwarded-for');\r\n const realIp = headers.get('x-real-ip') || headers.get('x-client-ip');\r\n const cfConnectingIp = headers.get('cf-connecting-ip');\r\n const xClusterClientIp = headers.get('x-cluster-client-ip');\r\n \r\n let ip = realIp || forwardedFor?.split(',')[0] || cfConnectingIp || xClusterClientIp;\r\n if (!ip) {\r\n ip = request.connection?.remoteAddress || request.socket?.remoteAddress;\r\n }\r\n if (!ip) ip = '127.0.0.1';\r\n if (ip.startsWith('::ffff:')) {\r\n ip = ip.substring(7);\r\n }\r\n \r\n return {\r\n ip,\r\n userAgent,\r\n sessionId: parseCookieHeader(headers.get('cookie'))[SESSION_COOKIE_NAME] || null,\r\n timestamp: new Date().toISOString(),\r\n method: request.method || 'GET',\r\n url: request.url || '',\r\n referer: headers.get('referer') || headers.get('referrer') || '',\r\n language: headers.get('accept-language') || ''\r\n };\r\n}\r\n\r\n/**\r\n * Constant for session cookie name\r\n */\r\nexport const SESSION_COOKIE_NAME = 'session_id';\r\n\r\nexport default {\r\n parseCookieHeader,\r\n createSessionId,\r\n getRequestIdentity,\r\n SESSION_COOKIE_NAME\r\n};",
83
88
  "/**\r\n * Server-side session state store for AfriCode.\r\n *\r\n * @module core/session-store\r\n */\r\n\r\nclass SessionStore {\r\n constructor() {\r\n this.sessions = new Map();\r\n }\r\n\r\n ensure(sessionId) {\r\n if (!this.sessions.has(sessionId)) {\r\n this.sessions.set(sessionId, {\r\n data: {\r\n counter: { value: 0 }\r\n },\r\n meta: {\r\n createdAt: new Date(),\r\n lastSeenAt: new Date()\r\n }\r\n });\r\n }\r\n\r\n return this.sessions.get(sessionId);\r\n }\r\n\r\n touch(sessionId) {\r\n const session = this.ensure(sessionId);\r\n session.meta.lastSeenAt = new Date();\r\n return session;\r\n }\r\n\r\n has(sessionId) {\r\n return this.sessions.has(sessionId);\r\n }\r\n\r\n get(sessionId) {\r\n return this.touch(sessionId).data;\r\n }\r\n\r\n set(sessionId, path, value) {\r\n const session = this.get(sessionId);\r\n const keys = path.split('/');\r\n let obj = session;\r\n\r\n while (keys.length > 1) {\r\n const key = keys.shift();\r\n if (!obj[key] || typeof obj[key] !== 'object') {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n\r\n obj[keys[0]] = value;\r\n return value;\r\n }\r\n\r\n delete(sessionId) {\r\n return this.sessions.delete(sessionId);\r\n }\r\n\r\n clear() {\r\n this.sessions.clear();\r\n }\r\n}\r\n\r\nexport const sessionStore = new SessionStore();\r\n",
84
89
  "/**\r\n * Session-aware action helpers for AfriCode.\r\n *\r\n * @module core/actions\r\n */\r\n\r\nimport { sessionStore } from './session-store.js';\r\n\r\nexport const actions = {\r\n incrementCounter(sessionId) {\r\n const session = sessionStore.get(sessionId);\r\n const current = session.counter?.value || 0;\r\n const nextValue = current + 1;\r\n sessionStore.set(sessionId, 'counter/value', nextValue);\r\n return nextValue;\r\n },\r\n\r\n resetCounter(sessionId) {\r\n sessionStore.set(sessionId, 'counter/value', 0);\r\n return 0;\r\n },\r\n\r\n getCounter(sessionId) {\r\n const session = sessionStore.get(sessionId);\r\n return session.counter?.value || 0;\r\n }\r\n};\r\n",
85
- "/**\r\n * AfriCode Middleware System\r\n * Core request interception pipeline\r\n *\r\n * @module core/middleware\r\n */\r\n\r\nimport { frameworkLog } from './logging.js';\r\n\r\nexport class MiddlewareManager {\r\n constructor() {\r\n this.middlewares = [];\r\n }\r\n\r\n use(fn) {\r\n if (typeof fn !== 'function') {\r\n throw new Error('Middleware must be a function');\r\n }\r\n\r\n this.middlewares.push(fn);\r\n return this;\r\n }\r\n\r\n async run(context) {\r\n for (const mw of this.middlewares) {\r\n const result = await mw(context);\r\n\r\n if (result instanceof Response) {\r\n return result;\r\n }\r\n\r\n // middleware can short-circuit request\r\n if (result?.response) {\r\n return result.response;\r\n }\r\n\r\n // allow mutation of context\r\n if (result?.context) {\r\n Object.assign(context, result.context);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Logging middleware - logs all requests\r\n */\r\nexport function loggerMiddleware() {\r\n return async (ctx) => {\r\n frameworkLog('log', `[AfriCode] ${ctx.req.method} ${ctx.pathname}`);\r\n return {};\r\n };\r\n}\r\n\r\n/**\r\n * Opt-in auth guard middleware for protected routes.\r\n */\r\nexport function authMiddleware(options = {}) {\r\n return async (ctx) => {\r\n const {\r\n protectedPaths = [],\r\n authorize = () => false,\r\n unauthorizedResponse = () => new Response('Unauthorized', { status: 401 })\r\n } = options;\r\n\r\n const isProtected = protectedPaths.some((path) => ctx.pathname.startsWith(path));\r\n\r\n if (isProtected) {\r\n const isAllowed = await authorize(ctx);\r\n\r\n if (!isAllowed) {\r\n return {\r\n response: unauthorizedResponse(ctx)\r\n };\r\n }\r\n }\r\n\r\n return {};\r\n };\r\n}\r\n",
86
90
  "/**\r\n * AfriCode Error System\r\n *\r\n * Standardized error hierarchy for the entire framework.\r\n * Every error has: code, message, field (optional), context (optional).\r\n *\r\n * Design:\r\n * - All framework errors extend AfriCodeError\r\n * - Errors carry structured metadata for programmatic handling\r\n * - toJSON() produces a consistent API response format\r\n * - Error codes are namespaced: VALIDATION_*, SECURITY_*, DB_*, etc.\r\n *\r\n * @module core/errors\r\n */\r\n\r\n/**\r\n * Base error class for all AfriCode framework errors.\r\n *\r\n * @example\r\n * throw new AfriCodeError('Something failed', 'GENERIC_ERROR', { detail: '...' });\r\n *\r\n * @example\r\n * // In an API handler:\r\n * try { ... } catch (err) {\r\n * if (err instanceof AfriCodeError) {\r\n * return new Response(JSON.stringify(err.toJSON()), { status: err.statusCode });\r\n * }\r\n * }\r\n */\r\nexport class AfriCodeError extends Error {\r\n /**\r\n * @param {string} message - Human-readable error message\r\n * @param {string} code - Machine-readable error code (e.g. 'VALIDATION_FAILED')\r\n * @param {Object} [context={}] - Additional context for debugging\r\n * @param {number} [statusCode=500] - HTTP status code\r\n */\r\n constructor(message, code = 'INTERNAL_ERROR', context = {}, statusCode = 500) {\r\n super(message);\r\n this.name = 'AfriCodeError';\r\n this.code = code;\r\n this.context = context;\r\n this.statusCode = statusCode;\r\n this.timestamp = new Date().toISOString();\r\n }\r\n\r\n /**\r\n * Produce a consistent JSON structure for API responses.\r\n * @returns {Object}\r\n */\r\n toJSON() {\r\n return {\r\n error: {\r\n code: this.code,\r\n message: this.message,\r\n ...(this.context.field ? { field: this.context.field } : {}),\r\n ...(Object.keys(this.context).length > 0 ? { context: this.context } : {})\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Create an HTTP Response from this error.\r\n * @returns {Response}\r\n */\r\n toResponse() {\r\n return new Response(JSON.stringify(this.toJSON()), {\r\n status: this.statusCode,\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Validation error — thrown when input fails schema validation.\r\n *\r\n * @example\r\n * throw new ValidationError(\"Field 'avatar_url' must be a valid URL or null\", 'avatar_url');\r\n */\r\nexport class ValidationError extends AfriCodeError {\r\n /**\r\n * @param {string} message\r\n * @param {string} [field] - The field that failed validation\r\n * @param {Object} [context={}]\r\n */\r\n constructor(message, field = null, context = {}) {\r\n super(message, 'VALIDATION_FAILED', { field, ...context }, 422);\r\n this.name = 'ValidationError';\r\n }\r\n\r\n /**\r\n * Create a ValidationError from a Zod error.\r\n * @param {import('zod').ZodError} zodError\r\n * @returns {ValidationError}\r\n */\r\n static fromZodError(zodError) {\r\n const firstIssue = zodError.issues[0];\r\n const field = firstIssue?.path?.join('.') || null;\r\n const message = firstIssue?.message || 'Validation failed';\r\n\r\n return new ValidationError(message, field, {\r\n issues: zodError.issues.map(issue => ({\r\n field: issue.path.join('.'),\r\n message: issue.message,\r\n code: issue.code\r\n }))\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Invalid URL error — specific subtype of validation error for URL fields.\r\n *\r\n * @example\r\n * throw new InvalidUrlError('avatar_url', '');\r\n * // → { error: { code: \"INVALID_URL\", message: \"Field 'avatar_url' ...\", field: \"avatar_url\" } }\r\n */\r\nexport class InvalidUrlError extends AfriCodeError {\r\n /**\r\n * @param {string} field - The URL field name\r\n * @param {*} value - The invalid value that was provided\r\n */\r\n constructor(field, value) {\r\n const valueDesc = value === '' ? 'an empty string' : `\"${value}\"`;\r\n super(\r\n `Field '${field}' must be a valid URL or null. Got ${valueDesc}.`,\r\n 'INVALID_URL',\r\n { field, received: value },\r\n 422\r\n );\r\n this.name = 'InvalidUrlError';\r\n }\r\n}\r\n\r\n/**\r\n * Security error — thrown for CSRF violations, rate limiting, etc.\r\n */\r\nexport class SecurityError extends AfriCodeError {\r\n /**\r\n * @param {string} message\r\n * @param {string} [code='SECURITY_VIOLATION']\r\n * @param {Object} [context={}]\r\n * @param {number} [statusCode=403]\r\n */\r\n constructor(message, code = 'SECURITY_VIOLATION', context = {}, statusCode = 403) {\r\n super(message, code, context, statusCode);\r\n this.name = 'SecurityError';\r\n }\r\n}\r\n\r\n/**\r\n * CSRF error — thrown when CSRF token is missing or mismatched.\r\n */\r\nexport class CsrfError extends SecurityError {\r\n constructor(reason = 'missing') {\r\n const messages = {\r\n missing: 'CSRF token missing. Include the token in both the cookie and the X-CSRF-Token header.',\r\n mismatch: 'CSRF token mismatch. The header token does not match the cookie token.'\r\n };\r\n super(messages[reason] || messages.missing, 'CSRF_FAILURE', { reason });\r\n this.name = 'CsrfError';\r\n }\r\n}\r\n\r\n/**\r\n * Rate limit error — thrown when request limit is exceeded.\r\n */\r\nexport class RateLimitError extends SecurityError {\r\n /**\r\n * @param {number} retryAfter - Seconds until the client can retry\r\n * @param {string} [message]\r\n */\r\n constructor(retryAfter, message = 'Too many requests. Please try again later.') {\r\n super(message, 'RATE_LIMIT_EXCEEDED', { retryAfter }, 429);\r\n this.name = 'RateLimitError';\r\n }\r\n}\r\n\r\n/**\r\n * Database error — thrown for DB operation failures.\r\n */\r\nexport class DatabaseError extends AfriCodeError {\r\n /**\r\n * @param {string} message\r\n * @param {string} [operation] - The operation that failed (e.g. 'INSERT', 'UPDATE')\r\n * @param {Object} [context={}]\r\n */\r\n constructor(message, operation = null, context = {}) {\r\n super(message, 'DATABASE_ERROR', { operation, ...context }, 500);\r\n this.name = 'DatabaseError';\r\n }\r\n}\r\n\r\n/**\r\n * Component error — thrown for Web Component failures.\r\n */\r\nexport class ComponentError extends AfriCodeError {\r\n /**\r\n * @param {string} message\r\n * @param {string} componentName - The component tag name (e.g. 'af-button')\r\n * @param {Object} [context={}]\r\n */\r\n constructor(message, componentName, context = {}) {\r\n super(\r\n `Component Error in <${componentName}>: ${message}`,\r\n 'COMPONENT_ERROR',\r\n { componentName, ...context },\r\n 500\r\n );\r\n this.name = 'ComponentError';\r\n }\r\n}\r\n\r\nexport default {\r\n AfriCodeError,\r\n ValidationError,\r\n InvalidUrlError,\r\n SecurityError,\r\n CsrfError,\r\n RateLimitError,\r\n DatabaseError,\r\n ComponentError\r\n};\r\n",
87
- "/**\r\n * Component Registry (Islands Map)\r\n * \r\n * All AfriCode components, including the native UI kit (`af-ui-*`),\r\n * dashboard widgets (`af-dashboard-*`), and website/system helpers,\r\n * ship together from the same @africode/core package.\r\n * This keeps theme, styles, registry, and versioning unified.\r\n *\r\n * Instead of statically importing all components (monolithic bundle),\r\n * we export a map for lazy hydration.\r\n */\r\n\r\nexport { AfriCodeComponent } from './base.js';\r\nexport { AfriErrorBoundary } from './error-boundary.js';\r\n\r\n// UI Kit Components\r\nexport { AfriUIButton } from './ui-button.js';\r\nexport { AfriUICard } from './ui-card.js';\r\nexport { AfriUIInput } from './ui-input.js';\r\nexport { AfriUIBadge } from './ui-badge.js';\r\nexport { AfriUISwitch } from './ui-switch.js';\r\nexport { AfriUISelect } from './ui-select.js';\r\nexport { AfriUITextarea } from './ui-textarea.js';\r\nexport { AfriUIChip } from './ui-chip.js';\r\nexport { AfriUITag } from './ui-tag.js';\r\nexport { AfriUIAvatar } from './ui-avatar.js';\r\nexport { AfriUIProgressRing } from './ui-progress-ring.js';\r\nexport { AfriUITooltip } from './ui-tooltip.js';\r\nexport { AfriUIPopover } from './ui-popover.js';\r\nexport { AfriUITabs } from './ui-tabs.js';\r\nexport { AfriUITable } from './ui-table.js';\r\nexport { AfriUIStat } from './ui-stat.js';\r\nexport { AfriFooter } from './footer.js';\r\nexport { AfriBreadcrumb } from './breadcrumb.js';\r\nexport { AfriFeatureGrid } from './feature-grid.js';\r\nexport { AfriPricingCard } from './pricing-card.js';\r\nexport { AfriTestimonial } from './testimonial.js';\r\nexport { AfriDashboardShell } from './dashboard-shell.js';\r\nexport { AfriDashboardTopbar } from './dashboard-topbar.js';\r\nexport { AfriDashboardCard } from './dashboard-card.js';\r\nexport { AfriDashboardMetric } from './dashboard-metric.js';\r\nexport { AfriDashboardActivityList } from './dashboard-activity-list.js';\r\n\r\n// Map of Tag Name -> Dynamic Import\r\nexport const componentMap = {\r\n // Core UI\r\n 'af-button': () => import('./button.js'),\r\n 'af-card': () => import('./card.js'),\r\n 'af-navbar': () => import('./navbar.js'),\r\n 'af-input': () => import('./input.js'),\r\n 'af-alert': () => import('./alert.js'),\r\n 'af-grid': () => import('./grid.js'),\r\n 'af-section': () => import('./section.js'),\r\n 'af-icon': () => import('./icon.js'),\r\n\r\n // AfriCode UI Kit\r\n 'af-ui-button': () => import('./ui-button.js'),\r\n 'af-ui-card': () => import('./ui-card.js'),\r\n 'af-ui-input': () => import('./ui-input.js'),\r\n 'af-ui-badge': () => import('./ui-badge.js'),\r\n 'af-ui-switch': () => import('./ui-switch.js'),\r\n 'af-ui-select': () => import('./ui-select.js'),\r\n 'af-ui-textarea': () => import('./ui-textarea.js'),\r\n 'af-ui-chip': () => import('./ui-chip.js'),\r\n 'af-ui-tag': () => import('./ui-tag.js'),\r\n 'af-ui-avatar': () => import('./ui-avatar.js'),\r\n 'af-ui-progress-ring': () => import('./ui-progress-ring.js'),\r\n 'af-ui-tooltip': () => import('./ui-tooltip.js'),\r\n 'af-ui-popover': () => import('./ui-popover.js'),\r\n 'af-ui-tabs': () => import('./ui-tabs.js'),\r\n 'af-ui-table': () => import('./ui-table.js'),\r\n 'af-ui-stat': () => import('./ui-stat.js'),\r\n 'af-footer': () => import('./footer.js'),\r\n 'af-breadcrumb': () => import('./breadcrumb.js'),\r\n 'af-feature-grid': () => import('./feature-grid.js'),\r\n 'af-pricing-card': () => import('./pricing-card.js'),\r\n 'af-testimonial': () => import('./testimonial.js'),\r\n 'af-dashboard-shell': () => import('./dashboard-shell.js'),\r\n 'af-dashboard-topbar': () => import('./dashboard-topbar.js'),\r\n 'af-dashboard-card': () => import('./dashboard-card.js'),\r\n 'af-dashboard-metric': () => import('./dashboard-metric.js'),\r\n 'af-dashboard-activity-list': () => import('./dashboard-activity-list.js'),\r\n\r\n // Enterprise\r\n 'af-accordion': () => import('./accordion.js'),\r\n 'af-hero': () => import('./hero.js'),\r\n 'af-table': () => import('./table.js'),\r\n 'af-modal': () => import('./modal.js'),\r\n 'af-tabs': () => import('./tabs.js'),\r\n 'af-sidebar': () => import('./sidebar.js'),\r\n 'af-dropdown': () => import('./dropdown.js'),\r\n 'af-select': () => import('./select.js'),\r\n 'af-form': () => import('./form.js'),\r\n 'af-tooltip': () => import('./tooltip.js'),\r\n 'af-toast': () => import('./toast.js'),\r\n\r\n // Feedback & Display\r\n 'af-badge': () => import('./badge.js'),\r\n 'af-avatar': () => import('./avatar.js'),\r\n 'af-progress': () => import('./progress.js'),\r\n 'af-loader': () => import('./loader.js'),\r\n 'af-skeleton': () => import('./skeleton.js'),\r\n 'af-divider': () => import('./divider.js'),\r\n\r\n // Cultural\r\n 'af-kanga-card': () => import('./kanga-card.js'),\r\n 'af-cultural-card': () => import('./cultural-card.js'),\r\n 'af-pattern-showcase': () => import('./pattern-showcase.js'),\r\n 'af-language-switcher': () => import('./language-switcher.js'),\r\n\r\n // Auth\r\n 'af-auth': () => import('./auth.js'),\r\n\r\n // Theming\r\n 'af-theme-toggle': () => import('./theme-toggle.js'),\r\n};\r\n\r\nexport default componentMap;\r\n",
91
+ "/**\r\n * AfriCode Middleware System\r\n * Core request interception pipeline\r\n *\r\n * @module core/middleware\r\n */\r\n\r\nimport { frameworkLog } from './logging.js';\r\nimport { AfriCodeError } from './errors.js';\r\n\r\nexport class MiddlewareManager {\r\n constructor() {\r\n this.middlewares = [];\r\n this.isRunning = false;\r\n }\r\n\r\n /**\r\n * Add middleware to the pipeline\r\n * @param {Function} fn - Middleware function\r\n * @param {string} [name] - Optional name for debugging\r\n * @returns {MiddlewareManager}\r\n */\r\n use(fn, name = null) {\r\n if (typeof fn !== 'function') {\r\n throw new AfriCodeError('Middleware must be a function', 'MIDDLEWARE_INVALID', {}, 500);\r\n }\r\n\r\n // Wrap with name and error handling\r\n const wrappedFn = async (context) => {\r\n const startTime = Date.now();\r\n try {\r\n frameworkLog('debug', `[Middleware] Running ${name || 'anonymous'} middleware`);\r\n const result = await fn(context);\r\n \r\n const duration = Date.now() - startTime;\r\n frameworkLog('debug', `[Middleware] ${name || 'anonymous'} completed in ${duration}ms`);\r\n \r\n return result;\r\n } catch (error) {\r\n frameworkLog('error', `[Middleware] Error in ${name || 'anonymous'}: ${error.message}`);\r\n throw new AfriCodeError(`Middleware error in ${name || 'anonymous'}: ${error.message}`, 'MIDDLEWARE_EXECUTION_ERROR', { cause: error }, 500);\r\n }\r\n };\r\n \r\n // Store metadata in a WeakMap to avoid modifying the function object\r\n this.middlewareMeta = this.middlewareMeta || new WeakMap();\r\n this.middlewareMeta.set(wrappedFn, {\r\n original: fn,\r\n name: name || fn.name || 'anonymous'\r\n });\r\n \r\n this.middlewares.push(wrappedFn);\r\n return this;\r\n }\r\n\r\n /**\r\n * Run middleware pipeline\r\n * @param {Object} context - Request context\r\n * @returns {Promise<Response|null>}\r\n */\r\n async run(context) {\r\n if (this.isRunning) {\r\n throw new MiddlewareError('Middleware pipeline is already running');\r\n }\r\n \r\n this.isRunning = true;\r\n \r\n try {\r\n for (const mw of this.middlewares) {\r\n const result = await mw(context);\r\n\r\n if (result instanceof Response) {\r\n return result;\r\n }\r\n\r\n // middleware can short-circuit request\r\n if (result?.response) {\r\n return result.response;\r\n }\r\n\r\n // allow mutation of context\r\n if (result?.context) {\r\n Object.assign(context, result.context);\r\n }\r\n }\r\n\r\n return null;\r\n } finally {\r\n this.isRunning = false;\r\n }\r\n }\r\n \r\n /**\r\n * Get middleware count\r\n * @returns {number}\r\n */\r\n count() {\r\n return this.middlewares.length;\r\n }\r\n \r\n /**\r\n * Clear all middlewares\r\n */\r\n clear() {\r\n this.middlewares = [];\r\n return this;\r\n }\r\n}\r\n\r\n/**\r\n * Logging middleware - logs all requests\r\n */\r\nexport function loggerMiddleware() {\r\n return async (ctx) => {\r\n frameworkLog('log', `[AfriCode] ${ctx.req.method} ${ctx.pathname}`);\r\n return {};\r\n };\r\n}\r\n\r\n/**\r\n * Opt-in auth guard middleware for protected routes.\r\n */\r\nexport function authMiddleware(options = {}) {\r\n return async (ctx) => {\r\n const {\r\n protectedPaths = [],\r\n authorize = () => false,\r\n unauthorizedResponse = () => new Response('Unauthorized', { status: 401 })\r\n } = options;\r\n\r\n const isProtected = protectedPaths.some((path) => ctx.pathname.startsWith(path));\r\n\r\n if (isProtected) {\r\n const isAllowed = await authorize(ctx);\r\n\r\n if (!isAllowed) {\r\n return {\r\n response: unauthorizedResponse(ctx)\r\n };\r\n }\r\n }\r\n\r\n return {};\r\n };\r\n}\r\n",
92
+ "/**\r\n * Component Registry (Islands Map)\r\n * \r\n * All AfriCode components, including the native UI kit (`af-ui-*`),\r\n * dashboard widgets (`af-dashboard-*`), and website/system helpers,\r\n * ship together from the same @africode/core package.\r\n * This keeps theme, styles, registry, and versioning unified.\r\n *\r\n * Instead of statically importing all components (monolithic bundle),\r\n * we export a map for lazy hydration.\r\n */\r\n\r\nexport { AfriCodeComponent } from './base.js';\r\nexport { AfriErrorBoundary } from './error-boundary.js';\r\n\r\n// UI Kit Components\r\nexport { AfriUIButton } from './ui-button.js';\r\nexport { AfriUICard } from './ui-card.js';\r\nexport { AfriUIInput } from './ui-input.js';\r\nexport { AfriUIBadge } from './ui-badge.js';\r\nexport { AfriUISwitch } from './ui-switch.js';\r\nexport { AfriUISelect } from './ui-select.js';\r\nexport { AfriUITextarea } from './ui-textarea.js';\r\nexport { AfriUIChip } from './ui-chip.js';\r\nexport { AfriUITag } from './ui-tag.js';\r\nexport { AfriUIAvatar } from './ui-avatar.js';\r\nexport { AfriUIProgressRing } from './ui-progress-ring.js';\r\nexport { AfriUITooltip } from './ui-tooltip.js';\r\nexport { AfriUIPopover } from './ui-popover.js';\r\nexport { AfriUITabs } from './ui-tabs.js';\r\nexport { AfriUITable } from './ui-table.js';\r\nexport { AfriUIStat } from './ui-stat.js';\r\nexport { AfriFooter } from './footer.js';\r\nexport { AfriBreadcrumb } from './breadcrumb.js';\r\nexport { AfriFeatureGrid } from './feature-grid.js';\r\nexport { AfriPricingCard } from './pricing-card.js';\r\nexport { AfriTestimonial } from './testimonial.js';\r\nexport { AfriDashboardShell } from './dashboard-shell.js';\r\nexport { AfriDashboardTopbar } from './dashboard-topbar.js';\r\nexport { AfriDashboardCard } from './dashboard-card.js';\r\nexport { AfriDashboardMetric } from './dashboard-metric.js';\r\nexport { AfriDashboardActivityList } from './dashboard-activity-list.js';\r\nexport { AfriAuthForm } from './auth-form.js';\r\nexport { AfriKycUpload } from './kyc-upload.js';\r\nexport { AfriWalletBalance } from './wallet-balance.js';\r\nexport { AfriTransactionLedger } from './transaction-ledger.js';\r\nexport { AfriNavDrawer } from './nav-drawer.js';\r\n\r\n// Map of Tag Name -> Dynamic Import\r\nexport const componentMap = {\r\n // Core UI\r\n 'af-button': () => import('./button.js'),\r\n 'af-card': () => import('./card.js'),\r\n 'af-navbar': () => import('./navbar.js'),\r\n 'af-input': () => import('./input.js'),\r\n 'af-alert': () => import('./alert.js'),\r\n 'af-grid': () => import('./grid.js'),\r\n 'af-section': () => import('./section.js'),\r\n 'af-icon': () => import('./icon.js'),\r\n\r\n // AfriCode UI Kit\r\n 'af-ui-button': () => import('./ui-button.js'),\r\n 'af-ui-card': () => import('./ui-card.js'),\r\n 'af-ui-input': () => import('./ui-input.js'),\r\n 'af-ui-badge': () => import('./ui-badge.js'),\r\n 'af-ui-switch': () => import('./ui-switch.js'),\r\n 'af-ui-select': () => import('./ui-select.js'),\r\n 'af-ui-textarea': () => import('./ui-textarea.js'),\r\n 'af-ui-chip': () => import('./ui-chip.js'),\r\n 'af-ui-tag': () => import('./ui-tag.js'),\r\n 'af-ui-avatar': () => import('./ui-avatar.js'),\r\n 'af-ui-progress-ring': () => import('./ui-progress-ring.js'),\r\n 'af-ui-tooltip': () => import('./ui-tooltip.js'),\r\n 'af-ui-popover': () => import('./ui-popover.js'),\r\n 'af-ui-tabs': () => import('./ui-tabs.js'),\r\n 'af-ui-table': () => import('./ui-table.js'),\r\n 'af-ui-stat': () => import('./ui-stat.js'),\r\n 'af-footer': () => import('./footer.js'),\r\n 'af-breadcrumb': () => import('./breadcrumb.js'),\r\n 'af-feature-grid': () => import('./feature-grid.js'),\r\n 'af-pricing-card': () => import('./pricing-card.js'),\r\n 'af-testimonial': () => import('./testimonial.js'),\r\n 'af-dashboard-shell': () => import('./dashboard-shell.js'),\r\n 'af-dashboard-topbar': () => import('./dashboard-topbar.js'),\r\n 'af-dashboard-card': () => import('./dashboard-card.js'),\r\n 'af-dashboard-metric': () => import('./dashboard-metric.js'),\r\n 'af-dashboard-activity-list': () => import('./dashboard-activity-list.js'),\r\n\r\n // Enterprise\r\n 'af-accordion': () => import('./accordion.js'),\r\n 'af-hero': () => import('./hero.js'),\r\n 'af-table': () => import('./table.js'),\r\n 'af-modal': () => import('./modal.js'),\r\n 'af-tabs': () => import('./tabs.js'),\r\n 'af-sidebar': () => import('./sidebar.js'),\r\n 'af-dropdown': () => import('./dropdown.js'),\r\n 'af-select': () => import('./select.js'),\r\n 'af-form': () => import('./form.js'),\r\n 'af-tooltip': () => import('./tooltip.js'),\r\n 'af-toast': () => import('./toast.js'),\r\n\r\n // Feedback & Display\r\n 'af-badge': () => import('./badge.js'),\r\n 'af-avatar': () => import('./avatar.js'),\r\n 'af-progress': () => import('./progress.js'),\r\n 'af-loader': () => import('./loader.js'),\r\n 'af-skeleton': () => import('./skeleton.js'),\r\n 'af-divider': () => import('./divider.js'),\r\n\r\n // Cultural\r\n 'af-kanga-card': () => import('./kanga-card.js'),\r\n 'af-cultural-card': () => import('./cultural-card.js'),\r\n 'af-pattern-showcase': () => import('./pattern-showcase.js'),\r\n 'af-language-switcher': () => import('./language-switcher.js'),\r\n\r\n // Auth\r\n 'af-auth': () => import('./auth.js'),\r\n 'af-auth-form': () => import('./auth-form.js'),\r\n 'af-kyc-upload': () => import('./kyc-upload.js'),\r\n 'af-wallet-balance': () => import('./wallet-balance.js'),\r\n 'af-transaction-ledger': () => import('./transaction-ledger.js'),\r\n 'af-nav-drawer': () => import('./nav-drawer.js'),\r\n\r\n // Theming\r\n 'af-theme-toggle': () => import('./theme-toggle.js'),\r\n};\r\n\r\nexport default componentMap;\r\n",
88
93
  "import { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\n/**\r\n * AfriCode Error Boundary Component\r\n * \r\n * Native Web Component implementation of an error boundary.\r\n * Listens for 'af-component-error' events bubbling up from children.\r\n * Gracefully displays a localized fallback UI.\r\n * \r\n * @module components/error-boundary\r\n */\r\nexport class AfriErrorBoundary extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['theme', 'fallback-message'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._hasError = false;\r\n this._errorDetail = null;\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n // Listen for internal errors bubbling up from custom AfriCode children\r\n this.addEventListener('af-component-error', this._handleError.bind(this));\r\n }\r\n\r\n disconnectedCallback() {\r\n this.removeEventListener('af-component-error', this._handleError.bind(this));\r\n }\r\n\r\n _handleError(e) {\r\n // Prevent it from bubbling further up and crashing higher boundaries\r\n e.stopPropagation();\r\n \r\n this._hasError = true;\r\n this._errorDetail = e.detail;\r\n \r\n console.warn('[AfriCode Boundary] Caught error:', this._errorDetail);\r\n this.render();\r\n }\r\n\r\n reset() {\r\n this._hasError = false;\r\n this._errorDetail = null;\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const theme = this.getAttribute('theme') || 'tanzania';\r\n const fallbackMessage = this.getAttribute('fallback-message') || 'A part of this page failed to load.';\r\n\r\n // Use appropriate semantic warning colors depending on culture theme\r\n const themes = {\r\n tanzania: { bg: '#FFF9E6', border: '#FCD116', text: '#5A4A00' },\r\n maasai: { bg: '#FFEEEE', border: '#FF0000', text: '#8B0000' },\r\n ndebele: { bg: '#EBF0FF', border: '#4169E1', text: '#002B5C' },\r\n ocean: { bg: '#E6FAFF', border: '#00A3DD', text: '#004A66' }\r\n };\r\n\r\n const t = themes[theme] || themes.tanzania;\r\n\r\n if (this._hasError) {\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host { display: block; width: 100%; font-family: 'Inter', system-ui, sans-serif; }\r\n .boundary-error {\r\n background: ${t.bg};\r\n border-left: 4px solid ${t.border};\r\n color: ${t.text};\r\n padding: 16px 20px;\r\n border-radius: 4px;\r\n margin: 12px 0;\r\n box-shadow: 0 2px 8px rgba(0,0,0,0.05);\r\n }\r\n .boundary-header {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n font-weight: 600;\r\n margin-bottom: 8px;\r\n font-size: 16px;\r\n }\r\n .boundary-message {\r\n font-size: 14px;\r\n opacity: 0.9;\r\n margin-bottom: 12px;\r\n }\r\n .boundary-dev-detail {\r\n font-family: monospace;\r\n font-size: 12px;\r\n background: rgba(0,0,0,0.05);\r\n padding: 8px;\r\n border-radius: 4px;\r\n overflow-x: auto;\r\n white-space: pre-wrap;\r\n }\r\n .boundary-action {\r\n margin-top: 12px;\r\n }\r\n button {\r\n background: transparent;\r\n border: 1px solid ${t.border};\r\n color: ${t.text};\r\n padding: 6px 12px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n font-weight: 500;\r\n transition: background 0.2s;\r\n }\r\n button:hover {\r\n background: rgba(0,0,0,0.05);\r\n }\r\n </style>\r\n <div class=\"boundary-error\" role=\"alert\">\r\n <div class=\"boundary-header\">\r\n <span aria-hidden=\"true\">🔄</span>\r\n <span>Component Recovery</span>\r\n </div>\r\n <div class=\"boundary-message\">${fallbackMessage}</div>\r\n \r\n ${this._errorDetail ? `\r\n <div class=\"boundary-dev-detail\">\r\n <code>&lt;${this._errorDetail.component}&gt;: ${this._errorDetail.message}</code>\r\n </div>\r\n ` : ''}\r\n\r\n <div class=\"boundary-action\">\r\n <button id=\"retry-btn\">Try Again</button>\r\n </div>\r\n </div>\r\n `;\r\n \r\n // Re-bind retry logic\r\n this.shadowRoot.getElementById('retry-btn').addEventListener('click', () => {\r\n this.reset();\r\n });\r\n return;\r\n }\r\n\r\n // If no error, just passthrough the light DOM via slots\r\n this.shadowRoot.innerHTML = `\r\n <style>:host { display: block; }</style>\r\n <slot></slot>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-error-boundary', AfriErrorBoundary);\r\nexport default AfriErrorBoundary;\r\n",
89
- "/**\r\n * A2UI Protocol Implementation\r\n * Agent-to-User Interface declarative protocol for generative AI\r\n *\r\n * Enables AI agents to return UI widgets as part of responses without\r\n * executing arbitrary code, ensuring security and consistency.\r\n *\r\n * @module core/a2ui\r\n */\r\n\r\nimport { componentMap as coreComponentMap } from '../components/index.js';\r\n\r\n/**\r\n * A2UI Message Types\r\n */\r\nexport const A2UI_TYPES = {\r\n COMPONENT: 'component',\r\n FORM: 'form',\r\n LIST: 'list',\r\n CARD: 'card',\r\n MODAL: 'modal',\r\n TOAST: 'toast',\r\n PROGRESS: 'progress'\r\n};\r\n\r\n/**\r\n * A2UI Component Schemas\r\n */\r\nexport const A2UI_SCHEMAS = {\r\n component: {\r\n type: 'object',\r\n properties: {\r\n id: { type: 'string' },\r\n type: { type: 'string', enum: Object.values(A2UI_TYPES) },\r\n props: { type: 'object' },\r\n children: { type: 'array', items: { $ref: '#' } }\r\n },\r\n required: ['id', 'type']\r\n }\r\n};\r\n\r\nfunction escapeHtml(value) {\r\n return String(value)\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#039;');\r\n}\r\n\r\nfunction renderNode(node) {\r\n if (Array.isArray(node)) {\r\n return node.map(renderNode).join('');\r\n }\r\n\r\n if (node === null || node === undefined || node === false) {\r\n return '';\r\n }\r\n\r\n if (typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean') {\r\n return escapeHtml(node);\r\n }\r\n\r\n if (typeof node !== 'object') {\r\n return '';\r\n }\r\n\r\n const tag = node.tag || node.tagName;\r\n if (!tag) {\r\n return '';\r\n }\r\n\r\n const props = node.props || {};\r\n const attributes = Object.entries(props)\r\n .filter(([, value]) => value !== null && value !== undefined && value !== false)\r\n .map(([key, value]) => value === true ? key : `${key}=\"${escapeHtml(value)}\"`)\r\n .join(' ');\r\n\r\n const children = renderNode(node.children ?? node.content ?? '');\r\n return `<${tag}${attributes ? ` ${attributes}` : ''}>${children}</${tag}>`;\r\n}\r\n\r\nfunction isUnsafeHtml(html) {\r\n return /<\\s*script\\b|on\\w+\\s*=|javascript:/i.test(String(html));\r\n}\r\n\r\n/**\r\n * A2UI Renderer\r\n * Renders A2UI messages into actual DOM elements\r\n */\r\nexport class A2UIRenderer {\r\n constructor(rootElement) {\r\n this.root = rootElement;\r\n this.components = new Map();\r\n }\r\n\r\n /**\r\n * Render an A2UI message\r\n * @param {Object} message - A2UI message object\r\n */\r\n render(message) {\r\n if (!message || !message.type) {\r\n throw new Error('Invalid A2UI message');\r\n }\r\n\r\n if (message.html !== undefined) {\r\n if (isUnsafeHtml(message.html)) {\r\n throw new Error('Unsafe HTML is not allowed in A2UI render messages');\r\n }\r\n\r\n throw new Error('Raw HTML payloads are not supported in A2UI render messages');\r\n }\r\n\r\n const output = Array.isArray(message.components)\r\n ? message.components.map(renderNode).join('')\r\n : renderNode(message.component || message);\r\n\r\n if (message.id) {\r\n this.components.set(message.id, {\r\n id: message.id,\r\n type: message.type,\r\n props: message.props || {},\r\n children: message.children || message.components || []\r\n });\r\n }\r\n\r\n const canRenderToDOM = this.root && typeof this.root.appendChild === 'function' && typeof document !== 'undefined';\r\n if (canRenderToDOM && output) {\r\n const container = document.createElement('div');\r\n container.innerHTML = output;\r\n while (container.firstChild) {\r\n this.root.appendChild(container.firstChild);\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n\r\n /**\r\n * Create DOM element from A2UI component\r\n * @param {Object} component - A2UI component definition\r\n */\r\n createElement(component) {\r\n const { type, props = {}, children = [] } = component;\r\n\r\n let element;\r\n\r\n switch (type) {\r\n case A2UI_TYPES.COMPONENT:\r\n element = this.createCustomComponent(props);\r\n break;\r\n case A2UI_TYPES.FORM:\r\n element = this.createForm(props);\r\n break;\r\n case A2UI_TYPES.LIST:\r\n element = this.createList(props);\r\n break;\r\n case A2UI_TYPES.CARD:\r\n element = this.createCard(props);\r\n break;\r\n case A2UI_TYPES.MODAL:\r\n element = this.createModal(props);\r\n break;\r\n case A2UI_TYPES.TOAST:\r\n element = this.createToast(props);\r\n break;\r\n case A2UI_TYPES.PROGRESS:\r\n element = this.createProgress(props);\r\n break;\r\n default:\r\n throw new Error(`Unknown A2UI component type: ${type}`);\r\n }\r\n\r\n // Render children\r\n if (children.length > 0) {\r\n for (const child of children) {\r\n const childElement = this.createElement(child);\r\n element.appendChild(childElement);\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * Create custom AfriCode component\r\n */\r\n createCustomComponent({ tag, ...props }) {\r\n const element = document.createElement(tag || 'div');\r\n Object.assign(element, props);\r\n return element;\r\n }\r\n\r\n /**\r\n * Create form component\r\n */\r\n createForm({ fields = [], onSubmit }) {\r\n const form = document.createElement('af-form');\r\n\r\n for (const field of fields) {\r\n const input = document.createElement('af-input');\r\n input.setAttribute('name', field.name);\r\n input.setAttribute('placeholder', field.placeholder || '');\r\n input.setAttribute('type', field.type || 'text');\r\n form.appendChild(input);\r\n }\r\n\r\n if (onSubmit) {\r\n form.addEventListener('submit', onSubmit);\r\n }\r\n\r\n return form;\r\n }\r\n\r\n /**\r\n * Create list component\r\n */\r\n createList({ items = [] }) {\r\n const list = document.createElement('af-grid');\r\n\r\n for (const item of items) {\r\n const card = this.createCard(item);\r\n list.appendChild(card);\r\n }\r\n\r\n return list;\r\n }\r\n\r\n /**\r\n * Create card component\r\n */\r\n createCard({ title, content, image }) {\r\n const card = document.createElement('af-card');\r\n\r\n if (title) {\r\n const titleEl = document.createElement('h3');\r\n titleEl.textContent = title;\r\n card.appendChild(titleEl);\r\n }\r\n\r\n if (content) {\r\n const contentEl = document.createElement('p');\r\n contentEl.textContent = content;\r\n card.appendChild(contentEl);\r\n }\r\n\r\n if (image) {\r\n const img = document.createElement('img');\r\n img.src = image;\r\n img.alt = title || 'Card image';\r\n card.appendChild(img);\r\n }\r\n\r\n return card;\r\n }\r\n\r\n /**\r\n * Create modal component\r\n */\r\n createModal({ title, content, actions = [] }) {\r\n const modal = document.createElement('af-modal');\r\n modal.setAttribute('open', '');\r\n\r\n if (title) {\r\n const titleEl = document.createElement('h2');\r\n titleEl.slot = 'header';\r\n titleEl.textContent = title;\r\n modal.appendChild(titleEl);\r\n }\r\n\r\n if (content) {\r\n const contentEl = document.createElement('p');\r\n contentEl.textContent = content;\r\n modal.appendChild(contentEl);\r\n }\r\n\r\n const actionsContainer = document.createElement('div');\r\n actionsContainer.slot = 'footer';\r\n\r\n for (const action of actions) {\r\n const button = document.createElement('af-button');\r\n button.textContent = action.label;\r\n if (action.primary) {\r\n button.setAttribute('variant', 'primary');\r\n }\r\n if (action.onClick) {\r\n button.addEventListener('click', action.onClick);\r\n }\r\n actionsContainer.appendChild(button);\r\n }\r\n\r\n modal.appendChild(actionsContainer);\r\n return modal;\r\n }\r\n\r\n /**\r\n * Create toast component\r\n */\r\n createToast({ message, type = 'info', duration = 3000 }) {\r\n const toast = document.createElement('af-toast');\r\n toast.setAttribute('type', type);\r\n toast.textContent = message;\r\n\r\n // Auto-remove after duration\r\n setTimeout(() => {\r\n toast.remove();\r\n }, duration);\r\n\r\n return toast;\r\n }\r\n\r\n /**\r\n * Create progress component\r\n */\r\n createProgress({ value = 0, max = 100, label }) {\r\n const progress = document.createElement('af-progress');\r\n progress.setAttribute('value', value);\r\n progress.setAttribute('max', max);\r\n\r\n if (label) {\r\n progress.setAttribute('label', label);\r\n }\r\n\r\n return progress;\r\n }\r\n\r\n /**\r\n * Update existing component\r\n */\r\n update(id, newProps) {\r\n const element = this.components.get(id);\r\n if (element) {\r\n Object.assign(element, newProps);\r\n }\r\n }\r\n\r\n /**\r\n * Remove component\r\n */\r\n remove(id) {\r\n const element = this.components.get(id);\r\n if (element) {\r\n element.remove();\r\n this.components.delete(id);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A2UI Protocol Handler\r\n * Processes streaming A2UI messages from AI agents\r\n */\r\nexport class A2UIProtocol {\r\n constructor(renderer) {\r\n this.renderer = renderer;\r\n this.messageQueue = [];\r\n this.messageHandlers = [];\r\n this.isProcessing = false;\r\n }\r\n\r\n /**\r\n * Register a message handler callback\r\n * @param {Function} callback - Handler to receive processed messages\r\n */\r\n onMessage(callback) {\r\n if (typeof callback === 'function') {\r\n this.messageHandlers.push(callback);\r\n }\r\n }\r\n\r\n /**\r\n * Send a message into the A2UI system\r\n * @param {Object|string} message - A2UI message\r\n */\r\n sendMessage(message) {\r\n return this.processMessage(message);\r\n }\r\n\r\n /**\r\n * Process incoming A2UI message\r\n * @param {Object|string} message - A2UI message\r\n */\r\n processMessage(message) {\r\n if (typeof message === 'string') {\r\n try {\r\n message = JSON.parse(message);\r\n } catch {\r\n console.warn('Invalid A2UI message format:', message);\r\n return null;\r\n }\r\n }\r\n\r\n if (message?.type === 'render' && this.renderer) {\r\n return this.renderer.render(message);\r\n }\r\n\r\n for (const handler of this.messageHandlers) {\r\n handler(message);\r\n }\r\n\r\n return message;\r\n }\r\n\r\n /**\r\n * Process queued messages\r\n */\r\n processQueue() {\r\n if (this.isProcessing || this.messageQueue.length === 0) {\r\n return;\r\n }\r\n\r\n this.isProcessing = true;\r\n\r\n while (this.messageQueue.length > 0) {\r\n const message = this.messageQueue.shift();\r\n\r\n try {\r\n this.renderer.render(message);\r\n } catch (error) {\r\n console.error('A2UI render error:', error);\r\n }\r\n }\r\n\r\n this.isProcessing = false;\r\n }\r\n\r\n /**\r\n * Stream handler for real-time AI responses\r\n * @param {ReadableStream} stream - AI response stream\r\n */\r\n async handleStream(stream) {\r\n const reader = stream.getReader();\r\n const decoder = new TextDecoder();\r\n\r\n let buffer = '';\r\n\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n\r\n if (done) {\r\n break;\r\n }\r\n\r\n buffer += decoder.decode(value, { stream: true });\r\n\r\n // Process complete messages\r\n const messages = buffer.split('\\n');\r\n buffer = messages.pop(); // Keep incomplete message in buffer\r\n\r\n for (const message of messages) {\r\n if (message.trim()) {\r\n this.processMessage(message.trim());\r\n }\r\n }\r\n }\r\n\r\n // Process any remaining buffer\r\n if (buffer.trim()) {\r\n this.processMessage(buffer.trim());\r\n }\r\n }\r\n\r\n createStream() {\r\n const subscribers = new Set();\r\n\r\n return {\r\n subscribe(callback) {\r\n if (typeof callback !== 'function') {\r\n return () => {};\r\n }\r\n\r\n subscribers.add(callback);\r\n return () => subscribers.delete(callback);\r\n },\r\n push(message) {\r\n for (const callback of subscribers) {\r\n callback(message);\r\n }\r\n }\r\n };\r\n }\r\n\r\n validateAgainstSchema(component) {\r\n const tag = component?.tag || component?.tagName;\r\n return Promise.resolve(Boolean(tag && coreComponentMap[tag]));\r\n }\r\n}\r\n\r\n/**\r\n * Initialize A2UI system\r\n * @param {HTMLElement} root - Root element for rendering\r\n */\r\nexport function initA2UI(root) {\r\n // Handle server-side rendering (no DOM)\r\n if (typeof document === 'undefined') {\r\n root = null;\r\n } else {\r\n root = root || document.body;\r\n }\r\n\r\n const renderer = new A2UIRenderer(root);\r\n const protocol = new A2UIProtocol(renderer);\r\n\r\n // Make globally available for AI agents\r\n if (typeof window !== 'undefined') {\r\n window.a2ui = {\r\n render: (message) => protocol.processMessage(message),\r\n handleStream: (stream) => protocol.handleStream(stream),\r\n update: (id, props) => renderer.update(id, props),\r\n remove: (id) => renderer.remove(id),\r\n sendMessage: (message) => protocol.sendMessage(message),\r\n onMessage: (callback) => protocol.onMessage(callback),\r\n createStream: () => protocol.createStream(),\r\n validateAgainstSchema: (component) => protocol.validateAgainstSchema(component)\r\n };\r\n }\r\n\r\n return { renderer, protocol };\r\n}\r\n"
94
+ "/**\r\n * A2UI Protocol Implementation\r\n * Agent-to-User Interface declarative protocol for generative AI\r\n *\r\n * Enables AI agents to return UI widgets as part of responses without\r\n * executing arbitrary code, ensuring security and consistency.\r\n *\r\n * @module core/a2ui\r\n */\r\n\r\nimport { componentMap as coreComponentMap } from '../components/index.js';\r\n\r\n/**\r\n * A2UI Message Types\r\n */\r\nexport const A2UI_TYPES = {\r\n COMPONENT: 'component',\r\n FORM: 'form',\r\n LIST: 'list',\r\n CARD: 'card',\r\n MODAL: 'modal',\r\n TOAST: 'toast',\r\n PROGRESS: 'progress',\r\n CHART: 'chart',\r\n DATATABLE: 'datatable',\r\n TABS: 'tabs',\r\n ACCORDION: 'accordion',\r\n STEPPER: 'stepper',\r\n DASHBOARD_WIDGET: 'dashboard-widget'\r\n};\r\n\r\n/**\r\n * A2UI Component Schemas\r\n */\r\nexport const A2UI_SCHEMAS = {\r\n component: {\r\n type: 'object',\r\n properties: {\r\n id: { type: 'string' },\r\n type: { type: 'string', enum: Object.values(A2UI_TYPES) },\r\n props: { type: 'object' },\r\n children: { type: 'array', items: { $ref: '#' } }\r\n },\r\n required: ['id', 'type']\r\n }\r\n};\r\n\r\nfunction escapeHtml(value) {\r\n return String(value)\r\n .replace(/&/g, '&amp;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#039;');\r\n}\r\n\r\nfunction renderNode(node) {\r\n if (Array.isArray(node)) {\r\n return node.map(renderNode).join('');\r\n }\r\n\r\n if (node === null || node === undefined || node === false) {\r\n return '';\r\n }\r\n\r\n if (typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean') {\r\n return escapeHtml(node);\r\n }\r\n\r\n if (typeof node !== 'object') {\r\n return '';\r\n }\r\n\r\n const tag = node.tag || node.tagName;\r\n if (!tag) {\r\n return '';\r\n }\r\n\r\n const props = node.props || {};\r\n const attributes = Object.entries(props)\r\n .filter(([, value]) => value !== null && value !== undefined && value !== false)\r\n .map(([key, value]) => value === true ? key : `${key}=\"${escapeHtml(value)}\"`)\r\n .join(' ');\r\n\r\n const children = renderNode(node.children ?? node.content ?? '');\r\n return `<${tag}${attributes ? ` ${attributes}` : ''}>${children}</${tag}>`;\r\n}\r\n\r\nfunction isUnsafeHtml(html) {\r\n return /<\\s*script\\b|on\\w+\\s*=|javascript:/i.test(String(html));\r\n}\r\n\r\n/**\r\n * A2UI Renderer\r\n * Renders A2UI messages into actual DOM elements\r\n */\r\nexport class A2UIRenderer {\r\n constructor(rootElement) {\r\n this.root = rootElement;\r\n this.components = new Map();\r\n }\r\n\r\n /**\r\n * Render an A2UI message\r\n * @param {Object} message - A2UI message object\r\n */\r\n render(message) {\r\n if (!message || !message.type) {\r\n throw new Error('Invalid A2UI message');\r\n }\r\n\r\n if (message.html !== undefined) {\r\n if (isUnsafeHtml(message.html)) {\r\n throw new Error('Unsafe HTML is not allowed in A2UI render messages');\r\n }\r\n\r\n throw new Error('Raw HTML payloads are not supported in A2UI render messages');\r\n }\r\n\r\n const output = Array.isArray(message.components)\r\n ? message.components.map(renderNode).join('')\r\n : renderNode(message.component || message);\r\n\r\n if (message.id) {\r\n this.components.set(message.id, {\r\n id: message.id,\r\n type: message.type,\r\n props: message.props || {},\r\n children: message.children || message.components || []\r\n });\r\n }\r\n\r\n const canRenderToDOM = this.root && typeof this.root.appendChild === 'function' && typeof document !== 'undefined';\r\n if (canRenderToDOM && output) {\r\n const container = document.createElement('div');\r\n container.innerHTML = output;\r\n while (container.firstChild) {\r\n this.root.appendChild(container.firstChild);\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n\r\n /**\r\n * Create DOM element from A2UI component\r\n * @param {Object} component - A2UI component definition\r\n */\r\n createElement(component) {\r\n const { type, props = {}, children = [] } = component;\r\n\r\n let element;\r\n\r\n switch (type) {\r\n case A2UI_TYPES.COMPONENT:\r\n element = this.createCustomComponent(props);\r\n break;\r\n case A2UI_TYPES.FORM:\r\n element = this.createForm(props);\r\n break;\r\n case A2UI_TYPES.LIST:\r\n element = this.createList(props);\r\n break;\r\n case A2UI_TYPES.CARD:\r\n element = this.createCard(props);\r\n break;\r\n case A2UI_TYPES.MODAL:\r\n element = this.createModal(props);\r\n break;\r\n case A2UI_TYPES.TOAST:\r\n element = this.createToast(props);\r\n break;\r\n case A2UI_TYPES.PROGRESS:\r\n element = this.createProgress(props);\r\n break;\r\n case A2UI_TYPES.CHART:\r\n element = this.createChart(props);\r\n break;\r\n case A2UI_TYPES.DATATABLE:\r\n element = this.createDatatable(props);\r\n break;\r\n case A2UI_TYPES.TABS:\r\n element = this.createTabs(props);\r\n break;\r\n case A2UI_TYPES.ACCORDION:\r\n element = this.createAccordion(props);\r\n break;\r\n case A2UI_TYPES.STEPPER:\r\n element = this.createStepper(props);\r\n break;\r\n case A2UI_TYPES.DASHBOARD_WIDGET:\r\n element = this.createDashboardWidget(props);\r\n break;\r\n default:\r\n throw new Error(`Unknown A2UI component type: ${type}`);\r\n }\r\n\r\n // Render children\r\n if (children.length > 0) {\r\n for (const child of children) {\r\n const childElement = this.createElement(child);\r\n element.appendChild(childElement);\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * Create custom AfriCode component\r\n */\r\n createCustomComponent({ tag, ...props }) {\r\n const element = document.createElement(tag || 'div');\r\n Object.assign(element, props);\r\n return element;\r\n }\r\n\r\n /**\r\n * Create form component\r\n */\r\n createForm({ fields = [], onSubmit }) {\r\n const form = document.createElement('af-form');\r\n\r\n for (const field of fields) {\r\n const input = document.createElement('af-input');\r\n input.setAttribute('name', field.name);\r\n input.setAttribute('placeholder', field.placeholder || '');\r\n input.setAttribute('type', field.type || 'text');\r\n form.appendChild(input);\r\n }\r\n\r\n if (onSubmit) {\r\n form.addEventListener('submit', onSubmit);\r\n }\r\n\r\n return form;\r\n }\r\n\r\n /**\r\n * Create list component\r\n */\r\n createList({ items = [] }) {\r\n const list = document.createElement('af-grid');\r\n\r\n for (const item of items) {\r\n const card = this.createCard(item);\r\n list.appendChild(card);\r\n }\r\n\r\n return list;\r\n }\r\n\r\n /**\r\n * Create card component\r\n */\r\n createCard({ title, content, image }) {\r\n const card = document.createElement('af-card');\r\n\r\n if (title) {\r\n const titleEl = document.createElement('h3');\r\n titleEl.textContent = title;\r\n card.appendChild(titleEl);\r\n }\r\n\r\n if (content) {\r\n const contentEl = document.createElement('p');\r\n contentEl.textContent = content;\r\n card.appendChild(contentEl);\r\n }\r\n\r\n if (image) {\r\n const img = document.createElement('img');\r\n img.src = image;\r\n img.alt = title || 'Card image';\r\n card.appendChild(img);\r\n }\r\n\r\n return card;\r\n }\r\n\r\n /**\r\n * Create modal component\r\n */\r\n createModal({ title, content, actions = [] }) {\r\n const modal = document.createElement('af-modal');\r\n modal.setAttribute('open', '');\r\n\r\n if (title) {\r\n const titleEl = document.createElement('h2');\r\n titleEl.slot = 'header';\r\n titleEl.textContent = title;\r\n modal.appendChild(titleEl);\r\n }\r\n\r\n if (content) {\r\n const contentEl = document.createElement('p');\r\n contentEl.textContent = content;\r\n modal.appendChild(contentEl);\r\n }\r\n\r\n const actionsContainer = document.createElement('div');\r\n actionsContainer.slot = 'footer';\r\n\r\n for (const action of actions) {\r\n const button = document.createElement('af-button');\r\n button.textContent = action.label;\r\n if (action.primary) {\r\n button.setAttribute('variant', 'primary');\r\n }\r\n if (action.onClick) {\r\n button.addEventListener('click', action.onClick);\r\n }\r\n actionsContainer.appendChild(button);\r\n }\r\n\r\n modal.appendChild(actionsContainer);\r\n return modal;\r\n }\r\n\r\n /**\r\n * Create toast component\r\n */\r\n createToast({ message, type = 'info', duration = 3000 }) {\r\n const toast = document.createElement('af-toast');\r\n toast.setAttribute('type', type);\r\n toast.textContent = message;\r\n\r\n // Auto-remove after duration\r\n setTimeout(() => {\r\n toast.remove();\r\n }, duration);\r\n\r\n return toast;\r\n }\r\n\r\n /**\r\n * Create progress component\r\n */\r\n createProgress({ value = 0, max = 100, label }) {\r\n const progress = document.createElement('af-progress');\r\n progress.setAttribute('value', value);\r\n progress.setAttribute('max', max);\r\n\r\n if (label) {\r\n progress.setAttribute('label', label);\r\n }\r\n\r\n return progress;\r\n }\r\n\r\n /**\r\n * Create chart component\r\n */\r\n createChart({ type = 'bar', data = [], labels = [], title, options = {} }) {\r\n const chart = document.createElement('af-chart');\r\n \r\n chart.setAttribute('type', type);\r\n chart.setAttribute('data', JSON.stringify(data));\r\n chart.setAttribute('labels', JSON.stringify(labels));\r\n \r\n if (title) {\r\n chart.setAttribute('title', title);\r\n }\r\n \r\n if (options) {\r\n chart.setAttribute('options', JSON.stringify(options));\r\n }\r\n \r\n return chart;\r\n }\r\n\r\n /**\r\n * Create datatable component\r\n */\r\n createDatatable({ columns = [], rows = [], title, options = {} }) {\r\n const table = document.createElement('af-datatable');\r\n \r\n table.setAttribute('columns', JSON.stringify(columns));\r\n table.setAttribute('rows', JSON.stringify(rows));\r\n \r\n if (title) {\r\n table.setAttribute('title', title);\r\n }\r\n \r\n if (options) {\r\n table.setAttribute('options', JSON.stringify(options));\r\n }\r\n \r\n return table;\r\n }\r\n\r\n /**\r\n * Create tabs component\r\n */\r\n createTabs({ tabs = [], activeTab = 0 }) {\r\n const tabsContainer = document.createElement('af-tabs');\r\n tabsContainer.setAttribute('active', activeTab);\r\n \r\n for (let i = 0; i < tabs.length; i++) {\r\n const tab = tabs[i];\r\n const tabButton = document.createElement('af-tab-button');\r\n tabButton.setAttribute('tab-id', i);\r\n tabButton.textContent = tab.title;\r\n \r\n const tabContent = document.createElement('af-tab-content');\r\n tabContent.setAttribute('tab-id', i);\r\n tabContent.innerHTML = tab.content || '';\r\n \r\n tabsContainer.appendChild(tabButton);\r\n tabsContainer.appendChild(tabContent);\r\n }\r\n \r\n return tabsContainer;\r\n }\r\n\r\n /**\r\n * Create accordion component\r\n */\r\n createAccordion({ items = [] }) {\r\n const accordion = document.createElement('af-accordion');\r\n \r\n for (const item of items) {\r\n const panel = document.createElement('af-accordion-panel');\r\n \r\n const header = document.createElement('af-accordion-header');\r\n header.textContent = item.title;\r\n \r\n const content = document.createElement('af-accordion-content');\r\n content.innerHTML = item.content || '';\r\n \r\n panel.appendChild(header);\r\n panel.appendChild(content);\r\n accordion.appendChild(panel);\r\n }\r\n \r\n return accordion;\r\n }\r\n\r\n /**\r\n * Create stepper component\r\n */\r\n createStepper({ steps = [], currentStep = 0 }) {\r\n const stepper = document.createElement('af-stepper');\r\n stepper.setAttribute('current-step', currentStep);\r\n \r\n for (let i = 0; i < steps.length; i++) {\r\n const step = document.createElement('af-step');\r\n step.setAttribute('step-number', i + 1);\r\n step.setAttribute('active', i <= currentStep);\r\n \r\n if (i === currentStep) {\r\n step.setAttribute('current', 'true');\r\n }\r\n \r\n step.textContent = steps[i].title || `Step ${i + 1}`;\r\n stepper.appendChild(step);\r\n }\r\n \r\n return stepper;\r\n }\r\n\r\n /**\r\n * Create dashboard widget component\r\n */\r\n createDashboardWidget({ title, content, type = 'card', size = 'medium', actions = [] }) {\r\n const widget = document.createElement('af-dashboard-widget');\r\n widget.setAttribute('type', type);\r\n widget.setAttribute('size', size);\r\n \r\n if (title) {\r\n const header = document.createElement('h3');\r\n header.className = 'widget-title';\r\n header.textContent = title;\r\n widget.appendChild(header);\r\n }\r\n \r\n if (content) {\r\n const contentEl = document.createElement('div');\r\n contentEl.className = 'widget-content';\r\n contentEl.innerHTML = typeof content === 'string' ? content : JSON.stringify(content);\r\n widget.appendChild(contentEl);\r\n }\r\n \r\n if (actions.length > 0) {\r\n const actionsEl = document.createElement('div');\r\n actionsEl.className = 'widget-actions';\r\n \r\n for (const action of actions) {\r\n const button = document.createElement('af-button');\r\n button.textContent = action.label;\r\n button.setAttribute('variant', action.variant || 'secondary');\r\n if (action.onClick) {\r\n button.addEventListener('click', action.onClick);\r\n }\r\n actionsEl.appendChild(button);\r\n }\r\n \r\n widget.appendChild(actionsEl);\r\n }\r\n \r\n return widget;\r\n }\r\n\r\n /**\r\n * Update existing component\r\n */\r\n update(id, newProps) {\r\n const element = this.components.get(id);\r\n if (element) {\r\n Object.assign(element, newProps);\r\n }\r\n }\r\n\r\n /**\r\n * Remove component\r\n */\r\n remove(id) {\r\n const element = this.components.get(id);\r\n if (element) {\r\n element.remove();\r\n this.components.delete(id);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A2UI Protocol Handler\r\n * Processes streaming A2UI messages from AI agents\r\n */\r\nexport class A2UIProtocol {\r\n constructor(renderer) {\r\n this.renderer = renderer;\r\n this.messageQueue = [];\r\n this.messageHandlers = [];\r\n this.isProcessing = false;\r\n }\r\n\r\n /**\r\n * Register a message handler callback\r\n * @param {Function} callback - Handler to receive processed messages\r\n */\r\n onMessage(callback) {\r\n if (typeof callback === 'function') {\r\n this.messageHandlers.push(callback);\r\n }\r\n }\r\n\r\n /**\r\n * Send a message into the A2UI system\r\n * @param {Object|string} message - A2UI message\r\n */\r\n sendMessage(message) {\r\n return this.processMessage(message);\r\n }\r\n\r\n /**\r\n * Process incoming A2UI message\r\n * @param {Object|string} message - A2UI message\r\n */\r\n processMessage(message) {\r\n if (typeof message === 'string') {\r\n try {\r\n message = JSON.parse(message);\r\n } catch {\r\n console.warn('Invalid A2UI message format:', message);\r\n return null;\r\n }\r\n }\r\n\r\n if (message?.type === 'render' && this.renderer) {\r\n return this.renderer.render(message);\r\n }\r\n\r\n for (const handler of this.messageHandlers) {\r\n handler(message);\r\n }\r\n\r\n return message;\r\n }\r\n\r\n /**\r\n * Process queued messages\r\n */\r\n processQueue() {\r\n if (this.isProcessing || this.messageQueue.length === 0) {\r\n return;\r\n }\r\n\r\n this.isProcessing = true;\r\n\r\n while (this.messageQueue.length > 0) {\r\n const message = this.messageQueue.shift();\r\n\r\n try {\r\n this.renderer.render(message);\r\n } catch (error) {\r\n console.error('A2UI render error:', error);\r\n }\r\n }\r\n\r\n this.isProcessing = false;\r\n }\r\n\r\n /**\r\n * Stream handler for real-time AI responses\r\n * @param {ReadableStream} stream - AI response stream\r\n */\r\n async handleStream(stream) {\r\n const reader = stream.getReader();\r\n const decoder = new TextDecoder();\r\n\r\n let buffer = '';\r\n\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n\r\n if (done) {\r\n break;\r\n }\r\n\r\n buffer += decoder.decode(value, { stream: true });\r\n\r\n // Process complete messages\r\n const messages = buffer.split('\\n');\r\n buffer = messages.pop(); // Keep incomplete message in buffer\r\n\r\n for (const message of messages) {\r\n if (message.trim()) {\r\n this.processMessage(message.trim());\r\n }\r\n }\r\n }\r\n\r\n // Process any remaining buffer\r\n if (buffer.trim()) {\r\n this.processMessage(buffer.trim());\r\n }\r\n }\r\n\r\n createStream() {\r\n const subscribers = new Set();\r\n\r\n return {\r\n subscribe(callback) {\r\n if (typeof callback !== 'function') {\r\n return () => {};\r\n }\r\n\r\n subscribers.add(callback);\r\n return () => subscribers.delete(callback);\r\n },\r\n push(message) {\r\n for (const callback of subscribers) {\r\n callback(message);\r\n }\r\n }\r\n };\r\n }\r\n\r\n validateAgainstSchema(component) {\r\n const tag = component?.tag || component?.tagName;\r\n return Promise.resolve(Boolean(tag && coreComponentMap[tag]));\r\n }\r\n}\r\n\r\n/**\r\n * Initialize A2UI system\r\n * @param {HTMLElement} root - Root element for rendering\r\n */\r\nexport function initA2UI(root) {\r\n // Handle server-side rendering (no DOM)\r\n if (typeof document === 'undefined') {\r\n root = null;\r\n } else {\r\n root = root || document.body;\r\n }\r\n\r\n const renderer = new A2UIRenderer(root);\r\n const protocol = new A2UIProtocol(renderer);\r\n\r\n // Make globally available for AI agents\r\n if (typeof window !== 'undefined') {\r\n window.a2ui = {\r\n render: (message) => protocol.processMessage(message),\r\n handleStream: (stream) => protocol.handleStream(stream),\r\n update: (id, props) => renderer.update(id, props),\r\n remove: (id) => renderer.remove(id),\r\n sendMessage: (message) => protocol.sendMessage(message),\r\n onMessage: (callback) => protocol.onMessage(callback),\r\n createStream: () => protocol.createStream(),\r\n validateAgainstSchema: (component) => protocol.validateAgainstSchema(component)\r\n };\r\n }\r\n\r\n return { renderer, protocol };\r\n}\r\n"
90
95
  ],
91
- "mappings": "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",
92
- "debugId": "9D0AC151CA9BD62664756E2164756E21",
96
+ "mappings": "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",
97
+ "debugId": "F0A067E8E7015B7664756E2164756E21",
93
98
  "names": []
94
99
  }