@rizom/brain 0.2.0-alpha.51 → 0.2.0-alpha.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -38,6 +38,7 @@ interface BrainDefinition {
38
38
  version: string;
39
39
  model?: string;
40
40
  identity?: BrainIdentity;
41
+ agentInstructions?: string[];
41
42
  site?: unknown;
42
43
  theme?: string;
43
44
  capabilities: CapabilityEntry[];
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- function t(i){return i}var e={name:"@rizom/brain",version:"0.2.0-alpha.51",description:"Brain runtime + CLI \u2014 scaffold, run, and manage AI brain instances",type:"module",bin:{brain:"./dist/brain.js"},exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./cli":"./dist/brain.js","./plugins":{types:"./dist/plugins.d.ts",import:"./dist/plugins.js"},"./entities":{types:"./dist/entities.d.ts",import:"./dist/entities.js"},"./services":{types:"./dist/services.d.ts",import:"./dist/services.js"},"./interfaces":{types:"./dist/interfaces.d.ts",import:"./dist/interfaces.js"},"./templates":{types:"./dist/templates.d.ts",import:"./dist/templates.js"},"./site":{types:"./dist/site.d.ts",import:"./dist/site.js"},"./themes":{types:"./dist/themes.d.ts",import:"./dist/themes.js"},"./deploy":{types:"./dist/deploy.d.ts",import:"./dist/deploy.js"},"./tsconfig.instance.json":"./tsconfig.instance.json"},files:["dist","templates","tsconfig.instance.json"],scripts:{build:"bun scripts/build.ts",prepublishOnly:"bun scripts/build.ts","dev:start":"bun dist/brain.js start",typecheck:"tsc --noEmit",test:"bun test",lint:"eslint . --ext .ts"},dependencies:{"@clack/prompts":"^0.11.0","@modelcontextprotocol/sdk":"^1.24.0","@tailwindcss/postcss":"^4.1.13","@tailwindcss/typography":"^0.5.19",postcss:"^8.5.6",preact:"^10.27.2","preact-render-to-string":"^6.3.1",tailwindcss:"^4.1.11"},optionalDependencies:{"@bitwarden/sdk-napi":"^1.0.0","@libsql/client":"^0.15.7","@tailwindcss/oxide":"^4.1.4","better-sqlite3":"^11.8.1",lightningcss:"^1.29.2","react-devtools-core":"^6.1.1",sharp:"^0.34.5"},devDependencies:{"@brains/app":"workspace:*","@brains/deploy-templates":"workspace:*","@brains/eslint-config":"workspace:*","@brains/mcp-service":"workspace:*","@brains/plugins":"workspace:*","@brains/ranger":"workspace:*","@brains/relay":"workspace:*","@brains/rover":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-default":"workspace:*","@brains/site-personal":"workspace:*","@brains/site-professional":"workspace:*","@brains/theme-default":"workspace:*","@brains/theme-rizom":"workspace:*","@brains/typescript-config":"workspace:*","@brains/utils":"workspace:*","@types/bun":"latest",rollup:"^4.60.2","rollup-plugin-dts":"^6.4.1",typescript:"^5.3.3"},publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/rizom-ai/brains.git",directory:"packages/brain-cli"},license:"Apache-2.0",author:"Yeehaa <yeehaa@rizom.ai> (https://rizom.ai)",homepage:"https://github.com/rizom-ai/brains/tree/main/packages/brain-cli#readme",bugs:"https://github.com/rizom-ai/brains/issues",engines:{bun:">=1.3.3"},keywords:["brain","ai","cli","mcp","agent","personal-ai","knowledge-management"]};var n=e.version;export{t as defineBrain,n as PLUGIN_API_VERSION};
2
+ function t(i){return i}var e={name:"@rizom/brain",version:"0.2.0-alpha.53",description:"Brain runtime + CLI \u2014 scaffold, run, and manage AI brain instances",type:"module",bin:{brain:"./dist/brain.js"},exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js"},"./cli":"./dist/brain.js","./plugins":{types:"./dist/plugins.d.ts",import:"./dist/plugins.js"},"./entities":{types:"./dist/entities.d.ts",import:"./dist/entities.js"},"./services":{types:"./dist/services.d.ts",import:"./dist/services.js"},"./interfaces":{types:"./dist/interfaces.d.ts",import:"./dist/interfaces.js"},"./templates":{types:"./dist/templates.d.ts",import:"./dist/templates.js"},"./site":{types:"./dist/site.d.ts",import:"./dist/site.js"},"./themes":{types:"./dist/themes.d.ts",import:"./dist/themes.js"},"./deploy":{types:"./dist/deploy.d.ts",import:"./dist/deploy.js"},"./tsconfig.instance.json":"./tsconfig.instance.json"},files:["dist","templates","tsconfig.instance.json"],scripts:{build:"bun scripts/build.ts",prepublishOnly:"bun scripts/build.ts","dev:start":"bun dist/brain.js start",typecheck:"tsc --noEmit",test:"bun test",lint:"eslint . --ext .ts"},dependencies:{"@clack/prompts":"^0.11.0","@modelcontextprotocol/sdk":"^1.24.0","@tailwindcss/postcss":"^4.1.13","@tailwindcss/typography":"^0.5.19",postcss:"^8.5.6",preact:"^10.27.2","preact-render-to-string":"^6.3.1",tailwindcss:"^4.1.11"},optionalDependencies:{"@bitwarden/sdk-napi":"^1.0.0","@libsql/client":"^0.15.7","@tailwindcss/oxide":"^4.1.4","better-sqlite3":"^11.8.1",lightningcss:"^1.29.2","react-devtools-core":"^6.1.1",sharp:"^0.34.5"},devDependencies:{"@brains/app":"workspace:*","@brains/deploy-templates":"workspace:*","@brains/eslint-config":"workspace:*","@brains/mcp-service":"workspace:*","@brains/plugins":"workspace:*","@brains/ranger":"workspace:*","@brains/relay":"workspace:*","@brains/rover":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-default":"workspace:*","@brains/site-personal":"workspace:*","@brains/site-professional":"workspace:*","@brains/theme-default":"workspace:*","@brains/theme-rizom":"workspace:*","@brains/typescript-config":"workspace:*","@brains/utils":"workspace:*","@types/bun":"latest",rollup:"^4.60.2","rollup-plugin-dts":"^6.4.1",typescript:"^5.3.3"},publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/rizom-ai/brains.git",directory:"packages/brain-cli"},license:"Apache-2.0",author:"Yeehaa <yeehaa@rizom.ai> (https://rizom.ai)",homepage:"https://github.com/rizom-ai/brains/tree/main/packages/brain-cli#readme",bugs:"https://github.com/rizom-ai/brains/issues",engines:{bun:">=1.3.3"},keywords:["brain","ai","cli","mcp","agent","personal-ai","knowledge-management"]};var n=e.version;export{t as defineBrain,n as PLUGIN_API_VERSION};
3
3
 
4
- //# debugId=B4261A06FD977A3F64756E2164756E21
4
+ //# debugId=CBA8CB1B0297059664756E2164756E21
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../shell/app/src/contracts/brain-definition.ts", "../src/plugin-api-version.ts"],
4
4
  "sourcesContent": [
5
- "/** Public brain definition contract for external authors. */\n\nexport type BrainEnvironment = Record<string, string | undefined>;\nexport type PluginConfig = Record<string, unknown>;\n\nexport interface Plugin {\n readonly id: string;\n readonly version: string;\n readonly type: \"core\" | \"entity\" | \"service\" | \"interface\";\n readonly packageName: string;\n readonly description?: string;\n readonly dependencies?: string[];\n ready?(): Promise<void>;\n shutdown?(): Promise<void>;\n requiresDaemonStartup?(): boolean;\n}\n\nexport type CapabilityConfig =\n | PluginConfig\n | ((env: BrainEnvironment) => PluginConfig)\n | undefined;\n\nexport type PluginFactory = (config: PluginConfig) => Plugin | Plugin[];\n\nexport type CapabilityEntry = [\n id: string,\n factory: PluginFactory,\n config: CapabilityConfig,\n];\n\nexport type InterfaceConstructor = new (config: PluginConfig) => Plugin;\n\nexport type InterfaceEntry = [\n id: string,\n constructor: InterfaceConstructor,\n envMapper: (env: BrainEnvironment) => PluginConfig | null,\n];\n\nexport type PresetName = \"core\" | \"default\" | \"full\";\nexport type BrainMode = \"eval\";\n\nexport interface BrainIdentity {\n characterName: string;\n role: string;\n purpose: string;\n values: string[];\n}\n\nexport interface BrainDefinition {\n name: string;\n version: string;\n model?: string;\n identity?: BrainIdentity;\n site?: unknown;\n theme?: string;\n capabilities: CapabilityEntry[];\n interfaces: InterfaceEntry[];\n presets?: Partial<Record<PresetName, string[]>>;\n defaultPreset?: PresetName;\n permissions?: unknown;\n deployment?: unknown;\n evalDisable?: string[];\n extra?: Record<string, unknown>;\n}\n\nexport function defineBrain(definition: BrainDefinition): BrainDefinition {\n return definition;\n}\n",
5
+ "/** Public brain definition contract for external authors. */\n\nexport type BrainEnvironment = Record<string, string | undefined>;\nexport type PluginConfig = Record<string, unknown>;\n\nexport interface Plugin {\n readonly id: string;\n readonly version: string;\n readonly type: \"core\" | \"entity\" | \"service\" | \"interface\";\n readonly packageName: string;\n readonly description?: string;\n readonly dependencies?: string[];\n ready?(): Promise<void>;\n shutdown?(): Promise<void>;\n requiresDaemonStartup?(): boolean;\n}\n\nexport type CapabilityConfig =\n | PluginConfig\n | ((env: BrainEnvironment) => PluginConfig)\n | undefined;\n\nexport type PluginFactory = (config: PluginConfig) => Plugin | Plugin[];\n\nexport type CapabilityEntry = [\n id: string,\n factory: PluginFactory,\n config: CapabilityConfig,\n];\n\nexport type InterfaceConstructor = new (config: PluginConfig) => Plugin;\n\nexport type InterfaceEntry = [\n id: string,\n constructor: InterfaceConstructor,\n envMapper: (env: BrainEnvironment) => PluginConfig | null,\n];\n\nexport type PresetName = \"core\" | \"default\" | \"full\";\nexport type BrainMode = \"eval\";\n\nexport interface BrainIdentity {\n characterName: string;\n role: string;\n purpose: string;\n values: string[];\n}\n\nexport interface BrainDefinition {\n name: string;\n version: string;\n model?: string;\n identity?: BrainIdentity;\n agentInstructions?: string[];\n site?: unknown;\n theme?: string;\n capabilities: CapabilityEntry[];\n interfaces: InterfaceEntry[];\n presets?: Partial<Record<PresetName, string[]>>;\n defaultPreset?: PresetName;\n permissions?: unknown;\n deployment?: unknown;\n evalDisable?: string[];\n extra?: Record<string, unknown>;\n}\n\nexport function defineBrain(definition: BrainDefinition): BrainDefinition {\n return definition;\n}\n",
6
6
  "import packageJson from \"../package.json\" with { type: \"json\" };\n\n/**\n * Pre-v1 external plugin API marker.\n *\n * During alpha, the external plugin API compatibility marker tracks the\n * published @rizom/brain package version. Once the plugin API is declared\n * stable, this can move to an independent semver contract such as 1.0.0.\n */\nexport const PLUGIN_API_VERSION = packageJson.version;\n"
7
7
  ],
8
- "mappings": ";AAiEO,SAAS,CAAW,CAAC,EAA8C,CACxE,OAAO,moFCzDF,IAAM,EAAqB,EAAY",
9
- "debugId": "B4261A06FD977A3F64756E2164756E21",
8
+ "mappings": ";AAkEO,SAAS,CAAW,CAAC,EAA8C,CACxE,OAAO,moFC1DF,IAAM,EAAqB,EAAY",
9
+ "debugId": "CBA8CB1B0297059664756E2164756E21",
10
10
  "names": []
11
11
  }
package/dist/plugins.d.ts CHANGED
@@ -675,13 +675,13 @@ declare const BrainCharacterSchema: z.ZodObject<{
675
675
  values: z.ZodArray<z.ZodString, "many">;
676
676
  }, "strip", z.ZodTypeAny, {
677
677
  values: string[];
678
- name: string;
679
678
  role: string;
679
+ name: string;
680
680
  purpose: string;
681
681
  }, {
682
682
  values: string[];
683
- name: string;
684
683
  role: string;
684
+ name: string;
685
685
  purpose: string;
686
686
  }>;
687
687
  type BrainCharacter = z.infer<typeof BrainCharacterSchema>;
package/dist/site.js CHANGED
@@ -235,13 +235,14 @@ ${F}`,templateName:"blog:excerpt"})).excerpt,await this.reportProgress(X,{progre
235
235
  height: 100vh;
236
236
  height: 100dvh;
237
237
  overflow: hidden;
238
+ background: var(--color-bg-gradient, var(--color-bg));
238
239
  }
239
240
 
240
241
  .reveal {
241
242
  width: 100%;
242
243
  height: 100%;
243
244
  font-family: var(--font-sans);
244
- background: var(--color-bg-gradient);
245
+ background: var(--color-bg-gradient, var(--color-bg));
245
246
  }
246
247
 
247
248
  /* ---- BASE SLIDE LAYOUT ---- */
@@ -743,7 +744,7 @@ ${F}`,templateName:"blog:excerpt"})).excerpt,await this.reportProgress(X,{progre
743
744
  font-size: 0.68rem;
744
745
  }
745
746
  }
746
- `}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as p1}from"preact/jsx-dev-runtime";var $j={github:($)=>p1("svg",{className:$,fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),instagram:($)=>p1("svg",{className:$,fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{d:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),linkedin:($)=>p1("svg",{className:$,fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),email:($)=>p1("svg",{className:$,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),website:($)=>p1("svg",{className:$,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"},void 0,!1,void 0,this)},void 0,!1,void 0,this)};function rG({links:$,className:X,iconClassName:G="w-5 h-5"}){if($.length===0)return null;return p1("div",{className:G0("flex gap-4 items-center",X),children:$.map((Y,J)=>{let W=$j[Y.platform],H=`${Y.platform.charAt(0).toUpperCase()}${Y.platform.slice(1)}`;return p1("a",{href:Y.url,target:"_blank",rel:"noopener noreferrer","aria-label":Y.label??H,className:"inline-block transition-opacity hover:opacity-70",children:W(G)},`${Y.platform}-${J}`,!1,void 0,this)})},void 0,!1,void 0,this)}import{jsxDEV as x1}from"preact/jsx-dev-runtime";function iG({cta:$,variant:X="centered",socialLinks:G}){if(X==="editorial")return x1("section",{className:"cta-bg-pattern py-28 md:py-32 px-6 md:px-12",children:x1("div",{className:"max-w-5xl mx-auto",children:[x1("span",{className:"inline-flex items-center gap-[0.6rem] font-mono text-[0.7rem] font-medium uppercase tracking-[0.22em] text-accent mb-6 before:content-[''] before:w-[18px] before:h-px before:bg-accent",children:"Get in touch"},void 0,!1,void 0,this),x1("h2",{className:"font-heading font-normal text-heading leading-[1.05] tracking-[-0.02em] text-[clamp(2.25rem,4.5vw,3.5rem)] max-w-[18ch] mb-10 [font-variation-settings:'opsz'_96,'SOFT'_60]",children:$.heading},void 0,!1,void 0,this),x1("div",{className:"flex flex-wrap items-center gap-7",children:[x1("a",{href:$.buttonLink,className:"inline-flex items-center gap-2 font-mono text-[0.78rem] font-medium uppercase tracking-[0.14em] bg-accent text-theme-inverse px-6 py-[0.95rem] rounded-xl transition-[background,transform] duration-150 hover:bg-[var(--color-text)] hover:-translate-y-px",children:[$.buttonText,x1("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G&&G.length>0&&G.map((Y,J)=>x1("a",{href:Y.url,target:"_blank",rel:"noopener noreferrer",className:"font-mono text-[0.72rem] font-medium uppercase tracking-[0.16em] text-theme-muted hover:text-accent transition-colors relative pb-[3px] before:content-[''] before:absolute before:left-0 before:right-full before:bottom-0 before:h-px before:bg-accent before:transition-[right] before:duration-300 hover:before:right-0",children:Y.label??Y.platform},J,!1,void 0,this))]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);return x1("section",{className:"cta-bg-pattern bg-brand py-16 md:py-24 px-6 md:px-12",children:x1("div",{className:"max-w-4xl mx-auto text-center",children:[x1("h2",{className:"text-2xl md:text-3xl font-bold text-inverse mb-4 font-heading",children:$.heading},void 0,!1,void 0,this),$.subtitle&&x1("p",{className:"text-base md:text-lg text-inverse opacity-80 mb-6 max-w-md mx-auto",children:$.subtitle},void 0,!1,void 0,this),x1(t1,{href:$.buttonLink,variant:"outline-light",size:"lg",children:$.buttonText},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as nG}from"preact/jsx-dev-runtime";var oG=({primaryNavigation:$,secondaryNavigation:X,copyright:G,socialLinks:Y,title:J,tagline:W,children:H})=>{return nG("footer",{className:"footer pt-14 pb-10 bg-footer border-t border-rule",children:nG("div",{className:"container mx-auto px-6 max-w-layout",children:nG(sG,{primaryNav:$,secondaryNav:X,copyright:G??"Powered by Rizom",socialLinks:Y,showThemeToggle:!0,variant:"default",title:J,tagline:W,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)};import{jsxDEV as o}from"preact/jsx-dev-runtime";var Xj=D0("",{variants:{variant:{full:"",icon:"",text:""}},defaultVariants:{variant:"full"}});function a6({variant:$,height:X=32,className:G,color:Y="currentColor",title:J}){if(J)return o("span",{className:G0("font-heading font-medium text-[1.4rem] leading-none tracking-[-0.01em] [font-variation-settings:'opsz'_24,'SOFT'_50]",G),children:J},void 0,!1,void 0,this);let W=$??"full";if(W==="icon")return o("svg",{height:X,viewBox:"0 0 60 59",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:G,"aria-label":"Rizom logo",children:o("g",{id:"Group",children:[o("path",{id:"Vector",d:"M29.8235 22.1142C31.7219 22.1142 33.5065 22.8336 34.8489 24.1412C36.1913 25.4481 36.9309 27.1856 36.9309 29.0338C36.9309 30.882 36.192 32.6195 34.8489 33.9265C33.5065 35.2334 31.7219 35.9535 29.8235 35.9535C27.9251 35.9535 26.1405 35.234 24.7981 33.9265C23.4557 32.6189 22.7167 30.882 22.7167 29.0338C22.7167 27.1856 23.4557 25.4481 24.7981 24.1412C26.1405 22.8342 27.9251 22.1142 29.8235 22.1142ZM29.8235 17.1881C23.104 17.1881 17.6562 22.4918 17.6562 29.0338C17.6562 35.5758 23.104 40.8796 29.8235 40.8796C36.543 40.8796 41.9907 35.5758 41.9907 29.0338C41.9907 22.4918 36.543 17.1881 29.8235 17.1881Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_2",children:[o("path",{id:"Vector_2",d:"M13.2469 29.0338C13.2469 33.2709 14.9323 37.1315 17.6846 40.0136C11.8265 39.6006 7.20517 34.8424 7.20517 29.0338C7.20517 23.2253 11.8265 18.4671 17.6846 18.0541C14.9323 20.9362 13.2469 24.798 13.2469 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_3",d:"M52.4385 29.0338C52.4385 34.8424 47.8172 39.6006 41.9591 40.0136C44.7114 37.1315 46.3967 33.2709 46.3967 29.0338C46.3967 24.7968 44.7114 20.9362 41.9591 18.0541C47.8172 18.4671 52.4385 23.2253 52.4385 29.0338Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_3",children:[o("path",{id:"Vector_4",d:"M59.7265 29.0338C59.7265 32.172 57.6563 34.84 54.7735 35.8142C56.0553 31.4628 56.056 26.6042 54.7735 22.2535C57.6563 23.2277 59.7265 25.8957 59.7265 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_5",d:"M3.97003 30.5734C4.08122 32.3778 4.3873 34.1312 4.86955 35.8139C-1.62448 33.824 -1.62136 24.2431 4.86955 22.2544C4.17929 24.8932 3.65582 27.8106 3.97003 30.5734Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),o("path",{id:"Vector_6",d:"M41.0996 40.8504C40.6754 46.5537 35.788 51.0529 29.8218 51.0529C23.8557 51.0529 18.9683 46.5537 18.5441 40.8504C21.5044 43.5299 25.471 45.1708 29.8218 45.1708C34.1726 45.1708 38.1393 43.5299 41.0996 40.8504Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_7",d:"M41.0996 17.2173C38.1393 14.5377 34.1739 12.8969 29.8218 12.8969C25.4698 12.8969 21.5044 14.5377 18.5441 17.2173C18.9683 11.514 23.8557 7.01479 29.8218 7.01479C35.788 7.01479 40.6754 11.514 41.0996 17.2173Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_4",children:[o("path",{id:"Vector_8",d:"M36.7862 53.3262C34.7417 59.6493 24.9007 59.6462 22.8574 53.3262C27.3257 54.5742 32.318 54.5742 36.7862 53.3262Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_9",d:"M36.7862 4.74088C32.318 3.49294 27.3257 3.49294 22.8574 4.74088C24.902 -1.58155 34.743 -1.57851 36.7862 4.74088Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);if(W==="text")return o("svg",{height:X,viewBox:"0 0 138 33",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:G,"aria-label":"Rizom",children:o("g",{id:"RIZOM",children:[o("path",{d:"M5.24978 24.3876V31.7373H0V0.715879H10.0223C12.4086 0.715879 14.2858 1.43176 15.6539 2.86352C17.0538 4.26346 17.7538 6.01339 17.7538 8.1133C17.7538 9.99049 16.9902 11.7086 15.463 13.2676C17.7538 13.7767 19.5992 15.0494 20.9991 17.0857C22.3991 19.1219 23.099 21.54 23.099 24.3399V31.7373H17.8493V24.8172C17.8493 22.5263 17.2606 20.7287 16.0834 19.4242C14.938 18.1197 13.4108 17.4675 11.5018 17.4675C9.72005 17.4675 8.22466 18.0879 7.01562 19.3287C5.83839 20.5696 5.24978 22.2559 5.24978 24.3876ZM9.11553 5.82249H5.24978V14.7948C5.4725 14.5721 5.72704 14.3494 6.01339 14.1267C6.29974 13.904 6.602 13.6972 6.92017 13.5063C7.27015 13.3154 7.55651 13.1563 7.77922 13.029C8.03376 12.8699 8.36783 12.6949 8.78145 12.504C9.19507 12.2813 9.49733 12.1222 9.68824 12.0268C11.5972 11.0086 12.5518 9.86323 12.5518 8.59055C12.5518 7.7315 12.2495 7.06334 11.645 6.58609C11.0405 6.07702 10.1973 5.82249 9.11553 5.82249Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M33.3536 0.715879V31.7373H28.1039V0.715879H33.3536Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M61.3617 0.715879L46.71 26.5353H61.5049V31.7373H37.6422L52.3416 5.91794H39.3603V0.715879H61.3617Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M79.0133 32.4055C74.5908 32.4055 70.8205 30.8305 67.7024 27.6807C64.6162 24.5308 63.0731 20.6969 63.0731 16.1789C63.0731 11.7245 64.6162 7.9224 67.7024 4.77253C70.8205 1.59084 74.5908 0 79.0133 0C83.4359 0 87.2062 1.59084 90.3242 4.77253C93.4741 7.9224 95.049 11.7245 95.049 16.1789C95.049 20.6969 93.49 24.5308 90.3719 27.6807C87.2539 30.8305 83.4677 32.4055 79.0133 32.4055ZM79.0133 27.0125C81.9723 27.0125 84.4699 25.9626 86.5062 23.8626C88.5743 21.7627 89.6083 19.2015 89.6083 16.1789C89.6083 13.1881 88.5743 10.6586 86.5062 8.59055C84.4699 6.49064 81.9723 5.44068 79.0133 5.44068C76.0862 5.44068 73.6045 6.49064 71.5682 8.59055C69.5319 10.6586 68.5138 13.1881 68.5138 16.1789C68.5138 19.2015 69.5319 21.7627 71.5682 23.8626C73.6045 25.9626 76.0862 27.0125 79.0133 27.0125Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M126.682 0C129.545 0 132.011 1.04996 134.079 3.14987C136.147 5.21796 137.182 7.82695 137.182 10.9768V31.6896H131.932V10.7859C131.932 9.29052 131.423 8.01785 130.405 6.96789C129.386 5.91794 128.146 5.39296 126.682 5.39296C125.25 5.39296 124.025 5.90203 123.007 6.92017C121.989 7.93831 121.48 9.14735 121.48 10.5473V31.7373H116.182L116.23 10.5473C116.23 9.17917 115.705 7.98603 114.655 6.96789C113.605 5.91794 112.364 5.39296 110.933 5.39296C109.437 5.39296 108.165 5.91794 107.115 6.96789C106.065 8.01785 105.54 9.29052 105.54 10.7859V31.7373H100.338L100.29 10.9768C100.29 7.82695 101.324 5.21796 103.392 3.14987C105.492 1.04996 108.005 0 110.933 0C114.146 0 116.771 1.24086 118.807 3.72257C120.844 1.24086 123.468 0 126.682 0Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);let H=X,U=X*33/59,F=X*0.2;return o("div",{className:G0("inline-flex items-center",G),style:{gap:`${F}px`},"aria-label":"Rizom logo",children:[o("svg",{height:H,viewBox:"0 0 60 59",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:o("g",{id:"Group",children:[o("path",{id:"Vector",d:"M29.8235 22.1142C31.7219 22.1142 33.5065 22.8336 34.8489 24.1412C36.1913 25.4481 36.9309 27.1856 36.9309 29.0338C36.9309 30.882 36.192 32.6195 34.8489 33.9265C33.5065 35.2334 31.7219 35.9535 29.8235 35.9535C27.9251 35.9535 26.1405 35.234 24.7981 33.9265C23.4557 32.6189 22.7167 30.882 22.7167 29.0338C22.7167 27.1856 23.4557 25.4481 24.7981 24.1412C26.1405 22.8342 27.9251 22.1142 29.8235 22.1142ZM29.8235 17.1881C23.104 17.1881 17.6562 22.4918 17.6562 29.0338C17.6562 35.5758 23.104 40.8796 29.8235 40.8796C36.543 40.8796 41.9907 35.5758 41.9907 29.0338C41.9907 22.4918 36.543 17.1881 29.8235 17.1881Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_2",children:[o("path",{id:"Vector_2",d:"M13.2469 29.0338C13.2469 33.2709 14.9323 37.1315 17.6846 40.0136C11.8265 39.6006 7.20517 34.8424 7.20517 29.0338C7.20517 23.2253 11.8265 18.4671 17.6846 18.0541C14.9323 20.9362 13.2469 24.798 13.2469 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_3",d:"M52.4385 29.0338C52.4385 34.8424 47.8172 39.6006 41.9591 40.0136C44.7114 37.1315 46.3967 33.2709 46.3967 29.0338C46.3967 24.7968 44.7114 20.9362 41.9591 18.0541C47.8172 18.4671 52.4385 23.2253 52.4385 29.0338Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_3",children:[o("path",{id:"Vector_4",d:"M59.7265 29.0338C59.7265 32.172 57.6563 34.84 54.7735 35.8142C56.0553 31.4628 56.056 26.6042 54.7735 22.2535C57.6563 23.2277 59.7265 25.8957 59.7265 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_5",d:"M3.97003 30.5734C4.08122 32.3778 4.3873 34.1312 4.86955 35.8139C-1.62448 33.824 -1.62136 24.2431 4.86955 22.2544C4.17929 24.8932 3.65582 27.8106 3.97003 30.5734Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),o("path",{id:"Vector_6",d:"M41.0996 40.8504C40.6754 46.5537 35.788 51.0529 29.8218 51.0529C23.8557 51.0529 18.9683 46.5537 18.5441 40.8504C21.5044 43.5299 25.471 45.1708 29.8218 45.1708C34.1726 45.1708 38.1393 43.5299 41.0996 40.8504Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_7",d:"M41.0996 17.2173C38.1393 14.5377 34.1739 12.8969 29.8218 12.8969C25.4698 12.8969 21.5044 14.5377 18.5441 17.2173C18.9683 11.514 23.8557 7.01479 29.8218 7.01479C35.788 7.01479 40.6754 11.514 41.0996 17.2173Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_4",children:[o("path",{id:"Vector_8",d:"M36.7862 53.3262C34.7417 59.6493 24.9007 59.6462 22.8574 53.3262C27.3257 54.5742 32.318 54.5742 36.7862 53.3262Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_9",d:"M36.7862 4.74088C32.318 3.49294 27.3257 3.49294 22.8574 4.74088C24.902 -1.58155 34.743 -1.57851 36.7862 4.74088Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),o("svg",{height:U,viewBox:"0 0 138 33",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:o("g",{id:"RIZOM",children:[o("path",{d:"M5.24978 24.3876V31.7373H0V0.715879H10.0223C12.4086 0.715879 14.2858 1.43176 15.6539 2.86352C17.0538 4.26346 17.7538 6.01339 17.7538 8.1133C17.7538 9.99049 16.9902 11.7086 15.463 13.2676C17.7538 13.7767 19.5992 15.0494 20.9991 17.0857C22.3991 19.1219 23.099 21.54 23.099 24.3399V31.7373H17.8493V24.8172C17.8493 22.5263 17.2606 20.7287 16.0834 19.4242C14.938 18.1197 13.4108 17.4675 11.5018 17.4675C9.72005 17.4675 8.22466 18.0879 7.01562 19.3287C5.83839 20.5696 5.24978 22.2559 5.24978 24.3876ZM9.11553 5.82249H5.24978V14.7948C5.4725 14.5721 5.72704 14.3494 6.01339 14.1267C6.29974 13.904 6.602 13.6972 6.92017 13.5063C7.27015 13.3154 7.55651 13.1563 7.77922 13.029C8.03376 12.8699 8.36783 12.6949 8.78145 12.504C9.19507 12.2813 9.49733 12.1222 9.68824 12.0268C11.5972 11.0086 12.5518 9.86323 12.5518 8.59055C12.5518 7.7315 12.2495 7.06334 11.645 6.58609C11.0405 6.07702 10.1973 5.82249 9.11553 5.82249Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M33.3536 0.715879V31.7373H28.1039V0.715879H33.3536Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M61.3617 0.715879L46.71 26.5353H61.5049V31.7373H37.6422L52.3416 5.91794H39.3603V0.715879H61.3617Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M79.0133 32.4055C74.5908 32.4055 70.8205 30.8305 67.7024 27.6807C64.6162 24.5308 63.0731 20.6969 63.0731 16.1789C63.0731 11.7245 64.6162 7.9224 67.7024 4.77253C70.8205 1.59084 74.5908 0 79.0133 0C83.4359 0 87.2062 1.59084 90.3242 4.77253C93.4741 7.9224 95.049 11.7245 95.049 16.1789C95.049 20.6969 93.49 24.5308 90.3719 27.6807C87.2539 30.8305 83.4677 32.4055 79.0133 32.4055ZM79.0133 27.0125C81.9723 27.0125 84.4699 25.9626 86.5062 23.8626C88.5743 21.7627 89.6083 19.2015 89.6083 16.1789C89.6083 13.1881 88.5743 10.6586 86.5062 8.59055C84.4699 6.49064 81.9723 5.44068 79.0133 5.44068C76.0862 5.44068 73.6045 6.49064 71.5682 8.59055C69.5319 10.6586 68.5138 13.1881 68.5138 16.1789C68.5138 19.2015 69.5319 21.7627 71.5682 23.8626C73.6045 25.9626 76.0862 27.0125 79.0133 27.0125Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M126.682 0C129.545 0 132.011 1.04996 134.079 3.14987C136.147 5.21796 137.182 7.82695 137.182 10.9768V31.6896H131.932V10.7859C131.932 9.29052 131.423 8.01785 130.405 6.96789C129.386 5.91794 128.146 5.39296 126.682 5.39296C125.25 5.39296 124.025 5.90203 123.007 6.92017C121.989 7.93831 121.48 9.14735 121.48 10.5473V31.7373H116.182L116.23 10.5473C116.23 9.17917 115.705 7.98603 114.655 6.96789C113.605 5.91794 112.364 5.39296 110.933 5.39296C109.437 5.39296 108.165 5.91794 107.115 6.96789C106.065 8.01785 105.54 9.29052 105.54 10.7859V31.7373H100.338L100.29 10.9768C100.29 7.82695 101.324 5.21796 103.392 3.14987C105.492 1.04996 108.005 0 110.933 0C114.146 0 116.771 1.24086 118.807 3.72257C120.844 1.24086 123.468 0 126.682 0Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as p0}from"preact/jsx-dev-runtime";function MR({children:$,variant:X}){return p0("div",{className:X==="cta"?"font-mono text-[11px] font-medium uppercase tracking-[0.2em] text-white/70 mb-5":"font-mono text-[11px] font-medium uppercase tracking-[0.2em] text-accent/80 mb-5",children:$},void 0,!1,void 0,this)}function sG({primaryNav:$,secondaryNav:X,copyright:G,socialLinks:Y,showThemeToggle:J=!1,variant:W="default",title:H,tagline:U,children:F}){let M=W==="cta"?"text-white/70 hover:text-accent text-sm":"text-theme-muted hover:text-brand text-sm",Q=W==="cta"?"w-4 h-4 text-white opacity-40 hover:opacity-100 hover:text-accent":"w-4 h-4 text-theme-light hover:text-brand hover:opacity-100",q=X.length>0,A=Y&&Y.length>0,Z=Boolean(H),_=Array.isArray(F)?F.length>0:Boolean(F);return p0("div",{children:[p0("div",{className:"flex flex-col gap-10 sm:flex-row sm:items-start sm:gap-12",children:[Z&&p0("div",{className:"sm:max-w-[18rem] sm:flex-1",children:[p0("a",{href:"/",className:"text-logo inline-block mb-2",children:p0(a6,{title:H,className:"text-[1.25rem]"},void 0,!1,void 0,this)},void 0,!1,void 0,this),U&&p0("p",{className:`text-[0.85rem] leading-[1.55] ${W==="cta"?"text-white/60":"text-theme-muted"} max-w-[30ch]`,children:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p0("div",{className:"grid grid-cols-2 sm:flex sm:gap-12",children:[$.length>0&&p0("div",{children:[p0(MR,{variant:W,children:"Navigate"},void 0,!1,void 0,this),p0(T$,{items:$,orientation:"vertical",linkClassName:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q&&p0("div",{children:[p0(MR,{variant:W,children:"More"},void 0,!1,void 0,this),p0(T$,{items:X,orientation:"vertical",linkClassName:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_&&p0("div",{className:"sm:ml-auto sm:max-w-[20rem]",children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p0("div",{className:"mt-14 pt-6 border-t border-rule flex flex-row flex-wrap justify-between items-center gap-4",children:[G&&p0("p",{className:"font-mono text-[0.7rem] uppercase tracking-[0.16em] text-theme-light",children:G},void 0,!1,void 0,this),p0("div",{className:"flex items-center gap-5",children:[A&&p0(rG,{links:Y,iconClassName:Q},void 0,!1,void 0,this),J&&p0(Q2,{variant:"footer",size:"sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as h0}from"preact/jsx-dev-runtime";function w8({title:$,logo:X,titleClassName:G,navigation:Y,cta:J,showThemeToggle:W=!1,themeToggleClassName:H}){return h0("header",{className:"sticky top-0 z-50 py-5 border-b border-rule bg-header",children:h0("div",{className:"max-w-layout mx-auto px-6 md:px-8",children:[h0("div",{className:"flex flex-row justify-between items-center gap-8",children:[h0("a",{href:"/",className:"text-logo hover:opacity-80 transition-opacity",children:X?h0(a6,{height:36},void 0,!1,void 0,this):G?h0("span",{className:G,children:$},void 0,!1,void 0,this):h0(a6,{title:$,height:36},void 0,!1,void 0,this)},void 0,!1,void 0,this),h0("nav",{className:"hidden md:flex gap-7","aria-label":"Main navigation",children:Y.map((F)=>h0("a",{href:F.href,className:"nav-link",children:F.label},F.href,!1,void 0,this))},void 0,!1,void 0,this),h0("div",{className:"hidden md:flex items-center gap-4",children:[J&&h0(t1,{href:J.buttonLink,variant:"accent",size:"sm",external:!0,className:"whitespace-nowrap",children:J.buttonText},void 0,!1,void 0,this),W&&h0(Q2,{size:"md",...H?{className:H}:{}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h0(L$,{variant:"ghost",ssrOnClick:"toggleMobileMenu()",type:"button",className:G0("md:hidden p-2 h-auto rounded-[10px]","text-theme-muted border border-theme bg-theme-subtle","hover:text-accent hover:border-brand/40"),"aria-label":"Toggle navigation menu","aria-expanded":"false","aria-controls":"mobile-menu",id:"mobile-menu-button",children:h0("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[h0("path",{className:"menu-icon",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"},void 0,!1,void 0,this),h0("path",{className:"close-icon hidden",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h0("nav",{id:"mobile-menu","aria-label":"Mobile navigation",className:"md:hidden overflow-hidden transition-all duration-300 ease-in-out max-h-0 opacity-0",children:h0("div",{className:"flex flex-col gap-3 mt-4 pb-2 pt-4 border-t border-theme",children:[Y.map((F)=>h0("a",{href:F.href,onclick:"closeMobileMenu()",className:"nav-link",children:F.label},F.href,!1,void 0,this)),J&&h0(t1,{href:J.buttonLink,variant:"accent",size:"sm",external:!0,className:"mt-2",children:J.buttonText},void 0,!1,void 0,this),W&&h0("div",{className:"pt-2 mt-2 border-t border-theme",children:h0(Q2,{size:"sm",...H?{className:H}:{}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as Gj}from"preact/jsx-dev-runtime";var aG=({html:$,className:X})=>{return Gj("article",{className:G0(`prose prose-lg max-w-none
747
+ `}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as p1}from"preact/jsx-dev-runtime";var $j={github:($)=>p1("svg",{className:$,fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),instagram:($)=>p1("svg",{className:$,fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{d:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),linkedin:($)=>p1("svg",{className:$,fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),email:($)=>p1("svg",{className:$,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},void 0,!1,void 0,this)},void 0,!1,void 0,this),website:($)=>p1("svg",{className:$,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:p1("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"},void 0,!1,void 0,this)},void 0,!1,void 0,this)};function rG({links:$,className:X,iconClassName:G="w-5 h-5"}){if($.length===0)return null;return p1("div",{className:G0("flex gap-4 items-center",X),children:$.map((Y,J)=>{let W=$j[Y.platform],H=`${Y.platform.charAt(0).toUpperCase()}${Y.platform.slice(1)}`;return p1("a",{href:Y.url,target:"_blank",rel:"noopener noreferrer","aria-label":Y.label??H,className:"inline-block transition-opacity hover:opacity-70",children:W(G)},`${Y.platform}-${J}`,!1,void 0,this)})},void 0,!1,void 0,this)}import{jsxDEV as x1}from"preact/jsx-dev-runtime";function iG({cta:$,variant:X="centered",socialLinks:G}){if(X==="editorial")return x1("section",{className:"cta-bg-pattern py-28 md:py-32 px-6 md:px-12",children:x1("div",{className:"max-w-5xl mx-auto",children:[x1("span",{className:"inline-flex items-center gap-[0.6rem] font-mono text-[0.7rem] font-medium uppercase tracking-[0.22em] text-accent mb-6 before:content-[''] before:w-[18px] before:h-px before:bg-accent",children:"Get in touch"},void 0,!1,void 0,this),x1("h2",{className:"font-heading font-normal text-heading leading-[1.05] tracking-[-0.02em] text-[clamp(2.25rem,4.5vw,3.5rem)] max-w-[18ch] mb-10 [font-variation-settings:'opsz'_96,'SOFT'_60]",children:$.heading},void 0,!1,void 0,this),x1("div",{className:"flex flex-wrap items-center gap-7",children:[x1("a",{href:$.buttonLink,className:"inline-flex items-center gap-2 font-mono text-[0.78rem] font-medium uppercase tracking-[0.14em] bg-accent text-theme-inverse px-6 py-[0.95rem] rounded-xl transition-[background,transform] duration-150 hover:bg-[var(--color-text)] hover:-translate-y-px",children:[$.buttonText,x1("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G&&G.length>0&&G.map((Y,J)=>x1("a",{href:Y.url,target:"_blank",rel:"noopener noreferrer",className:"font-mono text-[0.72rem] font-medium uppercase tracking-[0.16em] text-theme-muted hover:text-accent transition-colors relative pb-[3px] before:content-[''] before:absolute before:left-0 before:right-full before:bottom-0 before:h-px before:bg-accent before:transition-[right] before:duration-300 hover:before:right-0",children:Y.label??Y.platform},J,!1,void 0,this))]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);return x1("section",{className:"cta-bg-pattern bg-brand py-16 md:py-24 px-6 md:px-12",children:x1("div",{className:"max-w-4xl mx-auto text-center",children:[x1("h2",{className:"text-2xl md:text-3xl font-bold text-inverse mb-4 font-heading",children:$.heading},void 0,!1,void 0,this),$.subtitle&&x1("p",{className:"text-base md:text-lg text-inverse opacity-80 mb-6 max-w-md mx-auto",children:$.subtitle},void 0,!1,void 0,this),x1(t1,{href:$.buttonLink,variant:"outline-light",size:"lg",children:$.buttonText},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as nG}from"preact/jsx-dev-runtime";var oG=({primaryNavigation:$,secondaryNavigation:X,copyright:G,socialLinks:Y,title:J,tagline:W,children:H})=>{return nG("footer",{className:"footer pt-14 pb-10 bg-footer border-t border-rule",children:nG("div",{className:"container mx-auto px-6 max-w-layout",children:nG(sG,{primaryNav:$,secondaryNav:X,copyright:G??"Powered by Rizom",socialLinks:Y,showThemeToggle:!0,variant:"default",title:J,tagline:W,children:H},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)};import{jsxDEV as o}from"preact/jsx-dev-runtime";var Xj=D0("",{variants:{variant:{full:"",icon:"",text:""}},defaultVariants:{variant:"full"}});function a6({variant:$,height:X=32,className:G,color:Y="currentColor",title:J}){if(J)return o("span",{className:G0("font-heading font-medium text-[1.4rem] leading-none tracking-[-0.01em] [font-variation-settings:'opsz'_24,'SOFT'_50]",G),children:J},void 0,!1,void 0,this);let W=$??"full";if(W==="icon")return o("svg",{height:X,viewBox:"0 0 60 59",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:G,"aria-label":"Rizom logo",children:o("g",{id:"Group",children:[o("path",{id:"Vector",d:"M29.8235 22.1142C31.7219 22.1142 33.5065 22.8336 34.8489 24.1412C36.1913 25.4481 36.9309 27.1856 36.9309 29.0338C36.9309 30.882 36.192 32.6195 34.8489 33.9265C33.5065 35.2334 31.7219 35.9535 29.8235 35.9535C27.9251 35.9535 26.1405 35.234 24.7981 33.9265C23.4557 32.6189 22.7167 30.882 22.7167 29.0338C22.7167 27.1856 23.4557 25.4481 24.7981 24.1412C26.1405 22.8342 27.9251 22.1142 29.8235 22.1142ZM29.8235 17.1881C23.104 17.1881 17.6562 22.4918 17.6562 29.0338C17.6562 35.5758 23.104 40.8796 29.8235 40.8796C36.543 40.8796 41.9907 35.5758 41.9907 29.0338C41.9907 22.4918 36.543 17.1881 29.8235 17.1881Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_2",children:[o("path",{id:"Vector_2",d:"M13.2469 29.0338C13.2469 33.2709 14.9323 37.1315 17.6846 40.0136C11.8265 39.6006 7.20517 34.8424 7.20517 29.0338C7.20517 23.2253 11.8265 18.4671 17.6846 18.0541C14.9323 20.9362 13.2469 24.798 13.2469 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_3",d:"M52.4385 29.0338C52.4385 34.8424 47.8172 39.6006 41.9591 40.0136C44.7114 37.1315 46.3967 33.2709 46.3967 29.0338C46.3967 24.7968 44.7114 20.9362 41.9591 18.0541C47.8172 18.4671 52.4385 23.2253 52.4385 29.0338Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_3",children:[o("path",{id:"Vector_4",d:"M59.7265 29.0338C59.7265 32.172 57.6563 34.84 54.7735 35.8142C56.0553 31.4628 56.056 26.6042 54.7735 22.2535C57.6563 23.2277 59.7265 25.8957 59.7265 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_5",d:"M3.97003 30.5734C4.08122 32.3778 4.3873 34.1312 4.86955 35.8139C-1.62448 33.824 -1.62136 24.2431 4.86955 22.2544C4.17929 24.8932 3.65582 27.8106 3.97003 30.5734Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),o("path",{id:"Vector_6",d:"M41.0996 40.8504C40.6754 46.5537 35.788 51.0529 29.8218 51.0529C23.8557 51.0529 18.9683 46.5537 18.5441 40.8504C21.5044 43.5299 25.471 45.1708 29.8218 45.1708C34.1726 45.1708 38.1393 43.5299 41.0996 40.8504Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_7",d:"M41.0996 17.2173C38.1393 14.5377 34.1739 12.8969 29.8218 12.8969C25.4698 12.8969 21.5044 14.5377 18.5441 17.2173C18.9683 11.514 23.8557 7.01479 29.8218 7.01479C35.788 7.01479 40.6754 11.514 41.0996 17.2173Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_4",children:[o("path",{id:"Vector_8",d:"M36.7862 53.3262C34.7417 59.6493 24.9007 59.6462 22.8574 53.3262C27.3257 54.5742 32.318 54.5742 36.7862 53.3262Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_9",d:"M36.7862 4.74088C32.318 3.49294 27.3257 3.49294 22.8574 4.74088C24.902 -1.58155 34.743 -1.57851 36.7862 4.74088Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);if(W==="text")return o("svg",{height:X,viewBox:"0 0 138 33",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:G,"aria-label":"Rizom",children:o("g",{id:"RIZOM",children:[o("path",{d:"M5.24978 24.3876V31.7373H0V0.715879H10.0223C12.4086 0.715879 14.2858 1.43176 15.6539 2.86352C17.0538 4.26346 17.7538 6.01339 17.7538 8.1133C17.7538 9.99049 16.9902 11.7086 15.463 13.2676C17.7538 13.7767 19.5992 15.0494 20.9991 17.0857C22.3991 19.1219 23.099 21.54 23.099 24.3399V31.7373H17.8493V24.8172C17.8493 22.5263 17.2606 20.7287 16.0834 19.4242C14.938 18.1197 13.4108 17.4675 11.5018 17.4675C9.72005 17.4675 8.22466 18.0879 7.01562 19.3287C5.83839 20.5696 5.24978 22.2559 5.24978 24.3876ZM9.11553 5.82249H5.24978V14.7948C5.4725 14.5721 5.72704 14.3494 6.01339 14.1267C6.29974 13.904 6.602 13.6972 6.92017 13.5063C7.27015 13.3154 7.55651 13.1563 7.77922 13.029C8.03376 12.8699 8.36783 12.6949 8.78145 12.504C9.19507 12.2813 9.49733 12.1222 9.68824 12.0268C11.5972 11.0086 12.5518 9.86323 12.5518 8.59055C12.5518 7.7315 12.2495 7.06334 11.645 6.58609C11.0405 6.07702 10.1973 5.82249 9.11553 5.82249Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M33.3536 0.715879V31.7373H28.1039V0.715879H33.3536Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M61.3617 0.715879L46.71 26.5353H61.5049V31.7373H37.6422L52.3416 5.91794H39.3603V0.715879H61.3617Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M79.0133 32.4055C74.5908 32.4055 70.8205 30.8305 67.7024 27.6807C64.6162 24.5308 63.0731 20.6969 63.0731 16.1789C63.0731 11.7245 64.6162 7.9224 67.7024 4.77253C70.8205 1.59084 74.5908 0 79.0133 0C83.4359 0 87.2062 1.59084 90.3242 4.77253C93.4741 7.9224 95.049 11.7245 95.049 16.1789C95.049 20.6969 93.49 24.5308 90.3719 27.6807C87.2539 30.8305 83.4677 32.4055 79.0133 32.4055ZM79.0133 27.0125C81.9723 27.0125 84.4699 25.9626 86.5062 23.8626C88.5743 21.7627 89.6083 19.2015 89.6083 16.1789C89.6083 13.1881 88.5743 10.6586 86.5062 8.59055C84.4699 6.49064 81.9723 5.44068 79.0133 5.44068C76.0862 5.44068 73.6045 6.49064 71.5682 8.59055C69.5319 10.6586 68.5138 13.1881 68.5138 16.1789C68.5138 19.2015 69.5319 21.7627 71.5682 23.8626C73.6045 25.9626 76.0862 27.0125 79.0133 27.0125Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M126.682 0C129.545 0 132.011 1.04996 134.079 3.14987C136.147 5.21796 137.182 7.82695 137.182 10.9768V31.6896H131.932V10.7859C131.932 9.29052 131.423 8.01785 130.405 6.96789C129.386 5.91794 128.146 5.39296 126.682 5.39296C125.25 5.39296 124.025 5.90203 123.007 6.92017C121.989 7.93831 121.48 9.14735 121.48 10.5473V31.7373H116.182L116.23 10.5473C116.23 9.17917 115.705 7.98603 114.655 6.96789C113.605 5.91794 112.364 5.39296 110.933 5.39296C109.437 5.39296 108.165 5.91794 107.115 6.96789C106.065 8.01785 105.54 9.29052 105.54 10.7859V31.7373H100.338L100.29 10.9768C100.29 7.82695 101.324 5.21796 103.392 3.14987C105.492 1.04996 108.005 0 110.933 0C114.146 0 116.771 1.24086 118.807 3.72257C120.844 1.24086 123.468 0 126.682 0Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this);let H=X,U=X*33/59,F=X*0.2;return o("div",{className:G0("inline-flex items-center",G),style:{gap:`${F}px`},"aria-label":"Rizom logo",children:[o("svg",{height:H,viewBox:"0 0 60 59",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:o("g",{id:"Group",children:[o("path",{id:"Vector",d:"M29.8235 22.1142C31.7219 22.1142 33.5065 22.8336 34.8489 24.1412C36.1913 25.4481 36.9309 27.1856 36.9309 29.0338C36.9309 30.882 36.192 32.6195 34.8489 33.9265C33.5065 35.2334 31.7219 35.9535 29.8235 35.9535C27.9251 35.9535 26.1405 35.234 24.7981 33.9265C23.4557 32.6189 22.7167 30.882 22.7167 29.0338C22.7167 27.1856 23.4557 25.4481 24.7981 24.1412C26.1405 22.8342 27.9251 22.1142 29.8235 22.1142ZM29.8235 17.1881C23.104 17.1881 17.6562 22.4918 17.6562 29.0338C17.6562 35.5758 23.104 40.8796 29.8235 40.8796C36.543 40.8796 41.9907 35.5758 41.9907 29.0338C41.9907 22.4918 36.543 17.1881 29.8235 17.1881Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_2",children:[o("path",{id:"Vector_2",d:"M13.2469 29.0338C13.2469 33.2709 14.9323 37.1315 17.6846 40.0136C11.8265 39.6006 7.20517 34.8424 7.20517 29.0338C7.20517 23.2253 11.8265 18.4671 17.6846 18.0541C14.9323 20.9362 13.2469 24.798 13.2469 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_3",d:"M52.4385 29.0338C52.4385 34.8424 47.8172 39.6006 41.9591 40.0136C44.7114 37.1315 46.3967 33.2709 46.3967 29.0338C46.3967 24.7968 44.7114 20.9362 41.9591 18.0541C47.8172 18.4671 52.4385 23.2253 52.4385 29.0338Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_3",children:[o("path",{id:"Vector_4",d:"M59.7265 29.0338C59.7265 32.172 57.6563 34.84 54.7735 35.8142C56.0553 31.4628 56.056 26.6042 54.7735 22.2535C57.6563 23.2277 59.7265 25.8957 59.7265 29.0338Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_5",d:"M3.97003 30.5734C4.08122 32.3778 4.3873 34.1312 4.86955 35.8139C-1.62448 33.824 -1.62136 24.2431 4.86955 22.2544C4.17929 24.8932 3.65582 27.8106 3.97003 30.5734Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this),o("path",{id:"Vector_6",d:"M41.0996 40.8504C40.6754 46.5537 35.788 51.0529 29.8218 51.0529C23.8557 51.0529 18.9683 46.5537 18.5441 40.8504C21.5044 43.5299 25.471 45.1708 29.8218 45.1708C34.1726 45.1708 38.1393 43.5299 41.0996 40.8504Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_7",d:"M41.0996 17.2173C38.1393 14.5377 34.1739 12.8969 29.8218 12.8969C25.4698 12.8969 21.5044 14.5377 18.5441 17.2173C18.9683 11.514 23.8557 7.01479 29.8218 7.01479C35.788 7.01479 40.6754 11.514 41.0996 17.2173Z",fill:Y},void 0,!1,void 0,this),o("g",{id:"Group_4",children:[o("path",{id:"Vector_8",d:"M36.7862 53.3262C34.7417 59.6493 24.9007 59.6462 22.8574 53.3262C27.3257 54.5742 32.318 54.5742 36.7862 53.3262Z",fill:Y},void 0,!1,void 0,this),o("path",{id:"Vector_9",d:"M36.7862 4.74088C32.318 3.49294 27.3257 3.49294 22.8574 4.74088C24.902 -1.58155 34.743 -1.57851 36.7862 4.74088Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),o("svg",{height:U,viewBox:"0 0 138 33",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:o("g",{id:"RIZOM",children:[o("path",{d:"M5.24978 24.3876V31.7373H0V0.715879H10.0223C12.4086 0.715879 14.2858 1.43176 15.6539 2.86352C17.0538 4.26346 17.7538 6.01339 17.7538 8.1133C17.7538 9.99049 16.9902 11.7086 15.463 13.2676C17.7538 13.7767 19.5992 15.0494 20.9991 17.0857C22.3991 19.1219 23.099 21.54 23.099 24.3399V31.7373H17.8493V24.8172C17.8493 22.5263 17.2606 20.7287 16.0834 19.4242C14.938 18.1197 13.4108 17.4675 11.5018 17.4675C9.72005 17.4675 8.22466 18.0879 7.01562 19.3287C5.83839 20.5696 5.24978 22.2559 5.24978 24.3876ZM9.11553 5.82249H5.24978V14.7948C5.4725 14.5721 5.72704 14.3494 6.01339 14.1267C6.29974 13.904 6.602 13.6972 6.92017 13.5063C7.27015 13.3154 7.55651 13.1563 7.77922 13.029C8.03376 12.8699 8.36783 12.6949 8.78145 12.504C9.19507 12.2813 9.49733 12.1222 9.68824 12.0268C11.5972 11.0086 12.5518 9.86323 12.5518 8.59055C12.5518 7.7315 12.2495 7.06334 11.645 6.58609C11.0405 6.07702 10.1973 5.82249 9.11553 5.82249Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M33.3536 0.715879V31.7373H28.1039V0.715879H33.3536Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M61.3617 0.715879L46.71 26.5353H61.5049V31.7373H37.6422L52.3416 5.91794H39.3603V0.715879H61.3617Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M79.0133 32.4055C74.5908 32.4055 70.8205 30.8305 67.7024 27.6807C64.6162 24.5308 63.0731 20.6969 63.0731 16.1789C63.0731 11.7245 64.6162 7.9224 67.7024 4.77253C70.8205 1.59084 74.5908 0 79.0133 0C83.4359 0 87.2062 1.59084 90.3242 4.77253C93.4741 7.9224 95.049 11.7245 95.049 16.1789C95.049 20.6969 93.49 24.5308 90.3719 27.6807C87.2539 30.8305 83.4677 32.4055 79.0133 32.4055ZM79.0133 27.0125C81.9723 27.0125 84.4699 25.9626 86.5062 23.8626C88.5743 21.7627 89.6083 19.2015 89.6083 16.1789C89.6083 13.1881 88.5743 10.6586 86.5062 8.59055C84.4699 6.49064 81.9723 5.44068 79.0133 5.44068C76.0862 5.44068 73.6045 6.49064 71.5682 8.59055C69.5319 10.6586 68.5138 13.1881 68.5138 16.1789C68.5138 19.2015 69.5319 21.7627 71.5682 23.8626C73.6045 25.9626 76.0862 27.0125 79.0133 27.0125Z",fill:Y},void 0,!1,void 0,this),o("path",{d:"M126.682 0C129.545 0 132.011 1.04996 134.079 3.14987C136.147 5.21796 137.182 7.82695 137.182 10.9768V31.6896H131.932V10.7859C131.932 9.29052 131.423 8.01785 130.405 6.96789C129.386 5.91794 128.146 5.39296 126.682 5.39296C125.25 5.39296 124.025 5.90203 123.007 6.92017C121.989 7.93831 121.48 9.14735 121.48 10.5473V31.7373H116.182L116.23 10.5473C116.23 9.17917 115.705 7.98603 114.655 6.96789C113.605 5.91794 112.364 5.39296 110.933 5.39296C109.437 5.39296 108.165 5.91794 107.115 6.96789C106.065 8.01785 105.54 9.29052 105.54 10.7859V31.7373H100.338L100.29 10.9768C100.29 7.82695 101.324 5.21796 103.392 3.14987C105.492 1.04996 108.005 0 110.933 0C114.146 0 116.771 1.24086 118.807 3.72257C120.844 1.24086 123.468 0 126.682 0Z",fill:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as p0}from"preact/jsx-dev-runtime";function MR({children:$,variant:X}){return p0("div",{className:X==="cta"?"font-mono text-[11px] font-medium uppercase tracking-[0.2em] text-white/70 mb-5":"font-mono text-[11px] font-medium uppercase tracking-[0.2em] text-accent/80 mb-5",children:$},void 0,!1,void 0,this)}function sG({primaryNav:$,secondaryNav:X,copyright:G,socialLinks:Y,showThemeToggle:J=!1,variant:W="default",title:H,tagline:U,children:F}){let M=W==="cta"?"text-white/70 hover:text-accent text-sm":"text-theme-muted hover:text-brand text-sm",Q=W==="cta"?"w-4 h-4 text-white opacity-40 hover:opacity-100 hover:text-accent":"w-4 h-4 text-theme-light hover:text-brand hover:opacity-100",q=X.length>0,A=Y&&Y.length>0,Z=Boolean(H),_=Array.isArray(F)?F.length>0:Boolean(F);return p0("div",{children:[p0("div",{className:"flex flex-col gap-10 sm:flex-row sm:items-start sm:gap-12",children:[Z&&p0("div",{className:"sm:max-w-[18rem] sm:flex-1",children:[p0("a",{href:"/",className:"text-logo inline-block mb-2",children:p0(a6,{title:H,className:"text-[1.25rem]"},void 0,!1,void 0,this)},void 0,!1,void 0,this),U&&p0("p",{className:`text-[0.85rem] leading-[1.55] ${W==="cta"?"text-white/60":"text-theme-muted"} max-w-[30ch]`,children:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p0("div",{className:"grid grid-cols-2 sm:flex sm:gap-12",children:[$.length>0&&p0("div",{children:[p0(MR,{variant:W,children:"Navigate"},void 0,!1,void 0,this),p0(T$,{items:$,orientation:"vertical",linkClassName:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q&&p0("div",{children:[p0(MR,{variant:W,children:"More"},void 0,!1,void 0,this),p0(T$,{items:X,orientation:"vertical",linkClassName:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_&&p0("div",{className:"sm:ml-auto sm:max-w-[20rem]",children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p0("div",{className:"mt-14 pt-6 border-t border-rule flex flex-row flex-wrap justify-between items-center gap-4",children:[G&&p0("p",{className:"font-mono text-[0.7rem] uppercase tracking-[0.16em] text-theme-light",children:G},void 0,!1,void 0,this),p0("div",{className:"flex items-center gap-5",children:[A&&p0(rG,{links:Y,iconClassName:Q},void 0,!1,void 0,this),J&&p0(Q2,{variant:"footer",size:"sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as h0}from"preact/jsx-dev-runtime";function w8({title:$,logo:X,titleClassName:G,wordmark:Y,navigation:J,cta:W,showThemeToggle:H=!1,themeToggleClassName:U}){return h0("header",{className:"sticky top-0 z-50 py-5 border-b border-rule bg-header",children:h0("div",{className:"px-6 md:px-12",children:[h0("div",{className:"max-w-layout mx-auto flex flex-row justify-between items-center gap-8",children:[h0("a",{href:"/",className:"text-logo hover:opacity-80 transition-opacity",children:Y?Y:X?h0(a6,{height:36},void 0,!1,void 0,this):G?h0("span",{className:G,children:$},void 0,!1,void 0,this):h0(a6,{title:$,height:36},void 0,!1,void 0,this)},void 0,!1,void 0,this),h0("nav",{className:"hidden md:flex gap-7","aria-label":"Main navigation",children:J.map((M)=>h0("a",{href:M.href,className:"nav-link",children:M.label},M.href,!1,void 0,this))},void 0,!1,void 0,this),h0("div",{className:"hidden md:flex items-center gap-4",children:[W&&h0(t1,{href:W.buttonLink,variant:"accent",size:"sm",external:!0,className:"whitespace-nowrap",children:W.buttonText},void 0,!1,void 0,this),H&&h0(Q2,{size:"md",...U?{className:U}:{}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h0(L$,{variant:"ghost",ssrOnClick:"toggleMobileMenu()",type:"button",className:G0("md:hidden p-2 h-auto rounded-[10px]","text-theme-muted border border-theme bg-theme-subtle","hover:text-accent hover:border-brand/40"),"aria-label":"Toggle navigation menu","aria-expanded":"false","aria-controls":"mobile-menu",id:"mobile-menu-button",children:h0("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[h0("path",{className:"menu-icon",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"},void 0,!1,void 0,this),h0("path",{className:"close-icon hidden",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h0("nav",{id:"mobile-menu","aria-label":"Mobile navigation",className:"md:hidden overflow-hidden transition-all duration-300 ease-in-out max-h-0 opacity-0",children:h0("div",{className:"flex flex-col gap-3 mt-4 pb-2 pt-4 border-t border-theme",children:[J.map((M)=>h0("a",{href:M.href,onclick:"closeMobileMenu()",className:"nav-link",children:M.label},M.href,!1,void 0,this)),W&&h0(t1,{href:W.buttonLink,variant:"accent",size:"sm",external:!0,className:"mt-2",children:W.buttonText},void 0,!1,void 0,this),H&&h0("div",{className:"pt-2 mt-2 border-t border-theme",children:h0(Q2,{size:"sm",...U?{className:U}:{}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as Gj}from"preact/jsx-dev-runtime";var aG=({html:$,className:X})=>{return Gj("article",{className:G0(`prose prose-lg max-w-none
747
748
  prose-h1:text-4xl prose-h1:font-bold prose-h1:mb-8 prose-h1:mt-0
748
749
  prose-h2:text-3xl prose-h2:font-semibold prose-h2:mt-16 prose-h2:mb-6 prose-h2:border-b prose-h2:pb-4
749
750
  prose-h3:text-2xl prose-h3:font-semibold prose-h3:mt-10 prose-h3:mb-4
@@ -786,7 +787,7 @@ The excerpt should be clear, concise, and compelling.`});I();U5();Z5();import{js
786
787
  Note: This is part of a series called "${G.seriesName}".`:""}`;return $.ai.generate({prompt:Y,templateName:"blog:generation"})}),$.eval.registerHandler("generateExcerpt",async(X)=>{let G=yj.parse(X);return $.ai.generate({prompt:`Title: ${G.title}
787
788
 
788
789
  Content:
789
- ${G.content}`,templateName:"blog:excerpt"})})}var jR={name:"@brains/blog",private:!0,version:"0.2.0-alpha.51",description:"AI-powered blog post generation from existing brain content",type:"module",exports:{".":"./src/index.ts"},scripts:{typecheck:"tsc --noEmit",test:"bun test",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix",eval:"cd evals && bun run brain-eval"},dependencies:{"@brains/plugins":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};class xR extends H2{entityType=l2.entityType;schema=n6;adapter=l2;constructor($={}){super("blog",jR,$,fG)}getEntityTypeConfig(){return{weight:2}}createGenerationHandler($){return new gG(this.logger.child("BlogGenerationJobHandler"),$)}getTemplates(){return PR()}getDataSources(){return[new pG(this.logger.child("BlogDataSource"))]}async onRegister($){let{RSSDataSource:X}=await Promise.resolve().then(() => (vR(),kR));$.entities.registerDataSource(new X(this.logger.child("RSSDataSource"))),await LR($,this.logger),CR($,this.logger),ER($,this.logger),IR($),this.logger.info("Blog plugin registered (routes auto-generated at /posts/)")}}Z5();A8();Q0();I();var bR=K.object({id:K.string(),template:K.string(),content:K.unknown().optional(),dataQuery:K.object({entityType:K.string().optional(),template:K.string().optional(),query:K.object({id:K.string().optional(),limit:K.number().optional(),offset:K.number().optional()}).passthrough().optional()}).passthrough().optional(),order:K.number().optional()}),hR=["primary","secondary"],yR=K.object({show:K.boolean().default(!1),label:K.string().optional(),slot:K.enum(hR).default("primary"),priority:K.number().min(0).max(100).default(50)}).optional(),fR=K.object({id:K.string(),path:K.string(),title:K.string().default(""),description:K.string().default(""),sections:K.array(bR).default([]),layout:K.string().default("default"),fullscreen:K.boolean().optional(),pluginId:K.string().optional(),sourceEntityType:K.string().optional(),external:K.boolean().optional(),navigation:yR}),mj=K.object({routes:K.array(fR),pluginId:K.string()}),pj=K.object({paths:K.array(K.string()).optional(),pluginId:K.string().optional()}),uj=K.object({pluginId:K.string().optional()}),dj=K.object({path:K.string()}),k$=K.object({label:K.string(),href:K.string(),priority:K.number()});I();var v$=K.object({heading:K.string().describe("Main CTA heading text"),buttonText:K.string().describe("Call-to-action button text"),buttonLink:K.string().describe("URL or anchor for the CTA button")}),x$=K.object({blurb:K.string().optional().describe("Short italic subtitle under the section title")}),b$=K.object({title:K.string().describe("The site's title"),description:K.string().describe("The site's description"),url:K.string().optional().describe("Canonical site URL"),copyright:K.string().optional().describe("Copyright notice text"),logo:K.boolean().optional().describe("Whether to display logo instead of title text in header"),themeMode:K.enum(["light","dark"]).optional().describe("Default theme mode"),analyticsScript:K.string().optional().describe("Analytics script HTML"),cta:v$.optional().describe("Call-to-action configuration"),sections:K.record(K.string(),x$).optional().describe("Optional per-section blurbs, keyed by section id (e.g. 'essays', 'presentations', 'about'). Used by homepage templates that render editorial section headers.")}),lj=K.object({platform:K.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:K.string().describe("Profile or contact URL"),label:K.string().optional().describe("Optional display label")}),cj=b$.extend({navigation:K.object({primary:K.array(k$),secondary:K.array(k$)}),copyright:K.string(),socialLinks:K.array(lj).optional().describe("Social media links from profile metadata")});I();var rj=K.string(),ij=K.object({id:K.string().min(1)}).passthrough(),nj=K.object({label:K.string().min(1)}).passthrough(),oj=K.object({layouts:K.record(K.unknown()),plugin:K.function(),routes:K.array(ij),entityDisplay:K.record(nj),staticAssets:K.record(K.string()).optional()}).passthrough(),sj=K.custom(($)=>oj.safeParse($).success);I();Q0();var gR=K.object({}),h$=N1.extend({id:K.literal("site-info"),entityType:K.literal("site-info"),metadata:gR}),E8=v$,J4=b$.omit({url:!0,analyticsScript:!0});Q0();class x5 extends V1{constructor(){super({entityType:"site-info",schema:h$,frontmatterSchema:J4,isSingleton:!0,hasBody:!1})}createSiteInfoContent($){let X=J4.parse($);return this.buildMarkdown("",X)}parseSiteInfoBody($){return this.parseFrontmatter($)}fromMarkdown($){return{content:$,entityType:"site-info"}}extractMetadata($){return{}}generateFrontMatter($){let X=this.parseFrontmatter($.content);return this.buildMarkdown("",X)}}var RX0=new x5;var TX0=new x5;var XS=new x5;async function I8($){let G=(await $.listEntities({entityType:"site-info",options:{limit:1}}))[0];if(!G)throw Error("Site info not found \u2014 create a site-info entity");return XS.parseSiteInfoBody(G.content)}I();var GS=J4.extend({navigation:K.object({primary:K.array(K.object({label:K.string(),href:K.string(),priority:K.number()})),secondary:K.array(K.object({label:K.string(),href:K.string(),priority:K.number()}))}),copyright:K.string(),socialLinks:K.array(K.object({platform:K.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:K.string().describe("Profile or contact URL"),label:K.string().optional().describe("Optional display label")})).optional().describe("Social media links from profile entity")});Q0();var y$=r6,q2=O5.extend(y$.shape);Q0();d2();I();var YS=new m1;class f${postsListUrl;id="personal:homepage";name="Personal Homepage DataSource";description="Fetches profile and blog posts for a personal homepage";constructor($){this.postsListUrl=$}async fetch($,X,G){let Y=G.entityService,[J,W,H]=await Promise.all([q5(Y),Y.listEntities({entityType:"post",options:{limit:20}}),I8(Y)]),U=YS.parseProfileBody(J,q2),F=W.sort(h6).slice(0,6).map(c2);if(!H.cta)throw Error("CTA not configured in site-info");let M={profile:U,posts:F,postsListUrl:this.postsListUrl,cta:H.cta};return X.parse(M)}}Q0();d2();var JS=new m1;class g${id="personal:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch($,X,G){let Y=await q5(G.entityService),W={profile:JS.parseProfileBody(Y,q2)};return X.parse(W)}}import{jsxDEV as U0,Fragment as mR}from"preact/jsx-dev-runtime";function WS($){return new Date($).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function HS($){return $.split(/(\*[^*]+\*)/).map((X,G)=>{if(X.startsWith("*")&&X.endsWith("*")&&X.length>2)return U0("em",{className:"font-sans italic font-medium text-theme-inverse tracking-[-0.015em] [font-variation-settings:'opsz'_72]",children:X.slice(1,-1)},G,!1,void 0,this);return X})}var MY=({profile:$,posts:X,postsListUrl:G,cta:Y})=>{let J=$.tagline??$.description,W=$.name.split(" ")[0];return U0(mR,{children:[U0(s0,{title:$.name,description:$.description??J??"Personal site",ogType:"website"},void 0,!1,void 0,this),U0("header",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col items-center justify-center px-6 md:px-12 pt-32 pb-24 gap-7",children:U0("div",{className:"w-full max-w-[1100px] mx-auto text-center flex flex-col items-center gap-7",children:[J&&U0("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:HS(J)},void 0,!1,void 0,this),$.description&&U0("p",{className:"text-[clamp(1.0625rem,1.4vw,1.3125rem)] leading-[1.5] text-theme-inverse opacity-95 max-w-[600px] mx-auto m-0",children:$.description},void 0,!1,void 0,this),U0("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[U0("a",{href:G,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-theme text-brand border-2 border-theme font-heading font-semibold text-[15px] hover:bg-theme-subtle hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Read the Blog ",U0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("a",{href:"/about",className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-inverse font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["About ",W]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),X.length>0&&U0("section",{className:"flex flex-col py-24 px-6 md:px-12 gap-11 bg-theme-subtle",children:[U0("div",{className:"flex justify-between items-end max-w-layout mx-auto w-full gap-6 flex-wrap",children:[U0("div",{children:[U0("span",{className:"block font-heading font-semibold text-[13px] uppercase tracking-[0.22em] text-brand mb-3 [font-variation-settings:'wdth'_85,'opsz'_12]",children:"The Archive"},void 0,!1,void 0,this),U0("h2",{className:"font-heading font-bold text-[clamp(2.25rem,5vw,3.75rem)] leading-none tracking-[-0.03em] text-heading m-0 [font-variation-settings:'wdth'_92,'opsz'_64]",children:["Recent"," ",U0("em",{className:"font-sans italic font-medium text-brand [font-variation-settings:'opsz'_60]",children:"posts"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U0("a",{href:G,className:"font-heading font-semibold text-[15px] text-brand inline-flex items-center gap-1.5 pb-1.5 border-b-2 border-current hover:text-brand-dark transition-colors [font-variation-settings:'wdth'_88,'opsz'_16]",children:["View the whole archive ",U0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U0("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(min(100%,320px),1fr))] gap-8 max-w-layout mx-auto w-full",children:X.map((H)=>U0("a",{href:H.url,className:"group flex flex-col bg-theme border border-theme rounded-md overflow-hidden hover:-translate-y-1 hover:border-brand/50 transition-all no-underline shadow-sm hover:shadow-lg",children:[H.coverImageUrl?U0("img",{src:H.coverImageUrl,alt:H.metadata.title,className:"w-full aspect-[16/10] object-cover bg-theme-muted"},void 0,!1,void 0,this):U0("div",{className:"w-full aspect-[16/10] bg-gradient-to-br from-brand to-accent","aria-hidden":"true"},void 0,!1,void 0,this),U0("div",{className:"flex flex-col gap-4 p-7 flex-1",children:[U0("div",{className:"flex flex-wrap items-center gap-3.5 font-heading text-[11px] font-semibold uppercase tracking-[0.18em] text-theme-muted [font-variation-settings:'wdth'_85,'opsz'_11]",children:[H.frontmatter.seriesName&&U0(mR,{children:[U0("span",{className:"text-brand",children:H.frontmatter.seriesName},void 0,!1,void 0,this),U0("span",{className:"w-[3px] h-[3px] rounded-full bg-current opacity-50","aria-hidden":"true"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("time",{children:WS(H.metadata.publishedAt??H.created)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("h3",{className:"font-sans font-semibold text-[clamp(1.375rem,1.8vw,1.625rem)] leading-[1.18] tracking-[-0.012em] text-heading m-0 text-balance",children:H.metadata.title},void 0,!1,void 0,this),H.frontmatter.excerpt&&U0("p",{className:"text-base leading-[1.55] text-theme-muted m-0 flex-1",children:H.frontmatter.excerpt},void 0,!1,void 0,this),U0("span",{className:"inline-flex items-center gap-1.5 font-heading font-semibold text-[13px] uppercase tracking-[0.14em] text-brand mt-1 [font-variation-settings:'wdth'_88,'opsz'_14]",children:["Read the post"," ",U0("span",{"aria-hidden":"true",className:"transition-transform group-hover:translate-x-1",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},H.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[U0("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),U0("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:Y.heading},void 0,!1,void 0,this),Y.subtitle&&U0("p",{className:"text-center text-base leading-[1.55] text-theme-on-dark opacity-80 max-w-[480px] m-0",children:Y.subtitle},void 0,!1,void 0,this),U0("a",{href:Y.buttonLink,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all mt-2 [font-variation-settings:'wdth'_92,'opsz'_18]",children:[Y.buttonText," ",U0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as X1,Fragment as US}from"preact/jsx-dev-runtime";var QY=({profile:$})=>{let X=`About ${$.name}`,G=$.description??$.intro??"About page",Y=Boolean($.email??$.website);return X1(US,{children:[X1(s0,{title:X,description:G,ogType:"profile"},void 0,!1,void 0,this),X1("section",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col px-6 md:px-12 pt-32 pb-24",children:X1("div",{className:"w-full max-w-3xl mx-auto flex flex-col gap-6",children:[X1("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,4.5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:$.name},void 0,!1,void 0,this),$.description&&X1("p",{className:"text-[clamp(1.0625rem,1.4vw,1.25rem)] leading-[1.55] text-theme-inverse opacity-95 max-w-2xl m-0",children:$.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$.story&&X1("section",{className:`py-24 px-6 md:px-12 bg-theme-subtle${Y?"":" flex-grow"}`,children:X1("div",{className:"max-w-3xl mx-auto",children:X1(i2,{markdown:$.story},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Y&&X1("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[X1("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),X1("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:["Say"," ",X1("em",{className:"font-sans italic font-medium text-accent [font-variation-settings:'opsz'_72]",children:"hi."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X1("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[$.email&&X1("a",{href:`mailto:${$.email}`,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Get in Touch ",X1("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.website&&X1("a",{href:$.website,className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-on-dark font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:"Website"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var pR={name:"@brains/site-personal",private:!0,version:"0.2.0-alpha.51",description:"Personal site composition package",type:"module",exports:{".":"./src/index.ts"},files:["src"],scripts:{typecheck:"tsc --noEmit",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix"},dependencies:{"@brains/blog":"workspace:*","@brains/identity-service":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};var FS=K.object({entityDisplay:K.object({post:K.object({label:K.string().default("Post"),pluralName:K.string().optional()}).default({})}).default({})});class qY extends d6{dependencies=["blog"];constructor($={}){super("personal-site",pR,$,FS)}async onRegister($){$.entities.extendFrontmatterSchema("anchor-profile",y$);let X=this.config.entityDisplay.post,G=`/${X.pluralName??X.label.toLowerCase()+"s"}`,Y=new f$(G);$.entities.registerDataSource(Y);let J=new g$;$.entities.registerDataSource(J);let W=K.object({profile:q2,posts:K.array(a1),postsListUrl:K.string(),cta:E8}),H=K.object({profile:q2});$.templates.register({homepage:L0({name:"homepage",description:"Personal homepage with recent blog posts",schema:W,dataSourceId:"personal:homepage",requiredPermission:"public",layout:{component:MY}}),about:L0({name:"about",description:"About page with profile",schema:H,dataSourceId:"personal:about",requiredPermission:"public",layout:{component:QY}})}),this.logger.info("Personal site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function OY($){return new qY($??{})}var ZY=[{id:"home",path:"/",title:"Home",description:"Personal site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"personal-site:homepage",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"personal-site:about",dataQuery:{}}]}];import{jsxDEV as h1}from"preact/jsx-dev-runtime";function RY({sections:$,siteInfo:X}){let G=[...X.navigation.primary,...X.navigation.secondary].filter((Y)=>Y.label!=="Home");return h1("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[h1(w8,{title:X.title,titleClassName:"font-heading font-bold text-2xl",navigation:X.navigation.primary,showThemeToggle:!0,themeToggleClassName:"bg-theme-toggle text-theme-toggle-icon hover:bg-theme-toggle-hover rounded-[10px]",...X.logo!==void 0?{logo:X.logo}:{}},void 0,!1,void 0,this),h1("main",{className:"flex-grow flex flex-col",children:$},void 0,!1,void 0,this),h1("footer",{className:"bg-footer text-footer border-t border-theme",children:h1("div",{className:"max-w-layout mx-auto flex flex-col md:flex-row justify-between items-center py-8 px-6 md:px-8",children:[h1("div",{className:"flex flex-col gap-1 mb-4 md:mb-0",children:[h1("span",{className:"text-brand font-heading font-bold text-lg",children:X.title},void 0,!1,void 0,this),X.description&&h1("span",{className:"text-theme-muted text-xs",children:X.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h1("nav",{className:"flex flex-wrap justify-center gap-x-6 gap-y-2 mb-4 md:mb-0",children:G.map((Y)=>h1("a",{href:Y.href,className:"text-theme-muted text-[13px] hover:text-brand transition-colors",children:Y.label},Y.href,!1,void 0,this))},void 0,!1,void 0,this),h1("div",{className:"flex items-center gap-4",children:[X.copyright&&h1("span",{className:"text-theme-light text-[11px]",children:X.copyright},void 0,!1,void 0,this),h1(Q2,{variant:"footer",size:"sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}Q0();I();U5();Q0();I();Q0();I();I();Q0();var MS=K.enum(["draft","queued","published"]),O2=K.object({title:K.string(),slug:K.string().optional(),description:K.string().optional(),author:K.string().optional(),status:MS,publishedAt:K.string().datetime().optional(),event:K.string().optional(),coverImageId:K.string().optional()}),QS=O2.pick({title:!0,description:!0,status:!0,publishedAt:!0,coverImageId:!0}).extend({slug:K.string()}),m$=N1.extend({entityType:K.literal("deck"),metadata:QS}),p$=m$.extend({frontmatter:O2,body:K.string()}),j8=p$.extend({url:K.string().optional(),typeLabel:K.string().optional(),listUrl:K.string().optional(),listLabel:K.string().optional(),coverImageUrl:K.string().optional(),coverImageWidth:K.number().optional(),coverImageHeight:K.number().optional()});class AY extends V1{constructor(){super({entityType:"deck",schema:m$,frontmatterSchema:O2,supportsCoverImage:!0})}validateSlideStructure($){if(!/^---$/gm.test($))throw Error("Invalid deck: markdown must contain slide separators (---) to be a valid presentation")}toMarkdown($){let X=this.extractBody($.content);this.validateSlideStructure(X);try{let G=this.parseFrontMatter($.content,O2),Y={...G,slug:G.slug??$.metadata.slug};return this.buildMarkdown(X,Y)}catch{return X}}fromMarkdown($){let X=this.parseFrontmatter($),G=this.extractBody($);this.validateSlideStructure(G);let Y=X.slug??f1(X.title),J=X.status;return{entityType:"deck",content:$,metadata:{slug:Y,title:X.title,description:X.description,status:J,publishedAt:X.publishedAt,coverImageId:X.coverImageId}}}generateTitle($){return $.metadata.title}generateSummary($){if($.metadata.description)return $.metadata.description;return`Presentation: ${$.metadata.title}`}generateFrontMatter($){return this.toMarkdown($)}}var S8=new AY;I();U5();var qS=K.object({markdown:K.string().describe("Markdown content with slide separators (---)")}),BY=L0({name:"deck-detail",description:"Render a presentation deck as Reveal.js slides",schema:qS,dataSourceId:"decks:entities",requiredPermission:"public",layout:{component:cG,fullscreen:!0}});U5();I();var VY=K.object({decks:K.array(p$)}),NY=K.object({decks:K.array(j8),pageTitle:K.string().optional()});import{jsxDEV as wY}from"preact/jsx-dev-runtime";var _Y=({decks:$,pageTitle:X})=>{let G=$.map((Y)=>({id:Y.id,url:Y.url,title:Y.frontmatter.title,date:Y.frontmatter.publishedAt??Y.created,description:Y.frontmatter.description}));return wY("div",{className:"deck-list bg-theme",children:wY("div",{className:"container mx-auto px-6 md:px-12 max-w-4xl py-16 md:py-24",children:wY(D8,{title:X??"Presentations",items:G},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)};I();class u$ extends i9{constructor(){super(VY,{title:"Deck List",mappings:[{key:"decks",label:"Decks",type:"array",itemType:"object"}]})}}var zY=L0({name:"deck-list",description:"List view of all presentation decks",schema:NY,dataSourceId:"decks:entities",requiredPermission:"public",formatter:new u$,layout:{component:_Y}});I();Q0();var OS=K.object({title:K.string().max(80).describe("A short, punchy title (2-5 words) that's memorable and evocative"),content:K.string().describe("Full slide deck content in markdown format with slide separators (---). Each slide should have a header and focused content."),description:K.string().describe("A concise 1-2 sentence summary that captures the essence of the talk")}),uR=L0({name:"decks:generation",description:"Template for AI to generate complete slide decks from prompts",schema:OS,dataSourceId:"shell:ai-content",requiredPermission:"public",useKnowledgeContext:!0,basePrompt:`You are creating slide decks in a distinctive voice that blends philosophy, technology, and culture.
790
+ ${G.content}`,templateName:"blog:excerpt"})})}var jR={name:"@brains/blog",private:!0,version:"0.2.0-alpha.53",description:"AI-powered blog post generation from existing brain content",type:"module",exports:{".":"./src/index.ts"},scripts:{typecheck:"tsc --noEmit",test:"bun test",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix",eval:"cd evals && bun run brain-eval"},dependencies:{"@brains/plugins":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};class xR extends H2{entityType=l2.entityType;schema=n6;adapter=l2;constructor($={}){super("blog",jR,$,fG)}getEntityTypeConfig(){return{weight:2}}createGenerationHandler($){return new gG(this.logger.child("BlogGenerationJobHandler"),$)}getTemplates(){return PR()}getDataSources(){return[new pG(this.logger.child("BlogDataSource"))]}async onRegister($){let{RSSDataSource:X}=await Promise.resolve().then(() => (vR(),kR));$.entities.registerDataSource(new X(this.logger.child("RSSDataSource"))),await LR($,this.logger),CR($,this.logger),ER($,this.logger),IR($),this.logger.info("Blog plugin registered (routes auto-generated at /posts/)")}}Z5();A8();Q0();I();var bR=K.object({id:K.string(),template:K.string(),content:K.unknown().optional(),dataQuery:K.object({entityType:K.string().optional(),template:K.string().optional(),query:K.object({id:K.string().optional(),limit:K.number().optional(),offset:K.number().optional()}).passthrough().optional()}).passthrough().optional(),order:K.number().optional()}),hR=["primary","secondary"],yR=K.object({show:K.boolean().default(!1),label:K.string().optional(),slot:K.enum(hR).default("primary"),priority:K.number().min(0).max(100).default(50)}).optional(),fR=K.object({id:K.string(),path:K.string(),title:K.string().default(""),description:K.string().default(""),sections:K.array(bR).default([]),layout:K.string().default("default"),fullscreen:K.boolean().optional(),pluginId:K.string().optional(),sourceEntityType:K.string().optional(),external:K.boolean().optional(),navigation:yR}),mj=K.object({routes:K.array(fR),pluginId:K.string()}),pj=K.object({paths:K.array(K.string()).optional(),pluginId:K.string().optional()}),uj=K.object({pluginId:K.string().optional()}),dj=K.object({path:K.string()}),k$=K.object({label:K.string(),href:K.string(),priority:K.number()});I();var v$=K.object({heading:K.string().describe("Main CTA heading text"),buttonText:K.string().describe("Call-to-action button text"),buttonLink:K.string().describe("URL or anchor for the CTA button")}),x$=K.object({blurb:K.string().optional().describe("Short italic subtitle under the section title")}),b$=K.object({title:K.string().describe("The site's title"),description:K.string().describe("The site's description"),url:K.string().optional().describe("Canonical site URL"),copyright:K.string().optional().describe("Copyright notice text"),logo:K.boolean().optional().describe("Whether to display logo instead of title text in header"),themeMode:K.enum(["light","dark"]).optional().describe("Default theme mode"),analyticsScript:K.string().optional().describe("Analytics script HTML"),cta:v$.optional().describe("Call-to-action configuration"),sections:K.record(K.string(),x$).optional().describe("Optional per-section blurbs, keyed by section id (e.g. 'essays', 'presentations', 'about'). Used by homepage templates that render editorial section headers.")}),lj=K.object({platform:K.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:K.string().describe("Profile or contact URL"),label:K.string().optional().describe("Optional display label")}),cj=b$.extend({navigation:K.object({primary:K.array(k$),secondary:K.array(k$)}),copyright:K.string(),socialLinks:K.array(lj).optional().describe("Social media links from profile metadata")});I();var rj=K.string(),ij=K.object({id:K.string().min(1)}).passthrough(),nj=K.object({label:K.string().min(1)}).passthrough(),oj=K.object({layouts:K.record(K.unknown()),plugin:K.function(),routes:K.array(ij),entityDisplay:K.record(nj),staticAssets:K.record(K.string()).optional()}).passthrough(),sj=K.custom(($)=>oj.safeParse($).success);I();Q0();var gR=K.object({}),h$=N1.extend({id:K.literal("site-info"),entityType:K.literal("site-info"),metadata:gR}),E8=v$,J4=b$.omit({url:!0,analyticsScript:!0});Q0();class x5 extends V1{constructor(){super({entityType:"site-info",schema:h$,frontmatterSchema:J4,isSingleton:!0,hasBody:!1})}createSiteInfoContent($){let X=J4.parse($);return this.buildMarkdown("",X)}parseSiteInfoBody($){return this.parseFrontmatter($)}fromMarkdown($){return{content:$,entityType:"site-info"}}extractMetadata($){return{}}generateFrontMatter($){let X=this.parseFrontmatter($.content);return this.buildMarkdown("",X)}}var RX0=new x5;var TX0=new x5;var XS=new x5;async function I8($){let G=(await $.listEntities({entityType:"site-info",options:{limit:1}}))[0];if(!G)throw Error("Site info not found \u2014 create a site-info entity");return XS.parseSiteInfoBody(G.content)}I();var GS=J4.extend({navigation:K.object({primary:K.array(K.object({label:K.string(),href:K.string(),priority:K.number()})),secondary:K.array(K.object({label:K.string(),href:K.string(),priority:K.number()}))}),copyright:K.string(),socialLinks:K.array(K.object({platform:K.enum(["github","instagram","linkedin","email","website"]).describe("Social media platform"),url:K.string().describe("Profile or contact URL"),label:K.string().optional().describe("Optional display label")})).optional().describe("Social media links from profile entity")});Q0();var y$=r6,q2=O5.extend(y$.shape);Q0();d2();I();var YS=new m1;class f${postsListUrl;id="personal:homepage";name="Personal Homepage DataSource";description="Fetches profile and blog posts for a personal homepage";constructor($){this.postsListUrl=$}async fetch($,X,G){let Y=G.entityService,[J,W,H]=await Promise.all([q5(Y),Y.listEntities({entityType:"post",options:{limit:20}}),I8(Y)]),U=YS.parseProfileBody(J,q2),F=W.sort(h6).slice(0,6).map(c2);if(!H.cta)throw Error("CTA not configured in site-info");let M={profile:U,posts:F,postsListUrl:this.postsListUrl,cta:H.cta};return X.parse(M)}}Q0();d2();var JS=new m1;class g${id="personal:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch($,X,G){let Y=await q5(G.entityService),W={profile:JS.parseProfileBody(Y,q2)};return X.parse(W)}}import{jsxDEV as U0,Fragment as mR}from"preact/jsx-dev-runtime";function WS($){return new Date($).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function HS($){return $.split(/(\*[^*]+\*)/).map((X,G)=>{if(X.startsWith("*")&&X.endsWith("*")&&X.length>2)return U0("em",{className:"font-sans italic font-medium text-theme-inverse tracking-[-0.015em] [font-variation-settings:'opsz'_72]",children:X.slice(1,-1)},G,!1,void 0,this);return X})}var MY=({profile:$,posts:X,postsListUrl:G,cta:Y})=>{let J=$.tagline??$.description,W=$.name.split(" ")[0];return U0(mR,{children:[U0(s0,{title:$.name,description:$.description??J??"Personal site",ogType:"website"},void 0,!1,void 0,this),U0("header",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col items-center justify-center px-6 md:px-12 pt-32 pb-24 gap-7",children:U0("div",{className:"w-full max-w-[1100px] mx-auto text-center flex flex-col items-center gap-7",children:[J&&U0("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:HS(J)},void 0,!1,void 0,this),$.description&&U0("p",{className:"text-[clamp(1.0625rem,1.4vw,1.3125rem)] leading-[1.5] text-theme-inverse opacity-95 max-w-[600px] mx-auto m-0",children:$.description},void 0,!1,void 0,this),U0("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[U0("a",{href:G,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-theme text-brand border-2 border-theme font-heading font-semibold text-[15px] hover:bg-theme-subtle hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Read the Blog ",U0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("a",{href:"/about",className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-inverse font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["About ",W]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),X.length>0&&U0("section",{className:"flex flex-col py-24 px-6 md:px-12 gap-11 bg-theme-subtle",children:[U0("div",{className:"flex justify-between items-end max-w-layout mx-auto w-full gap-6 flex-wrap",children:[U0("div",{children:[U0("span",{className:"block font-heading font-semibold text-[13px] uppercase tracking-[0.22em] text-brand mb-3 [font-variation-settings:'wdth'_85,'opsz'_12]",children:"The Archive"},void 0,!1,void 0,this),U0("h2",{className:"font-heading font-bold text-[clamp(2.25rem,5vw,3.75rem)] leading-none tracking-[-0.03em] text-heading m-0 [font-variation-settings:'wdth'_92,'opsz'_64]",children:["Recent"," ",U0("em",{className:"font-sans italic font-medium text-brand [font-variation-settings:'opsz'_60]",children:"posts"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U0("a",{href:G,className:"font-heading font-semibold text-[15px] text-brand inline-flex items-center gap-1.5 pb-1.5 border-b-2 border-current hover:text-brand-dark transition-colors [font-variation-settings:'wdth'_88,'opsz'_16]",children:["View the whole archive ",U0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U0("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(min(100%,320px),1fr))] gap-8 max-w-layout mx-auto w-full",children:X.map((H)=>U0("a",{href:H.url,className:"group flex flex-col bg-theme border border-theme rounded-md overflow-hidden hover:-translate-y-1 hover:border-brand/50 transition-all no-underline shadow-sm hover:shadow-lg",children:[H.coverImageUrl?U0("img",{src:H.coverImageUrl,alt:H.metadata.title,className:"w-full aspect-[16/10] object-cover bg-theme-muted"},void 0,!1,void 0,this):U0("div",{className:"w-full aspect-[16/10] bg-gradient-to-br from-brand to-accent","aria-hidden":"true"},void 0,!1,void 0,this),U0("div",{className:"flex flex-col gap-4 p-7 flex-1",children:[U0("div",{className:"flex flex-wrap items-center gap-3.5 font-heading text-[11px] font-semibold uppercase tracking-[0.18em] text-theme-muted [font-variation-settings:'wdth'_85,'opsz'_11]",children:[H.frontmatter.seriesName&&U0(mR,{children:[U0("span",{className:"text-brand",children:H.frontmatter.seriesName},void 0,!1,void 0,this),U0("span",{className:"w-[3px] h-[3px] rounded-full bg-current opacity-50","aria-hidden":"true"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("time",{children:WS(H.metadata.publishedAt??H.created)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("h3",{className:"font-sans font-semibold text-[clamp(1.375rem,1.8vw,1.625rem)] leading-[1.18] tracking-[-0.012em] text-heading m-0 text-balance",children:H.metadata.title},void 0,!1,void 0,this),H.frontmatter.excerpt&&U0("p",{className:"text-base leading-[1.55] text-theme-muted m-0 flex-1",children:H.frontmatter.excerpt},void 0,!1,void 0,this),U0("span",{className:"inline-flex items-center gap-1.5 font-heading font-semibold text-[13px] uppercase tracking-[0.14em] text-brand mt-1 [font-variation-settings:'wdth'_88,'opsz'_14]",children:["Read the post"," ",U0("span",{"aria-hidden":"true",className:"transition-transform group-hover:translate-x-1",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},H.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U0("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[U0("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),U0("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:Y.heading},void 0,!1,void 0,this),Y.subtitle&&U0("p",{className:"text-center text-base leading-[1.55] text-theme-on-dark opacity-80 max-w-[480px] m-0",children:Y.subtitle},void 0,!1,void 0,this),U0("a",{href:Y.buttonLink,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all mt-2 [font-variation-settings:'wdth'_92,'opsz'_18]",children:[Y.buttonText," ",U0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as X1,Fragment as US}from"preact/jsx-dev-runtime";var QY=({profile:$})=>{let X=`About ${$.name}`,G=$.description??$.intro??"About page",Y=Boolean($.email??$.website);return X1(US,{children:[X1(s0,{title:X,description:G,ogType:"profile"},void 0,!1,void 0,this),X1("section",{className:"hero-decor bg-brand text-theme-inverse relative flex flex-col px-6 md:px-12 pt-32 pb-24",children:X1("div",{className:"w-full max-w-3xl mx-auto flex flex-col gap-6",children:[X1("h1",{className:"font-heading font-bold text-[clamp(2.5rem,6vw,4.5rem)] leading-[1.05] tracking-[-0.035em] text-theme-inverse text-balance m-0 [font-variation-settings:'wdth'_90,'opsz'_96]",children:$.name},void 0,!1,void 0,this),$.description&&X1("p",{className:"text-[clamp(1.0625rem,1.4vw,1.25rem)] leading-[1.55] text-theme-inverse opacity-95 max-w-2xl m-0",children:$.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$.story&&X1("section",{className:`py-24 px-6 md:px-12 bg-theme-subtle${Y?"":" flex-grow"}`,children:X1("div",{className:"max-w-3xl mx-auto",children:X1(i2,{markdown:$.story},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Y&&X1("section",{className:"cta-decor bg-theme-dark text-theme-on-dark flex-grow flex flex-col items-center justify-center py-24 px-6 md:px-12 gap-5",children:[X1("span",{className:"font-heading font-medium text-xs uppercase tracking-[0.24em] text-accent [font-variation-settings:'wdth'_85,'opsz'_12]",children:"Get in touch"},void 0,!1,void 0,this),X1("h2",{className:"text-center font-heading font-bold text-[clamp(2rem,4vw,3rem)] leading-none tracking-[-0.03em] text-theme-on-dark m-0 [font-variation-settings:'wdth'_90,'opsz'_64]",children:["Say"," ",X1("em",{className:"font-sans italic font-medium text-accent [font-variation-settings:'opsz'_72]",children:"hi."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X1("div",{className:"flex flex-wrap justify-center gap-3.5 mt-2",children:[$.email&&X1("a",{href:`mailto:${$.email}`,className:"inline-flex items-center gap-2 rounded-full py-3.5 px-7 bg-brand text-theme-inverse border-2 border-brand font-heading font-semibold text-[15px] hover:bg-brand-dark hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:["Get in Touch ",X1("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.website&&X1("a",{href:$.website,className:"rounded-full py-3.5 px-7 border-2 border-theme-light text-theme-on-dark font-heading font-semibold text-[15px] hover:bg-brand-dark hover:border-theme hover:-translate-y-0.5 transition-all [font-variation-settings:'wdth'_92,'opsz'_18]",children:"Website"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var pR={name:"@brains/site-personal",private:!0,version:"0.2.0-alpha.53",description:"Personal site composition package",type:"module",exports:{".":"./src/index.ts"},files:["src"],scripts:{typecheck:"tsc --noEmit",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix"},dependencies:{"@brains/blog":"workspace:*","@brains/identity-service":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};var FS=K.object({entityDisplay:K.object({post:K.object({label:K.string().default("Post"),pluralName:K.string().optional()}).default({})}).default({})});class qY extends d6{dependencies=["blog"];constructor($={}){super("personal-site",pR,$,FS)}async onRegister($){$.entities.extendFrontmatterSchema("anchor-profile",y$);let X=this.config.entityDisplay.post,G=`/${X.pluralName??X.label.toLowerCase()+"s"}`,Y=new f$(G);$.entities.registerDataSource(Y);let J=new g$;$.entities.registerDataSource(J);let W=K.object({profile:q2,posts:K.array(a1),postsListUrl:K.string(),cta:E8}),H=K.object({profile:q2});$.templates.register({homepage:L0({name:"homepage",description:"Personal homepage with recent blog posts",schema:W,dataSourceId:"personal:homepage",requiredPermission:"public",layout:{component:MY}}),about:L0({name:"about",description:"About page with profile",schema:H,dataSourceId:"personal:about",requiredPermission:"public",layout:{component:QY}})}),this.logger.info("Personal site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function OY($){return new qY($??{})}var ZY=[{id:"home",path:"/",title:"Home",description:"Personal site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"personal-site:homepage",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"personal-site:about",dataQuery:{}}]}];import{jsxDEV as h1}from"preact/jsx-dev-runtime";function RY({sections:$,siteInfo:X}){let G=[...X.navigation.primary,...X.navigation.secondary].filter((Y)=>Y.label!=="Home");return h1("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[h1(w8,{title:X.title,titleClassName:"font-heading font-bold text-2xl",navigation:X.navigation.primary,showThemeToggle:!0,themeToggleClassName:"bg-theme-toggle text-theme-toggle-icon hover:bg-theme-toggle-hover rounded-[10px]",...X.logo!==void 0?{logo:X.logo}:{}},void 0,!1,void 0,this),h1("main",{className:"flex-grow flex flex-col",children:$},void 0,!1,void 0,this),h1("footer",{className:"bg-footer text-footer border-t border-theme",children:h1("div",{className:"max-w-layout mx-auto flex flex-col md:flex-row justify-between items-center py-8 px-6 md:px-8",children:[h1("div",{className:"flex flex-col gap-1 mb-4 md:mb-0",children:[h1("span",{className:"text-brand font-heading font-bold text-lg",children:X.title},void 0,!1,void 0,this),X.description&&h1("span",{className:"text-theme-muted text-xs",children:X.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h1("nav",{className:"flex flex-wrap justify-center gap-x-6 gap-y-2 mb-4 md:mb-0",children:G.map((Y)=>h1("a",{href:Y.href,className:"text-theme-muted text-[13px] hover:text-brand transition-colors",children:Y.label},Y.href,!1,void 0,this))},void 0,!1,void 0,this),h1("div",{className:"flex items-center gap-4",children:[X.copyright&&h1("span",{className:"text-theme-light text-[11px]",children:X.copyright},void 0,!1,void 0,this),h1(Q2,{variant:"footer",size:"sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}Q0();I();U5();Q0();I();Q0();I();I();Q0();var MS=K.enum(["draft","queued","published"]),O2=K.object({title:K.string(),slug:K.string().optional(),description:K.string().optional(),author:K.string().optional(),status:MS,publishedAt:K.string().datetime().optional(),event:K.string().optional(),coverImageId:K.string().optional()}),QS=O2.pick({title:!0,description:!0,status:!0,publishedAt:!0,coverImageId:!0}).extend({slug:K.string()}),m$=N1.extend({entityType:K.literal("deck"),metadata:QS}),p$=m$.extend({frontmatter:O2,body:K.string()}),j8=p$.extend({url:K.string().optional(),typeLabel:K.string().optional(),listUrl:K.string().optional(),listLabel:K.string().optional(),coverImageUrl:K.string().optional(),coverImageWidth:K.number().optional(),coverImageHeight:K.number().optional()});class AY extends V1{constructor(){super({entityType:"deck",schema:m$,frontmatterSchema:O2,supportsCoverImage:!0})}validateSlideStructure($){if(!/^---$/gm.test($))throw Error("Invalid deck: markdown must contain slide separators (---) to be a valid presentation")}toMarkdown($){let X=this.extractBody($.content);this.validateSlideStructure(X);try{let G=this.parseFrontMatter($.content,O2),Y={...G,slug:G.slug??$.metadata.slug};return this.buildMarkdown(X,Y)}catch{return X}}fromMarkdown($){let X=this.parseFrontmatter($),G=this.extractBody($);this.validateSlideStructure(G);let Y=X.slug??f1(X.title),J=X.status;return{entityType:"deck",content:$,metadata:{slug:Y,title:X.title,description:X.description,status:J,publishedAt:X.publishedAt,coverImageId:X.coverImageId}}}generateTitle($){return $.metadata.title}generateSummary($){if($.metadata.description)return $.metadata.description;return`Presentation: ${$.metadata.title}`}generateFrontMatter($){return this.toMarkdown($)}}var S8=new AY;I();U5();var qS=K.object({markdown:K.string().describe("Markdown content with slide separators (---)")}),BY=L0({name:"deck-detail",description:"Render a presentation deck as Reveal.js slides",schema:qS,dataSourceId:"decks:entities",requiredPermission:"public",layout:{component:cG,fullscreen:!0}});U5();I();var VY=K.object({decks:K.array(p$)}),NY=K.object({decks:K.array(j8),pageTitle:K.string().optional()});import{jsxDEV as wY}from"preact/jsx-dev-runtime";var _Y=({decks:$,pageTitle:X})=>{let G=$.map((Y)=>({id:Y.id,url:Y.url,title:Y.frontmatter.title,date:Y.frontmatter.publishedAt??Y.created,description:Y.frontmatter.description}));return wY("div",{className:"deck-list bg-theme",children:wY("div",{className:"container mx-auto px-6 md:px-12 max-w-4xl py-16 md:py-24",children:wY(D8,{title:X??"Presentations",items:G},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)};I();class u$ extends i9{constructor(){super(VY,{title:"Deck List",mappings:[{key:"decks",label:"Decks",type:"array",itemType:"object"}]})}}var zY=L0({name:"deck-list",description:"List view of all presentation decks",schema:NY,dataSourceId:"decks:entities",requiredPermission:"public",formatter:new u$,layout:{component:_Y}});I();Q0();var OS=K.object({title:K.string().max(80).describe("A short, punchy title (2-5 words) that's memorable and evocative"),content:K.string().describe("Full slide deck content in markdown format with slide separators (---). Each slide should have a header and focused content."),description:K.string().describe("A concise 1-2 sentence summary that captures the essence of the talk")}),uR=L0({name:"decks:generation",description:"Template for AI to generate complete slide decks from prompts",schema:OS,dataSourceId:"shell:ai-content",requiredPermission:"public",useKnowledgeContext:!0,basePrompt:`You are creating slide decks in a distinctive voice that blends philosophy, technology, and culture.
790
791
 
791
792
  Your task is to generate a complete slide deck based on the user's prompt.
792
793
 
@@ -798,9 +799,10 @@ Style guidelines:
798
799
  5. Voice: First-person when appropriate. Opinionated and direct. Skip the hedging language.
799
800
  6. Examples: Use real, specific examples from the brain's context. Avoid generic hypotheticals.
800
801
  7. Structure: Tell a story, not a list of features. Build an argument or narrative arc.
801
- 8. NO "Agenda" slides listing what you'll cover. Jump into the content.
802
- 9. NO generic "Questions?" or "Thank you" ending slides. End with a call to action or thought-provoking final point.
803
- 10. NO bullet-point heavy slides with 5+ items. If you have that much, split into multiple slides.
802
+ 8. When the prompt touches philosophy, include at least one named philosophical reference or short quote (e.g. Heidegger, Kittler, de Certeau, Sloterdijk) and connect it to the technical argument.
803
+ 9. NO "Agenda" slides listing what you'll cover. Jump into the content.
804
+ 10. NO generic "Questions?" or "Thank you" ending slides. End with a call to action or thought-provoking final point.
805
+ 11. NO bullet-point heavy slides with 5+ items. If you have that much, split into multiple slides.
804
806
 
805
807
  Format requirements:
806
808
  - Use "---" on its own line to separate slides
@@ -854,12 +856,12 @@ Add your conclusion here`,F=F??`Presentation: ${H}`,await this.reportProgress(X,
854
856
  Note: This presentation is for "${J}".`:""}`,P=await this.context.ai.generate({prompt:D,templateName:"decks:generation"});H=H??P.title,U=U??P.content,F=F??P.description,await this.reportProgress(X,{progress:50,message:`Generated deck: "${H}"`})}else if(!F)await this.reportProgress(X,{progress:30,message:"Generating description with AI"}),F=(await this.context.ai.generate({prompt:`Title: ${H}
855
857
 
856
858
  Content:
857
- ${U}`,templateName:"decks:description"})).description,await this.reportProgress(X,{progress:50,message:"Description generated"});else await this.reportProgress(X,{progress:50,message:"Using provided content"});if(!H||!U)this.failEarly("Title and content are required");let Q={slug:f1(H),title:H,status:"draft"},q=await q8({entityType:"deck",title:H,deriveId:(_)=>_,regeneratePrompt:"Generate a different presentation deck title on the same topic.",context:this.context});if(q!==H)Q.title=q,Q.slug=f1(q);let A={title:Q.title,status:Q.status,slug:Q.slug,description:F,author:Y,event:J},Z=W2(U,A);return{id:q,content:Z,metadata:Q,title:q,resultExtras:{title:q,slug:Q.slug},createOptions:{deduplicateId:!0}}}summarizeDataForLog($){return{prompt:$.prompt,title:$.title}}}var nR={name:"@brains/decks",private:!0,version:"0.2.0-alpha.51",description:"Presentation decks plugin for creating and viewing slide presentations",type:"module",exports:{".":"./src/index.ts"},scripts:{typecheck:"tsc --noEmit",test:"bun test",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix",eval:"cd evals && bun run brain-eval"},dependencies:{"@brains/image":"workspace:*","@brains/plugins":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};class oR extends H2{entityType=S8.entityType;schema=S8.schema;adapter=S8;constructor(){super("decks",nR)}createGenerationHandler($){return new EY(this.logger.child("DeckGenerationJobHandler"),$)}getTemplates(){return{"deck-detail":BY,"deck-list":zY,generation:uR,description:dR}}getDataSources(){return[new TY(this.logger)]}getEntityTypeConfig(){return{weight:1.5}}async onRegister($){await this.registerWithPublishPipeline($),this.subscribeToPublishExecute($),this.registerEvalHandlers($),this.logger.info("Decks plugin registered")}async registerWithPublishPipeline($){await $.messaging.send({type:"publish:register",payload:{entityType:"deck",provider:{name:"internal",publish:async()=>({id:"internal"})}}})}subscribeToPublishExecute($){$.messaging.subscribe("publish:execute",async(X)=>{let{entityType:G,entityId:Y}=X.payload;if(G!=="deck")return{success:!0};try{let J=await $.entityService.getEntity({entityType:"deck",id:Y});if(!J)return await $.messaging.send({type:"publish:report:failure",payload:{entityType:G,entityId:Y,error:`Deck not found: ${Y}`}}),{success:!0};if(J.metadata.status==="published")return{success:!0};let W=new Date().toISOString(),H={...J,metadata:{...J.metadata,status:"published",publishedAt:W}};await $.entityService.updateEntity({entity:{...H,content:this.adapter.toMarkdown(H)}}),await $.messaging.send({type:"publish:report:success",payload:{entityType:G,entityId:Y,result:{id:Y}}})}catch(J){await $.messaging.send({type:"publish:report:failure",payload:{entityType:G,entityId:Y,error:S0(J)}})}return{success:!0}})}registerEvalHandlers($){$.eval.registerHandler("generateDeck",async(X)=>{let G=K.object({prompt:K.string(),event:K.string().optional()}).parse(X);return $.ai.generate({prompt:`${G.prompt}${G.event?`
859
+ ${U}`,templateName:"decks:description"})).description,await this.reportProgress(X,{progress:50,message:"Description generated"});else await this.reportProgress(X,{progress:50,message:"Using provided content"});if(!H||!U)this.failEarly("Title and content are required");let Q={slug:f1(H),title:H,status:"draft"},q=await q8({entityType:"deck",title:H,deriveId:(_)=>_,regeneratePrompt:"Generate a different presentation deck title on the same topic.",context:this.context});if(q!==H)Q.title=q,Q.slug=f1(q);let A={title:Q.title,status:Q.status,slug:Q.slug,description:F,author:Y,event:J},Z=W2(U,A);return{id:q,content:Z,metadata:Q,title:q,resultExtras:{title:q,slug:Q.slug},createOptions:{deduplicateId:!0}}}summarizeDataForLog($){return{prompt:$.prompt,title:$.title}}}var nR={name:"@brains/decks",private:!0,version:"0.2.0-alpha.53",description:"Presentation decks plugin for creating and viewing slide presentations",type:"module",exports:{".":"./src/index.ts"},scripts:{typecheck:"tsc --noEmit",test:"bun test",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix",eval:"cd evals && bun run brain-eval"},dependencies:{"@brains/image":"workspace:*","@brains/plugins":"workspace:*","@brains/utils":"workspace:*"},devDependencies:{"@brains/app":"workspace:*","@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};class oR extends H2{entityType=S8.entityType;schema=S8.schema;adapter=S8;constructor(){super("decks",nR)}createGenerationHandler($){return new EY(this.logger.child("DeckGenerationJobHandler"),$)}getTemplates(){return{"deck-detail":BY,"deck-list":zY,generation:uR,description:dR}}getDataSources(){return[new TY(this.logger)]}getEntityTypeConfig(){return{weight:1.5}}async onRegister($){await this.registerWithPublishPipeline($),this.subscribeToPublishExecute($),this.registerEvalHandlers($),this.logger.info("Decks plugin registered")}async registerWithPublishPipeline($){await $.messaging.send({type:"publish:register",payload:{entityType:"deck",provider:{name:"internal",publish:async()=>({id:"internal"})}}})}subscribeToPublishExecute($){$.messaging.subscribe("publish:execute",async(X)=>{let{entityType:G,entityId:Y}=X.payload;if(G!=="deck")return{success:!0};try{let J=await $.entityService.getEntity({entityType:"deck",id:Y});if(!J)return await $.messaging.send({type:"publish:report:failure",payload:{entityType:G,entityId:Y,error:`Deck not found: ${Y}`}}),{success:!0};if(J.metadata.status==="published")return{success:!0};let W=new Date().toISOString(),H={...J,metadata:{...J.metadata,status:"published",publishedAt:W}};await $.entityService.updateEntity({entity:{...H,content:this.adapter.toMarkdown(H)}}),await $.messaging.send({type:"publish:report:success",payload:{entityType:G,entityId:Y,result:{id:Y}}})}catch(J){await $.messaging.send({type:"publish:report:failure",payload:{entityType:G,entityId:Y,error:S0(J)}})}return{success:!0}})}registerEvalHandlers($){$.eval.registerHandler("generateDeck",async(X)=>{let G=K.object({prompt:K.string(),event:K.string().optional()}).parse(X);return $.ai.generate({prompt:`${G.prompt}${G.event?`
858
860
 
859
861
  Note: This presentation is for "${G.event}".`:""}`,templateName:"decks:generation"})}),$.eval.registerHandler("generateDescription",async(X)=>{let G=K.object({title:K.string(),content:K.string()}).parse(X);return $.ai.generate({prompt:`Title: ${G.title}
860
862
 
861
863
  Content:
862
- ${G.content}`,templateName:"decks:description"})})}}I();Q0();var c$=r6.extend({expertise:K.array(K.string()).optional().describe("Skills, domains, areas of focus"),currentFocus:K.string().optional().describe("What you're currently working on"),availability:K.string().optional().describe("What you're open to (consulting, speaking, etc.)")}),Z2=O5.extend(c$.shape);Q0();d2();I();var _S=new m1;class r${postsListUrl;decksListUrl;id="professional:homepage-list";name="Homepage List DataSource";description="Fetches profile, blog posts, and presentation decks for homepage";constructor($,X){this.postsListUrl=$;this.decksListUrl=X}async fetch($,X,G){let Y=G.entityService,[J,W,H,U]=await Promise.all([q5(Y),Y.listEntities({entityType:"post",options:{limit:20}}),Y.listEntities({entityType:"deck",options:{limit:20}}),I8(Y)]),F=_S.parseProfileBody(J,Z2),M=W.sort(h6).slice(0,3).map(c2),Q=H.sort(h6).slice(0,3).map(k8);if(!U.cta)throw Error("CTA not configured in site-info");let q={profile:F,posts:M,decks:Q,postsListUrl:this.postsListUrl,decksListUrl:this.decksListUrl,cta:U.cta,sections:U.sections??{}};return X.parse(q)}}Q0();d2();var zS=new m1;class i${id="professional:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch($,X,G){let Y=await q5(G.entityService),W={profile:zS.parseProfileBody(Y,Z2)};return X.parse(W)}}import{jsxDEV as C0,Fragment as LS}from"preact/jsx-dev-runtime";var DS="grid md:grid-cols-[14rem_1px_1fr] gap-y-2 gap-x-0 md:gap-16 items-start",PS="border-t md:border-t-0 md:border-l border-rule-strong md:self-stretch",IY=({number:$,title:X,blurb:G,children:Y})=>C0("section",{className:"py-20 border-b border-rule",children:C0("div",{className:"container mx-auto px-6 md:px-12 max-w-6xl",children:C0("div",{className:DS,children:[C0(XY,{title:X,number:$,blurb:G},void 0,!1,void 0,this),C0("div",{className:PS,"aria-hidden":"true"},void 0,!1,void 0,this),C0("div",{className:"mt-6 md:mt-0",children:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),jY=({profile:$,posts:X,decks:G,postsListUrl:Y,decksListUrl:J,cta:W,sections:H})=>{let U=$.tagline||$.description,F=X.map((Z)=>({id:Z.id,url:Z.url,title:Z.metadata.title,date:Z.metadata.publishedAt||Z.created,description:Z.frontmatter.excerpt,series:Z.frontmatter.seriesName&&Z.frontmatter.seriesIndex?{name:Z.frontmatter.seriesName,index:Z.frontmatter.seriesIndex}:void 0})),M=G.map((Z)=>({id:Z.id,url:Z.url,title:Z.frontmatter.title||Z.id,date:Z.frontmatter.publishedAt??Z.created,description:Z.frontmatter.description})),Q=$.name||"Home",q=$.intro||$.description||U||"Professional site",A=Boolean($.description)||$.expertise!==void 0&&$.expertise.length>0;return C0(LS,{children:[C0(s0,{title:Q,description:q,ogType:"website"},void 0,!1,void 0,this),C0("div",{className:"homepage-list bg-theme",children:[C0("header",{className:"hero-bg-pattern relative w-full px-6 md:px-12 pt-28 pb-24 md:pt-28 md:pb-24 overflow-hidden border-b border-rule",children:C0("div",{className:"relative z-10 max-w-6xl mx-auto w-full",children:[$.name&&C0("div",{className:"flex items-center gap-[0.6rem] mb-6 font-mono text-[0.7rem] font-medium uppercase tracking-[0.22em] text-accent",children:[C0("span",{className:"w-[18px] h-px bg-accent","aria-hidden":"true"},void 0,!1,void 0,this),C0("span",{children:$.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U&&C0("h1",{className:"font-heading text-[clamp(2.75rem,6.5vw,5.5rem)] font-normal text-heading leading-[1.02] tracking-[-0.025em] max-w-[18ch] [font-variation-settings:'opsz'_144,'SOFT'_30]",children:I$(U,"italic font-normal text-accent [font-variation-settings:'opsz'_144,'SOFT'_80]")},void 0,!1,void 0,this),$.intro&&C0("p",{className:"font-heading font-light text-[clamp(1.1rem,1.8vw,1.4rem)] leading-[1.5] text-theme-muted max-w-[42ch] mt-8 [font-variation-settings:'opsz'_24]",children:I$($.intro,"italic text-accent")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),C0(IY,{number:"01",title:"Essays",blurb:H.essays?.blurb,children:C0(E$,{items:F,viewAllUrl:Y,viewAllLabel:"View all essays"},void 0,!1,void 0,this)},void 0,!1,void 0,this),M.length>0&&C0(IY,{number:"02",title:"Presentations",blurb:H.presentations?.blurb,children:C0(E$,{items:M,viewAllUrl:J,viewAllLabel:"View all presentations"},void 0,!1,void 0,this)},void 0,!1,void 0,this),A&&C0(IY,{number:"03",title:"About",blurb:H.about?.blurb,children:C0("div",{className:"flex flex-col gap-8",children:[$.description&&C0("p",{className:"font-heading font-light text-[1.25rem] leading-[1.55] text-theme max-w-[55ch] [font-variation-settings:'opsz'_24,'SOFT'_50]",children:$.description},void 0,!1,void 0,this),$.expertise&&$.expertise.length>0&&C0(GY,{subjects:$.expertise},void 0,!1,void 0,this),C0("a",{href:"/about",className:"mt-6 inline-flex items-center gap-2 font-mono text-[0.7rem] font-medium uppercase tracking-[0.18em] text-accent pb-1 relative before:content-[''] before:absolute before:left-0 before:right-full before:bottom-0 before:h-px before:bg-accent before:transition-[right] before:duration-300 hover:before:right-0",children:["Learn more",C0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),C0(iG,{cta:W,variant:"editorial",socialLinks:$.socialLinks},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as B0,Fragment as CS}from"preact/jsx-dev-runtime";var SY=({profile:$})=>{let X=`About ${$.name||"Me"}`,G=$.description||$.intro||"About page",Y=$.expertise&&$.expertise.length>0||$.currentFocus||$.availability||$.email||$.website||$.socialLinks&&$.socialLinks.length>0;return B0(CS,{children:[B0(s0,{title:X,description:G,ogType:"profile"},void 0,!1,void 0,this),B0("div",{className:"about-page bg-theme",children:[B0("header",{className:"hero-bg-pattern relative w-full py-16 md:py-24 px-6 md:px-12 bg-theme overflow-hidden",children:B0("div",{className:"relative z-10 max-w-4xl mx-auto",children:[B0("h1",{className:"text-5xl md:text-6xl font-semibold mb-6 text-heading",children:["About ",$.name||"Me"]},void 0,!0,void 0,this),$.description&&B0("p",{className:"text-xl md:text-2xl text-theme-muted leading-relaxed",children:$.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),B0("div",{className:"container mx-auto px-6 md:px-12 max-w-4xl py-12 md:py-16",children:[$.story&&B0("section",{className:"content-section-reveal mb-20 md:mb-28",children:B0(i2,{markdown:$.story},void 0,!1,void 0,this)},void 0,!1,void 0,this),Y&&B0("div",{className:"content-section-reveal grid md:grid-cols-2 gap-x-16 gap-y-12",children:[$.expertise&&$.expertise.length>0&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Expertise"},void 0,!1,void 0,this),B0("ul",{className:"flex flex-wrap gap-3",children:$.expertise.map((J,W)=>B0("li",{className:$Y({variant:"accent",size:"lg"}),children:J},W,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.currentFocus&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Current Focus"},void 0,!1,void 0,this),B0("p",{className:"text-lg text-theme leading-relaxed",children:$.currentFocus},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.availability&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Availability"},void 0,!1,void 0,this),B0("p",{className:"text-lg text-theme leading-relaxed",children:$.availability},void 0,!1,void 0,this)]},void 0,!0,void 0,this),($.email||$.website||$.socialLinks&&$.socialLinks.length>0)&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Contact"},void 0,!1,void 0,this),B0("div",{className:"space-y-4",children:[$.email&&B0("p",{className:"text-lg",children:B0("a",{href:`mailto:${$.email}`,className:"text-brand hover:text-brand-dark transition-colors",children:$.email},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.website&&B0("p",{className:"text-lg",children:B0("a",{href:$.website,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:text-brand-dark transition-colors",children:$.website},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.socialLinks&&$.socialLinks.length>0&&B0("div",{className:"flex flex-wrap gap-4 mt-4",children:$.socialLinks.map((J,W)=>B0(t1,{href:J.url,external:!0,variant:"secondary",size:"md",children:J.label||J.platform},W,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as q1,Fragment as sR}from"preact/jsx-dev-runtime";var kY=()=>{return q1(sR,{children:[q1(s0,{title:"Thanks for subscribing!",description:"You've successfully subscribed to the newsletter."},void 0,!1,void 0,this),q1("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:q1("div",{className:"text-center max-w-md",children:[q1("div",{className:"text-6xl mb-6",children:"\uD83C\uDF89"},void 0,!1,void 0,this),q1("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Thanks for subscribing!"},void 0,!1,void 0,this),q1("p",{className:"text-lg text-theme-muted mb-8",children:"You'll receive a confirmation email shortly. Check your inbox to confirm your subscription."},void 0,!1,void 0,this),q1(t1,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},vY=()=>{return q1(sR,{children:[q1(s0,{title:"Subscription failed",description:"There was a problem with your subscription."},void 0,!1,void 0,this),q1("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:q1("div",{className:"text-center max-w-md",children:[q1("div",{className:"text-6xl mb-6",children:"\uD83D\uDE22"},void 0,!1,void 0,this),q1("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Something went wrong"},void 0,!1,void 0,this),q1("p",{className:"text-lg text-theme-muted mb-8",children:"We couldn't process your subscription. Please try again or contact us if the problem persists."},void 0,!1,void 0,this),q1(t1,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};I();var aR=K.object({label:K.string().describe("Display label for entity type (e.g., 'Essay')"),pluralName:K.string().optional().describe("URL path segment (defaults to label.toLowerCase() + 's')")}),tR=K.object({entityDisplay:K.object({post:aR,deck:aR}).describe("Display metadata for post and deck entity types (required for homepage)")});var eR={name:"@brains/site-professional",private:!0,version:"0.2.0-alpha.51",description:"Professional site composition package",type:"module",exports:{".":"./src/index.ts"},files:["src"],scripts:{typecheck:"tsc --noEmit",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix"},dependencies:{"@brains/blog":"workspace:*","@brains/decks":"workspace:*","@brains/identity-service":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};class xY extends d6{dependencies=["blog","decks"];constructor($){super("professional-site",eR,$,tR)}async onRegister($){$.entities.extendFrontmatterSchema("anchor-profile",c$);let X=this.config.entityDisplay.post,G=this.config.entityDisplay.deck,Y=`/${X.pluralName??X.label.toLowerCase()+"s"}`,J=`/${G.pluralName??G.label.toLowerCase()+"s"}`,W=new r$(Y,J);$.entities.registerDataSource(W);let H=new i$;$.entities.registerDataSource(H);let U=K.object({profile:Z2,posts:K.array(a1),decks:K.array(j8),postsListUrl:K.string(),decksListUrl:K.string(),cta:E8,sections:K.record(K.string(),x$)}),F=K.object({profile:Z2}),M=K.object({});$.templates.register({"homepage-list":L0({name:"homepage-list",description:"Professional homepage with essays and presentations",schema:U,dataSourceId:"professional:homepage-list",requiredPermission:"public",layout:{component:jY}}),about:L0({name:"about",description:"About page with full profile information",schema:F,dataSourceId:"professional:about",requiredPermission:"public",layout:{component:SY}}),"subscribe-thanks":L0({name:"subscribe-thanks",description:"Newsletter subscription success page",schema:M,requiredPermission:"public",layout:{component:kY}}),"subscribe-error":L0({name:"subscribe-error",description:"Newsletter subscription error page",schema:M,requiredPermission:"public",layout:{component:vY}})}),this.logger.info("Professional site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function bY($){return new xY($??{})}var hY=[{id:"home",path:"/",title:"Home",description:"Professional site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"professional-site:homepage-list",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"professional-site:about",dataQuery:{}}]},{id:"subscribe-thanks",path:"/subscribe/thanks",title:"Thanks for subscribing",description:"Newsletter subscription confirmation",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-thanks",template:"professional-site:subscribe-thanks",dataQuery:{},content:{}}]},{id:"subscribe-error",path:"/subscribe/error",title:"Subscription failed",description:"Newsletter subscription error",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-error",template:"professional-site:subscribe-error",dataQuery:{},content:{}}]}];import{jsxDEV as n$}from"preact/jsx-dev-runtime";function yY({sections:$,siteInfo:X,slots:G}){return n$("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[n$(w8,{title:X.title,navigation:X.navigation.primary,showThemeToggle:!0,...X.logo!==void 0?{logo:X.logo}:{}},void 0,!1,void 0,this),n$("main",{className:"flex-grow flex flex-col bg-theme",children:$},void 0,!1,void 0,this),n$(oG,{primaryNavigation:X.navigation.primary,secondaryNavigation:X.navigation.secondary,copyright:X.copyright,socialLinks:X.socialLinks,title:X.title,tagline:X.description,children:G?.getSlot("footer-top").map((Y)=>Y.render())},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function $A($){return{id:$.id,version:$.version,type:$.type,packageName:$.packageName}}var VJ0=RY;function NJ0($){return $A(OY($))}var ES=ZY,wJ0=ES,_J0=yY;function zJ0($){return $A(bY($))}var DJ0=hY;export{ES as routes,zJ0 as professionalSitePlugin,DJ0 as professionalRoutes,NJ0 as personalSitePlugin,wJ0 as personalRoutes,_J0 as ProfessionalLayout,VJ0 as PersonalLayout};
864
+ ${G.content}`,templateName:"decks:description"})})}}I();Q0();var c$=r6.extend({expertise:K.array(K.string()).optional().describe("Skills, domains, areas of focus"),currentFocus:K.string().optional().describe("What you're currently working on"),availability:K.string().optional().describe("What you're open to (consulting, speaking, etc.)")}),Z2=O5.extend(c$.shape);Q0();d2();I();var _S=new m1;class r${postsListUrl;decksListUrl;id="professional:homepage-list";name="Homepage List DataSource";description="Fetches profile, blog posts, and presentation decks for homepage";constructor($,X){this.postsListUrl=$;this.decksListUrl=X}async fetch($,X,G){let Y=G.entityService,[J,W,H,U]=await Promise.all([q5(Y),Y.listEntities({entityType:"post",options:{limit:20}}),Y.listEntities({entityType:"deck",options:{limit:20}}),I8(Y)]),F=_S.parseProfileBody(J,Z2),M=W.sort(h6).slice(0,3).map(c2),Q=H.sort(h6).slice(0,3).map(k8);if(!U.cta)throw Error("CTA not configured in site-info");let q={profile:F,posts:M,decks:Q,postsListUrl:this.postsListUrl,decksListUrl:this.decksListUrl,cta:U.cta,sections:U.sections??{}};return X.parse(q)}}Q0();d2();var zS=new m1;class i${id="professional:about";name="About Page DataSource";description="Fetches full profile data for the about page";async fetch($,X,G){let Y=await q5(G.entityService),W={profile:zS.parseProfileBody(Y,Z2)};return X.parse(W)}}import{jsxDEV as C0,Fragment as LS}from"preact/jsx-dev-runtime";var DS="grid md:grid-cols-[14rem_1px_1fr] gap-y-2 gap-x-0 md:gap-16 items-start",PS="border-t md:border-t-0 md:border-l border-rule-strong md:self-stretch",IY=({number:$,title:X,blurb:G,children:Y})=>C0("section",{className:"py-20 border-b border-rule px-6 md:px-12",children:C0("div",{className:"max-w-6xl mx-auto",children:C0("div",{className:DS,children:[C0(XY,{title:X,number:$,blurb:G},void 0,!1,void 0,this),C0("div",{className:PS,"aria-hidden":"true"},void 0,!1,void 0,this),C0("div",{className:"mt-6 md:mt-0",children:Y},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),jY=({profile:$,posts:X,decks:G,postsListUrl:Y,decksListUrl:J,cta:W,sections:H})=>{let U=$.tagline||$.description,F=X.map((Z)=>({id:Z.id,url:Z.url,title:Z.metadata.title,date:Z.metadata.publishedAt||Z.created,description:Z.frontmatter.excerpt,series:Z.frontmatter.seriesName&&Z.frontmatter.seriesIndex?{name:Z.frontmatter.seriesName,index:Z.frontmatter.seriesIndex}:void 0})),M=G.map((Z)=>({id:Z.id,url:Z.url,title:Z.frontmatter.title||Z.id,date:Z.frontmatter.publishedAt??Z.created,description:Z.frontmatter.description})),Q=$.name||"Home",q=$.intro||$.description||U||"Professional site",A=Boolean($.description)||$.expertise!==void 0&&$.expertise.length>0;return C0(LS,{children:[C0(s0,{title:Q,description:q,ogType:"website"},void 0,!1,void 0,this),C0("div",{className:"homepage-list bg-theme",children:[C0("header",{className:"hero-bg-pattern relative w-full px-6 md:px-12 pt-28 pb-24 md:pt-28 md:pb-24 overflow-hidden border-b border-rule",children:C0("div",{className:"relative z-10 max-w-6xl mx-auto w-full",children:[$.name&&C0("div",{className:"flex items-center gap-[0.6rem] mb-6 font-mono text-[0.7rem] font-medium uppercase tracking-[0.22em] text-accent",children:[C0("span",{className:"w-[18px] h-px bg-accent","aria-hidden":"true"},void 0,!1,void 0,this),C0("span",{children:$.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U&&C0("h1",{className:"font-heading text-[clamp(2.75rem,6.5vw,5.5rem)] font-normal text-heading leading-[1.02] tracking-[-0.025em] max-w-[18ch] [font-variation-settings:'opsz'_144,'SOFT'_30]",children:I$(U,"italic font-normal text-accent [font-variation-settings:'opsz'_144,'SOFT'_80]")},void 0,!1,void 0,this),$.intro&&C0("p",{className:"font-heading font-light text-[clamp(1.1rem,1.8vw,1.4rem)] leading-[1.5] text-theme-muted max-w-[42ch] mt-8 [font-variation-settings:'opsz'_24]",children:I$($.intro,"italic text-accent")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),C0(IY,{number:"01",title:"Essays",blurb:H.essays?.blurb,children:C0(E$,{items:F,viewAllUrl:Y,viewAllLabel:"View all essays"},void 0,!1,void 0,this)},void 0,!1,void 0,this),M.length>0&&C0(IY,{number:"02",title:"Presentations",blurb:H.presentations?.blurb,children:C0(E$,{items:M,viewAllUrl:J,viewAllLabel:"View all presentations"},void 0,!1,void 0,this)},void 0,!1,void 0,this),A&&C0(IY,{number:"03",title:"About",blurb:H.about?.blurb,children:C0("div",{className:"flex flex-col gap-8",children:[$.description&&C0("p",{className:"font-heading font-light text-[1.25rem] leading-[1.55] text-theme max-w-[55ch] [font-variation-settings:'opsz'_24,'SOFT'_50]",children:$.description},void 0,!1,void 0,this),$.expertise&&$.expertise.length>0&&C0(GY,{subjects:$.expertise},void 0,!1,void 0,this),C0("a",{href:"/about",className:"mt-6 inline-flex items-center gap-2 font-mono text-[0.7rem] font-medium uppercase tracking-[0.18em] text-accent pb-1 relative before:content-[''] before:absolute before:left-0 before:right-full before:bottom-0 before:h-px before:bg-accent before:transition-[right] before:duration-300 hover:before:right-0",children:["Learn more",C0("span",{"aria-hidden":"true",children:"\u2192"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),C0(iG,{cta:W,variant:"editorial",socialLinks:$.socialLinks},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as B0,Fragment as CS}from"preact/jsx-dev-runtime";var SY=({profile:$})=>{let X=`About ${$.name||"Me"}`,G=$.description||$.intro||"About page",Y=$.expertise&&$.expertise.length>0||$.currentFocus||$.availability||$.email||$.website||$.socialLinks&&$.socialLinks.length>0;return B0(CS,{children:[B0(s0,{title:X,description:G,ogType:"profile"},void 0,!1,void 0,this),B0("div",{className:"about-page bg-theme",children:[B0("header",{className:"hero-bg-pattern relative w-full py-16 md:py-24 px-6 md:px-12 bg-theme overflow-hidden",children:B0("div",{className:"relative z-10 max-w-4xl mx-auto",children:[B0("h1",{className:"text-5xl md:text-6xl font-semibold mb-6 text-heading",children:["About ",$.name||"Me"]},void 0,!0,void 0,this),$.description&&B0("p",{className:"text-xl md:text-2xl text-theme-muted leading-relaxed",children:$.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),B0("div",{className:"container mx-auto px-6 md:px-12 max-w-4xl py-12 md:py-16",children:[$.story&&B0("section",{className:"content-section-reveal mb-20 md:mb-28",children:B0(i2,{markdown:$.story},void 0,!1,void 0,this)},void 0,!1,void 0,this),Y&&B0("div",{className:"content-section-reveal grid md:grid-cols-2 gap-x-16 gap-y-12",children:[$.expertise&&$.expertise.length>0&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Expertise"},void 0,!1,void 0,this),B0("ul",{className:"flex flex-wrap gap-3",children:$.expertise.map((J,W)=>B0("li",{className:$Y({variant:"accent",size:"lg"}),children:J},W,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.currentFocus&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Current Focus"},void 0,!1,void 0,this),B0("p",{className:"text-lg text-theme leading-relaxed",children:$.currentFocus},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.availability&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Availability"},void 0,!1,void 0,this),B0("p",{className:"text-lg text-theme leading-relaxed",children:$.availability},void 0,!1,void 0,this)]},void 0,!0,void 0,this),($.email||$.website||$.socialLinks&&$.socialLinks.length>0)&&B0("section",{children:[B0("h2",{className:"text-sm tracking-widest uppercase text-theme-muted mb-6",children:"Contact"},void 0,!1,void 0,this),B0("div",{className:"space-y-4",children:[$.email&&B0("p",{className:"text-lg",children:B0("a",{href:`mailto:${$.email}`,className:"text-brand hover:text-brand-dark transition-colors",children:$.email},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.website&&B0("p",{className:"text-lg",children:B0("a",{href:$.website,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:text-brand-dark transition-colors",children:$.website},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.socialLinks&&$.socialLinks.length>0&&B0("div",{className:"flex flex-wrap gap-4 mt-4",children:$.socialLinks.map((J,W)=>B0(t1,{href:J.url,external:!0,variant:"secondary",size:"md",children:J.label||J.platform},W,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import{jsxDEV as q1,Fragment as sR}from"preact/jsx-dev-runtime";var kY=()=>{return q1(sR,{children:[q1(s0,{title:"Thanks for subscribing!",description:"You've successfully subscribed to the newsletter."},void 0,!1,void 0,this),q1("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:q1("div",{className:"text-center max-w-md",children:[q1("div",{className:"text-6xl mb-6",children:"\uD83C\uDF89"},void 0,!1,void 0,this),q1("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Thanks for subscribing!"},void 0,!1,void 0,this),q1("p",{className:"text-lg text-theme-muted mb-8",children:"You'll receive a confirmation email shortly. Check your inbox to confirm your subscription."},void 0,!1,void 0,this),q1(t1,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},vY=()=>{return q1(sR,{children:[q1(s0,{title:"Subscription failed",description:"There was a problem with your subscription."},void 0,!1,void 0,this),q1("div",{className:"min-h-[60vh] flex items-center justify-center px-6",children:q1("div",{className:"text-center max-w-md",children:[q1("div",{className:"text-6xl mb-6",children:"\uD83D\uDE22"},void 0,!1,void 0,this),q1("h1",{className:"text-3xl font-semibold mb-4 text-heading",children:"Something went wrong"},void 0,!1,void 0,this),q1("p",{className:"text-lg text-theme-muted mb-8",children:"We couldn't process your subscription. Please try again or contact us if the problem persists."},void 0,!1,void 0,this),q1(t1,{href:"/",variant:"primary",children:"Back to Home"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};I();var aR=K.object({label:K.string().describe("Display label for entity type (e.g., 'Essay')"),pluralName:K.string().optional().describe("URL path segment (defaults to label.toLowerCase() + 's')")}),tR=K.object({entityDisplay:K.object({post:aR,deck:aR}).describe("Display metadata for post and deck entity types (required for homepage)")});var eR={name:"@brains/site-professional",private:!0,version:"0.2.0-alpha.53",description:"Professional site composition package",type:"module",exports:{".":"./src/index.ts"},files:["src"],scripts:{typecheck:"tsc --noEmit",lint:"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix"},dependencies:{"@brains/blog":"workspace:*","@brains/decks":"workspace:*","@brains/identity-service":"workspace:*","@brains/plugins":"workspace:*","@brains/site-composition":"workspace:*","@brains/site-engine":"workspace:*","@brains/site-info":"workspace:*","@brains/templates":"workspace:*","@brains/ui-library":"workspace:*","@brains/utils":"workspace:*",preact:"^10.27.2"},devDependencies:{"@brains/eslint-config":"workspace:*","@brains/typescript-config":"workspace:*","@types/bun":"latest","bun-types":"latest",eslint:"^8.56.0",typescript:"^5.3.3"}};class xY extends d6{dependencies=["blog","decks"];constructor($){super("professional-site",eR,$,tR)}async onRegister($){$.entities.extendFrontmatterSchema("anchor-profile",c$);let X=this.config.entityDisplay.post,G=this.config.entityDisplay.deck,Y=`/${X.pluralName??X.label.toLowerCase()+"s"}`,J=`/${G.pluralName??G.label.toLowerCase()+"s"}`,W=new r$(Y,J);$.entities.registerDataSource(W);let H=new i$;$.entities.registerDataSource(H);let U=K.object({profile:Z2,posts:K.array(a1),decks:K.array(j8),postsListUrl:K.string(),decksListUrl:K.string(),cta:E8,sections:K.record(K.string(),x$)}),F=K.object({profile:Z2}),M=K.object({});$.templates.register({"homepage-list":L0({name:"homepage-list",description:"Professional homepage with essays and presentations",schema:U,dataSourceId:"professional:homepage-list",requiredPermission:"public",layout:{component:jY}}),about:L0({name:"about",description:"About page with full profile information",schema:F,dataSourceId:"professional:about",requiredPermission:"public",layout:{component:SY}}),"subscribe-thanks":L0({name:"subscribe-thanks",description:"Newsletter subscription success page",schema:M,requiredPermission:"public",layout:{component:kY}}),"subscribe-error":L0({name:"subscribe-error",description:"Newsletter subscription error page",schema:M,requiredPermission:"public",layout:{component:vY}})}),this.logger.info("Professional site plugin registered successfully")}async getTools(){return[]}async getResources(){return[]}}function bY($){return new xY($??{})}var hY=[{id:"home",path:"/",title:"Home",description:"Professional site homepage",layout:"default",navigation:{show:!0,label:"Home",slot:"secondary",priority:10},sections:[{id:"homepage",template:"professional-site:homepage-list",dataQuery:{}}]},{id:"about",path:"/about",title:"About",description:"About page",layout:"default",navigation:{show:!0,label:"About",slot:"primary",priority:90},sections:[{id:"about",template:"professional-site:about",dataQuery:{}}]},{id:"subscribe-thanks",path:"/subscribe/thanks",title:"Thanks for subscribing",description:"Newsletter subscription confirmation",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-thanks",template:"professional-site:subscribe-thanks",dataQuery:{},content:{}}]},{id:"subscribe-error",path:"/subscribe/error",title:"Subscription failed",description:"Newsletter subscription error",layout:"default",navigation:{show:!1},sections:[{id:"subscribe-error",template:"professional-site:subscribe-error",dataQuery:{},content:{}}]}];import{jsxDEV as n$}from"preact/jsx-dev-runtime";function yY({sections:$,siteInfo:X,slots:G,wordmark:Y}){return n$("div",{className:"flex flex-col min-h-screen bg-theme overflow-x-clip",children:[n$(w8,{title:X.title,navigation:X.navigation.primary,showThemeToggle:!0,...X.logo!==void 0?{logo:X.logo}:{},...Y!==void 0?{wordmark:Y}:{}},void 0,!1,void 0,this),n$("main",{className:"flex-grow flex flex-col bg-theme",children:$},void 0,!1,void 0,this),n$(oG,{primaryNavigation:X.navigation.primary,secondaryNavigation:X.navigation.secondary,copyright:X.copyright,socialLinks:X.socialLinks,title:X.title,tagline:X.description,children:G?.getSlot("footer-top").map((J)=>J.render())},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function $A($){return{id:$.id,version:$.version,type:$.type,packageName:$.packageName}}var VJ0=RY;function NJ0($){return $A(OY($))}var ES=ZY,wJ0=ES,_J0=yY;function zJ0($){return $A(bY($))}var DJ0=hY;export{ES as routes,zJ0 as professionalSitePlugin,DJ0 as professionalRoutes,NJ0 as personalSitePlugin,wJ0 as personalRoutes,_J0 as ProfessionalLayout,VJ0 as PersonalLayout};
863
865
 
864
- //# debugId=F661CA5449066C6464756E2164756E21
866
+ //# debugId=392D7A87841E0A5A64756E2164756E21
865
867
  //# sourceMappingURL=site.js.map